CSMA/CD最小帧长等于带宽×往返时延的原因及下限要求问询
CSMA/CD 最小帧长问题解答
CSMA/CD(载波监听多路访问/冲突检测)的核心可靠性基础是:发送节点必须在完整发送一个帧的过程中,检测到本次传输可能发生的所有冲突,如果帧发送完成后才收到冲突信号,节点会误判本次传输成功,不会触发重传机制,导致数据传输错误。
1. 最小帧长公式的推导逻辑
我们可以从最基础的时间约束反向推导出公式:
- 首先明确两个核心参数的物理意义:
- 往返时间(RTT):共享介质网络中,距离最远的两个节点之间信号传播的往返耗时,这是冲突信号从冲突点传回发送端的最长可能时间,也就是最坏情况下的冲突检测最大等待时间
- 带宽:链路每秒可传输的比特数
- 要满足CSMA/CD的可靠性要求,必须满足不等式:单帧的发送时长 ≥ 最坏情况冲突检测最长等待时间(即RTT)
- 单帧发送时长的计算公式为:
单帧发送时长 = 帧长 / 带宽 - 把发送时长代入上面的不等式变形可得:
帧长 / 带宽 ≥ RTT→ 帧长 ≥ 带宽 × RTT,刚好满足阈值的帧长就是最小帧长,因此最小帧长的公式为最小帧长 = 带宽 × 往返时间
2. 最小帧长不能小于带宽与RTT乘积的原因
如果最小帧长小于带宽 × RTT的数值,对应的实际影响就是单帧的发送时长 < RTT,会直接破坏CSMA/CD的可靠性基础:
- 发送节点已经将完整的帧全部发送完毕,甚至已经停止了链路冲突监听,最坏情况下的冲突信号才传回发送节点
- 此时发送节点无法感知到本次传输发生了冲突,会错误判定帧发送成功,不会进行重传,最终导致接收端收到错误的残缺数据,整个共享介质网络的传输可靠性完全失效
- 实际应用中的典型案例就是10M基带以太网,其最远节点RTT约为51.2μs,代入公式得到最小帧长为
10Mbps × 51.2μs = 512bit = 64Byte,这就是以太网要求帧长不能小于64字节的来源。
内容的提问来源于stack exchange,提问作者cs_question_asker
相关产品推荐
相关产品推荐

