DHCP (Dynamic Host Configuration Protocol)
All computers connected to a TCP/IP network need to be configured with an IP address. Without an IP address a computer cannot “talk” to others on the network.
Imagine a large network with hundreds of computers. Configuring them one-by-one would chaotic! Also, think about Internet Service Providers (ISPs): they would have to teach every customer how to configure their computer and give them IP addresses by phone – and keep track of these addresses, as two computers cannot have the same IP address.
In order to make this configuration easier, there is a protocol called DHCP, which allows computers to receive their configuration through a DHCP server. This is the default configuration for all computers nowadays. So when you turn on your computer, it asks the DHCP server of your network (located at your ISP if you are a home user connected to the Internet) “hey, give me my IP address!” and voilá, your computer is configured. If you have built a small network using a broadband router, the router will also incorporate a DHCP server, so it will be in charge of assigning IP address to the computers connected to it.
Besides the IP address the DHCP server also sends other configuration information, like the IP address of the DNS server your computer should use (we will explain what is this in the next page), the default gateway (the IP address of the router of your network – i.e., if your computer cannot find the target computer on your local network, to which address it should send the packet to be forwarded) and the subnet mask (which is used for addressing reasons that are not the scope of the present tutorial).
With the use of a DHCP server the network administrator can configure all computers of a network from a central location, making his/her life easier.
DHCP is an Application layer protocol, using the UDP protocol on the Transport layer. It uses ports 67 and 68. DHCP replaced an old protocol called BOOTP and on older books you may find references to BOOTP instead of DHCP. Everything that is said about BOOTP is valid for DHCP, as DHCP is 100% backward compatible with BOOTP (DHCP offers more options than BOOTP, though).