This article was previously published under Q320229
When you are connected to a wireless network, your Windows XP DHCP client may incorrectly send a Unicast-Discover packet to a DHCP server. When this occur, the client uses one of the following IP addresses:
An IP address from the APIPA range of addresses (169.254.x.x)
An IP address that is on the same subnet as the DHCP server, even if it is inappropriate to do so.
To resolve this problem, obtain the latest service pack for Windows XP. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
322389 How to Obtain the Latest Windows XP Service Pack
The English version of this fix should have the following file attributes or later:
Date Time Version Size File name ---------------------------------------------------- 23-Aug-2001 05:00 5.1.2600.0 97,000 Dhcpcsvc.dll
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article. This problem was first corrected in Windows XP Service Pack 1.
When you are connected to a wireless network, clients frequently roam from one Access Point (AP) to another. It is unknown whether the new AP is connected to the same subnet as the previous AP. Because of this, every new AP association triggers the DHCP client to renew its IP address. It is possible for the Windows XP DHCP client to enter a state where it requests an IP address incorrectly.
This problem may occur whenever a DHCP client sends a Unicast-Discover packet to a DHCP server by using a relay agent. Because it is a Unicast packet, it is not modified by the DHCP Relay Agent. With no relay agent involved, the GIADDR field in the Discover packet is not updated and remains set to 0.0.0.0. The DHCP server correctly interprets this as being a local client on the same IP subnet as the DHCP server itself.
Because of this behavior, the client does not receive the resulting DHCP OFFER response from the DHCP server. This occurs because the packet cannot be returned to the client's subnet without a valid GIADDR value for the return path.