半双工模式:高速网络下的超级加速模式,载波延伸和分组突发!🚀
1. 使用场景:什么情况下要使用载波延伸?
当千兆以太网(1000Mb/s Ethernet)工作在半双工(Half-duplex)方式下,并且需要使用CSMA/CD协议来协调通信时。
场景解读:
-
为什么特指千兆以太网? 因为在10M和100M以太网中,可以通过缩短物理网段长度来满足CSMA/CD的冲突检测要求,而不需要改变帧的发送方式。
-
为什么是半双工? 因为全双工模式下,收发信道是独立的,设备可以同时收发数据,不存在冲突的可能。因此,全双工模式下会完全禁用CSMA/CD协议,也就不需要载波延伸和分组突发了(如图右下角的提示框所示)。
-
实际应用:这种场景主要出现在早期为了兼容旧的集线器(Hub)设备而组建的千兆网络中。在现代网络架构中,全部使用交换机(Switch)进行全双工通信,所以这个场景在实践中已极为罕见,但作为理解CSMA/CD协议局限性的理论知识,它在考试中非常重要。
2. 使用原因:为什么要使用载波延伸?
-
高速率:速率已高达1000Mb/s。
-
实用网络长度:希望最大网段长度仍保持在实用的100米。
-
兼容性:希望最小帧长仍保持为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字节)为例:
-
站点A有一个64字节的帧要发送。
-
它检测到信道空闲,开始发送。首先发送8字节的前导码和帧开始定界符。
-
接着发送64字节的MAC帧(包括目的地址、源地址、类型、数据、FCS)。
-
在FCS发送完毕后,由于64字节 < 512字节,载波延伸机制启动。
-
站点A并不停止发送,而是继续发送
512 - 64 = 448
字节长度的、无实际意义的特殊扩展符号。 -
发送完这448字节的扩展符号后,本次发送才算结束。
效果:从物理信道的角度看,这次发送行为总共占用了信道512字节的传输时间。这就满足了新的、被扩大了的争用期要求。接收方在正确接收到64字节的MAC帧和FCS后,会自动识别并丢弃后面的扩展符号。
如图中第一个帧结构图所示:
[前导码 | ... | 数据 | FCS] + [载波延伸 (448字节)]
----最短帧长64字节----
-----------总占用长度512字节------------
4. 优化:分组突发 (Packet Bursting)
优化的起因(问题):
如图中解释,载波延伸虽然解决了问题,但带来了严重的效率问题。如果原本发送的是大量的64字节长的短帧,则每一个短帧都会被填充448字节的特殊字符,这样会造成很大的开销。 信道利用率会暴跌至12.5% (64/512)。
优化的方案(分组突发):
为了缓解这种低效率,千兆以太网引入了分组突发功能。
核心规则:当有很多短帧要连续发送时,只将第一个短帧用载波延伸的方法进行填充,而其后面的一系列短帧不用填充就可一个接一个地发送。
工作流程(如图中最下方的示意图):
-
第一个帧:站点A发送第一个64字节的短帧,并使用载波延伸,将其在信道上的占用长度“填充”到512字节。这次发送成功地为站点A抢占了信道。
-
后续帧:只要A还有数据要发(且未达到突发上限,如图中提到的1500字节),它就可以在仅隔一个最小帧间间隙后,立即开始发送第二个64字节的短帧。
-
这个第二个帧不再需要载波延伸,它在信道上只占用它本身的64字节长度。
-
如果还有第三个、第四个帧,同样如此,一个接一个地发送。
-
这就形成了一个由多个帧组成的“突发”,直到达到最大突发长度或发送完毕。
优化的效果:
通过这种方式,一次载波延伸(448字节)的巨大开销被分摊到了后续多个帧上。例如,如果一个突发发送了10个64字节的帧,总数据量为640字节,而总开销只有第一个帧的448字节,整体效率得到了显著提升。