COMP5416 Lab 2 题解:分组交换 vs 电路交换与报文分段

COMP5416 Lab 2 题解:Performance

课程:COMP5416 / COMP4416 — Advanced Network Technologies 来源W3-performance.pdf 实验目标:理解分组交换(packet switching)电路交换(circuit switching)网络中的性能表现

⚠️ 文件命名有点乱:PDF 页眉写的是 "COMP5416-4416 Lab 2",页脚写 "Performance",而文件名是 W3。内容对应 syllabus 里的第 2 个主题 Performance。 所有数值都用程序验算过;题目要求「round to two decimals after leading zeros」(前导零之后保留两位有效数字)。


背景:两种交换方式

Circuit Switching(电路交换) Packet Switching(分组交换)
资源分配 预留专用带宽,通话期间独占 按需共享,统计复用(statistical multiplexing)
保证 ✅ 带宽有保证,无排队 ❌ 无保证,可能拥塞排队
效率 ❌ 用户不发数据时带宽也被占着,浪费 ✅ 利用了「用户大部分时间不发数据」这一事实
容量 硬上限 = 链路容量 / 单用户带宽 超额接纳(overbooking),靠概率保证

Exercise 1:电路交换与分组交换的对比

题目设定

  • 链路容量:150 Mbps
  • 每个用户需要:20 Mbps(发送时)
  • 电路交换 个用户共享
  • 分组交换 个用户共享,每个用户只有 30% 的时间在发送

1. 电路交换最多支持多少用户?

电路交换要为每个用户全程预留 20 Mbps:

7 个用户占 140 Mbps ≤ 150 ✓;8 个用户需要 160 Mbps > 150 ✗。第 8 个用户会被拒绝接入,哪怕大家都没在说话。


2. 13 个分组交换用户,电路交换支持得了吗?

这正是分组交换的价值所在:它敢接纳 13 个用户,因为不太可能所有人同时发送。电路交换必须按最坏情况预留,只能接 7 个。


3. 指定的某一个用户在发送,其余 12 个都不发送的概率?

每个用户独立地以 发送。指定用户发送、其余 12 人全都沉默:


4. 恰好有一个用户(13 人中任意一个)在发送的概率?

与第 3 题的区别:"任意一个"要乘上组合数

📌 第 3 题 vs 第 4 题是最容易混的地方: - 第 3 题指定了是哪一个用户 → 不乘组合数 - 第 4 题只说有一个 → 要乘


5. 一个用户在发送时占用多少比例的链路容量?


6. 恰好 7 个用户(13 人中任意 7 个)在发送的概率?

标准二项分布

💡 为什么这个数字重要:链路最多同时容纳 个发送者。7 个人同时发是刚好用满、还不过载的临界点。


7. 超过 7 个用户同时发送的概率?

"超过 7"即 ,这正是链路过载的概率:

各项明细:

8 1287 0.014192
9 715 0.003379
10 286 0.000579
11 78 0.000068
12 13 0.0000048
13 1 0.00000016
合计 0.018223

⭐ Exercise 1 的核心结论

分组交换接纳了 13 个用户(电路交换只能接 7 个,接纳量提升 86%),代价是约 1.8% 的时间会过载。

这就是统计复用的本质权衡:用一个很小的过载概率,换接近两倍的用户容量。


Exercise 2:分组交换中的报文分段

题目设定

  • 报文长度 bits
  • 拓扑:source → switch 1 → switch 2 → destination,即 3 段链路、2 台交换机
  • 每段链路速率 Mbps bps
  • 忽略传播、排队、处理时延
  • 交换机采用 store-and-forward(存储转发)

store-and-forward 的含义:交换机必须完整收到整个分组之后,才能开始向下一跳转发。这是本题所有计算的基础。


1. 不分段:端到端总时延

到第一台交换机的时间

总时延:因为是存储转发,报文必须在每段链路上完整传输一次,3 段链路串行:

时间线:s 到 switch 1,s 到 switch 2,s 到 destination。每一刻只有一段链路在工作,另外两段闲着。


2. 分段后:前两个分组的时间

分成 800 个分组,每个 10,000 bits(校验: ✓)。

单个分组的传输时间

第 2 个分组在第一台交换机被完整接收的时刻

第 1 个分组在 ms 从 source 传到 switch 1;紧接着第 2 个分组在 ms 传输:

📌 注意题目描述的流水线:当第 1 个分组正从 switch 1 发往 switch 2 时,第 2 个分组同时正从 source 发往 switch 1。多段链路并行工作——这就是分段的全部意义。


3. 分段后的端到端总时延

推导:第 1 个分组要穿过 3 段链路才到达目的地,耗时 。此后剩下的 799 个分组在流水线中每隔 到达一个

线

一般公式(要记住)

其中 = 链路段数, = 分组个数, = 分组大小, = 链路速率。

本题: s ✓

对比与评论

方案 端到端时延
不分段 12 s
分段(800 × 10,000 bits) 4.01 s
加速比 ≈ 2.99×

为什么快了将近 3 倍?

不分段时,3 段链路是串行使用的——同一时刻只有一段在传数据,另外两段完全闲置。分段后形成流水线(pipelining),三段链路几乎全程并行工作,所以时延趋近于原来的

极限分析:当 时,

即总时延趋近于只穿过一段链路的时间(本题 4 s),加速比上限就是链路段数 。本题 ,所以已经非常接近这个上限(2.99 / 3)。

⚠️ 但分组不是越小越好:本题忽略了包头开销。真实网络中每个分组都要带首部,分得越碎,首部开销占比越高;同时每跳的处理次数也线性增加。所以实际分组大小是流水线收益开销之间的折中(以太网 MTU 1500 字节就是这么来的)。


考点重点

  1. 电路交换容量 链路容量 / 每用户带宽 ,向下取整,按最坏情况预留
  2. "指定某个用户" vs "任意一个用户":后者要乘组合数 。这是本 lab 最容易失分的地方(第 3 题 vs 第 4 题)。
  3. 过载概率用二项分布尾和:,其中 容量/每用户带宽
  4. 统计复用的权衡:13 vs 7 个用户(+86% 容量)换 1.8% 过载概率。要能说出这个 trade-off。
  5. store-and-forward:交换机必须收完整个分组才转发。不分段时 段链路串行,总时延
  6. ⭐⭐ 流水线公式 —— 必背。链路段数(不是交换机数!2 台交换机 = 3 段链路)。
  7. 加速比上限 = 链路段数 ,当分组数 时逼近。
  8. 分组大小的折中:分得越细流水线越充分,但首部开销和每跳处理次数上升。

附:一页速查

符号 含义 本题值
链路容量 150 Mbps
单用户带宽 20 Mbps
用户活跃概率 0.3
分组交换用户数 13
报文总长 bits
链路速率 2 Mbps
链路段数 3
分组个数 800
分组大小 10,000 bits