Requires only UDP, IP and the device driver. It can easily fit into ROM.
Uses a stop-and-wait protocol for flow control.
Lost packets are detected by timeout and retransmission.
TFTP protocol uses only 4 message types encoded in ASCII:
Read Request.
(To initiate a file read operation.)
Write Request.
(For security reasons, the file should already exist.)
Data Block.
(Used to convey the file operations.)
Acknowledgement.
(Used to indicate an error condition.)
The TFTP server ( tftpd ) is generally run set-rooted (i.e. it has access
to its own directory only). Note that there is no password or any
other protection of the access to the files via tftp.
The TFTP request is sent to the well know port number (69/UDP).
TFTP server uses an unused ephemeral port for its replies.
A TFTP transfer can last for quite some time because of the inherent mechanism.
TFTP can support multiple client transfer requests concurrently.
TFTP is widely used for bootstrapping diskless systems (such as X terminals) and for
dumping the configuration on routers (This is where the write request is used), basically
you have to be on the same LAN for efficiency.
For further reading, refer to the following:
Data Communications, Computer Networks and Open Systems
, Fred Halsall, 3rd
edition, Addison-Wesley, 1988.