Trivial File Transfer Protocol: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Howard C. Berkowitz
(New page: {{subpages}} The '''Trivial File Transfer Protocol (TFTP)''' is an extremely low-overhead [[protocol (computer}|protocol]] of the Internet Protocol Suite (IPS). It is intended to have ...)
 
imported>Howard C. Berkowitz
(error control link rather than error correction)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{subpages}}
{{subpages}}
The '''Trivial File Transfer Protocol (TFTP)''' is an extremely low-overhead [[protocol (computer}|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).<ref name=RFC1350>{{citation
The '''Trivial File Transfer Protocol (TFTP)''' is an extremely low-overhead [[protocol (computer)|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).<ref name=RFC1350>{{citation
  | title = The TFTP Protocol (Revision 2)
  | title = The TFTP Protocol (Revision 2)
  | first = K. | last = Sollins
  | first = K. | last = Sollins
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, and it has undergone a series of refinements based on operational experience.
}}</ref> Its first implementation was designed by Noel Chiappa<ref name=RFC1350>,</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.


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.
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 control#error correction|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]].
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 [[locality of networks#scope of information|temporary link-local address]], and the computer may subsequently get an address that has greater scope.
==References==
==References==
{{reflist}}
{{reflist}}

Latest revision as of 15:32, 23 August 2008

This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

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[1] 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

  1. 1.0 1.1 Sollins, K. (July 1992), The TFTP Protocol (Revision 2), Internet Engineering Task Force, RFC1350 Cite error: Invalid <ref> tag; name "RFC1350" defined multiple times with different content