Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ИвСИТ.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
5.57 Mб
Скачать
  1. Протокол пересылки файлов ftp. Назначение протокола, схема работы. Список команд и кодов ответов

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

FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, в 1971 году.

Протокол FTP относится к протоколам прикладного уровня и для передачи данных использует транспортный протокол TCP. Команды и данные, в отличие от большинства других протоколов, передаются по разным портам. Исходящий порт 20, открываемый на стороне сервера, используется для передачи данных, порт 21 для передачи команд. Порт для приема данных клиентом определяется в диалоге согласования. В случае, если передача файла была прервана по каким-либо причинам, протокол предусматривает средства для докачки файла, что бывает очень удобно при передаче больших файлов.

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

1. Идентификация (ввод имени-идентификатора и пароля).

2. Выбор каталога.

3. Определение режима обмена (поблочный, поточный, ASCII или двоичный).

4. Выполнение команд обмена (get, mget, dir, mdel, mput или put).

5. Завершение процедуры (quit или close).

FTP довольно необычная процедура, так как поддерживает две логические связи между ЭВМ (Рис.1).

Рисунок 1 – Схема работы протокола FTP Одна связь служит для передачи команд от клиента и откликов от сервера и использует протокол Telnet. Другая связь предназначена для обмена данными и использует TCP.

Канал управления:

Сервер производит операцию passiveopen для порта 21 и ждет соединения с клиентом. Клиент осуществляет операцию activeopen для порта 21. После того как управляющий канал сформирован, клиент может посылать по нему команды. Сервер воспринимает, интерпретирует эти команды и передает отклики. Канал остается активным до завершения процедуры FTP. TOS (тип IP-сервиса) соответствует минимуму задержки, так как этот канал используется для ручного ввода команд.

Канал для передачи данных (TCP) формируется каждый раз для пересылки файлов. Канал открывается перед началом пересылки и закрывается по коду end_of_file (конец файла). IP-тип сервиса (TOS) в этом случае ориентирован на максимальную пропускную способность.

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

Возможна и другая схема взаимодействия, когда по инициативе клиента осуществляется файловый обмен между двумя ЭВМ, ни одна из которых не является машиной клиента (см. рис.2).

Рисунок 2 - Организация информационного обмена между двумя удаленными машинами

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

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

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

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

Сервер получает номер порта по каналу управления и выдает команду activeopen в указанный порт ЭВМ-клиента. В старых версиях для передачи данных использовался только 20-й порт (активный режим), в современных версиях FTP-серверов порт для канала данных может назначаться сервером из нестандартных (N > 1024) портов (пассивный режим).

Активный режим

Пассивный режим

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

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

Список основных команд FTP: ABOR — Прервать передачу файла

CDUP — Сменить директорию на вышестоящую.

CWD — Сменить директорию.

DELE — Удалить файл (DELEfilename).

EPSV — Войти в расширенный пассивный режим. Применяется вместо PASV.

HELP — Выводит список команд принимаемых сервером.

LIST — Возвращает список файлов директории. Список передается через соединение данных.

MDTM — Возвращает время модификации файла.

MKD — Создать директорию.

NLST — Возвращает список файлов директории в более кратком формате чем LIST. Список передается через соединение данных.

NOOP — Пустая операция

PASV — Войти в пассивный режим. Сервер вернет адрес и порт к которому нужно подключиться чтобы забрать данные. Передача начнется при введении следующих команд RETR, LIST и тд.

PORT — Войти в активный режим. НапримерPORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.

PWD — Возвращает текущую директорию.

QUIT — Отключиться

REIN — Реинициализировать подключение

RETR — Скачать файл. Перед RETR должна быть команда PASV или PORT.

RMD — Удалить директорию

RNFR и RNTO — Переименовать файл.RNFR — что переименовывать, RNTO — во что.

SIZE — Возвращает размер файла

STOR — Закачать файл. Перед STOR должна быть команда PASV или PORT.

SYST — Возвращает тип системы(UNIX, WIN, …)

TYPE — Установить тип передачи файла(Бинарный, текстовый)

USER — Имя пользователя для входа на сервер

Список кодов ответов FTP сервера: 100 Запрошенное действие инициировано, дождитесь следующего ответа прежде, чем выполнять новую команду.

110 Комментарий

120 Функция будет реализована через nnn минут

125 Канал открыт, обмен данными начат

150 Статус файла правилен, подготавливается открытие канала

200 Команда корректна

202 Команда не поддерживается

211 Системный статус или отклик на справочный запрос

212 Состояние каталога

213 Состояние файла

214 Справочное поясняющее сообщение

215 Выводится вместе с информацией о системе по команде SYST

220 Слишком много подключений к FTP-серверу (можете попробовать позднее). В некоторых версиях указывает на успешное завершение промежуточной процедуры

221 Благополучное завершение по команде quit

225 Канал сформирован, но информационный обмен отсутствует

226 Закрытие канала, обмен завершен успешно

227 Переход в пассивный режим (h1,h2,h3,h4,p1,p2).

228 переход в длинный пассивный режим (длинный адрес, порт).

229 Переход в расширенный пассивный режим (|||port|).

230 Пользователь идентифицирован, продолжайте

231 Пользовательский сеанс окончен; Обслуживание прекращено.

232 Команда о завершении сеанса принята, она будет завершена по завершении передачи файла.

250 Запрос прошёл успешно

257 «ПУТЬ» создан.

331 Имя пользователя корректно, нужен пароль

332 Для входа в систему необходима аутентификация

350 Запрошенное действие над файлом требует большей информации

404 Данный удалённый сервер не найден

421 Процедура не возможна, канал закрывается

425 Открытие информационного канала не возможно

426 Канал закрыт, обмен прерван

434 Запрашиваемый хост недоступен

450 Запрошенная функция не реализована, файл не доступен, например, занят

451 Локальная ошибка, операция прервана

452 Ошибка при записи файла (недостаточно места)

500 Синтаксическая ошибка, команда не может быть интерпретирована (возможно она слишком длинна)

501 Синтаксическая ошибка (неверный параметр или аргумент)

502 Команда не используется (нелегальный тип MODE)

503 Неудачная последовательность команд

504 Команда не применима для такого параметра

530 Вход не выполнен! Требуется авторизация (notloggedin)

532 Необходима аутентификация для запоминания файла

550 Запрошенная функция не реализована, файл не доступен, например, не найден

551 Запрошенная операция прервана. Неизвестный тип страницы.

552 Запрошенная операция прервана. Выделено недостаточно памяти

553 Запрошенная операция не принята. Недопустимое имя файла.