计算机网络摘星题库800题笔记 第5章 传输层
第5章 传输层
§5.1 传输层概述
题组闯关
1.Internet 传输层滑动窗口协议规定 ( )。
A. 网络接收分组的最低效率,只需要重传未被确认的分组
B. 固定的窗口大小,只需要重传未被确认的分组
C. 网络接收分组的最低效率,固定的窗口大小
D. 未被确认的分组数最多为窗口的大小,只需要重传未被确认的分组1.【参考答案】D
【解析】TCP 采用序列号、确认、滑动窗口协议等机制来实现端到端节点之间可靠的数据传输。其中,滑动窗口协议规定未被确认的分组数最多为窗口的大小,且只需要重传未被确认的分组。2.传输层的数据传输任务是在两个传输实体之间传输用户数据和控制数据,一般 ( )。
A. 采用全双工服务
B. 采用半双工服务
C. 可以采用单工服务
D. 以上都不正确2.【参考答案】A
【解析】传输层的数据传输任务是在两个传输实体之间传输用户数据和控制数据,一般采用全双工服务,个别场合也可以采用半双工服务。也就是说,如果两台计算机建立了 TCP 连接,那么这两台计算机都可以同时向连接中发送数据或接收数据。真题实战
下列协议不属于 TCP/IP 协议簇中的协议是 ( )。 【中国科技大学 2013 年】
A. HDLC
B. TCP
C. DNS
D. BOOTP【参考答案】A
【解析】高级数据链路控制(High - Level Data Link Control 或简称 HDLC),是一个在同步网上传输数据、面向比特的数据链路层协议。DNS 协议用于实现网络 IP 地址和主机域名的映射,基于 IP 协议。BOOTP(Bootstrap Protocol,引导程序协议)是一种引导协议,基于 IP 协议。§5.2 端口和套接字
题组闯关
1.传输层端口号分为 3 类,分别是 ( )。
A. 熟知端口号、注册端口号和临时端口号
B. 熟知端口号、注册端口号和永久端口号
C. 熟知端口号、注册端口号和客户端口号
D. 熟知端口号、注册端口号和系统端口号1.【参考答案】A
【解析】传输层端口号被分为三类,分别是熟知端口号、注册端口号和临时端口号。故选 A。2.TCP 协议除了通过 IP 地址以外,还需要通过 ( ) 来区分不同的连接。
A. IP 地址
B. 协议号
C. 端口号
D. MAC 地址2.【参考答案】C
【解析】在 TCP/IP 协议中,通过 IP 地址 + 端口号来区分不同的连接。3.套接字中包含的内容为( )。
A. IP 地址和硬件地址
B. IP 地址和端口号
C. MAC 地址和端口号
D. 主机名3.【参考答案】B
【解析】TCP 协议和 UDP 协议使用套接字来标识唯一的地址,套接字 Socket = {IP 地址:端口号}。故选 B。真题实战
1.下列 TCP 端口号中不属于熟知端口号的是( )。 【浙江大学 2012 年】
A. 21
B. 23
C. 80
D. 32101.【参考答案】D
【解析】熟知端口就是我们在使用网络进行通讯时常常会用到的端口,数值为 0 ~ 1023。这些端口号被指派给了 TCP/IP 最重要的一些应用进程。当一种新的应用程序出现后,常被指派一个熟知端口号,否则因特网上的其他应用进程就无法和它进行通信。2.关于端口描述,正确的是( )。 【重庆大学 2017 年】
A. TCP 和 UDP 共享端口空间
B. TCP 使用端口,UDP 不使用端口
C. TCP 不使用端口,UDP 使用端口
D. TCP 和 UDP 各自有独立的端口空间2.【参考答案】D
【解析】传输层完成端到端传输依靠的是套接字(IP + 端口号),因此无论哪个协议都需要端口号。如果 UDP 和 TCP 共用端口的话,若一个主机同时使用 UDP 和 TCP 协议,则可能会出现冲突。§5.3 UDP 协议
考点 1 UDP 协议概述
题组闯关
1.下列关于 TCP 和 UDP 端口的说法,正确的是 ( )。
A. TCP 和 UDP 分别拥有自己的端口号,可以共存于一台主机
B. TCP 和 UDP 分别拥有自己的端口号,但不能共存于一台主机
C. TCP 和 UDP 的端口没有本质区别,但不能共存于一台主机
D. TCP 和 UDP 共用端口号,可以共存于同一台主机1.【参考答案】A
【解析】端口号只具有本地意义,即端口号只是为了标识本计算机应用层中的各进程,且同一台计算机中 TCP 和 UDP 分别拥有自己的端口号,它们互不干扰。故选 A。2.下列关于 UDP 的说法哪一项是正确的 ( )。
A. UDP 不能用于多播
B. UDP 的检验和是可选的
C. UDP 不能复用 / 分用
D. 接收方发现收到的 UDP 数据报有差错时,会请求发送方重新传送该数据报2.【参考答案】B
【解析】选项 A:UDP 信息传递的方式分三类:(1) 单播 Unicast:是客户端与服务器之间的点到点连接。(2) 广播 BroadCast:主机之间 “一对所有” 的通讯模式,广播者可以向网络中所有主机发送信息。广播禁止在 Internet 宽带网上传输(广播风暴)。(3) 多播 MultiCast:主机之间 “一对一组” 的通信模式,也就是加入了同一个组的主机可以接收到此组内的所有数据。选项 B:UDP 和 TCP 在首部中都有覆盖它们首部和数据的检验和。UDP 的检验和是可选的,而 TCP 的检验和是必需的。
选项 C:TCP 和 UDP 是使用不同的套接字标识符来实现分用和复用,TCP 使用四元组(源 IP,源端口,目标 IP,目标端口)来标识一个 TCP 套接字,而 UDP 使用的是二元组(源端口,目标端口)来标识。
选项 D:接收方发现收到的 UDP 数据报有差错时,直接丢弃。
真题实战
1.UDP 数据报比 IP 数据报多提供了 ( ) 服务。 【华中科技大学 2018 年】
A. 流量控制
B. 拥塞控制
C. 端口功能
D. 路由转发1.【参考答案】C
【解析】UDP 和 IP 虽然都是数据报协议,但二者还是有差别的。其中最大的差别就是 IP 数据报只能找到目的主机而无法找到目的进程,UDP 通过端口的复用和分用功能,可以将数据报递交给对应的进程。所以,选项 C 为正确答案。2.如果用户程序使用 UDP 协议进行数据传输,那么 ( ) 协议必须承担可靠性方面的全部工作。 【沈阳工业大学 2016 年】
A. 数据链路层
B. 网络层
C. 传输层
D. 应用层2.【参考答案】D
【解析】传输层 UDP 协议采取的是尽力而为的交付,不保证可靠性,这种情况下数据的可靠性应该由其上层应用层协议来保证。所以选项 D 是正确答案。3.如果用户应用程序使用 UDP 协议进行数据传输,那么下面哪一部分程序必须承担可靠性方面的全部工作 ( )。 【桂林电子科技大学 2015 年】
A. 数据链路层程序
B. 互联网层程序
C. 传输层程序
D. 用户应用程序3.【参考答案】D
【解析】传输层 UDP 提供的是无连接的不可靠的服务,所以用户应用程序使用 UDP 传输数据时可靠性无法保证,它还要承担可靠性方面的全部工作。因此,选项 D 为正确答案。4.关于 UDP 伪首部的描述正确的是 ( )。 【重庆大学 2013 年】
A. 伪首部不是报文首部而是数据
B. 伪首部字段的内容放在 UDP 首部后面
C. 伪首部是逻辑上的字段,不会占用 UDP 额外的报文空间
D. 伪首部的作用是表示 UDP 报文的目的和源地址4.【参考答案】C
【解析】UDP 伪首部的作用仅是为了计算校验和,这里的 “伪” 即 “假”,不仅是 “假” 首部(并不是 UDP 用户数据报的真正首部),而且 “假” 到连地址空间都没有,也就是说,伪首部是不占地址空间的,在实际传输中不存在这样的字段,只是在需要时用一下,即只是在计算检验和时,临时添加在 UDP 用户数据报前面,得到一个临时的 UDP 用户数据报。伪首部只用于计算和验证校验和,既不向下传送也不向上递交。所以伪首部是逻辑上的字段,不会占用 UDP 额外的报文空间。选项 C 为正确答案。考点 2 UDP 首部格式
题组闯关
UDP 数据报的最短长度为 ( )。
A. 2B
B. 6B
C. 8B
D. 16B【参考答案】C
【解析】UDP 头部结构 8B,包括 16 位源端口号、16 位目的端口号、16 位 UDP 数据报的长度、16 位 UDP 校验和。真题实战
UDP 协议实现分用(demultiplexing)时所依据的头部字段是 ( )。 【全国统考 2018 年】
A. 源端口号
B. 目的端口号
C. 长度
D. 校验和【参考答案】B
【解析】传输层的复用 / 分用是通过端口来实现的。传输层的分用是指从 IP 层收到数据后必须交付指明的应用进程。在接收方,传输层在去掉 UDP 首部后能够将这些数据正确交付到目的应用进程(一对多)。传输层使用端口号区分各种不同的应用程序。当传输层从 IP 层收到 UDP 数据报时,就根据首部中的目的端口,把 UDP 数据报通过相应端口上交应用进程。在 UDP 首部格式中,源端口字段在需要对方回信时选用,不需要时可用全 0。目的端口号在终点交付报文时必须要使用到。长度字段表示 UDP 用户数据报的长度,而检验和字段是用来检测 UDP 用户数据报在传输中是否有错(有错就丢弃)的。综上,选项 B 为正确答案。考点 3 UDP 校验
题组闯关
下列用于计算 UDP 校验和字段值的 ( ) 不属于 UDP 数据报中的内容。
A. UDP 伪首部
B. UDP 数据部分
C. UDP 长度
D. UDP 源端口号【参考答案】A
【解析】计算 UDP 校验和字段值要用到 UDP 伪首部、UDP 首部和 UDP 的数据部分。其中,UDP 伪首部都是在计算 UDP 校验和字段值时临时生成的,仅为校验和计算而构造,不属于 UDP 数据报中的内容。§5.4 TCP 协议
考点 1 TCP 概述
题组闯关
1.在 TCP 连接中,如果已经接收了 800B 的数据,那么在发送回的数据包头中,确认号为 ( )。
A. 799
B. 800
C. 801
D. 7981.【参考答案】C
【解析】确认号表示接下来希望接收数据的序列号,成功接收 800B 之后,TCP 连接希望接收 801 号字节,所以确认号应该是 801。故选 C。应当记住:若确认号 = N,则表明,到序号 N - 1 为止的所有数据都已正确收到。2.关于主机和路由器,以下说法错误的是 ( )。
A. 路由器必须实现 TCP 协议
B. 主机通常需要实现 TCP 协议
C. 主机通常需要实现 IP 协议
D. 路由器必须实现 IP 协议2.【参考答案】A
【解析】主机作为终端设备,需要实现 TCP/IP 协议中的所有层次协议,而路由器作为网络层设备,仅实现物理层、链路层和网络层三个层次的协议,TCP 是传输层协议,因此路由器不需要。故选项 A 为正确答案。3.下列选项中,传输层协议使用 TCP 的是 ( )。
A. DNS
B. RIP
C. TELNET
D. TFTP3.【参考答案】C
【解析】DNS、RIP、TFTP 都是使用 UDP 来传输的,只有 TELNET 使用 TCP 来传输。故选 C。4.下列选项中,TCP 首部中有但是 UDP 首部中没有的是 ( )。
A. 目标端口号
B. 源端口号
C. 校验号
D. 序号4.【参考答案】D
【解析】本题是对 TCP 报文段和 UDP 数据报结构知识点的考查,请参考补充知识点。显然 TCP 数据报和 UDP 数据报都包含目标端口、源端口、校验号。但是由于 UDP 是不可靠的传输,故帧不需要编号,所以不会有序号这一字段;而 TCP 是可靠的传输,故需要设置序号这一字段。故选项 D 为正确答案。真题实战
1.主机甲和主机乙新建一个 TCP 连接,甲的拥塞控制初始阈值为 32KB,甲向乙始终以 MSS = 1KB 大小的段发送数据,并一直有数据发送;乙为该连接分配 16KB 接收缓存,并对每个数据段进行确认,忽略段传输延迟。若乙收到的数据全部存入缓存,不被取走,则甲从连接建立成功时刻起,未出现发送超时的情况下,经过 4 个 RTT 后,甲的发送窗口是 ( )。 【全国统考 2015 年】
A. 1KB
B. 8KB
C. 16KB
D. 32KB1.【参考答案】A
【解析】根据题意,经过 4 个 RTT 后,主机乙收到的数据全部存入缓存,不被取走,每个 RTT 主机乙收到的数据分别是 1KB、2KB、4KB、8KB(初始拥塞窗口为 1KB,每经过一个 RTT,拥塞窗口翻倍),题中主机乙分配的 16KB 接收缓存,所以此时接收窗口只剩下 1KB(16 - 1 - 2 - 4 - 8)。此时,主机甲的发送窗口为接收窗口和拥塞窗口的最小值,显然是 1KB。故,选项 A 为正确答案。2.主机甲和乙建立了 TCP 连接,甲始终以 MSS = 1KB 大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为 10KB 的确认段。若甲在 t 时刻发生超时的时候拥塞窗口为 8KB,则从 t 时刻起,不再发生超时的情况下,经过 10 个 RTT 后,甲的发送窗口是 ( )。 【全国统考 2014 年】
A. 10KB
B. 12KB
C. 14KB
D. 15KB2.【参考答案】A
【解析】本题考查慢开始算法和拥塞避免。根据题意,主机乙每收到一个数据段都会发出一个接收窗口为 10KB 的确认段,而主机甲维护两个窗口(即主机乙的接收窗口和拥塞窗口),且取两者的最小值作为发送窗口,所以从四个选项中可以直接选出答案 A(因为其他的都大于 10KB)。此题正规的解法如下:因为 t 时刻发生超时,所以把慢开始门限值 ssthresh 设为出现拥塞时发送窗口值的一半,即 8KB 的一半 4KB,且拥塞窗口设为 1KB,开始执行慢开始算法。当拥塞窗口大小小于慢开始门限时,采用 2 的指数增长方式,所以经过 1 个 RTT 后,拥塞窗口大小变为 2KB,经过 2 个 RTT 之后,拥塞窗口变为 22=4KB。此时,拥塞窗口大小等于门限值,开始执行拥塞避免算法,采用线性增长方式(加法增大每次加 1),在经过第 3、4、5、6、7、8、9、10 个 RTT 时,拥塞窗口依次变为 5KB、6KB、7KB、8KB、9KB、10KB、11KB、12KB。而主机甲的发送窗口取当时的拥塞窗口和接收窗口的最小值,即发送窗口大小 = min [接收窗口,拥塞窗口]。依据题意,接收窗口大小为 10KB,在经过 10 个 RTT 后,主机甲的发送窗口大小为 min [10KB、12KB] = 10KB。所以选项 A 为正确答案。
3.主机甲与主机乙之间已建立一个 TCP 连接,双方持续有数据传输,且数据无差错与丢失。若甲收到一个来自乙的 TCP 段,该段的序号为 1913、确认序号为 2046、有效载荷为 100B,则甲立即发送给乙的 TCP 段的序号和确认序号分别是 ( )。 【全国统考 2013 年】
A. 2046、2012
B. 2046、2013
C. 2047、2012
D. 2047、20133.【参考答案】B
【解析】本题考查 TCP 协议的可靠传输。TCP 首部中,序号字段和确认字段分别指 TCP 段中数据部分的第一个字节的序号和期望收到对方下一个报文段的第一个字节的序号。依据题意,已知主机甲收到了来自主机乙的 seq = 1913,ack = 2046,有效载荷 100B,则说明序号 1913 + 100 - 1 = 2012(注意,1913 ~ 2012 是 100B,1913 ~ 2013 是 101B)为止的所有数据主机甲都已收到,而乙期望收到的下一个报文段的序号从 2046 开始。所以,主机甲立即发送给主机乙的 TCP 段中的确认号是期望收到的下一个报文段的第一个字节的序号,即 ack = 2013;seq = 2046。故,选项 B 为正确答案。4.在 TCP 协议中,() 利用 () 调节向网络注入分组的速度,目的是对网络进行 ( )。 【北京工业大学 2018 年】
A. 发送端,发送窗口,时延测量
B. 发送端,发送窗口,拥塞控制
C. 接收端,接收窗口,时延测量
D. 接收端,接收窗口,拥塞控制4.【参考答案】B
【解析】所谓拥塞控制,就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。在解决拥塞问题时,TCP 协议发送端利用发送窗口调节网络注入分组的速度,要求发送端维护以下两个窗口:接收端窗口和拥塞窗口,取两者的最小值为发送窗口的上限值。所以,选项 B 为正确答案。5.下列关于 TCP 的叙述中,正确的是 ( )。 【沈阳工业大学 2016 年】
Ⅰ. TCP 是一个点到点的通信协议
Ⅱ. TCP 提供了无连接的可靠数据传输
Ⅲ. TCP 将来自上层的字节流组织成 IP 数据报,然后交给 IP
Ⅳ. TCP 将收到的报文段组成字节流交给上层
A. Ⅰ、Ⅱ、Ⅳ
B. Ⅰ、Ⅳ
C. 仅 Ⅳ
D. Ⅲ、Ⅳ5.【参考答案】C
【解析】TCP 在网络层的基础上,向应用层提供面向连接的、可靠的、全双工的端到端数据流传输服务,所以 TCP 是一个端到端的通信协议(而 IP 是点到点的通信协议),故 Ⅰ、Ⅱ 错误。IP 数据报由网络层数据加上 IP 数据报的首部构成,不是由上层字节流组成的,Ⅲ 错误。TCP 通过可靠传输连接将收到的报文段组成字节流,然后交给上层的应用进程,这就为应用进程提供了有序、无差错、不重复和不丢失的流传输服务,Ⅳ 正确。综上,选项 C 为正确答案。6.TCP 采用 ( ) 来实现流量控制和拥塞控制。 【浙江工商大学 2015 年】
A. 许可证法
B. 丢弃分组法
C. 预约缓冲区法
D. 滑动窗口技术6.【参考答案】D
【解析】流量控制是解决通信两端速率不匹配问题,TCP 采用滑动窗口机制来实现流量控制。故选 D。考点 2 TCP 首部格式
题组闯关
1.假设一个应用每秒产生 120B 的数据块,每个数据块被封装在一个 TCP 报文中,然后再封装到一个 IP 数据报中。那么最后每个数据报所含有的应用数据所占的百分比是 ( )。
A. 60%
B. 70%
C. 75%
D. 80%1.【参考答案】C
【解析】数据块首先被封装到一个 TCP 报文中(加入 TCP 头部),然后该 TCP 报文被封装到一个 IP 数据报中(加入 IP 头部),一个 TCP 的头部长度是 20B,一个 IP 头部的长度是 20B,数据部分为 120B,数据报的总长度为 20B+20B+120B=160B,其中数据占 120/160=75%。故选 C。2.一个 TCP 报文段的数据部分最多为 ( ) B。
A. 65495
B. 65535
C. 65515
D. 655252.【参考答案】A
【解析】IP 数据包最大为 65535B。而 IP 头部最少 20B,TCP 头部最少也是 20B。所以 TCP 报文所能传送的最长数据为 65535B−20B−20B=65495B。故选 A。3.一个 TCP 连接使用 128kbit/s 的链路,其端到端延时为 64ms,经测试发现吞吐量只有 64kbit/s,忽略数据封装的开销以及接收方应答分组的发射时间,可以计算出窗口大小为 ( ) B。
A. 2048
B. 4096
C. 6144
D. 81923.【参考答案】A
【解析】来回路程的时延等于 64ms×2=128ms,吞吐量为 64kbit/s,为发送速率的一半,说明链路中,发送端只有一半的时间在发送数据,另一半的时间被时延占据,则数据发送时间 = 来回路程的时延 = 128ms,设窗口值为 S,发送量等于窗口值时系统吞吐量等于 64kbit/s,其发送时间为 128ms,则 8S/(128×10^3)=128×10^−3。解得 S=128×1000×128×0.001/8=128×16(B),所以,窗口值为 2048B。故选 A。
4.某 TCP 分组的选项字段长度为 11B,则该 TCP 分组的数据偏移字段内容为 ( )。
A. 1000
B. 0111
C. 1111
D. 00114.【参考答案】A
【解析】TCP 分组报头由定长 20B 与不定长的选项字段和填充字段构成。TCP 分组的数据偏移字段表示 TCP 数据的开始位置,也即 TCP 报头的实际长度。这里提醒一个重要考点:TCP 报文的首部长度必须是 4B 的整数倍,由于这里报头长度为 20B+11B=31B,并不是 4B 的整数倍,所以需要填充 1B。也就是说,此 TCP 报文首部的长度为 32B,因为数据偏移字段的单位为 4B,所以数据偏移字段为 8,用二进制表示为 1000。故选项 A 为正确答案。5.一个网络中,最大 TPDU 尺寸是 256B,其最大存活时间为 20s,使用 8 位序列号,则每条连接的最大数据传输速率是 ( )。
A. 16112bit/s
B. 26112bit/s
C. 36112bit/s
D. 46112bit/s5.【参考答案】B
【解析】当序列号循环使用时,具有相同序列号的 TPDU 应该已经从网络中消失。8 位序列号,即序列号范围是 0 ~ 255。现在存活时间为 20s,也就是在 20s 的时间内发送方发送的 TPDU 的数目不能多于 255 个。所以,每条连接的最大数据传输速率是:255×256×8/20=26112(bit/s)。故选 B。
真题实战
1.主机甲与主机乙之间已建立一个 TCP 连接,主机甲向主机乙发送了 3 个连续的 TCP 段,分别包含 300B、400B 和 500B 的有效载荷,第三个段的序号为 900。若主机乙仅正确接收到第一个段和第三个段,则主机乙发送给主机甲的确认序号是 ( )。 【全国统考 2011 年】
A. 300
B. 500
C. 1200
D. 14001.【参考答案】B
【解析】TCP 首部的序号字段是指本报文段数据部分的第一个字节的序号,而确认号是期望收到对方下一个报文段的第一个字节的序号。根据题意(已知三个连续段,段长和第三个段序号),可以确定第三个段序号范围为 900 ~ 1399,第二个 TCP 段序号范围 500 ~ 899,第一个 TCP 段序号范围 200 ~ 499。又因为主机乙仅正确收到第一个段和第三个段,则主机期望收到第二个 TCP 段,确认号为 500,即第二个段的第一个字节的序号。所以,选项 B 为正确答案。2.主机甲与主机乙之间已建立一个 TCP 连接,主机甲向主机乙发送了两个连续的 TCP 段,分别包含 300B 和 500B 的有效载荷,第一个段的序列号为 200,主机乙正确接收到这两个数据段后,发送给主机甲的确认序列号是 ( )。 【全国统考 2009 年】
A. 500
B. 700
C. 800
D. 10002.【参考答案】D
【解析】主机甲和乙之间的 TCP 连接已经建立,并选择了第一个段的初始序号为 200,所以连续发送 300B 的序号范围为 200 ~ 499,发送 500B 的序号为 500 ~ 999。主机乙共收到了 200 ~ 999B。确认号是期望收到对方下一个报文段的第一个数据字节的序号。注意,若确认号 = N,则表明,到序号 N - 1 为止(这里是 999)的所有数据报都已正确收到。显然这里 N 应该为 1000。综上,选项 D 为正确答案。§5.5 TCP 连接管理
考点 1 建立连接
题组闯关
1.下图中,“?” 处应填入的值是 ( )。
A. i
B. i + 1
C. j
D. j + 11.【参考答案】B
【解析】如题图所示,本题考查 TCP 连接的释放 “四次握手”。第一步:客户端打算关闭连接,发送一个连接释放报文段并停止发送数据,FIN SN=i,AN=x。第二步:服务器收到连接释放报文段后立即发出确认,确认号为 AN=i+1,这个报文段自己的序号 SN=x。此时客户端到服务器的连接释放,服务器仍可以向客户端发送数据。第三步:服务器没有了要向客户端发送的数据,通知 TCP 释放连接,序号为 SN=j,确认号与上一条报文段相同,AN=i+1。第四步:客户端发出确认,此时确认的是服务器第二次发的报文,AN=j+1,序号是客户端自己上一条所发报文段序号 + 1,即 SN=i+1。2.TCP 使用三次握手协议建立连接。当主动方发出 SYN 连接请求后,等待对方回答 ( )。
A. SYN,ACK
B. FIN,ACK
C. PSH,ACK
D. RST,ACK2.【参考答案】A
【解析】TCP 采用 “三次握手” 方法建立连接。
(1) 请求方发出 SYN。
(2) 接收方返回 ACK 和 SYN。
(3) 请求方发出 ACK。真题实战
1.若主机甲主动发起一个与主机乙的 TCP 连接,甲、乙选择的初始序列号分别为 2018 和 2046,则第三次握手 TCP 段的确认序列号是 ( )。 【全国统考 2019 年】
A. 2018
B. 2019
C. 2046
D. 20471.【参考答案】D
【解析】用三次握手建立 TCP 连接的过程中,首先,主机甲选择的初始序列号为 2018,表明在后面传送数据时的第一个数据字节的序号是 2018+1=2019。第二次握手时主机乙同意建立连接,则发回确认,确认号是 2018+1=2019,同时选择自己的一个确认号 2046。第三次握手时,主机甲收到 B 的确认后,要向主机乙给出确认,确认号为 2046+1=2047,而自己的序号为 2019。题目问第三次握手 TCP 段的确认序列号,应为 2047。所以选项 D 为正确答案。2.若甲向乙发起一个 TCP 连接,最大段长 MSS = 1KB,RTT = 5ms,乙开辟的接收缓存为 64KB,则甲从连接建立成功至发送窗口达到 32KB,需经过的时间至少是 ( )。 【全国统考 2017 年】
A. 25ms
B. 30ms
C. 160ms
D. 165ms2.【参考答案】A
【解析】按照慢开始算法,TCP 要求发送端维护两个窗口,即接收窗口 rwnd 和拥塞窗口 cwnd。发送窗口的上限值 = min [rwnd,cwnd]。根据题意,初始拥塞窗口为最大报文段长度 1KB,每经过一个 RTT(RTT=5ms),拥塞窗口翻倍,2^5=32,因此需要至少 5 个 RTT(5×5ms=25ms),发送窗口才能达到 32KB。故选 A。3.主机甲向主机乙发送一个(SYN = 1,seq = 11220)的 TCP 段,期望与主机乙建立 TCP 连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的 TCP 段可能是 ( )。 【全国统考 2011 年】
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)3.【参考答案】C
【解析】TCP 连接管理中,不论是连接还是释放,不论是请求还是确认,其中的同步位 SYN、确认位 ACK 和终止位 FIN 的值一定是 1。本题中,主机乙向主机甲发送的确认报文段中 SYN 和 ACK 一定是 1,所以排除 A 和 D 选项。题中主机乙返回的确认号是对发送方主机甲发送的 TCP 段的确认,所以返回的确认号是主机甲发送的初始序号加 1,即 11220+1=11221(此时已经可判断选项 C 为正确答案)。同时,主机乙也要消耗一个序号 seq,seq 的值和甲的 seq 没有任何关系,是由乙的 TCP 进程任意给出的。故选 C。4.TCP 协议的三次握手中,() 从连接请求段发送的,() 从连接接收方发送的。 【北京工业大学 2018 年】
A. 有一次是,有两次是
B. 没有,三次都是
C. 有两次是,有一次是
D. 三次都是,没有4.【参考答案】C
【解析】TCP 三次握手的原理可以简述为:(1) 发送方(客户)向接收方(服务器)发送建立连接的请求报文;(2) 接收方向发送方回应一个对建立连接的请求报文的确认报文;(3) 发送方再向接收方发送一个对确认报文的确认报文。由此可见选项 C 为正确答案。5.在主机甲与主机乙建立 TCP 连接时,发送的 SYN 段中的序号为 1000,在断开链接时,甲发送给乙的 FIN 段中的序号为 5001,则在无任何重传的情况下,甲向乙已经发送的应用层数据的字节数为 ( )。 【全国统考 2020 年】
A. 4002
B. 4001
C. 4000
D. 39995.【参考答案】C
【解析】本题考查 TCP 连接。主机甲与主机乙建立 TCP 连接时发送 SYN 段中的序号为 1000,则在数据传送阶段所用序号其实为 1001。在断开连接时甲发送给乙的 FIN 段中的序号为 5001。在无任何重传的情况下,甲向乙已经发送的应用层数据的字节数为 5001−1001=4000。故本题选 C。考点 2 连接释放
题组闯关
TCP 的有限状态机中,TCP 释放连接的一端在 TIME_WAIT 状态必须等待 ( ) 时间,才能进入 CLOSED 状态。
A. 30ms
B. 1min ~ 2min
C. 30s
D. 10min【参考答案】B
【解析】TCP 释放连接时 TIME_WAIT 状态必须等待 2MSL 时间。RFC 793 中规定 MSL 为 2min,实际应用中常用的是 30s,1min 和 2min 等。
真题实战
1.TCP 协议在连接关闭的过程中,为了避免陈旧的 TCP 报文段对后续连接产生错误干扰而使用的状态是 ( )。 【南京大学 2017 年】
A. TIME_WAIT
B. FIN_WAIT_1
C. FIN_WAIT_2
D. CLOSED1.【参考答案】A
【解析】在 TCP 连接释放阶段,主动发起释放连接的一方(如客户 A)在 TIME_WAIT 状态必须等待 2MSL 的时间,才能真正进入到 CLOSED 状态,其中的一个主要原因就是防止 “已失效的连接请求报文段” 出现在本连接中。客户 A 在发送完最后一个 ACK 报文段后,再经过 2MSL 就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段而产生错误干扰。所以选项 A 是正确答案。2.TCP 连接释放过程,叙述不正确的是 ( )。 【杭州电子科技大学 2018 年】
A. 通过设置 FIN 为来表示释放连接
B. 当一方释放连接后另一方即不能继续发送数据
C. 只有双方均释放连接后,该连接才被释放
D. 释放连接采用了改进的三次握手机制2.【参考答案】B
【解析】选项 B:当一方释放连接(发送 FIN)时只是表明这一方不会在此次连接中发送数据了。另一方还是可以发送数据的。3.若客户首先向服务器发送 FIN 段请求断开 TCP 连接,则当客户收到服务器发送的 FIN 段并向服务器发送了 ACK 段后,客户的 TCP 状态转换为 ( )。 【全国统考 2021 年】
A. CLOSE_WAIT
B. TIME_WAIT
C. FIN_WAIT_1
D. FIN_WAIT_23.【参考答案】B
【解析】本题考查 TCP 连接。根据四次挥手原则,当客户端收到服务器发送的 FIN 段并向服务器发送 ACK 段后,TCP 状态转换为 TIME_WAIT。如下图所示:
§5.6 TCP 可靠机制和流量控制
考点 1 TCP 可靠机制
题组闯关
TCP 为实现可靠服务,采用了超时重传、确认捎带机制。其中在确认信息中捎带了 ( ) 的序列号,以减少通信量。
A. 上一个已接收的报文
B. 下一个将要发送的报文
C. 正在发送的报文
D. 下一个希望接收的报文【参考答案】D
【解析】本题考查 TCP。TCP 确认号中捎带下一个希望接受的报文的序号,D 对,A、B、C 描述的不对。真题实战
某客户通过一个 TCP 连接向服务器发送数据的部分过程如下图所示。客户在 t₀时刻第一次收到确认序号 ack_seq = 100 的段,并发送序列号 seq = 100 的段,但发生丢失。若 TCP 支持快速重传,则客户重新发送 seq = 100 段的时刻是 ( )。 【全国统考 2019 年】
A. t₁
B. t₂
C. t₃
D. t₄【参考答案】C
【解析】快重传算法首先要求接收方每收到一个失序的报文段后就立即发出重复确认,这样可以让发送方及早知道有报文段没有到达接收方。发送方只要一连收到 3 个重复确认就应当立即重传接收方尚未收到的报文段。题图中在 t1 时刻,发送方连续收到 3 个重复确认 ack_seq=100,所以此刻应立即重新发送 seq=100 段。因此选项 C 是正确答案。题组闯关
TCP 协议的流量控制手段采用 ( )。
A. 停止 - 等待策略
B. 源抑制策略
C. 滑动窗口法
D. 设置生存时间【参考答案】C
【解析】TCP 使用可变大小的滑动窗口协议来进行流量控制。这种流控方案把肯定应答信号与控制窗口滑动的信号分开处理,在控制数据流动速率方面给接收方提供了更大的自由度。在基础网络可靠的情况下,这种控制策略能产生平滑的数据流动,在基础网络不可靠时,它还是一种差错控制手段。真题实战
1.下列关于 TCP 滑动窗口机制的叙述中,正确的是 ( )。 【南京大学 2013 年】
A. 表示滑动窗口大小的字段包含 3 位
B. 滑动窗口大小在 TCP 连接过程中不再调整
C. 滑动窗口仅用于端到端的流量控制
D. 滑动窗口大小为 0 是合法的1.【参考答案】D
【解析】A 项错误。TCP 协议中窗口字段占 2B,即 16 位。
B 项错误。TCP 连接过程中,滑动窗口大小根据传输数据的多少有变化。
C 项错误。对于数据链路层来说,利用滑动窗口进行流量控制来控制的是相邻两个节点之间数据链路上的流量,而对于运输层来说,利用滑动窗口进行流量控制来控制的是端到端的流量。
D 项正确。滑动窗口大小可以为 0。当接收方滑动窗口变零后,也就是接收到发送方滑动窗口里的全部数据后,会将最后一个字节序号 + 1 作为确认号返回发送方。2.设 TCP 使用的最大窗口为 64KB,而传输信道的带宽可认为是不受限制的。若报文段的平均往返时延为 20ms,则能得到的最大吞吐量是 ( ) Mbps。 【武汉大学 2011 年】
A. 24.6
B. 26.2
C. 25.8
D. 26.82.【参考答案】B
【解析】传输信道的带宽可认为是不受限制的,则发送时延可忽略。平均往返时延为 20ms,则发送方每秒可发送数据 1/(20×10^−3)=50 次只有每次都按最大窗口数发送数据才能得到最大的吞吐量。所以:最大吞吐量 = 每秒发送数据次数 × 最大窗口 =50×64KB=50×64×1024×8=26.2Mbps,选 B。§5.7 TCP 拥塞控制
考点 1 TCP 拥塞控制概述
真题实战
( ) 不属于因特网建议标准 RFC2581 中规定的 TCP 拥塞控制算法。【中国科技大学 2013 年】
A. 阻流点
B. 拥塞避免(加法增大)
C. 拥塞避免(乘法减小)
D. 慢开始【参考答案】A
【解析】四个 TCP 拥塞控制算法为慢启动、拥塞避免、拥塞发生时算法和快速恢复。考点 2 基本术语
题组闯关
1.假设拥塞窗口为 10KB,接收窗口为 20KB,则 TCP 能够发送的最大字节数为 ( )。
A. 30KB
B. 20KB
C. 10KB
D. 15KB1.【参考答案】C
【解析】TCP 既有流量控制也有拥塞控制,在 TCP 发送数据的时候,要考虑拥塞窗口,也要考虑接收窗口。本题中拥塞窗口比较小,所以 TCP 发送的最大字节数受到拥塞窗口的限制,为 10KB。故选 C。2.假设一个连接的最大数据段长度为 1KB,一个 TCP 的阈值为 36KB,如果这时候传输发生了超时,那么新的阈值为 ( )。
A. 36KB
B. 18KB
C. 72KB
D. 1KB2.【参考答案】B
【解析】当发生了超时的情况时,TCP 的阈值将会减半,36KB 的一半为 18KB。故选 B。真题实战
1.主机甲和主机乙之间已建立一个 TCP 连接,TCP 最大段长为 1000B。若主机甲的当前拥塞窗口为 4000B,在主机甲向主机乙连续发送两个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的接收窗口大小为 2000B,则此时主机甲还可以向主机乙发送的最大字节数是 ( )。 【全国统考 2010 年】
A. 1000
B. 2000
C. 3000
D. 40001.【参考答案】A
【解析】TCP 要求发送端维护两个窗口,即接收窗口 rwnd 和拥塞窗口 cwnd。发送端的发送窗口不能超过 cwnd 和 rwnd 中的最小值。即,发送窗口的上限值 = min [rwnd,cwnd]。根据题意,当前 cwnd = 4000B,rwnd = 2000B,于是此时发送窗口 = min [4000B,2000B] = 2000B。而主机甲向乙连续发送两个最大段后,只收到第一个段的确认,所以此时主机甲还可以向主机乙发送的最大字节数是 2000B−1000B=1000B。故选 A。2.TCP 协议中发送窗口的大小应该是 ( )。 【华中科技大学 2018 年】
A. 通知窗口的大小
B. 拥塞窗口的大小
C. 通知窗口和拥塞窗口中较小的一个
D. 通知窗口和拥塞窗口中较大的一个2.【参考答案】C
【解析】TCP 要求发送端维护两个窗口,即接收窗口 rwnd 和拥塞窗口 cwnd。发送窗口的上限值 = min [rwnd,cwnd],这里的接收窗口和题中的通知窗口作用相同,都是接收端告诉发送端它可以接收多少字节数据。所以选项 C 为正确答案。3.一个 TCP 连接的数据传输阶段,如果发送端的发送窗口值由 2000 变为 3000,意味着发送端可以 ( )。 【沈阳农业大学 2016 年】
A. 在收到一个确认之前可以发送 3000 个 TCP 报文段
B. 在收到一个确认之前可以发送 1000B
C. 在收到一个确认之前可以发送 3000B
D. 在收到一个确认之前可以发送 1000 个 TCP 报文段3.【参考答案】C
【解析】TCP 提供的是面向连接的可靠传输服务,使用滑动窗口机制进行流量控制和拥塞控制。TCP 的滑动窗口机制是面向字节的,因此窗口大小的单位是字节。发送窗口是在没有收到确认之前一共可以发送的字节数,即假设发送窗口大小为 N,这意味着发送端可以在没有收到确认的情况下连续发送 N 个字节。所以选项 C 为正确答案。考点 3 拥塞机制实现
题组闯关
1.在一个 TCP 连接中,MSS 为 1KB,当拥塞窗口为 34KB 时收到了 3 个冗余 ACK 报文。如果在接下来的 4 个 RTT 内报文段传输都是成功的,那么当这些报文段均得到确认后,拥塞窗口的大小是 ( ) KB。
A. 20
B. 21
C. 8
D. 161.【参考答案】B
【解析】在拥塞窗口为 34KB 时收到了 3 个冗余报文,这说明此时应该执行快恢复算法。首先,慢开始门限值就被设定为 34KB 的一半,即 17KB,并且在接下来开始执行拥塞避免算法(“加法增大”),即,第 1 个 RTT 中拥塞窗口(cwnd)也被置为 17KB;第 2 个 RTT 中 cwnd = 18KB;第 3 个 RTT 中 cwnd = 19KB;第 4 个 RTT 中 cwnd = 20KB;第 4 个 RTT 中发送的报文得到确认后,cwnd 再增加 1KB,即 20KB+1KB=21KB,所以选项 B 是正确答案。注意 cwnd 的增加都发生在收到确认报文后。2.设 TCP 的 ssthresh 初始值为 16(单位为报文段)。如果当拥塞窗口上升到 24 时网络发生了超时,接下来 TCP 使用慢开始和拥塞避免,那么第 21 轮传输的拥塞窗口的大小是 ( )。
A. 12
B. 13
C. 14
D. 152.【参考答案】D
【解析】慢开始开始时按指数规律增长,直到达到拥塞窗口门限值。所以第一轮开始到第 5 轮,依次为 1、2、4、8、16,然后执行拥塞避免 “加法增大”,直到 24 超时。即 17、18、19、20、21、22、23、24 对应第 6 轮到第 13 轮,然后发生超时,使用慢开始和拥塞避免,先把门限值设为原来的一半,即 12,拥塞窗口设为 1,从第 14 轮开始,先按慢开始,拥塞窗口依次为 1、2、4、8、12,对应第 14 轮到第 18 轮,然后执行拥塞避免算法,按 “加法增大”,对应第 19 轮到 21 轮,拥塞窗口为 13、14、15。所以,从第 1 轮到第 21 轮传输的各拥塞窗口大小依次为:1、2、4、8、16、17、18、19、20、21、22、23、24、1、2、4、8、12、13、14、15,理由同上。由此可知,第 21 轮传输的拥塞窗口大小为 15。所以选项 D 是正确答案。3.有一个 TCP 连接,当其拥塞窗口为 32 个分组大小时超时。假设网络的 RTT 是固定的 5s,不考虑比特开销,即分组不丢失,则系统在超时后处于慢启动阶段的时间有 ( )。
A. 10s
B. 20s
C. 30s
D. 40s3.【参考答案】B
【解析】当超时,阈值变为 16。按照慢开始算法,发送窗口的初始值设置为 1,然后依次增大为 2、4、8、16,需要经过 4 次 RTT 的时间达到阈值 16,即慢启动阶段结束,所以系统在超时后处于慢启动阶段的时间有 4RTT,即 20s。故选 B。4.一个 TCP 连接的数据传输阶段,如果发送端的发送窗口值由 100 变为 200,意味着发送端可以 ( )。
A. 在没有收到确认的情况下可以连续发送 100B
B. 在没有收到确认的情况下可以连续发送 200B
C. 在没有收到确认的情况下可以连续发送 100 个 TCP 报文段
D. 在没有收到确认的情况下可以连续发送 200 个 TCP 报文段4.【参考答案】B
【解析】TCP 协议提供的是可靠的字节流传输服务,并使用滑动窗口机制进行流量控制与拥塞控制。应当注意的是,TCP 通过滑动窗口实现的是以字节为单位的确认,因此窗口大小的单位为字节。假设发送窗口的大小为 N,这意味着发送端可以在没有收到确认的情况下连续发送 N 个字节。故选 B。真题实战
1.假设客户 C 和服务器 S 已建立一个 TCP 连接,通信往返时间 RTT = 50ms,最长报文段寿命 MSL = 800ms,数据传输结束后,C 主动请求断开连接。若从 C 主动向 S 发出 FIN 段时刻算起,则 C 和 S 进入 CLOSED 状态所需的时间至少分别是 ( )。 【全国统考 2022 年】
A. 850ms,50ms
B. 1650ms,50ms
C. 850ms,75ms
D. 1650ms,75ms1.【参考答案】D
【解析】TCP 连接释放(四次挥手)过程的理解。对客户 C 来说,从向 S 发出 FIN 段时刻,共经历了发送连接释放报文段(阶段 1)、接收服务器对连接释放报文段的确认(阶段 2)、服务器端的连接释放报文段(阶段 3)、对服务器端连接释放报文段的确认(阶段 3)和时间等待计时器设置的时间 2MSL(最长报文段寿命)之后才进入 CLOSED 状态,由于要求出最少时间,因此阶段 2 和阶段 3 同时进行,即 B 也没有数据向 A 发送,无需等待,因此客户 C 总共经历的时间为 RTT+2MSL=1650ms。在此过程中,服务器端 S 从客户 C 发出 FIN 时刻起到进入 CLOSED 状态共经历了 1.5 个 RTT,即 75ms。该题请结合连接释放过程的图来理解。2.主机 H 使用 TCP 协议向服务器 S 发送大量数据,TCP 连接的 MSS 为 1KB。H 的拥塞窗口和接收窗口均为 8KB 时,出现发送定时器超时,则 H 的发送窗口为 ( )。 【北京邮电大学 2017 年】
A. 0
B. 1K
C. 4K
D. 8K2.【参考答案】B
【解析】按照慢开始算法,TCP 要求发送端维护两个窗口,即接收窗口 rwnd 和拥塞窗口 cwnd。发送窗口的上限值 = min [rwnd,cwnd]。根据题意,当出现发送定时器超时时,rwnd = 8KB,而拥塞窗口 cwnd 重新置为 1KB,取二者的最小值,即为 1KB。所以选项 B 为正确答案。3.假设在没有发生拥塞的情况下,在一条往返时间 RTT 为 10ms 的线路上采用慢启动拥塞控制策略。如果接收窗口的大小为 24KB,最大报文段 MSS 为 2KB,那么需要 ( ) ms 才能发送第一个完全窗口。 【黑龙江大学 2013 年】
A. 30
B. 40
C. 50
D. 603.【参考答案】B
【解析】TCP 慢启动策略发送窗口的初始值为报文段的最大长度 2KB(即拥塞窗口的初始值),然后经过 1RTT、2RTT、3RTT 后,按指数增大依次到 4KB、8KB、16KB,接下来是接收窗口的大小 24KB(注意不是 32KB,此时用的是拥塞窗口和接收窗口的较小值 24KB),即达到第一个完全窗口,因此到达第一个完全窗口所需的时间为 4 倍的 RTT,即 40ms。所以选项 B 为正确答案。§5.8 数据交换方式
考点 1 电路交换
题组闯关
有关交换技术的论述,以下哪项是正确的 ( )。
A. 电路交换要求在通信的双方之间建立起一条实际的物理通路,但通信过程中,这条通路可以与别的通信方共享
B. 现有的公用数据网都采用报文交换技术
C. 报文交换可以满足实时或交互式的通信要求
D. 分组交换将一个大报文分割成分组,并以分组为单位进行存储转发,在接收端再将各分组重新装成一个完整的报文【参考答案】D
【解析】A 项通信过程中,这条通路与别的通信方不共享,线路独占。B 项现有的公用数据网都采用分组交换技术,不是报文交换技术。C 项分组交换可以满足实时或交互式的通信要求。真题实战
与分组交换相比,电路交换的最大缺点是 ( )。 【武汉大学 2011 年】
A. 不能实现差错控制
B. 不能混用多种传输介质
C. 独占传输信道
D. 延迟时间大【参考答案】C
【解析】(1) 电路交换的优点:传输时延小、没有冲突、实时性强;缺点:独占式,信道利用率低、建立连接时间长、灵活性差。(2) 分组交换(无连接的数据报、面向连接的虚电路)的优点:无须建立连接、信道利用率高、简化了存储管理、加速了传输;缺点:存在发送时延,可能会存在分组失序、丢失、重复。
与分组交换相比,电路交换的最大缺点是独占信道资源,选 C。
考点 2 分组交换
题组闯关
1.与报文交换相比较,分组交换最大的优点是 ( )。
A. 误码率低
B. 数据传输速率高
C. 传输时延小
D. 路由算法更简单1.【参考答案】C
【解析】分组是逐个传输,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线式传输方式减少了报文的传输时间。因此,分组交换比电路交换的电路利用率高,比报文交换的传输时延小,交互性好。2.分组交换对报文交换的主要改进是 ( )。
A. 传输单位更小且有固定的最大长度
B. 传输单位更大且有固定的最大长度
C. 差错控制更完善
D. 路由算法更简单2.【参考答案】A
【解析】分组交换仍采用存储转发传输方式,但将一个长报文先分割为若干个较短的分组,然后把这些分组(携带源、目的地址和编号信息)逐个地发送出去。分组交换对报文交换的主要改进是传输单位更小且有固定的最大长度。真题实战
分组交换技术具有的特点是 ( )。 【武汉大学 2014 年】
A. 每个分组独立地寻找路径
B. 分组按序到达
C. 动态分配传输宽带
D. 比电路交换时延小【参考答案】C
【解析】分组交换技术可以采用数据报服务,也可以采用虚电路服务,分组独立寻路路径是数据报传输的特点,分组按序到达是虚电路传输的特点。分组交换技术比电路交换时延,比报文交换时延短。考点 3 数据报交换
题组闯关
以下关于数据报交换方式的说法不正确的是 ( )。
A. 同一报文的不同分组可以由不同的传输路径到达信宿
B. 在每次传输数据前发送方和接收方间要建立一条逻辑连接
C. 同一报文的不同分组到达目的节点时可能出现乱序现象
D. 每个分组必须带有源地址和目的地址【参考答案】B
【解析】数据报交换方式有以下几个特点:①同一报文的不同分组可以经过不同的传输路径通过通信子网。②同一报文的不同分组到达目的节点时可能会出现乱序、重复和丢失现象。③每个分组在传输过程中都必须带有目的地址和源地址。④数据报方式的传输延迟较大,适用于突发性通信,不适用于长报文、会话式通信。真题实战
数据报传输方式的特点是 ( )。 【武汉大学 2015 年】
A. 同一报文的不同分组可以经过不同的传输路径通过资源子网
B. 同一报文的不同分组到达目的节点时顺序确定
C. 适合于短报文的通信
D. 同一报文的不同分组在路由选择时只需要进行一次【参考答案】A
【解析】数据报传输协议是存储转发方式的一种,可以使各个节点处于并行状态,大大缩短报文的传输时间。通常主机把报文分为三个小组,每个分组都附上地址及其他信息,按顺序发送给下个节点,下个节点每收到一个分组都先存储下来,由于每个分组都含有完整的目的站地址的地址信息,因而每一个分组都可以独立地选择路由,分别对它们进行独立的路径选择和其他的处理过程。这样可以使各个节点处于并行状态,可大大缩短报文的传输时间。由于每个分组都带有终点地址,所以他们不一定经过同一路径,但最终都能到达同一个目的节点。
考点 4 虚电路交换
题组闯关
1.提供虚电路服务是网络层向传输层提供的一种服务,在进行数据交换的两个端系统之间 ( )。
A. 只能有一条虚电路,但能为不同的进程服务
B. 可以有多条虚电路为不同的进程服务
C. 只能有一条虚电路为一个进程服务
D. 可以有多条虚电路为一个进程服务1.【参考答案】B
【解析】虚电路交换服务是相对电路交换服务而言的,在电路交换中面向连接的服务所请求到的是一条物理的电路连接,它以独占的方式使用物理电路连接。而虚电路则是在一条物理电路连接上实现复用,是一条逻辑的电路,在一条物理电路上可以建立许多虚电路。2.以下关于虚电路交换方式的说法正确的是 ( )。
A. 虚电路与线路交换没有实质不同
B. 在通信的两个站点间只能建立一条虚电路
C. 虚电路有连接建立、数据传输、连接释放 3 个阶段
D. 虚电路的各个节点需要为每个分组作路由选择2.【参考答案】C
【解析】虚电路交换是一种分组交换,采用电路交换方式,而非真正的电路交换,A 错误;虚电路是在分组交换散列网络上的两个或多个端点站点间的链路,B 错误;虚电路的各个节点不需要为每个分组做路径选择,D 错误。建立一条虚电路有连接建立、数据传输、连接拆除 3 个阶段。真题实战
1.虚电路服务位于的层次是 ( )。 【重庆大学 2017 年】
A. 物理层
B. 数据链路层
C. 网络层
D. 传输层1.【参考答案】D
【解析】虚电路,即建立连接之后才能传输数据,也就是传输层的面向连接的服务,即 TCP。物理层的连接都是有物理链路的。数据链路层负责数据的成帧以及链路分配。网络层研究网络地址分配以及路由选择。2.对于虚电路网络和数据报网络,在下列有关阐述中,不正确的是 ( )。 【杭州电子科技大学 2017 年】
A. 虚电路提供了可靠的通信功能,能保证每个分组正确到达,且保持原来的顺序;而数据报方式中,数据报不保证数据分组按序到达,数据的丢失也不会被立即发现
B. 虚电路服务和数据报服务本质的差别在于是将顺序控制、差错控制和流量控制等通信功能交给通信子网完成,还是由端系统自己来完成
C. 数据报方式中,网络节点要为每个分组做路由选择;而虚电路方式中,只需在连接建立时确定路由
D. 虚电路和数据报都提供了端到端的、可靠的数据传输2.【参考答案】D
【解析】虚电路又称为虚连接或虚通道,是分组交换的两种传输方式中的一种。数据报是通过网络传输的数据的基本单元,包含一个报头和数据本身,其中报头描述了数据的目的地以及和其他数据之间的关系。虚电路服务是网络层向运输层提供的一种使所有分组按顺序到达目的端系统的可靠的数据传送方式,而数据报面向的是无连接的服务。3.虚电路服务中每个分组 () 发送顺序到达目的站,数据报服务中分组到达目的站时 () 发送顺序。 【北京工业大学 2018 年】
A. 总是按照,不一定按照
B. 总是按照,总是按照
C. 不一定按照,总是按照
D. 不一定按照,不一定按照【参考答案】A
【解析】本题考查了数据报与虚电路的区别,属于记忆性知识点。二者区别如下表所列。
区别
虚电路服务
数据报
连接的建立
必须有
不需要
终点地址
仅在连接建立阶段使用
每个分组都有完整的终点地址
分组的转发
同一条虚电路的分组按照统一路由转发
每个分组独立选择路由转发
节点出现故障时
经过故障节点的虚电路不能工作
故障节点可能丢失分组,一些路由发生变化
分组的顺序
按序到达
不一定按序到达
§5.9 简答题
题组闯关
1.假定 TCP 的拥塞窗口值为 28KB 时发生了超时事件。如果紧接着的 5 次传输都是成功的,那么拥塞窗口将是多大?假定最大报文段长度 MSS 为 1KB。
1.【参考答案与解析】
由于在拥塞窗口值为 28KB 时发生了超时事件,慢开始门限值被设定为 14KB,而拥塞窗口则重置为一个最大报文段长,然后重新进入慢开始阶段。在慢开始阶段,拥塞窗口值在一次成功传输后将加倍,直至到达慢开始门限值。因此,超时后的第 1 次传输将是 1 个最大报文段长度,然后是 2、4、8、14 个最大报文段长度,即在 5 次传输后,拥塞窗口的大小将是 14KB。2.假设主机 A 通过 TCP 连接向主机 B 连续发送两个 TCP 报文段。第 1 个报文段的序号为 280,第 2 个报文段的序号为 588,长度为 260B。
(1) 第 1 个报文段中有多少数据?
(2) 假设第一个报文段丢失而第 2 个报文段到达主机 B,那么在主机 B 发往主机 A 的确认报文中,确认号是多少?2.【参考答案与解析】
(1) 因为第 1 个报文段和第 2 个报文段是连续的,且第 1 个报文段的序号为 280,第 2 个报文段的序号为 588,所以第 1 个报文段中的数据为 588−280=308B。(2) TCP 采用累计确认,由于第 1 个报文段丢失,也即 280 及其之后的数据都没收到,TCP 的确认号表示接下来希望收到的报文段的序号,所以确认号是 280。
3.在一个 2Gb/s 的 TCP 连接上,发送窗口的大小为 3600B,单程延迟时间等于 5ms。问可以取得的最大吞吐率是多少?线路效率是多少?
3.【参考答案与解析】
根据题意,往返时延 RTT=5ms×2=10ms。每 10ms 可以发送一个窗口大小的数据,每秒 100 个窗口(1000ms/10ms=100)。每秒能发送数据即吞吐量为:3600×8×100=2.88(Mb/s);线路效率:2.88Mb/s/2000Mb/s=0.144%。所以,最大吞吐率是 2.88Mb/s,线路效率约为 0.144%。
4.如果 TCP 来回路程时间 RTT 的当前值是 30ms,随后应答分别在 26、32 和 24ms 到达,那么新的 RTT 估算值是多少?假定 α = 0.9。
4.【参考答案与解析】
对于每一条连接,TCP 都维持一个变量 RTT,它是到达目的地的最佳估计值。当发送一个报文段的时候,启动计时器。查看应答要花费多少时间,如果时间太长,就要重发报文段。如果应答在超时前返回,TCP 就测量应答花了多长时间,比如说是 M,然后用下列公式更新 RTT 值:RTT=αRTT+(1−α)M,现在 α=0.9,RTT=30ms,M1=26,M2=32,M3=24,所以有:
RTT1=0.9×30+(1−0.9)×26=29.6(ms)
RTT2=0.9×29.6+(1−0.9)×32=29.84(ms)
RTT3=0.9×29.84+(1−0.9)×24=29.256(ms)
因此,新的 RTT 估算值分别是 29.6ms、29.84ms 和 29.256ms。
5.某 TCP 连接下面使用 128kbit/s 的链路,其端到端时延为 64ms。经测试,发现吞吐量只有 60kbit/s。试问发送窗口 W 是多少?
5.【参考答案与解析】
此题需要分成两种情况:(1) 接收端在接收完数据的最后一位才发出确认。
(2) 接收端每收到一个很小的报文段就发回确认。
下面分别计算:假设发送窗口 W=x,发送方连续发完窗口内的数据需要的时间为 T。则有:
(1) 接收端在接收完数据的最后一位才发出确认,因此,发送端需要经过 128ms+T 的时间,才能发送下一个窗口的数据,所以有 x/(128ms+T)=60kbit/s,而 T=x/128kbit/s,解得 x=18823.5bit=2353B。
(2) 接收端每收到一个很小的报文段就发回确认,因此,发送方经过比 128 ms 略多一些的时间就可以发送下一个窗口的数据,可以近似地认为经过 128ms 的时间就可以发送下一个窗口的数据。所以有 x/128ms=60kbit/s,解得,x=960B。
6.主机 A 在一条线路上发送 1800B 的 TCP 数据,其中最大分组生存期为 60s,要想不让序号回绕,该线路的最快速度为多少(将 TCP、IP 和以太网的开销都考虑进去,假设以太网帧可以被连续发送)?
真题实战
1.假设下图中的 H3 访问 Web 服务器 S 时,S 为新建的 TCP 连接分配了 20KB(K = 1024)的接收缓存,最大段长 MSS = 1KB,平均往返时间 RTT = 200ms。H3 建立连接时的初始序号为 100,且持续以 MSS 大小的段向 S 发送数据,拥塞窗口初始阈值为 32KB;S 对收到的每个段进行确认,并通告新的接收窗口。假定 TCP 连接建立完成后,S 端的 TCP 接收缓存仅有数据存入而无数据取出。 【全国统考 2016 年】
请回答下列问题。
(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 释放该连接的最短时间是多少?
2.证明:当用 n 个 bit 进行编号时,若接收窗口大小为 1,则发送窗口的数值受下式约束:WT≤2^n−1。 【山东师范大学 2013 年】
3.在 TCP 拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法,这里每一种算法各起到什么作用,“乘法减小” 和 “加法增大” 各用在什么情况下? 【山东师范大学 2012 年】
【参考答案与解析】
慢开始:在刚开始不知道网络情况的前提下,发送报文段时不发送大量的数据,而是先发送一个报文段进行试探,可先将拥塞窗口 cwnd 设置为一个最大报文段 MSS 的数值,在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个 MSS 的数值。用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入网络的速率更加合理。这里的慢开始不是指拥塞窗口的增长速度慢,而是指拥塞窗口的初始值是 1,和一开始不进行慢开始算法直接向网络中发送大量的报文相比,在慢开始算法中,拥塞窗口是指数级别增长的。拥塞避免:当拥塞窗口的拥塞窗口值达到慢开始门限值之后,停止使用慢开始算法而改用拥塞避免算法,拥塞窗口的增长不再是指数增长,而是线性增长。即拥塞避免算法使发送端的拥塞窗口每经过一个往返时延 RTT 就增加一个 MSS 的大小。
快重传算法是有时个别报文在网络中丢失,但这个丢失报文的原因很可能不是因为网络拥塞。如果此时在检测到丢失的报文时就开始使用慢开始算法将会降低传输效率。快重传算法是让发送方尽快知道个别报文丢失,立即发送确认,发送方只要收到了 3 个重复的 ACK,就可断定有报文丢失,接收方没有收到这个报文,发送方就应立即重传丢失的报文,而不必继续等待为该报文段设置的重传计时器的超时。
快恢复算法是当丢失个别报文的时候,不是将拥塞窗口的大小调整为 1,而是将拥塞窗口的大小设置为发生拥塞时拥塞窗口的一半。
“加法增大” 是指执行拥塞避免算法后,当收到对所有报文段的确认就将拥塞窗口 cwnd 增加一个 MSS 大小,使拥塞窗口按照线性增长,这样拥塞窗口增长缓慢,可以防止网络过早出现拥塞。当拥塞窗口的大小等于慢开始门限的时候,拥塞窗口在增长的时候就是加法增大。
“乘法减小” 是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞)或发送方收到连续三个重复的确认,就把慢开始门限值设置为当前拥塞窗口值的一半。当网络频繁出现拥塞时,慢开始门限值就下降得很快,可以大大减少注入网络中的分组数。