How Does BOOTP Works?
Prerequisite: Bootstrap Protocol
The BOOTP protocol is a networking protocol, the main goal of BOOTP is to find IP addresses from a server. It was developed to replace the RARP. BOOTP was designed to let systems discover what they need to function correctly after booting up. It uses a relay agent which listens to port 68 of UDP, which lets the local network transfer the packets by using standard IP routing, allowing only a single BOOTP server to assist hosts on several subnets. Later on, BOOTP was succeeded by a more advanced and effective protocol known as DHCP, which has more flexibility and additional options.
During the bootstrap process, it is used to create a network connection. Initially, BOOTP uses floppy disks, but it was soon integrated into network adapters and motherboards, so that no external drive is required and also for launching the initial network connection, later the process was added into the BIOS of motherboards and NICs to allow direct network booting.
It is a broadcast protocol as it needs to send messages in order to get resources or answers from hosts present in the network. BOOTP was planned for diskless systems because they needed a protocol that could communicate to a server to get its network address and some other information like which OS to use. The computer then downloads the OS through TFTP.
Working of BOOTP
A BOOTP client does not know its IP address nor does it know the IP address of the BOOTP server when it starts, so it broadcasts a message that carries its MAC address in the network. This general broadcast message is known as a “BOOTREQUEST” and this request is sent to the broadcast address. It is then picked up by the server listening on port 67 of UDP, after receiving the request it processes it by assigning an IP address to the MAC address of the client. The request that it replies to the client with is known as “BOOTREPLY” which include network information and is sent back to the client through broadcast and has the following information:
- The client’s IP address (ciaddr and yiaddr), default gateway address (giaddr), and subnet mask.
- The hostname and IP address of the BOOTP server (siaddr).
- The IP address of the server containing the boot image.
After obtaining the data from the BOOTP server, it initializes the TCP/IP stack and configures it, and after that, it connects to the server containing the boot image. Finally, the client loads the image and uses the data to load and launch its OS.
BOOTP Message Format:
0 – 7
8 – 15
16 – 23
Hardware address length
24 – 31
32 – 63
64 – 79
80 – 95
96 – 127
128 – 159
160 – 191
192 – 223
224 – 351
Client hardware address (16 bytes)
352 – 863
Server hostname (64 bytes)
864 – 1887
Boot filename (128 bytes)
1888 – 2400
Manufacturer-specific information (64 bytes)
- It assigns IP addresses to the host through a BOOTP server.
- BOOTP is the successor of RARP.
- It uses the IP and UDP. Hence, it is routable.
- The BOOTP server keeps a log with IP addresses, MAC addresses, and other information.
- Nowadays BOOTP is no longer used as it has been replaced by DHCP.