Да, это совершенно нормально. FTP - это протокол двух соединений. Поток команд (get, put, dir, cd и т. Д.) И поток данных (фактические файлы отправляются туда и обратно). Поток команд остается открытым на время вашего соединения (и считается «соединением»). Поток данных существует только при отправке / получении данных и будет открываться / закрываться несколько раз в типичном сеансе FTP.
Источник подключения к данным зависит от того, используете ли вы пассивный FTP. Для активных соединений ftp-сервер инициирует соединение для передачи данных обратно клиенту. Это делается с помощью клиента, говорящего «выполните команду« dir »и отправьте ее результаты обратно на IP x.x.x.x, порт yyy». Пассивные работы в обратном порядке. Клиент инициирует все подключения к серверу, и в основном делает dir. «Дайте мне список каталогов» и получите ответ «Хорошо, данные каталога доступны по IP-адресу x.x.x.x, порт YYY - приходите и получите их».
На уровне протокола клиент отправит PORT x.x.x.x.y.z , чтобы уведомить сервер об открытии соединения канала данных в активном режиме с клиентом по адресу x.x.x.x на порту (y * 256) + z. Клиент отправляет PASV для запроса пассивного режима; в этом случае ответ сервера содержит x.x.x.x.y.z, сообщающий клиенту об открытии соединения по ip и порту