Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сети_лекции2.doc
Скачиваний:
146
Добавлен:
11.03.2015
Размер:
25.77 Mб
Скачать

10. Протоколы прикладного уровня тсрлр

Протокол прикладного уровни - протокол верхнего уровня, ко­торый обеспечивает взаимодействие различных сетевых приложений. Как правило, протоколы прикладного уровня стека протоколов TCP/IP работают поверх транспортных протоколов TCP и UDP и привязаны к определенному порту.

10.1. Протокол ftp

FTP (File Transfer Protocol - протокол передачи файлов) - прото­кол прикладного уровня стека протоколов TCP/IP. предназначенный для передачи файлов по сети с использованием транспортного прото­кола TCP. Спецификация FTP содержится в документе RFC 959.

Для передачи файлов с помощью протокола FTP используются FTP-клиент и FTP-сервер, изображенные на рис. 10.1. FTP-клиент со­стоит из пользовательского интерфейса, интерпретатора команд и процесса передачи данных. А FTP-Сервер состоит только из интерпре­татора команд и процесса передачи данных.

Кроме того между FTP-клиентом и FTP-сервером устанавливаются два ТСР-соединения: командное соединение и соединение для переда­чи данных.

Рис. 10.1. FTP-клиент и FTP-сервер

Интерпретатор команд интерпретирует пользовательские коман­ды в команды FTP. выполняет FTP-команды и управляет процессом передачи данных. Некоторые команды протокола FTP приводятся в таблице 10.1.

Таблица 10.1. Основные команды FTP

Команда

Назначение

USER имя_пользоватвля

11деш нфицнрует пользователя, пытающего­ся получить доступ к файлам

PASS пароль

Отсылает пароль пользователя

QUIT

Закрывает командное соединение

PORT h1,h2,h3,h4,p1,p2

Устанавливает номер порта соединения для передачи данных (/? означает байты IP-адреса, р- номер порта)

RETR имя_каталога/имя_файла

Получаег файл из процесса передачи данных FTP-сервера

STOR имя_каталога/имя_файла

Отправляет файл в процесс передачи данных FTP-сервера

DELE имя_каталога/имя_файла

Удаляет файл на FTP-сервере

RMD имя_каталога

Удаляет каталог на FTP-сервере

MKD имя_каталога

Создает новый каталог на FTP-сервере

Ответ FTP-сервера на любую FTP-команду содержит код из трех цифр. Первая цифра:

  1. команда принята к выполнению, но еще не завершена;

  2. выполнение команды успешно завершено;

  3. команда принята и ожидается дополнительная команда;

  4. в данный момент команда не может быть выполнена;

  5. команда принципиально не может быть выполнена.

Вторая цифра:

  1. синтаксическая ошибка;

  2. информационное сообщение;

  3. сообщение относится либо к управляющему соединению, либо к соединению данных:

  4. сообщение об аутентификации пользователя и его правах;

  5. не определено;

  6. сообщение о состоянии файловой системы.

Третья цифра окончательно идентифицирует ответ. За кодом отве­та обычно следует отделенная пробелом поясняющая фраза на англий­ском языке, которая разъясняет человеку причину именно такого отве­та. Примеры:

150 Ok to send data.

220 FTP server ready.

331 User name okay, need password.

Полный список команд и ответов протокола FTP содержится в до­кументе RFC 959.

Процесс передачи данных (Data Transfer Process, DTP) - это про­цесс фактического перемещения данных по соединению, предназна­ченных для этих целей.

Командное соединение - это TCP-соединение между интерпрета­торами команд FTP-сервера и FTP-клиента. Клиент посылает по нему команды, а сервер - ответы. По умолчанию используется порт 21. Со­единение инициируется клиентом, а завершается сервером по команде клиента.

Соединение для передачи файлов - это TCP-соединение для пе­редачи данных между FTP-клиентом и FTP-сервером или двумя FTP-серверами. В качестве данных может быть часть файла, файл или группа файлов. По умолчанию используется порт 20. Соединение ини­циируется клиентом, а завершается сервером по окончании передачи данных.

Примеры FTP-сообщеннн

Чтобы понять, как работает протокол FTP, рассмотрим пример по­лучения файла с FTP-сервера. В этом примере S обозначает FTP-сервер, а С - FTP-клиента.

S: (Ожидает соединения)

С: (Устанавливает командное FTP-соединение. Порт сервера 21) S: 220 FTP server ready. (Сервер готов работать с новым пользователем)

С: USER имя_пользователя

S: 331 User name okay, need password. (Имя пользователя пра­вильное, нужен пароль)

С: PASS пароль

S: 230 Login successful. (Пользователь вошел в систему)

С: PORT IP-адрес, номер_порта (Запрос нового FTP-соединения

для передачи данных)

S: 200 Command ОК. (Команда принята)

С: (Устанавливает FTP-соединение для передачи данных. Порт

сервера 20)

С: RETR имя_файла

S: 150 Ok to send data. (Файл отправлен) S: 226 File receive ОК. (Передача завершена)

С: (Завершает FTP-соединение для передачи данных) С: QUIT

S: 221 Goodbye. (Завершение сеанса)

С: (Завершает командное FTP-соединение)