Jump to content

Internetwork Packet Exchange

From Alfawiki
Internetwork Packet Exchange (IPX)
Company typeNetwork protocol
IndustryComputer networking
PredecessorIDP protocol by Xerox Network Systems
Founded1980s
ProductsIPX/SPX protocol suite

Internetwork Packet Exchange (IPX) serves as the network-layer protocol within the IPX/SPX suite, originating from the IDP protocol developed by Xerox Network Systems. It can also operate at the transport layer level.

During the late 1980s and early-to-mid 1990s, the IPX/SPX protocol suite became widely adopted, largely due to its implementation in Novell's NetWare operating system, a major player in networking software. The compact memory footprint of IPX was particularly advantageous for DOS and early Windows platforms, which had stringent memory limitations. Furthermore, IPX simplified client setup considerably. Despite these strengths, IPX proved inadequate for large-scale networks such as the Internet. As a result, its popularity waned with the rise of TCP/IP, which became the prevailing protocol during the Internet expansion.

In most environments running IPX, TCP/IP was also deployed to facilitate Internet access. Novell officially incorporated full support for both protocols starting with NetWare 5 in 1998, enabling organizations to transition away from IPX.

Description

One of IPX's principal business benefits was its minimal configuration demands. Prior to the widespread adoption of dynamic configuration protocols like DHCP or BOOTP, IPX networks could automatically configure themselves: client machines utilized their network interface's MAC address as node identifiers and acquired network topology information from servers or routers through the Routing Information Protocol, while service discovery was managed via the Service Advertising Protocol.

For administrators managing smaller IPX networks, typical tasks included:

  • Assigning a uniform network number to all servers within a single network segment,
  • Using different network numbers to distinguish frame types within one physical network,
  • Allocating separate network numbers to each interface on multi-network card servers (which often acted as routers),
  • Providing unique network numbers for servers located on interconnected networks,
  • Enabling router functions on nodes equipped with multiple network interfaces in more complex configurations.

IPX packet structure

Each IPX packet begins with a header formatted as follows:

Octets Field
2 Checksum (fixed at 0xFFFF – checksum not used)
2 Packet Length (includes entire IPX header)
1 Transport Control (hop count)
1 Packet Type
12 Destination address
12 Source address

The Packet Type field can have these values:

Value Description/Protocol
0 Unknown
1 RIP (Routing Information Protocol) (RFC 1582, RFC 2091)
2 Echo Packet
3 Error Packet
4 PEP (Packet Exchange Protocol), used by SAP (Service Advertising Protocol)
5 SPX (Sequenced Packet Exchange)
17 NCP (NetWare Core Protocol)
20 Broadcast

IPX addressing

An IPX address is composed of:

Octets Component
4 Network number
6 Node number
2 Socket number

Network number

The network number allows nodes to be addressed beyond a single local cable segment—where data link protocols communicate directly. To enable communication between different networks, IPX routers are required; these may be Novell NetWare servers or dedicated routing devices. Additionally, multiprotocol routers from various manufacturers often include support for IPX routing. Within a single cabling system, different frame types are treated as separate logical networks, each requiring distinct network numbers and routers to interconnect.

  • Each logical network is assigned a unique 32-bit identifier ranging from 0x1 to 0xFFFFFFFE.
  • Nodes use a unique 48-bit node identifier, commonly derived from their network interface card’s MAC address. Network numbers are assigned either manually or dynamically when routers are present. Together, these form an 80-bit unique address for each IPX node across internetworks.
  • The network number 00:00:00:00 refers to the current local network and is employed during router discovery; it serves as the default if no router exists but can be manually overridden.
  • The broadcast network number is FF:FF:FF:FF.

Node number

A node number designates the network interface of a specific computer, commonly identified by the MAC address of its network interface card. The address FF:FF:FF:FF:FF:FF serves as a broadcast destination, allowing packets to be sent to every node within the local network segment.

Socket number

The socket number specifies the target process or application on the receiving node, enabling IPX to operate similarly to a transport layer protocol like the User Datagram Protocol (UDP) within the Internet protocol suite.

Socket number Protocol
0x0001–0x0BB8 Allocated by Xerox
0x0001 Routing Information Packet
0x0002 Echo Protocol Packet
0x0003 Error Handling Packet
0x0020–0x003F Experimental Use
0x0BB9–0xFFFF Assigned Dynamically
0x0451 NetWare Core Protocol (NCP – utilized by Novell NetWare servers)
0x0452 Service Advertising Protocol (SAP)
0x0453 Routing Information Protocol (RIP)
0x0455 NetBIOS
0x0456 Diagnostic Packet
0x0457 Serialization Packet (also used for NCP)
0x4000–0x4FFF Dynamically Allocated Socket Numbers
0x4003 Employed by Novell NetWare Client
0x8000–0xFFFF Statically Allocated Socket Numbers
0x8060 LLC
0x9091 TCP over IPXF
0x9092 UDP over IPXF
0x9093 IPXF, IPX Fragmentation Protocol

Comparison with IP

The IPX network number is analogous to the network segment in an IP address, whereas the node number corresponds to the host segment. Unlike IP, which employs a variable division between network and host fields, IPX maintains a fixed boundary. Since the node address generally reflects the MAC address, IPX does not rely on an Address Resolution Protocol.

Routing tables in IPX resemble those found in IP networks by directing traffic based on network addresses and designated next-hop routers. Three routing protocols are implemented for IPX: an early form of Routing Information Protocol (RIP) that prioritizes delay time; the more scalable NetWare Link Services Protocol (NLSP), derived from IS-IS and introduced with NetWare 3; and Cisco’s version of an IPX-adapted EIGRP.

Frame formats

IPX supports transmission over Ethernet through four distinct frame formats or encapsulation methods:

  • 802.3 (raw) encapsulation employs an IEEE 802.3 frame header (destination MAC, source MAC, length) immediately followed by IPX payload. This format is prevalent in legacy environments and is recognized by the first two bytes of the IPX header set to 0xFFFF, which are invalid as LLC Destination and Source Service Access Points.
  • 802.2 (LLC or Novell) encapsulation includes an IEEE 802.3 frame header succeeded by an LLC header (DSAP 0xE0, SSAP 0xE0, control 0x03) before delivering the IPX data. The values 0xE0 indicate "NetWare."
  • 802.2 SNAP encapsulation consists of an IEEE 802.3 frame header, an LLC header (DSAP 0xAA, SSAP 0xAA, control 0x03), a SNAP header (OUI 0x000000, type 0x8137), followed by IPX data. The fields set to 0xAA signify "SNAP," while the OUI identifies an encapsulated EtherType.
  • Ethernet II uses an Ethernet II frame header (destination MAC, source MAC, EtherType 0x8137) preceding the IPX data.

For networks other than Ethernet, only the 802.2 and SNAP frame formats are supported.

References


External links