为什么在以太网框架末端而不是其他地方的框架检查顺序



始终将以太网框架检查序列附加到数据链路层中的帧末端。为什么它附加到框架的末端而不是其他地方?

我考虑过,认为这可能与例如计算CRC-Checksums,如果框架的结构是标头 有效载荷 CRC而不是标题 CRC 有效载荷,则硬件可以更轻松地执行。

crc执行表单(数据 填充)/除数的XOR除法,对于最终框架,填充被余数代替。然后,接收器计算(数据 剩余)/除数,如果结果为0。

,则接受帧

您是正确的:将CRC放置在框架末端,减少了数据包延迟并减少了硬件缓冲要求。在发送侧,硬件可以立即读取和传输字节。当数据通过时,发射机可以即时计算CRC,然后简单地附加框架的尾巴。

考虑CRC出现在以太网标头某个地方的替代方案。硬件必须读取和存储整个帧才能计算CRC。这相当于大量的外观操作,并大大增加了传输延迟和硬件成本。对于接收器而言,情况也变得更加复杂。

实际上,放置与CRC的意义很大有关:多项式划分。如果将CRC剩余的剩余时间移至有效载荷bitstream的前部,则将使某些CRC属性(例如爆发错误检测)无效。

理解这一点的关键是,CRC始终在位,而不是字节或有效载荷块上进行操作。有时,您可以找到CRC实现的故障,其中位传输了Little-Endian,但实际上CRC是计算出的大端(按单个字节内的位订购)。

相关内容

最新更新