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:
- DHCPDISCOVER: The client, having no assigned IP,
broadcasted a
DHCPDISCOVERpacket using UDP source port 68 to destination port 67 across the local subnet (255.255.255.255), using0.0.0.0as its temporary source address. This packet included the hardware (MAC) address of the client's network interface card. - DHCPOFFER: Any active DHCP server on the local
segment receiving the broadcast responded with a
DHCPOFFERpacket containing a proposed IP address, subnet mask, lease duration, and the server’s identifier. - DHCPREQUEST: Windows 95 selected the first valid
offer it received and broadcasted a
DHCPREQUESTmessage. This broadcast informed the chosen server that its offer was accepted, while simultaneously signaling to any other DHCP servers that their offers were declined. - 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.386sent a unicastDHCPREQUESTdirectly 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
DHCPREQUESTto 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.