RFC 906 (rfc906) - Page 1 of 4
Bootstrap loading using TFTP
Alternative Format: Original Text Document
Network Working Group Ross Finlayson
Request for Comments: 906 Stanford University
June 1984
Bootstrap Loading using TFTP
Status of this Memo
It is often convenient to be able to bootstrap a computer system from
a communications network. This RFC proposes the use of the IP TFTP
protocol for bootstrap loading in this case.
This RFC specifies a proposed protocol for the ARPA Internet
community, and requests discussion and suggestions for improvements.
Introduction
Many computer systems, such as diskless workstations, are
bootstrapped by loading one or more code files across a network.
Unfortunately, the protocol used to load these initial files has not
been standardized - numerous methods have been employed by different
computer manufacturers. This can make it difficult, for example, for
an installation to support several different kinds of systems on a
local-area network. Each different booting mechanism that is used
must be supported, for example by implementing a number of servers on
one or more host machines. This is in spite of the fact that these
heterogeneous systems may be able to communicate freely (all using
the same protocol) once they have been booted.
We propose that TFTP (Trivial File Transfer Protocol) [6] be used as
a standard protocol for bootstrap loading. This protocol is
well-suited for our purpose, being based on the standard Internet
Protocol (IP) [4]. It is easily implemented, both in the machines to
be booted, and in bootstrap servers elsewhere on the net. (In
addition, many popular operating systems already support TFTP
servers.) The fact that TFTP is a rather slow protocol is not a
serious concern, due to the fact that it need be used only for the
primary bootstrap. A secondary bootstrap could use a faster
protocol.
This RFC describes how system to be booted (called the "booter"
below) would use TFTP to load a desired code file. It also describes
an existing implementation (in ROM) for Ethernet.
Note that we are specifying only the network protocols that would be
used by the booting system. We do not attempt to mandate the method
by which a user actually boots a system (such as the format of a
command typed at the console). In addition, our proposal does not
Finlayson