The Bootstrap Protocol (BOOTP) is a computer networking protocol used in networks to automatically assign an IP address to network devices from a configuration server. The BOOTP was originally defined in RFC 951.
When a computer that is connected to a network is powered up and boots its operating system, the system software broadcasts BOOTP messages onto the network to request an IP address assignment. A BOOTP configuration server assigns an IP address based on the request from a pool of addresses configured by an administrator.
BOOTP is implemented using the (UDP) as transport protocol, port number 67 is used by the server to receive client requests and port number 68 is used by the client to receive server responses. BOOTP operates only on IPv4 networks.
Historically, BOOTP has also been used for Unix-like diskless workstations to obtain the network location of their boot image, in addition to the IP address assignment. Enterprises used it to roll out a pre-configured client (e.g., Windows) installation to newly installed PCs.
Originally requiring the use of a boot floppy disk to establish the initial network connection, manufacturers of network cards later embedded the protocol in the BIOS of the interface cards as well as system boards with on-board network adapters, thus allowing direct network booting.
While some parts of BOOTP have been effectively superseded by the (DHCP), which adds the feature of leases, parts of BOOTP are used to provide service to the DHCP protocol. DHCP servers also provide the legacy BOOTP functionality.
The BOOTP was first defined in September 1985 in RFC 951 as a replacement for the Reverse Address Resolution Protocol RARP, published in RFC 903 in June 1984. The primary motivation for replacing RARP with BOOTP is that RARP was a link layer protocol. This made implementation difficult on many server platforms, and required that a server be present on each individual IP subnet. 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.