Appearance
题目
主机甲采用停-等协议向主机乙发送数据,数据传输速率是 3 kbps,单向传播延时是 200 ms,忽略确认帧的传输延时。当信道利用率等于 40% 时,数据帧的长度为( )。
错因
A
可能用了"帧长 = 利用率 × 单向传播链路容量" 凑算: bit。错的根源:把利用率公式背反了,直接用"利用率乘以单向传播在该速率下能装的比特数"——但这没有物理含义,停等利用率公式应是 ,需要解方程反推 。
B
可能用错公式 (漏一半传播,只算单向):
错的根源:忘了 RTT 是 而不是 ——停等协议每个周期数据走过去 + ACK 走回来,传播时延算 2 次。
C
可能用了"帧长 = 利用率 × 2τ × 速率" 凑算: bit。错的根源:把利用率乘到 RTT 比特容量上,得到的是"能装满 RTT 的比特数 × 利用率",不是真正的帧长。停等公式必须解方程,不能这样直接乘。
总解析
第一步:明确停等协议利用率公式
题面已说"忽略确认帧的传输延时",所以一个完整周期:
其中 = 数据帧发送时延、 = 单向传播时延。
利用率:
第二步:代入题面数值
题面给:
- ms = 0.2 s(单向传播)
- s(RTT)
- (信道利用率 40%)
代入:
第三步:解方程求
第四步:用速率换算成比特数
第五步:核对
| 选项 | 命中 40%? | ||
|---|---|---|---|
| A | 240/3000 = 0.08 s | 0.08 / 0.48 = 16.7% | ❌ |
| B | 400/3000 = 0.133 s | 0.133 / 0.533 = 25% | ❌ |
| C | 480/3000 = 0.16 s | 0.16 / 0.56 = 28.6% | ❌ |
| D | 800/3000 = 0.267 s | 0.267 / 0.667 = 40% | ✅ |
最终答案是 D(800 比特)。
编者注(生僻术语):停等协议利用率公式 中三项含义——
- :数据帧发送时延(瓶颈用时,分子也是这个)
- :往返传播时延(数据走一程 + ACK 回一程)
- :ACK 帧发送时延(题面说"忽略"则取 0)
反推帧长题的标准做法:① 列方程 ;② 解出 ;③ 。直接套数字不解方程是常见错路。