Trivial File Transfer Protocol: Difference between revisions
imported>Howard C. Berkowitz (error control link rather than error correction) |
Pat Palmer (talk | contribs) mNo edit summary |
||
Line 7: | Line 7: | ||
| url = http://www.ietf.org/rfc/rfc1350.txt | | url = http://www.ietf.org/rfc/rfc1350.txt | ||
| publisher = Internet Engineering Task Force | | publisher = Internet Engineering Task Force | ||
}}</ref> Its first implementation was designed by Noel Chiappa<ref name= | }}</ref> Its first implementation was designed by Noel Chiappa<ref name=WPNC>Wikipedia has an [[Wikipedia:Noel Chiappa|article about Noel Chiappa]].</ref>, and it has undergone a series of refinements based on operational experience. | ||
TFTP, as its name would suggest, does not have many of the features of a more general file transfer protocol, such as the IETF [[File Transfer Protocol]] (FTP). By today's standards, even basic FTP is obsolescent. The overriding objective was keeping TFTP and all associated code as small as possible; when it was developed, a good-sized ROM had only 32 kilobytes of storage. | TFTP, as its name would suggest, does not have many of the features of a more general file transfer protocol, such as the IETF [[File Transfer Protocol]] (FTP). By today's standards, even basic FTP is obsolescent. The overriding objective was keeping TFTP and all associated code as small as possible; when it was developed, a good-sized ROM had only 32 kilobytes of storage. |
Revision as of 08:42, 13 September 2024
The Trivial File Transfer Protocol (TFTP) is an extremely low-overhead protocol of the Internet Protocol Suite (IPS). It is intended to have the absolute minimum of functionality necessary for one computer, typically connected to another via a local area network, to download the executable code of its operating system. TFTP was designed for what variously are called "diskless workstations" or "thin clients", which have no local disk or other mass storage, and must "bootstrap" into execution with only the code that can fit into a read-only memory (ROM) containing the loader (i.e., TFTP and possibly other minimal functions).[1] Its first implementation was designed by Noel Chiappa[2], and it has undergone a series of refinements based on operational experience.
TFTP, as its name would suggest, does not have many of the features of a more general file transfer protocol, such as the IETF File Transfer Protocol (FTP). By today's standards, even basic FTP is obsolescent. The overriding objective was keeping TFTP and all associated code as small as possible; when it was developed, a good-sized ROM had only 32 kilobytes of storage.
In particular, TFTP has no security features alone, and expects to be talking to a trusted file server over a trusted network. It uses a fixed record size for transfer. It runs over User Datagram Protocol (UDP) because the code for Transmission Control Protocol would be too large for the ROM, so TFTP is responsible for its own error correction. Its error correction mechanism is small, simple, and works, but is not especially efficient; these are the general assumptions for every design choice in TFTP.
UDP runs over Internet Protocol, which runs over the protocols specific to the actual network interconnecting the TFTP client and server, usually Ethernet.
Prerequisites for TFTP operation
The requesting computer needs to have acquired an Internet Protocol address, so the server knows where to send the data. This address could have been acquired in several ways, including manual configuration of the client. The client also might request a dynamic address assignment, which originally used the very simple BOOTP protocol, a subset of modern Dynamic Host Configuration Protocol (DHCP). It is possible that the client and server might use a temporary link-local address, and the computer may subsequently get an address that has greater scope.
References
- ↑ Sollins, K. (July 1992), The TFTP Protocol (Revision 2), Internet Engineering Task Force, RFC1350
- ↑ Wikipedia has an article about Noel Chiappa.