半双工模式:高速网络下的超级加速模式,载波延伸和分组突发!🚀

Pasted image 20250815165228.png

1. 使用场景:什么情况下要使用载波延伸?

当千兆以太网(1000Mb/s Ethernet)工作在半双工(Half-duplex)方式下,并且需要使用CSMA/CD协议来协调通信时。

场景解读:


2. 使用原因:为什么要使用载波延伸?

  1. 高速率:速率已高达1000Mb/s。

  2. 实用网络长度:希望最大网段长度仍保持在实用的100米。

  3. 兼容性:希望最小帧长仍保持为64字节,以兼容10BASE-T和100BASE-T。

根本矛盾:

在1000Mb/s的高速下,发送一个64字节的帧所需时间极短(仅0.512μs)。如果网段长度还是100米,那么当帧的发送方在0.512μs时发送完毕后,冲突信号可能还在从远端回来的路上。这将导致冲突无法被检测,CSMA/CD协议失效。

解决方案(即使用载波延伸的原因):

为了同时满足上述三个条件,唯一的办法就是人为地延长短帧的“发送时间”。图中指出,载波延伸通过**“将争用期增大为512字节的发送时间”**来解决这个问题。

简单来说,原因就是:在不改变最小帧长和不牺牲网络物理长度的前提下,为了让高速运行的CSMA/CD协议能够继续生效,必须使用载波延伸来人为地延长最短发送时间,以保证冲突可以被可靠地检测。


3. 实现细节:载波延伸具体是如何工作的?

核心规则只要发送的MAC帧的长度不足512字节时,就在MAC帧尾部填充一些特殊字符,使MAC帧的长度增大到512字节。

以一个最短帧(64字节)为例:

  1. 站点A有一个64字节的帧要发送。

  2. 它检测到信道空闲,开始发送。首先发送8字节的前导码和帧开始定界符。

  3. 接着发送64字节的MAC帧(包括目的地址、源地址、类型、数据、FCS)。

  4. 在FCS发送完毕后,由于64字节 < 512字节,载波延伸机制启动。

  5. 站点A并不停止发送,而是继续发送512 - 64 = 448字节长度的、无实际意义的特殊扩展符号

  6. 发送完这448字节的扩展符号后,本次发送才算结束。

效果:从物理信道的角度看,这次发送行为总共占用了信道512字节的传输时间。这就满足了新的、被扩大了的争用期要求。接收方在正确接收到64字节的MAC帧和FCS后,会自动识别并丢弃后面的扩展符号。

如图中第一个帧结构图所示:

[前导码 | ... | 数据 | FCS] + [载波延伸 (448字节)]

----最短帧长64字节----

-----------总占用长度512字节------------


4. 优化:分组突发 (Packet Bursting)

优化的起因(问题):

如图中解释,载波延伸虽然解决了问题,但带来了严重的效率问题。如果原本发送的是大量的64字节长的短帧,则每一个短帧都会被填充448字节的特殊字符,这样会造成很大的开销。 信道利用率会暴跌至12.5% (64/512)。

优化的方案(分组突发):

为了缓解这种低效率,千兆以太网引入了分组突发功能。

核心规则当有很多短帧要连续发送时,只将第一个短帧用载波延伸的方法进行填充,而其后面的一系列短帧不用填充就可一个接一个地发送。

工作流程(如图中最下方的示意图):

  1. 第一个帧:站点A发送第一个64字节的短帧,并使用载波延伸,将其在信道上的占用长度“填充”到512字节。这次发送成功地为站点A抢占了信道。

  2. 后续帧:只要A还有数据要发(且未达到突发上限,如图中提到的1500字节),它就可以在仅隔一个最小帧间间隙后,立即开始发送第二个64字节的短帧。

  3. 这个第二个帧不再需要载波延伸,它在信道上只占用它本身的64字节长度。

  4. 如果还有第三个、第四个帧,同样如此,一个接一个地发送。

  5. 这就形成了一个由多个帧组成的“突发”,直到达到最大突发长度或发送完毕。

优化的效果:

通过这种方式,一次载波延伸(448字节)的巨大开销被分摊到了后续多个帧上。例如,如果一个突发发送了10个64字节的帧,总数据量为640字节,而总开销只有第一个帧的448字节,整体效率得到了显著提升。