TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
Используя команды mget или mput и глобальные подстановочные символы можно одновременно копировать несколько файлов. Например, mget а* извлечет копии каждого файла с именем, начинающимся на букву а. Такой режим включается параметром glob, который разрешает или запрещает применение глобальных подстановочных символов.
В представленный ниже диалог включен вывод отладочной информации, чтобы дать некоторое представление о работе протокола:
■ Строки,
■ Строки, начинающиеся с числа, соответствуют сообщениям, посланным удаленным сервером для отчета о результате выполнения команды.
Для обращения к личным файлам введены реальные идентификатор пользователя (userid) и пароль.
Команда status (статус) показывает текущие параметры сеанса FTP. Многие из них будут рассмотрены ниже. Пока отметим, что тип данных (Type) указан как ASCII. При пересылке текстовых файлов FTP часто предполагает это значение по умолчанию.
Затем
запрашивается список файлов каталога. Такой список может быть очень большим, поэтому FTP посылает его по соединению для данных:FTP необходим порт для пересылки данных. Клиент посылает команду PORT, которая идентифицирует его IP-адрес (4 байта) и новый порт (2 байта), чтобы использовать эти значения при пересылке данных. Байты преобразуются в десятичный формат и разделяются запятыми. IP-адрес 128.36.4.22 будет записан как 128,36,4,22, а порт 2613 — как 10,53.
Сервер откроет соединение по указанному адресу socket. Команда LIST — это формальное сообщение для запроса подробного списка файлов каталога:
Далее сервер открывает соединение с объявленным клиентом портом:
Сразу после пересылки списка файлов соединение данных будет закрыто. Затем мы можем получить файл.
Клиент указывает новый адрес socket для переноса файла. Отметим, что на сей раз используется клиентский порт 2614 (10,54).
По завершении пересылки файла соединение для данных закрывается.
Отметим, что сценарий для соединения данных был таким:
■ Локальный клиент получил новый порт и использовал управляющее соединение, чтобы сообщить серверу FTP номер своего порта.
■ FTP-сервер связался с новым портом данных клиента.