What is TFTP?

Trivial File Transfer Protocol (TFTP) is a simplified file transfer protocol designed for applications that require basic file transfer functionality without the complexity of full-featured protocols like FTP. TFTP operates on a client-server model and provides an inexpensive, lightweight solution for simple file operations without authentication mechanisms.

TFTP is particularly useful for network bootstrapping scenarios, enabling devices to download boot images and configuration files from remote servers. It allows a device to bootstrap from a server on another physical network using the same underlying TCP/IP protocols that the operating system uses once it starts execution.

Unlike TCP-based protocols, TFTP runs on top of UDP (User Datagram Protocol) and uses port 69 as its well-known server port. Since UDP is unreliable, TFTP implements its own reliability mechanisms using timeout and retransmission to ensure data delivery.

TFTP Communication Flow Client (Any Port) Server (Port 69) 1. RRQ/WRQ Request 2. DATA Block 3. ACK Stop-and-Wait: Each block acknowledged before next is sent Uses UDP with timeout/retransmission for reliability

Key Features of TFTP

  • Simple and lightweight − Uses basic file transfer operations without complex directory browsing or user management features.

  • No authentication − TFTP does not support user authentication or access control mechanisms, making it inherently unsecured.

  • Stop-and-wait protocol − Implements idle-RQ (stop and wait) error recovery where each data block must be acknowledged before the next is transmitted.

  • Fixed block size − Uses 512-byte data blocks with sequence numbering for proper ordering and duplicate detection.

  • Adaptive timeout − Uses exponential backoff algorithm for retransmission timing to handle network congestion.

TFTP Message Types

TFTP defines five message types, each identified by a 2-byte opcode:

Read Request (RRQ) - Opcode 1

Opcode (1) Filename 0 Mode 0
2 bytes Variable 1 byte Variable 1 byte

Write Request (WRQ) - Opcode 2

Opcode (2) Filename 0 Mode 0
2 bytes Variable 1 byte Variable 1 byte

Data (DATA) - Opcode 3

Opcode (3) Block Number Data
2 bytes 2 bytes 0-512 bytes

Acknowledgment (ACK) - Opcode 4

Opcode (4) Block Number
2 bytes 2 bytes

The mode field specifies the transfer type: netascii for ASCII text files or octet for binary files. Filename and mode fields are null-terminated strings. A data block smaller than 512 bytes indicates the end of file transfer.

Common Use Cases

  • Network booting − Diskless workstations downloading boot images from network servers.

  • Router and switch configuration − Cisco and other network devices loading configuration files and firmware updates.

  • Embedded systems − IoT devices and embedded systems requiring simple file transfer capabilities.

Conclusion

TFTP provides a simple, lightweight file transfer solution ideal for network booting and basic file operations. While it lacks security features, its simplicity and minimal resource requirements make it valuable for embedded systems and network device configuration scenarios.

Updated on: 2026-03-16T23:36:12+05:30

6K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements