FTP - протокол для передачи файлов, так же ксть sftp и tftp
Алгоритм работы
Протокол FTP устанавливает между клиентом и сервером два типа соединений. Одно из них называется управляющим соединением и предназначено для передачи команд, а второе называется соединением для передачи данных и предназначается для передачи данных, что логично. После установления управляющего соединения, клиент и сервер могут перейти либо в активный либо в пассивный режим работы.
Главное отличие активного и пассивного режимов работы протокола FTP состоит в том, кто из связки клиент-сервер производит подключение для передачи данных, то есть, грубо говоря, кто к кому подключается. Также отличаются порты, на которые производится передача данных. При активном режиме работы, клиент производит управляющее соединение с сервером, а вот подключение для передачи данных производит уже сам сервер. При пассивном режиме работы подключение для передачи данных, равно как и управляющее соединение с сервером инициируется только клиентом. То есть, в активом режиме сервер подключается к клиенту для передачи данных, а в пассивном – клиент к серверу.
Как в активном, так и в пассивном режиме, установка соединения начинается с отправки запроса клиентом на сервер. Сначала устанавливается управляющее соединение. Для этого на клиенте создается временный порт с номером в диапазоне от 1024 до 65535 для установки управляющего соединения, а также порт для передачи данных. В активном режиме все происходит в следующем порядке:
Активный режим
- Клиент посылает с временного порта диапазоном 1024 - 65535 — запрос на порт сервера номер 21
- Сервер отвечает на временный порт клиента (в примере порт ). 1036
- Клиент подтверждает установку соединения.
- Клиент отправляет команду , которая говорит об использовании активного режима FTP, свой IP-адрес, а также номер порта для установки соединения для передачи данных, к которому подключится сервер (в примере порт ). PORT 1037
- Команда подтверждается сервером.
- Клиент задает серверу команды для работы с FTP.
- Сервер создает соединение передачи данных. Для этого он отправляет запрос с его порта (20) на указанный клиентом в четвертом пункте порт (1037).
- Клиент отвечает на запрос.
- Сервер подтверждает установку соединения и дает клиенту возможность передавать данные.
Пассивный режим
- Клиент посылает с временного порта диапазоном 1024 - 65535 — запрос на порт сервера номер 21 передачи данных несколько отличается. Действия происходят следующим образом:
- Сервер отвечает на временный порт клиента (в примере порт 1036).
- Клиент подтверждает установку соединения.
- Клиент отправляет команду , которая говорит об использовании пассивного режима FTP. PASV
- Сервер подтверждает работу в пассивном режиме, посылает свой IP-адрес, а также номер порта для установки соединения для передачи данных, к которому подключится клиент (в примере ). 2154
- С порта для передачи данных (в примере 1037 ) клиент посылает запрос на установку соединения на выданный сервером порт 2154
- Сервер подтверждает установку соединения.
- Клиент устанавливает соединение.
- Клиент задает команды серверу (с управляющего порта на порт , в примере — с порта 1036 на порт 21), после чего возможна передача данных.