Sequenced Packet Exchange

Sequenced Packet Exchange (SPX) is a protocol in the IPX/SPX protocol stack that corresponds to a connection-oriented transport layer protocol in the OSI model. Being reliable and connection-oriented, it is analogous to the Transmission Control Protocol (TCP) of TCP/IP, but it is a datagram protocol, rather than a stream protocol.

SPX packet structure

edit

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

Octets Field
1 Connection Control
1 Datastream Type
2 Source Connection Id
2 Destination Connection Id (0xFFFF = unknown)
2 Sequence Number
2 Acknowledgement Number
2 Allocation Number (The number of outstanding receive buffers available)
0–534 data

The Connection Control fields contains 4 single-bit flags:

Weight Meaning
0x10 End-of-message
0x20 Attention
0x40 Acknowledgement Required
0x80 System Packet

The Datastream Type serves to close the SPX connection. For this purpose two values are used:

Value Meaning
0x00–0xFD Available for client use
0xFE End-of-Connection
0xFF End-of-Connection Acknowledgement
edit