本篇主要是讨论以太网发送时,两帧数据包的发送间隔是多少,为什么?
以太网发送时,两帧之间的最小间隔称为帧间间隙(Interframe Gap, IFG)或包间间隙(Interpacket Gap, IPG),标准规定为 96 比特时间(bit times)。
这个间隔是强制性的硬件死区,在 FPGA 实现以太网 MAC 时,发送状态机必须严格遵守。
为什么必须是 96 比特时间?
这个数值不是随意定的,而是精确平衡了物理极限和协议公平性的结果。
为接收方留出处理时间(最核心原因)
接收端的 MAC 层在收完一帧后,硬件需要进行一连串操作:检查 FCS 校验和、根据目的 MAC 地址做过滤、将数据转移到 DMA 缓冲区、更新内部寄存器、准备好接收下一帧。96 比特时间就是留给这些逻辑电路的“喘气”时间。在 10M 时代,这是早期芯片处理能力的极限;虽然现代芯片早已足够快,但为了兼容性,这一标准被严格继承下来。
在半双工下实现冲突检测与公平性
经典以太网使用 CSMA/CD(载波侦听多路访问/冲突检测)。帧间间隔保证了:即使总线上有很多设备都在等着发,任何一个设备在发现信道由忙变闲后,都必须强制等待一个 IFG。这就防止了某台设备独占信道,给所有站点创造了一个公平抢占的机会。96 比特时间正好大于信号在最大规模网络(2500米、4个中继器)中往返传播的时间,确保一个站点的冲突信号能被其他站点有效检测到。
让物理层时钟恢复保持稳定
接收端的 PHY 芯片是依靠接收到的数据跳变来锁定时钟相位的。如果两帧之间无缝衔接,长时间的固定电平会让时钟恢复电路“跑偏”。96 比特时间的空闲(IDLE 码流)相当于一个缓冲,让模拟电路的锁相环(PLL)在重置到下一帧的起始定界符前,保持一个稳定的同步基准。
本篇内容中有部分资源来源于网络,如有侵权,请联系作者。
262