Skip to content

2017年 408 计算机网络 第 39 题

计算机网络2017年选择题2分

题目

若甲向乙发起一个 TCP 连接,最大段长 MSS = 1 KB,RTT = 5 ms,乙开辟的接收缓存为 64 KB,则甲从连接建立成功至发送窗口达到 32 KB,需经过的时间至少是( )。

错因

B

可能多算 1 RTT——把"达到 32 KB"理解成"超过 32 KB",多走 1 RTT 让 cwnd 变成 64 KB(但仍受 rwnd=64 KB 限制不再增长)。错的根源:题面"达到"含义解读偏严,但严格说"达到 32 KB"意味着 cwnd 等于 32 KB 时就满足,5 RTT 即可。

C

可能用线性增长(拥塞避免)算法:cwnd 每 RTT + 1 MSS,从 1 KB 增到 32 KB 需 31 RTT × 5 ms ≈ 155 ms。再加上 1 RTT 握手凑成 160 ms。错的根源:把慢启动算成了线性增长——慢启动是指数翻倍,不是线性。题面问"至少",应取最快的指数路径。

D

可能在 C 的基础上再多算 1 RTT 凑成 33 RTT × 5 ms = 165 ms。错的根源:双重错误(线性增长 + 多算 1 RTT)。

总解析

第一步:理清条件

  • MSS = 1 KB
  • RTT = 5 ms
  • 乙的接收缓存 = 64 KB(即 rwnd 上限 = 64 KB)
  • 甲连接建立后,cwnd 初始 = 1 MSS = 1 KB
  • 目标:发送窗口 = 32 KB

发送窗口 = 。要发送窗口 = 32 KB,等价于 cwnd ≥ 32 KB(rwnd = 64 KB 此时不限制)。

第二步:题面"至少"的含义

"至少"意味着选最快增长方式 → 慢启动(指数翻倍)。慢启动每 RTT cwnd 翻倍:

RTT 数cwnd(KB)
0(连接建立时)1
12
24
38
416
532

第三步:算时间

第四步:核对

选项含义错误
A25 ms = 5 RTT 慢启动正确
B30 ms = 6 RTT多算 1 RTT
C160 ms = 32 RTT误用线性增长
D165 ms = 33 RTT误用线性 + 多算

最终答案是 A(25 ms)

编者注(命题陷阱):题面只说"接收缓存 64 KB"——隐含 rwnd 一直 = 64 KB 没变(实际 TCP rwnd 会根据应用读取速度浮动)。本题这个 64 KB 是为了确保发送窗口在到达 32 KB 之前不被 rwnd 限制,让计算专注在 cwnd 的指数增长上。如果 rwnd 比 32 KB 小,发送窗口就先卡在 rwnd 而不是 cwnd——题面给的 64 KB 是个安全的"够大"值。

最后更新:

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

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