序列分组交换协议(SPX)是 Novell 早期传输层协议,为 Novell NetWare 网络提供分组发送服务。SPX 基于 Xerox 序列分组协议(SPP:Sequenced Packet Protocol)。SPX 运行在 IPX 上,主要为 Novell NetWare(NetWare 5.0 之前)系统实现客户机/服务器上应用程序的通信服务,例如BTRIEVE(ISAM 管理器)。SPX 与 TCP 实现同等功能。最新版本的 NetWar 运行在 TCP/IP 上。
IPX 从网络中接收到数据包后,将它们传送给 SPX 进行处理。SPX 确保接收完整的,同发送时一样排序的数据包,以及消除重复的数据包。SPX 预备好数据包信息的分组序列,并负责控制接收的数据包的重组过程,以确认所有数据包都已接收到,如果没有则请求重新发送。SPX 直接与管理网络数据包转发过程的互联网分组交换协议(IPX) 共同工作。SPX 不支持文件服务器连接服务,文件服务器的连接是通过网络核心协议(NCP)实现的。SPX 的扩展协议为 SPX-II (SPX2)。
SPX 不支持组广播,所有数据包只能传送给单个的会话对象。SPX 能够检测到会话对象是否已经消失。
协议结构
SPX 数据包结构如以下图表所示:
| 8 | 16 bit | |
| Connection control flag | Datastream type | |
| Source connection ID | ||
| Destination connection ID | ||
| Sequence number | ||
| Acknowledge number | ||
| Allocation number | ||
| Data (0-534 bytes) | ||
- Connection control flag ― 4种标签用于控制 SPX 连接中的双向数据流。如果设置这些标签,那么值都为1;如果无需设置这些标签,那么值都为0。
- Bit 4Eom:终端信息。
- Bit 5Att:注意位。SPX 中不使用。
- Bit 6Ack:必要的确认。
- Bit 7Sys:传输控制。
- Datastream type ― 指定数据包中的数据类型。
- Source connection ID ― 由 SPX 分配的16位编号用以识别连接。
- Destination connection ID ― 参考数,用以识别传输连接的目标端。
- Sequence number ― 由 SPX 控制的16位编号,表示传输的数据包序号。
- Acknowledge number ― 16位数,识别下一个期望的数据包。
- Allocation number ― 16位数,识别发送的但为确认的数据包。
SPX II 头和前面描述的 SPX 头结构基本相同,不同点如下:
- Connection control flag ― Bit 2 – 协商大小;Bit 3 – SPX II 类型。
- Datastream type ― 252 – 依次释放请求; 253 – 依次释放确认。
最终还有一个2字节的扩展确认字节。
相关协议:NetWare、SPX、RIP、NLSP、IPX、NCP
组织来源:SPX 是 Novell 私有协议。
相关链接:
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/netwarep.htm: NetWare Protocols
http://docsrv.sco.com/SDK_netware/CTOC-Enhanced_Sequenced_Packet_Exchange_SPXII_Protocol.html: Enhanced Sequenced Packet Exchange protocol (SPXII)


