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 个都不发送的概率?
每个用户独立地以
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 个分组在
📌 注意题目描述的流水线:当第 1 个分组正从 switch 1 发往 switch 2 时,第 2 个分组同时正从 source 发往 switch 1。多段链路并行工作——这就是分段的全部意义。
3. 分段后的端到端总时延
推导:第 1 个分组要穿过 3 段链路才到达目的地,耗时
⭐ 一般公式(要记住):
其中
本题:
对比与评论
| 方案 | 端到端时延 |
|---|---|
| 不分段 | 12 s |
| 分段(800 × 10,000 bits) | 4.01 s |
| 加速比 | ≈ 2.99× |
⭐ 为什么快了将近 3 倍?
不分段时,3
段链路是串行使用的——同一时刻只有一段在传数据,另外两段完全闲置。分段后形成流水线(pipelining),三段链路几乎全程并行工作,所以时延趋近于原来的
极限分析:当
即总时延趋近于只穿过一段链路的时间(本题 4
s),加速比上限就是链路段数
⚠️ 但分组不是越小越好:本题忽略了包头开销。真实网络中每个分组都要带首部,分得越碎,首部开销占比越高;同时每跳的处理次数也线性增加。所以实际分组大小是流水线收益与开销之间的折中(以太网 MTU 1500 字节就是这么来的)。
考点重点
- ⭐ 电路交换容量
链路容量 / 每用户带宽 ,向下取整,按最坏情况预留。 - ⭐ "指定某个用户" vs "任意一个用户":后者要乘组合数
。这是本 lab 最容易失分的地方(第 3 题 vs 第 4 题)。 - ⭐ 过载概率用二项分布尾和:
,其中 容量/每用户带宽 。 - 统计复用的权衡:13 vs 7 个用户(+86% 容量)换 1.8% 过载概率。要能说出这个 trade-off。
- ⭐
store-and-forward:交换机必须收完整个分组才转发。不分段时
段链路串行,总时延 。 - ⭐⭐ 流水线公式
—— 必背。 是链路段数(不是交换机数!2 台交换机 = 3 段链路)。 - 加速比上限 = 链路段数
,当分组数 时逼近。 - 分组大小的折中:分得越细流水线越充分,但首部开销和每跳处理次数上升。
附:一页速查
| 符号 | 含义 | 本题值 |
|---|---|---|
| 链路容量 | 150 Mbps | |
| 单用户带宽 | 20 Mbps | |
| 用户活跃概率 | 0.3 | |
| 分组交换用户数 | 13 | |
| 报文总长 | ||
| 链路速率 | 2 Mbps | |
| 链路段数 | 3 | |
| 分组个数 | 800 | |
| 分组大小 | 10,000 bits |