Опубликован: 10.10.2007 | Уровень: специалист | Доступ: платный
Лекция 1:

Процедуры Интернет (Telnet/ssh, FTP/SFTP, ping, traceroute)

Лекция 1: 12345 || Лекция 2 >

Протокол пересылки файлов FTP

FTP (RFC-959) обеспечивает файловый обмен между удаленными пользователями. Протокол FTP формировался многие годы. Первые реализации в МТИ относятся к 1971. (RFC 114 и 141). RFC 172 рассматривает протокол, ориентированный на пользователя и предназначенный для передачи файлов между ЭВМ. Позднее в документах RFC 265 и RFC 281 протокол был усовершенствован. Заметной переделке протокол подвергся в 1973, и окончательный вид он обрел в 1985 году. Таким образом, данный протокол является одним из старейших.

Здесь, так же, как и в случае TELNET, необходима идентификация, но многие депозитарии допускают анонимный вход (имя пользователя ANONYMOUS, RFC-1635), который не требует пароля или разрешает ввод вашего почтового адреса вместо него. Работа FTP на пользовательском уровне происходит в несколько этапов:

  1. Идентификация (ввод имени-идентификатора и пароля)
  2. Выбор каталога
  3. Определение режима обмена (поблочный, поточный, ASCII или двоичный)
  4. Выполнение команд обмена ( get, mget, dir, mdel, mput, put и т.д.)
  5. Завершение процедуры ( quit или close )

FTP довольно необычная процедура, так как поддерживает две логические связи между ЭВМ (Рис 1.2). Одна связь служит для удаленного доступа и использует протокол Telnet для передачи команд. Другая связь предназначена для обмена данными. Сервер производит операцию passive open для порта 21 и ждет соединения с клиентом. В качестве транспорта применяется протокол ТСР. Клиент осуществляет операцию active open для порта 21. Канал остается активным до завершения процедуры FTP. TOS (тип IP-сервиса) соответствует минимуму задержки, так как этот канал используется для ручного ввода команд. Канал для передачи данных формируется каждый раз для пересылки файлов. Канал открывается перед началом пересылки и закрывается по коду end_of_file (конец файла). IP-тип сервиса (TOS) в этом случае ориентирован на максимальную пропускную способность.

Конечный пользователь взаимодействует с протокольным интерпретатором, в задачи которого входит управление обменом информацией между пользователем и файловой системой, как местной, так и удаленной. Схема взаимодействия различных частей Internet при работе FTP изображена на рис. 1.2.

Сначала по запросу клиента формируется канал управления, который в дальнейшем используется для передачи команд от клиента и откликов от сервера. Информационный канал формируется сервером по команде клиента, он не должен существовать постоянно на протяжении всей FTP -сессии и может формироваться и ликвидироваться по мере необходимости. Канал управления может быть закрыт только после завершения информационного обмена. После того как управляющий канал сформирован, клиент может посылать по нему команды. Сервер воспринимает, интерпретирует эти команды и передает отклики.

Схема работы протокола FTP

Рис. 1.2. Схема работы протокола FTP

Возможна и другая схема взаимодействия, когда по инициативе клиента осуществляется файловый обмен между двумя ЭВМ, ни одна из которых не является машиной клиента (см. рис. 1.3).

На фазе задания режима обмена предоставляются следующие возможности.

Организация информационного обмена между двумя удаленными машинами

Рис. 1.3. Организация информационного обмена между двумя удаленными машинами

Команда Block сохраняет структуру логических записей файла.

Команда Stream устанавливает режим, при котором не производится пересылки контрольной информации для блоков. Это наиболее быстрый режим обмена, он работает по умолчанию.

Команда TYPE может задать режимы обмена IMAGE, ASCII или EBCDIC. Из них ASCII — используется по умолчанию.

Режим EBCDIC применяется для обменов между ЭВМ, работающими с набором символов EBCDIC.

Режим IMAGE предполагает обмен 8-битными байтами, используется для передачи двоичной (а не текстовой) информации.

Более подробный список команд помещен ниже. Структурно информация может передаваться в виде файлов (структура по умолчанию), в виде последовательности записей (применимо для текстовых файлов ASCII или EBCDIC) или постранично (последняя структура не относится к числу рекомендуемых).

Для копирования файла из удаленного сервера используется команда GET, для копирования группы файлов — MGET, в последнем случае применяются символы-заменители, например, MGET *.txt (или RFC-18*.txt, при этом скопируются файлы с RFC-1800.txt до RFC-1899.txt, если таковые существуют в текущем каталоге). Аналогом команды GET в какой-то степени является команда DIR (ls), только она переносит содержимое каталога, что для некоторых операционных систем эквивалентно. При использовании модификации mget проявляйте осторожность — вы можете заблокировать телекоммуникационный канал длительным копированием. Для записи файла в удаленный сервер применяется команда PUT. При операциях обмена обычно используется текущий каталог локальной ЭВМ. В вашем распоряжении всегда имеется возможность поменять местный каталог с помощью команды LCD или ее аналога. Любая команда обмена выполняется в несколько этапов.

  1. Формирование канала под управлением клиента, так как именно клиент выдал команду get, dir, put и т.д.
  2. Клиент выбирает произвольный номер порта на своей ЭВМ и осуществляет процедуру passive open для этого порта.
  3. Клиент посылает номер порта серверу по каналу управления (порт 21), используя команду PORT. Можно обойтись и без команды PORT (ведь применяется тот же порт, что и в командном канале), но это увеличивает задержки и по этой причине не рекомендуется.
  4. Сервер получает номер порта по каналу управления и выдает команду active open в указанный порт ЭВМ-клиента. Сервер для канала данных всегда использует порт с номером 20.

Рассмотрим пример FTP -сессии. Для этого выдадим команду:

FTP -d ns.itep.ru (флаг -d означает установку отладочного режима, при
                   котором выдаются все сообщения и внутренние команды 
                   на экран терминала)
FTP Trying...Open
220- *** Welcome at FTP-Server ftp.ITEP.RU ***
220-
220 ns.itep.ru FTP server ready.
Userid for logging in on ns.itep.ru (SEMENOV)? semenov
FTP command: USER semenov
FTP response: 331 Password required for semenov.
331 Password required for semenov.
Password for logging in as semenov on ns.itep.ru? XXXXXXXX
PASS XXXXXXXX (ввод пароля не отображается на экране)
FTP response: 230 User semenov logged in.
230 User semenov logged in.
ftp:ns.itep.ru> help (просьба выдать список доступных на данном 
   сервере FTP-команд)
Any unambiguous abbreviation for a command may be used.
Available commands are:
! ? acct append ascii binary bye cd debug
delete dir drive Exit fcd fdir fpwd get help
iget image iput Lcd ldir lmkdir local login lpwd
ls mdelete mget mkdir mput option parent passive put
pwd quit quote rename retrieve rmdir send server show
stat store take tenex tget tput type user verbose 
version
ftp:ns.itep.ru> quit
FTP command: QUIT
FTP response: 221 Goodbye.

Уход из FTP производится по команде quit. В приведенном примере файловый обмен не производился, но и команда HELP требует переноса информации (так же, как и dir ), так как вам выдается список команд, доступных на удаленном сервере. Из воспроизведенного списка команд самая опасная — mdelete, так как она способна стереть целый каталог. Нетекстовые файлы (архивированные, графические и программные) следует пересылать в режиме binary. Для перевода в этот режим используется одноименная команда. Для перехода из одного каталога в другой на удаленном сервере служит команда cd имя_каталога, а для возврата в предшествующий — cd .. . Например, cd /pub/msdos.

Ссылка на объект, доступный через анонимное FTP, обычно записывается в виде:

Название ресурса   Имя сервера   Имя каталога в сервере.

Например:

Internet-cmc   ftp.rpi.edu   /pub/communications/internet-cmc.txt

ftp://ftp.rpi.edu/pub/communications/internet-cmc.txt

Internet-cmc (CMC — computer-mediated communication) — это межкомпьютерный обмен по сети Internet.

Ниже приведен список базовых команд FTP. Следует разделять внутренний набор команд FTP, которыми обмениваются клиент и сервер по командному каналу, и набор команд, доступный пользователю. Служебные команды содержат три или четыре заглавные буквы. Эти наборы команд перекрываются лишь частично. Служебные команды унифицированы (они выделены в приведенном выше примере FTP -сессии жирным шрифтом, в помещенной ниже таблице эти команды представлены в ее верхней части), пользовательский же набор команд может варьироваться от реализации к реализации. Если выдать команду FTP без аргументов, система обычно откликается приглашением FTP > и вы можете выполнить некоторые из приведенных ниже команд (весь набор становится доступным только после идентификации).

Таблица 1.6.
Субкоманды FTP Описание
ABOR Прерывание исполнения предыдущей FTP -команды и связанного с ней обмена
ACCT<SP> <accountinformation> Ввод идентификатора пользователя (ID)
ALLO <SP> <десятичное целое> [<SP> R <SP> <десятичное целое>] Зарезервировать достаточно места (в байтах) для пересылки файла. Для файлов с постраничной структурой после символа R указывается число записей
APPE <SP> <проход> Присовокупить передаваемые данные к файлу, указанному в параметре проход
CDUP Переход в каталог-прародитель
CWD <SP> <проход> Изменить рабочий каталог (CD)
DELE <SP> <проход> Стереть файл (del)
HELP Выдать справочную информацию о выполнимых командах
HELP [<SP> <строка>] Выдать описание работы данной команды
LIST [<SP> <проход>] Вывод списка файлов или каталогов (dir)
MKD <SP> <проход> Создать каталог
MODE <SP> <код режима> Режим обмена = поток, блоки или со сжатием
NLST [<SP> <проход>] Переслать оглавление каталога от сервера к клиенту
NOOP Пустая команда
PASS <SP> <пароль> Слово-пропуск (пароль) пользователя, заполняется пользователем
PASV Перевести сервер в режим прослушивания информационного порта на предмет установления соединения
PORT <SP> <порт ЭВМ> IP-адрес и номер порта клиента
PWD Выдать имя текущего каталога
QUIT Уход из FTP
REIN Завершение сессии и открытие новой
REST <SP> <маркер> Возобновление обмена, начиная с места, указанного маркером
RETR <SP> <проход> Переслать копию файла (get) другому адресату
RMD <SP> <проход> Удалить каталог
RNFR <SP> <проход> Начало процедуры переименования файла (Rename From)
RNTO <SP> <проход> Указание нового имени файла при переименовании (Rename To)_
SITE <SP> <строка> Используется сервером для реализации локально специфических команд
SMNT <SP> <проход> Позволяет пользователю смонтировать нужную файловую систему
STAT Выдать текущие значения параметров (STATUS)
STOR <SP> <проход> Сервер должен запомнить полученные данные в виде файла
STOU Аналог команды STOR, но записывает файл в текущий каталог и присваивает файлу уникальное имя
STRU <SP> <код структуры> Структура файла = файл, запись или страница
SYST Сервер сообщает тип системы
TYPE <SP> <код типа> Специфицирует тип информации, часто для этой цели используются команды binary и ASCII
USER <SP> < [имя [пропуск]] > Идентифицирует пользователя, запрашивается сервером
? То же, что и HELP;
lcd Изменить локальный каталог (на вашей ЭВМ)
! Выйти временно из FTP и уйти в Shell (UNIX)
! команда Исполнить команду Shell (UNIX)
close Прервать связь с удаленным сервером, оставаясь в FTP
open [имя_ЭВМ] Установить связь с указанным удаленным сервером
dir Выдать содержимое удаленного каталога

<SP> — пробел; все команды завершаются последовательностью <CRLF> возврат каретки + перевод строки. В квадратных скобках записан опционный аргумент. Выполнение любой команды можно прервать с помощью Ctrl-C.

Лекция 1: 12345 || Лекция 2 >
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Алексей Приходько
Алексей Приходько
Украина, Днепропетровск, Украинский государственный Химико-технологический университет, 2013
Юрий Волоховский
Юрий Волоховский
Украина, Харьков, ХарГАЖТ, 2007