Skip to content

2010年 408 计算机网络 第 47 题

计算机网络2010年综合题9分

题目

某局域网采用 CSMA/CD 协议实现介质访问控制,数据传输速率为 10 Mbps,主机甲和主机乙之间的距离为 2 km,信号传播速度是 200 000 km/s。请回答下列问题,要求说明理由或写出计算过程。

(1) 若主机甲和主机乙发送数据时发生冲突,则从开始发送数据时刻起,到两台主机均检测到冲突时刻止,最短需经过多长时间?最长需经过多长时间(假设主机甲和主机乙发送数据过程中,其他主机不发送数据)?

(2) 若网络不存在任何冲突与差错,主机甲总是以标准的最长以太网数据帧(1518 字节)向主机乙发送数据,主机乙每成功收到一个数据帧后立即向主机甲发送一个 64 字节的确认帧,主机甲收到确认帧后方可发送下一个数据帧。此时主机甲的有效数据传输速率是多少(不考虑以太网的前导码)?

解析

先把基本参数算出来(这两个数后面反复用到):

  • 单程传播时延
  • 双程(往返)传播时延

(1) 检测到冲突所需时间

CSMA/CD 中"检测到冲突"必须靠听到冲突信号,所以一台主机即使自己已经在发,也要等冲突信号传到自己的收发器才"知道发生了冲突"。最短和最长的差别在于双方什么时刻开始发送。

最短情况(甲乙同时开始发送):

t=0:甲乙同时启动发送,信号同时向对方传播
t=t0:两路信号在中点相遇 → 冲突瞬间产生,冲突信号继续向两端扩散
t=t0:甲乙处的收发器都已检测到自己发出的信号被破坏 → 同时检测到冲突

注意:把"中点相遇"瞬间和"两端检测到"瞬间合在一起看似矛盾,其实合理——甲乙各自的发送信号在 t=0 立刻在自己端覆盖整个收发器,t=t0 时刻自己端"看到的信号"开始混入对端传来的信号波形差异,立刻被冲突检测电路识别。

最短时间 =

最长情况(甲先发,乙在甲的信号即将到达乙的瞬间才发):

t=0:甲开始发送
t=t0-ε:甲的信号即将抵达乙
t=t0:乙也开始发送 → 乙的发送信号和"刚到的"甲信号在乙端立刻冲突 → 乙立刻检测到冲突
t=2t0:乙发出的冲突信号传回甲端 → 甲检测到冲突

最长时间 =

CSMA/CD 的"争用期"约定:以太网把 称为争用期(contention slot)。一台主机只要发送时长撑过争用期还没听到冲突,就能确认这次发送独占信道。这也是以太网"最短帧长 = 争用期 × 带宽"约定的来源——10 Mbps 以太网的最短帧 = (注意这里是 51.2 μs 而非 20 μs,因为以太网标准用 200m 同轴电缆 + 中继器最大跨距算的争用期)。

两种情况的信号传播过程示意

图中说明:左侧 (a) 为最短情况,三帧自上而下表示 t=0 → t=t₀ 信号在两侧同时向中点扩展、相遇即被检测;右侧 (b) 为最长情况,前两帧表示甲信号先单向占满信道,最后一帧表示乙开始发送瞬间检测冲突。

(2) 主机甲的有效数据传输速率

先列出一个完整发送周期里的所有时间分量

时间分量计算结果
数据帧发送时延
确认帧发送时延
双程传播时延
一个发送周期

为什么是 ?甲发出数据帧的最后一比特后,要等它"先传播到乙()→ 乙发送确认帧()→ 确认帧传播回甲()"才能发下一帧。停等协议里,这三段是顺序串行、不能流水的。

再算"一个周期里有多少有效数据"

以太网帧 1518 B 的数据部分(payload)= 1500 B(去掉 14 B 帧头 + 4 B FCS)。所以一个周期产生 1500 B 的应用层有效数据。

题面坑点:题干说"不考虑前导码"——以太网帧实际还有 8 B 前导(PRE+SFD),如果把前导算进发送时延, 会变成 ms,结果略小。本题明确要求忽略,所以按 1518 B 算。

链路带宽 vs 有效数据率:链路带宽 10 Mbps 是物理层比特速率;有效数据率 9.33 Mbps 是应用层吞吐量——损失主要来自帧头/FCS(约 1.2%)和确认帧 + 双程传播(约 5.6%)。停等协议在长距离 + 短数据帧时损失会被放大,这是后面 GBN / SR 协议要解决的问题。

最后更新:

🎬 可视化演示
加载中...

提示:可在可视化区直接操作播放、步进、修改参数