以太网是基于架构参考模型(OSI 和/或 TCP/IP)设计的。虽然这些模型是抽象的,但当 IEEE 等标准机构正在创建/修改以太网等标准时,它们确实具有很大的意义。
这些模型列出了模型每一层预期的某些特征,称为不变量。不变量有两种风格,硬(绝对提供)和软(通常提供),上层协议可以以绝对(硬)或一般(软)从底层自然期望这些行为的方式编写。
数据链路层硬不变量包括帧的非重复和顺序传送。
是否有任何来源指定以太网帧必须按顺序或无重复到达?此类规范是否还有其他正式来源?
不,以太网标准中没有任何规定帧必须按顺序到达或无重复。然而,以太网标准的编写方式是提供这些特性以满足架构模型的预期行为。
据我所知,以太网不直接保证数据包的交付(也就是丢失和无重复或有序)。我知道某些标准最终会违反这些属性,例如 PRP(并行冗余协议)。
如果你真的看看像 PRP 这样的东西,它仍然保持了上面提到的不变量。虽然它确实复制了帧,但它仅通过两个单独的数据链路层发送一帧,每个层都保持帧的顺序传递。然后,接收端的 PRP 设备也会对在两条链路上接收到的帧进行重复数据删除,然后再向上层传递。
但是,在现代 SDN 网络中,数据包是否有可能采用多条路由?
如果根据普遍接受的架构设计原则正确设计它们,即使 SDN 协议使用多条链路,它也会保持数据链路层的不变量。否则可能会破坏在自己的设计和操作中期望这些特性的上层协议。