通过交换机/网桥在以太网连接上是否会发生帧重新排序?

网络工程 转变 以太网
2021-07-12 19:45:33

流量假设:

  • 两个节点之间的以太网连接仅通过交换机/网桥

  • 任一:

    • 无 VLAN (802.1Q) 标头
    • 具有相同 ID 和优先级(相同 PCP、DEI 和 VID)的 VLAN

然后可能会发生帧重新排序(错序),或者假设流的帧以与传输相同的顺序接收是否安全?

问题背景: 我正在实现一个处理 L2 级别以太网帧的硬件模块,我考虑是否可以安全地假设帧在通过交换机/网桥从源到目的地时不会重新排序。假设网络是星形拓扑,因此没有环路,因此基于此我假设下面“K.3 帧错误排序”中的注释不适用,因为不可能通过例如STP/RSTP更改拓扑.

标准信息:来自“802.1D-2004 Media Access Control (MAC) Bridges”:

6.3.3 帧错序

MAC 服务(ISO/IEC 15802-1 的 9.2)允许对目标地址和源地址的给定组合具有给定用户优先级的帧重新排序的速率可以忽略不计。

...

K.3 帧乱序

两个通信终端站之间活动拓扑的变化可能导致帧乱序,因为在重新配置后发送的帧可能会遇到较低的传输延迟,在较少的桥接端口排队或等待的时间较短。

2个回答

帧的顺序传送被认为是硬不变量。这意味着在任何正常工作的网络中,帧应始终按接收顺序传送。

当您超过 L2 时,情况并非总是如此,因为数据包可能会被无序接收。但是,如果您在 L3 上对 L2 流量进行隧道传输,那么理想情况下,该过程应该考虑确保即使数据包被无序接收也能执行帧的顺序传送。在实践中,情况往往并非如此。

听起来您正试图对通过网络为数据包编写的代码设置一些界限。

您在原始问题中提到的交换 LAN 上不应进行重新排序。如果您传输任何类型的 MPLS 伪线,可能会发生重新排序,因为 MPLS 是一种基本路由技术;路由引入了传统桥接 LAN 中不存在的新形式的多路径。

综上所述,丢包对“无重新排序”的假设同样具有破坏性。计划通过以太网丢失数据包。如果您正在构建自己的数据包传输层,绕过构建自己的层的疯狂最简单的方法是使用经过 20 多年测试的一种:IP 上的 TCP。