Версия 1.0 от 22.03.2005
FTP-протокол реализует два соединения между клиентом и FTP-сервером, которые несут на себе различную нагрузку. Первое соединение называется управляющим (control connection) и предназначено для процедуры аутентификации клиента на FTP-сервере, перемещения в дереве каталогов FTP-сервера и т.п. Второе соединение, предназначено для передачи данных (data connection) и используется для получения списка, передачи или приема файлов сервера.
Существует два режима работы протокола FTP – активный и пассивный. Управляющее соединение одинаково для обоих режимов. Клиент инициирует TCP-соединение с непривилегированных портов (1024-65535) к порту номер 21.
Если выбран активный режим, при соединении клиент сообщает серверу номер непривилегированного порта для того, чтобы сервер мог подключиться к нему для установки соединения передачи данных, после чего сервер подключается к заданному номеру порта клиента, используя со своей стороны порт номер 20.
Если выбран пассивный режим, то при соединении сервер сообщает клиенту номер непривилегированного порта, к которому можно подключиться для установки соединения передачи данных.
Главное отличие между активным и пассивным режимами – это сторона, которая открывает соединение для передачи данных. В активном режиме, клиент должен принять соединение от FTP-сервера, в пассивном же – клиент всегда инициирует соединение.
Пример активного соединения:
- Control: Client [1024] -> Server [21]
- Data: Server [20] -> Client [1025]
Пример пассивного соединения:
- Control: Client [1024] -> Server [21]
- Data: Client [1025] -> Server [10001}