Клиент поддерживает две временные переменные, T1 и T2, которые специфицируют времена, когда клиент пытается расширить время действия своего сетевого адреса. T1 равно времени, когда клиент попадает в состояние RENEWING и пытается контактировать с сервером, который предоставил клиенту сетевой адрес. T2 равно времени, когда клиент перешел в состояние REBINDING и пытается контактировать с каким-то сервером. T1 должно быть раньше T2, которое в свою очередь, должно быть раньше, чем время, когда истекает период годности конфигурационного набора параметров.
Чтобы исключить необходимость синхронизации часов, T1 и T2 выражаются в опциях в относительных единицах [2].
В момент T1 клиент переходит в состояние RENEWING и посылает серверу (уникастно) сообщение DHCPREQUEST с тем, чтобы продлить действие набора конфигурационных параметров. Клиент устанавливает поле 'ciaddr' в DHCPREQUEST равным его текущему сетевому адресу. Клиент записывает локальное время, когда было послано сообщение DHCPREQUEST. Клиент не должен включать идентификатор сервера в сообщение DHCPREQUEST.
Любые сообщения DHCPACK, которые приходят с 'xid', не согласующимся с ‘xid' из сообщения клиента DHCPREQUEST, игнорируются. Когда клиент получает от сервера DHCPACK, он вычисляет время истечения пригодности конфигурационного набора параметров (равно сумме времени, когда клиент посылал сообщение DHCPREQUEST и длительности пригодности конфигурационного набора параметров из сообщения DHCPACK). Клиент успешно восстанавливает свой сетевой адрес, возвращается в состояние BOUND и может продолжить свою сетевую активность.
Если не приходит никакого DHCPACK до T2, клиент переходит в состояние REBINDING и посылает широковещательно сообщение DHCPREQUEST с целью расширения времени действия конфигурационного набора. Клиент устанавливает поле 'ciaddr' в DHCPREQUEST равным его текущему сетевому адресу. Клиент не должен включать 'server identifier' в сообщение DHCPREQUEST.
Времена T1 и T2 конфигурируются сервером посредством опций. T1 по умолчанию равно (0.5 * duration_of_lease). T2 по умолчанию равно (0.875 * duration_of_lease). Чтобы исключить синхронизацию восстановления состояния клиентов, времена T1 и T2 должны быть выбраны с некоторым случайным разбросом относительно фиксированных значений.
Клиент может решить обновить или продлить время действия конфигурационного набора вплоть до T1. Сервер может решить расширить длительность пригодности конфигурационного набора параметров в соответствии с политикой сетевого администратора.
Как в состоянии RENEWING, так и в REBINDING, если клиент не получает отклика на свое сообщение DHCPREQUEST. Клиент должен ждать половину остающегося времени вплоть до T2 (в состоянии RENEWING) и половину остающегося времени действия конфигурационного набора (в состоянии REBINDING), как минимум 60 секунд, прежде чем осуществить повторную отправку сообщения DHCPREQUEST.
Если время действия конфигурационного набора иссякло, клиент получает DHCPACK, переходит в состояние INIT, должен остановить всякую сетевую активность и запросить инициализацию параметров. Если клиент получает затем DHCPACK, присваивающее клиенту его предыдущий сетевой адрес, клиенту следует продолжить сетевые операции. Если клиенту дали новый сетевой адрес, он не должен использовать предыдущий и ему следует уведомить локальных пользователей о возникшей проблеме.
Сообщение DHCPRELEASE
Если клиент более не нуждается в использовании своего сетевого адреса (например, клиент завершил работу через shutdown), клиент посылает серверу сообщение DHCPRELEASE. Заметим, что корректная работа DHCP не зависит от передачи сообщений DHCPRELEASE.
Таблица 5. Поля и опции, используемые клиентами DHCP
Поле
DHCPDISCOVER DHCPINFORM
DHCPREQUEST
DHCPDECLINE, DHCPRELEASE
'op'
BOOTREQUEST
BOOTREQUEST
BOOTREQUEST
'htype'
Из RFC"Assigned Numbers"
'hlen'
Длина аппаратного адреса в октетах
'шаги'
'xid'
выбрано клиентом
'xid' из сообщения сервера DHCPOFFER
выбрано клиентом
'secs'
0 или число сек с момента, когда HCP-процесс запущен
0 или число сек со времени, когдаDHCP- процесс запущен
'флаги'
Устанавливает 'BROADCAST'-флаг, если клиент требует широковещательного отклика
Устанавливает 'BROADCAST' флаг, если клиент требует широковещательного отклика
'ciaddr'
0 (DHCPDISCOVER) сетевой адрес клиента(DHCPINFORM)
0 или сетевой адрес клиента (BOUND/RENEW/REBIND)
0 (DHCPDECLINE) сетевой адрес клиента (DHCPRELEASE)
'yiaddr'
'siaddr'
'giaddr'
'chaddr'
аппаратный адрес клиента
аппаратный адрес клиента
аппаратный адрес клиента
'sname'
опции, если указано в 'sname/file' опция; иначе не используется
опции, если указано в 'sname/file' опция; иначе не используется
(не используется)
'файл'
опции, если указано в 'sname/file' опция; иначе не используется
опции, если указано в 'sname/file' опция; иначе не используется
(не используется)
'опции'
опции
опции
(не используется)
Опция
DHCPDISCOVER DHCPINFORM
DHCPREQUEST
DHCPDECLINE, DHCPRELEASE
Requested IP-address
Может (DISCOVER) не должен (INFORM)
Должен (в SELECTING или INIT-REBOOT) не должен (в BOUND или RENEWING)
Должен (DHCPDECLINE), не должен (DHCPRELEASE)
IP-address lease time
Может (DISCOVER) не должен (INFORM)
Может
Не должен
Использование полей 'file'/'sname'
Может
Может
Может
Тип сообщения DHCP
DHCPDISCOVER/ DHCPINFORM
DHCPREQUEST
DHCPDECLINE/ DHCPRELEASE
Идентификатор клиента
Может
Может
Может
Vendor class identifier
Может
Может
Не должен
Идентификатор сервера
Не должен
Должен (после SELECTING)
Не должен (после INIT-REBOOT, BOUND, RENEWING или REBINDING)