TFTP
siglaSignifica: Trivial File Transfer Protocol
Um protocolo mínimo de transferência de arquivos sem autenticação, usado para inicializar dispositivos.
Protocolo Trivial de Transferência de Arquivos (do inglês Trivial File Transfer Protocol, RFC 1350) é um protocolo minúsculo baseado em UDP, comum para boot de rede (PXE) e firmware de dispositivos, deliberadamente simples e por isso sem autenticação.
Todo pacote começa com um opcode de dois bytes: 1 read request (RRQ), 2 write request (WRQ), 3 DATA, 4 ACK e 5 ERROR. O pedido vai para a porta UDP 69, mas o servidor responde de uma porta que ele mesmo escolhe, e a RFC 1350 chama as duas portas de transfer identifiers: até o fim da transferência, um pacote vindo de qualquer outra porta de origem é descartado e respondido com erro. Os dados andam em blocos de 512 bytes numerados a partir de um, cada um confirmado antes do próximo, e um bloco menor que 512 bytes encerra a transferência.
Esse lock step mantém o protocolo pequeno, e o preço é a vazão. A RFC 2347 (1998) deixa o cliente anexar opções ao pedido e o servidor confirmá-las num option acknowledgment (OACK, opcode 6); só o cliente pode propor. A RFC 2348 negocia o blksize, de 8 a 65464 octetos, a RFC 2349 um timeout de 1 a 255 segundos e o tsize, o tamanho do arquivo, e a RFC 7440 (2015) um windowsize de 1 a 65535 blocos enviados antes de cada ACK. No teste da RFC 7440 com um arquivo de 180 MB em blocos de 1456 bytes, um bloco por ACK levou 257 segundos e uma janela de 16 levou 42.
O TFTP não tem login nem controle de acesso, então a RFC 1350 diz que servidores costumam oferecer só arquivos de leitura pública e recusar escritas, e a RFC 7440 acrescenta que ele não tem proteção contra um atacante no caminho. Um pacote ERROR nunca é confirmado nem retransmitido, então um que se perde só aparece como timeout. Um número de bloco de dois bytes que começa em um conta 65535 blocos, 33.553.920 bytes a 512 bytes cada, e a RFC 1350 não diz o que vem depois.
Também conhecido como: tftp
Fontes
- RFC 1350, The TFTP Protocol (Revision 2), July 1992: sections 2, 4, 5, 6, 7 and Security Considerations (read 2026-10-19)
- RFC 2347, TFTP Option Extension, May 1998: Packet Formats and Negotiation Protocol (read 2026-10-19)
- RFC 2348, TFTP Blocksize Option, May 1998: Blocksize Option Specification (read 2026-10-19)
- RFC 2349, TFTP Timeout Interval and Transfer Size Options, May 1998: Timeout Interval and Transfer Size Option Specifications (read 2026-10-19)
- RFC 7440, TFTP Windowsize Option, January 2015: sections 3, 5 and 7 (read 2026-10-19)