4.1.5 拥塞控制

2027 · OCR 辅助 · 原书检索 · 文字用于定位,公式与图表请回原页核验 · 本次导入快照

## 4.1.5 拥塞控制

网络中出现过量分组,超过其处理能力时所引发的性能下降现象,称为拥塞。判断网络是否进入拥塞状态,通常依据的是吞吐量与网络负载之间的关系:

- 若负载增大但吞吐量增长甚微,则表明网络可能已处于轻度拥塞状态。
- 若负载增大但吞吐量反而下降,则表明网络很可能已进入拥塞状态。

拥塞控制的核心在于及时感知拥塞并采取措施,避免因缓冲区溢出导致分组丢失。拥塞控制的目标是确保网络能有效承载当前流量,这是一个全局性过程,涉及所有主机、路由器及影响网络传输能力的各类因素。仅靠增加资源无法根本解决拥塞。

需要特别区分拥塞控制与流量控制:流量控制用于管理发送方与接收方之间的点对点通信,其核心是抑制发送方的发送速率,以确保接收方能够及时接收和处理数据。

拥塞控制主要有两种方法:

1)开环控制。在系统设计时,预先考虑可能导致拥塞的因素,通过静态策略防止拥塞发生。一旦系统投入运行,控制机制就不再依赖实时反馈。典型手段包括:确定何时接收新流量、确定何时及丢弃哪些分组、确定何种调度策略等。其特点是不依赖当前网络状态。
2)闭环控制。通过监测网络运行状态,动态检测拥塞的发生位置与程度,然后反馈至控制节点,进而调整网络的运行以缓解拥塞。该方法基于反馈机制,是一种动态的方法。

## 4.1.6 本节习题精选

### 单项选择题

01. 路由器连接的异构网络是指()。

A. 网络的拓扑结构不同
B. 网络中计算机操作系统不同
C. 数据链路层协议和物理层协议至少有一个不同
D. 数据链路层协议相同,物理层协议不同

<!-- page: 145 -->

第4章 网络层
133

02. 网络中发生了拥塞,根据是( )。

A. 随着通信子网负载的增加,吞吐量也增加
B. 网络节点接收和发出的分组越来越少
C. 网络节点接收和发出的分组越来越多
D. 随着通信子网负载的增加,吞吐量反而降低

03. 在路由器互连的多个局域网的结构中,要求每个局域网( )。

A. 物理层协议可以不同,而数据链路层及其以上的高层协议必须相同
B. 物理层、数据链路层协议可以不同,而数据链路层以上的高层协议必须相同
C. 物理层、数据链路层、网络层协议可以不同,而网络层以上的高层协议必须相同
D. 物理层、数据链路层、网络层及高层协议都可以不同

04. 在互联网中,一个路由器的路由表通常包含( )。

A. 目的网络和到达目的网络的完整路径
B. 所有目的主机和到达该目的主机的完整路径
C. 目的网络和到达该目的网络路径上的下一个路由器的 IP 地址
D. 目的网络和到达该目的网络路径上的下一个路由器的 MAC 地址

05. 路由器转发分组的根据是报文的( )。

A. 端口号
B. MAC 地址
C. IP 地址
D. 域名

06. 路由器在能够开始向输出链路传输分组的第一位之前,必须先接收到整个分组,这种机制称为( )。

A. 存储转发机制
B. 直通交换机制
C. 分组交换机制
D. 分组检测机制

07. 在互联网中,IP分组的传输需要经过源主机和中间路由器到达目的主机,通常( )。

A. 源主机和中间路由器都知道IP分组到达目的主机需要经过的完整路径
B. 源主机和中间路由器都不知道IP分组到达目的主机需要经过的完整路径
C. 源主机知道IP分组到达目的主机需要经过的完整路径,而中间路由器不知道
D. 源主机不知道IP分组到达目的主机需要经过的完整路径,而中间路由器知道

08. 下列协议中,属于网络层协议的是( )。

I. IP
II. TCP
III. FTP
IV. ICMP
A. I 和 II
B. II 和 III
C. III 和 IV
D. I 和 IV

09. 下列关于各种数据交换方式的叙述中,错误的是( )。

A. 电路交换不提供差错控制功能
B. 分组交换的分组有最大长度的限制
C. 虚电路是面向连接的,它提供的是一种可靠的服务
D. 在故障率很高的传输系统中,选择虚电路方式更合适

10. 下列关于虚电路服务和数据报服务的叙述中,正确的是( )。

A. 虚电路服务和数据报服务都是无连接的服务
B. 数据报服务中,分组在网络中沿同一条路径传输,并且按发出顺序到达
C. 虚电路在建立连接后,分组中需携带虚电路标识
D. 虚电路中的分组到达顺序可能与发出顺序不同

11. 同一报文中的分组可以由不同的传输路径通过通信子网的方法是( )。

A. 分组交换
B. 电路交换
C. 虚电路方式
D. 数据报方式

<!-- page: 146 -->

2027年计算机网络考研复习指导

12. 下列有关数据报和虚电路的叙述中,错误的是( )。

A. 数据报方式中,若某个节点因故障而丢失分组,则其他分组仍可正常传输
B. 数据报方式中,每个分组独立地进行路由选择和转发,不同分组之间没有必然联系
C. 虚电路方式中,属于同一条虚电路的分组按照同一路由转发
D. 尽管虚电路方式是面向连接的,但它并不保证分组的有序到达

13. 下列关于虚电路和数据报的叙述中,正确的是( )。

A. 虚电路是一种分组交换技术,但不能按照存储转发的方式工作
B. 虚电路的连接是临时性连接,当会话结束时就释放这种连接
C. 数据报服务不提供可靠传输,但可以保证分组的有序到达
D. 数据报服务中,每个分组都必须携带源地址和目的地址

14. 下列关于虚电路的说法中,正确的是( )。

A. 虚电路依赖其他协议实现差错控制
B. 采用虚电路方式发送分组时,分组首部都必须包含目的地址
C. 虚电路结合了电路交换的思想,适合对实时性要求较高的长时间通信
D. 多站点同时使用一段物理链路实行虚电路交换会产生冲突,无法正常通信

15. 下列关于虚电路的说法中,正确的是( )。

A. 虚电路和电路交换一样,在数据传输前要建立物理连接
B. 虚电路中间节点发生故障后,可沿其他路径继续通信,无须重新建立连接
C. 虚电路中只有建立连接的分组需要携带源地址和目的地址
D. 在虚电路上传送的同一个会话的数据分组可以走不同的路径

16. 下列 4 种传输方式中,由网络负责差错控制和流量控制,分组按照序被递交的是( )。

A. 电路交换
B. 报文交换
C. 虚电路分组交换
D. 数据报分组交换

17. 下列各种描述中,( )不是软件定义网络(SDN)的特点。

A. 控制与转发功能分离
B. 控制平面集中化
C. 接口开放可编程
D. Openflow 取代了路由协议

18. 下列关于 SDN(软件定义网络)的描述中,错误的是( )。

I. SDN 是近年来出现的一种新型物理网络结构
II. OpenFlow 交换机基于“流表”来转发分组
III. SDN 远程控制器位于 OpenFlow 交换机中
IV. OpenFlow 可视为 SDN 的控制层面与数据层面的通信接口

A. I 和 III
B. I 和 IV
C. II 和 IV
D. I、III 和 IV

19. 【2011 统考真题】TCP/IP 模型的网络层提供的是( )。

A. 无连接、不可靠的数据报服务
B. 无连接、可靠的数据报服务
C. 有连接、不可靠的虚电路服务
D. 有连接、可靠的虚电路服务

20. 【2020 统考真题】下列关于虚电路网络的叙述中,错误的是( )。

A. 可以确保数据分组传输顺序
B. 需要为每条虚电路预分配带宽
C. 建立虚电路时需要进行路由选择
D. 依据虚电路号(VCID)进行数据分组转发

21. 【2022 统考真题】在 SDN 网络体系结构中,SDN 控制器向数据平面的 SDN 交换机下发

<!-- page: 147 -->

第4章 网络层
135

流表时所使用的接口是( )。

A. 东向接口
B. 南向接口
C. 西向接口
D. 北向接口

## 4.1.7 答案与解析

### 单项选择题

#### 01. C

网络的异构性是指传输介质、数据编码方式、链路控制协议及不同的数据单元格式和转发机制,这些特点分别在物理层协议和数据链路层协议中定义。

#### 02. D

拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致这部分乃至整个网络性能下降的现象,严重时甚至导致网络通信业务陷入停顿,即出现死锁现象。选项 A 的网络性能显然是提高的,选项 B、C 中网络节点接收和发出的分组多少与网络的吞吐量不成正比,不能确定网络是否拥塞。

#### 03. C

路由器是第三层设备,向传输层及以上层隐藏下层的具体实现,所以物理层、数据链路层、网络层协议可以不同。而网络层之上的协议数据是路由器所不能处理的,因此网络层以上的高层协议必须相同。本题容易误选 B,主要原因是在目前的互联网中广泛使用的是 TCP/IP 族,在网络层多用 IPv4,所以说认为网络层协议必须相同。实际上,使用特定的路由器连接 IPv4 与 IPv6 网络,就是典型的网络层协议不同而实现互连的例子。

#### 04. C

路由器是网络层设备,其任务是转发分组。每个路由器都维护一个路由表以决定分组的转发。为了提高路由器的查询效率并减少路由表维护的内容,路由表只保留到达目的地址的下一个路由器的地址,而不保留整个传输路径的信息。另外,采用目的网络可使每个路由表项包含很多目的主机 IP 地址,这样可减少路由表中的项目。因此,路由表通常包含目的网络和到达该目的网络路径上的下一个路由器的 IP 地址。

#### 05. C

路由器是网络层设备,网络层通过 IP 地址标识主机,所以路由器根据 IP 地址转发分组。

#### 06. A

路由器转发一个分组的过程如下:先接收整个分组,然后对分组进行错误检查,若出错,则丢弃错误的分组;否则存储这个正确的分组。最后根据路由选择协议,将正确的分组转发到合适的端口,这种机制称为存储转发机制。

#### 07. B

每个路由器都根据路由表来选择 IP 分组的下一跳地址,只有到了下一跳路由器,才知道再下一跳应当怎样走。主机仅知道到达本地网络的路径,到达其他网络的 IP 分组均转发到路由器。而源主机也只把 IP 分组发给网关,所以路由器和源主机都不知道 IP 分组要经过的完整路径。

#### 08. D

TCP 属于传输层协议,FTP 属于应用层协议,只有 IP 和 ICMP 属于网络层协议。

#### 09. D

电路交换不具备差错控制能力,选项 A 正确。分组交换对每个分组的最大长度有规定,超过此长度的分组都被分割成几个长度较小的分组后再发送,选项 B 正确。

分组交换又分为数据报和虚电路两种方式。数据报是无连接的,它提供的是不可靠的服务,

<!-- page: 148 -->

2027年计算机网络考研复习指导

分组有可能丢失、失序,也不保证到达的时间,但因每个分组独立选择传送路径,当某个节点发生故障时,后续的分组可另选路径。另外,通过高层协议如 TCP 也可保证其传输的可靠性和有序性。虚电路是面向连接的,它提供的是可靠的服务,能保证数据的可靠性和有序性,但是一旦虚电路中的某个节点出现故障,就必须重新建立一条虚电路,对于故障率高的传输系统,易出现节点故障,这项任务就显得相当艰巨,因此采用数据报方式更合适。选项 C 正确、选项 D 错误。

10. C

虚电路服务是有连接的,属于同一条虚电路的分组,根据该分组的相同虚电路标识,按照同一路由转发,保证分组的有序到达。在数据报服务中,网络为每个分组独立地选择路由,传输既不保证可靠性,又不保证分组的按序到达。

11. D

分组交换有两种方式:虚电路和数据报。在虚电路服务中,属于同一条虚电路的分组按照同一路由转发;在数据报服务中,网络为每个分组独立地选择路由,传输既不保证可靠性,又不保证分组的按序到达。

12. D

关于虚电路和数据报的比较,请参考表 4.1。

13. D

虚电路是一种分组交换技术,它可以采用存储转发的方式工作,选项 A 错误。虚电路不只是临时性的,它提供的服务包括永久性虚电路(PVC)和交换型虚电路(SVC),其中前者是一种提前定义好的、基本上不需要任何建立时间的端点之间的连接,而后者是端点之间的一种临时性连接,这些连接只持续所需的时间,且在会话结束时就取消这种连接,选项 B 错误。数据报服务是无连接的,既不提供可靠性保障,又不保证分组的有序到达,选项 C 错误。在数据报服务中,每个分组都必须携带源地址和目的地址;而虚电路服务中,建立连接后,分组只需携带虚电路标识。

14. C

虚电路提供的是可靠的通信服务,本身就可实现差错控制。分组仅在连接建立时才需要使用完整的目的地址,之后每个分组只需携带这条虚电路的编号即可。多站点同时使用一段物理链路实现虚电路交换不会产生冲突,因为每个分组都有一个虚电路号来标识所属的虚电路。

15. C

虚电路是一种分组交换技术,它在数据传输前要建立逻辑连接而非物理连接,选项 A 错误。虚电路的中间节点发生故障后,会导致整条虚电路失效,需要重新建立连接,选项 B 错误。虚电路只有建立连接的分组需要携带目的地址,以进行路由选择,之后传送的分组只需携带虚电路号即可。一个会话的虚电路是事先建立好的,因此它的数据分组所走的路径也是固定的,选项 D 错误。

16. C

电路交换和报文交换不采用分组交换技术。数据报传输方式没有差错控制和流量控制机制,也不保证分组按序交付。虚电路方式提供面向连接的、可靠的、保证分组按序到达的网络服务。

17. D

选项 A、B 和 C 都是 SDN 的特点。Openflow 协议是控制平面和数据平面之间的接口。在 SDN 中,路由器之间不再相互交换路由信息,由远程控制器计算最佳路由。

18. A

SDN 是一种新型网络体系结构,是一种设计、构建和管理网络的新方法,不是一种新型物理网络结构。在 SDN 中,完成“匹配+动作”的设备通常也称 OpenFlow 交换机。相应地,在 SDN 中取代传统路由器中转发表的是流表。SDN 远程控制器是一种控制平面的实现方式,它由一个远

<!-- page: 149 -->

第4章 网络层
137

程的服务器来计算和分发流表给网络设备,SDN远程控制器不在OpenFlow交换机中。

## 19. A

TCP/IP的网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。考察IP首部,若是面向连接的,则应有用于建立连接的字段,但是首部中没有;若提供可靠的服务,则至少应有序号和检验和两个字段,但是IP分组头中也没有(IP首部中只有首部检验和)。通常,有连接、可靠的应用是由传输层的TCP实现的。

## 20. B

在建立虚电路的阶段,分组才需要携带完整的目的地址,以进行路由器选择。之后,每个分组只需携带短的虚电路号即可,属于同一条虚电路的分组按照同一路由进行转发,分组到达终点的顺序与发送顺序相同,可以保证有序传输。虚电路只是一条逻辑上的连接,并不是一条物理上的连接,因此不需要为每条虚电路预分配带宽。

## 21. B

SDN对上层开发者提供的编程接口称为北向接口,而南向接口则负责控制平面和数据平面间的通信,所以SDN控制器向数据平面的SDN交换机下发流表时使用南向接口。

## 4.2 IPv4

### 4.2.1 IPv4分组

IPv4(版本4)即现在普遍使用的网际协议(Internet Protocol,IP)。IP定义数据传送的基本单元——IP分组及其确切的数据格式。IP也包括一套规则,指明分组如何处理、错误怎样控制。特别是IP还包含非可靠投递的思想,以及与此关联的路由选择的思想。

### 1. IPv4分组的格式

**特点组合** IP首部格式及字段含义(2011、2012)

一个IP分组(或称IP数据报)由首部和数据部分组成。首部前一部分的长度固定,共20B,是所有IP分组必须具有的。在首部固定部分的后面是一些可选字段,用来提供错误检测及安全等机制,其长度可变,从1B到40B不等。IP数据报的格式如图4.5所示。

原转写引用的配图未随 Markdown 保存,请回到原 PDF 核验。

图4.5 IP数据报的格式

<!-- page: 150 -->

2027年计算机网络考研复习指导

IPv4首部的部分重要字段含义如下:

1)版本。占4位。表示IP协议的版本,IPv4中该字段的值为4。
2)首部长度。占4位。以4B为单位,可表示的最大首部长度为60B( $15 \times 4\mathrm{B}$ )。最常用的首部长度是20B( $5 \times 4\mathrm{B}$ ),该字段的值是5,表示不使用可选字段。IP首部长度必须是4B的整数倍,若可选字段导致长度不足,则通过填充字段加以填充。

## 注意

IP首部前两个字节往往以0x45开头,解题时可用于定位IP数据报的开始位置。

3)总长度。占16位,表示首部和数据之和的长度,以1B为单位,因此IP数据报的最大长度为 $2^{16} - 1 = 65535\mathrm{B}$ 。由于以太网MTU为1500B,因此当一个数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过当前链路的MTU。
4)标识。占16位。源主机用一个递增计数器,为每个数据报设置标识字段。它并不是“序号”(因为IP是无连接服务)。分片时,所有分片复制原始数据报的标识字段值,以便目的主机据此正确重组为原数据报。
5)标志(Flag)。占3位,目前只有低2位有意义。MF(More Fragment,更多分片), $\mathbf{MF} = \mathbf{1}$ 表示后面还有分片, $\mathbf{MF} = \mathbf{0}$ 表示这是最后一个分片。DF(Don't Fragment,不能分片),仅当 $\mathbf{DF} = \mathbf{0}$ 时允许分片,若 $\mathrm{DF} = 1$ ,则禁止分片。
6)片偏移。占13位,以8B为单位,指出该分片数据部分起始位置相对于原始数据报数据部分开头的偏移量。除最后一个分片外,其他分片的数据长度必须是8B的整数倍。

**参考文献:** TTL机制的分析(2014、2024)

7)生存时间(TTL)。占8位,表示数据报在网络中允许经过的路由器数的最大值,防止其在网络中无限循环。每经过一个路由器,TTL减1。若TTL被减为0,则丢弃该数据报。若TTL的初值设为1,则该数据报仅限在本局域网内传输。
8)协议。占8位,指出此数据报携带的数据使用何种协议,即指示数据应交付给哪个上层协议(如TCP、UDP)。其中值为6表示TCP,值为17表示UDP。
9)首部检验和。占16位,只检验首部(不含数据部分),不检验数据部分可减少计算的工作量。数据报每经过一个路由器,首部中的某些字段(如生存时间、总长度、标志、片偏移、源/目的地址)都可能发生变化,因此路由器都要重新计算检验和。首部检验和的计算方法与UDP和TCP检验和的计算方法类似,具体见5.2.2节。
10)源地址字段。占4B,标识发送方的IP地址。
11)目的地址字段。占4B,标识接收方的IP地址。

## 注意

① IP数据报首部包含3个与长度相关的字段:首部长度、总长度、片偏移,它们的基本单位分别为4B、1B、8B,计算时要注意换算。读者应理解IP首部各字段的意义和功能,但无须死记首部格式,若题目需要,通常会直接给出。这一原则同样适用于第5章对TCP和UDP首部的学习。
② 在分析 IP 首部的十六进制原始数据时,IP地址以连续 4B 的十六进制形式呈现。将其转换为点分十进制形式时要格外小心,极易因字节顺序或进制转换错误而导致结果偏差。

## 2. IP数据报分片

一个链路层数据帧能承载的最大数据量称为最大传送单元(MTU)。由于IP数据报被封装在

<!-- page: 151 -->

第4章 网络层
139

链路层帧中,其长度受到MTU的严格限制。此外,从源主机到目的主机的路径上可能会经过多段链路,各段链路的MTU可能不同——例如,以太网的MTU通常为1500B,而很多广域网的MTU不超过576B。当IP数据报的总长度超过某段链路的MTU时,就必须将IP数据报中的数据分装在多个较小的IP数据报中,这些较小的数据报称为分片(或片)。

**特点信息** ▶ IP分片相关首部字段(2011)

分片只能发生在源主机或中间路由器上,而重组仅在目的主机上进行。目的主机利用IP首部中的标识、标志和片偏移三个字段完成分片的重组。源主机在创建IP数据报时,会为其分配唯一的标识号。当该数据报被分片时,所有分片均继承原始数据报的标识号。目的主机收到来自同一源主机的多个数据报后,通过比对标识号,即可判断哪些分片属于同一个原始数据报。分片行为受标志字段控制:仅当 $\mathrm{DF} = 0$ 时,数据报才被允许分片;若 $\mathrm{DF} = 1$,则禁止分片。此外, $\mathrm{MF} = 1$ 表示还有后续分片; $\mathrm{MF} = 0$ 表示这是最后一个分片。在重组过程中,依据片偏移字段确定每个分片在原始数据报中的起始位置,从而正确还原原始数据。

**特点信息** ▶ IP分片的原理及分析(2021)

IP分片涉及一定的计算。例如,一个总长4000B的IP数据报(首部20B,数据部分3980B)到达路由器,需转发到MTU为1500B的链路上。每个分片都是一个独立的IP数据报,均包含20B的IP首部,每片最多携带1480B数据,因此需划分为3个分片,数据部分依次为1480B、1480B和1020B。假定原始数据报标识号为777,则各分片如图4.6所示。由于片偏移以8B为单位,为保证偏移值为整数,除最后一个分片外,其余分片的数据长度必须是8B的整数倍。

原转写引用的配图未随 Markdown 保存,请回到原 PDF 核验。

图4.6 IP分片的例子