Multi-Protocol Routing in Windows 98

Windows 98 provided foundational multi-protocol routing capabilities by leveraging a modular networking architecture that allowed multiple protocol stacks to run concurrently across separate network interfaces. This article examines how the operating system handled network traffic across diverse protocols—primarily TCP/IP, IPX/SPX, and NetBEUI—using protocol bindings, registry-enabled packet forwarding, dial-up bridging, and the eventual introduction of Internet Connection Sharing.

Modular Architecture and NDIS 5.0

At the core of network communication in Windows 98 was the Network Driver Interface Specification (NDIS) version 5.0. NDIS functioned as a multiplexing layer between network hardware drivers and high-level protocol stacks.

Because NDIS 5.0 supported binding multiple protocols to multiple network interface cards (NICs), a single Windows 98 machine could maintain simultaneous connections to completely different physical and logical networks. For example, one adapter could be assigned to a local IPX/SPX Novell NetWare network, while another adapter was configured for standard TCP/IP network traffic.

Core Protocol Stacks

Windows 98 included native 32-bit protected-mode stacks for the three major networking standards of the era:

  • TCP/IP: The standard protocol for the internet and modern local area networks.
  • IPX/SPX (NWLink): Microsoft’s implementation of Novell’s protocol, widely used in legacy local area networks and multiplayer gaming environments.
  • NetBEUI: A small, fast, non-routable protocol used primarily for small workgroups on localized LAN segments.

TCP/IP Packet Forwarding (IPEnableRouter)

Although Windows 98 lacked the sophisticated graphical routing management tools and dynamic routing protocols (like RIP or OSPF) found in Windows NT Server, it could act as a basic static TCP/IP router between two subnets.

This functionality was achieved through a native TCP/IP virtual device driver (MSTCP.VXD). Administrators could enable static IP forwarding by modifying the Windows Registry:

  1. Navigating to HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP.
  2. Creating a string value named IPEnableRouter.
  3. Setting the value data to 1.

Once enabled and configured with dual network adapters on different subnets, Windows 98 inspected incoming IP packets and forwarded them across network interfaces based on its internal routing table.

Dial-Up Server and Remote Bridging

Windows 98 included Dial-Up Networking (DUN) with an optional Dial-Up Server component. When configured to answer incoming calls via a modem, the machine acted as a remote access bridge.

The dial-up subsystem handled multi-protocol negotiations over Point-to-Point Protocol (PPP). Remote clients could dial in and access LAN resources running either TCP/IP or IPX/SPX. The Windows 98 host assigned network settings and forwarded packets between the dial-up connection and the physical Ethernet adapter.

Internet Connection Sharing (ICS)

With the release of Windows 98 Second Edition (SE), Microsoft introduced Internet Connection Sharing (ICS). ICS was a simplified, specialized implementation of Network Address Translation (NAT) routing.

ICS transformed a dual-homed Windows 98 SE machine into a dedicated gateway. It coupled packet routing with lightweight network services, including an internal DHCP allocator and a DNS proxy. This allowed entire subnets to route outbound TCP/IP traffic through a single external connection—such as a dial-up modem, ISDN adapter, or early broadband cable/DSL modem—without requiring independent public IP addresses for every local client.