+5 votes
in Know how by (242k points)
Bootstrap protocol: all information about the precursor of DHCP

1 Answer

+3 votes
by (1.6m points)
Best answer

What is BOOTP?
This is how network information exchange with BOOTP works
BOOTP vs. DHCP: Why Boot Protocol Is No Longer Used Today


Bootstrap protocol: all information about the precursor of DHCP

In order to communicate with each other on networks such as the Internet, the participating systems need an IP address. In principle, this can be assigned manually; however, in practice, most devices link it automatically. This requires the DHCP communication protocol , which supports connection-seeking systems in obtaining the necessary information. In the early days of computers and networks, the boot protocol, also known as BOOTP, took over the role of the address manager..

  1. What is BOOTP?
  2. This is how network information exchange with BOOTP works
  3. BOOTP vs. DHCP: Why Boot Protocol Is No Longer Used Today

What is BOOTP?

In September 1985, the Stanford University Network Group published the first version of the Boot Protocol (BOOTP) in RFC 951 . This communication protocol, which was developed in collaboration with a team from the computer manufacturer Sun Microsystems, allowed for the first time the terminals and workstations without a hard disk used at that time to obtain, in addition to the IP address , information such as the gateway address , the boot server address, and the boot file directory (required to load the operating system). It replaced the previously used Reverse Address Resolution Protocol (RARP) , which was limited to delivering network addresses and could only be used in subnets.

The bootstrap protocol is part of the Internet protocol family and works, like many other protocols in the stack, on the client-server model . The exchange of messages for the transmission of network information also takes place between a BOOTP client and the BOOTP server . The minimal connectionless user datagram protocol (ports 67 and 68) ( UDP ) has been provided as the protocol for the transport of data packets . Compared to TCP, it is not only less complex, but also allows, unlike the standard protocol for data transport, the broadcasting of audio and video in real time . Since, when establishing the connection, the client does not know its own address or that of the BOOTP server, this messaging method, by means of which all network participants are contacted , is the only solution for automatically obtaining the address..

This is how network information exchange with BOOTP works

Address assignment through BOOTP is based on a simple two-step message exchange between the client and the server, with the client component being the initiator . Since it initially knows neither its own IP address nor that of the BOOTP server, it sends a general request ("BOOTREQUEST") to the broadcast group address . The server, listening on UDP port 67, receives and processes the request, which mainly consists of assigning the correct IP address to the MAC address of the client system . The response ("BOOTREPLY") is then broadcast to the client along with additional network information. From then on, the client can link the operating system over the network.


If the client already knows the BOOTP server address, it can send the request to the BOOTP server directly through a unicast connection..

This is the structure of the messages sent by the client and the server during communication through the boot protocol:

BOOTP protocol messages contain a number of information fields, some of which are optional.

Each BOOTP message begins with an 8-bit op field that defines the type of operation or message . For requests from the client, at this point the value 1 (for BOOTREQUEST) is set, while the server responses show the value 2 (for BOOTREPLY). It is followed by 8 bits indicating the type ("htype") as well as the length of the hardware address ("hlen"). The "hops" field, also 8 bits, indicates the number of intermediate stations that the packet passes through on its way to the recipient. In client requests the value is always 0.

The next block contains a 32-bit long random transaction identifier , generated by the client, which is also used in the server response, so that the client can clearly classify them. The client also fills in the " Time " field (16 bits), which indicates the seconds that have elapsed since the client attempted to start . The end of the introductory information forms another 16-bit field that remains completely empty. The following entries in the BOOTP package correspond to the actual network information , which is included in the following list :

  • Client IP address (ciaddr) : the label "ciaddr" ( client ip address ) distinguishes the 32-bit field in which the client enters his own IP address, provided he knows it. If this is not the case, the field contains the value 0.
  • Assigned IP address (yiaddr) : the "yiaddr" field ( your ip address, your ip address) is also reserved for the client's IP address. Unlike the packet section mentioned above, the server populates this 32-bit field in case the client doesn't know its IP address at the time the network request is created.
  • Server IP address (siaddr) : In the 32-bit sequence "siaddr" ( server ip address ), the BOOTP server shares its own IP address with the client.
  • Router IP address (giaddr) : if there is a gateway (eg a router) integrated in the communication process, its address is entered in the "giaddr" field ( gateway ip address , gateway ip address). link).
  • Client hardware address (chaddr) : The hardware address (128 bits) is one of the mandatory data of the client during message exchange. Without these MAC addresses, the server cannot assign the correct address and the corresponding network parameter.
  • Server host name (sname) : Optionally, the server can also specify the BOOTP response in its computer name. For this, a field of up to 512 bits is available, in which you can enter a character string ending in zero (zero indicates the end of the string).
  • Boot file name (file) : Optionally, you can also specify a specific boot file that the client will need to start the operating system on the terminal or workstation. This field also provides a zero-terminated character string, which in this case reproduces the full directory path of the file. The character sequence can be up to 1024 bits long. Either the value 0 or a generic name appears in the client's request.
  • Vendor Specific Information (vend) : Manufacturer specific information, which is not covered by the protocol, marks the end of the message. This can, for example, be information about hardware types or serial numbers. Additionally, this 512-bit informational data can be reserved for a third boot process or operational process.

In general, BOOTP messages can also be up to 2400 bits (300 bytes) in length . The complete UDP / IP datagram, including the integrated bootstrap protocol requests and responses, have the following construction:

The Internet protocol (addressing) and the UDP protocol (transport) are the basis for the exchange of BOOTP messages

BOOTP vs. DHCP: Why Boot Protocol Is No Longer Used Today

For terminal clients and workstations without a hard disk, BOOTP was the perfect solution to obtain an IP address on the network and thus bind the operating system. The fact that the assignment of the address by the communication protocol could be solved simultaneously with the boot process was practical and simple for desktop computers, which began to be used in networks with more manageable sizes. As a result, it was problematic, for example, for the administrator to manually configure the BOOTP server's network information tables.

However, as networks grew and computers acquired autonomy, and thanks to the development of more mobile portable devices, not being able to automate the configuration process was seen as a negative factor. The desire for a new protocol was evident. With the Dynamic Host Configuration Protocol (DHCP) a successor was found in 1993 (final specification in RFC 2131). DHCP is largely based on the boot protocol structure, supplemented, however, with different additional configuration options and offers the ability to assign reusable network addresses to connection-seeking clients . Additionally, addressing information assignment with DHCP also works during current system operation: with BOOTP, no reboot is required.

These are the most important differences between both protocols:




Automatic configuration

IP address assignment requires manual configuration of address tables

Supports automatic assignment and automatic obtaining of IP addresses (also manual configuration)

Temporary IP addresses

It's not possible

Possible for a limited period of time

Mobile device support

IP configuration and access to network information is not possible

Supports the mobility of network clients

Error index

High error rate due to manual configuration

Virtually immune to errors thanks to automatic configuration of network components

System Requirements


Requires hard drive to store and forward information

Thanks to various optimizations, DHCP quickly became the standard protocol for IP management in networks, whereas today the BOOTP protocol has only historical value . Since DHCP supports the boot protocol, DHCP servers, in principle, can also respond to all kinds of requests made by a BOOTP client.