TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
на сервер как CWD (изменить рабочий каталог). Каталог сервера изменяется на rfc, и можно начинать копирование документов RFC.
для чего будет создано второе соединение.
и послал на сервер команду PORT, указывая серверу на соединение через этот порт.
Первая команда запрашивала у сервера переход в каталог rfc. Затем проведено копирование удаленного документа rfcl842.txt в локальный файл, названный myrfc. Если не вводить имя файла, локальный файл получит то же имя, что и удаленный файл.
FTP позволяет записывать имена удаленных файлов так же, как это делают пользователи удаленного хоста. Копируя файл на локальный компьютер, можно присвоить ему локальное имя файла. Если имя не присваивается, то при необходимости FTP преобразует имя удаленного файла в формат, допустимый для локального хоста. Иногда это приводит к преобразованию символов из нижнего регистра в верхний и к усечению имен.
Протокол FTP имеет характерный стиль операций. Всякий раз, когда должен быть скопирован файл, для пересылки данных открывается и используется второе соединение. После команды get (получить) в приведенном примере диалога локальный клиент FTP получает второй порт и указывает серверу на открытие соединения с этим портом. Мы не видели команду, инициирующую эту операцию, но видели ответную реакцию:
На рис. 14.1 показан доступ к другому общедоступному архиву, но через приложение для пересылки файлов Chameleon (в среде Windows), имеющее графический пользовательский интерфейс.
Рис. 14.1. Доступ к архиву пересылки файлов из программы Chameleon
Файлы могут копироваться перетаскиванием их значков из одного окна в другое или щелчком мыши на кнопке со стрелкой. Имя локального файла можно ввести в окне слева, расположенном ниже метки Files.
К тому же самому сайту можно обратиться и из клиента пересылки файлов Netscape (см.
Рис. 14.2. Доступ к архиву пересылки файлов из Netscape
14.3 Модель FTP
Как видно из приведенного выше диалога, пользователь взаимодействует с локальным клиентом FTP (точнее, с соответствующим процессом). Программное обеспечение локального клиента управляет преобразованием данных для удаленного сервера FTP через управляющее соединение. Когда конечный пользователь вводит команду пересылки или работы с файлом, эта команда транслируется в одно из специальных сокращений, используемых для управляющего соединения.
В сущности, управляющее соединение — это обычный сеанс telnet в режиме NVT. Клиент отправляет команду на сервер через управляющее соединение, а сервер возвращает ответ по этому же соединению.
Когда пользователь запрашивает пересылку файла, открывается отдельное соединение для передачи данных, и по нему пересылается файл. Это соединение используется и для пересылки содержимого каталогов. Модель FTP показана на рис. 14.3. Обычно сервер использует порт 20 для соединения пересылки данных.
Рис. 14.3. Управляющее соединение и соединение пересылки данных в FTP
Во время вышерассмотренного диалога конечный пользователь вводил запросы на изменение удаленного каталога и пересылку файла. Эти запросы преобразовывались в формат команд FTP и пересылались по управляющему соединению на удаленный сервер FTP. Пересылка файлов производится по отдельному соединению, задаваемому для обмена данными.
14.4 Команды FTP
Какие команды можно передавать по управляющему соединению? Существуют команды аутентификации, дающие возможность пользователю указать идентификатор, пароль и регистрационную запись для работы с FTP.
Команды пересылки файлов позволяют:
■ Копировать одиночный файл между хостами
■ Копировать несколько файлов между хостами
■ Добавлять содержимое локального файла к удаленному файлу
■ Копировать файл и добавлять к его имени номер для формирования уникального имени (например, файлы ежедневной регистрации получат имена log.1, log.2 и т.д.)