|This article needs additional citations for verification. (July 2008)|
IPX and SPX are derived from Xerox Network Systems' IDP and SPP protocols, respectively. IPX is a network layer protocol (layer 3 of the OSI Model), while SPX is a transport layer protocol (layer 4 of the OSI Model). The SPX layer sits on top of the IPX layer and provides connection-oriented services between two nodes on the network. SPX is used primarily by client–server applications.
IPX and SPX both provide connection services similar to TCP/IP, with the IPX protocol having similarities to IP, and SPX having similarities to TCP. IPX/SPX was primarily designed for local area networks (LANs), and is a very efficient protocol for this purpose (typically its performance exceeds that of TCP/IP on a LAN). TCP/IP has, however, become the de facto standard protocol. This is in part due to its superior performance over wide area networks and the Internet (which uses TCP/IP exclusively), and also because TCP/IP is a more mature protocol, designed specifically with this purpose in mind.
Despite the protocols' association with NetWare, they are neither required for NetWare communication (as of NetWare 5.x), nor exclusively used on NetWare networks. NetWare communication requires an NCP implementation, which can use IPX/SPX, TCP/IP, or both, as a transport.
Novell is largely responsible for the use of IPX as a popular computer networking protocol due to their dominance in the network operating system software market (with Novell Netware) from the late 1980s through the mid-1990s.
Novell's original NetWare client was written for DOS. Initial versions required a hard-linked protocol stack, where a separate executable would be created by the network administrator for each network card configuration on the network. This executable would be loaded at boot time, and remain resident in memory until the system was shut down. Later implementations allowed the network stack to be loaded and unloaded dynamically, using pre-existing modules. This greatly simplified maintenance of client workstations on the network.
IPX/SPX was the de facto standard for DOS-era multi-user network games. Many games' longevity were extended through tunneling programs like Kali and Kahn which allowed them to be played over the internet instead of LAN-only.
Because of IPX/SPX's prevalence in LANs in the 1990s, Microsoft added support for the protocols into Windows' networking stack, starting with Windows for Workgroups and Windows NT. Microsoft even named their implementation "NWLink", implying that the inclusion of the layer 3/4 transports provided NetWare connectivity. In reality, the protocols were supported as a native transport for Windows' SMB/NetBIOS, and NetWare connectivity required additional installation of an NCP client (Microsoft provided a basic NetWare client with Windows 95 and later, but it was not automatically installed, and initially only supported NetWare bindery mode). NWLink was still provided with Windows (up to and including Windows Server 2003), but it is neither included with nor supported in Windows Vista. Its use is strongly discouraged because it cannot be used for Windows networking except as a transport for NetBIOS, which is deprecated.
For the most part, Novell's 32-bit Windows client software have eschewed NWLink for an alternative developed by Novell, although some versions permit use of Microsoft's IPX/SPX implementation (with warnings about potential incompatibility).
For several years, Novell supplied a native NetWare client for OS/2. This was similar in structure to the client for DOS.
Implementations have been written for various flavors of Unix/Linux, both by Novell and other vendors. In particular, Novell's UnixWare supported IPX/SPX natively. However, while UnixWare could act as a client to NetWare servers, and applications could optionally support IPX/SPX as a transport, UnixWare did not provide the ability to share files or printers on a NetWare network without an additional software package. Open Enterprise Server - Linux does not support IPX/SPX.
The open source FreeBSD operating system includes an IPX/SPX stack, to support both a NetWare file system client, nwfs, as well as NetWare server using Mars NWE (providing some functionality). OpenBSD dropped support with version 4.2, and 4.1 needed some work to compile with IPX.
IPX usage has declined in recent years as the rise of the Internet has made TCP/IP ubiquitous. Novell's initial attempt to support TCP/IP as a client protocol, called NetWare/IP, simply "tunneled" IPX within IP packets, allowing NetWare clients and servers to communicate over pure TCP/IP networks. However, due to complex implementation, and a significant loss in performance due to the tunnelling overhead, NetWare/IP was largely ignored except as a mechanism to route IPX through TCP/IP-only routers and WAN links. NetWare 5.x introduced native support for NCP over TCP/IP, which is now the preferred configuration. The successor to NetWare, Open Enterprise Server, comes in two flavors: OES-NetWare, which provides legacy support for IPX/SPX (deprecated), and OES-Linux, which only supports TCP/IP.
Both Microsoft and Novell have provided support (through Proxy Server/ISA Server and BorderManager, respectively) for IPX/SPX as an intranet protocol to communicate through a firewall. This allows a machine using client software to access the Internet without having TCP/IP installed locally; the client software emulates a native TCP/IP stack and provides WinSock support for local applications (e.g. web browsers), but actually communicates with the firewall over IPX/SPX. In addition to simplifying migration for legacy IPX LANs, this provides a measure of security, as the use of the IPX protocol on the internal network provides a natural barrier against intruders, should the firewall be compromised.
One area where IPX remains useful is for bypassing VPNs that, otherwise, make all TCP/IP traversal via the VPN mandatory - in so doing, preventing any access to local resources such as printers and shared disks.
- Internetwork Packet Exchange (IPX)
- NetWare Core Protocol (NCP)
- NetBIOS Frames protocol (NBF)
- NetBIOS over TCP/IP (NBT)
- Communications protocol
- Win95 FAQ Part 12 of 14: MS-DOS Games top of question 12.9
-  Some notes on MacIPX internetworking, formerly at 
- Blizzard Support. Web.archive.org (2010-08-20). Retrieved on 2013-09-27.
- FreeBSD ports info on Mars NWE
- Freshports info on Mars NWE
- Novell's comments on Mars NWE
- OpenBSD 4.2 changes
- Removal of IPX from OpenBSD
- Berkeley Software Design (BSD): building kernel support with ipx fails