The Bootstrap Protocol (BOOTP) is a
computer network
A computer network is a collection of communicating computers and other devices, such as printers and smart phones. In order to communicate, the computers and devices must be connected by wired media like copper cables, optical fibers, or b ...
ing protocol used in
Internet Protocol
The Internet Protocol (IP) is the network layer communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
IP ...
networks to automatically assign an
IP address
An Internet Protocol address (IP address) is a numerical label such as that is assigned to a device connected to a computer network that uses the Internet Protocol for communication. IP addresses serve two main functions: network interface i ...
to network devices from a configuration server. The BOOTP was originally defined in published in 1985.
While some parts of BOOTP have been effectively superseded by the
Dynamic Host Configuration Protocol
The Dynamic Host Configuration Protocol (DHCP) is a network protocol, network management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to devices connected to the netw ...
(DHCP), which adds the feature of leases, parts of BOOTP are used to provide service to the DHCP protocol. Some DHCP servers also provide the legacy BOOTP functionality.
When a network-connected computer
boots
A boot is a type of footwear. Most boots mainly cover the foot and the ankle, while some also cover some part of the lower calf. Some boots extend up the leg, sometimes as far as the knee or even the hip. Most boots have a heel that is clearl ...
up, its IP stack broadcasts BOOTP network messages requesting an IP address assignment. A BOOTP configuration server replies to the request by assigning an IP address from a pool of addresses, which is preconfigured by an administrator.
BOOTP is implemented using the
User Datagram Protocol
In computer networking, the User Datagram Protocol (UDP) is one of the core communication protocols of the Internet protocol suite used to send messages (transported as datagrams in Network packet, packets) to other hosts on an Internet Protoco ...
(UDP) for transport. Port number 67 is used by the server for receiving client requests, and port number 68 is used by the client for receiving server responses. BOOTP operates only on
IPv4
Internet Protocol version 4 (IPv4) is the first version of the Internet Protocol (IP) as a standalone specification. It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. ...
networks.
Historically, BOOTP has also been used for
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
diskless workstation
A diskless node (or diskless workstation) is a workstation or personal computer without disk drives, which employs network booting to load its operating system from a server. (A computer may also be said to ''act as a diskless node'', if its dis ...
s to obtain the network location of their
boot image
A boot image is a type of disk image that when on a boot device allows the associated computer to Booting, boot.
A boot image usually includes an operating system, utilities, diagnostics, boot and data recovery information and applications used ...
, in addition to the IP address assignment. Enterprises used it to roll out a pre-configured client (e.g.,
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
) installation to newly installed PCs.
Initially requiring the use of a boot
floppy disk
A floppy disk or floppy diskette (casually referred to as a floppy, a diskette, or a disk) is a type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined with a ...
to establish the initial network connection, manufacturers of network interfaces later embedded the protocol in the
firmware
In computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, h ...
of interface cards as well as system boards with on-board network interfaces, thus allowing direct network booting.
History
The BOOTP was first defined in September 1985 by Bill Croft and
John Gilmore as a replacement for the
Reverse Address Resolution Protocol
The Reverse Address Resolution Protocol (RARP) is an obsolete computer communication protocol used by a client computer to request its Internet Protocol (IPv4) address from a computer network, when all it has available is its link layer or hardw ...
(RARP), published in June 1984. The primary motivation for replacing RARP with BOOTP is that RARP was a
link layer
In computer networking, the link layer is the lowest layer in the Internet protocol suite, the networking architecture of the Internet. The link layer is the group of methods and communications protocols confined to the link that a host is phys ...
protocol. This made implementation difficult on many server platforms, and required that a server be present on each individual IP
subnet
A subnet, or subnetwork, is a logical subdivision of an IP network. Updated by RFC 6918. The practice of dividing a network into two or more networks is called subnetting.
Computers that belong to the same subnet are addressed with an identica ...
. BOOTP introduced the innovation of relay agents, which forwarded BOOTP packets from the local network using standard IP routing, so that one central BOOTP server could serve hosts on many subnets.
An increasing set of BOOTP vendor information extensions was defined to supply BOOTP clients of relevant information about the network, like
default gateway
A default gateway is the node in a computer network using the Internet protocol suite that serves as the forwarding host ( router) to other networks when no other route specification matches the destination IP address of a packet.
Role
A gatew ...
,
name server IP address, the
domain name
In the Internet, a domain name is a string that identifies a realm of administrative autonomy, authority, or control. Domain names are often used to identify services provided through the Internet, such as websites, email services, and more. ...
, etcetera.
With the advent of the
Dynamic Host Configuration Protocol
The Dynamic Host Configuration Protocol (DHCP) is a network protocol, network management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to devices connected to the netw ...
, the BOOTP vendor information extensions were incorporated as DHCP option fields, to allow DHCP servers to also serve BOOTP clients.
Operation
Case 1: Client and server on same network
When a BOOTP client is started, it has no IP address, so it broadcasts a message containing its MAC address onto the network. This message is called a “BOOTP request”, and it is picked up by the BOOTP server, which replies to the client with the following information that the client needs:
# The client's IP address, subnet mask, and default gateway address.
# The IP address and host name of the BOOTP server.
# The IP address of the server that has the boot image, which the client needs to load its operating system.
When the client receives this information from the BOOTP server, it configures and initializes its TCP/IP protocol stack, and then connects to the server on which the boot image is shared. The client loads the boot image and uses this information to load and start its operating system.
The Dynamic Host Configuration Protocol (DHCP) was developed as an extension of BOOTP. BOOTP is defined in Requests for Comments (RFC) 951 and 1084.
Case 2: Client and server on different networks
# Problem with the bootp request is that the request is broadcast. A
broadcast
Broadcasting is the data distribution, distribution of sound, audio audiovisual content to dispersed audiences via a electronic medium (communication), mass communications medium, typically one using the electromagnetic spectrum (radio waves), ...
IP datagram
A datagram is a basic transfer unit associated with a packet-switched network. Datagrams are typically structured in header and payload sections. Datagrams provide a connectionless communication service across a packet-switched network. The del ...
cannot pass through any router. The router discards this packet.
# To solve this problem, there is a need for an intermediary (relay).
# One of the host or router can be configured at application layer to operate as relay agent.
# The relay agent knows the uni-cast address of bootp server and listens for broadcast message on port 67.
# When it receives this broadcast packet, it encapsulates the message in
unicast
Unicast is data transmission from a single sender (red) to a single receiver (green). Other devices on the network (yellow) do not participate in the communication.
In computer networking, unicast is a one-to-one transmission from one point in ...
datagram and sends request to bootp server.
# The packet carrying a unicast destination address is routed by any router and reaches the bootp server.
# The relay agent, after receiving the reply, sends it to bootp client.
IETF standards documentation
*
*
*
*
*
See also
*
Preboot Execution Environment
In computing, the Preboot eXecution Environment (PXE; often pronounced as ''pixie''), often called PXE boot (''pixie boot''), is a specification describing a standardized client–server environment that boots a software assembly, retrieved ...
(PXE)
*
Remote Initial Program Load
Remote Initial Program Load (RIPL or RPL) is a protocol for starting a computer and loading its operating system from a server via a network. Such a server runs a network operating system such as LAN Manager, LAN Server, Windows NT Server, Nove ...
(RIPL)
*
UDP Helper Address A UDP Helper Address is a special router configuration used to forward broadcast network traffic from a client machine on one subnet to a server in another subnet.
Usage example
The Internet Protocol requires every network interface controller to ...
— a tool for routing BOOTP requests across subnet boundaries
*
Boot Service Discovery Protocol
Boot Service Discovery Protocol (BSDP) is an Apple-developed, standards-conforming extension of DHCP. It allows Macintosh computers to boot from bootable images on a network instead of local storage media such as CD, DVD, or hard disk. The ...
(BSDP)
*
Maintenance Operations Protocol
The Maintenance Operation Protocol (MOP) is used for utility services such as uploading and downloading system software, remote testing and problem diagnosis. It was a proprietary protocol of Digital Equipment Corporation
Digital Equipment C ...
(MOP)
References
External links
BOOTP Sequence Diagram{{Webarchive, url=https://web.archive.org/web/20150226073404/http://www.eventhelix.com/RealtimeMantra/Networking/Bootp.pdf , date=2015-02-26 (PDF)
Multicast BOOTP for configuring a network device
*
Multicast BOOTP server and client
Internet protocols
Internet Standards
Network booting