Appearance
题目
主机甲向乙发送一个大小为 800 KB 的文件,中间经过 3 个结点,链路带宽为 1 Mbps,传播时延忽略不计,分别采用报文交换和分组交换(分组大小为 1 KB)方式,所需总时间分别为( )
错因
A
可能漏算路径段数(以为只有 1 段链路):800 ms = 单段文件传输时延。报文交换至少要 2 段链路串行(题面"经过 3 个结点"= 源 + 1 中间 + 目的 = 2 段),所以最少 1600 ms。错的根源:把"经过 N 个结点"误读为"经过 N 段链路"。
B
把报文和分组的算法混淆:报文交换的 1600 ms 错算成分组交换的 801 ms,反之亦然。错的根源:算到了正确数值但贴反了选项("分组比报文快"的方向是对的,但具体数值和算法对应错了)。
C
颠倒了快慢——以为报文 1600 ms(慢)、分组 800 ms(快),但分组交换需要 800 个 1 KB 分组流水线,最快也是 801 ms。错的根源:分组交换的"流水线尾部"忽略了——分组交换 ≠ 1 段链路时间,仍要等所有分组通过最后一段链路。
总解析
第一步:理清网络结构
题面"经过 3 个结点"指总共 3 个节点(源主机 + 1 个中间转发节点 + 目的主机),即 2 段链路串联。
第二步:算单段链路传输文件的时间
文件 800 KB,按命题方简化算法(1 KB = 1000 bit / 1 KB 即 1000 bit):
每个 1 KB 分组单段传输时间:
第三步:算报文交换总时延
报文交换在每个节点都要整个文件存完再转发,2 段链路串行:
第四步:算分组交换总时延(流水线)
分组交换允许"边收边转"——前一分组到达中间节点后转发出去时,下一分组也可以同时从源端进入第一段。最后总时延:
文件 800 KB / 1 KB = 800 个分组,2 段链路:
直觉解释:
- 第 1 个分组从源到中间用 1 ms、再到目的用 1 ms = 第 1 个分组到达 = 2 ms
- 第 2 个分组紧跟在第 1 个之后到达目的 = 3 ms
- ...
- 第 800 个分组到达 = 2 + 799 = 801 ms
或等价地:源到中间发完 800 个分组用 800 ms(流水线串行发送),最后 1 个分组从中间到目的再用 1 ms = 801 ms。
第五步:核对
| 方式 | 时延 |
|---|---|
| 报文交换 | 1600 ms |
| 分组交换 | 801 ms |
最终答案是 D(1600 ms、801 ms)。
编者注(生僻术语):分组交换比报文交换快的根本原因是流水线(pipelining)——多段链路可以同时在传不同的分组,而不是各段必须串行等下一个完整文件到达。报文交换由于"必须收完整个报文再转发",多段链路效率退化为串行;分组交换因为"小分组可重叠传输",效率接近单段时延。本题的 1600 vs 801 倍率(约 2:1)正是反映这一优势的经典数字——流水线在 N 段链路中能把时延从 压到约 。