Рисунок 68. Форматы TFTP-сообщений
Операции запросов (RRQ и WRQ) требуют присылки пакета-отклика (ACK). Сначала устанавливается связь между клиентом и сервером, для этого посылаются запросы read или write. При этом сообщается имя файла и режим доступа (Mode). Предусмотрено три режима доступа, которые определяются значением поля MODE: NetASCII (американский стандарт для информационных обменов), побайтный (режим binary) и почтовый (данные поступают пользователю, а не заносятся в файл, при этом используется система кодов NetASCII). Предусмотрено шесть типов сообщений об ошибках:
0 - не определен;
1 - файл не найден;
2 - ошибка доступа;
3 - переполнение диска или превышение выделенной квоты;
4 - нелегальная TFTP-операция;
5 - неизвестный идентификатор обмена.
Если запросы read или write успешно выполнены, сервер использует IP-адрес и номер UDP-порта клиента для идентификации последующих операций. Таким образом, ни при пересылке данных, ни при передаче подтверждений (ACK) не нужно указывать явно имя файла. Блоки данных нумеруются, начиная с 1, подтверждение получения пакета имеет тот же номер. Получение блока с размером менее 512 байт означает конец файла. Получение сигнала об ошибке прерывает обмен. При возникновении тайм-аута производится повторная передача последнего блока данных или подтверждения. При задержке отклика, превышающей значение тайм-аута, возможно удвоение всех последующих блоков. Это происходит в некоторых реализациях программного обеспечения оттого, что из-за тайм-аута происходит повторная пересылка блока, а запоздавший отклик на блок i вызовет посылку блока i+1. Это будет продолжаться вплоть до конца пересылки файла. TFTP-протокол используется также и при реализации электронной почты (посылка файлов почтовой программе).
Отсутствие авторизации делает доступность TFTP одной из угроз безопасности. Именно по этой причине во многих инструкциях вы можете найти рекомендацию запретить применение этой утилиты.