Протокол FTP

FTP (File Transfer Protocol, протокол передачи файлов) — прикладной протокол, предназначенный для передачи файлов в компьютерных сетях.

На основе протокола FTP действует служба FTP, построенная по технологии “клиент-сервер”: Клиент посылает запросы серверу, принимает и передает файлы; сервер обрабатывает запросы клиента, передает и принимает файлы.

Пример взаимодействия FTP-клиента и FTP-сервера продемонстрирован на рис. 1.

FTP-клиент – это программный интерфейс пользователя, реализующий протокол передачи файлов FTP. Эта программа позволяет пользователю передавать файлы между двумя компьютерами, связанными между собой локальной (LAN) или глобальной (WAN) сетью. При этом компьютерные платформы могут быть различных типов.

FTP-серверы, как правило, доступны только для зарегистрированных пользователей и требуют при подключении ввода идентификатора (login – входное имя) и пароля (password). Многие FTP-серверы открыты и для свободного доступа, их часто называют анонимными. Для таких серверов login (входное имя) – anonymous, а в качестве пароля (password) рекомендуют ввести адрес своей электронной почты.

Большинство Web-браузеров обеспечивают доступ к FTP-серверам без использования специальных FTP-клиентов. Например, URL-адрес:
ftp://ftp.ware.ru/pub/win/internet/ftp/dl.zip

означает «связаться с FTP-сервером с правами для анонимных пользователей, перейти в каталог pub, далее в каталог win, каталог internet, каталог ftp и взять файл dl.zip».

Сеанс работы с FTP-сервером можно провести в режиме командной строки. Для этого необходимо ввести команду ftp и после пробела ввести IP-адрес или DNS-адрес FTP-сервера. Если регистрация прошла успешно и связь установлена, то с помощью команд FTP можно выполнить все действия по работе с файлами.

Протокол FTP непосредственно взаимодействует с протоколом транспортного уровня TCP.

Первый стандарт FTP – RFC-114. Последняя версия – RFC-959.

FTP отличается от других приложений тем, что он использует два TCP соединения для передачи файла:

  • Управляющее соединение – соединение для посылки команд серверу и получения ответов от него. Для организации такого соединения используется протокол Telnet. Telnet-соединение устанавливается в один шаг – посылка запроса и ожидание ответа, получение которого свидетельствует о возможности передачи команд FTP. Канал управления существует на протяжении всей FTP-сессии и закрывается после завершения информационного обмена.
  • Соединение данных – соединение для передачи файлов. Передача файлов после установленного Telnet-соединения осуществляется через логическое соединение, организуемое протоколом TCP, который проверяет доступность портов, закрепленных за FTP. Канал данных формируется и ликвидируется по мере необходимости.

Протокол FTP предусматривает два возможных режима установления связи для обмена файлами:

  • Активный режим:
  • Клиент устанавливает связь и посылает с нестандартного порта N (N>1024) запрос на 21 порт сервера;
  • Сервер посылает ответ на порт N клиента;
  • Сервер устанавливает связь для передачи данных по порту 20 на порт клиента N+1.

Активный режим выгоден для FTP-сервера, но вреден для клиента. Так как FTP-сервер пытается соединиться со случайным высоким (по номеру) портом на клиенте, то такое соединение может быть блокировано брандмауэром на стороне клиента.

  • Пассивный режим:
  • Клиент устанавливает связь и посылает запрос (сообщает, что надо работать в пассивном режиме) на 21 порт сервера с нестандартного порта N (N>1024);
  • Сервер назначает нестандартный порт P для канала данных (P>1024) и посылает на порт N клиента ответ, в котором сообщает номер порта P;
  • Клиент устанавливает связь для передачи данных по порту N+1 на порт сервера P.

Пассивный режим выгоден для клиента, но вреден для FTP-сервера. Клиент будет делать два соединения к серверу, при этом второе будет к случайному высокому порту. Такое соединение может быть блокировано брандмауэром на стороне сервера.

Работа FTP на пользовательском уровне при передаче файлов содержит несколько этапов:

  • Идентификация (ввод имени-идентификатора и пароля);
  • Выбор каталога;
  • Определение режима обмена:
  • передача файлов в текстовом виде;
  • передача файлов в бинарном виде;
  • Выполнение команд обмена;
  • Завершение работы.
Узнай цену консультации

"Да забей ты на эти дипломы и экзамены!” (дворник Кузьмич)