DHCPREQUEST message from the client. The specific retransmission delays and the
number of times the server should retransmit the
DHCPFORCERENEW message before
giving up are not defined by DHCP.
Reliable delivery of a
DHCPLEASEQUERY message is the responsibility of the original
sender. The server responds to a
DHCPLEASEQUERY message with either a DHCPKNOWN or
a
DHCPUNKNOWN message. If the sender doesn’t receive a response, it retransmits the
DHCPLEASEQUERY message, using exponential backoff to delay retransmissions.
DHCPFORCERENEW and DHCPLEASEQUERY are relatively new additions to DHCP and not
all clients and servers include code that implements these messages. Clients and
servers that do not have code for
DHCPFORCERENEW and DHCPLEASEQUERY will simply
discard those messages without responding to the sender. Servers and clients sending
DHCPFORCERENEW and DHCPLEASEQUERY messages should take into account that they
might never receive responses from some recipients of these messages and compen-
sate by reducing the number and frequency of retransmissions.
Avoiding Message Collisions
Under some circumstances, a DHCP server may receive incoming messages faster
than it can respond to them. It is easy to imagine a scenario in which this might
happen: For example, if power fails in a building, then when the power comes back
on, all the computers in that building might restart at the same time. Computers
that have DHCP clients initiate their DHCP protocol exchanges at almost the same
time. If a network segment has many identical or similar machines, many messages
will be delivered to a server at once.
DHCP includes two mechanisms to decrease the likelihood of overloading a server
with messages from clients. First, a client is required to delay its initial DHCP
message by a random time between 0 and 10 seconds. Second, a DHCP client adjusts
the delay time (in seconds) between retransmissions of a message with a random
value in the range of –1 to +1 to avoid synchronization with other clients.
Transaction IDs
A DHCP client inserts a 32-bit identification number, or transaction ID, in the xid
field of every DHCP message. The DHCP specification gives the client significant
freedom in choosing transaction IDs; the goal is to minimize the chance that two
DHCP clients will use the same transaction ID simultaneously. The client can reuse
the same transaction ID when it retransmits a DHCP message, or it can choose a
different transaction ID for retransmissions. Similarly, the client can choose subse-
quent transaction IDs sequentially, starting with an initial random transaction ID, or
it can choose each transaction ID at random.
Reliable Delivery of DHCP Messages 91
010 3273 CH07 10/3/02 5:02 PM Page 91