Модели работы FTP
Простейшая модель работы протокола FTP представлена на рисунке 1. В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае… Читать ещё >
Модели работы FTP (реферат, курсовая, диплом, контрольная)
Простейшая модель работы протокола FTP представлена на рисунке 1. В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора протокола пользователя средствами.
Рисунок 1- Модель работы протокола FTP.
Команды FTP определяют параметры канала передачи данных и самого процесса передачи. Они также определяют и характер работы с удаленной и локальной файловыми системами.
Сессия управления инициализирует канал передачи данных. При организации канала передачи данных последовательность действий другая, отличная от организации канала управления. В этом случае сервер инициирует обмен данными в соответствии с согласованными в сессии управления параметрами.
Канал данных устанавливается для того же хоста, что и канал управления, через который ведется настройка канала данных. Канал данных может быть использован как для приема, так и для передачи данных.
Алгоритм работы протокола FTP состоит в следующем:
- · Сервер FTP использует в качестве управляющего соединение на TCP порт 21, который всегда находится в состоянии ожидания соединения со стороны пользователя FTP.
- · После того как устанавливается управляющее соединение модуля «Интерпретатор протокола пользователя» с модулем сервера — «Интерпретатор протокола сервера», пользователь (клиент) может отправлять на сервер команды. FTP-команды определяют параметры соединения передачи данных: роль участников соединения (активный или пассивный), порт соединения (как для модуля «Программа передачи данных пользователя», так и для модуля «Программа передачи данных сервера»), тип передачи, тип передаваемых данных, структуру данных и управляющие директивы, обозначающие действия, которые пользователь хочет совершить (например, сохранить, считать, добавить или удалить данные или файл и другие).
- · После того как согласованы все параметры канала передачи данных, один из участников соединения, который является пассивным (например, «Программа передачи данных пользователя»), становится в режим ожидания открытия соединения на заданный для передачи данных порт. После этого активный модуль (например, «Программа передачи данных сервера») открывает соединение и начинает передачу данных.
- · После окончания передачи данных, соединение между «Программой передачи данных сервера» и «Программой передачи данных пользователя» закрывается, но управляющее соединение «Интерпретатора протокола сервера» и «Интерпретатора протокола пользователя» остается открытым. Пользователь, не закрывая сессии FTP, может еще раз открыть канал передачи данных.
Возможна ситуация, когда данные могут передаваться на третью машину. В этом случае пользователь организует канал управления с двумя серверами и прямой канал данных между ними. Команды управления идут через пользователя, а данные — напрямую между серверами. Канал управления должен быть открыт при передаче данных между машинами. Иначе, в случае его закрытия передача данных прекращается. Соединение с двумя серверами показано на рисунке 2.
Рисунок 2- Соединение с двумя серверами.
Алгоритм работы при соединении двух FTP-серверов, ни один из которых не расположен на локальном хосте пользователя:
- · Модуль «Интерпретатор протокола пользователя» указал модулю сервера «Интерпретатор протокола сервера 1» работать в пассивном режиме, после чего модуль «Интерпретатор протокола сервера 1» отправил пользователю адрес и номер порта (N), который он будет слушать.
- · Модуль «Интерпретатор протокола пользователя» назначил модуль сервера 2 «Интерпретатор протокола сервера 2» в качестве активного участника соединения и указал ему передавать данные на хост «Интерпретатор протокола сервера 1» на порт (N).
- · «Интерпретатор протокола пользователя» подал «Интерпретатору протокола сервера 1» команду «сохранить поступившие данные в таком-то файле», а «Интерпретатор протокола сервера 2» — «передать содержимое такого-то файла».
- · Между модулями «Интерпретатор протокола сервера 1» и «Интерпретатор протокола сервера 2» образуется поток данных, который управляется клиентским хостом.
Как правило, сервер FTP ответственен за открытие и закрытие канала передачи данных. Сервер FTP должен самостоятельно закрыть канал передачи данных в следующих случаях:
- · Сервер закончил передачу данных в формате, который требует закрытия соединения.
- · Сервер получил от пользователя команду «прервать соединение».
- · Пользователь изменил параметры порта передачи данных.
- · Было закрыто управляющее соединение.
- · Возникли ошибки, при которых невозможно возобновить передачу данных.