Internetwork Packet Exchange
The IPX/SPXM protocol stack is supported by Novell's NetWare network operating system. Because of Netware's popularity through the late 1980s into the mid-1990s, IPX became a popular internetworking protocol. Novell derived IPX from Xerox Network Systems' IDP.
A big advantage of IPX is an easy configuration of the client computers. However, IPX did not scale enough for large networks such as the internet and 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 will be running TCP/IP as well to allow for Internet connectivity. It has also been possible to run Novell products without IPX for some time, as they have supported both IPX and TCP/IP since NetWare reached version 5 in late 1998.
A big advantage of IPX protocol is its little or none need for configuration. In the time, when protocols for dynamic assigning IP addresses did not exist and the bootp protocol for centralized assigning 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 the network number from the server or router. Network number is derived from MAC address of the server.
The 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 complex networks
IPX packet structure
Each IPX packet begins with a header with the following structure:
|2||Checksum (always 0xFFFF - no checksum)|
|2||Packet Length (including the IPX header)|
|1||Transport Control (hop count)|
The Packet Type values:
|1||RIP (Routing Information Protocol) (RFC 1582, RFC 2091)|
|4||PEP (Packet Exchange Protocol), used for SAP (Service Advertising Protocol)|
|5||SPX (Sequenced Packet Exchange)|
|17||NCP (NetWare Core Protocol)|
An IPX address has the following structure:
- Logical networks are assigned a unique 32-bit address in the range 0x1 to 0xFFFFFFFE (hexadecimal).
- Hosts have a 48-bit node address which by default is set to the network interface card's MAC address. The node address is appended to the network address to create a unique identifier for the host on the network.
- Network number 00:00:00:00 means current network
- Broadcast address is FF:FF:FF:FF
|0x0001-0x0BB8||Registered by Xerox|
|0x0001||Routing Information Packet|
|0x0002||Echo Protocol Packet|
|0x0003||Error Handling Packet|
|0x0451||Netware Core Protocol (NCP - used by Novell Netware servers)|
|0x0452||Service Advertising Protocol (SAP)|
|0x0453||Routing Information Protocol (RIP)|
|0x0457||Serialization Packet (used for NCP as well)|
|0x4000-0x4FFF||Dynamicly Assigned Socket Numbers|
|0x4003||used by Novell Netware Client|
|0x8000-0xFFFF||Staticly Assigned Socket Numbers|
|0x9091||TCP over IPXF|
|0x9092||UDP over IPXF|
|0x9093||IPXF, IPX Fragmentation Protocol|
Similarities with IP
The IPX network address is conceptually identical to the network part of the IP address (the parts with netmask bits set to 1); the node address then has the same meaning as the bits of IP address with netmask bits set to 0. As the node address is usually identical to the MAC address of the network adapter, the Address Resolution Protocol is not needed.
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.
IPX over Ethernet
IPX can be transmitted over Ethernet using one of the following 4 encapsulation types:
- 802.3 (raw) is used in legacy systems and involves IPX data starting immediately after 802.3 frame header. The packet starts with the destination ethernet address (6 bytes), source ethernet address (6 bytes), and frame length (2 bytes) followed by two bytes 0xFF 0xFF then the IPX data. The presence of the two FF bytes can be used to differentiate this type of IPX encapsulation from next two types.
- 802.2 (Novell) comprises 802.3 frame header (destination, source, length) followed by LLC header (3 bytes - 0xE0, 0xE0, 0x03) followed by IPX data. The 0xE0 fields of the LLC header indicate 'Novell' protocol.
- 802.2 (SNAP) comprises 802.3 frame header, LLC header (3 bytes - 0xAA, 0xAA, 0x03), SNAP header (5 bytes - 0x00, 0x00, 0x00, 0x81, 0x37) and IPX data. The 0xAA fields of the LLC header indicate 'SNAP'. The first three bytes of the SNAP header are OUI followed by 2 bytes of IPX EtherType.
- Ethernet II comprise an Ethernet II frame header – Destination, Source, EtherType (0x81, 0x37) followed by IPX data.
- Simson Garfinkel, Gene Spafford. Practical UNIX and Internet Security (2nd ed.). O'Reilly Media. ISBN 1-56592-148-8. "It does not scale well to large networks such as the Internet"
- TechRepublic - Do you still support IPX/SPX on your Windows servers?
- Maintaining IPX Compatibility During a Migration to TCP/IP on a NetWare Network