Trivial File Transfer Protocol


Trivial File Transfer Protocol
TFTP
Название:

Trivial File Transfer Protocol

Уровень (по модели OSI):

Прикладной

Семейство:

IP

Создан в:

~ 1980 г.

Порт/ID:

69/UDP

Назначение протокола:

Передача файлов

Спецификация:

RFC 1350 / STD 33

Основные реализации (клиенты):

RIS Windows, tftp.exe

Основные реализации (серверы):

WinAgents TFTP Server, RIS Windows, tftpd

Расширяемость:

Опции (RFC 2347)

Основные расширения:

Размер блока (RFC 2348), Таймаут передачи (RFC 2349)

TFTP (англ. Trivial File Transfer Protocol — простой протокол передачи файлов) используется главным образом для первоначальной загрузки бездисковых рабочих станций. TFTP, в отличие от аутентификации (хотя возможна фильтрация по IP-адресу) и основан на транспортном протоколе

Применение

Основное назначение TFTP — обеспечение простоты реализации клиента. В связи с этим он используется для загрузки бездисковых рабочих станций, загрузки обновлений и конфигураций в «умные» сетевые устройства, записи статистики с мини-АТС (CDR) и аппаратных маршрутизаторов/файрволов.

Безопасность

Поскольку протокол не поддерживает аутентификации, единственный метод идентификации клиента — это его сетевой адрес (который может быть подделан). Обычно в Unix-системах tftpd доступен только каталог /tftpboot. Однако в старых TFTP-серверах было возможным получить файл паролей командой GET ../etc/passwd.

Демон tftpd (одна из реализаций tftp-сервера) отказывается обрабатывать файлы, содержащие в своём имени комбинацию «/../» или начинающуюся с «../». Запись разрешается только в файлы, которые уже существуют (любого размера, например нулевого), и доступны для публичной записи (права доступа: -rw-rw-rw-). [1]

Дополнительная защита от доступа к произвольным файлам осуществляется с помощью на каталог tftpd (обычно /usr/TFTPRoot).

Типы пакета

Сначала в TFTP-пакете идет поле размером в 2 байта, определяющее тип пакета:

  • Read Request (RRQ, #1) — запрос на чтение файла.
  • Write Request (WRQ, #2) — запрос на запись файла.
  • Data (DATA, #3) — данные, передаваемые через TFTP.
  • Acknowledgment (ACK, #4) — подтверждение пакета.
  • Error (ERR, #5) — ошибка.
  • Options Acknowledgment (OACK, #6) — подтверждение опций.

Запросы на чтение и запись

Для начала передачи данных клиент должен послать серверу WRQ или RRQ-пакет. У обоих пакетов формат одинаковый:

0x01/0x02 (тип пакета) Имя файла 0x00 (конец строки) Режим передачи 0x00 (конец строки) Опции… (если есть)
2 байта строка в строка в ASCII 1 байт См. «Опции»

В TFTP существует 2 режима передачи (режим Mail, определенный в IEN 133, признан устаревшим):

  • netascii — файл перед передачей перекодируется в ASCII.
  • octet — файл передается без изменений.

После RRQ-пакета сервер сразу начинается передача данных сервером. В случае WRQ-запросом сервер должен прислать ACK-пакет c номером пакета 0.

Процесс передачи данных

После получения запроса RRQ, сервер сразу посылает в качестве подтверждения пакет с данными и с ID пакета равным единице. В WRQ в качестве подтверждения используется ACK с ID равным нулю. Всего по TFTP можно передать 32 Мб (65536 * 512 / 1024²), однако из-за использования знакового int вместо беззнакового, размер подтверждения ограничен 16 мегабайтами. Однако если клиент и сервер поддерживают расширения протокола RFC 2347 и RFC 2348, то максимальный размер передаваемого файла увеличивается до 4Gb.

Опции TFTP

В RFC 2347 был предусмотрен формат опций, которые можно присоединять к окончанию RRQ-пакета и WRQ-пакета:

Код опции 0x00 (конец строки) Значение опции 0x00 (конец строки)
строка в байт строка в ASCII 1 байт

Опций может быть несколько. Тогда они будут следовать друг за другом. Порядок опций не важен.

В ответ на RRQ (или WRQ) с опциями, сервер должен прислать OACK с списком опций, которые сервер принял. Наиболее распространённые опции:

Название Определена в Код опции
Размер блока RFC 2348 blksize В качестве значения опции идёт число, принимающее значение от 8 до 65464, обозначающее размер блока.
Интервал повторной передачи (Timeout) RFC 2349 timeout В качестве значения опции идёт число, принимающее значение от 1 до 255, обозначающее время ожидания перед повторной передачей блока в секундах.
Размер файла RFC 2349 tsize В качестве значения опции идёт число, обозначающее размер передаваемого файла в байтах.

Ошибки

В TFTP информация об ошибке имеет следующий формат:

0x05 (тип пакета) Код ошибки Описание ошибки 0x00 (конец строки)
2 байта 2 байта строка в

Код ошибки может принимать одно из значений, перечисленных в STD 33 (за исключением кода 8 — он описан в RFC 2347). Вот они:

Код ошибки Описание
0 Нет определенного кода, см. текст ошибки
1 Файл не найден
2 Доступ запрещен
3 Невозможно выделить место на диске
4 Некорректная TFTP-операция
5 Неправильный Transfer ID
6 Файл уже существует
7 Пользователь не существует
8 Неправильная опция

Схема URI

В RFC 3617 определен формат URI для TFTP. Он имеет следующий вид:

tftp://[узел назначения]/[нужный файл];mode=[режим передачи]

Например:

tftp://example.com/todo.txt;mode=netascii

Стандарты

Опции

Библиография

  • У. Ричард Стивенс. «Протоколы TCP/IP. Практическое руководство». Глава 15, «Простейший протокол передачи файлов TFTP». ISBN 5-7940-0093-7
  • Х. Остерлох. «TCP/IP. Семейство протоколов передачи данных в сетях компьютеров». Глава 16 «Простейший протокол передачи файлов (TFTP)». ISBN 5-93772-039-3

Источники

  1. страницы документации man tftpd из состава FreeBSD 4.9

Ссылки


Wikimedia Foundation. 2010.

Смотреть что такое "Trivial File Transfer Protocol" в других словарях:

  • Trivial File Transfer Protocol — Trivial File Transport Protocol(TFTP) is a very simple file transfer protocol, with the functionality of a very basic form of FTP; it was first defined in 1980.Fact|date=September 2008Since it is so simple, it is easy to implement in a very small …   Wikipedia

  • Trivial File Transfer Protocol — Fonction Transfert de fichier simple Sigle TFTP Port 69 RFC …   Wikipédia en Français

  • Trivial File Transfer Protocol — TFTP (Trivial File Transfer Protocol) Familie: TCP/IP Einsatzgebiet: Laden von Betriebssystemen und anderen Daten über das Netzwerk Ports: 69/UDP TFTP im TCP/IP‑Protokollstapel: Anwendung TFTP Transport …   Deutsch Wikipedia

  • Trivial File Transfer Protocol —    Abbreviated TFTP. A little used and simplified version of the TCP/IP file transfer protocol that does not include password protection. Because it has no security associated with it, most system administrators do not support its use and… …   Dictionary of networking

  • Trivial File Transfer Protocol — simple protocol for transferring files, simple version of FTP that does not have the ability to check user identity, TFTP …   English contemporary dictionary

  • trivial file transfer protocol —    (TFTP)    A protocol used by BOOTP and X terminals to send and receive control information …   IT glossary of terms, acronyms and abbreviations

  • File Transfer Protocol — (FTP) is a network protocol used to transfer data from one computer to another through a network such as the Internet.FTP is a file transfer protocol for exchanging and manipulating files over a TCP computer network. A FTP client may connect to a …   Wikipedia

  • File Transfer Protocol — FTP (File Transfer Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Datenübertragung, Dateiverwaltung Port: 20/TCP DATA Port, 21/TCP Control Port FTP im TCP/IP‑Protokollstapel: Anwendung FTP …   Deutsch Wikipedia

  • File Transfer Protocol — Pour les articles homonymes, voir FTP. File Transfer Protocol Fonction Transfert de fichier Sigle F …   Wikipédia en Français

  • File transfer protocol — Pour les articles homonymes, voir FTP. Pile de protocoles 7 • Application 6 • …   Wikipédia en Français