Протоколы FTP и TFTP
Протокол FTP распространен также широко как Telnet , и также как он представляет собой клиент-серверный протокол. Он является одним из старейших протоколов семейства TCP/IP. Также как Telnet он пользуется транспортными услугами TCP.
FTP (англ. File Transfer Protocol —протокол передачи файлов) — протокол, предназначенный для передачи файлов в компьютерных сетях. FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер; кроме того,возможен режим передачи файлов между серверами.
Существует множество реализаций для различных операционных систем, которые хорошо взаимодействуют между собой. Пользователь FTP может вызывать несколько команд, которые позволяют ему посмотреть каталог удаленной машины, перейти из одного каталога в другой, а также скопировать один или несколько файлов.
Работа FTP на пользовательском уровне содержит несколько этапов:
- Идентификация (ввод имени-идентификатора и пароля).
- Выбор каталога.
- Определение режима обмена (поблочный, поточный, ASCII или двоичный).
- Выполнение команд обмена (get, mget, dir, mdel, mput или put).
- Завершение процедуры (quit или close).
Процедура организации FTP поддерживает две логические связи между узлами (компьютерами). Одна связь служит для удаленного доступа и использует протокол Telnet. Другая связь предназначена для обмена данными. Сервер производит операцию passive open для порта 21 и ждет соединения с клиентом. Клиент осуществляет операцию active open для порта 21. Канал остается активным до завершения процедуры FTP. Канал для передачи данных (TCP)формируется каждый раз для пересылки файлов. Канал открывается перед началом пересылки и закрывается по коду end_of_file (конец файла).
Конечный пользователь взаимодействует с протокольным интерпретатором, в задачи которого входит управление обменом информацией между пользователем и файловой системой, как местной, так и удаленной. Схема взаимодействия различных частей Internet при работе FTP изображена на рис. 113
Сначала по запросу клиента формируется канал управления, который в дальнейшем используется для передачи команд от клиента и откликов от сервера. Информационный канал формируется сервером по команде клиента, он не должен существовать постоянно на протяжении всей FTP-сессии и может формироваться и ликвидироваться по мере необходимости. Канал управления может быть закрыт только после завершения информационного обмена.Для канала управления используется протокол Telnet. После того как управляющий канал сформирован, клиент может посылать по нему команды. Сервер воспринимает,интерпретирует эти команды и передает отклики.
Рисунок 113 . Схема работы протокола FTP
TFTP (Trivial FTP, RFC-1350, -783,RFC-906, STD0033) представляет собой упрощенную версию FTP. TFTP не имеет системы безопасности и идентификации, она в отличии от FTP базируется на протоколе UDP (порт 69), а не TCP. Обычно передача осуществляется блоками по512 байт с ожиданием подтверждения приема каждого пакета (протокол "стой-и-жди"). TFTP используется при загрузке операционной системы в бездисковые рабочие станции или для загрузки конфигурационных файлов в маршрутизатор.
Поскольку протокол не поддерживает аутентификации, единственный метод идентификации клиента — это его сетевой адрес(который может быть подделан).
Порядок работы
Сначала устанавливается связь между клиентом и сервером, для этого посылаются запросы WRQ (write) или RRQ (read). При этом сообщается имя файла и режим доступа (Mode). Предусмотрено два режима доступа:
· netascii— файл перед передачей перекодируется в ASCII.
· octet — файл передается без изменений.
В начале TFTP-пакета идет поле размером в 2 байта, определяющее тип пакета:
ReadRequest (RRQ) — запрос на чтение файла.
WriteRequest (WRQ) — запрос на запись файла.
Data (DATA)— данные, передаваемые через TFTP.
Acknowledgment (ACK) — подтверждение пакета.
Error (ERR)— ошибка.
Options Acknowledgment (OACK) — подтверждение опций .
После получения RRQ-пакета сервером, он сразу начинает передачу данных. В случае с WRQ-запросом - сервер должен прислать ACK-пакет c номером пакета 0. Сервер использует IP-адрес и номер UDP-порта клиента для идентификации последующих операций. Таким образом, ни при пересылке данных, ни при передаче подтверждений (ACK) не нужно указывать явно имя файла. Блоки данных нумеруются, начиная с 1, подтверждение получения пакета имеет тот же номер. Получение блока с размером менее 512 байт означает конец файла. Получение сигнала об ошибке прерывает обмен. При возникновении тайм-аута производится повторная передача последнего блока данных или подтверждения.
Предусмотрено шесть типов сообщений об ошибках:
0 - не определен;
1 - файл не найден;
2 - ошибка доступа;
3 - переполнение диска или превышение выделенной квоты;
4 - нелегальная TFTP-операция;
5 - неизвестный идентификатор обмена.
Всего по TFTP можно передать 32 Мб (65536 * 512 / 1024²), однако если клиент и сервер поддерживают расширения протокола RFC 2347 и RFC 2348, то максимальный размер передаваемого файла увеличивается до 4Gb.
Дата добавления: 2019-09-30; просмотров: 867;