RFC 906 (rfc906) - Page 2 of 4
Bootstrap loading using TFTP
Alternative Format: Original Text Document
RFC 906 June 1984 presuppose the use of any particular data-link level network architecture (although the example that we describe below uses Ethernet). Network Protocols used by the Booting System To load a file, the booter sends a standard TFTP read request (RRQ) packet, containing the name of the file to be loaded. The file name should not assume any operating system dependent naming conventions (file names containing only alphanumeric characters should suffice). Thereafter, the system receives TFTP DATA packets, and sends TFTP ACK and/or ERROR packets, in accordance with the TFTP specification [6]. TFTP is implemented using the User Datagram Protocol (UDP) [5], which is in turn implemented using IP. Thus, the booter must be able to receive IP datagrams containing up to 524 octets (excluding the IP header), since TFTP DATA packets can be up to 516 octets long, and UDP headers are 8 octets long. The booting machine is not required to respond to incoming TFTP read or write requests. We allow for the use of two additional protocols. These are ARP (Address Resolution Protocol) [3], and RARP (Reverse Address Resolution Protocol) [1]. The possible use of these protocols is described below. The booter could also use other protocols (such as for name lookup), but they should be IP-based, and an internet standard. The IP datagram containing the initial TFTP RRQ (and all other IP datagrams sent by the booter) must of course contain both a source internet address and a destination internet address in its IP header. It is frequently the case, however, that the booter does not initially know its own internet address, but only a lower-level (e.g. Ethernet) address. The Reverse Address Resolution Protocol (RARP) [1] may be used by the booter to find its internet address (prior to sending the TFTP RRQ). RARP was motivated by Plummer's Address Resolution Protocol (ARP) [3]. Unlike ARP, which is used to find the 'hardware' address corresponding to a known higher-level protocol (e.g. internet) address, RARP is used to determine a higher-level protocol address, given a known hardware address. RARP uses the same packet format as ARP, and like ARP, can be used for a wide variety of data-link protocols. ARP may also be used. If the destination internet address is known, then an ARP request containing this address may be broadcast, to find a corresponding hardware address to which to send the subsequent TFTP RRQ. It may not matter if this request should fail, because the RRQ can also be broadcast (at the data-link level). However, because such an ARP request packet also contains the sender's (that is, the Finlayson



