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 那道就是送分。

解题模板

情形 引用对象部分
非持久·串行
非持久·并行(上限
持久 + 并行(上限

实例演算(站上抽到的一份)

参数 ms、

计算 官方答案
单对象 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 的核心公式

实例演算

参数 Mbit、 Mbps :28, 14, 25, 29, 23, 27, 12, 16, 21 (:17, 18, 34, 17, 31, 38, 17, 12, 34 (

537.31
333.33
537.31 s(瓶颈是服务器
59.70
333.33
137.40
333.33 s(瓶颈是最慢的客户

这道题除了算数值,还会问「瓶颈是谁」 —— 就是看 取到了哪一项:

取到哪项 瓶颈 答案代号
服务器上传 s
下载最慢的那个客户 c / ci
系统总上传能力 cu

⚠️ P2P 第一项是 不是 —— 服务器只需上传一份副本,剩下靠对等方互传。 这是本公式最常错的地方。

五、Internet checksum —— 唯一的手算题

三步模板

① 把两个 16 位数相加
② 若产生第 17 位进位 → 把进位加回低 16 位(回卷 wraparound)
③ 对回卷和逐位取反 → 校验和

实例演算

  10011110 10101011      (40619)
+ 10101111 10100011 (44963)
─────────────────────
1 01001110 0100111085582,第 17 位是进位
+1 ← 回卷
─────────────────────
01001110 01001111 ← SUM
取反 →
10110001 10110000 ← CHECKSUM

自检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 的两个易错点

  1. 「more than 5 users」= ,不含 5 —— 上限和「超过」差一位
  2. 「a given (specific) user」vs「any one user」 —— 前者 ,后者要再乘

实例 ⇒ 指定某人 ;任意一人

七、Browser Caching(条件 GET)

实例 ms、、命中率 ms

理解每个请求都要一个 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 = ,并强调「与对象数无关」 只在一轮取完()时成立。课程 tutorial 的 恰好掩盖了这点;交互题的 立刻露馅 持久 + 并行 = ;只有「持久 + 流水线、不限并行数」才恒为 3
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 0105 过一遍笔记
② 计算题各刷 3 遍 DNS and HTTP delaysCS vs P2PInternet checksumPS vs CSEnd-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 题模拟卷 模拟卷