第五章传输层¶
一、 单选题答案速对¶
| 年份-题号 | 考查知识点 | 正确答案 |
|---|---|---|
| 2014-39 | UDP协议特性 | B |
| 2018-39 | UDP分用依据 | B |
| 2024-39 | UDP校验和计算 | C |
| 2009-38 | TCP序号与确认号 | D |
| 2010-39 | TCP流量控制 | A |
| 2011-39 | TCP三次握手标志 | C |
| 2011-40 | TCP累计确认机制 | B |
| 2013-39 | TCP序号与确认号 | B |
| 2015-39 | TCP拥塞与流量控制 | A |
| 2019-38 | TCP快速重传 | C |
| 2019-39 | TCP三次握手序号 | D |
| 2020-39 | TCP连接管理序号 | C |
| 2022-39 | TCP四次挥手时间 | D |
| 2024-38 | TCP连接与状态转换 | D |
| 2009-39 | TCP拥塞控制(超时) | C |
| 2014-38 | TCP拥塞控制计算 | A |
| 2017-39 | TCP拥塞控制时间 | A |
| 2020-38 | TCP拥塞控制(最长) | D |
| 2022-38 | TCP拥塞控制恢复 | C |
二、 综合题答案速对¶
| 年份-题号 | 考查知识点 | 核心答案速记 |
|---|---|---|
| 2023-47 | FTP、TCP连接与拥塞控制 | (1) 控制连接持久,数据连接非持久;登录建立的是控制连接 (2) 首字节序号 101;第二次挥手ACK序号 18102 (FIN序号18101+1) (3) ack=2101时 \(cwnd=\) 3MSS (3000B);ack=7101时 \(cwnd=\) 5MSS (5000B) (4) 最短时间 6RTT = 60ms;平均速率 300 kB/s |
| 2012-47 | IP分组、TTL、TCP握手与帧长 | (1) H发送:1, 3, 4;建立连接:1, 2, 3;以太网填充:3, 5 (长度40B < 46B) (2) S已收到应用层数据:16B (确认号差值 \(0xd6 - 0xc6 = 16\)) (3) 经过路由器数量:\(64 - 49 =\) 15台 |
| 2016-41 | TCP连接管理、流量与拥塞控制 | (1) 第二次握手:SYN=1, ACK=1,确认序号 101 (2) 第8个确认段:\(rwnd=\) 12KB,\(cwnd=\) 9KB,发送窗口 \(W=\min(9,12)=\) 9KB (3) 零窗口下一序号:20581;平均速率 20 KB/s (或 163.84 kbit/s) (4) S释放连接最短时间:300ms (\(\frac{3}{2}\) RTT) |
(一)传输层提供的服务¶
- 传输层的功能
- 传输层寻址与端口
- 无连接服务与面向连接服务
(二)UDP 协议¶
Tip
- UDP 数据报
- UDP 校验
- 【2014-39】下列关于 UDP 协议的叙述中,正确的是( )。
I. 提供无连接服务
II. 提供复用/分用服务
III. 通过差错校验,保障可靠数据传输
A. 仅I
B. 仅I、II
C. 仅II、III
D. I、II、III
解析
答案:B(仅 I、II)。
- I 正确。UDP 发送数据前不建立连接,每个 UDP 数据报独立处理。
- II 正确。发送端通过端口号完成复用,接收端依据目的端口号把数据报交付给相应进程,即分用。
- III 错误。UDP 校验和只能检测传输差错,不能负责重传、排序或重复消除,因此不能保证可靠交付。校验失败的数据报通常直接丢弃。
视频讲解: 【2014年 题39】UDP 协议(P9)
- 【2018-39】UDP 协议实现分用 (demultiplexing) 时所依据的头部字段是( )。
A. 源端口号
B. 目的端口号
C. 长度
D. 校验和
解析
答案:B(目的端口号)。
接收主机需要判断该 UDP 数据报应交给哪个应用进程,因此查看 UDP 首部的目的端口号。源端口号主要用于标识发送进程,并为对方回复数据提供端口信息;长度和校验和都不承担分用功能。
- 【2024-39】若 UDP 协议在计算校验和过程中,计算机得到中间结果为 1011 1001 1011 0110 时,还需要加上最后一个 16 位数 0110 0101 1100 0101,则最终计算得到的校验和是
A. 0001 1111 0111 1011
B. 0001 1111 0111 1100
C. 1110 0000 1000 0011
D. 1110 0000 1000 0100
解析
答案:C(1110 0000 1000 0011)。
UDP 使用 16 位反码加法。
1011 1001 1011 0110 (0xB9B6)
+ 0110 0101 1100 0101 (0x65C5)
=1 0001 1111 0111 1011 (0x11F7B)最高位产生进位,按回卷进位规则把它加到低 16 位:
0001 1111 0111 1011 + 1
= 0001 1111 0111 1100上式是反码和。再逐位取反,得到校验和:
1110 0000 1000 0011(三)TCP 协议¶
TCP 段¶
TCP 连接管理¶
- 【2009-38】主机甲与主机乙之间已建立一个 TCP 连接,主机甲向主机乙发送了两个连续的 TCP 段,分别包含 300 字节和 500 字节的有效载荷,第一个段的序列号为 200 ,主机乙正确接收到两个段后,发送给主机甲的确认序列号是( )。
A. 500
B. 700
C. 800
D. 1000
解析
答案:D(1000)。
TCP 序号按字节编号。第一个段占用序号 200~499,第二个段紧接着占用 500~999。累计确认号表示“下一个期望收到的字节序号”,所以乙返回 ack=1000。
- 【2010-39】主机甲和主机乙之间已建立了一个 TCP 连接,TCP 最大段长度为 1000 字节。若主机甲的当前拥塞窗口为 4000 字节,在主机甲向主机乙连续发送两个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的接收窗口大小为 2000 字节,则此时主机甲还可以向主机乙发送的最大字节数是( )。
A. 1000
B. 2000
C. 3000
D. 4000
解析
答案:A(1000B)。
实际发送窗口为拥塞窗口和接收窗口的较小者:
收到第一个段的确认后,第二个 1000B 段仍未被确认,占用发送窗口。因此还能发送:
视频讲解: 【2010年 题39】TCP 流量控制(P3)
- 【2011-39】主机甲向主机乙发送一个 (SYN=1, seq=11220) 的 TCP 段,期望与主机乙建立 TCP 连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的 TCP 段可能是
A. (SYN=0, ACK=0, seq=11221, ack=11221)
B. (SYN=1, ACK=1, seq=11220, ack=11220)
C. (SYN=1, ACK=1, seq=11221, ack=11221)
D. (SYN=0, ACK=0, seq=11220, ack=11220)
解析
答案:C。
第二次握手必须同时置 SYN=1 和 ACK=1。SYN 虽不携带应用数据,但要占用一个序号,所以乙必须确认 11220+1=11221,即 ack=11221。乙自己的初始序号可以独立选择,因此选项 C 中的 seq=11221 是可能值。
- 【2011-40】主机甲与主机乙之间已建立一个 TCP 连接,主机甲向主机乙发送了 3 个连续的 TCP 段,分别包含 300 字节、400 字节和 500 字节的有效载荷,第 3 个段的序号为 900。若主机乙仅正确接收到第 1 和第 3 个段,则主机乙发送给主机甲的确认序号是
A. 300
B. 500
C. 1200
D. 1400
解析
答案:B(500)。
第 3 段从 900 开始,因此第 2 段的起始序号为 900-400=500,第 1 段的起始序号为 500-300=200。乙已经收到第 1 段,但缺少从 500 开始的第 2 段;即使第 3 段已到达,TCP 仍使用累计确认,故返回 ack=500。
- 【2013-39】主机甲与主机乙之间已建立一个TCP连接,双方持续有数据传输,且数据无差错与丢失。若甲收到1个来自乙的TCP段,该段的序号为 1913、确认序号为 2046、有效载荷为 100 字节,则甲立即发送给乙的TCP段的序号和确认序号分别是( )。
A. 2046、2012
B. 2046、2013
C. 2047、2012
D. 2047、2013
解析
答案:B(2046、2013)。
乙发来的 ack=2046 表明乙期望甲下一次从序号 2046 开始发送,所以甲回发段的序号为 2046。乙本段从 1913 开始携带 100B,占用 1913~2012,故甲下一步期望收到 2013,确认号为 2013。
- 【2015-39】主机甲和主机乙新建一个TCP连接,甲的拥塞控制初始阈值为32 KB,甲向乙始终以MSS=1 KB大小的段发送数据,并一直有数据发送;乙为该连接分配16 KB接收缓存,并对每个数据段进行确认,忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未发生超时的情况下,经过4个RTT后,甲的发送窗口是( )。
A. 1 KB
B. 8 KB
C. 16 KB
D. 32 KB
解析
答案:A(1KB)。
初始 cwnd=1 MSS,仍处于慢开始。前 4 个 RTT 各轮发送 1、2、4、8 个段,共向接收缓存写入:
第 4 个 RTT 后,拥塞窗口已增长到 16KB,但乙的 16KB 缓存只剩 16-15=1KB,即 rwnd=1KB。因此实际发送窗口为:
视频讲解: 【2015年 题39】TCP 拥塞控制(P10)
- 【2019-38】 某客户通过一个TCP连接向服务器发送数据的部分过程如题38图所示。客户在t0时刻第一次收到确认序列号ack_seq=100的段,并发送序列号seq=100的段,但发生丢失。若TCP支持快速重传,则客户重新发送seq=100段的时刻是( )。

A. t1
B. t2
C. t3
D. t4
解析
答案:C()。
服务器缺少 seq=100,之后每收到一个失序段都会重复发送 ack_seq=100。客户在 依次收到 3 个重复 ACK。快速重传规则是在收到 3 个重复确认时立即重传缺失段,不必等到
超时,因此重传时刻为
。
视频讲解: 【2019年 题38】TCP 快速重传(P14)
- 【2019-39】若主机甲主动发起一个与主机乙的TCP连接,甲、乙选择的初始序列号分别为2018和2046,则第三次握手TCP段的确认序列号是( )。
A. 2018
B. 2019
C. 2046
D. 2047
解析
答案:D(2047)。
第二次握手中乙发送 SYN=1, seq=2046。SYN 占用一个序号,所以甲在第三次握手中确认乙的下一个序号:ack=2046+1=2047。
- 【2020-39】若主机甲与主机乙建立TCP连接时,发送的SYN段中的序号为1000,在断开连接时,甲发送给乙的FIN段中的序号为5001,则在无任何重传的情况下,甲向乙已经发送的应用层数据的字节数为( )。
A. 4002
B. 4001
C. 4000
D. 3999
解析
答案:C(4000B)。
SYN 占用序号 1000,因此第一个应用数据字节的序号是 1001。FIN 的序号 5001 是发送完全部数据后的下一个序号,故数据量为:
FIN 本身也占用一个序号,但它位于应用数据之后,不计入本题的数据字节数。
- 【2022-39】假设客户C和服务器S已建立一个TCP连接、通信往返时间RTT=50 ms,最长报文段寿命MSL=800 ms,数据传输结束后,C主动诸求断开连接。若从C主动向S发出FIN段时刻算起,则C和S进入CLOSED状态所需的时间至少分别是( )。
A. 850 ms,50 ms
B. 1650 ms,50 ms
C. 850 ms,75 ms
D. 1650 ms,75 ms
解析
答案:D(1650ms,75ms)。
单向传播时延为 RTT/2=25ms。最短情况下,S 收到 C 的 FIN 后立即发 ACK 和自己的 FIN。
- C 在
50ms时收到 S 的 FIN,发送最后一个 ACK 并进入 TIME-WAIT;等待2MSL=1600ms后关闭,所以共50+1600=1650ms。 - S 在
25ms时收到 C 的 FIN并发出 FIN,在75ms时收到 C 的最后 ACK,随即进入 CLOSED。
- 【2023-47】(9分)某网络拓扑如题47图所示,主机H登录FTP服务器后自服务器上估一个大小为18000B的文件F,假设H传输F建立数据连接时,选择的初始序号为100,MSS=1000B,拥塞控制初始阈值为4MSS,RTT=10ms,忽略TCP的传输时延,在F的传输过程中,H以MSS段向服务器发送数据,且未发生差错。丢包和乱序。

(1) FTP的控制连接是持久的还是非持久的?FTP的数据连接是持久的还是非持久的?H登录FTP服务器时,建立的TCP连接是控制连接还是数据连接?
(2) H通过数据连接发送F时,F的第一个字节序号是多少?在断开数据连接的过程中,FTP发送的第二次挥手的ACK序号是?
(3) F发送过程中,当H收到确认序号为2101的确认段时,H的拥塞窗口调整为多少?收到确认序号为7101的确认段时,H的拥塞窗调整为多少?
(4) H从请求建立数据连接开始,到确认F已被服务器全部接收为止,至少需要多长时间,期间应用层数据平均发送速率是多少?
解析
答案与解析:
(1)FTP 连接类型
- FTP 控制连接是持久连接,通常在整个 FTP 会话期间保持。
- FTP 数据连接是非持久连接,每次传送文件或目录时单独建立,传送完成后关闭。
- H 登录 FTP 服务器时建立的是控制连接,用于传送用户名、口令和 FTP 命令。
(2)数据序号与第二次挥手
H 的初始序号为 100,建立连接的 SYN 占用一个序号,因此文件第一个字节的序号为:
18000B 数据占用序号 101~18100,随后 H 发送 FIN,FIN 的序号为 18101。服务器在第二次挥手中确认该 FIN,因此 ACK 序号为:
(3)拥塞窗口
- 初始
cwnd=1MSS。收到第 1 个数据段的确认ack=1101后,cwnd=2MSS。 - 下一轮发两个段。收到
ack=2101时刚确认其中第一个段,仍在慢开始,故cwnd=3MSS。 - 收到
ack=3101后达到门限4MSS,转入拥塞避免。再发送 4 个段;到ack=7101时这一轮的 4 个段全部确认,拥塞窗口增加 1MSS,变为5MSS。
所以两问分别为 3MSS(3000B)和 5MSS(5000B)。
(4)最短时间与平均速率
建立数据连接需要 1RTT。之后各 RTT 可发送的段数依次为:

文件恰好包含 18000/1000=18 个段,数据传送并得到全部确认需要 5RTT。连同建立连接的 1RTT,总时间为:
应用层平均发送速率为:
- 【2024-38】假设主机 H 通过 TCP 向服务器发送长度为 3000 B 的报文,往返时间 RTT = 10 ms,最长报文寿命 MSL = 30 s,最大报文段长度 MSS = 1000 B,忽略 TCP 段的传输时延,报文结束后 H 首先请求断开连接,则从 H 请求建立 TCP 连接时刻起,到 H 进入 CLOSED 状态为止,所需的时间至少是
A. 30.03 s
B. 30.04 s
C. 60.03 s
D. 60.04 s
解析
答案:D(60.04s)。
TCP 初始拥塞窗口为 1MSS,并采用慢开始。3000B 报文被分成 3 个 1000B 段:第 1 个数据 RTT 只能发送 1 段,收到确认后 cwnd 增至 2MSS;第 2 个数据 RTT 再发送余下 2 段。
- 建立连接:1RTT = 10ms。
- 发送 3 个段并收到全部确认:2RTT = 20ms。
- H 发 FIN,收到服务器 FIN 后发出最后 ACK并进入 TIME-WAIT:最短 1RTT = 10ms。
- TIME-WAIT 持续
2MSL=60s。
总时间为:
- 【2012-47】(9 分)主机 H 通过快速以太网连接 Internet,IP 地址为 192.168.0.8,服务器 S 的 IP 地址为 211.68.71.80。H 与 S 使用 TCP 通信时,在 H 上捕获的其中 5 个 IP 分组如题 47-a 表所示。

请回答下列问题。
(1) 题 47-a 表中的 IP 分组中,哪几个是由 H 发送的?哪几个完成了 TCP 连接建立过程?哪几个在通过快速以太网传输时进行了填充?
(2) 根据题 47-a 表中的 IP 分组,分析 S 已经收到的应用层数据字节数是多少?
(3) 若题 47-a 表中的某个 IP 分组在 S 发出时的前 40 字节如题 47-b 表所示,则该 IP 分组到达 H 时经过了多少个路由器?

注:IP 分组头和 TCP 段头结构分别如下图所示。

解析
(1)分组方向、三次握手与以太网填充
IPv4 首部中的源、目的地址各占 4B:
- H:
192.168.0.8 = c0 a8 00 08 - S:
211.68.71.80 = d3 44 47 50
由此可见,分组 1、3、4 的源地址为 H,因此由 H 发送;分组 2、5 由 S 发送。
再看 TCP 标志位和序号:
- 分组 1:H 发送 SYN,第一次握手。
- 分组 2:S 发送 SYN+ACK,第二次握手。
- 分组 3:H 发送 ACK,第三次握手。
所以完成 TCP 连接建立的是分组 1、2、3。
快速以太网的数据字段最少为 46B。分组 3、5 的 IP 总长度字段均为 0x0028=40B,小于 46B,封装成以太网帧时各需填充 6B。因此进行了填充的是分组 3、5。
(2)S 已收到的应用层数据量
分组 5 是 S 发给 H 的确认段,其确认号为:
84 6b 41 d6H 在第一次握手中的初始序号为 84 6b 41 c5;SYN 占用一个序号,所以第一个数据字节从 84 6b 41 c6 开始。累计确认到 84 6b 41 d6 表示已收到:
也可由分组 4 验证:IP 总长度为 0x38=56B,IP 首部和 TCP 首部各 20B,应用数据为 56-20-20=16B。
所以 S 已收到 16B 应用层数据。
(3)经过的路由器数量
表 2 中分组离开 S 时的 TTL 为 0x40=64。它与捕获分组 5 的 TCP 序号、确认号完全相同;分组 5 到达 H 时 TTL 为 0x31=49。每经过一个路由器 TTL 减 1,因此:
该分组到达 H 前经过了 15 台路由器。
- 【2016-41】(9分)假设题33~41图中的H3访问Web服务器S时,S 为新建的TCP连接分配了 20 KB (K=1024) 的接收缓存,最大段长 MSS=1 KB,平均往返时间 RTT=200 ms。H3 建立连接时的初始序号为 100,且持续以 MSS 大小的段向S发送数据,拥塞窗口初始阈值为 32 KB;S对收到的每个段进行确认,并通告新的接收窗口。假定 TCP 连接建立完成后,S 端的 TCP 接收缓存仅有数据存入而无数据取出。请回答下列问题。

(1) 在TCP连接建立过程中,H3收到的S发送过来的第二次握手TCP段的SYN和ACK标志位的值分别是多少?确认序号是多少?
(2) H3收到的第8个确认段所通告的接收窗口是多少?此时H3的拥塞窗口变为多少?H3的发送窗口变为多少?
(3) 当H3的发送窗口等于0时,下一个待发送的数据段序号是多少?H3从发送第1个数据段到发送窗口等于0时刻为止,平均数据传输速率是多少(忽略段的传输延时)?
(4) 若H3与S之间通信已经结束,在t时刻H3请求断开该连接,则从t时刻起,S释放该连接的最短时间是多少?
解析
(1)第二次握手
S 接受连接时发送 SYN+ACK 段,因此 SYN=1,ACK=1。H3 的 SYN 序号为 100,S 确认下一个序号,故确认号为:
(2)第 8 个确认段到达时的窗口
S 已收到 8 个 1KB 数据段,20KB 缓存还剩:
初始 cwnd=1KB,慢开始阶段每确认一个新段,拥塞窗口增加 1MSS。收到第 8 个确认后:
实际发送窗口为:
所以三项依次为 12KB、9KB、9KB。
(3)零窗口时的下一序号与平均速率
第一个数据字节序号为 101。接收缓存装满 20KB,即接收 20×1024=20480B 后,下一个待发送字节序号为:
发送轮次如下:

从第一个数据段发出到收到零窗口通告共 5RTT=1s,平均速率为:
等价地写成字节速率为 20KB/s。
(4)S 释放连接的最短时间
H3 在 时刻发 FIN,经过
RTT/2=100ms 到达 S。S 立即回复 ACK并发送自己的 FIN;该 FIN 再经过 100ms 到达 H3,H3 立即发送最后 ACK,再经 100ms 到达 S。S 收到最后 ACK 后进入 CLOSED。
因此最短时间为:
TCP 可靠传输¶
TCP 流量控制¶
TCP 拥塞控制¶
- 【2009-39】一个 TCP 连接总是以 1 KB 的最大段长发送 TCP 段,发送方有足够多的数据要发送。当拥塞窗口为 16 KB 时发生了超时,如果接下来的 4 个 RTT(往返时间)时间内的 TCP 段的传输都是成功的,那么当第 4 个 RTT 时间内发送的所有 TCP 段都得到肯定应答时,拥塞窗口大小是( )。
A. 7 KB
B. 8 KB
C. 9 KB
D. 16 KB
- 【2014-38】主机甲和主机乙已建立了TCP连接,甲始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为10KB的确认段。若甲在t时刻发生超时时拥塞窗口为8KB,则从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发送窗口是( )。
A. 10KB
B. 12KB
C. 14KB
D. 15KB
解析
答案:A(10KB)。
超时后 ssthresh=4KB,cwnd=1KB。前两个 RTT 慢开始使拥塞窗口依次变为 2KB、4KB;之后进入拥塞避免,每 RTT 增加 1KB。剩余 8 个 RTT 后:
但接收窗口始终为 10KB,所以实际发送窗口为:
- 【2017-39】若甲向乙发起一个TCP连接,最大段长MSS=1KB,RTT=5ms,乙开辟的接收缓存为64KB,则甲从连接建立成功至发送窗口达到32KB,需经过的时间至少是( )。
A. 25 ms
B. 30 ms
C. 160 ms
D. 165 ms
解析
答案:A(25ms)。
接收窗口 64KB 不构成限制。慢开始时拥塞窗口每 RTT 加倍:
1KB → 2KB → 4KB → 8KB → 16KB → 32KB从 1KB 增长到 32KB 需要 5 个 RTT,故最少时间为 5×5ms=25ms。
- 【2020-38】若主机甲与主机乙已建立一条TCP连接,最大段长 (MSS) 为1 KB,往返时间 (RTT) 为2 ms,则在不出现拥塞的前提下,拥塞窗口从8 KB增长到32 KB所需的最长时间是( )。
A. 4 ms
B. 8 ms
C. 24 ms
D. 48 ms
解析
答案:D(48ms)。
求“最长时间”,应按增长较慢的拥塞避免阶段计算。拥塞避免中每经过一个 RTT,拥塞窗口约增加 1MSS=1KB。从 8KB 增至 32KB 需要:
时间为 24×2ms=48ms。
视频讲解: 【2020年 题38】TCP 拥塞控制(P16)
- 【2022-38】假设主机甲和主机乙已建立一个TCP连接,最大段长MSS=1 KB,甲一直有数据向乙发送,当甲的拥塞窗口为16 KB时,计时器发生了超时,则甲的拥塞窗口再次增长到16 KB所需要的时间至少是( )。
A. 4 RTT
B. 5 RTT
C. 11 RTT
D. 16 RTT
解析
答案:C(11RTT)。
超时后:
慢开始经过 3 个 RTT,cwnd 依次变为 2KB、4KB、8KB。达到门限后进入拥塞避免,从 8KB 增长到 16KB,每 RTT 增加 1KB,还需 8 个 RTT。因此总时间为:
视频讲解: 【2022年 题38】TCP 拥塞控制(P21)
原始导出未包含图片:q14.png
