Главная > Программирование > Программирования сетевых взаимодействий в Java
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

2. Протоколы Internet

2.1. FTP протокол

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

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

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

2.1.1. Простая модель работы FTP

Рис. 2.1. Простая модель работы FTP

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

• «User Interface» - пользовательский интерфейс работы с FTP;

• «User-PI» - интерпретатор команд пользователя (User Protocol Interpretator). Этот объект взаимодействует с «Server-PI» для обмена командами управления передачей данных по каналу «Передачи команд» и с «User-DTP» модулем, который осуществляет непосредственную передачу данных по каналу «Передачи данных»;

• «User-DTP» - модуль, осуществляющий обмен данными (User Data Transfer Process) между клиентом и сервером FTP по каналу «Передачи данных» на основании команд модуля «User-PI». Этот объект взаимодействуют с файловой системой пользователя и объектом «Server-DTP»;

• «Server-PI» - модуль управления обменом данных со стороны сервера (Server Protocol Interpretator) по каналу «Передачи команд»;

• «Server-DTP» - модуль, осуществляющий обмен данными со стороны сервера (Server Data Transfer Process) no каналу «Передачи данных»;

• «Сервер FTP» - модуль, осуществляющий работу FTP-сервера. Он состоит из модуля управления передачей - «Server-PI» и модуля, осуществляющего передачу - «Server-DTP»;

• «Пользователь FTP» - модуль клиента FTP. Он состоит из модуля управления передачей -«User-PI» и модуля, осуществляющего передачу -«User-DTP».

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

Алгоритм работы протокола FTP

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

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

2. После того как устанавливается соединение модуля «User-PI» с модулем сервера - «Server-PI», клиент может отправлять на сервер команды. FTP-команды определяют параметры соединения передачи данных: роль участников соединения (активный или пассивный), порт соединения (как для User-DTP, так и для Server-DTP), тип передачи, тип передаваемых данных, структуру данных и управляющие директивы, обозначающие действия, которые пользователь хочет совершить, например, сохранить, считать, добавить или удалить данные или файл и др.

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

4. После окончания передачи данных, соединение между «Server-DTP» и «User-DTP» закрывается, но управляющее соединение «Server-PI» - «User-PI» остается открытым. Пользователь, не закрывая сессии FTP, может еще раз открыть канал передачи данных, передать необходимую информацию и т. д.

<< Предыдущий параграф Следующий параграф >>