COMP5416 期中冲刺:Kurose 官方交互练习对照指南
COMP5416 期中冲刺:Kurose 交互练习对照指南
站点:https://gaia.cs.umass.edu/kurose_ross/interactive/ 来源:老师课上推荐,用来准备 midterm quiz。 教材:Kurose & Ross, Computer Networking: A Top-Down Approach —— 本课程用的正是这本。
✅ 考试范围确认:期中只考 Week 1–5,老师已说明不考 Week 6 的 TCP。 所以下面把第 3 章里 TCP 专属的题都标成了「超纲」。
这个站最大的价值:每道题都能无限生成新实例(点 "Another Problem Like This"), 数字每次都变,逼你真的用公式而不是背答案。
第一部分:按考纲分类
一、必做(直接命中 Week 1–5)
| 章 | 题目 | 对应本课 | 对应笔记 |
|---|---|---|---|
| 1 | Quantitative Comparison of Packet Switching and Circuit Switching | Week 1–2 | Week 02 |
| 1 | Circuit Switching | Week 1–2 | Week 02 |
| 1 | One-hop Transmission Delay | Week 2 | Lab 02 |
| 1 | Queuing Delay | Week 2 | Week 02 |
| 1 | End-to-End Delay | Week 2(存储转发) | Lab 02 |
| 1 | End-to-End Throughput | Week 2(瓶颈链路) | Week 02 |
| 1 | The IP Stack and Protocol Layering | Week 1(分层) | Week 01 |
| 1 | Car–Caravan Analogy | Week 2(时延类比) | Week 02 |
| 2 | DNS – Basics | Week 4 | Week 04 |
| 2 | DNS – Iterative vs Recursive Query | Week 4 | Week 04 |
| 2 | ✓ DNS and HTTP delays | Week 5 tutorial 的原题 | Tutorial |
| 2 | HTTP GET / HTTP RESPONSE | Week 3(报文格式) | Week 03 |
| 2 | Browser Caching | Week 3(条件 GET) | Week 03 |
| 2 | Electronic Mail and SMTP | Week 3(邮件) | Week 03 |
| 2 | ✓ Client-server vs P2P file distribution | Week 4 的核心公式 | Week 04 |
| 3 | ✓ Internet checksum | Week 5 | Week 05 |
| 3 | UDP Mux and Demux | Week 5(二元组) | Week 05 |
| 3 | TCP Mux and Demux | Week 5(四元组) | Week 05 |
| 3 | Reliable data transfer: rdt22 | Week 5 | Week 05 |
| 3 | Reliable data transfer: rdt30 | Week 5 | Week 05 |
✓ = 价值最高的三道,理由见第二部分。
二、超纲(期中不考,别浪费时间)
| 题目 | 为什么超纲 |
|---|---|
| TCP sequence and ACK numbers, with segment loss | Week 6 内容 |
| TCP RTT and timeout | Week 6 内容 |
| TCP congestion window evolution | Week 6 内容 |
| TCP retransmissions | Week 6 内容 |
| 第 4 章全部(最长前缀匹配、NAT、子网、OpenFlow、IPv6 隧道) | 网络层,期末范围 |
| 第 5 章全部(Dijkstra、Bellman-Ford) | 控制平面,期末范围 |
| 第 6 章全部(CRC、二维奇偶校验、Aloha、学习交换机) | 链路层,期末范围 |
| 第 7 章全部(CDMA、4G) | 无线,期末范围 |
⚠️ 注意 rdt22 / rdt30 不算 TCP 题 —— 它们练的是通用可靠传输原理, 正是 Week 05 讲义 p29–44 的内容,要做。
第二部分:三道最该做的题
三、DNS and HTTP delays —— 和 tutorial 是同一道题
这道题和 Week 5 tutorial 的 Exercise 2 措辞逐字相同, 只是数字和对象个数每次随机。做熟这道,tutorial 那道就是送分。
解题模板
| 情形 | 引用对象部分 |
|---|---|
| 非持久·串行 | |
| 非持久·并行(上限 |
|
| 持久 + 并行(上限 |
实例演算(站上抽到的一份)
参数:
| 问 | 计算 | 官方答案 |
|---|---|---|
| 单对象 | 102 ms | |
| 非持久·串行 | 862 ms | |
| 非持久·并行 | 254 ms | |
| 持久 + 并行 | 178 ms |
⚠️⚠️ 这道题是本文最重要的一条:
注意持久那一行,引用对象花的是 2 个
,不是 1 个。 10 个对象、上限 5 条连接 ⇒ 要分两轮,每轮 1 个 RTT。 官方解答原话: "Once these first five objects have been retrieved, the remaining embedded objects can be retrieved (in parallel). This second round takes only one more RTT."
课程 tutorial 那道题因为
只有一轮,看不出这个区别 —— 很容易误记成「持久永远只要 1 个 RTT」。这道题正好把陷阱暴露出来。
四、Client-server vs P2P —— Week 4 的核心公式
实例演算
参数:
| 项 | 值 |
|---|---|
| 537.31 | |
| 333.33 | |
| 537.31 s(瓶颈是服务器) | |
| 59.70 | |
| 333.33 | |
| 137.40 | |
| 333.33 s(瓶颈是最慢的客户) |
这道题除了算数值,还会问「瓶颈是谁」 —— 就是看
取到了哪一项:
取到哪项 瓶颈 答案代号 或 服务器上传 s下载最慢的那个客户 c/ci系统总上传能力 cu⚠️ P2P 第一项是
不是 —— 服务器只需上传一份副本,剩下靠对等方互传。 这是本公式最常错的地方。
五、Internet checksum —— 唯一的手算题
三步模板
① 把两个 16 位数相加 |
实例演算
10011110 10101011 (40619) |
自检:SUM + CHECKSUM 必须全 1。 接收方验证:把校验和当加数一起加,回卷后应得全 1,取反得全 0。
⚠️ 注意字长:站上的交互题用 16 位字; Week 05 讲义 p21 用 16 位,但 p22 换成了 8 位(讲义没说明)。 方法完全一样,只是回卷的位置不同 —— 看清题目给的是几位。
第三部分:其余题的速查模板
六、第 1 章各题
| 题 | 模板 |
|---|---|
| Circuit Switching | |
| PS vs CS | 电路交换: 分组交换: |
| One-hop Transmission Delay | |
| Queuing Delay | 流量强度 |
| End-to-End Delay | 存储转发: |
| End-to-End Throughput | 取路径上所有链路速率的最小值(瓶颈链路) |
PS vs CS 的两个易错点:
- 「more than 5 users」=
,不含 5 —— 上限和「超过」差一位 - 「a given (specific) user」vs「any one user」 —— 前者
,后者要再乘 实例:
、 ⇒ 指定某人 ;任意一人 。
七、Browser Caching(条件 GET)
实例:
理解:每个请求都要一个 RTT(哪怕命中缓存,也得发条件 GET 问一声); 只有未命中的那 40% 才需要真正传对象。 这正是 Week 03 条件 GET那节的量化版。
八、DNS 两题
| 题 | 要点 |
|---|---|
| DNS – Basics | RR 类型 A / NS / CNAME / MX 的
(name, value) 分别是什么 |
| Iterative vs Recursive | 迭代:本地 DNS
跑三趟(星形) 递归:沿层级下行、上行(链形) 两者消息总数相同 |
完整推演见 Week 04 笔记第二部分。
九、UDP / TCP Mux-Demux
| UDP | TCP | |
|---|---|---|
| 套接字标识 | 二元组:目的 IP + 目的端口 | 四元组:源 IP + 源端口 + 目的 IP + 目的端口 |
| 不同源发来的段 | 进同一个套接字 | 进不同的套接字 |
做题方法:把每个段的四元组列出来,四元组相同的进同一个套接字。 UDP 只看后两个。
十、rdt22 / rdt30
| 协议 | 要点 |
|---|---|
| rdt2.2 | 无 NAK;接收方对最后一个正确收到的分组发 ACK,ACK 里必须带序号;发送方收到「意外的 ACK」= 收到 NAK ⇒ 重传 |
| rdt3.0 | 加定时器;超时重传;能处理分组丢失和 ACK 丢失;ACK 丢失会导致接收方收到重复分组 ⇒ 靠序号丢弃 |
交互题会让你逐步推演时序图 —— 这正是 Week 05 讲义 p43–44 的四种场景(无丢失 / 分组丢失 / ACK 丢失 / 过早超时)。
第四部分:这些题帮我修正的两处笔记错误
把官方交互题当「标准答案」反查自己的笔记,是这个站最被低估的用法。 下面两处是我用它查出来的真错误,已经改掉。
| # | 原来写的 | 问题 | 现在改成 |
|---|---|---|---|
| 1 | 持久 HTTP = |
只在一轮取完( |
持久 + 并行 = |
| 2 | Week 05 讲义 p22
的校验和验证例子按两个 16 位字抄,结果写成
11111111 11111111 |
p22 实际用的是四个 8 位字(讲义从 p21 的 16 位悄悄换了字长),我抄错了 | 按 8 位口径重推:和
110010100 → 回卷 10010101 → 校验和
01101010;验证时加上校验和得 111111110 → 回卷
11111111 → 取反全 0 |
另外顺带确认的三件事(都没问题):
- Week 04 的 C/S 与 P2P 两条公式与官方交互题完全一致
- 20 题模拟卷的全部答案逐题复算无误
- 二项分布「超过
个」= 的口径与官方一致
第五部分:怎么用这个站
十一、建议的刷题顺序
| 阶段 | 做什么 |
|---|---|
| ① 先补概念 | 按 Week 01 → 05 过一遍笔记 |
| ② 计算题各刷 3 遍 | DNS and HTTP delays、CS vs P2P、Internet checksum、PS vs CS、End-to-End Delay —— 每次点 "Another Problem Like This" 换新数字 |
| ③ 概念题各刷 1 遍 | DNS 两题、Mux/Demux 两题、rdt 两题、HTTP GET/RESPONSE |
| ④ 掐时模考 | 20 题模拟卷,25 分钟 |
| ⑤ 查漏 | 错的题回到对应周笔记的「最容易错的 N 个点」 |
十二、几个使用提醒
- 先自己算完再点 "Show Solution" —— 站上的解答会直接展开,很容易忍不住偷看
- "Another Problem Like This" 会重新随机参数,同一道题可以刷到烂
- 站上还有 Knowledge Checks(概念判断题)和 Wireshark Labs, Wireshark 部分和 Week 04 的 tutorial 是同源的
- 别碰第 4–7 章 —— 期中不考,留到期末
⚠️ AI Tutors 那几个入口(Chapter 1–8 的聊天机器人)要注意: Week 01 笔记记录的考试规则里写明 midterm quiz「禁止使用 AI」。 平时学习用没问题,考试期间不要开。
附:相关笔记索引
| Week | 主题 | 笔记 |
|---|---|---|
| 1 | Introduction | Week 01 |
| 2 | Performance | Week 02 |
| 3 | Applications | Week 03 |
| 4 | DNS and P2P | Week 04 |
| 5 | Transport | Week 05 |
| 5 | Tutorial: DNS 与 HTTP 时延 | Tutorial |
| — | 20 题模拟卷 | 模拟卷 |