Bootstrap Protocol (BOOTP)
1. Overview and Evolution
The Bootstrap Protocol (BOOTP) (RFC 951) was developed in 1985 as a major architectural upgrade over the obsolete RARP protocol.
While RARP was trapped at the Data Link layer and could provide only an IP address, BOOTP operates as a Client-Server Application Layer protocol over UDP/IP:
- UDP Port 67: BOOTP Server listens on Port 67.
- UDP Port 68: BOOTP Client listens on Port 68.
2. Solving RARP's Limitations
BOOTP resolved both of RARP's fatal flaws:
1. Traversing Routers via BOOTP Relay Agent (RFC 1542)
Because BOOTP messages are encapsulated inside standard UDP and IP datagrams, routers equipped with a Relay Agent (such as Cisco ip helper-address) can intercept client broadcast packets on local subnets, convert them into unicast IP packets, and forward them across intermediate routers to a centralized BOOTP server:
(One central server can now service hundreds of branch subnets, eliminating the need for a server per wire!)
2. Comprehensive Network Configuration
In a single exchange, BOOTP delivers:
- Client IP Address.
- Subnet Mask.
- Default Gateway (Router) IP.
- TFTP Server IP Address & Bootfile Name (allowing the client to download its operating system kernel via Trivial File Transfer Protocol).
3. BOOTP Message Format
4. Key Limitations of BOOTP
Despite its advantages over RARP, BOOTP had one significant limitation:
- Static Mapping Only:
- The administrator had to manually edit a database file (
/etc/bootptab) mapping every device's MAC address to a permanent, static IP address. - If an unknown mobile laptop plugged into the network, BOOTP could not assign it an IP address.
- IP addresses were tied permanently to devices, meaning an organization with 1,000 employees but only 200 concurrent users still needed 1,000 IP addresses.
- The administrator had to manually edit a database file (
This led directly to the development of DHCP, which extended the BOOTP message format to add dynamic address pooling and temporary leases.
Frequently Asked Questions
QWhat transport layer protocol and port numbers are used by BOOTP?
BOOTP runs over UDP; Server listens on Port 67, Client receives on Port 68.
QHow does a BOOTP Relay Agent work?
When a client broadcasts a BOOTP request on its local subnet, a router acting as a BOOTP Relay Agent catches the broadcast, populates the giaddr field with its own interface IP, and forwards the packet as a unicast IP datagram to the remote BOOTP server.
QWhat is the primary difference between BOOTP and DHCP?
BOOTP uses static, manual MAC-to-IP configuration tables without temporary leasing. DHCP supports dynamic IP allocation from a pool with automatic address reclamation via leases.
QHow did BOOTP improve on RARP?
BOOTP runs over UDP/IP so relay agents can carry requests across routers to one central server, and it returns the full configuration (IP, subnet mask, default gateway, TFTP server and boot file) instead of just an IP address.