At first, most TCP/IP networks were relatively small and static. Manual IP address management techniques were sufficient for them. Each station kept its own IP address somewhere in its secondary storage. Once the address had to be changed, it required manual administrator action, usually at the machine console, and in most cases involved a reboot.
Soon afterwards, as more complex networks were established, as more and more underlying network hardware was used for TCP/IP communication networks and as cheap client workstations without secondary storage came in use, a need for central administration of the hardware to IP addresses bindings became obvious. A special protocol (RARP) for such bindings was designed. It allowed a machine on a network segment to learn its own IP address and then to begin normal TCP/IP operation.
Another protocol, BOOTP, was also developed to allow diskless stations retrieve all the TCP/IP configuration parameters and other operating system data, needed to start functioning normally after a startup. It allowed configuration over broader networks as it was not limited to a single segment. BOOTP defines a concept of a BOOTP relay agent which specifies how BOOTP traffic is forwarded between multiple segments.
BOOTP was then extended by the BOOTP extension mechanism, using the last field in the frame for more specific data and message options. The BOOTP extension mechanism was later on used and developed by BOOTP's descendant, DHCP.
The next extention to BOOTP provided the Dynamic Host Configuration Protocol, DHCP. There are two primary differences between DHCP and BOOTP. First, DHCP defines mechanisms through which clients can be assigned a network address for a finite lease, allowing for serial reassignment of network addresses to different clients. Second, DHCP provides the mechanism for a client to acquire all of the IP configuration parameters that it needs in order to operate.
DHCP provides a framework for passing configuration information to hosts on a TCP/IP network. DHCP is based on BOOTP, adding the capability of automatic allocation of reusable network addresses and additional configuration options. DHCP captures the behavior of BOOTP relay agents, and DHCP participants can interoperate with BOOTP participants.
DHCP is coming with a predefined set of the DHCP options, which inherits from the extension mechanism of BOOTP, adding some DHCP-specific info, and it is open for further extension, inheriting the openness from BOOTP.
About the authors