IPX/SPX

Last updated
IPX/SPX
Protocol stack
Purpose LAN
Developer(s) Novell
Introduction1983;41 years ago (1983)
Based on XNS
OSI layer 3 and 4
Hardware Ethernet, others

IPX/SPX stands for Internetwork Packet Exchange/Sequenced Packet Exchange. IPX and SPX are networking protocols used initially on networks using the (since discontinued) Novell NetWare operating systems. They also became widely used on networks deploying Microsoft Windows LANs, as they replaced NetWare LANs, but are no longer widely used. IPX/SPX was also widely used prior to and up to Windows XP, which supported the protocols, while later Windows versions do not, [1] and TCP/IP took over for networking.

Contents

Protocol layers

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 Internet Protocol, 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 SPX's performance exceeds that of TCP on a small LAN,[ citation needed ] as in place of congestion windows and confirmatory acknowledgements, SPX uses simple NAKs). 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 IP exclusively), and also because TCP/IP is a more mature protocol,[ citation needed ] 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.

Implementations

Novell was 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.

DOS

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. DOSBox emulates IPX over UDP.

Windows

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[ by whom? ] 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).

Others

For several years, Novell supplied a native NetWare client for OS/2. This was similar in structure to the client for DOS.

Novell also published an IPX client for Classic Mac OS called MacIPX. [2] This was not only used by the Mac NetWare client, but also by games such as Doom and Warcraft III [3] for multiplayer play.

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. [4] The Linux kernel used to support IPX/SPX, but SPX support was removed in 2002, [5] and IPX support was removed in 2018. [6]

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 [7] [8] (providing some functionality [9] ). OpenBSD dropped support with version 4.2, [10] [11] and 4.1 needed some work to compile with IPX. [12]

Legacy

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 VPN connections with security policies that prohibit communication with other LAN devices (such as printers and network-attached storage) via TCP/IP.[ citation needed ]

See also

Related Research Articles

Internetwork Packet Exchange (IPX) is the network layer protocol in the IPX/SPX protocol suite. IPX is derived from Xerox Network Systems' IDP. It also has the ability to act as a transport layer protocol.

A network operating system (NOS) is a specialized operating system for a network device such as a router, switch or firewall.

NetBIOS is an acronym for Network Basic Input/Output System. It provides services related to the session layer of the OSI model allowing applications on separate computers to communicate over a local area network. As strictly an API, NetBIOS is not a networking protocol. Operating systems of the 1980s ran NetBIOS over IEEE 802.2 and IPX/SPX using the NetBIOS Frames (NBF) and NetBIOS over IPX/SPX (NBX) protocols, respectively. In modern networks, NetBIOS normally runs over TCP/IP via the NetBIOS over TCP/IP (NBT) protocol. NetBIOS is also used for identifying system names in TCP/IP (Windows).

In computing, the Windows Sockets API (WSA), later shortened to Winsock, is an application programming interface (API) that defines how Windows network application software should access network services, especially TCP/IP. It defines a standard interface between a Windows TCP/IP client application and the underlying TCP/IP protocol stack. The nomenclature is based on the Berkeley sockets API used in BSD for communications between programs.

NetBIOS Frames (NBF) is a non-routable network- and transport-level data protocol most commonly used as one of the layers of Microsoft Windows networking in the 1990s. NBF or NetBIOS over IEEE 802.2 LLC is used by a number of network operating systems released in the 1990s, such as LAN Manager, LAN Server, Windows for Workgroups, Windows 95 and Windows NT. Other protocols, such as NBT, and NBX (NetBIOS-over-IPX/SPX) also implement the NetBIOS/NetBEUI services over other protocol suites.

<span class="mw-page-title-main">Server Message Block</span> Network communication protocol for providing shared access to resources

Server Message Block (SMB) is a communication protocol used to share files, printers, serial ports, and miscellaneous communications between nodes on a network. On Microsoft Windows, the SMB implementation consists of two vaguely named Windows services: "Server" and "Workstation". It uses NTLM or Kerberos protocols for user authentication. It also provides an authenticated inter-process communication (IPC) mechanism.

<span class="mw-page-title-main">NetWare</span> Computer network operating system

NetWare is a discontinued computer network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, using the IPX network protocol.

Banyan VINES is a discontinued network operating system developed by Banyan Systems for computers running AT&T's UNIX System V.

<span class="mw-page-title-main">UnixWare</span> Unix operating system

UnixWare is a Unix operating system. It was originally released by Univel, a jointly owned venture of AT&T's Unix System Laboratories (USL) and Novell. It was then taken over by Novell. Via Santa Cruz Operation (SCO), it went on to Caldera Systems, Caldera International, and The SCO Group before it was sold to UnXis. UnixWare is typically deployed as a server rather than a desktop. Binary distributions of UnixWare are available for x86 architecture computers. UnixWare is primarily marketed as a server operating system.

<span class="mw-page-title-main">Windows Messenger service</span> Local network notification service for Microsoft Windows

Messenger service is a network-based system notification Windows service by Microsoft that was included in some earlier versions of Microsoft Windows.

The NetWare Core Protocol (NCP) is a network protocol used in some products from Novell, Inc. It is usually associated with the client-server operating system Novell NetWare which originally supported primarily MS-DOS client stations, but later support for other platforms such as Microsoft Windows, the classic Mac OS, Linux, Windows NT, Mac OS X, and various flavors of Unix was added.

<span class="mw-page-title-main">Univel</span> American software company

Univel, Inc. was a joint venture of Novell and AT&T's Unix System Laboratories (USL) that was formed in December 1991 to develop and market the Destiny desktop Unix operating system, which was released in 1992 as UnixWare 1.0. Univel existed only briefly in the period between AT&T initially divesting parts of USL in 1991, and its eventual outright purchase by Novell, which completed in June 1993, thereby acquiring rights to the Unix operating system. Novell merged USL and Univel into their new Unix Systems Group (USG).

In computer networking, STREAMS is the native framework in Unix System V for implementing character device drivers, network protocols, and inter-process communication. In this framework, a stream is a chain of coroutines that pass messages between a program and a device driver. STREAMS originated in Version 8 Research Unix, as Streams.

NWLink is Microsoft's implementation of Novell's IPX/SPX protocols. NWLink includes an implementation of NetBIOS atop IPX/SPX.

A LAN Messenger is an instant messaging program for computers designed for use within a single local area network (LAN).

Caldera OpenLinux (COL) is a defunct Linux distribution. Caldera originally introduced it in 1997 based on the German LST Power Linux distribution, and then taken over and further developed by Caldera Systems since 1998. A successor to the Caldera Network Desktop put together by Caldera since 1995, OpenLinux was an early "business-oriented distribution" and foreshadowed the direction of developments that came to most other distributions and the Linux community generally.

A network socket is a software structure within a network node of a computer network that serves as an endpoint for sending and receiving data across the network. The structure and properties of a socket are defined by an application programming interface (API) for the networking architecture. Sockets are created only during the lifetime of a process of an application running in the node.

References

  1. "How to play IPX / SPX games over LAN (WinXP)". April 12, 2013. Archived from the original on March 2, 2021. Retrieved February 23, 2021.
  2. Archived 2011-07-24 at the Wayback Machine Some notes on MacIPX internetworking, formerly at Archived 2010-08-23 at the Wayback Machine
  3. Blizzard Support. Web.archive.org (2010-08-20). Retrieved on 2013-09-27.
  4. http://www.oreilly.com/openbook/linag2/book/ch15.html Archived 2022-11-05 at the Wayback Machine (note however that the statement "Alan Cox first developed IPX support for the Linux kernel in 1985" must be a misprint because it predates the kernel itself)
  5. https://lwn.net/Articles/7208/ Archived 2022-08-03 at the Wayback Machine (see: "Remove SPX and the last typedefs in IPX, create ipx_hdr")
  6. https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a2e838d28cff6718a0bdf66164465402f8e40ed Archived 2022-11-05 at the Wayback Machine ("staging: ipx: delete it from the tree")
  7. "FreeBSD ports info on Mars NWE". Archived from the original on 2022-11-05. Retrieved 2010-05-09.
  8. "Freshports info on Mars NWE". Archived from the original on 2022-11-05. Retrieved 2010-05-09.
  9. "Novell's comments on Mars NWE". Archived from the original on 2024-06-01. Retrieved 2010-05-09.
  10. "OpenBSD 4.2 changes". Archived from the original on 2011-04-12. Retrieved 2010-05-09.
  11. "Removal of IPX from OpenBSD". Archived from the original on 2022-11-05. Retrieved 2010-05-09.
  12. Berkeley Software Design (BSD): building kernel support with ipx fails Archived July 26, 2011, at the Wayback Machine