Internetwork Packet Exchange

From Wikipedia, the free encyclopedia - View original article

 
  (Redirected from IPX)
Jump to: navigation, search
Not to be confused with IP eXchange.

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

The IPX/SPX protocol suite was very popular through the late 1980s into the mid-1990s because it was used by the Novell NetWare network operating system. Because of Novell Netware popularity the IPX became a prominent internetworking protocol.

A big advantage of IPX was a small memory footprint of the IPX driver, which was vital for MS-DOS and Microsoft Windows up to the version Windows 95 because of limited size of the conventional memory. Another IPX advantage is an easy configuration of the client computers. However, IPX does not scale well for large networks such as the Internet,[1] 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.[2] 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[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 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.

A small IPX network administrator had to care only

IPX packet structure[edit]

Each IPX packet begins with a header with the following structure:

OctetsField
2Checksum (always 0xFFFF - no checksum)
2Packet Length (including the IPX header)
1Transport Control (hop count)
1Packet Type
12Destination address
12Source address

The Packet Type values:

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

IPX addressing[edit]

An IPX address has the following structure:

OctetsField
4Network number
6Node number
2Socket 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. Multiprotocol routers of other vendors 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 to allow communication between nodes using different frame formats in the same cabling system).

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 numberProtocol
0x0001-0x0BB8Registered by Xerox
0x0001Routing Information Packet
0x0002Echo Protocol Packet
0x0003Error Handling Packet
0x0020-0x003FExperimental
0x0BB9-0xFFFFDynamicly Assigned
0x0451Netware Core Protocol (NCP - used by Novell Netware servers)
0x0452Service Advertising Protocol (SAP)
0x0453Routing Information Protocol (RIP)
0x0455NetBIOS
0x0456Diagnostic Packet
0x0457Serialization Packet (used for NCP as well)
0x4000-0x4FFFDynamicly Assigned Socket Numbers
0x4003used by Novell Netware Client
0x8000-0xFFFFStaticly Assigned Socket Numbers
0x8060IPX
0x9091TCP over IPXF
0x9092UDP over IPXF
0x9093IPXF, 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.

Frame Formats[edit]

IPX can be transmitted over Ethernet using one of the following 4 frame formats or encapsulation types:

In non-Ethernet networks only 802.2 and SNAP frame types are available.

References[edit]

  1. ^ 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" 
  2. ^ TechRepublic - Do you still support IPX/SPX on your Windows servers?
  3. ^ Maintaining IPX Compatibility During a Migration to TCP/IP on a NetWare Network

External links[edit]