Клиент DHCP начинает обмен сообщениями с серверами сразу после загрузки. Первоначальный обмен проиллюстрирован на рис. 10.4. Клиент генерирует ряд широковещательных сообщений DHCPDISCOVER. На данном этапе IP-адреса, который еще находится в состоянии инициализации (init), у клиента нет. Широковещательные сообщения, как водится, не выходят за пределы сети клиента, но администратор может установить на одном из компьютеров локальной сети службу DHCP Relay Agent, которая будет ретранслировать эти сообщения DHCP-серверам в других сетях. Это позволяет одному DHCP-серверу обслуживать клиентов в нескольких ЛВС.
Получив от клиента сообщение DHCPDISCOVER, DHCP-сервер генерирует ответное сообщение DHCPOFFER с IP-адресом и другими параметрами, отправка которых задана в конфигурации сервера. Чаще всего это сообщение передается как узковещательное, направленное непосредственно клиенту. Поскольку клиент отправил исходное сообщение DHCPDISCOVER как широковещательное, он мржет получить ответы DHCPOFFER от нескольких серверов. По истечении заданного промежутка времени клиент прекращает отправку сообщений и принимает один из предложенных IP-адресов. Он генерирует сообщение DHCPREQUEST (поскольку предложенные параметры еще не вступили в силу, сообщение передается как широковещательное), которое содержит адрес выбранного им сервера, а также
информирует DHCP-сервер, что клиент принимает предложенный IP-адрес и уведомляет другие серверы в сети, что их предложения отвергнуты.
Получив сообщение DHCPREQUEST, сервер записывает предложенный IP-адрес и другие параметры в свою базу данных, используя в качестве уникального идентификатора назначения комбинацию аппаратного адреса клиента и предложенного ему IP-адреса, называемую cookie-файлом идентификатора аренды (lease identification cookie). Чтобы завершить свою часть транзакции, сервер посылает клиенту сообщение DHCPACK, подтверждая окончание процесса. Если сервер не может завершить назначение (например, этот IP-адрес уже назначен другой системе), он посылает клиенту сообщение DHCPNAK и процесс начинается сначала.
В качестве последней проверки клиент с помощью ARP проверяет, действительно ли ни одной системе в сети не назначен тот же IP-адрес. Он передает в сеть сообщение ARP со своим новым IP-адресом, разумеется, в надежде, что ответа не будет. Если это так, транзакция DHCP завершается и клиент переходит в связанное (bound) состояние. Если же на IP-адрес откликнулась другая система, клиент передает серверу сообщение DHCPDECLINE, тем самым аннулируя транзакцию. После этого клиенту не остается ничего другого, как снова заняться рассылкой сообщений DHCPDISCOVER.