BOOTP and DHCP protocols are used to obtain the host’s IP address, along with boot information. The operation of both protocols is somewhat different. DHCP is an extended version of the BOOTP.
Definition of BOOTP
It is a method of accessing the information of a computer connected to the Internet, such as that stored in a configuration file, this information must be known by a TCP/IP computer connected to the internet.
Bootstrap Protocol is a client-server protocol designed to receive the above information from a diskless computer or a computer that was first launched. If there is no disk on the computer or workstation, the operating system and network software are stored in read-only memory (ROM).
RARP is the forerunner of BOOTP and has the same purpose, but the limitation of RARP is that it only provides IP information, no additional information about it.
It is an alternative to the rarp command, which has the advantage of allowing the subnet mask and gateway configuration. It is used by network clients to obtain IP addresses automatically. Initially, it required the use of a boot disk to establish the first network connections, then began to allow direct booting from the network.
As explained above, bootstrap is a protocol that allows static configuration. The reason behind the static nature of BOOTP is that the need to dynamically find routers or replace routers only when a router is connected to the rest of the Internet. However, if there are multiple routers, they are connected to the Internet. Attempting to get the default route on a host startup might cause a loss of connection if a single router fails.
It was designed before DHCP.
It automatically assigns an IP address to network clients that are usually booted from computers or the operating system.
Used for remote boot over IP networks and by UNIX-based diskless workstations.
It supports a limited number of client configuration parameters called provider extensions.
Difference Between BOOTP and DHCP
The main difference between BOOTP and DHCP is that BOOTP supports static configuration of IP addresses, while DHCP supports dynamic configuration. It automatically assigns and obtains DHCP’s IP addresses of the computer connected to the internet, and also has some additional features.
The bootstrap server uses a table with mapping from physical address to an IP address when a client requests the IP address. BOOTP is not compatible with mobile machines; It works only when the connection between the physical and IP addresses is static and fixed to the table. It uses a limited broadcast address (255.255.255.255).
BOOTP is a static protocol and supports manual configuration. On the other hand, DHCP is a dynamic protocol and supports manual, dynamic and automatic configuration of IP addresses.
Optional IP addressing is provided in DHCP, while BOOTP does not support non-permanent assignment (lease) of IP addresses.
DHCP can manage mobile machines. On the contrary, it cannot configure or access information on mobile machines; and only works well on fixed connections.
While DHCP rarely fails, BOOTP is prone to errors due to the use of manual configuration.
Bootstrap and DHCP are protocols that a host uses to access or configure IP parameters from the server. DHCP is the BOOTP extension. In BOOTP, these processes occur during the startup of the host computer. DHCP is popular among ISPs because it allows a host to obtain a temporary IP address, but this is not the case with BOOTP. DHCP provides more detailed information than BOOTP and is more efficient.
How Does It Work?
It is the hardware address that can be determined by the customer in the hardware RAM.
The client sends a UDP datagram to the server using its hardware address, if it knows it and knows the address of the server, it can use it, but clients usually do not have IP configuration data. The UDP port is numbered 67.
The datagram is received by the server, searches for the client’s hardware address in the configuration file containing the client’s IP address, fills the remaining fields in the UDP datagram, and returns it to the client using UDP port 68.
Once the response is received, the client will save its IP address and start the boot process.
Bootstrap exchange is in the form of a request sent by a client and a response from the server. It is a common message format for requests and responses.
Code: Indicates a request or response.
TypeWH: Specifies the hardware type, such as Ethernet or IEEE 802 networks.
Length: The length of the hardware address in bytes.
Transaction ID: The client sets this to 0. The router transmits this request to another server to increase this value and is used to define loops.
Seconds: This data is set by the client. It is the time in seconds since the client started the initialization process.
Flags Field: The most important bit of the Flags field is used as the broadcast flag. The remaining bits need to be set to zero and reserved for future use.
IP Address of the Client: Set by the client. It is a known IP address or 0.0.0.0.
IP Address: If the client’s IP address field is 0.0.0.0, it is set by the server.
Server IP Address: It is set by the server.
Router IP Address: If BOOTP forwarding is used, it is set by the sending router.
Client Hardware Address: It is set by the client and used by the server to identify the boot client registered.
Server Hostname: Optional server hostname ending in X’00 ‘.
Name of the Boot File: The client leaves blank or specifies a generic name such as “router”, such as “boot file” to use.