Networking Guide
Chapter 4, Administering SCO IPX/SPX

Sequenced Packet Exchange (SPX)

Sequenced Packet Exchange (SPX)

The Sequenced Packet Exchange (SPX) protocol works with the Internetwork Packet Exchange protocol (IPX) to provide reliable delivery. SPX guarantees that packets are received intact, in the order they were sent, and eliminates duplicate packets.

IPX receives packets from the network, and passes on those that SPX should handle.

SPX requests verification from the destination module for each packet sent. By checking a verification value agaianst a value calculated before transmission, SPX ensures that the packet arrives intact. In the case of a missing packet, the transmitting SPX module retransmits, and continues to do so up to a program-specified number of retries.

SPX does not provide group broadcast support; packets can only be sent to a single session partner. SPX has provisions for detecting if its partner has disappeared.

SPX uses IPX and a medium-access protocol for its transport.

SPX packet structure

The SPX packet structure is shown in Figure 4-4. This structure is enveloped within the data area of IPX. 

Figure 4-4 SPX packet structure

An SPX packet contains the following fields:

Connection control
Indicates whether the packet is a system or application packet.

Data stream type
Specifies the type of data found in the packet.

Source connection ID
Identification number assigned to the local transport endpoint.

Destination connection ID
Identification number assigned to the remote transport endpoint.

Sequence number
Number of packets exchanged in one direction on the connection.

Acknowledgement number
Sequence number of the next packet SPX expects to receive.

Allocation number
Used to implement flow control between communicating applications. SPX only sends packets until the local sequence number equals the allocation number on the remote machine.