Лучшие вопросы
Таймлайн
Чат
Перспективы

Trivial File Transfer Protocol

простой протокол передачи файлов Из Википедии, свободной энциклопедии

Remove ads

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

Краткие факты TFTP, Название ...
Remove ads

Применение

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

TFTP наряду с HTTP используется для программирования микроконтроллеров методом In-Application Programming (IAP) через интерфейс Ethernet[1].

Remove ads

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

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

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

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

Remove ads

Типы пакета

В протоколе TFTP предусмотрены 4 вида пакетов, кодируемые пятью кодами операции (англ. opcode). Для кода операции зарезервированы два первых байта в пакете[3]:

  • RRQ/WRQ packet — пакет запроса чтения (Read request; opcode 1) или записи (Write request; opcode 2);
  • Data packet — пакет с данными (opcode 3);
  • ACK packet — пакет подтверждения (Acknowledgment; opcode 4);
  • Error packet — пакет с сообщением об ошибке (opcode 5).

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

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

Подробнее 0x01/0x02 (тип пакета), Имя файла ...

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

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

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

Remove ads

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

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

Remove ads

Опции TFTP

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

Подробнее Код опции, 0x00 (конец строки) ...

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

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

Подробнее Название, Определена в ...
Remove ads

Ошибки

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

Подробнее 0x05 (тип пакета), Код ошибки ...

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

Подробнее Код ошибки, Описание ...
Remove ads

Схема URI

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

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

Например:

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

Стандарты

Опции

См. также

Примечания

Литература

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads