Windows 98 DHCP Dynamic IP Acquisition Process

Microsoft Windows 98 automated dynamic network configuration using the Dynamic Host Configuration Protocol (DHCP) built directly into its 32-bit TCP/IP stack. During boot or network initialization, the operating system executed the standard four-step DORA (Discover, Offer, Request, Acknowledge) negotiation over UDP to acquire an IP address, subnet mask, default gateway, and DNS server settings. Windows 98 also introduced Automatic Private IP Addressing (APIPA) as a fallback mechanism when DHCP servers were unreachable, ensuring local-link communication without user intervention.

The DHCP Initialization (DORA) Process

Windows 98 handled IP lease acquisition through the virtual device driver VTCP.386 and its underlying network stack components. The process followed four clear stages:

  1. DHCPDISCOVER: When the network adapter initialized, Windows 98 determined whether dynamic addressing was enabled. If no static IP was assigned, the client sent a DHCPDISCOVER broadcast packet to 255.255.255.255 via UDP port 67, using its hardware MAC address as the identifier.
  2. DHCPOFFER: Listening DHCP servers reserved an IP address from their scope and broadcasted a DHCPOFFER packet to UDP port 68. This packet contained the prospective IP address, lease duration, subnet mask, default gateway, and DNS server records.
  3. DHCPREQUEST: Windows 98 typically accepted the first valid offer it received. It then broadcasted a DHCPREQUEST packet back to the network, stating the selected server's identifier and requested IP. The broadcast nature of this step notified all other DHCP servers that their offers were declined so they could release their reserved addresses.
  4. DHCPACK: The chosen server transmitted a DHCPACK (Acknowledgment) packet to confirm the transaction. Upon receipt, Windows 98 bound the IP configuration to the adapter and committed the parameters to memory and the registry. If a collision or invalid configuration occurred, the server would send a DHCPNACK, forcing Windows 98 to restart the process.

Fallback with APIPA

Windows 98 was the first consumer Windows release to support Automatic Private IP Addressing (APIPA). If the client broadcasted its discovery packets and received no server response after a brief timeout period, the operating system generated an address within the reserved 169.254.0.1 to 169.254.255.254 range (using subnet mask 255.255.0.0). Windows 98 verified via ARP requests that the chosen address was not already in use on the local wire, then assigned it to the adapter while continuing to query for an available DHCP server in the background every five minutes.

Lease Renewal and Management

Once an address was bound, Windows 98 monitored two internal timers to maintain connectivity:

  • T1 Timer (Renewal): At 50% of the lease duration, Windows 98 sent a unicast DHCPREQUEST directly to the issuing server to extend the lease.
  • T2 Timer (Rebinding): If the original server failed to respond and the lease reached 87.5% of its expiration, the client broadcasted a DHCPREQUEST to any active DHCP server on the subnet.
  • Expiration: If the full lease expired without renewal, Windows 98 immediately dropped the IP address, severed active TCP connections, and initiated a new discovery cycle or reverted to APIPA.

Users managed and inspected this process within the GUI using WINIPCFG.EXE, which provided options to view active adapter leases, release allocated addresses with a DHCPRELEASE packet, or force an immediate renewal sequence.