单元测验 2(第 3-4 章):传输层 + 网络层数据平面 —— 计算强化卷¶
本卷覆盖第 3 章(传输层:UDP/TCP/可靠传输/拥塞控制)与第 4 章(网络层数据平面:IP 编址/分片/CIDR/NAT/DHCP)的全部高频考点。计算题与正文例题同型但参数已更换,真题大题按统考风格改编,答案必须完整推导、可核验。
| 项目 | 内容 |
|---|---|
| 考试范围 | 第 3 章(多路复用/解复用、UDP 校验和、RDT/GBN/SR、TCP 可靠传输与流量控制、连接管理、拥塞控制)+ 第 4 章(路由器内部、IPv4 分片、子网划分、CIDR 聚合、NAT、DHCP、IPv6) |
| 考试时长 | 100 分钟 |
| 总分 | 75 分 |
| 题量 | 单选 15 题 × 2 分 + 计算 3 题 × 10 分 + 真题大题 1 道 × 15 分 |
| 及格线 | 45 分(60%) |
| 对应章节 | 03-transport-layer.md、04-network-layer-data-plane.md |
📖 第一部分:单项选择题(15 题 × 2 分 = 30 分)¶
1.(单选)TCP 通过( )实现接收进程的解复用。
- A. 源 IP 地址 + 目的 IP 地址
- B. 源 IP + 源端口 + 目的 IP + 目的端口(四元组)
- C. 目的端口号
- D. 协议号
查看答案
答案:B
TCP 是面向连接的,其报文段经四元组(源 IP、源端口、目的 IP、目的端口)唯一标识一条连接,接收端按四元组把段交给对应套接字。UDP 只用二元组(目的 IP、目的端口)。
2.(单选)UDP 首部的长度为( )。
- A. 8 字节
- B. 20 字节
- C. 16 字节
- D. 4 字节
查看答案
答案:A
UDP 首部只有 4 个字段(源端口、目的端口、长度、校验和),每字段 2 字节,共 8 字节;TCP 首部最小 20 字节。首部开销小是 UDP 的优点之一。
3.(单选)关于 UDP 校验和,下列说法正确的是( )。
- A. 只校验 UDP 首部
- B. 能检测并纠正传输差错
- C. 接收方把包括校验和在内的所有 16 位字相加,无差错时结果为全 1
- D. 传输层无需校验和,因为链路层已做差错检测
查看答案
答案:C
接收方把所有 16 位字(含校验和)相加,无差错时得 全 1。校验和只能 检测 不能 纠正 差错;UDP 校验和覆盖首部 + 数据;链路层检错不能替代端到端检错(端到端原则)。
4.(单选)GBN(回退 N 步)协议中,接收方收到失序分组时( )。
- A. 缓存失序分组并单独确认
- B. 丢弃失序分组,并重发对最近按序接收分组的确认
- C. 缓存失序分组并发送重复确认
- D. 立即通知发送方重传全部窗口
查看答案
答案:B
GBN 接收方对失序分组 一律丢弃,并重发对最近按序接收分组的 ACK(累积确认)。因为发送方超时后会重传从 base 起的所有分组,缓存失序分组没有意义。缓存失序分组并单独确认是 SR 的做法。
5.(单选)序号用 4 bit(0~15),GBN 协议允许的最大发送窗口为( )。
- A. 16
- B. 15
- C. 8
- D. 7
查看答案
答案:B
GBN 窗口须满足 W ≤ 2ⁿ - 1 = 16 - 1 = 15。若 W = 2ⁿ,当 ACK 全部丢失、发送方重传整窗分组时,接收方无法区分新分组与重传的旧分组。SR 收发窗口相等时最大为 2ⁿ⁻¹ = 8。
6.(单选)TCP 报文段的序号字段表示( )。
- A. 报文段本身的编号
- B. 数据字段首字节的字节流编号
- C. 期望收到的下一个字节编号
- D. 报文段长度
查看答案
答案:B
TCP 把数据视为字节流,序号 = 数据字段首字节的字节流编号(MSS = 1000 时各段序号为 0、1000、2000…)。确认号才是「期望收到的下一个字节编号」。
7.(单选)TCP 三次握手中,第二次握手报文段的标志位为( )。
- A. SYN = 1,ACK = 0
- B. SYN = 1,ACK = 1
- C. SYN = 0,ACK = 1
- D. FIN = 1,ACK = 1
查看答案
答案:B
第一次握手:SYN = 1、ACK = 0(客户端发 SYN 段,选初始序号);第二次:SYN = 1、ACK = 1(服务器回 SYNACK,确认号 = 客户端 ISN + 1);第三次:ACK = 1(可携带数据)。注意 SYN 段与 FIN 段即使不携带数据也要消耗一个序号。
8.(单选)TCP 流量控制(rwnd)与拥塞控制(cwnd)的关系是( )。
- A. 二者互不影响,发送窗口只由 rwnd 决定
- B. 实际发送窗口 = min{rwnd, cwnd}
- C. 实际发送窗口 = rwnd + cwnd
- D. cwnd 只影响接收方
查看答案
答案:B
实际允许的未确认数据量 ≤ min{rwnd, cwnd}:rwnd 是接收方通告的缓冲区空闲空间(端到端流量控制),cwnd 是发送方维护的拥塞窗口(全局拥塞控制),两者共同限制发送速率。
9.(单选)TCP 发送方收到 3 个重复 ACK 时,将执行( )。
- A. 置 cwnd = 1,重新慢开始
- B. 快重传 + 快恢复:ssthresh = cwnd/2,cwnd = ssthresh
- C. 立即关闭连接
- D. 加倍超时时间后重传
查看答案
答案:B
3 个冗余 ACK 说明网络仍在交付(后续段陆续到达),拥塞程度较轻,执行 快重传(不等超时立即重传丢失段)+ 快恢复(ssthresh = cwnd/2,cwnd = ssthresh,直接进入拥塞避免)。口诀:超时 = 狠惩罚(cwnd = 1 慢开始);3 冗余 ACK = 轻惩罚(减半快恢复)。
10.(单选)慢开始算法中,每经过一个 RTT,拥塞窗口 cwnd( )。
- A. 增加 1 个 MSS
- B. 翻倍
- C. 保持不变
- D. 减半
查看答案
答案:B
慢开始每收到一个对新报文段的确认,cwnd 增加 1 MSS,故每 RTT 内所有段的 ACK 使窗口 翻倍(指数增长)。拥塞避免阶段才改为每 RTT 增加 1 MSS(线性增长)。
11.(单选)IPv4 数据报首部中,协议字段值为 6 表示上层协议为( )。
- A. UDP
- B. TCP
- C. ICMP
- D. IP
查看答案
答案:B
协议字段值为 6 = TCP、17 = UDP。协议号在网络层的作用类似端口号在传输层的作用——把网络层与传输层粘合的胶水。
12.(单选)IP 分片中,片偏移字段以( )为单位,除最后一个分片外每个分片的数据长度必须是( )的整数倍。
- A. 1 字节;4 字节
- B. 4 字节;8 字节
- C. 8 字节;8 字节
- D. 8 字节;16 字节
查看答案
答案:C
IP 首部三个长度字段单位不同:首部长度字段以 4B 为单位、总长度字段以 1B 为单位、片偏移字段以 8B 为单位。除最后一个分片外,每片数据长度必须是 8B 的整数倍。
13.(单选)主机 A 与主机 B 属于同一子网(子网掩码 255.255.255.0),A 向 B 发送数据报,帧的目的 MAC 地址应为( )。
- A. B 的 MAC 地址
- B. 默认网关接口的 MAC 地址
- C. 广播地址 FF-FF-FF-FF-FF-FF
- D. A 自己的 MAC 地址
查看答案
答案:A
同子网内 A 直接用 ARP 解析 B 的 IP 对应的 MAC,帧的目的 MAC 填 B 的 MAC。只有跨网段时才把帧交给默认网关(目的 MAC = 网关接口 MAC),由路由器逐跳转发。
14.(单选)关于 DHCP,下列说法错误的是( )。
- A. DHCP 客户发送 discover 报文时源 IP 为 0.0.0.0、目的 IP 为 255.255.255.255
- B. DHCP 运行在 UDP 之上
- C. 主机可从 DHCP 获得 IP 地址、子网掩码、默认网关与 DNS 服务器地址
- D. DHCP discover 报文的目的端口是 80
查看答案
答案:D
DHCP discover 报文的 UDP 目的端口为 67(DHCP 服务器端口),不是 80。客户尚未获得 IP 地址,只能广播(源 0.0.0.0,目的 255.255.255.255),不能使用 TCP(无法先建立连接)。
15.(单选)下列关于 IPv6 的说法,错误的是( )。
- A. IPv6 地址长度为 128 位
- B. IPv6 不允许中间路由器分片
- C. IPv6 首部固定 40 字节,取消了首部校验和
- D. IPv6 允许路由器对超大数据报分片后转发
查看答案
答案:D
IPv6 不允许中间路由器分片——数据报过大时路由器直接丢弃并回送 ICMPv6「Packet Too Big」,由源端重新发送更小的数据报。分片重组只能在源与目的主机进行。
📖 第二部分:计算题(3 题 × 10 分 = 30 分)¶
16.(计算,10 分)UDP 报文段中按 16 位分组得到如下三个字(首部 + 数据):
(1)求发送方填入校验和字段的值(写出求和、回卷、取反码的完整过程);
(2)接收方把三个数据字连同校验和共四个字相加,得到什么结果?说明其含义;
(3)若传输过程中某个字的一位发生翻转,接收方能发现差错吗?UDP 校验和能纠正差错吗?
查看答案
(1)计算校验和。 三个字十六进制为 0x9966、0x55AA、0xE31C:
第一步,前两个字相加:0x9966 + 0x55AA = 0xEF10(无溢出)。
第二步,与第三字相加:0xEF10 + 0xE31C = 0x1D22C——超过 16 位,最高位进位 1 需要 回卷:0xD22C + 1 = 0xD22D。
第三步,取反码:0xD22D 按位取反 = 0x2DD2,即二进制 00101101 11010010,这就是填入校验和字段的值。
(2)接收方验证: 0x9966 + 0x55AA + 0xE31C + 0x2DD2 = 0x1FFFF,回卷后 = 0xFFFF + 1 → 再回卷 = 0xFFFF(全 1)。全 1 表示无差错——因为校验和是和的补码,「数据和 + 校验和」必为全 1。
(3) 任意一位翻转都会使最终相加结果中出现 0,接收方 能发现差错。但 UDP 校验和 只能检测、不能纠正 差错,且存在漏检可能(如两个比特同时翻转恰好抵消,和仍为全 1)。
评分标准
- 前两字相加正确(2 分)
- 第三字相加并识别溢出回卷(3 分)
- 取反码得校验和 0x2DD2(2 分)
- 接收方四字相加得全 1 并解释(2 分)
- (3)能检错、不能纠错(1 分)
17.(计算,10 分)一条点对点链路的传输速率为 10 Mbps,帧长为 1000 B(8000 bit),链路两端主机之间的往返时延 RTT = 40 ms,忽略 ACK 传输时间、处理时延与传播时延以外的时延。
(1)采用停等协议时,信道利用率约为多少?
(2)改用 GBN 协议、发送窗口 N = 16,信道利用率是多少?有效数据率约为多少?
(3)要使信道利用率达到 100%,GBN 的发送窗口至少应为多少?此时序号至少需要几位?若改用 SR 协议(收发窗口相等),序号又至少需要几位?
查看答案
(1)停等协议。 传输一个帧的时间:
停等利用率:
(2)GBN(N = 16):
有效数据率 = U × R = 0.314 × 10 Mbps ≈ 3.14 Mbps。
(3)利用率 100% 要求 N·T_trans ≥ T_trans + RTT,即:
GBN 序号位数 n 须满足 2ⁿ - 1 ≥ 51:2⁵ - 1 = 31 < 51,2⁶ - 1 = 63 ≥ 51,故 n = 6 位。SR 收发窗口相等时 W ≤ 2ⁿ⁻¹,需要 2ⁿ⁻¹ ≥ 51:2⁶ = 64 ≥ 51,故 n = 7 位。
评分标准
- T_trans = 0.8 ms 与停等利用率公式(3 分)
- GBN 利用率 31.4% 与有效数据率 3.14 Mbps(3 分)
- 100% 利用率所需窗口 N = 51(2 分)
- GBN 需 6 位、SR 需 7 位序号(2 分)
18.(计算,10 分)一个总长度为 3200 B 的 IPv4 数据报(首部 20 B,数据部分 3180 B)到达一台路由器,需要转发到一条 MTU = 1000 B 的链路上。假定原始数据报的标识号为 888。
(1)应分为几个片?各片的数据字段长度与总长度分别为多少?
(2)各片的 MF 标志位与片偏移字段值分别为多少?
(3)分片在何处重组?为什么不能在中间路由器重组?目的主机依据哪些字段完成重组?
查看答案
(1)分片数与片长。 每片最大数据长度 = MTU - 首部 = 1000 - 20 = 980 B;980 不是 8 的倍数,向下取整为 976 B(976 ÷ 8 = 122)。分片数 = ⌈3180 / 976⌉ = ⌈3.26⌉ = 4 片。
| 片 | 数据长度 | 总长度(数据 + 20B 首部) |
|---|---|---|
| 片 1 | 976 B | 996 B |
| 片 2 | 976 B | 996 B |
| 片 3 | 976 B | 996 B |
| 片 4 | 3180 − 3×976 = 252 B | 272 B |
(2)标志与片偏移。 DF = 0(允许分片)。MF:前 3 片为 1,最后一片为 0。片偏移 = 该片数据首字节在原数据中的相对位置 ÷ 8:
- 片 1:0 ÷ 8 = 0
- 片 2:976 ÷ 8 = 122
- 片 3:1952 ÷ 8 = 244
- 片 4:2928 ÷ 8 = 366
(3) 分片 在目的主机重组——各片可能经不同路径到达,中间路由器无法保证收集到全部片。目的主机依据 标识(identifier) 判断片属于同一原始数据报、MF 判断是否还有后续片、片偏移 确定片在原数据报中的位置,三者共同完成重组。
评分标准
- 每片最大数据 976 B(向下取 8 的倍数)(2 分)
- 分片数 4 与各片数据/总长度正确(3 分)
- MF 与片偏移 0/122/244/366 正确(3 分)
- 目的主机重组、依据标识/MF/片偏移(2 分)
📖 第三部分:真题大题(1 题 × 15 分 = 15 分)¶
19.(综合计算,15 分,真题 2023#47 改编)主机甲通过一条 TCP 连接向主机乙发送一个 18000 B 的文件。MSS = 1000 B,文件被划分为 18 个报文段(段 1 ~ 段 18,段 k 的首字节序号为 (k−1)×1000 + 1)。三次握手恰好花费 1 个 RTT(握手报文段不携带数据)。连接建立后 cwnd 初始为 1 个 MSS,ssthresh 初始为 3 个 MSS,甲按慢开始/拥塞避免算法发送。假设每个 RTT 内甲发送的报文段数等于当前 cwnd 值,所有 ACK 在一个 RTT 内返回。
(1)填表:写出连接建立后前 5 个 RTT 内各 RTT 的 cwnd 值、所处阶段(慢开始/拥塞避免)、发送的段号与已发送段总数。
(2)第 5 个 RTT 传输的报文段中,段 11(首字节序号 10001)在传输中丢失。乙先后收到段 12、13、14、15 时,分别返回什么 ACK(写出确认号)?甲连续收到 4 个相同确认号的 ACK 后,会执行什么操作?写出新的 ssthresh 与 cwnd 值。
(3)快恢复后甲继续按拥塞避免发送剩余报文段(段 16、17、18),且无新的拥塞事件。求从开始建立连接起,到甲收到确认最后一个报文段的 ACK,共需多少个 RTT?若 RTT = 100 ms,求文件传输的平均发送速率(bps,含建连时间)。
查看答案
(1)前 5 个 RTT 的窗口演变。 慢开始每 RTT 翻倍;当 2×cwnd > ssthresh 时下一轮 cwnd 取 ssthresh;cwnd 达到 ssthresh 后转拥塞避免(每 RTT +1)。
| RTT | cwnd(MSS) | 阶段 | 发送段号 | 已发送总数 |
|---|---|---|---|---|
| 1 | 1 | 慢开始 | 1 | 1 |
| 2 | 2 | 慢开始 | 2、3 | 3 |
| 3 | 3(2×2=4 > ssthresh=3,封顶) | 慢开始 | 4、5、6 | 6 |
| 4 | 4 | 拥塞避免 | 7、8、9、10 | 10 |
| 5 | 5 | 拥塞避免 | 11、12、13、14、15 | 15 |
(2)重复 ACK 与快重传快恢复。 乙已正确收到段 1~10(字节 1~10000),段 11 丢失使字节 10001 缺失。段 12、13、14、15 到达时均属失序到达,乙对每个失序段都回送确认号 10001 的 ACK(累积确认到字节 10000,期望下一个字节 10001)。甲连续收到 4 个确认号均为 10001 的 ACK(1 个 ACK + 3 个重复 ACK),判定段 11 丢失,执行 快重传(立即重传段 11,不等定时器超时)+ 快恢复:
(3)总 RTT 数与平均速率。 快恢复后 cwnd = 2、ssthresh = 2,进入拥塞避免(每 RTT +1):
- 第 6 个 RTT:cwnd = 2,发送段 16、17;段 11 的重传确认(ACK 15001)与段 16、17 的确认(ACK 17001)在此期间返回;cwnd 增至 3;
- 第 7 个 RTT:cwnd = 3,发送段 18;乙返回 ACK 18001(全部 18 段确认),甲在第 7 个 RTT 末收到。
数据传输共 7 个 RTT,加上建连 1 个 RTT,共 8 个 RTT。
平均发送速率:
评分标准
- (1)表格 cwnd 与阶段正确(每行 1 分,共 5 分;注意第 3 行封顶取 3、第 4-5 行 +1)
- (2)4 个 ACK 确认号均为 10001 及原因(3 分)
- (2)快重传 + 快恢复、ssthresh = 2、cwnd = 2(3 分)
- (3)总 RTT = 8(1 + 7)(2 分)
- (3)平均速率 = 180000 bps(2 分)
本题改编自 2023 统考真题 47 题(TCP 拥塞控制 + 文件传输时间:连续收到 4 个相同确认序号触发快重传快恢复、阈值 = 窗口/2、建连 1RTT + 传输若干 RTT 及平均速率计算)。
✅ 卷后自查清单¶
| 检查项 | 说明 |
|---|---|
| UDP 校验和 | 16 位字求和 → 溢出回卷 → 取反码;接收方四字相加得全 1 表示无错 |
| 窗口与序号 | GBN:W ≤ 2ⁿ−1;SR(收发窗口相等):W ≤ 2ⁿ⁻¹ |
| TCP 序号/确认号 | 序号 = 数据首字节编号;确认号 = 期望的下一个字节(累积确认) |
| 拥塞控制 | 慢开始翻倍 → 撞阈值转拥塞避免 +1 → 超时 cwnd=1 / 3 冗余 ACK 减半快恢复 |
| 分片三字段 | 标识(同一数据报)、MF(是否还有后续片)、片偏移(单位 8B) |
| 单位陷阱 | 首部长度 4B / 总长度 1B / 片偏移 8B |
| NAT 关键 | 路由器改写 IP 地址与传输层端口号,靠 WAN 端口区分内网连接 |
🚪 下一站预告¶
传输层与 IP 编址过关后,下一份测验进入 网络层控制平面与链路层——Dijkstra/DV 路由算法、OSPF/RIP/BGP、CRC 检错、CSMA/CD 最短帧长与交换机转发,路由与链路层的大题将在这里登场。👉 进入单元测验 3(第 5-6 章)→