FTP аббревиатура обозначает "File Transfer Protocol" или "Протокол передачи файлов". Существует два режима FTP-соединений: Активный FTP и Пассивный FTP.
FTP-протокол подразумевает два различных соединения между клиентом и FTP-сервером. Первое соединение называется "управляющим" (control connection). Оно предназначено для "входа" клиента в FTP-сервера, перехода между каталогами в FTP-сервере и т.п. Для того, чтобы получить список файлов с сервера, скачать файл с сервера или закачать файл на сервер, используется второе соединение, называемое "соединение для передачи данных" (data connection).
Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит "Привет! Я хочу подключится к тебе. Вот мое имя и мой пароль". Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.
В Активном режиме, когда клиент говорит "Привет!" он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.
В Пассивном режиме, после того как клиент сказал "Привет!", сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных.
Главное отличие между Активным режимом FTP и Пассивным режимом FTP - это сторона, которая открывает соединение для передачи данных. В Активном режиме, клиент должен принять соединение от FTP-сервера. В Пассивном режиме, клиент всегда инициирует соединение.
Пример Активного соединения:
[1] Control Connection: Client port 1026 -> Server port 21
[2] Data Connection: Client port 1027 <- Server port 20
Пример Пассивного соединения:
[1] Control Connection: Client port 1026 -> Server port 21
[2] Data Connection: Client port 1027 -> Server port 2065
Article ID: 256, Created: February 13, 2009 at 12:40 PM, Modified: July 3, 2009 at 3:35 PM