Как известно протокол FTP
отличается от других протоколов тем что требует два сокета - один командный (для общения с сервером), а другой - для передачи данных. С этим более менее все понятно. Непонятным, на первый взгляд, представляются такие понятия, как пассивный и активный режимы FTP
соединения. Но это только на первый взгляд.
А теперь более подробно. В отличие от HTTP
и большинства других протоколов, используемых в Интернете, протокол FTP
использует во время сеанса как минимум два подключения: полудуплексное подключение для управления и полное дуплексное подключение для передачи данных. По умолчанию для управления подключениями на сервере используется TCP
порт 21, но подключение данных определяется методом, который клиент использует для подключения к серверу.
Активный режим FTP-подключений
Активный режим FTP
иногда называют "управляемым клиентом", потому что клиент посылает команду PORT
на сервер (через управляющее соединение), тем самым запрашивает сервер для установления соединения данных из TCP
-порт 20 на сервере, клиенту, используя TCP
порт, который указан по команде PORT
.
Клиент FTP
отправляет команду PORT
FTP
-серверу в следующем формате:
PORT 192,168,0,3,19,243
где первых четыре значения соответствуют октетам IP
адреса клиента, а пятое и шестое - это старший и младший байты 16-битного значения порта. Для преобразования старшего и младшего байтов в десятичный номер порта, пятое значение умножается на 256 и к результату прибавляется шестое значение. В рассмотренном примере получится: (19 * 256) + 243 = 5107. Таким образом клиент указывает серверу открыть подключение к данным используя 192.168.0.3:5107. По умолчанию FTP
клиент выбирает временный порт для подключения к данным. Временный порт выбирается случайным образом из диапазона доступных портов от 1024 до 65535
Ниже представлена типичная последовательность для активного режима FTP
-подключения:
Команда | Отправлено из | Отправлено на |
---|---|---|
USER MyUserName | 192.168.4.29:8190 | 10.0.0.10:21 |
PASS MyPassword | 192.168.4.29:8190 | 10.0.0.10:21 |
CWD / | 192.168.4.29:8190 | 10.0.0.10:21 |
250 CWD command successful. | 10.0.0.10:21 | 192.168.4.29:8190 |
PORT 192,168,4,29,31,255 | 192.168.4.29:8190 | 10.0.0.10:21 |
200 PORT command successful. | 10.0.0.10:21 | 192.168.4.29:8190 |
LIST | 192.168.4.29:8190 | 10.0.0.10:21 |
<file listing is transferred> | 10.0.0.10:20 | 192.168.4.29:8191 |
226 Transfer complete. | 10.0.0.10:21 | 192.168.4.29:8190 |
Пассивный режим FTP-подключений
FTP
в пассивном режиме иногда называют «управляемым сервером», поскольку после отправки клиентом команды PASV
, сервер отвечает одним из его временных портов, который будет использоваться в качестве серверного порта подключения к данным. Ниже представлена типичная последовательность подключения пассивного режима FTP
:
Команда | Отправлено из | Отправлено на |
---|---|---|
USER MyUserName | 192.168.4.29:7971 | 10.0.0.10:21 |
PASS MyPassword | 192.168.4.29:7971 | 10.0.0.10:21 |
CWD / | 192.168.4.29:7971 | 10.0.0.10:21 |
250 CWD command successful. | 10.0.0.10:21 | 192.168.4.29:7971 |
PASV | 192.168.4.29:7971 | 10.0.0.10:21 |
227 Entering Passive Mode (192,168,4,29,9,227). | 10.0.0.10:21 | 192.168.4.29:7971 |
LIST | 192.168.4.29:7971 | 10.0.0.10:21 |
<file listing is transferred> | 10.0.0.10:2531 | 192.168.4.29:7972 |
226 Transfer complete. | 10.0.0.10:21 | 192.168.4.29:7971 |
Удачи!
Комментариев нет:
Отправить комментарий