Appearance
题目
在下图所示的采用"存储 - 转发"方式的分组交换网络中,所有链路的数据传输速率为 100 Mbps,分组大小为 1000 B,其中分组头大小为 20 B。若主机 H1 向主机 H2 发送一个大小为 980 000 B 的文件,则在不考虑分组拆装时间和传播延迟的情况下,从 H1 发送开始到 H2 接收完为止,需要的时间至少是( )。
图说:原图三个路由器为空圆,编号 R1 / R2 / R3 仅为表述方便。"至少所需时间"取最短路径 H1 → R1 → R2 → H2(共 3 段链路);R3 这条绕路不会被走。
错因
A
漏掉了"尾巴"两跳——只算了 H1 把 1000 个分组全部推上线缆的 80000 μs,忘了最后一个分组还要走 R1 → R2 → H2 两跳的存储转发时延。错的根源是把"流水线"误解为"H1 发完所有分组 = 全部到达 H2",但实际上最后一个分组从 H1 出发后还要爬完后面两跳才算到达。
B
只算了 1 跳尾巴(80 μs),漏算了第二跳的 80 μs。算到 80000 + 80 = 80080 μs。可能脑子里的画面是"分组 5000 出 H1 后,到 R1 已经是终点附近",但 R1 还要把这个分组转发到 R2、R2 再转发到 H2 共 2 段链路。
D
多算了 1 跳尾巴(240 μs 应只是 160 μs)。常见走法:把"H1 → R1 → R2 → H2 三段链路"每一段都额外加一次 80 μs 当尾巴(80 × 3 = 240 μs)。错因是没意识到 H1 → R1 这一段的传输时延已经被"H1 推 1000 个分组的 80000 μs 主线"完全包住,不能再额外加。尾巴只发生在最后一个分组离开 H1 之后的剩余跳数上。
总解析
抠出关键参数:
- 每分组传输时延:1000 × 8 bit / 100 Mbps = 8000 / 10⁸ = 80 μs
- 分组数:每分组载荷 = 1000 - 20 = 980 B;文件 980 000 B → 980 000 / 980 = 1000 个分组
- 不计传播延迟、不计拆装时延(题面给定)
最短路径:H1 → R1 → R2 → H2,3 段链路(不绕 R3)。
流水线时序(每跳 80 μs,存储转发):
- 主线:H1 把 1000 个分组连续推上 H1 → R1 链路,时长 = 1000 × 80 μs = 80 000 μs
- 尾巴:最后一个分组从 H1 出发后,还要在 R1 → R2 和 R2 → H2 两跳上各走 80 μs:
理解要点:"流水线主线 + 尾巴"是存储转发题的固定套路:
- 主线 = 分组数 × 单分组传输时延(在瓶颈链路上推完所有分组的时间)
- 尾巴的传输部分 = (跳数 − 1) × 单分组传输时延(第一跳已在主线里、不重复算)
- 尾巴的传播部分 = 跳数 × 单跳传播时延(如果题面要求计入;本题"不考虑传播延迟"所以为 0)
本题 3 跳、不计传播:尾巴 = 2 × 80 = 160 μs。对照 cn-2023-33 的 2 跳计传播:尾巴 = 1 × 80 + 2 × 10 = 100 μs,是同一公式的不同代入。
最终答案是 C(80.16 ms)。