如何检测以太网帧中 FCS 的开始

网络工程 以太网 IEEE-802.3x
2022-02-28 21:53:40

我正在阅读有关以太网帧及其各个字段的信息,我注意到数据(有效负载)字段可以是可变的,并且后面是 FCS 字段,用于检测位错误。

如果有效载荷的长度是可变的,并且没有指定有效载荷长度的字段(与 IP 标头不同),那么第 2 层逻辑如何确定数据字段的结束位置和 FCS 字段的开始位置?

2个回答

交换机和网卡实际上并不检测 FCS 并将其与自己的计算进行比较。它们接收一个帧,直到载波停止或检测到空闲符号,具体取决于物理层变体。

在接收时,FCS 在整个帧中实时计算,包括 FCS 字段本身使用了一些巧妙的数学运算,因此当载波结束帧结束时,当前 FCS 计算必须等于0x2144DF1C(或0x38FB2284,取决于所使用的确切方法)的“魔术余数”。任何其他值都意味着 FCS 检查失败并且帧完整性受到损害。

帧的结束通过载波丢失或特定以太网物理层的线路编码方案中的特殊符号或序列来表示,因此帧的长度并不总是需要编码为以太网帧中的值. 但是,由于以太网帧的最小有效负载为 46 字节,因此使用 EtherType 的协议必须包含其自己的长度字段,如果帧的接收者有必要确定该协议的短数据包的长度(如果允许)。

https://en.wikipedia.org/wiki/EtherType