Запуск ftp в активном режиме выглядит как описано ниже (на этом сайте):

В активном режиме FTP клиент подключается от случайного непривилегированного порта (N> 1023) к командному порту FTP-сервера, порт 21. Затем клиент начинает прослушивать порт N+1 и отправляет команду FTP PORT N+1 на FTP-сервер. Затем сервер подключится к указанному клиенту порту данных через его локальный порт данных, который является портом 20

И вот мой вопрос. Что происходит, когда подключается дополнительный клиент? Открывает ли сервер дополнительный порт данных для этого нового соединения? Если так, какой порт он выбирает для этого?

1 ответ1

3

Сеанс TCP включает в себя порт источника, IP-адрес источника, порт назначения и IP-адрес назначения.

Они должны быть уникальными для каждой сессии.

Допустим, клиент открывает сеанс и возвращает соединение для передачи данных:

Control: source_ip:1024 -> server_ip:21
Data:    source_ip:1025 <- server_ip:20

Теперь вторая сессия открывается. И 1024, и 1025 уже используются, поэтому следующие:

Control: source_ip:1026 -> server_ip:21
Data:    source_ip:1027 <- server_ip:20

Это не обязательно будет увеличиваться в такой последовательности, это зависит от того, что еще происходит на сервере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .