什么是 SPX(序列包交换)?
先决条件: Novell NetWare 简介
由 Novell 开发的 NetWare 是一种扩展到网络操作系统的 NOS。 NOS 是一种特殊的操作系统,它帮助网络中的个人计算机(例如:连接在 LAN 中的计算机)共享文件和资源,如打印机。它们使通过网络连接的 PC 在客户端-服务器架构中运行。 IPX/SPX 是 NetWare OS 中使用的协议。
IPX 协议对应于网络层,其之上的 SPX 协议对应于 OSI 模型中的传输层。 IPX/SPX 类似于 TCP/IP,其中 IPX 扮演 IP 角色,SPX 扮演 TCP 角色。
SPX 协议
SPX 协议是由 Novell 为局域网开发的。它扩展到顺序数据包交换,它是面向连接的。它可以借助 IPX 协议实现网络中客户端和服务器之间的信息交换。 IPX/SPX 协议源自施乐网络系统中定义的 SPP(序列包协议)。 SPP 是无连接协议,而 SPX 是面向连接的。
SPX 数据包的结构
SPX 数据包包含一个 42 字节的报头,数据可能在 0 到 534 字节之间变化。最小长度为 42 字节,即没有任何数据。前 30 个字节取自 IPX 标头,其余 12 个字节是属于 SPX 的新的 7 个字段(在上图中称为 1…7)。
从IPX 标头考虑的字段如下:
校验和
需要校验和来维护所交换数据的完整性。源和目标在某些方法中派生校验和。源将其附加到标头并将其发送到目标。另一方面,目的地将自己计算的校验和与数据包头中的校验和进行比较。如果存在不匹配,则称数据已损坏。通常,16 位校验和用于网络协议。 IPX 还在标头中使用2 个字节作为校验和。如果设置了FFFF的十六进制值,则不使用校验和。
长度
这表示交换的数据包的总长度(标头 + 数据)。它消耗2 个字节。
运输控制
这是一个1 字节字段,用于计算数据包通过的路由器数量。从值 0 开始,每个收到数据包的路由器都会在该字段中添加“1”。当数据包经过 15 个路由器时,第 16 个路由器将丢弃该数据包。
数据包类型
这用于了解数据包呈现什么服务。它也只需要1 个字节。根据此字节的值,以下任一项都可以是数据包类型:
- 0 – 未知
- 1 – 路由信息协议
- 2 – 回声包
- 3 – 错误包
- 4 – 数据包交换协议
- 5 – 序列数据包协议
- 17- NetWare 核心协议
源地址
IPX寻址结构中提到了数据包的源地址。它需要12 个字节。
目的地址
必须将数据包传送到的目标应用程序的地址。它应该遵循 IPX 寻址结构。为了向网络中的所有计算机发送数据 FF:FF:FF:FF:FF:应在目标中指定 FF。它需要12 个字节。
IPX 寻址结构
IPX 寻址结构包含三个字段:
- 网络
- 节点
- 插座
网络用于在互联网络通信中指定网络的编号。互联网络通信允许存在于不同电缆连接中的节点之间进行数据交换。如果网络号被提及为 00:00:00:00,则通信发生在同一网络内。指定网络的编号需要32 位。
该节点用于唯一标识该网络中的个人计算机。
套接字用于识别数据包必须传送到的目标端的适当应用程序。
因此, 2(校验和)+ 2(长度)+ 1(传输控制)+ 1(数据包类型)+ 12(源地址)+ 12(目标地址)= 30 字节的 IPX 报头。 IPX 标头以及以下七个字段组成了 SPX 数据包的标头。
七个新领域是:
- 连接控制
- 数据流类型
- 源连接 ID
- 目标连接 ID
- 序列号
- 确认号码
- 分配编号
1.连接控制
它是一个1 字节的字段,用于控制双向数据交换。根据数据包是用于系统还是单个应用程序,将设置四个标志。标志如下:
- END_OF_MESSAGE
- 注意力
- ACKNOWLEDGEMENT_REQUIRED
- 系统包
2.数据流类型
它是一个1 字节字段,表示数据包中的数据类型。十六进制值0xFE 和 0xFF保留用于特定目的。客户端使用值 0xFE 表示这是最后一条消息,并且传递的数据包称为连接结束数据包。如果该值设置为 0xFF,则它是确认连接终止的系统数据包,这称为连接结束确认数据包。
3 & 4. 源连接 ID & 目标连接 ID
这些是指与本地源和远程目标相关联的标识号。每个占用2 个字节,因此两者一起占用4 个字节。
5.序号
这是一个由 SPX 协议管理的计数,用于指示在单个方向上发送的数据包数。这需要2 个字节,它可以达到的最大值是 0xFFFF(65,535)。在最大值之后,它重置为“0”。
6.确认号码
这需要2 个字节并指示预期的序列号。这里的最大值也是 0xFFFF(65,535)。可以使用确认号确定重复的数据包。如果新数据包的序列号 < 确认号,则它是重复数据包,必须丢弃。
7. 分配编号
数据包将被发送,直到本地源的序列号等于远程目标的分配号。要控制数据流并了解正在侦听 SPX 数据包的剩余缓冲区,可以使用(目标分配编号 - 确认编号)公式。它消耗2 个字节。
TCP/IP 和 IPX/SPX 的区别
S. No. | TCP/IP | IPX/SPX |
---|---|---|
1. | This is the basis of the Internet. | Mainly used and optimized for LAN connections and not suitable for the internet. |
2. | It is a connection-less protocol | It is a connection-oriented protocol. |
3. | The addressing logic is a bit complex as it requires both MAC, IP address, and masking techniques for routing the data. | The addressing logic is simpler as only the MAC address is used and is broken down into ethernet card and node addresses. |
4. | The network number has to be derived from the IP address. The subnet mask will be used for derivation. | Network numbers are separate and do not depend on the local address of the nodes. |
5. | Speed is lesser compared to IPX/SPX stack. | Faster stack compared to TCP/IP. |