Протокол передачи файлов FTP

 

Сетевая файловая служба на основе протокола FTP (File Transfer Protocol) пред­ставляет собой одну из наиболее ранних служб, используемых для доступа к удаленным файлам. До появления службы WWW это была самая популярная служба доступа к удаленным данным в Интернете и корпоративных IP-сетях. Первые спецификации FTP относятся к 1971 году. Серверы и клиенты FTP име­ются практически в каждой ОС семейства UNIX, а также во многих других сетевых ОС. Клиенты FTP встроены сегодня в программы просмотра (браузеры) Интернета, так как архивы файлов на основе протокола FTP по-прежнему попу­лярны и для доступа к таким архивам браузером используется протокол FTP.

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

Протокол FTP выполнен по схеме клиент-сервер. Клиент FTP состоит из не­скольких функциональных модулей:

□ User Interface — пользовательский интерфейс, принимающий от пользовате­ля символьные команды и отображающий состояние сеанса FTPна символь­ном экране.

□ User-PI — интерпретатор команд пользователя. Этот модуль взаимодействует с соответствующим модулем сервера FTP.

□ User-DTP — модуль, осуществляющий передачу данных файла по командам, получаемым от модуля User-PI по протоколу клиент-сервер. Этот модуль взаи­модействует с локальной файловой системой клиента.

FTP-сервер включает следующие модули:

□ Server-PI — модуль, который принимает и интерпретирует команды, переда­ваемые по сети модулем User-PL

□ Server-DTP — модуль, управляющий передачей данных файла по командам от модуля Server-PI. Взаимодействует с локальной файловой системой сервера.

Клиент и сервер FTP поддерживают параллельно два сеанса — управляющий се­анс и сеанс передачи данных. Управляющий сеанс открывается при установле­нии первоначального FTP-соединения клиента с сервером, причем в течение одного управляющего сеанса может последовательно выполняться несколько се­ансов передачи данных, в рамках которых передаются или принимаются не­сколько файлов.

Общая схема взаимодействия клиента и сервера выглядит следующим образом:

1. Сервер FTP всегда открывает управляющий порт TCP 21, для прослушива­ния, ожидая приход запроса на установление управляющего сеансаFTP от удаленного клиента.

2. После установления управляющего соединения клиент отправляет на сервер команды, которые уточняют параметры соединения:

О имя и пароль клиента;

О роль участников соединения (активная или пассивная);

О порт передачи данных;

О тип передачи;

О тип передаваемых данных (двоичные данные или ASCII-код);

О директивы на выполнение действий (читать файл, писать файл, удалить файл и т. п.).

3. После согласования параметров пассивный участник соединения переходит в режим ожидания открытия соединения на порт передачи данных. Активный участник инициирует это соединение и начинает передачу данных.

4. После окончания передачи данных соединение по портам данных закрывает­ся, а управляющее соединение остается открытым. Пользователь может по управляющему соединению активизировать новый сеанс передачи данных.

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

Протокол FTP использует при взаимодействии клиента с сервером несколько команд (не следует их путать с командами пользовательского интерфейса клиен­та, которые использует человек).

Эти команды делятся на три группы:

□ команды управления доступом к системе;

□ команды управления потоком данных;

□ команды службы FTP.

 

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

 

□ USER — доставляет серверу имя клиента. Эта команда открывает управляю­щий сеанс и может также передаваться при открытом управляющем сеансе для смены имени пользователя.

□ PASS — передает в открытом виде пароль пользователя.

□ CWD — изменяет текущий каталог на сервере.

□ REIN — повторно инициализирует управляющий сеанс.

□ QUIT — завершает управляющий сеанс.

 

Команды управления потоком устанавливают параметры передачи данных:

 

□ PORT — определяет адрес и порт хоста, который будет активным участником соединения при передаче данных. Например, команда PORT194,85,135,126,7,205 назначает активным участником хост 194.85.135.126 и порт 1997 (вычисление номера порта не тривиально, но вполне однозначно).

□ PASV — назначает хост пассивным участником соединения по передаче дан­ных. В ответ на эту команду должна быть передана командаPORT с указанием адреса и порта, находящегося в режиме ожидания.

□ TYPE — задает тип передаваемых данных (ASCII-код или двоичные данные).

□ STRU — определяет структуру передаваемых данных (файл, запись, страница).

□ MODE — задает режим передачи (потоком, блоками и т. п.).

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

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

□ RETR — запрашивает передачу файла от сервера на клиентский хост. Парамет­рами команды является имя файла. Может быть задано также смещение от начала файла — это позволяет начать передачу файла с определенного места при непредвиденном разрыве соединения (этот параметр используется в ко­манде reget пользовательского интерфейса).

□ STOR — инициирует передачу файла от клиента на сервер. Параметры анало­гичны команде RETR.

□ RNFR и RNTO — команды переименования удаленного файла. Первая в качестве аргумента получает старое имя файла, а вторая — новое.

□ DELE, MKD, RMD, LIST — эти команды соответственно удаляют файл, создают ката­лог, удаляют каталог и передают список файлов текущего каталога.

Каждая команда протокола FTP передается в текстовом виде по одной команде в строке. Строка заканчивается символами CR и LF ASCII-кода. Пользовательский интерфейс клиента FTP зависит от его программной реализа­ции. Наряду с традиционными клиентами, работающими в символьном режиме, имеются и графические оболочки, не требующие от пользователя знания сим­вольных команд.

Символьные клиенты обычно поддерживают следующий основной набор команд:

□ open имя_хоста — открытие сеанса с удаленным сервером.

□ bye — завершение сеанса с удаленным хостом и завершение работы утилиты ftp.

□ close — завершение сеанса с удаленным хостом, утилита ftp продолжает рабо­тать.

□ ls (dir) — печать содержимого текущего удаленного каталога.

□ get имя_файла — копирование удаленного файла на локальный хост.

□ put имя_файла — копирование удаленного файла на удаленный сервер.

 








Дата добавления: 2015-06-10; просмотров: 1288;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.