Windows 95 DHCP Dynamic IP Assignment Explained

Windows 95 revolutionized PC networking by introducing a built-in, 32-bit TCP/IP stack that supported the Dynamic Host Configuration Protocol (DHCP). Rather than requiring network administrators to manually assign static IP addresses, subnet masks, default gateways, and DNS servers to every workstation, Windows 95 automated this setup. Through standard client-server message exchanges over local area networks, the operating system requested, negotiated, and maintained IP leases directly from a centralized DHCP server.

The Underlying Network Architecture

Windows 95 relied on the Network Driver Interface Specification (NDIS) version 3.1, which ran protected-mode, 32-bit Virtual Device Drivers (VxDs). The central component for TCP/IP was MSTCP.386, accompanied by VDHCP.386, the virtual device driver specifically responsible for DHCP client operations. This architecture operated entirely in protected mode, freeing conventional base memory (the lower 640 KB) that older DOS-based packet drivers and TSRs (Terminate and Stay Resident programs) traditionally consumed.

The Four-Step DHCP Lease Process

When configured to "Obtain an IP address automatically" in the Network Control Panel, Windows 95 initiated the standard DORA (Discover, Offer, Request, Acknowledge) process upon system boot or network adapter initialization:

  1. DHCPDISCOVER: The client, having no assigned IP, broadcasted a DHCPDISCOVER packet using UDP source port 68 to destination port 67 across the local subnet (255.255.255.255), using 0.0.0.0 as its temporary source address. This packet included the hardware (MAC) address of the client's network interface card.
  2. DHCPOFFER: Any active DHCP server on the local segment receiving the broadcast responded with a DHCPOFFER packet containing a proposed IP address, subnet mask, lease duration, and the server’s identifier.
  3. DHCPREQUEST: Windows 95 selected the first valid offer it received and broadcasted a DHCPREQUEST message. This broadcast informed the chosen server that its offer was accepted, while simultaneously signaling to any other DHCP servers that their offers were declined.
  4. DHCPACK: The chosen server finalized the agreement by transmitting a unicast or broadcast DHCPACK (Acknowledgment) packet. This packet delivered the finalized IP address along with essential TCP/IP parameters, including the default gateway, DNS servers, and WINS (Windows Internet Name Service) servers.

Lease Maintenance and Renewal

A DHCP lease in Windows 95 was temporary and bound by timers defined by the server. Windows 95 actively managed this lease using internal timers:

  • T1 Timer (Renewal): At 50% of the lease duration, VDHCP.386 sent a unicast DHCPREQUEST directly to the issuing server to extend the lease. If the server acknowledged (DHCPACK), the timer reset.
  • T2 Timer (Rebinding): If the original server failed to respond by 87.5% of the lease duration, Windows 95 transitioned to a rebinding state, broadcasting a DHCPREQUEST to any available DHCP server on the subnet.
  • Expiration: If the lease expired without successful renewal, Windows 95 released the IP address, terminating TCP/IP communication over that adapter until a new lease could be obtained.

Administrative Management via WINIPCFG

To inspect and manage dynamic IP assignments, Windows 95 included a dedicated graphical utility called WINIPCFG.EXE (the graphical predecessor to the command-line ipconfig tool common in Windows NT and later versions). Located in the C:\WINDOWS directory, WINIPCFG provided users and administrators with an interface to view active MAC addresses, assigned IP addresses, lease start and expiration timestamps, and server details. It also gave users the ability to manually force a lease release or initiate an immediate renegotiation via the "Release" and "Renew" buttons.

Failure Handling

Unlike modern Windows releases, original retail releases of Windows 95 lacked Automatic Private IP Addressing (APIPA), the mechanism that automatically assigns a 169.254.x.x link-local address when a DHCP server cannot be contacted. If a Windows 95 machine failed to reach a DHCP server during initialization, the TCP/IP stack loaded without an IP address, rendering all IP-based network services unavailable until the user manually renewed the configuration via WINIPCFG or restarted the computer with active server connectivity.