Протокол FTP (File Transfer Protocol)

 

FTP (File Transfer Protocol, или «Протокол передачи файлов») – один из старейших протоколов в Internet, входит в его стандарты. Обмен данными в FTP проходит по TCP-каналу. Построен обмен по технологии «клиент-сервер». На рисунке 7.1 изображена модель протокола.

В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола TELNET. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. В общем случае пользователь имеет возможность установить контакт с интерпретатором протокола сервера и отличными от интерпретатора пользователя средствами.

Команды FTP определяют параметры канала передачи данных и самого процесса передачи. Они также определяют и характер работы с удаленной и локальной файловыми системами.

Сессия управления инициализирует канал передачи данных. При организации канала передачи данных последовательность действий другая, отличная от организации канала управления. В этом случае сервер инициирует обмен данными в соответствии с параметрами, согласованными в сессии управления.

 

 

Рис. 7.1. Модель протокола FTP

 

Канал данных устанавливается для того же host'а, что и канал управления, через который ведется настройка канала данных. Канал данных может быть использован как для приема, так и для передачи данных.

Возможна ситуация, когда данные могут передаваться на третью машину. В этом случае пользователь организует канал управления с двумя серверами и организует прямой канал данных между ними. Команды управления идут через пользователя, а данные напрямую между серверами (рисунок 7.2).

Канал управления должен быть открыт при передаче данных между машинами. В случае его закрытия передача данных прекращается.

 

Рис. 7.2. Соединение с двумя разными серверами и передача данных между ними

 

Любая команда обмена выполняется в несколько этапов:

· · Формирование канала под управлением клиента, так как именно клиент выдал команду get, dir, put и т.д.

· · Клиент выбирает произвольный номер порта на своей ЭВМ и осуществляет процедуру passive open для этого порта.

· · Клиент посылает номер порта серверу по каналу управления (порт 21), используя команду PORT. Можно обойтись и без команды PORT (используется тот же порт, что и в командном канале), но это увеличивает задержки и по этой причине не рекомендуется.

· · Сервер получает номер порта по каналу управления и выдает команду active open в указанный порт ЭВМ-клиента. Сервер для канала данных всегда использует порт с номером 20.

 

Уход из FTP производится по команде quit. В приведенном примере файловый обмен не производился, но и команда HELP требует переноса информации (также как и dir), так как вам выдается список команд, доступных на удаленном сервере. Из воспроизведенного списка команд самая опасная mdelete, так как способна стереть целый каталог. Нетекстовые файлы (архивированные, графические и программные) следует пересылать в режиме binary.

При выполнении FTP система возвращает трехразрядные десятичные коды-отклики, которые позволяют судить о корректности обмена и диагностировать процедуру. Выдача кода сопровождается текстом-комментарием. Первая цифра может принимать значения от 1 до 5.

 

Таблица 7.4

Коды откликов

 

Код-отклик Описание
  Комментарий
  Функция будет реализована через nnn минут
  Канал открыт, обмен данными начат
  Статус файла правилен, подготавливается открытие канала
  Команда корректна
  Системный статус или отклик на справочный запрос
  Состояние каталога
  Состояние файла
  Справочное поясняющее сообщение
  Слишком много подключений к FTP-серверу (можете попробовать позднее). В некоторых версиях указывает на успешное завершение промежуточной процедуры
  Благополучное завершение по команде quit
  Канал сформирован, но информационный обмен отсутствует
  Закрытие канала, обмен завершен успешно
  Пользователь идентифицирован, продолжайте
  Запрос прошел успешно
  Имя пользователя корректно, нужен пароль
  Для входа в систему необходима аутентификация
  Процедура не возможна, канал закрывается
  Открытие информационного канала не возможно
  Канал закрыт, обмен прерван
  Запрошенная функция не реализована, файл не доступен, например, занят
  Локальная ошибка, операция прервана
  Ошибка при записи файла (не достаточно места)
  Синтаксическая ошибка, команда не может быть интерпретирована (возможно, она слишком длинна)
  Синтаксическая ошибка (неверный параметр или аргумент)
  Команда не используется (нелегальный тип MODE)
  Неудачная последовательность команд
  Команда не применима для такого параметра
  Система не загружена (not logged in)
  Необходима аутентификация для запоминания файла
  Запрошенная функция не реализована, файл не доступен, например, не найден
  Запрошенная операция прервана, недостаточно выделено памяти

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: