Recent from talks
Nothing was collected or created yet.
Internetwork Packet Exchange
View on WikipediaThis article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
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.
The IPX/SPX protocol suite was very popular through the late 1980s and mid-1990s because it was used by Novell NetWare, a network operating system. Due to Novell NetWare's popularity, IPX became a prominent protocol for internetworking.
A big advantage of IPX was a small memory footprint of the IPX driver, which was vital for DOS and Windows up to Windows 95 due to the limited size at that time of conventional memory. Another IPX advantage was easy configuration of its client computers. However, IPX does not scale well for large networks such as the Internet.[1] As such, IPX usage decreased as the boom of the Internet made TCP/IP nearly universal.
Computers and networks can run multiple network protocols, so almost all IPX sites also ran TCP/IP, to allow Internet connectivity.[2] It was also possible to run later Novell products without IPX, with the beginning of full support for both IPX and TCP/IP by NetWare version 5[3] in late 1998.
Description
[edit]A big advantage of IPX protocol is its little or no need for configuration. In the time when protocols for dynamic host configuration did not exist and the BOOTP protocol for centralized assigning of addresses was not common, the IPX network could be configured almost automatically. A client computer uses the MAC address of its network card as the node address and learns what it needs to know about the network topology from the servers or routers – routes are propagated by Routing Information Protocol, services by Service Advertising Protocol.
A small IPX network administrator had to care only
- to assign all servers in the same network the same network number,
- to assign different network numbers to different frame formats in the same network,
- to assign different network numbers to different interfaces of servers with multiple network cards (Novell NetWare server with multiple network cards worked automatically as a router),
- to assign different network numbers to servers in different interconnected networks,
- to start router process on nodes with multiple network cards in more complex networks.
IPX packet structure
[edit]Each IPX packet begins with a header with the following structure:
| Octets | Field |
|---|---|
| 2 | Checksum (always 0xFFFF – no checksum) |
| 2 | Packet Length (including the IPX header) |
| 1 | Transport Control (hop count) |
| 1 | Packet Type |
| 12 | Destination address |
| 12 | Source address |
The Packet Type values are:
| Value | Meaning/Protocol |
|---|---|
| 0 | Unknown |
| 1 | RIP (Routing Information Protocol) (RFC 1582, RFC 2091) |
| 2 | Echo Packet |
| 3 | Error Packet |
| 4 | PEP (Packet Exchange Protocol), used for SAP (Service Advertising Protocol) |
| 5 | SPX (Sequenced Packet Exchange) |
| 17 | NCP (NetWare Core Protocol) |
| 20 | Broadcast[4] |
IPX addressing
[edit]An IPX address has the following structure:
| Octets | Field |
|---|---|
| 4 | Network number |
| 6 | Node number |
| 2 | Socket number |
Network number
[edit]The network number allows to address (and communicate with) the IPX nodes which do not belong to the same network or cabling system. The cabling system is a network in which a data link layer protocol can be used for communication. To allow communication between different networks, they must be connected with IPX routers. A set of interconnected networks is called an internetwork. Any Novell NetWare server may serve as an IPX router. Novell also supplied stand-alone routers. Other vendors ' multiprotocol routers often support IPX routing. Using different frame formats in one cabling system is possible, but it works similarly as if separate cabling systems were used (i.e. different network numbers must be used for different frame formats even in the same cabling system and a router must be used to allow communication between nodes using different frame formats in the same cabling system).
- Logical networks are assigned a unique 32-bit address in the range 0x1 to 0xFFFFFFFE (hexadecimal).
- Hosts have a 48-bit node address, which is by default set to the 6 bytes of the network interface card MAC address. Network addresses, which exist in addition to the node address but are not part of the MAC layer, are assigned only if an IPX router is present or by manual configuration in the network. The network address covers every network participant that can talk to another participant without the aid of an IPX router. In combination, both network and node address form an 80-bit unique identifier for each IPX node across connected logical networks. The node number itself is unique to the logical network only.
- Network number 00:00:00:00 refers to the current network, and is also used during router discovery. It's also the default in case no router is present, but can be changed by manual configuration, depending on the IPX implementation.
- Broadcast network number is FF:FF:FF:FF.
Node number
[edit]The node number is used to address an individual computer (or more exactly, a network interface) in the network. Client stations use its network interface card MAC address as the node number.
The value FF:FF:FF:FF:FF:FF may be used as a node number in a destination address to broadcast a packet to "all nodes in the current network".
Socket number
[edit]The socket number serves to select a process or application in the destination node. The presence of a socket number in the IPX address allows the IPX to act as a transport layer protocol, comparable with the User Datagram Protocol (UDP) in the Internet protocol suite.
| Socket number | Protocol |
|---|---|
| 0x0001–0x0BB8 | Registered by Xerox |
| 0x0001 | Routing Information Packet |
| 0x0002 | Echo Protocol Packet |
| 0x0003 | Error Handling Packet |
| 0x0020–0x003F | Experimental |
| 0x0BB9–0xFFFF | Dynamically Assigned |
| 0x0451 | NetWare Core Protocol (NCP – used by Novell NetWare servers) |
| 0x0452 | Service Advertising Protocol (SAP) |
| 0x0453 | Routing Information Protocol (RIP) |
| 0x0455 | NetBIOS |
| 0x0456 | Diagnostic Packet |
| 0x0457 | Serialization Packet (used for NCP as well) |
| 0x4000–0x4FFF | Dynamically Assigned Socket Numbers |
| 0x4003 | Used by Novell NetWare Client |
| 0x8000–0xFFFF | Statically Assigned Socket Numbers |
| 0x8060 | LLC[4] |
| 0x9091 | TCP over IPXF |
| 0x9092 | UDP over IPXF |
| 0x9093 | IPXF, IPX Fragmentation Protocol |
Comparison with IP
[edit]The IPX network number is conceptually identical to the network part of the IP address (the parts with netmask bits set to 1); the node number has the same meaning as the bits of IP address with netmask bits set to 0. The difference is that the boundary between network and node part of address in IP is variable, while in IPX it is fixed. As the node address is usually identical to the MAC address of the network adapter, the Address Resolution Protocol is not needed in IPX.
For routing, the entries in the IPX routing table are similar to IP routing tables; routing is done by network address, and for each network address a network:node of the next router is specified in a similar fashion an IP address/netmask is specified in IP routing tables.
There are three routing protocols available for IPX networks. In early IPX networks, a version of Routing Information Protocol (RIP) was the only available protocol to exchange routing information. Unlike RIP for IP, it uses delay time as the main metric, retaining the hop count as a secondary metric. Since NetWare 3, the NetWare Link Services Protocol (NLSP) based on IS-IS is available, which is more suitable for larger networks. Cisco routers implement an IPX version of EIGRP protocol as well.[5]
Frame formats
[edit]IPX can be transmitted over Ethernet using one of the following 4 frame formats or encapsulation types:
- 802.3 (raw) encapsulation comprises an IEEE 802.3 frame header (destination MAC, source MAC, length) immediately followed by IPX data. It is used in legacy systems, and can be distinguished by the first two bytes of the IPX header always containing a value of 0xFFFF, which cannot be interpreted as valid LLC Destination and Source Service Access Points in this location of the frame.
- 802.2 (LLC or Novell) comprises an IEEE 802.3 frame header (destination MAC, source MAC, length) followed by an LLC header (DSAP 0xE0, SSAP 0xE0, control 0x03) followed by IPX data. The 0xE0 fields of the LLC header indicate "NetWare".
- 802.2 (SNAP) comprises an IEEE 802.3 frame header, an LLC header (DSAP 0xAA, SSAP 0xAA, control 0x03), a SNAP header (OUI 0x000000, type 0x8137), and IPX data. The 0xAA fields of the LLC header indicate "SNAP", and the OUI 0x000000 in the SNAP header indicates an encapsulated EtherType.
- Ethernet II encapsulation comprises an Ethernet II frame header (destination MAC, source MAC, EtherType 0x8137) followed by IPX data.
In non-Ethernet networks, only 802.2 and SNAP frame types are available.
References
[edit]- ^ Simson Garfinkel, Gene Spafford (1996). Practical UNIX and Internet Security (2nd ed.). O'Reilly Media. ISBN 9781565921481.
It does not scale well to large networks such as the Internet
. - ^ "Do you still support IPX/SPX on your Windows servers?". TechRepublic. February 12, 2001. Archived from the original on July 10, 2012.
- ^ Maintaining IPX Compatibility During a Migration to TCP/IP on a NetWare Network. support.novell.com.
- ^ a b "A Standard for the Transmission of 802.2 Packets over IPX Networks". IETF.
- ^ Oppenheimer, Priscilla; Bardwell, Joseph (August 2002). Troubleshooting Campus Networks: Practical Analysis of Cisco and LAN Protocols. John Wiley & Sons, Inc. pp. 421–440. ISBN 978-0-471-21013-9.
External links
[edit]Internetwork Packet Exchange
View on GrokipediaOverview
Description
Internetwork Packet Exchange (IPX) is a connectionless datagram protocol that forms the core of the IPX/SPX protocol suite, primarily designed for routing packets across interconnected local area networks (LANs).[7] Developed by Novell, IPX was adapted from the Xerox Network Systems' (XNS) Internet Datagram Protocol (IDP), retaining a similar structure while introducing modifications such as Ethernet encapsulation and the use of ticks as a routing metric.[8] As a network-layer protocol, it operates without establishing connections between nodes, enabling efficient transmission of individual packets in environments like Novell NetWare.[9] The core function of IPX involves delivering datagrams between nodes with minimal configuration requirements, leveraging the host's MAC address for the 48-bit node identification within its 80-bit addressing scheme (combining a 32-bit network number and the node part).[10] This automatic node addressing eliminates the need for protocols like ARP, simplifying deployment in LANs, while dynamic routing is supported via protocols such as Routing Information Protocol (RIP).[5] IPX packets include a compact 30-byte header, contributing to its low overhead and suitability for resource-constrained systems.[5] IPX gained significant popularity from the late 1980s through the mid-1990s, powering a majority of enterprise networks through its integration with Novell NetWare, which dominated networked Intel/DOS-based environments with 60 to 70 percent market share before the widespread adoption of TCP/IP.[11] Its advantages included a low memory footprint due to the small header size, automatic node addressing for plug-and-play operation, and ease of setup in segmented networks, making it ideal for early client-server architectures without extensive manual addressing.[5][10]Key Features
Internetwork Packet Exchange (IPX) provides a connectionless datagram service at the network layer, analogous to that of the Internet Protocol (IP), wherein packets are transmitted without establishing a connection, offering no guarantees for delivery, ordering, or error correction.[1] This design choice prioritizes efficiency in local area network (LAN) environments by minimizing overhead, allowing for rapid packet forwarding without session management.[1] The IPX header is fixed at 30 octets, contributing to its simplicity and performance compared to protocols like IP, which feature variable-length headers due to optional fields. Key header fields include a 2-octet checksum, which is always set to 0xFFFF to disable verification for simplicity; a 2-octet packet length indicating the total size including the header; a 1-octet transport control field serving as a hop count to prevent routing loops; and a 1-octet packet type field specifying the protocol, such as 0x05 for Sequenced Packet Exchange (SPX) or other values for routing and error packets.[1][5] For applications requiring reliability, IPX relies on higher-layer protocols like SPX, which adds sequencing, acknowledgments, and retransmission atop the base datagram service.[1] Addressing in IPX eliminates the need for an Address Resolution Protocol (ARP) equivalent, as node addresses are directly derived from the 6-octet MAC addresses of network interfaces, simplifying resolution on shared media.[1] The protocol further supports broadcast transmission to all nodes on a network (using the all-ones MAC address 0xFFFFFFFFFFFF) and multicast for targeted service announcements, enhancing discovery in dynamic LAN topologies without additional infrastructure.[1]Historical Development
Origins and Influences
The Internetwork Packet Exchange (IPX) protocol originated from the Xerox Network Systems (XNS) architecture developed in the late 1970s by Xerox Corporation's Palo Alto Research Center (PARC).[12] XNS was designed as an open standard for internetworking local area networks (LANs), building on earlier work like the PARC Universal Packet (PUP) internetwork architecture from the mid-1970s.[13] A core component of XNS was the Internet Datagram Protocol (IDP), a connectionless network-layer protocol specified in Xerox documentation from November 1979, which provided unreliable datagram delivery across heterogeneous networks using a 32-bit network address and 48-bit host address scheme. In the early 1980s, Novell's engineering team adapted IDP as the foundation for IPX to support their emerging NetWare network operating system.[2] This adaptation retained IDP's core datagram structure and addressing concepts, enabling efficient routing and internetworking of diverse LAN technologies like Ethernet and Token Ring without the complexity of emerging standards like TCP/IP.[12] Minor modifications were made, such as changes to the checksum and packet length fields, but IPX remained largely identical to IDP in functionality. The primary motivation for developing IPX was to provide a simple, routable protocol for file and print sharing services in NetWare environments during the pre-TCP/IP era of the 1980s, when proprietary LANs required straightforward interoperability for resource access across multiple sites.[2] By leveraging XNS's proven datagram model, Novell addressed the need for low-overhead communication in client-server networking, facilitating rapid deployment in business settings without relying on connection-oriented overhead.[12] This design choice positioned IPX as a practical alternative for early enterprise networks, emphasizing ease of integration over advanced reliability features.Adoption in Novell NetWare
IPX was integrated into Novell NetWare from its initial release in 1983 with NetWare 1.0, establishing it as the core network protocol for client-server communications in local area networks.[14] This early adoption leveraged IPX for efficient file and print sharing, enabling seamless connectivity across PC-based networks without the overhead of more complex protocols, supporting cooperative multitasking and basic bindery services for user authentication and resource management. NetWare 2.0, released in 1986, further enhanced IPX implementation on dedicated file servers.[15] Subsequent enhancements in the NetWare 3.x series, spanning 1989 to 1993, improved IPX's routing capabilities to accommodate larger, segmented networks. NetWare 3.0, released in September 1989, introduced better handling of IPX traffic through enhanced internal routing mechanisms, while versions like 3.11 and 3.12 further optimized performance for multi-server environments using protocols such as IPX RIP for segmentation. The pinnacle of IPX's role came with NetWare 4.0 in April 1993, which introduced Novell Directory Services (NDS) as a hierarchical directory over IPX, facilitating centralized management of users, printers, and files across wide-area networks. This integration solidified IPX as the backbone for NDS queries and authentication, with service discovery via SAP enabling clients to locate NetWare servers dynamically.[16][17][18] By the mid-1990s, IPX with NetWare dominated enterprise networking, capturing nearly 70% of the network operating system market and powering installations that served millions of users for file and print services. Its compatibility with prevalent data link technologies like Ethernet and Token Ring, combined with lower implementation costs relative to emerging TCP/IP infrastructures, drove widespread enterprise adoption. These factors made IPX/NetWare a cost-effective choice for organizations building scalable LANs, often outperforming alternatives in speed and simplicity for internal communications.[19][6][20] The trajectory shifted with NetWare 5.0 in October 1998, which introduced comprehensive native TCP/IP support alongside IPX, allowing servers to operate exclusively on TCP/IP and signaling a move away from IPX's exclusivity in Novell's ecosystem. This addition enabled hybrid environments, reflecting broader industry convergence on internet standards while maintaining backward compatibility for legacy IPX-based applications.[21]Protocol Architecture
Packet Structure
The Internetwork Packet Exchange (IPX) packet format comprises a fixed 30-octet header followed by a variable-length data payload, enabling efficient routing and delivery across Novell networks.[1] The header encapsulates essential control information, addressing details, and type indicators, while the payload carries upper-layer protocol data such as that from Sequenced Packet Exchange (SPX) or NetWare Core Protocol (NCP). The IPX packet format supports a theoretical maximum total size of 65,535 octets via the 16-bit packet length field. The standard maximum transmission unit (MTU) is 576 octets (30-byte header + 546 bytes of data) for interoperability across routed networks, but on Ethernet LANs, packets can reach up to 1,500 octets to match the frame payload capacity.[22] The header fields are laid out in the following byte order, with big-endian (network byte order) for multi-octet values:| Bytes | Field | Purpose |
|---|---|---|
| 0-1 | Checksum | 2 octets; provides packet integrity verification. Typically set to 0xFFFF to disable checksum (common in early implementations), but when enabled, it is the one's complement of the sum of all 16-bit words in the packet, similar to XNS IDP. Often bypassed in favor of transport-layer checks like those in SPX.[1][23] |
| 2-3 | Packet Length | 2 octets; specifies the total length of the packet in octets, including the header and payload (minimum 30 octets).[1] |
| 4 | Transport Control | 1 octet; acts as a time-to-live (TTL)-like hop count, initialized to 0 by the sender and incremented by each router (typically discarded after 16 hops).[1] |
| 5 | Packet Type | 1 octet; identifies the upper-layer protocol or packet purpose (e.g., 0x01 for RIP, 0x04 for SAP, 0x05 for SPX, 0x11 for NCP, 0x14 for NetBIOS).[24][1] |
| 6-17 | Destination Address | 12 octets; comprises a 4-octet network number, 6-octet node address, and 2-octet socket identifier for the target.[1] |
| 18-29 | Source Address | 12 octets; structured identically to the destination address, indicating the sender's network, node, and socket.[1] |
Addressing Scheme
The Internetwork Packet Exchange (IPX) addressing scheme employs a 12-byte (96-bit) address composed of three distinct components: a 32-bit network number, a 48-bit node number, and a 16-bit socket number.[1] The network number identifies the specific logical network segment, enabling routing across the internetwork; valid values range from 0x00000001 to 0xFFFFFFFE for routable networks, while 0x00000000 designates local or non-routed (internal) networks that do not propagate beyond the local segment.[1][26] Network numbers are manually configured by administrators on routers and servers during network setup, ensuring uniqueness across the entire IPX internetwork to prevent routing conflicts.[1][27] For internal virtual networks, such as those within a server or on unnumbered WAN links, the value 0x00000000 is used, confining traffic to the local device or link without requiring external routing.[1] The node number, typically derived from the device's 48-bit MAC address (e.g., an Ethernet hardware address like 00:11:22:33:44:55), ensures host identification within a single network segment.[1][27] This direct mapping provides uniqueness on local area networks (LANs) where MAC addresses are inherently unique, but global uniqueness requires the accompanying network number prefix, as node numbers alone do not span multiple segments.[1][26] Sockets serve to demultiplex incoming IPX packets to specific applications or processes on the destination node, functioning analogously to transport-layer ports but without dedicated protocols for dynamic allocation.[1] Well-known sockets are statically assigned for core services, such as 0x0451 for NetWare Core Protocol (NCP) communications, while dynamic sockets in the range 0x4000 to 0x7FFF are assigned by the local IPX stack for temporary use by client applications.[28][26] Address resolution in IPX bypasses the need for a separate protocol like ARP, as the node number directly corresponds to the underlying data link layer MAC address, allowing immediate frame construction and delivery on local segments without additional mapping queries.[27][26] For inter-network communication, routers use the network number to forward packets, embedding the full address in IPX headers to guide delivery.[1]Network Operations
Routing Protocols
The primary routing protocol for Internetwork Packet Exchange (IPX) networks is IPX RIP, a distance-vector protocol that exchanges routing information using hop count as its sole metric, without considering bandwidth or other link characteristics.[2] Routers running IPX RIP broadcast update packets every 60 seconds to advertise known network numbers and their associated hop counts, enabling path determination based on the lowest hop value.[29] These updates use IPX packet type 0x01 for both requests and responses, where each entry includes a 4-byte network number and an 8-bit hop count field, allowing up to 50 routes per packet to minimize overhead. IPX RIP imposes a maximum hop count of 15, with 16 designated as unreachable (infinity), which limits its effective use to small- to medium-sized networks and prevents routing loops by discarding packets exceeding this threshold.[29] The protocol's reliance on periodic broadcasts introduces scalability challenges in large networks, as frequent updates generate significant overhead, particularly on wide-area links, leading to congestion and slow convergence during topology changes.[2] To address IPX RIP's limitations, Novell introduced the NetWare Link Services Protocol (NLSP) in 1994 as a NetWare Loadable Module (NLM) for NetWare 3.11 and later, a link-state protocol designed for larger IPX internetworks.[30] NLSP builds on the ISO IS-IS framework, flooding link-state advertisements to compute shortest paths using a composite metric that includes delay, throughput, and hop count, while supporting configurable hop limits from 8 to 127 for greater flexibility. NLSP also provides service location capabilities, supplanting SAP's periodic broadcasts with targeted link-state advertisements for improved efficiency. This enables faster convergence and reduced broadcast traffic compared to IPX RIP, making it suitable for enterprise-scale deployments.[1] Cisco provided an alternative through Enhanced Interior Gateway Routing Protocol (EIGRP) support for IPX, introduced as a hybrid protocol that enhances distance-vector efficiency with partial updates and the Diffusing Update Algorithm (DUAL) for loop prevention.[2] EIGRP for IPX uses a composite metric incorporating bandwidth, delay, reliability, load, and hop count (capped at 255), allowing automatic redistribution with IPX RIP routes while minimizing update frequency to only changed information.[2]Service Discovery
In IPX networks, the primary mechanism for advertising and locating services such as file servers and printers is the Service Advertising Protocol (SAP), which enables servers to periodically broadcast their availability and details to clients across the network. Servers transmit SAP packets every 60 seconds by default, containing information about their services, allowing clients and routers to maintain a database of available resources. This broadcast-based approach facilitates dynamic discovery without requiring prior configuration of service locations.[1][31] SAP packets include key fields such as the service type (2 octets, for example, 0x0004 indicating a file server), a 48-byte server name, and the full IPX address comprising the 4-byte network number, 6-byte node address, and 2-byte socket number. These packets are sent to IPX socket 0x0452. For queries, clients can issue a Get Nearest Server request (SAP type 17), which is broadcast to solicit responses from the closest available server, determined by the lowest RIP hop count metric. The responding server includes its service details and distance in the reply, enabling the client to connect to the nearest resource.[1][32] In large IPX networks, the frequent SAP broadcasts can generate significant overhead, flooding routers with traffic and consuming bandwidth, particularly over wide-area links. To mitigate this, later implementations introduced SAP filters on routers, which selectively propagate or block advertisements based on service types or networks, reducing unnecessary propagation while preserving essential discovery functions. Prior to the introduction of Novell Directory Services (NDS), SAP integrated with the NetWare bindery to allow clients to locate and access resources like file and print servers without a centralized directory.[1][33]Data Link Integration
Frame Formats
Internetwork Packet Exchange (IPX) packets are encapsulated within various data link layer frame formats to support transmission over different physical media, with Ethernet being the most common. These formats allow IPX to coexist with other protocols on shared networks by using specific identifiers in the frame headers. The supported formats include Ethernet II, IEEE 802.3 raw, IEEE 802.2 with Novell LLC, and IEEE 802.2 SNAP for Ethernet interfaces, each preceding the IPX packet structure in the payload field.[34][35] In the Ethernet II format, IPX uses the EtherType field set to0x8137 to identify the protocol, distinguishing it from other network protocols like IP. This format follows the original Ethernet specification and supports a payload of 46 to 1500 octets, accommodating the IPX header and data while adhering to the standard minimum and maximum frame sizes (including padding if necessary). It is particularly useful in environments requiring compatibility with DIX Ethernet standards.[35][34]
The IEEE 802.3 raw format, often referred to as Novell's proprietary encapsulation, omits an explicit protocol type field and instead relies on the length field in the 802.3 header followed directly by the IPX header, where the IPX checksum field is set to 0xFFFF to signal an IPX packet. This was the default for early NetWare versions, such as NetWare 3.11, and supports the same 46 to 1500 octet payload range, though it lacks formal IEEE standardization for protocol identification.[34][35]
For IEEE 802.2 with Novell LLC, an 802.3 MAC header is extended with an 802.2 Logical Link Control (LLC) header where both the Destination Service Access Point (DSAP) and Source Service Access Point (SSAP) are set to 0xE0 to denote IPX, without requiring a Subnetwork Access Protocol (SNAP) extension. This format became the default in later NetWare releases, like NetWare 4.0, and maintains the 46 to 1500 octet payload capacity while providing standardized LLC-based identification.[34][35]
The IEEE 802.2 SNAP format combines an 802.3 MAC header with an 802.2 LLC header (DSAP and SSAP both 0xAA, control field 0x03) followed by a SNAP header featuring an Organizational Unit Identifier (OUI) of 0x000000 and a protocol identifier of 0x8137 for IPX. This enables multiprotocol support on IEEE 802 networks and uses the standard Ethernet payload size of 46 to 1500 octets. It is commonly employed for interoperability with other protocols.[34][35]
On non-Ethernet media, IPX adapts similarly using IEEE 802 standards. For Token Ring (IEEE 802.5), it employs the 802.2 LLC header with SNAP encapsulation (DSAP/SSAP 0xAA, OUI 0x000000, protocol ID 0x8137) to carry IPX packets. Fiber Distributed Data Interface (FDDI) follows a comparable approach, integrating IPX via 802.2 SNAP over its MAC layer for consistent protocol identification across ring topologies.[34][35]
Encapsulation Methods
Internetwork Packet Exchange (IPX) employs media-specific encapsulation methods to transmit packets over diverse physical layers, ensuring compatibility while optimizing for performance and maximum transmission unit (MTU) constraints. Over Ethernet, the preferred method is raw 802.3 encapsulation, which directly follows the Ethernet MAC header with the IPX packet, bypassing the IEEE 802.2 Logical Link Control (LLC) header to eliminate overhead and enhance efficiency. This approach supports an IPX payload of up to 1500 octets, the standard Ethernet MTU; for WAN links, the MTU is often limited to 576 octets to ensure compatibility without fragmentation.[1][36] For Token Ring networks, IPX encapsulation integrates with the IEEE 802.5 MAC layer, appending either LLC Type 2 or Subnetwork Access Protocol (SNAP) headers to the IPX packet. Source routing within the Token Ring frame enables bridging across multiple rings, supporting paths of up to 13 intermediate bridges. This configuration leverages Token Ring's larger frame capacity, accommodating IPX packets up to 4464 octets, which facilitates higher-throughput transfers in environments with extended topologies.[35][37] Similarly, adaptations for Fiber Distributed Data Interface (FDDI) and Token Ring (802.5) utilize SNAP encapsulation following the respective MAC headers, with the SNAP header identifying the IPX protocol (EtherType 0x8137). FDDI's inherent support for larger frames allows IPX packets to reach MTUs of up to 4352 octets, making it suitable for high-speed backbone connections.[35][38] In wide area network (WAN) scenarios, IPX extends encapsulation over protocols like Point-to-Point Protocol (PPP) and Frame Relay to maintain connectivity across asynchronous and switched links. For PPP, as specified in RFC 1552, IPX datagrams are embedded directly in the PPP Information field using protocol identifier 0x002B, with a minimum supported size of 576 octets to avoid fragmentation issues. Network numbers are propagated during link establishment via the IPX Control Protocol (IPXCP) or the IPXWAN protocol, which negotiates parameters like compression and node addressing. Over Frame Relay, IPX adheres to RFC 1490 encapsulation within frames, initiating IPXWAN exchanges on active permanent virtual circuits (PVCs) to assign and share network numbers dynamically, ensuring seamless routing propagation without media-dependent alterations. Regardless of the encapsulation method, the IPX header's Transport Control field—initially set to 0 by the source—is incremented by 1 at each router hop to count traversals, with packets discarded upon reaching 16 (under RIP) to prevent indefinite looping; this hop-tracking mechanism operates uniformly across all media types.[39][40][1]Comparisons and Evolution
Relation to IP
Internetwork Packet Exchange (IPX) and the Internet Protocol (IP) share fundamental similarities as connectionless, datagram-based network layer protocols designed for routing packets across internetworks. Both operate without establishing connections prior to data transmission, relying instead on best-effort delivery where higher-layer protocols handle reliability if needed. In terms of addressing, IPX's 32-bit network number functions analogously to the network or subnet portion of an IP address, identifying the logical network segment, while the 48-bit node address corresponds to the host identifier, often derived from the device's MAC address, similar to how IP uses host portions within subnets.[1][8] Despite these parallels, IPX and IP diverge significantly in design and capabilities. IPX employs a fixed 30-byte header, which includes fields for checksum, packet length, transport control, packet type, and source/destination addresses, contrasting with IP's variable header length of 20 to 60 bytes that accommodates options like timestamps or security parameters. Unlike IP, which supports fragmentation and reassembly at the network layer to handle varying path MTUs, IPX lacks built-in fragmentation; any necessary segmentation is managed by the transport layer protocol SPX, potentially simplifying implementation but limiting adaptability to diverse network conditions. Routing in IPX primarily relies on the hop-limited Routing Information Protocol (RIP), which broadcasts updates every 60 seconds and caps networks at 15 hops, whereas IP supports a broader array of protocols such as OSPF for link-state routing or BGP for inter-domain scalability, enabling more efficient convergence in large topologies. Additionally, IPX addressing is non-hierarchical and flat, without support for subnet masks, Network Address Translation (NAT), or Classless Inter-Domain Routing (CIDR), unlike the hierarchical structure of IPv4 (32-bit) and IPv6 (128-bit) addresses that facilitates aggregation and address conservation.[1][8][41] Migration from IPX to IP was facilitated by Novell tools integrated into NetWare versions 4 and later, including IPX-to-IP gateways that allowed IPX-only clients to access IP-based services like the internet without immediate protocol replacement. In NetWare 5 and beyond, IP Compatibility Mode enabled seamless encapsulation of IPX traffic within IP packets, supporting legacy applications via on-demand translation of protocols like SAP, RIP, and NCP, while permitting dual-stack operation over PPP links through the IPX Control Protocol (IPXCP). These mechanisms ensured backward compatibility during transitions, such as synchronizing directory services across mixed environments. IPX's broadcast-heavy operations, including frequent RIP and SAP advertisements, made it well-suited for small local area networks (LANs) but less scalable for wide area networks (WANs) or the global internet, where IP's hierarchical routing and reduced broadcast overhead better accommodate expansive, interconnected topologies.[42][43][44][8]Decline and Legacy Usage
The decline of Internetwork Packet Exchange (IPX) began in the mid-1990s amid the rapid standardization of TCP/IP during the internet boom, as IPX's proprietary nature limited its interoperability with emerging wide-area networks.[45] Novell's NetWare 5 release in 1998 introduced IP Compatibility Mode to facilitate migration from IPX/SPX to TCP/IP, marking a strategic shift as the company recognized TCP/IP's dominance for internet connectivity.[42] This transition accelerated around the late 1990s. Unlike TCP/IP, which evolved with IPv6 for enhanced address space and extensibility, IPX remained constrained by its fixed 32-bit addressing, contributing to its obsolescence in scalable networks. Novell discontinued IPX support in its Open Enterprise Server (OES) platform starting in the mid-2000s, with no plans to port the protocol to Linux-based OES releases, effectively ending native integration in modern Novell products.[46] Micro Focus, which acquired Novell, ended extended support for NetWare v6.5—and thus official IPX support—on December 31, 2016.[47] Similarly, Cisco announced the discontinuation of IPX routing support in future IOS releases due to diminishing demand, with the protocol removed from Cisco IOS XE Release 3S in 2011, following earlier deprecations in IOS 12.x versions around 2008.[48] As of 2025, IPX persists in niche legacy applications through emulation on virtualized NetWare environments for maintaining access to older systems.[49] Hobbyist networks occasionally employ IPX-over-IP tunneling techniques, such as encapsulating IPX packets in UDP for transport across modern TCP/IP infrastructures, as outlined in RFC 1234.[50] There is no ongoing development for IPX, and its unencrypted broadcasts and lack of modern security features—exemplified by vulnerabilities like denial-of-service attacks via malformed IPX pings—render it unsuitable for contemporary networks.[51] Usage has significantly declined, with production environments limited to isolated, air-gapped setups outside retro contexts like emulated Doom multiplayer gaming via DOSBox.[52]References
- https://www.cisco.com/c/en/[us](/page/United_States)/td/docs/ios/novipx/configuration/guide/15-sy/ipx_15_sy_book/novellipx_cfg_expls.html
