Sequenced Packet Exchange SPX
Sequenced Packet Exchange (SPX) is a legacy Transport Layer (Layer 4) protocol developed by Novell for its NetWare network operating system. It was designed to provide reliable, connection-oriented communication on top of the connectionless Internetwork Packet Exchange (IPX) protocol, functioning similarly to how TCP operates over IP in the TCP/IP suite.
You can also read What Are The Different Types Of Network Operating System
Core Functions and Mechanisms
SPX serves as a “registered mail” service to guarantee data integrity, whereas IPX manages the routing of individual packets without ensuring their delivery. Its principal duties consist of:
- Reliable Delivery: SPX employs Positive Acknowledgments (ACKs) for dependable delivery. A sender automatically retransmits data if it does not get an acknowledgment for a packet within a predetermined amount of time.
- Sequencing: Sequencing is the process of breaking up large data streams into discrete, numbered packets. Even if packets arrive out of sequence, the receiver uses these sequence numbers to put the data back together in the right order.
- Connection Management: SPX uses a procedure known as handshaking to create a virtual circuit or logical connection between two nodes prior to data flow starting. After the transmission is finished, it also controls the connection’s official termination.
- Flow Control: To prevent a quick sender from overwhelming a slow receiver, SPX controls the transmission speed.
You can also read Importance Of Computer Network Security Protect Your Data
SPX Packet Structure
A 42-byte header precedes 0–534 bytes of data in an SPX packet. This header consists of 12 SPX-specific bytes plus the 30-byte IPX header.
The 12-Byte SPX Specific Header Fields:
- Connection Control (1 byte): End-of-message, Attention, Acknowledgment Required, and System Packet are the four flags used by Connection Control (1 byte) to control the connection’s status.
- Datastream Type (1 byte): Used to terminate connections, this field indicates the type of data being transferred (e.g., 0xFE for End-of-Connection).
- Source & Destination Connection IDs (2 bytes each): Two bytes apiece, the Source & Destination Connection IDs are distinct identifiers that are used to monitor the particular logical connection on both the sender and recipient sides.
- Sequence Number (2 bytes): Indicates the source’s packet order.
- Acknowledge Number (2 bytes): The acknowledge number, which is two bytes long, tells the sender what sequence number the recipient anticipates next.
- Allocation Number (2 bytes): This number is used to govern flow and shows how many receive buffers are still available to the receiver.
You can also read How Data Flows Through The OSI Model And It’s Importance
Evolution: SPX II
Novell released NetWare 4.0 along with SPX II, which included a number of contemporary performance-enhancing features:
- Sliding Windows: Sliding windows boosted speed over greater distances by allowing numerous packets to be transmitted before requiring an acknowledgment.
- Negative Acknowledgments (NAK): Instead of waiting for a timeout, the receiver could now openly inform the sender if a particular packet was missing thanks to Negative Acknowledgments (NAK).
- Larger Packet Sizes: The 576-byte limit was lifted, enabling the protocol to utilize larger Ethernet frames.
You can also read
Historical Context and Obsolescence
The Sequenced Packet Protocol (SPP) of the Xerox Network Systems (XNS) suite served as the inspiration for SPX. It was regarded as “chatty” because of its frequent status updates and acknowledgments, even though it was much more effective and quicker than TCP/IP on early Local Area Networks (LANs). In contrast to TCP’s more sophisticated congestion algorithms, this caused it to function badly on long-distance, slow Wide Area Network (WAN) networks.
Because of this, SPX is now mostly out of use and has been supplanted in contemporary networking by the TCP/IP suite.
You can also read How to Implementing a Reliable Transport Protocol RTP
