A Trivial File Transfer Protocol (TFTP) server is based on a simple Fire Transfer Protocol (FTP) that was first defined in 1980. TFTP books routers and other computers that do not have storage devices. It also transfers small files between two or more computer network hosts such as a transfer initiated on a remote X Window System terminal. TFTP servers are also based on the traditional EFTP protocol that was part of the PUP protocol tool suite and is normally one of the first protocols used on a new host type. TFTP servers use UDP vice TCP datagram packets for network communications.
TFTP servers use UDP port 69 for their transport protocol, which helps to avoid conflicts with the FTP protocol that uses TCP port 21. The service is incapable of authentication on its own, encryption, and listing directory contents. The TFTP protocol’s primary purpose is to read or write files to a remote server and support the octet, netascii, and mail transfer modes, although mail transfer modes are rarely used in today’s network environment. The original TFTP protocol definition had a limit of 32 MB for file transfers. This was changed in 1988 to permit a maximum file size of 4 GB, which is rarely used. Due to the lack of inherent security within the TFTP protocol, TFTP servers are rarely used over the open Internet, and are instead used on local or private networks.
How does TFTP Work?
TFTP starts when an initiating host sends a read or write request data packet to the TFTP host over port 69 that contains a transfer mode and file name. The server then sends an acknowledgment packet and then a data packet to the RRQ. The packet is sent from a freshly allocated port that is then used for the remainder of the session. The source host then sends numbered data packets that all contain full blocks of 512 bytes to the destination. The destination host then replies with acknowledgment packets for all of the data packets that were sent. The final data packet will contain less than the full 512 bytes, signaling that it is the end of the transmission. If the file’s size happens to be equal to a multiple of 512, the final data packet will be sent with 0 bytes. If an acknowledgment is not received for each data packet transmitted, then the information will be retransmitted.
The TFTP protocol that the TFTP servers implemented originally had a file size limit of 32 MB. The limit was subsequently increased to 4 GB as well as the features of block-size and option negotiation. The file size for data transfers can also be increased if both the TFTP server and client support block number wrap around. However, TFTP servers are still required to provide their own transport and session support since the protocol uses UDP datagram packets.