What DHCP is and Why it’s Here

Simple DHCP Host-Server illustration From Peterson-Davie

Dynamic Host Configuration Protocol (DHCP) was developed by the Internet Engineering Task Force, a volunteer organization, to create a standard protocol for “Dynamic Addressing” over large-scale networks, with special regard to the largest network of all, the Internet. 

Dynamic Addressing was developed especially for these large networks, in order to improve their performance and manageability.  DHCP uses dynamic addressing to send configuration information from a host to many clients.  The most important part of this information is the IP address. 

Dynamic Addressing is performed by an algorithm that simply assigns configuration information, such as an Internet Protocol (IP) address, to a particular node or host in a network, rather than having a (less reliable, higher paid) human perform the same task manually.  Prior to Dynamic Addressing, network administrators would have to add IP addresses manually to their domain every time a new node was put into their network.  They would set the new node to this new IP address, and work in this time-consuming, static fashion.  One of the reason things were done this way was that nodes on a network were often identified by their IP address.  For example, if a computer had an IP address of 24.123.123.12, then that individual computer could be picked out on the network.

Dynamic addressing was created to speed up the process of determining addresses for every node on the network.   A node on the network, would no longer “own” a single IP address, but would have a temporary “lease” on an IP address, set to expire at a specified time.  What would be done now was that a DHCP Server, loaded with this address-determining algorithm, would be called by every node on the network, and would  “lease out” IP addresses to everyone on the network, depending on the internet domain size that it had available.  The network administrator does not have to figure out IP addresses for everyone on the network; additionally, IP addresses can actually be shared between nodes in the network.  For example, if there are 200 terminals, but only 100 are ever on at the same time, then we need 200 IP addresses with Static addressing.  With DHCP, we only need to distribute 100 addresses.  With only 32 bits per IP address, domain space for IP addresses is limited!  This helps free up many of the addresses that would be idle, without DHCP.

DHCP simply is a Protocol to send a collection of parameters, known as a binding, which includes an IP address as a bare minimum, from host to server, and server to host.   One DHCP server is required for an Administrative domain, which could include many networks.  The first step in the process of being given an IP address starts by a host broadcasting a “DHCPDISCOVER” message across the network, along with its binding.  These bindings are passed along directly to the DHCP server the by routers or servers known as BOOTP relay agents.  

BOOTP is a previous dynamic addressing algorithm, upon which DHCP is based upon.  DHCP is a superset of BOOTP.  The main difference between the two Dynamic Addressing Protocols being that DHCP has a mechanism for the serial reassignment of IP addresses.  BOOTP merely gave out IP addresses, and did not have a recycling methodology, as DHCP has.  The message format for BOOTP and DHCP are similar and backward-compatible.

From these BOOTP relay agents, the bindings are passed along to a DHCP server.  This is simply an Internet host, which runs a DHCP application, which can then pass this information back to its clients, with the “DHCP ACK” message, with the IP address portion on the binding already filled out for the clients, who in turn use this information to set their configuration settings.  In a nutshell, this is how IP addresses are assigned on the internet.   

To illustrate, the computer I am typing this paper on is plugged into the Comcast network.  My IP address is 24.140.153.64.  This was determined by my DHCP server, which by looking at its IP address is obviously on the same network, at 24.34.240.34.  My “Lease” on the IP address was given to me on 2/21/03 at 1:45 PM.

This reassignment of leases on IP addresses is the main characteristic of DHCP.