DHCP evolved from RARP and BOOTP protocols to dynamically assign IP addresses to clients on a network. The DHCP server maintains a pool of IP addresses and configuration information. When a client requests an IP, the DHCP server allocates one from the pool along with other configuration and leases it to the client for a set time. This allows for IP addresses to be reused more efficiently as clients connect and disconnect from the network.