Appearance
题目
假设主机甲采用停等协议向主机乙发送数据帧,数据帧长与确认帧长均为 1000 B。数据传输速率是 10 kbps,单向传播延时是 200 ms。则甲的最大信道利用率( )。
错因
A
把分母只算了"数据帧时延 + 单向传播",忘记还要算 ACK 帧自身的发送时延和 ACK 的回程传播:。这是最常见的错——以为收到 ACK 是"瞬间"的事。
B
算了 RTT(双向传播 200×2=400 ms),但漏算了 ACK 帧的发送时延:。错的根源:以为 ACK 只是一个信号"瞬时回到源端",没意识到 ACK 帧本身长度等于数据帧(题面"确认帧长度 1000 B"),传输时延也是 800 ms。
C
少算了一段传播时延:,把回程的 200 ms 漏了。可能错路:以为只有"去程"有传播时延、ACK 回来不算。
总解析
第一步:算每段时延
| 量 | 公式 | 值 |
|---|---|---|
| 数据帧发送时延 | ms | |
| 数据帧传播时延 | 题面给定 | ms |
| ACK 帧发送时延 | ms | |
| ACK 帧传播时延 | 题面给定 | ms |
第二步:套用停等协议利用率公式
停等协议每发一帧必须等 ACK 才能发下一帧。一个完整周期 包含:
期间真正用于传数据的有效时间是 ms(其余都是等待)。
时序图:
甲: |---发数据(800ms)---| |---等待---|
\
传播(200ms)
\
乙: |---收完--→|---发ACK(800ms)---|
\
传播(200ms)
\
甲: |---收到ACK--|总周期 = 800 + 200 + 800 + 200 = 2000 ms,有效时间 800 ms → 40%。
第三步:核对
| 选项 | 值 | 错误源 |
|---|---|---|
| A | 80% | 漏 ACK 时延 + ACK 传播 |
| B | 66.7% | 算了 RTT,但漏 ACK 时延 |
| C | 44.4% | 漏一段传播 |
| D | 40% | 正确 |
最终答案是 D(40%)。
编者注(生僻术语):停等协议的"信道利用率低"是它的根本缺陷——本题数据帧 800 ms vs 总周期 2000 ms,60% 的时间信道是空闲的。这正是后续滑动窗口协议(GBN / SR)出现的原因:通过让发送方"在等待 ACK 期间继续发送下一批帧"提高利用率。本题如果把 W=2 / 4 / 8 套进去,利用率会显著提升(不超过 1)。