The IPX packet is similar to an XNS IDP packet and comprises two parts:
The minimum IPX packet size---excluding the MAC header---is 30 bytes (IPX header only). Historically, the maximum size of routed IPX packets has been 576 bytes (IPX header and data). Until recently, all routed IPX packets were between 30 and 576 bytes. However, the IPX protocol has always allowed packet sizes up to 65,535 bytes.
NOTE: Media constraints typically limit the actual maximum packet size allowed to something less than 65,535 bytes. Ethernet II packets, for example, are limited to a data size of 1,500 bytes, not including the MAC header.
The IPX header is placed after the MAC header and before the data. Figure 2 shows the structure of an IPX packet.
Figure 2
IPX Packet Structure
The following describes the IPX packet fields:
The checksum is used by the NetWare SFTTM IIITM software and NetWare 4 software. Older versions of NetWare did not use the IPX checksum and required that this field be set to 0xFFFF.
The packet length is at least 30 bytes (for the IPX header).
IMPORTANT: On a traditional, RIP-based IPX router, IPX packets whose Transport Control field reaches a value of 16 are discarded. With NLSP, an IPX packet can travel up to 127 hops to reach its destination. You make this possible by setting the Hop Count Limit parameter from the Novell Internet Access Server Configuration utility (NIASCFG). This enables you to limit the number of routers (hops) an IPX packet traverses before it is discarded.
Sending nodes always set the Transport Control field to zero when building an IPX packet. When a router receives a packet that requires further routing, it increments this field by one and forwards the packet.
Novell currently uses the packet types listed in Table 1.
Table 1. Packet Types
When a sending node sets this field to 0x0 (that is, 0x00000000), the destination node is assumed to be on the same network segment as the sending (or source) node. A special case exists when a workstation sends SAP Get Nearest Server and RIP Get Local Target (or Route Request) broadcast requests at initialization time. Because the workstation does not yet know which network it belongs to, it sets both the Source Network and Destination Network fields to 0 for these requests. When a router receives one of these requests, it sends a reply directly to the sending workstation, filling in the Source Network and Destination Network fields with the appropriate network numbers. NOTE: IPX does not have a broadcast network number (such as 0xFFFFFFFF).
In addition to network number 0, the numbers 0xFFFFFFFF and 0xFFFFFFFE are reserved for specific purposes. For this reason, they should not be assigned to any IPX network. For more information about reserved network numbers, refer to Reserved Network Numbers.
Not all LAN topologies use the same size address field. A node on an Ethernet network requires all 6 bytes to define its address; a node on an Ammonite network requires only 1 byte. A node address of 0xFFFFFFFFFFFF (that is, 6 bytes of 0xFF) broadcasts the packet to all nodes on the destination network.
Sockets route packets to different processes within a single node. Novell reserves several sockets for use in the NetWare environment. Refer to Table 2 for a partial list of NetWare socket numbers. NOTE: IPX does not have a broadcast socket number (such as 0xFFFF).
Broadcast addresses are not allowed.
Processes communicating in a peer-to-peer fashion do not need to send and receive on the same socket number. On a network of workstations and servers, the server usually listens on a specific socket for service requests. In such a case, the source socket is not necessarily the same or even significant. All that matters is that the server reply to the source socket. For example, all NetWare file servers have the same socket address, but requests to them can originate from any socket number. Source socket numbers follow the same conventions as those for destination sockets.