Trivial File Transfer Protocol (TFTP)

From DrugPedia: A Wikipedia for Drug discovery

Revision as of 04:16, 4 September 2008 by Harinder (Talk | contribs)
Jump to: navigation, search

Trivial File Transfer Protocol (TFTP) is a very simple file transfer protocol, with the functionality of a very basic form of FTP; it was first defined in 1980.

Since it is so simple, it is easy to implement in a very small amount of memory — an important consideration at that time. TFTP was therefore useful for booting computers such as routers which did not have any data storage devices. It is still used to transfer small files between hosts on a network, such as when a remote X Window System terminal or any other thin client boots from a network host or server.

TFTP is based in part on the earlier protocol EFTP, which was part of the PUP 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) when it was discovered.

TFTP appeared first as part of 4.3 BSD. It is included with Mac OS X through at least version 10.5.


Technical information

Some details of TFTP

  • It uses UDP port 69 as its transport protocol (unlike FTP which uses TCP port 21).
  • It cannot list directory contents.
  • It has no authentication or encryption mechanisms.
Error creating thumbnail: convert: unable to open image `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-ack0.svg.png': No such file or directory @ blob.c/OpenBlob/2480.
convert: unable to open file `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-ack0.svg.png' @ png.c/ReadPNGImage/2889.
convert: missing an image filename `/usr1/webserver/cgidocs/drugpedia/images/thumb/412px-Tftp-ack0.svg.png/250px-412px-Tftp-ack0.svg.png' @ convert.c/ConvertImageCommand/2800.
  • It is used to read files from, or write files to, a remote server.
Error creating thumbnail: convert: unable to open image `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-ack1.svg.png': No such file or directory @ blob.c/OpenBlob/2480.
convert: unable to open file `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-ack1.svg.png' @ png.c/ReadPNGImage/2889.
convert: missing an image filename `/usr1/webserver/cgidocs/drugpedia/images/thumb/412px-Tftp-ack1.svg.png/250px-412px-Tftp-ack1.svg.png' @ convert.c/ConvertImageCommand/2800.
  • It supports three different transfer modes, "netascii", "octet" and "mail", with the first two corresponding to the "ASCII" and "image"(binary) modes of the FTP protocol; the third is obsoleted by RFC1350.
Error creating thumbnail: convert: unable to open image `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-dat1-up.svg.png': No such file or directory @ blob.c/OpenBlob/2480.
convert: unable to open file `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-dat1-up.svg.png' @ png.c/ReadPNGImage/2889.
convert: missing an image filename `/usr1/webserver/cgidocs/drugpedia/images/thumb/412px-Tftp-dat1-up.svg.png/250px-412px-Tftp-dat1-up.svg.png' @ convert.c/ConvertImageCommand/2800.
  • The original protocol has a file size limit of 32 MB, although this was extended when RFC 2347 introduced option negotiation, which was used in RFC 2348 to introduce block-size negotiation in 1998 (allowing a maximum of 4 GB and potentially higher throughput).
Error creating thumbnail: convert: unable to open image `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-rrq.svg.png': No such file or directory @ blob.c/OpenBlob/2480.
convert: unable to open file `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-rrq.svg.png' @ png.c/ReadPNGImage/2889.
convert: missing an image filename `/usr1/webserver/cgidocs/drugpedia/images/thumb/412px-Tftp-rrq.svg.png/250px-412px-Tftp-rrq.svg.png' @ convert.c/ConvertImageCommand/2800.

If the server and client support block number wraparound, file size is essentially unlimited.

  • 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 links.
Error creating thumbnail: convert: unable to open image `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-dat1-dwn.svg.png': No such file or directory @ blob.c/OpenBlob/2480.
convert: unable to open file `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-dat1-dwn.svg.png' @ png.c/ReadPNGImage/2889.
convert: missing an image filename `/usr1/webserver/cgidocs/drugpedia/images/thumb/412px-Tftp-dat1-dwn.svg.png/250px-412px-Tftp-dat1-dwn.svg.png' @ convert.c/ConvertImageCommand/2800.
  • Due to the lack of security, it is dangerous over the open Internet. Thus, TFTP is generally only used on private, local networks.
Error creating thumbnail: convert: unable to open image `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-ack1.svg.png': No such file or directory @ blob.c/OpenBlob/2480.
convert: unable to open file `/usr1/webserver/cgidocs/drugpedia/images/412px-Tftp-ack1.svg.png' @ png.c/ReadPNGImage/2889.
convert: missing an image filename `/usr1/webserver/cgidocs/drugpedia/images/thumb/412px-Tftp-ack1.svg.png/250px-412px-Tftp-ack1.svg.png' @ convert.c/ConvertImageCommand/2800.