Я просто хочу проверить, корректно ли мое понимание ftp. FTP-сервер слушает в порте 21. Клиент устанавливает соединение с FTP-сервером с помощью локального эфемерного порта, который соединяется с портом FTP-сервера 21. То, когда FTP-сервер отправляет файл клиенту, он отправляет его от порта 20 к эфемерному порту на компьютере клиента, который отличается от того, раньше соединялось с портом 21.
Это корректно? Кроме того, что происходит, если несколько компьютеров пытаются связаться с FTP-сервером одновременно? Они все соединяются с портом 21? Существует ли предел количеству одновременных соединений, которые могут быть открыты в порте?
Ваше понимание корректно.
К порту сервера могут всегда получать доступ несколько клиентов, потому что сеанс TCP определяется 4 элементами: клиентский IP-адрес + клиентский порт + IP-адрес сервера + порт сервера, не портом сервера только.
Существует также FTP пассивный режим, в котором это - клиент, который инициирует передачу данных к эфемерному порту на сервере. Это позволяет передавать трафик FTP через некоторый брандмауэр или устройства NATting.