Provided by Colasoft Co., Ltd.

IPX ( Internet Packet Exchange )

Home > Protocols > IPX Update: 2005-11-07 17:10:05    I have words to say about this protocol
On this page
SUMMARY
Protocol : Internet Packet Exchange
Protocol suite : Novell NetWare
Layer : Network Layer
Related protocols : IP,
IPv6,
NetWare,
SPX,
RIP,
NLSP
DESCRIPTION
Developed by Novell Inc., in the early 1980's, IPX is a networking protocol used by the Novell NetWare operating system as a means to request services such as file servers, printers, software applications and other resources. IPX is a common protocol that many departments use to provide computing resources for computer users.

IPX performs the Open Systems Interconnection (OSI) network layer tasks of addressing, routing, and switching packets. IPX makes a best effort attempt to deliver packets to their destination; there is no guarantee or verification of successful delivery. Packet acknowledgment or connection control must be provided by protocols above IPX.

Guaranteed services, such as SPXII, can be built over IPX. However, IPX is used whenever guaranteed service is not required (for example, in service advertising) and for applications where an occasional lost packet is not critical. The low overhead of IPX means speed and performance.

IPX provides full internetwork addressing within a large address space. It defines network and socket numbers, while using the node addressing scheme of the network interface hardware for clients. This saves memory, bandwidth, and complexity.


IPX Addressing
IPX addressing defines the internetwork, a collection of LANs connected by routers, bridges, and so forth.

IPX packet headers require both source and destination addresses. These designate the sender and the receiver of the packet respectively.

IPX Internetwork Address Components
If this table is unreadable, a preformatted table follows:

Address

Byte Length

Description s

Network

4 bytes

Identifies a specific network or LAN on an IPX internetwork

Node

6 bytes

Identifies individual nodes, or computers, on a network or LAN.

Socket

2 bytes

Identifies a process or function operating within a node. A socket is identified by a unique number

  • Network address

  • The network number (not the node address) is used by routers to forward packets to their destination. Each LAN is a configured network in IPX and is assigned a unique network number or address.

    Each LAN (logical network) must be associated with a physical network and is limited to a single network frame type. When multiple frame types are used on the same networking segment, each frame type is considered a LAN and must have a unique network number. This means that all network devices which are cabled to a network segment and which use a common frame type must also use the same network address.

    Where multiple LANs are configured on the same platform, an internal network number (logical address) serves as a common point of connection.

  • Node address

  • The node address identifies a station, node, or individual computer on a network. For clients, the node is defined by networking hardware and is usually factory set. For NetWare servers 3.x and above, NetWare configures a logical node address.

    The lower-level Media Access Control (MAC) protocols (such as the token ring, Ethernet, and ARCnet standards) define node addressing for each LAN, which is implemented within the hardware or firmware of each network interface board and is usually factory set.

    In addition to the server's node address for the attached LAN, the server's logical node address is associated with the internal network address.

  • Socket address

  • The socket address identifies the process in the destination node and is the ultimate destination for a packet. Socket numbers provide a sort of mail slot that distinguishes each process for IPX.

    Sockets are the mechanism that allows multiple applications on the same station to send and receive data, without interfering with each other. Sockets have the same function as ports in other network protocols.

    A socket number is assigned to a specific process. A process can use a well-known (static) socket number or can obtain a dynamic (ephemeral) number when the process requests a socket from IPX. Because socket numbers are internal to each node, each node can have its own domain of sockets independent of other nodes.



Header Format

8

16

32bits

Checksum

Packet length

Transport control

Type

Destination network

Destination network

Destination node

Destination node

Destination socket

Source network

Source network

Source node

Source node

Source socket

Data


  • Checksum

  • 16 bits. Always set to 0xFFFF. The Checksum field is normally set to 0xFFFF, which indicates that no checksum is performed. This field, however, is configurable.

    The value IPX_CHKSUM_TRIGGER (defined in the ipx_app.h file) directs IPX to generate a checksum of the IPX header (minus the Transport Control field) and the data. Any value which is not IPX_CHKSUM_TRIGGER is treated as 0xFFFF.

  • Packet Length

  • 16 bits. The total length of the packet header and the data.

  • Transport control

  • 8 bits. Used by NetWare routers. Set to zero by IPX before packet transmission. The Transport Control field is used to monitor the number of routers that a packet has crossed. IPX sets this field to zero before sending the packet. Each router increments the field before sending the packet on. If the packet passes through 16 routers, it is considered undeliverable and the sixteenth router discards it.

  • Type

  • 8 bits. Specifies the encapsulated protocol.

    0x00

    Hello or SAP.

    0x01

    RIP, Routing Information Protocol.

    0x02

    Echo Packet.

    0x03

    Error Packet.

    0x04

    NetWare 386 or SAP.

    0x05

    SPX, Sequenced Packet Protocol.

    0x10

    -

    0x1F

    Experimental Protocols.

    0x11

    NCP, NetWare Core Protocol

    16-31

    Experimental protocols.

    17

    NetWare 286.



  • Destination network

  • 32 bits. A subnet identifier of the receiver. This field must be set with the network number to which the destination server is connected. The system administrator assigns a unique network number to each network within an internetwork.

    Many NetWare servers are configured with a logical network number, called the internal network. This internal network number provides the server with a single network address even when it is connected to several physical networks.

    If zero (0) is used for the network address, the packet is sent to the network to which the source host is connected.

    If the source host has an internal network (just as a server), any packets sent with a network address of zero (0) are sent only to the internal network, whereas in the case of a host configured with no internal network (just as a client would be), a packet with a zero (0) network address is sent to the physical network.

    Packets with a network address of zero (0) are typically used to query SAP for the address and name of the nearest server.

  • Destination node

  • 48 bits. The physical address of the receiver. The destination node address identifies the client on the network. It is typically determined by a factory set address on the network board.

    In the case of a server, a configured internal network typically has a node address of 0x00 00 00 00 00 01. Addresses shorter than 6 bytes are left justified and zero filled. A node address of 0xFF FF FF FF FF FF designates a broadcast to all hosts on the network identified by the destination network address.

  • Destination socket

  • 16 bits. The socket number of the receiver. The destination socket number directs the packet to a specific process on the destination node. A socket number is assigned to a specific process. On UNIX; a process can use multiple sockets, but a socket cannot be shared among multiple processes.

    Services written to run over IPX generally have static or well-known socket numbers associated with them. By having static socket numbers, IPX users ensure that their server and client application types match.

    The following socket numbers are reserved by the IPX protocol

    0x02

    Echo protocol socket

    0x03

    Error handler packet In addition, Novell has defined and reserved sockets for specific purposes. Some are listed below.

    0x247

    Novell VirtualTerminal (NVT) server

    0x0451

    NetWare Core Protocol

    0x0452

    NetWare Service Advertising Protocol (SAP)

    0x0453

    NetWare Routing Protocol (RIP)

    0x0456

    NetWare Diagnostics Protocol

    0x8063

    NVT2 Server

    0x811E

    Print Server


  • Source network

  • 32 bits. Subnet identifier of the sender. The source network address is filled in by IPX when the packet is sent by the source machine.

  • Source node

  • 48 bits. The physical address of the sender. Identifies the LAN hardware address. If the node number is FFFF FFFF FFFF, it means broadcast, and if the node number is 0000 0000 0001, it means its the server (on NetWare 3.x and 4.x only).

  • Source socket

  • 16 bits. The socket number of the sender. The source socket address is filled in by IPX when the packet is sent by the source, except when a process has multiple sockets assigned. In this case, the correct socket number must be filled in by the application.

  • Socket number

  • A 16-bit number that identifies the higher-layer packet:

    Socket

    Description

    0x01

    RIP, Routing Information Packet.

    0x02

    Echo Protocol Packet.

    0x03

    Error Handling Packet.

    0x20-0x3F

    Experimental.

    0x1-0xBB8

    Xerox registered.

    0xBB9

    Dynamically Assigned.

    0x451

    NCP, NetWare Core Protocol

    0x452

    SAP, Service Advertising Protocol.

    0x453

    RIP, Routing Information Protocol

    0x455

    NetBIOS

    0x456

    Diagnostics

    0x457

    Serialization packet (SER)

    0x8060

    IPX.

    0x9091

    TCP over IPXF.

    0x9092

    UDP over IPXF.

    0x9093

    IPXF, IPX Fragmentation Protocol.

    4000-6000H

    Ephemeral sockets, used for file server and network communication.



  • Data

  • Variable length.


IPX recognizes the following Ethernet frame types:
  • 802.3 Raw

  • The IPX header follows immediately after the Length field in the MAC header.

  • IEEE 802.2

  • The IPX header follows immediately after the IEEE 802.2 header (DSAP, SSAP, and Control).

  • Ethernet II

  • The Type field in the MAC header has a value of 8137, and the IPX header follows immediately after the Type field.

  • Ethernet SNAP

  • The IPX header follows immediately after the 5-byte protocol identifier field.



Additionally, IPX recognizes the following token ring frame types:
  • Token ring

  • Token ring SNAP

The maximum length of the data section of an IPX packet (MTU-30) varies depending on the lower layer MAC protocol (Ethernet or token ring) that is being used.

For example, Ethernet supports 1500-byte packets, where 30 bytes is the IPX header and 1470 bytes is the actual data. In some cases, the maximum data size is limited by routers connecting LANs. Some older Ethernet routers limit the maximum IPX packet size to 576 bytes.

The content and structure of the data portion are entirely the responsibility of the application using IPX and can take any format.

Top of Page

EXAMPLES

Top of Page


PROTOCOL RELATIONS
Parent layer
Child layer
Ethernet
Ethernet 802.3
Ethernet 802.2
IPX
RIPX
SPX
NCP
NetBIOS MailSlot
NetBIOS
SAP
NLSP
DIAG
SER
Top of Page

GLOSSARY
ARCnet
ARCnet (Attached Resource Computer network) is a widely-installed local area network (LAN) technology that uses a token-bus scheme for managing line sharing among the workstations and other devices connected on the LAN. ARCnet was introduced by Datapoint Corporation in 1977. It uses a token-ring architecture, supports data rates of 2.5 Mbps, and connects up to 255 computers. A special advantage of ARCnet is that it permits various types of transmission media -- twisted-pair wire, coaxial cable, and fiber optic cable -- to be mixed on the same network.

A new specification, called ARCnet Plus, will support data rates of 20 Mbps.

Ethernet
A local-area network (LAN) architecture developed by Xerox Corporation in cooperation with DEC and Intel in 1976. Ethernet uses a bus or star topology and supports data transfer rates of 10 Mbps. The Ethernet specification served as the basis for the IEEE 802.3 standard, which specifies the physical and lower software layers. Ethernet uses the CSMA/CD access method to handle simultaneous demands. It is one of the most widely implemented LAN standards.

A newer version of Ethernet, called 100Base-T (or Fast Ethernet), supports data transfer rates of 100 Mbps. And the newest version, Gigabit Ethernet supports data rates of 1 gigabit (1,000 megabits) per second.

MAC
MAC (Medium Access Control) is a hardware address that uniquely identifies each node of a network. In IEEE 802 networks, the Data Link Control (DLC) layer of the OSI Reference Model is divided into two sublayers: the Logical Link Control (LLC) layer and the Media Access Control (MAC) layer. The MAC layer interfaces directly with the network medium. Consequently, each different type of network medium requires a different MAC layer.

On networks that do not conform to the IEEE 802 standards but do conform to the OSI Reference Model, the node address is called the Data Link Control (DLC) address.

OSI
ISO (Open Systems Interconnection) is a worldwide communications that defines a networking framework for implementing protocols in seven layers. Control is passed from one layer to the next, starting at the application layer in one station, proceeding to the bottom layer, over the channel to the next station and back up the hierarchy.

At one time, most vendors agreed to support OSI in one form or another, but OSI was too loosely defined and proprietary standards were too entrenched. Except for the OSI-compliant X.400 and X.500 e-mail and directory standards, which are widely used, what was once thought to become the universal communications standard now serves as the teaching model for all other protocols.

Most of the functionality in the OSI model exists in all communications systems, although two or three OSI layers may be incorporated into one.

OSI is also referred to as the OSI Reference Model or just the OSI Model.

SPXII
SPXII(Sequenced Packet Exchange) is an improvement on SPX that allows better performance on larger bandwidth networks.

Top of Page

REFERENCES
RFCs:
[RFC 1132] A Standard for the Transmission of 802.2 Packets over IPX Networks.
[RFC 1234] Tunneling IPX Traffic through IP Networks.
[RFC 1420] SNMP over IPX.
                Obsoletes: RFC 1298.
[RFC 1552] The PPP Internetwork Packet Exchange Control Protocol (IPXCP).
[RFC 1553] Compressing IPX Headers Over WAN Media (CIPX).
[RFC 1634] Novell IPX Over Various WAN Media (IPXWAN).
                Obsoletes: RFC 1362, RFC 1551.
[RFC 1791] TCP And UDP Over IPX Networks With Fixed Path MTU.
[RFC 1792] TCP/IPX Connection Mib Specification.
Obsolete RFCs:
[RFC 1298] SNMP over IPX.
                Obsoleted by: RFC 1420.
[RFC 1362] Novell IPX Over Various WAN Media (IPXWAN).
                Obsoleted by: RFC 1551.
[RFC 1551] Novell IPX Over Various WAN Media (IPXWAN).
                Obsoleted by: RFC 1634.
                Obsoletes: RFC 1362.
Publications:
[Sybex Inc. and Novell Press, 1993.] Chappell, Laura and Dan Hakes. Novell's Guide to NetWare LAN Analysis (First Edition).
[Sybex Inc. and Novell Press, 1994.] Chappell, Laura and Dan Hakes. Novell's Guide to NetWare LAN Analysis (Second Edition).
[Annabooks, Inc., 1996.] Conner, Steve and Diane Conner. Programmer's Guide to the NetWare Core Protocol.
                


Top of Page

OTHER PROTOCOLS OF TCP/IP SUITE
AARP   RRP   RTP Video   RTP Audio   RTP   COPS   Gopher   HSRP   ICP   MPLS   IEEE 802.2   CIP   FTP - Data   FTP - Ctrl   IMAPS   IP Fragment   LDAPS   PUP   MSSQL   RSH   SQL   POP3s   RTELNET   RSVP   STP   VLAN   MSN   H.323   MSRDP   HTTPS   WINS   LPD   GTP   ICMPv6   POP   TELNET   H.225   VRRP   PIM   RARP   SAP   OSPF   RLOGIN   SCTP   SIP   RTCP   PPPoE   Mobile IP   IMAP3   WhoIs   SLP   NCP   PPTP   MGCP   LDAP   L2TP   Kerberos   IPv6   GRE   Ethernet SNAP   AFP   CIFS   IEEE 802.3   Finger   NBDGM   NetBEUI   NBSSN   ESP   EIGRP   EGP   DHCP   CGMP   CDP   BOOTP   AH   NBNS   EthernetII   ICQ   PPP   ARP   RIP   IPX   IGRP   IGMP   SSH   RPC   NetBIOS   TFTP   SNMP   SNA   SMB   RADIUS   NTP   NNTP   UDP   TCP   BGP   DNS   SOCKS   IMAP   RTSP   NFS   ICMP   IP   FTP   Telnet   POP3   SMTP   HTTP  
Search RFCs:

Advanced Search
Search Glossary:
Exact search
Fuzzy search


All Protocols
Submit a Request

Recommend an Article

 Layer 7 Application Layer
  AFP
  BOOTP
  CIFS
  CIP
  COPS
  DHCP
  DNS
  Finger
  FTP
  FTP - Ctrl
  FTP - Data
  Gopher
  HSRP
  HTTP
  HTTPS
  ICP
  ICQ
  IMAP
  IMAP3
  IMAPS
  Kerberos
  LPD
  MGCP
  MSN
  MSRDP
  MSSQL
  NCP
  NFS
  NNTP
  NTP
  POP
  POP3
  POP3s
  RADIUS
  RLOGIN
  RRP
  RSH
  RTCP
  RTELNET
  RTP
  RTP Audio
  RTP Video
  RTSP
  SAP
  SIP
  SLP
  SMB
  SMTP
  SNA
  SNMP
  SOCKS
  SSH
  Telnet
  TELNET
  TFTP
  WhoIs
  WINS
 Layer 6 Presentation Layer
  NBNS
  NBSSN
  NCP
  NetBIOS
 Layer 5 Session Layer
  LDAP
  LDAPS
  NCP
  NetBEUI
  RPC
 Layer 4 Transport Layer
  H.225
  H.323
  NBDGM
  NetBEUI
  PUP
  SCTP
  TCP
  UDP
 Layer 3 Network Layer
  AARP
  AH
  BGP
  EGP
  EIGRP
  ESP
  GRE
  GTP
  ICMP
  ICMPv6
  IGMP
  IGRP
  IP
  IP Fragment
  IPv6
  IPX
  Mobile IP
  MPLS
  OSPF
  PIM
  PPPoE
  RIP
  RSVP
  STP
  VRRP
 Layer 2 Data Link Layer
  ARP
  CDP
  CGMP
  Ethernet SNAP
  EthernetII
  IEEE 802.2
  IEEE 802.3
  L2TP
  PPP
  PPTP
  RARP
  SQL
  VLAN
 Layer 1 Physical Layer
© 2006 - 2007 Colasoft Co., Ltd. All rights reserved.