IPX/SPX
| Industry | Computer networking protocols |
|---|---|
| Founded | 1980s |
| Founder | Novell |
| Products | Internetwork Packet Exchange (IPX), Sequenced Packet Exchange (SPX) |
IPX/SPX (short for Internetwork Packet Exchange/Sequenced Packet Exchange) are communication protocols originally created for Novell NetWare operating systems. These protocols became widely adopted on Microsoft Windows local area networks, often substituting NetWare LANs. Their usage has diminished since the release of Windows XP, which was the final Windows version to natively support them. Currently, TCP/IP has predominantly replaced IPX/SPX in most networking environments.
Protocol layers
IPX and SPX protocols have their roots in Xerox Network Systems’ IDP and SPP protocols. IPX functions at the network layer (layer 3 in the OSI model), whereas SPX operates at the transport layer (layer 4). SPX delivers connection-oriented communication on top of IPX, primarily facilitating client–server interactions.
These protocols provide connection services akin to those found in TCP/IP, with IPX paralleling the role of the Internet Protocol and SPX serving a function similar to TCP. Tailored largely for use on local area networks (LANs), IPX/SPX performs efficiently within such settings; notably, SPX can surpass TCP’s performance on smaller LANs by employing straightforward negative acknowledgements (NAKs) instead of complex congestion control mechanisms and positive acknowledgements. Nonetheless, TCP/IP emerged as the preferred standard due to superior scalability across wide area networks and the Internet, alongside its more mature architecture and design emphasis.
While closely linked to NetWare systems, IPX/SPX is not compulsory for NetWare communication starting with NetWare 5.x. The NetWare Core Protocol (NCP) can operate over IPX/SPX, TCP/IP, or both protocols concurrently.
Implementations
Novell played a pivotal role in popularizing IPX as a dominant networking protocol during its stronghold in the network operating system market from the late 1980s through the mid-1990s.
DOS
The first NetWare client designed for DOS utilized a hard-coded protocol stack, requiring a customized executable tailored for each network interface card configuration that loaded during system startup. Subsequent releases introduced dynamically loadable and unloadable network modules, easing client management.
During the DOS era, IPX/SPX became the de facto standard for multi-user network gaming. Tools such as Kali and Kahn extended the lifespan of these games by tunneling IPX traffic over the Internet beyond traditional LAN boundaries. Additionally, DOSBox offers emulation of IPX over UDP.
Windows
Given IPX/SPX’s dominance in LAN environments throughout the 1990s, Microsoft incorporated native support for these protocols starting with Windows for Workgroups and continuing into Windows NT. Microsoft’s implementation, known as "NWLink", provided IPX/SPX as a transport mechanism for SMB/NetBIOS, though connecting to NetWare servers required installing an additional NCP client. Basic NetWare client support was included with Windows 95 and later versions but was neither enabled by default nor initially supported advanced modes beyond bindery. NWLink remained part of Windows up to Windows Server 2003, but was removed and unsupported beginning with Windows Vista, with its use discouraged due to the phasing out of NetBIOS transport.
Novell’s 32-bit clients for Windows typically replaced NWLink with proprietary protocol stacks, although certain releases permitted use of Microsoft’s IPX/SPX implementation accompanied by compatibility warnings.
Other Platforms
Novell developed native NetWare clients for OS/2 comparable to the DOS versions, along with an IPX client for Classic Mac OS named MacIPX. This client was utilized both by the Mac NetWare client and multiplayer games such as Doom and Warcraft III.
Multiple Unix and Linux implementations have been created by Novell and other developers. While Novell's UnixWare included built-in IPX/SPX support, additional software was necessary to achieve complete NetWare file and printer sharing capabilities. The Open Enterprise Server - Linux variant does not provide IPX/SPX compatibility. The Linux kernel phased out SPX support in 2002, followed by IPX support in 2018.
The open source FreeBSD operating system incorporates an IPX/SPX protocol stack that facilitates a NetWare file system client (nwfs) and server functionality through Mars NWE, delivering limited NetWare features. Conversely, OpenBSD discontinued IPX support starting with its version 4.2.
Legacy
The prevalence of IPX has diminished significantly as TCP/IP established itself as the standard protocol with the expansion of the Internet. Novell’s early approach to TCP/IP integration, known as NetWare/IP, encapsulated IPX packets within IP to permit communication over TCP/IP networks. Due to its complex setup and performance degradation caused by tunneling overhead, NetWare/IP primarily served to route IPX traffic across networks limited to TCP/IP routers and WAN connections. With NetWare 5.x, native NCP support over TCP/IP was introduced, which has since become the standard configuration. Its successor, Open Enterprise Server, is available in two editions: OES-NetWare, which maintains legacy IPX/SPX support but is now deprecated, and OES-Linux, which supports only TCP/IP.
Both Microsoft and Novell provided IPX/SPX compatibility through Proxy Server/ISA Server and BorderManager products respectively. These solutions allowed intranet communications through firewalls without requiring local TCP/IP stacks. The client software emulated a TCP/IP stack for applications while using IPX/SPX protocols underneath, facilitating transition from legacy IPX networks and enhancing security by reducing exposure if firewall breaches occurred.
IPX still proves valuable in environments where VPN security policies restrict TCP/IP connectivity to LAN resources such as printers or network-attached storage devices.