Trivial File Transfer Protocol |
Trivial File Transfer Protocol (TFTP) is a very simple file (computer) transfer network protocol, with the functionality of a very basic form of File Transfer Protocol; it was first defined in 1980.
Since it was so simple, it was easy to implement in a very small amount of memory (computer), an important consideration at that time. TFTP was therefore useful for booting computers such as routers which did not have any mass storage devices. It is still used to transfer small files between hosts on a computer network, such as when a remote X Window System computer terminal or any other thin client boots from a network host or server.
TFTP is based on part on the earlier protocol EFTP, which was part of the PARC Universal Packet protocol suite. In the early days of work on the TCP/IP protocol suite, TFTP was often the first protocol implemented on a new host type, because it was so simple.
The original versions of TFTP, prior to RFC 1350, displayed a particularly bad protocol flaw, which was named Sorcerer s Apprentice Syndrome (after the Sorcerer s Apprentice segment of Fantasia (movie)) when it was discovered.
=Technical information=
Some details of TFTP:
It uses user datagram protocol (port 69) as its Transport layer (unlike FTP which uses Transmission Control Protocol port 21).
It cannot list directory contents.
It has no authentication or encryption mechanisms.
It is used to read files from, or write files to, a remote server.
It supports three different transfer modes, netascii , octet and mail , with the first two corresponding to the ASCII and image (binary and text files) modes of the FTP protocol; the third is now obsolete and is hardly ever used.
Since TFTP utilizes UDP, it has to supply its own transport and session support. Each file transferred via TFTP constitutes an independent exchange. That transfer is performed in lock-step, with only one packet (either a block of data, or an acknowledgement ) ever in flight on the network at any time. Due to this lack of windowing, TFTP provides low throughput over high Latency (engineering) links.
Due to the lack of security, it is dangerous over the open Internet. Thus, TFTP is generally only used on private, local networks.
Option negotiation was later added to the protocol (by RFC 2347), and the options thus negotiated can modify the operation of the protocol slightly (in particular, use of a larger block-size improves the throughput somewhat), but the protocol remains basically the same.
== Details of a TFTP session ==
The initiating host A sends an RRQ (read request) or WRQ (write request) packet to host B, containing the filename and transfer mode.
B replies with an ACK (acknowledgement) packet, which also serves to inform A of which port on host B the remaining packets should be sent to.
The source host sends numbered DATA packets to the destination host, all but the last containing a full-sized block of data. The destination host replies with numbered ACK packets for all DATA packets.
The final DATA packet must contain less than a full-sized block of data to signal that it is the last. If the size of the transferred file is an exact multiple of the block-size, the source sends a final DATA packet containing 0 bytes of data.
= See also =
List of well-known ports (computing)
Simple File Transfer Protocol
SSH file transfer protocol
= References =
Karen R. Sollins, [http://www.isi.edu/in-notes/ien/ien133.txt The TFTP Protocol] (IEN 133, January, 1980)
Karen R. Sollins, TFTP Protocol (revision 2) (RFC 783, June, 1981)
Karen R. Sollins, TFTP Protocol (revision 2) (RFC 1350, July, 1992)
R. Finlayson, Bootstrap loading using TFTP (RFC 906, June, 1984)
Gary Malkin, A. Harkin, TFTP Option Negotiation Analysis (RFC 1785, March 1995)
Gary Malkin, A. Harkin, TFTP Option Extension (RFC 2347, May 1998)
Gary Malkin, A. Harkin, TFTP Blocksize Option (RFC 2348, May 1998)
Gary Malkin, A. Harkin, TFTP Timeout Interval and Transfer Size Options (RFC 2349, May 1998)
= External links =
[http://www.scit.wlv.ac.uk/cgi-bin/mansec1+tftp Tftp Manual on Unix]
[http://www.pegsol.com/whitehorn/downloads.htm Whitehorn TFTP Server] free multithreaded TFTP server
[http://www.solarwinds.net/Tools/Free_tools/TFTP_Server/ FREE TFTP Server by Solarwinds]
[http://freshmeat.net/projects/atftp/ Advanced TFTP server and client]