Протокол передачи файлов FTP
Сетевая файловая служба на основе протокола FTP (File Transfer Protocol) представляет собой одну из наиболее ранних служб, используемых для доступа к удаленным файлам. До появления службы WWW это была самая популярная служба доступа к удаленным данным в Интернете и корпоративных IP-сетях. Первые спецификации FTP относятся к 1971 году. Серверы и клиенты FTP имеются практически в каждой ОС семейства UNIX, а также во многих других сетевых ОС. Клиенты FTP встроены сегодня в программы просмотра (браузеры) Интернета, так как архивы файлов на основе протокола FTP по-прежнему популярны и для доступа к таким архивам браузером используется протокол FTP.
Протокол FTP позволяет целиком переместить файл с удаленного компьютера на локальный и наоборот, то есть работает по схеме загрузки-выгрузки. Кроме того, он поддерживает несколько команд просмотра удаленного каталога и перемещения по каталогам удаленной файловой системы. Поэтому FTP особенно удобно использовать для доступа к тем файлам, данные которых нет смысла просматривать удаленно, а гораздо эффективней целиком переместить на клиентский компьютер (например, файлы исполняемых модулей приложений). В протокол FTP встроены примитивные средства аутентификации удаленных пользователей на основе передачи по сети пароля в открытом виде. Кроме того, поддерживается анонимный доступ, не требующий указания имени пользователя и пароля, который является более безопасным, так как не подвергает пароли пользователей угрозе перехвата.
Протокол FTP выполнен по схеме клиент-сервер. Клиент FTP состоит из нескольких функциональных модулей:
□ User Interface — пользовательский интерфейс, принимающий от пользователя символьные команды и отображающий состояние сеанса FTPна символьном экране.
□ User-PI — интерпретатор команд пользователя. Этот модуль взаимодействует с соответствующим модулем сервера FTP.
□ User-DTP — модуль, осуществляющий передачу данных файла по командам, получаемым от модуля User-PI по протоколу клиент-сервер. Этот модуль взаимодействует с локальной файловой системой клиента.
FTP-сервер включает следующие модули:
□ Server-PI — модуль, который принимает и интерпретирует команды, передаваемые по сети модулем User-PL
□ Server-DTP — модуль, управляющий передачей данных файла по командам от модуля Server-PI. Взаимодействует с локальной файловой системой сервера.
Клиент и сервер FTP поддерживают параллельно два сеанса — управляющий сеанс и сеанс передачи данных. Управляющий сеанс открывается при установлении первоначального FTP-соединения клиента с сервером, причем в течение одного управляющего сеанса может последовательно выполняться несколько сеансов передачи данных, в рамках которых передаются или принимаются несколько файлов.
Общая схема взаимодействия клиента и сервера выглядит следующим образом:
1. Сервер FTP всегда открывает управляющий порт TCP 21, для прослушивания, ожидая приход запроса на установление управляющего сеансаFTP от удаленного клиента.
2. После установления управляющего соединения клиент отправляет на сервер команды, которые уточняют параметры соединения:
О имя и пароль клиента;
О роль участников соединения (активная или пассивная);
О порт передачи данных;
О тип передачи;
О тип передаваемых данных (двоичные данные или ASCII-код);
О директивы на выполнение действий (читать файл, писать файл, удалить файл и т. п.).
3. После согласования параметров пассивный участник соединения переходит в режим ожидания открытия соединения на порт передачи данных. Активный участник инициирует это соединение и начинает передачу данных.
4. После окончания передачи данных соединение по портам данных закрывается, а управляющее соединение остается открытым. Пользователь может по управляющему соединению активизировать новый сеанс передачи данных.
Порты передачи данных выбирает клиент FTP (по умолчанию клиент может использовать для передачи данных порт управляющего сеанса), а сервер должен использовать порт, на единицу меньший порта клиента.
Протокол FTP использует при взаимодействии клиента с сервером несколько команд (не следует их путать с командами пользовательского интерфейса клиента, которые использует человек).
Эти команды делятся на три группы:
□ команды управления доступом к системе;
□ команды управления потоком данных;
□ команды службы FTP.
В набор команд управления доступом входят следующие команды:
□ USER — доставляет серверу имя клиента. Эта команда открывает управляющий сеанс и может также передаваться при открытом управляющем сеансе для смены имени пользователя.
□ PASS — передает в открытом виде пароль пользователя.
□ CWD — изменяет текущий каталог на сервере.
□ REIN — повторно инициализирует управляющий сеанс.
□ QUIT — завершает управляющий сеанс.
Команды управления потоком устанавливают параметры передачи данных:
□ PORT — определяет адрес и порт хоста, который будет активным участником соединения при передаче данных. Например, команда PORT194,85,135,126,7,205 назначает активным участником хост 194.85.135.126 и порт 1997 (вычисление номера порта не тривиально, но вполне однозначно).
□ PASV — назначает хост пассивным участником соединения по передаче данных. В ответ на эту команду должна быть передана командаPORT с указанием адреса и порта, находящегося в режиме ожидания.
□ TYPE — задает тип передаваемых данных (ASCII-код или двоичные данные).
□ STRU — определяет структуру передаваемых данных (файл, запись, страница).
□ MODE — задает режим передачи (потоком, блоками и т. п.).
Как видно из описания, служба FTP может применяться для работы как со структурированными файлами, разделенными на записи или страницы, так и с неструктурированными.
Команды службы FTP инициируют действия по передаче файлов или просмотру удаленного каталога:
□ RETR — запрашивает передачу файла от сервера на клиентский хост. Параметрами команды является имя файла. Может быть задано также смещение от начала файла — это позволяет начать передачу файла с определенного места при непредвиденном разрыве соединения (этот параметр используется в команде reget пользовательского интерфейса).
□ STOR — инициирует передачу файла от клиента на сервер. Параметры аналогичны команде RETR.
□ RNFR и RNTO — команды переименования удаленного файла. Первая в качестве аргумента получает старое имя файла, а вторая — новое.
□ DELE, MKD, RMD, LIST — эти команды соответственно удаляют файл, создают каталог, удаляют каталог и передают список файлов текущего каталога.
Каждая команда протокола FTP передается в текстовом виде по одной команде в строке. Строка заканчивается символами CR и LF ASCII-кода. Пользовательский интерфейс клиента FTP зависит от его программной реализации. Наряду с традиционными клиентами, работающими в символьном режиме, имеются и графические оболочки, не требующие от пользователя знания символьных команд.
Символьные клиенты обычно поддерживают следующий основной набор команд:
□ open имя_хоста — открытие сеанса с удаленным сервером.
□ bye — завершение сеанса с удаленным хостом и завершение работы утилиты ftp.
□ close — завершение сеанса с удаленным хостом, утилита ftp продолжает работать.
□ ls (dir) — печать содержимого текущего удаленного каталога.
□ get имя_файла — копирование удаленного файла на локальный хост.
□ put имя_файла — копирование удаленного файла на удаленный сервер.
Дата добавления: 2015-06-10; просмотров: 1288;