Простейшая модель работы протокола FTP

В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора протокола пользователя средствами.

 
 


Алгоритм работы протокола FTP состоит в следующем:

- Сервер FTP использует в качестве управляющего соединение на TCP порт, который всегда находится в состоянии ожидания соединения со стороны пользователя FTP.

- После того как устанавливается управляющее соединение «Интерпретатора протокола пользователя» с «Интерпретатором протокола сервера», пользователь может отправлять на сервер команды. FTP-команды определяют параметры соединения передачи данных (порт соединения, тип передачи, тип передаваемых данных, структуру данных и управляющие директивы (сохранить, считать, добавить или удалить данные).

- После согласования всех параметров канала передачи данных, один из участников соединения, который является пассивным (например, «Программа передачи данных пользователя»), становится в режим ожидания открытия соединения на заданный для передачи данных порт. После этого активный модуль (например, «Программа передачи данных сервера») открывает соединение и начинает передачу данных.

- После окончания передачи данных, соединение между «Программой передачи данных сервера» и «Программой передачи данных пользователя» закрывается, но управляющее соединение «Интерпретатора протокола сервера» и «Интерпретатора протокола пользователя» остается открытым. Пользователь, не закрывая сессии FTP, может еще раз открыть канал передачи данных.

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


Алгоритм работы при соединение двух FTP-серверов, ни один из которых не расположен на локальном хосте пользователя:

- Модуль «Интерпретатор протокола пользователя» указал модулю сервера «Интерпретатор протокола сервера 1» работать в пассивном режиме, после чего модуль «Интерпретатор протокола сервера 1» отправил пользователю адрес и номер порта (N), который он будет слушать.

- Модуль «Интерпретатор протокола пользователя» назначил модуль «Интерпретатор протокола сервера 2» в качестве активного участника соединения и указал ему передавать данные на хост «Интерпретатор протокола сервера 1» на порт (N).

- «Интерпретатор протокола пользователя» подал «Интерпретатору протокола сервера 1» команду сохранить поступившие данные в таком-то файле, а «Интерпретатор протокола сервера 2» - передать содержимое такого-то файла.

- Между модулями «Интерпретатор протокола сервера 1» и «Интерпретатор протокола сервера 2» образуется поток данных, который управляется клиентским хостом.

Основу передачи данных FTP составляет механизм установления соединения между соответствующими портами и выбора параметров передачи. Пассивная сторона соединения должна до того, как будет подана команда 'начать передачу', 'слушать' свой порт передачи данных. Активная сторона, подающая команду к началу передачи данных, определяет направление перемещения данных.

- После того как соединение установлено, между «Программой передачи данных сервера» и «Программой передачи данных пользователя» начинается передача. Одновременно по каналу 'Интерпретатор протокола сервера' - 'Интерпретатор протокола пользователя' передаются уведомления о получении данных. Протокол FTP требует, чтобы управляющее соединение было открыто, пока по каналу обмена данными идет передача. Сессия FTP считается закрытой только после закрытия управляющего соединения.

Как правило, сервер FTP ответственен за открытие и закрытие канала передачи данных.

Команды протокола.

Команды управления контролем передачи данных, которыми обмениваются «Интерпретатор протокола сервера» и «Интерпретатор протокола пользователя», можно разделить на три большие группы:

· Команды управления доступом к системе.

· Команды управления потоком данных.

· Команды FTP-сервиса.

Утилита FTP.

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

Протоколы TFTP и SFTP.

FTP-протокол имеет двух 'младших братьев': SFTP и TFTP.

TFTP- протокол - это простейший протокол передачи файлов. Он работает поверх транспортного протокола UDP и обеспечивает выполнение только самых элементарных операций передачи файлов, а именно, записи и чтения файлов. TFTP был разработан как простой и легкий в применении протокол. Он не позволяет вызвать список каталога и не имеет никаких средств аутентификации, но может передавать 8-битную информацию в соответствии со всеми стандартами Internet.

SFTP -протокол передачи файлов пользуется популярностью в тех случаях, если пользователю необходим чуть более гибкий и надежный протокол, чем TFTP и не такой сложный и громоздкий, как FTP.

SFTP поддерживает механизмы идентификации пользователя, передачу файлов, просмотр каталогов, изменение текущего каталога, переименование и удаление файлов. В большинстве операций, которые пользователь проводит с удаленным FTP-сервером, этого сервиса вполне достаточно. SFTP может передавать 8-битный поток данных и использует, как TFTP, только один канал соединения - как для команд, так и для данных. В отличие от TFTP, SFTP работает поверх TCP.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: