To connect to an IP network, a host needs an IP address. To communicate with other networks it needs to know the default gateway address and the subnet mask for the local network. To perform name resolution, a host needs to know the name of a DNS server in advance. DHCP provides all of this information dynamically. For IP based networks, there are three ways to get an IP address: configure it manually, retreive it via BootP, or retreive it and other values via DHCP.
Manual IP Configuration Method
The manual method is the most straight-forward. An administrator simply sets the address in a configuration file (/etc/hosts on System V flavored Linux/Unix systems) or a configuration dialog box (Network Control Panel in MS-Windows and Mac OS). However, imagine the poor administrator who has to go round to all of the computers in a very large network (200 hosts or more) or in a network that is spread out over several city blocks or in different countries.
BootP was the first network bootstrap protocol and is defined in RFCs 951 and 1084. BootP was intended to allow a station to bootstrap its hardware, read the PROM, retreive the BootP program and use it to contact a BootP server to get its own IP address and the location of a file on a server to download via TFTP and run as an operating system (or as the OS loader). BOOTP lacks the extensions that were added for DHCP which allow the automatic configuration of the default gateway and special server addresses. BootP lacks the lease and renewal features of DHCP, thus a client that is infrequently used still uses up an IP address and must be rebooted to aquire a new address. This requires a trip to every machine on the network.
DHCP provides the means for a host to find a DHCP server and to assign IP addresses to hosts on the network dynamically. This saves an administrator a trip to the desk every time an IP setting must be changed, and allows the network administrator to make changes later with less effort. Typical values passed to a DHCP client include (but are not limited to):
- Client's IP Address
- Subnet Mask
- Default Gateway(s)
- Domain Name Service servers
- Network Servers (Domain controllers, NIS/NIS+ servers)
- Time synchronization information (NTP, TimeP)