A shared means of communication is necessary when exchanging data between two computer systems in a network. One of the simplest protocols developed specifically for this purpose is the Trivial File Transfer Protocol (TFTP), which played an important role at the dawn of the internet.
What is Trivial File Transfer Protocol (TFTP)?
Trivial File Transfer Protocol is a technology that transfers files between network devices and is a simplified version of the more robust File Transfer Protocol (FTP). TFTP was developed in the 1970s for computers lacking sufficient memory or disk space to provide full FTP support. Today, TFTP is found on consumer broadband routers and commercial network routers.
Home network administrators use TFTP to upgrade the router firmware, while professional administrators use TFTP to distribute software across corporate networks.
Features of Trivial File Transfer Protocol
The main features of TFTP are as follows:
- TFTP is based on the client-server principle and uses the well-known UDP port number 69 for the TFTP server.
- TFTP is an unsecured protocol and does not support authentication.
- TFTP incorporates an idle − RQ (stop and wait) error recovery mechanism.
- Every TFTP data unit bears a sequence number.
- Each data unit is separately acknowledged. After taking the acknowledgment, the next data unit is transmitted.
- Error recovery is by retransmission after timeout. TFTP uses an adaptive timeout with an exponential back-off algorithm.
How Trivial File Transfer Protocol Works
As a lightweight file transfer protocol with a relatively small footprint, TFTP can fit inside small boot ROMs (Read Only Memory). Using ASCII (American Standard Code for Information Interchange) and binary modes, file transfers complete faster since TFTP uses UDP (User Datagram Protocol) for the transport layer protocol, which is much simpler compared to the complicated TCP (Transmission Control Protocol).
TFTP sends data block-by-block, with block sizes split into 512 bytes each. Since reliable delivery is not guaranteed by UDP, TFTP requires target devices to acknowledge if each block has been successfully received. Subsequent blocks are sent only after acknowledgment has been received by the sending device.
If acknowledgment for a block is not received within a specified time limit, the sending device pushes it out again until acknowledged by the target device. The last file block is always sent with a size less than 512 bytes so the target device knows it’s the last block. If the entire set of file blocks happens to be evenly divisible by 512, the sending device will send a block with zero bytes.
Thus, TFTP is a stop-and-wait protocol. Flow control is achieved by the sending device, one block at any instant of time.
Specific use-cases for TFTP include the device bootstrap process for downloading an OS (Operating System) and configuration files. You can also copy configuration files between nodes on the same network. For devices that get their IP (Internet Protocol) address through BOOTP (Bootstrap Protocol) or DHCP (Dynamic Host Configuration Protocol), they can use the TFTP protocol to download the bootstrap image and configuration files. You can also use TFTP in combination with FTP, such as loading the boot image and OS using TFTP, and the system image via FTP.
Types of TFTP
Generally, TFTP is of four types which are-
- Read request
- Write request
- Data Packets
- Acknowledgment request
Advantages and disadvantages of the TFTP
The TFTP stands out primarily because of its simplicity. The protocol is designed to enable reading and writing files and fulfills this role without having to establish a connection between the client and the server. As a result, the TFTP protocol is not only easy to implement but also paves the way for fast file transfers. Individual Transfer Identifiers (TIDs) and unique data block numbers ensure that the recipient receives the file in its entirety.
However, the lack of encryption or an authentication/access control mechanism makes sending sensitive files via the TFTP very risky, so safer alternatives such as a more complex FTP should be used. Furthermore, deleting and renaming files is not allowed on many TFTP servers.
TFTP is a very useful technology for the communication of files between servers and clients. It could be easily used since it requires less coding, less memory usage, and since authentication and security mechanism is not required hence, it could be easily used.