TFTP

TFTP
TFTP
Название:

Trivial File Transfer Protocol

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

Прикладной

Семейство:

UDP/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, в отличие от FTP, не содержит возможностей аутентификации (хотя возможна фильтрация по IP-адресу) и основан на транспортном протоколе UDP.

Содержание

Применение

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

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

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

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

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

0x01/0x02 (тип пакета) Имя файла 0x00 (конец строки) Режим передачи 0x00 (конец строки) Опции… (если есть)
2 байта строка в ASCII 1 байт строка в 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 байт строка в ASCII 1 байт

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

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

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

Ошибки

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

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

Код ошибки может принимать одно из значений, перечисленных в 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.

Игры ⚽ Поможем решить контрольную работу

Полезное


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

  • Tftp — Название: Trivial File Transfer Protocol Уровень (по модели OSI): Прикладной Семейство: IP Создан в: 1980 г. Порт/ID: 69/UDP Назначение протокола: Передача файлов Спецификация: RFC 1350 / …   Википедия

  • TFTP — son las siglas de Trivial File Transfer Protocol (Protocolo de transferencia de archivos trivial). Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se utiliza para transferir pequeños archivos entre …   Enciclopedia Universal

  • TFTP — may refer to:* Trivial File Transfer Protocol * Terrorist Finance Tracking Program …   Wikipedia

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

  • TFTP — Trivial File Transfer Protocol (TFTP) Familia: Protocolo de red LAN Función: transferencia de archivos Puertos: 69/UDP Ubicación en la pila de protocolos Aplicación TFTP …   Wikipedia Español

  • TFTP — Trivial File Transfer Protocol TFTP (pour Trivial File Transfer Protocol ou Protocole simplifié de transfert de fichiers) est un protocole simplifié de transfert de fichiers. Il fonctionne en UDP sur le port 69, au contraire du FTP qui utilise… …   Wikipédia en Français

  • TFTP — Die Abkürzung TFTP steht für: Terrorist Finance Tracking Program, Programm zum Aufspüren von Terrorfinanzierungen Trivial File Transfer Protocol, Dateiübertragungsprotokoll Diese Seite ist eine Begriffsklärung zur Unterscheidung mehrerer mit… …   Deutsch Wikipedia

  • TFTP — Trivial File Transfer Protocol (Computing » Networking) * Trivial File Transfer Program (Computing » General) …   Abbreviations dictionary

  • TFTP — trivial file transfer protocol [software] …   Medical dictionary

  • TFTP — Trivial File Transfer Protocol benutzt zum Booten von Diskless Workstations übers Netz …   Acronyms


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»