当前位置: 首页 > news >正文

计算机网络学习笔记 4-6章

第 4 章 网络层

【考纲内容】

(一)网络层的功能
        异构网络互连;路由与转发;SDN 基本概念;拥塞控制
(二)路由算法
        静态路由与动态路由;距离 - 向量路由算法;链路状态路由算法;层次路由
(三)IPv4
        IPv4 分组;IPv4 地址与 NAT;子网划分与子网掩码、CIDR、路由聚合、ARP、DHCP 与 ICMP
(四)IPv6
        IPv6 的主要特点;IPv6 地址
(五)路由协议
        自治系统;域内路由与域间路由;RIP 路由协议;OSPF 路由协议;BGP 路由协议
(六)IP 多播
        多播的概念;IP 多播地址
(七)移动 IP
        移动 IP 的概念;移动 IP 通信过程
(八)网络层设备
        路由器的组成和功能;路由表与路由转发

【复习提示】

        本章是历年考查的重中之重,尤其是结合第 3 章、第 5 章、第 6 章出综合题的概率很大。其中 IPv4 和路由的相关知识点是核心,历年真题都有涉及,因此必须牢固掌握其原理,还要多做题,以便灵活应用。本章的其他知识点,如 IPv6、IP 多播、移动 IP 也要有所了解。

4.1 网络层的功能

        网络层提供主机到主机的通信服务,主要任务是将分组从源主机经过多个网络和多段链路传输到目的主机。该任务可划分为分组转发和路由选择两种重要功能。
        OSI 参考模型曾主张在网络层使用面向连接的虚电路服务,认为应由网络自身来保证通信的可靠性。而 TCP/IP 体系的网络层提供的是无连接的数据报服务,其核心思想是应由用户主机来保证通信的可靠性。虚电路和数据报服务将在 4.1.3 节中介绍。
        在互联网采用的 TCP/IP 体系结构中,网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。也就是说,所传送的分组可能出错、丢失、重复、失序或超时,这就使得网络中的路由器可以做得比较简单,而且价格低廉。通信的可靠性可以由更高层的传输层来负责。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。互联网能够发展到今日的规模,充分证明了当初采用这种设计思想的正确性。

4.1.1 异构网络互连

        互联网是由全球范围内数以百万计的异构网络互连起来的。这些网络的拓扑结构、寻址方案、差错处理方法、路由选择机制等都不尽相同。网络层所要完成的任务之一就是实现这些异构网络的互连。网络互连是指将两个以上的计算机网络,通过一定的方法,用一些中继系统相互连接起来,以构成更大的网络系统。根据所在的层次,中继系统分为以下 4 种:
        1)物理层中继系统:转发器,集线器。
        2)数据链路层中继系统:网桥或交换机。
        3)网络层中继系统:路由器。
        4)网络层以上的中继系统:网关。
        当使用物理层或数据链路层的中继系统时,只是把一个网络扩大了,而从网络层的角度看,它仍然是同一个网络,一般并不称为网络互连。因此,网络互连通常是指用路由器进行网络连接和路由选择。路由器是一台专用计算机,用于在互联网中进行路由选择。

注意:
由于历史原因,许多有关 TCP/IP 的文献也将网络层的路由器称为网关。

        TCP/IP 在网络互连方面的做法是在网络层采用标准化协议,但相互连接的网络可以是异构的。IP 网络的概念如图 4.1 所示。图 4.1 (a) 表示许多计算机网络通过一些路由器进行互连。因为参与互连的计算机网络都使用相同的 IP,通过 IP 就可使这些性能各异的网络在网络层上看起来像是一个统一的网络,所以可把互连后的网络视为如图 4.1 (b) 所示的一个虚拟互连网络,简称 IP 网络。

        使用 IP 网络的好处是:当 IP 网上的主机进行通信时,就好像在单个网络上通信一样,而看不见互连的各个网络的具体异构细节(如具体的编址方案、路由选择协议等)。

4.1.2 路由与转发

        路由器主要完成两个功能:一是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时所采取的动作)。前者根据路由选择协议构造并维护路由表。后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。
        1)路由选择:根据路由协议构造路由表,同时经常或定期地与相邻路由器交换信息,获取网络最新拓扑,动态更新维护路由表,以决定分组到达目的地点的最优路径。
        2)分组转发:指路由器根据转发表将分组从合适的端口转发出去。
        路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应使查找过程最优化,路由表则需要最优化网络拓扑变化的计算。在讨论路由选择的原理时,往往不区分转发表和路由表,而笼统地使用路由表一词。

4.1.3 网络层提供的两种服务

        分组交换网根据其通信子网向端点系统提供的服务,还可进一步分为面向连接的虚电路服务和无连接的数据报服务。这两种服务方式都是由网络层提供的。

1.虚电路

命题追踪 虚电路网络的特性(2020)
        在虚电路方式中,当两台计算机进行通信时,应当先建立网络层的连接,也就是建立一条逻辑上的虚电路(Virtual Circuit,VC),连接一旦建立,就固定了虚电路对应的物理路径。与电路交换类似,整个通信过程分为三个阶段:虚电路建立、数据传输与虚电路释放。
        每次建立虚电路时,将一个未用过的虚电路号(VCID)分配给该虚电路,以区别于本系统中的其他虚电路,然后双方就沿着已建立的虚电路传送分组。分组的首部仅在连接建立时使用完整的目的地址,之后每个分组的首部只需携带这条虚电路的编号即可。在虚电路网络中的每个节点上都维持一张虚电路表,表中每项记录一个打开的虚电路的信息,包括在接收链路和发送链路上的虚电路号、前一节点和下一节点的标识,它是在虚电路建立过程中确定的。
        虚电路方式的工作原理如图 4.2 所示
        1)数据传输前,主机 A 与主机 B 先建立连接,主机 A 发出 “呼叫请求” 分组,该分组通过中间节点送往主机 B,若主机 B 同意连接,则发送 “呼叫应答” 分组予以确认。
        2)虚电路建立后,主机 A 和主机 B 就可相互传送数据分组。
        3)传送结束后,主机 A 通过发送 “释放请求” 分组来拆除虚电路,逐段断开整个连接。
        通过上面的例子,可总结出虚电路服务具有如下特点:
        1)虚电路通信链路的建立和拆除需要时间开销,对交互式应用和少量的短分组情况显得很浪费,但对长时间、频繁的数据交换效率较高。
        2)虚电路的路由选择体现在连接建立阶段,连接建立后,就确定了传输路径。
        3)虚电路提供了可靠的通信功能,能保证每个分组正确且有序到达。此外,还可对两个端点的流量进行控制,当接收方来不及接收数据时,可以通知发送方暂缓发送。
        4)虚电路有一个致命的弱点,即当网络中的某个节点或某条链路出现故障而彻底失效时,所有经过该节点或该链路的虚电路将遭到破坏。
        5)分组首部不包含目的地址,包含的是虚电路号,相对于数据报方式,其开销小。
虚电路之所以是虚,是因为这条电路不是专用的,每个节点到其他节点之间的链路可能同时有若干条虚电路通过,也可能同时在多个节点之间建立虚电路。
注意,图 4.2 所示的数据传输过程是有确认的传输,B 收到分组后要发回相应的确认。

2.数据报
        网络在发送分组前不需要先建立连接。源主机的高层协议将报文拆成若干较小的数据段,并加上地址等控制信息后构成分组。中间节点存储分组很短一段时间,找到最佳的路由后,尽快转发每个分组。网络层不提供服务质量的承诺。因为网络不提供端到端的可靠传输服务,所以这就使得网络中的路由器比较简单,且造价低廉(与电话网络相比)。
        下面用图 4.3 中的例子来说明数据报服务的原理(此处无图 4.3 实际内容,按原文逻辑叙述)。假定主机 A 向主机 B 发送分组。
1)主机 A 先将分组逐个发往与它直接相连的交换节点 A,交换节点 A 缓存收到的分组。
2)然后查找自己的转发表。因为不同时刻的网络状态不同,所以转发表的内容可能不完全相同,所以有的分组转发给交换节点 C,有的分组转发给交换节点 D。
3)网络中的其他节点收到分组后,类似地转发分组,直到分组最终到达主机 B。
当分组正在某一链路上传送时,分组并不占用网络其他部分的资源。因为采用存储转发技术,资源是共享的,所以主机 A 在发送分组时,主机 B 也可同时向其他主机发送分组。
通过上面的例子,可总结出数据报服务具有如下特点:
1)发送分组前不需要建立连接。发送方可随时发送分组,网络中的节点可随时接收分组。
2)网络尽最大努力交付,传输不保证可靠性,所以分组可能出错或丢失;网络为每个分组独立地选择路由,转发的路径可能不同,因此分组不一定按序到达目的节点。
3)发送的分组中要包括发送方和接收方的完整地址,以便可以独立传输。
4)当分组在交换节点存储转发时,需要排队等候处理,这会带来一定的时延。当网络发生拥塞时,这种时延会大大增加,交换节点还可根据情况丢弃部分分组。
5)网络具有冗余路径,当某个交换节点或一条链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强。
6)收发双方不独占某条链路,资源利用率较高。


        采用这种设计思想的好处是:网络的造价大大降低、运行方式灵活、能够适应多种应用。互联网能够发展到今天的规模,充分证明了当初采用这种设计思想的正确性。
        数据报服务和虚电路服务的比较见表 4.1。

4.1.4 SDN 的基本概念

        网络层的主要任务是转发和路由选择。可以将网络层抽象地划分为数据平面(也称转发层面)和控制平面,转发是数据平面实现的功能,而路由选择是控制平面实现的功能。
        软件定义网络(Software Defined Network,SDN)是近年流行的一种创新网络架构,它采用集中式的控制平面和分布式的数据平面,两个平面相互分离,控制平面利用控制 - 数据接口对数据平面上的路由器进行集中式控制,方便软件来控制网络。传统网络中的路由器既有转发表,又有路由选择软件,即既有数据平面,又有控制平面。但是在图 4.4 所示的 SDN 结构中(此处无图 4.4 实际内容,按原文逻辑叙述),路由器都变得简单了,它的路由选择软件都不需要了,因此路由器之间不再相互交换路由信息。在网络的控制平面有一个逻辑上的远程控制器(可由多个服务器组成)。远程控制器掌握各主机和整个网络的状态,为每个分组计算出最佳路由,通过 Openflow 协议(或其他途径)将转发表(在 SDN 中称为流表)下发给路由器。路由器的工作很单纯,即收到分组、查找转发表、转发分组。

        这样,网络又变成集中控制的,而本来互联网是分布式的。SDN 并非要把整个互联网都改造成如图 4.4 所示的集中控制模式,这是不现实的。然而,在某些具体条件下,特别是像一些大型的数据中心之间的广域网,使用 SDN 模式来建造,就可使网络的运行效率更高。

命题追踪 SDN 的南向接口的定义(2022)

        SDN 的可编程性通过为开发者提供强大的编程接口,使得网络具有很好的可编程性。对上层应用的开发者,SDN 提供的编程接口称为北向接口,北向接口提供了一系列丰富的 API,开发者可以在此基础上设计自己的应用,而不必关心底层的硬件细节。SDN 控制器和转发设备建立双向会话的接口称为南向接口,通过不同的南向接口协议(如 Openflow),SDN 控制器就可兼容不同的硬件设备,同时可在设备中实现上层应用的逻辑。SDN 控制器集群内部控制器之间的通信接口称为东西向接口,用于增强整个控制平面的可靠性和可拓展性。

SDN 的优点:

1.全局集中式控制和分布式高速转发,既利于控制平面的全局优化,又利于高性能的网络转发。

2.灵活可编程与性能的平衡,控制和转发功能分离后,使得网络可以由专有的自动化工具以编程方式配置。

3.降低成本,控制和数据平面分离后,尤其是在使用开放的接口协议后,就实现了网络设备的制造与功能软件的开发相分离,从而有效降低了成本。

SDN 的问题:

1.安全风险,集中管理容易受攻击,若崩溃,则整个网络会受到影响。

2.瓶颈问题,原本分布式的控制平面集中化后,随着网络规模扩大,控制器可能成为网络性能的瓶颈。

4.1.5 拥塞控制

        因出现过量的分组而引起网络性能下降的现象称为拥塞。判断网络是否进入拥塞状态的方法是,观察网络的吞吐量与网络负载的关系:若随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,则网络就可能已进入轻度拥塞状态;若网络的吞吐量随着网络负载的增大而下降,则网络就可能已进入拥塞状态。拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,从而利用这些信息进行控制,以避免因拥塞而出现分组的丢失。
        拥塞控制的作用是确保网络能够承载所达到的流量,这是一个全局性的过程,涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素。单一地增加资源并不能解决拥塞。
        与流量控制的区别:流量控制往往是指在发送方和接收方之间的点对点通信量的控制。流量控制所要做的是抑制发送方发送数据的速率,以便使接收方来得及接收。
拥塞控制的方法有两种:
        1)开环控制:在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。这是一种静态的预防方法。一旦整个系统启动并运行,中途就不再需要修改。开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度策略等。所有这些手段的共性是,在做决定时不考虑当前网络的状态。
        2)闭环控制:事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,是一种动态的方法。

4.1.6 本节习题精选

单项选择题

01.路由器连接的异构网络是指( )。
A. 网络的拓扑结构不同
B. 网络中计算机操作系统不同
C. 数据链路层协议和物理层协议至少有一个不同
D. 数据链路层协议相同,物理层协议不同

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

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

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

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

03.在路由器互连的多个局域网的结构中,要求每个局域网( )。
A. 物理层协议可以不同,而数据链路层及其以上的高层协议必须相同
B. 物理层、数据链路层协议可以不同,而数据链路层以上的高层协议必须相同
C. 物理层、数据链路层、网络层协议可以不同,而网络层以上的高层协议必须相同
D. 物理层、数据链路层、网络层及高层协议都可以不同

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

04.在互联网中,一个路由器的路由表通常包含( )。
A. 目的网络和到达目的网络的完整路径
B. 所有目的主机和到达该目的主机的完整路径
C. 目的网络和到达该目的网络路径上的下一个路由器的 IP 地址
D. 目的网络和到达该目的网络路径上的下一个路由器的 MAC 地址

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

05.路由器转发分组的根据是报文的( )。
A. 端口号
B. MAC 地址
C. IP 地址
D. 域名

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

06.路由器在能够开始向输出链路传输分组的第一位之前,必须先接收到整个分组,这种机制称为( )。
A. 存储转发机制
B. 直通交换机制
C. 分组交换机制
D. 分组检测机制

06.A

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

07.在互联网中,IP 分组的传输需要经过源主机和中间路由器到达目的主机,通常( )。
A. 源主机和中间路由器都知道 IP 分组到达目的主机需要经过的完整路径
B. 源主机和中间路由器都不知道 IP 分组到达目的主机需要经过的完整路径
C. 源主机知道 IP 分组到达目的主机需要经过的完整路径,而中间路由器不知道
D. 源主机不知道 IP 分组到达目的主机需要经过的完整路径,而中间路由器知道

07. B

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

08.下列协议中,属于网络层协议的是( )。
I. IP II. TCP III. FTP IV. ICMP
A. I 和 II
B. II 和 III
C. III 和 IV
D. I 和 IV

08. D

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

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

09. D

        电路交换不具备差错控制能力,选项 A 正确。分组交换对每个分组的最大长度有规定,超过此长度的分组都被分割成几个长度较小的分组后再发送,选项 B 正确。
        分组交换又分为数据报和虚电路两种方式。数据报是无连接的,它提供的是不可靠的服务,分组有可能丢失、失序,也不保证到达的时间,但因每个分组独立选择传送路径,当某个节点发生故障时,后续的分组可另选路径,另外通过高层协议如 TCP 也可保证其传输的可靠性和有序性。虚电路是面向连接的,它提供的是可靠的服务,能保证数据的可靠性和有序性,但是一旦虚电路中的某个节点出现故障,就必须重新建立一条虚电路,对于故障率高的传输系统,易出现节点故障,这项任务就显得相当艰巨,因此采用数据报方式更合适。选项 C 正确、选项 D 错误。

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

10. C

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

11.同一报文中的分组可以由不同的传输路径通过通信子网的方法是( )。
A. 分组交换
B. 电路交换
C. 虚电路方式
D. 数据报方式

11. D

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

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

12. D

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

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

13. D

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

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

14. C

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

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

15. C

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

16.下列 4 种传输方式中,由网络负责差错控制和流量控制,分组按顺序被递交的是( )。
A. 电路交换
B. 报文交换
C. 虚电路分组交换
D. 数据报分组交换

16. C

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

17.下列各种描述中,( )不是软件定义网络(SDN)的特点。
A. 控制与转发功能分离
B. 控制平面集中化
C. 接口开放可编程
D. Openflow 取代了路由协议

17. D

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

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

18. A

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

19.【2011 统考真题】TCP/IP 模型的网络层提供的是( )。
A. 无连接不可靠的数据报服务
B. 无连接可靠的数据报服务
C. 有连接不可靠的虚电路服务
D. 有连接可靠的虚电路服务

19. A

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

20.【2020 统考真题】下列关于虚电路网络的叙述中,错误的是( )。
A. 可以确保数据分组传输顺序
B. 需要为每条虚电路预分配带宽
C. 建立虚电路时需要进行路由选择
D. 依据虚电路号(VCID)进行数据分组转发

20. B

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

21.【2022 统考真题】在 SDN 网络体系结构中,SDN 控制器向数据平面的 SDN 交换机下发流表时所使用的接口是( )。
A. 东向接口
B. 南向接口
C. 西向接口
D. 北向接口

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 分组必须具有的。在首部固定部分的后面是一些可选字段,其长度可变,用来提供错误检测及安全等机制。IP 数据报的格式如图 4.5 所示。


IPv4 首部的部分重要字段含义如下:
1)版本:占 4 位。指 IP 的版本,IPv4 数据报中该字段的值是 4。
2)首部长度:占 4 位。以 4B 为单位,最大可表示的首部长度为 60B(15×4B)。最常用的首部长度是 20B(5×4B),该字段的值是 5,此时不使用任何可选字段。
注意:IP 首部前两个字节往往以 0x45 开头,解题时可用于定位 IP 数据报的开始位置。
3)总长度:占 16 位。指首部和数据之和的长度,单位为字节,因此数据报的最大长度为2^16−1=65535B。以太网帧的最大传送单元(MTU)为 1500B,因此当一个 IP 数据报封装成帧时,数据报的总长度(首部加数据)一定不能超过下面的数据链路层的 MTU 值。
4)标识:占 16 位。它是一个计数器,每产生一个数据报就加 1,并赋值给标识字段。但它并不是 “序号”(因为 IP 是无连接服务)。当一个数据报的长度超过网络 MTU 时,必须分片,此时每个数据报片都复制一次标识号,以便能正确地重装成原来的数据报。
5)标志(Flag):占 3 位。标志字段的最低位为 MF,MF = 1 表示后面还有分片,MF = 0 表示最后一个分片。标志字段中间的一位是 DF,只有当 DF = 0 时才允许分片。
6)片偏移:占 13 位。它指出较长的数据报在分片后,某片在原数据报中的相对位置,片偏移以 8B 为偏移单位。除最后一个分片外,每个分片的长度一定是 8B 的整数倍。
命题追踪 TTL 字段的分析与计算(2014、2024)

7)生存时间(TTL):占 8 位。数据报在网络中可通过的路由器数的最大值,标识数据报在网络中的寿命,以确保数据报不会永远在网络中循环。路由器在转发数据报前,先将 TTL 减 1。若 TTL 被减为 0,则该数据报必须丢弃。
8)协议:占 8 位。指出此数据报携带的数据使用何种协议,即数据报的数据部分应上交给哪个协议进行处理,如 TCP、UDP 等。其中值为 6 表示 TCP,值为 17 表示 UDP。
9)首部检验和:占 16 位。它只检验数据报的首部,不包括数据部分,不检验数据部分可减少计算的工作量。数据报每经过一个路由器,其首部中的某些字段(如生存时间、总长度、标志、片偏移、源 / 目的地址)都可能发生变化,因此路由器都要重新计算首部检验和。首部检验和的计算方法与 UDP 和 TCP 的检验和的计算方法相同,具体见 5.2.2 节。
10)源地址字段:占 4B,标识发送方的 IP 地址。
11)目的地址字段:占 4B,标识接收方的 IP 地址。
注意:
        ①在 IP 数据报首部中有三个关于长度的标记,即首部长度、总长度、片偏移,它们的基本单位分别为 4B、1B、8B(需记住)。题中常出现这几个长度之间的加减运算。另外,读者要熟悉 IP 数据报首部中的各个字段的意义和功能,但不需要记忆 IP 数据报的首部,正常情况下若需要参考首部,则题目会直接给出。第 5 章学习的 TCP、UDP 的首部也是一样的。②在分析 IP 首部时,IP 地址通常是用十六进制表示的,要注意其与十进制之间的转换。

2.IP 数据报分片
        一个链路层数据帧能承载的最大数据量称为最大传送单元(MTU)。因为 IP 数据报被封装在链路层的帧中,因此链路层的 MTU 严格地限制了 IP 数据报的长度,而且在 IP 数据报的源与目的地路径上的各段链路可能使用不同的链路层协议,有不同的 MTU。例如,以太网的 MTU 为 1500B,而许多广域网的 MTU 不超过 576B。当 IP 数据报的总长度大于链路 MTU 时,就需要将 IP 数据报中的数据分装在多个较小的 IP 数据报中,这些较小的数据报称为片。
命题追踪 分片时会影响首部中的哪些字段(2011)
        片在目的地的网络层被重新组装。目的主机使用 IP 首部中的标识、标志和片偏移字段来完成对片的重组。创建一个 IP 数据报时,源主机为该数据报加上一个标识号。当一个路由器需要将一个数据报分片时,形成的每个数据报(片)都具有原始数据报的标识号。当目的主机收到来自同一发送主机的一批数据报时,它可通过检查数据报的标识号来确定哪些数据报属于同一个原始数据报的片。IP 首部中的标志位占 3 位,但只有后 2 位有意义,分别是 DF(Don't Fragment)位和 MF(More Fragment)位。只有当 DF = 0 时,该 IP 数据报才可被分片。MF 则用来告知目的主机该 IP 数据报是否为原始数据报的最后一个片。当 MF = 1 时,表示相应的原始数据报还有后续的片;当 MF = 0 时,表示该数据报是相应原始数据报的最后一个片。目的主机在对片进行重组时,使用片偏移字段来确定片应放在原始 IP 数据报的哪个位置。
命题追踪 IP 分片的原理及相关字段的分析(2021)
        IP 分片涉及一定的计算。例如,一个长 4000B 的 IP 数据报(首部 20B,数据部分 3980B)到达一个路由器,需要转发到一条 MTU 为 1500B 的链路上。这意味着原始数据报中的 3980B 数据必须分配到 3 个独立的片中(每片也是一个 IP 数据报),每片的数据部分依次为 1480B、1480B 和 1020B。假定原始数据报的标识号为 777,则分成的 3 片如图 4.6 所示(此处无图 4.6 实际内容,按原文逻辑叙述)。可见,因为偏移值的单位是 8B,所以除最后一个片外,其他所有片中的数据部分都为 8B 的倍数。

4.2.2 IPv4 地址与 NAT

1.IPv4 地址
        IP 地址是给连接到互联网上的每台主机(或路由器)的每个接口,分配的一个在全球范围内唯一的 32 位标识符。IP 地址由互联网名字和数字分配机构 ICANN 进行分配。为方便书写和记忆,常把 32 位 IP 地址分成 4 段,每段 8 位,用等效的十进制数表示,并在每段数字之间加一个小数点,即一个 IP 地址用 4 段十进制数表示,称为点分十进制记法。
        互联网早期采用的是分类的 IP 地址,如下所示:

        无论哪类 IP 地址,都由网络号和主机号两部分组成。即 IP 地址::={<网络号>, < 主机号 >}。其中网络号标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。主机号标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个 IP 地址在整个互联网范围内是唯一的。
命题追踪 特殊 IP 地址 0.0.0.0 的用途(2017)
        在各类 IP 地址中,有些 IP 地址具有特殊用途,不用作主机的 IP 地址:

        主机号全为 0 表示本网络本身,如 202.98.174.0。

        主机号全为 1 表示本网络的广播地址,也称直接广播地址,如 202.98.174.255。

        127.×.×.× 保留作为本地软件环回测试(Loopback Test)本主机的进程之间的通信用,本主机不会将目的地址为环回地址的 IP 数据报发送到任何网络。

        32 位全为 0,即 0.0.0.0,表示本网络上的本主机(见 DHCP)。

        32 位全为 1,即 255.255.255.255,表示受限广播地址,只在本网络上进行广播。
常用的三种类别 IP 地址的使用范围见下表:

        在表4.2中,A 类地址可用的网络数为2^7−2,减 2 的原因是:第一,网络号字段全为 0 的 IP 地址是保留地址,意思是 “本网络”;第二,网络号为 127 的 IP 地址是环回自检地址。每个网络中的最大主机数减 2 的原因是:全 0 和全 1 的主机号一般不指派。

IP 地址有以下重要特点:

        1)每个 IP 地址都由网络号和主机号两部分组成,因此 IP 地址是一种分等级的地址结构。分等级的好处是:①IP 地址管理机构在分配 IP 地址时只分配网络号,而主机号则由得到该网络的单位自行分配,方便了 IP 地址的管理;②路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目标主机号),从而减小了路由表所占的存储空间。
        2)IP 地址是标志一台主机(或路由器)和一条链路的接口。当一台主机同时连接到两个网络时,该主机就必须同时具有两个相应的 IP 地址,其网络号必须是不同的。因此路由器至少应具有两个或两个以上的 IP 地址,每个端口都有一个不同网络号的 IP 地址。
        3)用转发器或桥接器(网桥等)连接的若干 LAN 仍然是同一个网络(同一个广播域),因此该 LAN 中所有主机的 IP 地址的网络号必须相同,但主机号必须不同。
        4)在 IP 地址中,所有分配到网络号的网络(无论是 LAN 还是 WAN)都是平等的。
        5)在同一个局域网上的主机或路由器接口的 IP 地址中的网络号必须是相同的。
        近年来,因为广泛使用无分类 IP 地址进行路由选择,这种传统分类的 IP 地址已成为历史。

2. 网络地址转换(NAT)

        网络地址转换(Network Address Translation,NAT)是指通过将专用网络地址(如 Intranet)转换为公用地址(如 Internet),从而对外隐藏内部管理的 IP 地址。它使得整个专用网只需要一个全球 IP 地址就可与互联网连通,因为专用网本地 IP 地址是可重用的,所以 NAT 大大节省了 IP 地址的消耗。同时,它隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。

命题追踪 私有 IP 地址访问 Internet 的处理(2011)

        此外,为了网络安全,划出了三个私有 IP 地址块。私有 IP 地址只用于 LAN,不用于 WAN 连接(因此私有 IP 地址不能直接用于互联网,必须通过网关利用 NAT 将私有 IP 地址转换为互联网中合法的全球 IP 地址后,才能出现在互联网上),并且允许私有 IP 地址被 LAN 重复使用。这有效地解决了 IP 地址不足的问题。这三个私有 IP 地址块如下:
1)10.0.0.0/8,即 10.0.0.0~10.255.255.255,相当于 1 个 A 类网络。
2)172.16.0.0/12,即 172.16.0.0~172.31.255.255,相当于 16 个连续的 B 类网络。
3)192.168.0.0/16,即 192.168.0.0~192.168.255.255,相当于 256 个连续的 C 类网络。
        在互联网中的所有路由器,对目的地址是私有地址的数据报一律不进行转发。这种采用私有 IP 地址的互联网络称为专用互联网或本地互联网。私有 IP 地址也称可重用地址。
        使用 NAT 时需要在专用网连接到互联网的路由器上安装 NAT 软件,NAT 路由器至少有一个有效的外部全球 IP 地址。当使用本地地址的主机和外界通信时,NAT 路由器使用 NAT 转换表进行本地 IP 地址和全球 IP 地址的转换。NAT 转换表中存放着 {本地 IP 地址:端口} 到 {全球 IP 地址:端口} 的映射。通过这种映射方式,可让多个私有 IP 地址映射到一个全球 IP 地址。

命题追踪 NAT 的原理和应用(2016、2019、2020、2023)

        如图 4.8 所示,假设某家庭办理了 10Mb/s 的电信宽带,那么该家庭就获得一个全球 IP 地址(如 138.76.29.7),而家庭网络内 3 台主机使用私有地址(如 10.0.0.0 网段),家庭网关路由器应开启 NAT 功能。NAT 路由器的工作原理:①假设用户主机 10.0.0.1(随机端口 3345)向 Web 服务器 128.119.40.186(端口 80)发送请求。②NAT 路由器收到 IP 分组后,为该 IP 分组生成一个新端口号 5001,将 IP 分组的源地址改为 138.76.29.7(NAT 路由器的全球 IP 地址),将源端口号改为 5001。NAT 路由器在 NAT 转换表中增加一个表项。③Web 服务器并不知道刚抵达的 IP 分组已被 NAT 路由器改装,更不知道用户的专用地址,它响应的 IP 分组的目的地址是 NAT 路由器的全球 IP 地址 138.76.29.7,目的端口号是 5001。④响应分组到达 NAT 路由器后,通过 NAT 转换表将 IP 分组的目的 IP 地址改为 10.0.0.1,将目的端口号改为 3345。

        这样,只需要一个全球 IP 地址,就可让多台主机同时访问互联网。

注意:

        普通路由器在转发 IP 分组时,其源 IP 地址和目的 IP 地址都不会改变。而 NAT 路由器在转发 IP 分组时,一定要更换其 IP 地址(转换源 IP 地址或目的 IP 地址)。普通路由器仅工作在网络层,而 NAT 路由器转发数据报时需要查看和转换传输层的端口号。

        在某些场合,内网中的一些服务器需要向公网用户提供服务,比如私网中部署的一些 Web 服务器、FTP 服务器等。此时,可在 NAT 表中配置 “公网 IP 地址 + 端口号” 与 “私网 IP 地址 + 端口号” 的映射关系,实现公网用户通过该映射关系访问私网服务器的功能。

4.2.3 划分子网与路由聚合

1. 划分子网

        两级 IP 地址的缺点:IP 地址空间的利用率有时很低;给每个物理网络分配一个网络号会使路由表变得太大,进而使网络性能变坏;两级 IP 地址不够灵活。
        从 1985 年起,在 IP 地址中又增加了一个 “子网号字段”,使两级 IP 地址变成了三级 IP 地址。这种做法称为划分子网。划分子网已成为互联网的正式标准协议。
划分子网的基本思路如下:

        划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的一个网络。

        划分子网的方法是从网络的主机号借用若干位作为子网号,当然主机号也相应减少了相同的位数。三级 IP 地址的结构:IP 地址::={<网络号>, < 子网号 >, < 主机号 >}。

        路由器转发分组根据的仍然是 IP 数据报的目的网络号,本单位的路由器收到 IP 数据报后,再按目的网络号和子网号找到目的子网。最后把 IP 数据报交付给目的主机。

        例如,将一个 C 类网络 208.115.21.0 划分为 4 个子网,子网号占用 2 位,因此主机号就只有 6 位,各子网的网络地址分别为 208.115.21.0、208.115.21.64、208.115.21.128、208.115.21.192。每个子网可分配的 IP 地址数为2^6−2=62。

注意:

        ①划分子网只是把 IP 地址的主机号部分进行再划分,而不改变 IP 地址原来的网络号。因此,从一个 IP 地址本身无法判断该主机所连接的网络是否进行了子网划分。②子网中的主机号全 0 或全 1 的地址不能被指派,其中主机号全 0 的地址为子网的网络地址,主机号全 1 的地址为子网的广播地址。③划分子网增加了灵活性,但减少了能够连接在网络上的主机总数。
2. 子网掩码和默认网关
子网掩码可用来指明分类 IP 地址的主机号部分被借用了多少位作为子网号。

命题追踪 根据 IP 地址和子网掩码求网络地址(2022)

        子网掩码是一个与 IP 地址相对应的、长 32 位的二进制串,它由一串 1 和跟随的一串 0 组成。其中,1 对应于 IP 地址中的网络号及子网号,而 0 对应于主机号。主机或路由器只需将 IP 地址和其对应的子网掩码逐位 “与”(AND 运算),就可得出相应子网的网络地址。

命题追踪 默认网关和子网掩码的配置分析(2015、2016、2019、2022)

        默认网关是子网与外部网络连接的设备,也就是连接本机或子网的路由器接口的 IP 地址。当主机发送数据时,根据所发送数据的目的 IP 地址,通过子网掩码来判定目的主机是否在子网中,若目的主机在子网中,则直接发送。若目的主机不在子网中,则将该数据发送到默认网关,由网关(路由器)将其转发到其他网络,进一步寻找目的主机。
        现在的互联网标准规定:所有网络都必须使用子网掩码。若一个网络未划分子网,则该网络的子网掩码就使用默认子网掩码。A、B、C 类地址的默认子网掩码分别为 255.0.0.0、255.255.0.0、255.255.255.0。例如,某主机的 IP 地址为 192.168.5.56,子网掩码为 255.255.255.0,进行逐位 “与” 运算后,得出该主机所在子网的网络号为 192.168.5.0。
        子网掩码是一个网络的重要属性,路由器相互之间交换路由信息时,必须将自己所在网络的子网掩码告诉对方。分组转发时,路由器将分组的目标地址和某网络的子网掩码按位相与,若结果与该网络地址一致,则路由匹配成功,路由器将分组转发至该网络。
在使用子网掩码的情况下:

①一台主机在设置 IP 地址信息的同时,必须设置子网掩码。

②同属于一个子网的所有主机及路由器的相应端口,必须设置相同的子网掩码。

③路由器的路由表中所包含的信息主要内容有目的网络地址、子网掩码、下一跳地址。

3.无分类编址 CIDR
        无分类域间路由选择(Classless Inter-Domain Routing,CIDR)是在变长子网掩码的基础上,提出的一种消除传统 A、B、C 类地址及划分子网的概念。例如,若一个单位需要 2000 个地址,则给它分配一个 2048 地址的块,而不是分配一个完全的 B 类地址,因此可更有效地分配 IPv4 的地址空间。CIDR 使用网络前缀的概念代替网络的概念,与传统分类 IP 地址最大的区别就是,网络前缀的位数不是固定的,可以任意选取。CIDR 的记法是

                 IP 地址::={<网络前缀>, < 主机号 >}。

命题追踪 CIDR 地址块的分析(2011、2015、2016、2019、2023)

        CIDR 还使用斜线记法(或称 CIDR 记法),即记为 “IP 地址 / 网络前缀所占的位数”。其中,网络前缀所占的位数对应网络号的部分,等效于子网掩码中连续 1 的部分。例如,对于 128.14.32.5/20 这个地址,它的掩码是 20 个连续的 1 和后续 12 个连续的 0,通过逐位 “与” 的方法可得该地址的网络前缀(或直接截取前 20 位):

        斜线记法不仅能表示其 IP 地址,还能表示这个地址块的网络前缀有多少位。采用 CIDR 后,斜线及后面的数字一定不能省略,否则仅从斜线左边的 IP 地址无法知道其网络地址。

命题追踪 地址块的最小地址和最大地址分析(2023)

        CIDR 将网络前缀都相同的连续 IP 地址组成一个 CIDR 地址块。只要知道 CIDR 地址块中的任何一个地址,就能知道这个地址块的最小地址和最大地址,以及地址块中的地址数。上例的地址 128.14.32.5/20 所在 CIDR 地址块中的最小地址和最大地址为:

        最小地址:10000000.00001110.00100000.00000000(128.14.32.0)

        最大地址:10000000.00001110.00101111.11111111(128.14.47.255)
        主机号全 0 或全 1 的地址一般不使用,通常只使用在这两个特殊地址之间的地址。
        CIDR 虽然不使用子网,但仍然使用 “掩码” 一词。“CIDR 不使用子网” 是指 CIDR 并没有在 32 位地址中指明若干位作为子网字段。但分配到一个 CIDR 地址块的单位,仍可在本单位内根据需要划分出一些子网。例如,某单位分配到地址块 / 20,就可继续划分为 8 个子网(从主机号中借用 3 位来划分子网),这时每个子网的网络前缀就变成了 23 位。

命题追踪 子网广播地址 / 网络地址的分析(2011、2012、2018、2019)

        CIDR 地址块中的地址数一定是 2 的整数次幂,实际可指派的地址数通常为2N−2,N 表示主机号的位数,主机号全 0 代表网络号,主机号全 1 为广播地址。网络前缀越短,其地址块包含的地址数就越多。而在三级结构的 IP 地址中,划分子网使网络前缀变长。
4. 路由聚合
        一个大的 CIDR 地址块中包含很多小地址块,因此在路由表中就可利用较大的一个 CIDR 地址块来代替许多较小的地址块。这种方法称为路由聚合,它使得路由表中的一个项目可以表示原来传统分类地址的多条路由项目,压缩了路由表所占的空间,从而提高了网络性能。

命题追踪 路由聚合的分析(2009、2011、2013、2014、2018)

        例如,在如图 4.9 所示的网络中(此处无图 4.9 实际内容,按原文逻辑叙述),若不使用路由聚合,则 R1 的路由表中需要分别有到网络 1 和网络 2 的路由表项。不难发现,网络 1 和网络 2 的网络前缀在二进制表示的情况下,前 16 位都是相同的,第 17 位分别是 0 和 1,并且从 R1 到网络 1 和网络 2 的路由的下一跳皆为 R2。若使用路由聚合,则在 R1 看来,网络 1 和网络 2 可以构成一个更大的地址块 206.1.0.0/16,到网络 1 和网络 2 的两条路由就可聚合成一条到 206.1.0.0/16 的路由。

命题追踪 路由器分组转发的最长前缀匹配(2013、2015)

        最长前缀匹配(也称最佳匹配):使用 CIDR 时,路由表中的表项由 “网络前缀” 和 “下一跳地址” 组成。在查找路由表时可能会得到不止一个匹配结果。此时,应当从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块就越小,因而路由就越具体。
        CIDR 查找路由表的方法:为了更有效地查找最长前缀匹配,通常将无分类编址的路由表存放在一种层次式数据结构(通常采用二叉线索)中,然后自上而下地按层次进行查找。
        CIDR 的优点在于网络前缀长度的灵活性。因为上层网络的前缀长度较短,所以相应的路由表的项目较少。而内部又可采用延长网络前缀的方法来灵活地划分子网。
5. 子网划分的应用举例
        通常有两类划分子网的方法:采用定长的子网掩码,采用变长的子网掩码。
(1)采用定长的子网掩码划分子网
        当采用定长的子网掩码划分子网时,所划分的每个子网使用相同的子网掩码,并且每个子网所分配的 IP 地址数量也相同,因此容易造成地址资源的浪费。

命题追踪 采用定长子网掩码划分子网的应用(2009、2010、2017、2018)

        假设某单位拥有一个 CIDR 地址块为 208.115.21.0/24,该单位有三个部门,各部门的主机台数分别为 50、20、5,采用定长的子网掩码给各部门分配 IP 地址。
        部门 1 需要 51 个 IP 地址(含一个路由器接口地址);部门 2 需要 21 个 IP 地址;部门 3 需要 6 个 IP 地址。接下来,从给定地址块 208.115.21.0/24 的主机号部分借用 2 位作为子网号,这样可以划分为22=4个子网,每个子网可分配的 IP 地址数为28−2−2=62,可满足各部门的需求。各子网的划分如下(为书写方便,只把 IP 地址的后 8 位用二进制展开):

208.115.21.00000000~208.115.21.00111111,地址块 “208.115.21.0/26”,分配给部门1。

208.115.21.01000000~208.115.21.01111111,地址块 “208.115.21.64/26”,分配给部门 2。208.115.21.10000000~208.115.21.10111111,地址块“208.115.21.128/26”,分配给部门 3。

208.115.21.11000000~208.115.21.11111111,地址块 “208.115.21.192/26”,留作以后用。
子网掩码:255.255.255.11000000,即 255.255.255.192。
(2)采用变长的子网掩码划分子网

命题追踪 采用变长子网掩码划分子网的应用(2019、2021)

        采用变长的子网掩码划分子网时,所划分的每个子网可以使用不同的子网掩码,并且每个子网所分配的 IP 地址数量可以不同,这样就尽可能地减少了对地址资源的浪费。
        假设各种条件与上一节的相同,下面采用变长的子网掩码给该单位分配 IP 地址。
        部门 1 的主机号需 6 位,剩余 26(32 - 6 = 26)位作为网络前缀;部门 2 的主机号需 5 位,剩余 27(32 - 5 = 27)位作为网络前缀;部门 3 的主机号需 3 位,剩余 29(32 - 3 = 29)位作为网络前缀。接下来,从地址块 208.115.21.0/24 中划分出 3 个子网(1 个 “/26” 地址块,1 个 “/27” 地址块,1 个 “/29” 地址块),并按需分配给三个部门。每个子网的最小地址只能选取主机号全 0 的地址。划分方案不唯一,建议从大的子网开始划分。以下是一种划分方案:

        子网主机号全 0 或全 1 的地址通常不分配。对于一段连接两个路由器的链路,可以分配一个 “/30” 地址块,这样可分配地址为 2 个,恰好可分配给链路两端的路由器接口。

注意:

        最新标准规定:为了节省 IP 地址资源,直接连线的两个路由器的接口可以不分配 IP 地址。若分配了 IP 地址,则这一段连接就构成一种只包含一段点对点链路的特殊 “网络”,这种网络仅需两个 IP 地址,主机号可以是 0 或 1,因此可以使用 “/31” 地址块。

4.2.4 网络层转发分组的过程

        分组转发都是基于目的主机所在网络的,这是因为互联网上的网络数远小于主机数,这样可以极大地压缩转发表的大小。当分组到达路由器后,路由器根据目的 IP 地址的网络前缀来查找转发表,确定下一跳应当到哪个路由器。因此,在转发表中,每条路由必须有下面两条信息:

        (目的网络地址,下一跳地址)
        这样,IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次间接交付),当到达最后一个路由器时,才试图向目的主机进行直接交付。
        采用 CIDR 编址时,若一个分组在转发表中可以找到多个匹配的前缀,则应当使用最长前缀匹配。为了更快地查找转发表,可以按照前缀的长短,将前缀最长的排在第 1 行,按前缀长度的降序排列。这样,从第 1 行最长的开始查找,只要检索到匹配的,就不必再继续查找。
此外,在路由表中还可以增加两种特殊的路由:

命题追踪 特定主机路由的应用(2009)

1)特定主机路由:对特定目的主机的 IP 地址专门指明一个路由,以方便网络管理员控制和测试网络。若特定主机的 IP 地址是 a.b.c.d,则转发表中对应项的目的网络是 a.b.c.d/32。/32 表示的子网掩码没有意义,但是,这个特殊的前缀可以用在转发表中。

命题追踪 默认路由的应用(2009、2014)

2)默认路由:用特殊前缀 0.0.0.0 表示默认路由,全 0 掩码和任何目的地址进行按位与运算,结果必然为全 0,即必然和前缀 0.0.0.0 相匹配。只要目的网络是其他网络(不在转发表中),就一律选择默认路由。默认路由通常用于路由器到互联网的路由,互联网包括无数的网络集合,不可能在路由表项中一一列出,因此只能采用默认路由的方式。
        特定主机路由条目的匹配优先级最高,默认路由条目的匹配优先级最低。
        综上所述,归纳出路由器执行的分组转发算法如下:
        1)从收到的 IP 分组的首部提取目的主机的 IP 地址 D(目的地址)。
        2)若查找到特定主机路由(目的地址为 D),则按照这条路由的下一跳转发分组;否则从转发表中的下一条(按前缀长度的顺序)开始检查,执行步骤 3)。
        3)将这一行的子网掩码与目的地址 D 逐位 “与”(AND 操作)。若运算结果与本行的前缀匹配,则查找结束,按照 “下一跳” 指出的进行处理(或者直接交付本网络上的目的主机,或通过指定接口发送到下一跳路由器)。否则,若转发表还有下一行,则对下一行进行检查,重新执行步骤 3)。否则,执行步骤 4)。
        4)若转发表中有一个默认路由,则把分组传送给默认路由;否则,报告转发分组出错。
        值得注意的是,转发表(或路由表)并没有给分组指明到某个网络的完整路径(先经过哪个路由器,后经过哪个路由器等)。转发表指出,到某个网络应当先到某个路由器(下一跳路由器),到达下一跳路由器后,再继续查找其转发表,知道再下一步应当到哪个路由器。这样一步一步地查找下去,直到到达目的网络。

注意:

        得到下一跳路由器的 IP 地址后,并不是直接将该地址填入待发送的数据报,而是将该 IP 地址转换成 MAC 地址(通过 ARP),将此 MAC 地址填入 MAC 帧首部,然后根据这个 MAC 地址找到下一跳路由器。在不同网络中传送时,MAC 帧的源地址和目的地址要发生变化。

4.2.5 地址解析协议

1.IP 地址与硬件地址
        IP 地址是网络层及网络层之上使用的地址,它是分层式的。硬件地址(MAC 地址)是数据链路层使用的地址,它是平面式的。IP 地址放在 IP 数据报的首部,而 MAC 地址放在 MAC 帧的首部。把 IP 数据报封装为 MAC 帧后,数据链路层看不见 IP 数据报中的 IP 地址。
        因为路由器的隔离,IP 网络中无法通过广播 MAC 地址来完成跨网络的寻址,所以在网络层只使用 IP 地址来完成寻址。寻址时,每个路由器依据其路由表(依靠路由协议生成)选择到目标网络(主机号全为 0 的网络地址)需要转发到的下一跳(路由器的物理端口号或下一网络地址),而 IP 数据报通过多次路由转发到达目标网络后,改为在目标局域网中通过数据链路层的 MAC 地址以广播方式寻址。这样可以提高路由选择的效率。
下列几个性质是计算机网络的精髓,有必要特别强调:

1)在 IP 层抽象的互联网上只能看到 IP 数据报。

2)虽然在 IP 数据报首部中有源 IP 地址,但路由器只根据目的 IP 地址进行转发。

3)在局域网的链路层,只能看见 MAC 帧。IP 数据报被封装在 MAC 帧中。通过路由器转发时,IP 数据报在每个网络中都被路由器解封装和重新封装,其 MAC 帧首部中的源地址和目的地址会不断改变。这也决定了无法使用 MAC 地址跨网络通信。

4)尽管互连在一起的网络的硬件地址体系各不相同,但 IP 层抽象的互联网屏蔽了下层这些复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机与主机或路由器之间的通信。

注意:

        路由器因为互连多个网络,所以它不仅有多个 IP 地址,还有多个硬件地址。
2. 地址解析协议

命题追踪 ARP 的功能和应用(2011、2012、2021)

        无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成 IP 地址到 MAC 地址的映射,这就是地址解析协议(Address Resolution Protocol,ARP)。每台主机都设有一个 ARP 高速缓存,用来存放本局域网各主机和路由器的 IP 地址到 MAC 地址的映射表,称 ARP 表。使用 ARP 来动态维护 ARP 表。ARP 对高速缓存中的每个映射表项都设置了生存时间(如 20min),超时的项目会从高速缓存中删除。

命题追踪 ARP 请求帧的目的 MAC 地址(2011、2015)

        ARP 工作在网络层,其工作原理如下:主机 A 欲向本局域网的某台主机 B 发送 IP 数据报时,先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。若有,则可以查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。若没有,则通过使用目的 MAC 地址为 FF-FF-FF-FF-FF-FF 的帧来封装并广播 ARP 请求分组(广播发送),使同一个局域网里的所有主机都收到此 ARP 请求。主机 B 收到该 ARP 请求后,向主机 A 发出 ARP 响应分组(单播发送),分组中包含主机 B 的 IP 地址与 MAC 地址的映射关系,主机 A 收到 ARP 响应分组后就将此映射写入 ARP 缓存,然后按查询到的硬件地址发送 MAC 帧。ARP 因为 “看到了” IP 地址,所以它工作在网络层,而 NAT 路由器因为 “看到了” 端口,所以它工作在传输层。对于某个协议工作在哪个层次,读者应该能通过协议的工作原理进行推测。

注意:

        ARP 用于解决同一局域网的主机或路由器的 IP 地址和硬件地址的映射问题。若目的主机和源主机不在同一个局域网,则要通过 ARP 找到本局域网的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络,剩下的工作就由下一个网络来做。尽管 ARP 请求分组是广播发送的,但 ARP 响应分组是普通的单播。
使用 ARP 的 4 种典型情况总结如下(见图 4.10):

        1)发送方是主机(如 H1),要把 IP 分组发送到本网络上的另一台主机(如 H2)。这时 H1 在网 1 用 ARP 找到目的主机 H2 的硬件地址。
        2)发送方是主机(如 H1),要把 IP 分组发送到其他网络上的一台主机(如 H4)。这时 H1 用 ARP 找到与网 1 连接的路由器 R1 的硬件地址(默认网关),剩下的工作由 R1 来完成。

命题追踪 跨局域网的帧的目的 MAC 地址(2015)

注意:

        开始在 H1 和 R1 之间传送时,MAC 帧首部中的源地址是 H1 的 MAC 地址,目的地址是 L1 的硬件地址,路由器 R1 收到此 MAC 帧后,在数据链路层,要丢弃原 MAC 的首部和尾部。这时首部中的源地址和目的地址分别为 L2 和 L3 的 MAC 地址。路由器 R2 收到此帧后,再次更换 MAC 帧的首部和尾部,首部中的源地址和目的地址分别变为 L4 和 H4 的 MAC 地址。MAC 帧首部的这种变化,在上面的 IP 层中是看不见的。

        3)发送方是路由器(如 R1),要把 IP 分组转发到与 R1 连接的网络(网 2)上的一台主机(如 H3)。这时 R1 在网 2 用 ARP 找到目的主机 H3 的硬件地址。
        4)发送方是路由器(如 R1),要把 IP 分组转发到网 3 上的一台主机(如 H4)。这时 R1 在网 2 用 ARP 找到与网 2 连接的路由器 R2 的硬件地址,剩下的工作由 R2 来完成。

        从 IP 地址到硬件地址的解析是自动进行的,主机的用户并不知道这种地址解析过程。只要主机或路由器和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 就自动地将这个 IP 地址解析为数据链路层所需的硬件地址,然后插入 MAC 帧。

从 IP 地址到硬件地址的解析是自动进行的,主机的用户并不知道这种地址解析过程。只要主机或路由器和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 就自动地将这个 IP 地址解析为数据链路层所需的硬件地址,然后插入 MAC 帧。

4.2.6 动态主机配置协议 DHCP

        动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)常用于给主机动态地分配 IP 地址,它提供了即插即用的联网机制,这种机制允许一台计算机加入新的网络和自动获取 IP 地址而不用手工参与。DHCP 是应用层协议,它是基于 UDP 的。

注意:

        连接到互联网的计算机需要配置的项目包括:①IP 地址,②子网掩码,③默认路由器的 IP 地址(默认网关),④域名服务器的 IP 地址。

命题追踪 DHCP 发现报文的作用(2022)

        DHCP 使用客户 / 服务器模型。其工作原理:需要 IP 地址的主机在启动时就向 DHCP 服务器广播发送发现报文,这时该主机就成为 DHCP 客户。本地网络上的所有主机都能收到这个广播报文,但只有 DHCP 服务器才能回答该广播报文。DHCP 服务器先在其数据库中查找该计算机的配置信息。若找到,则返回到找到的信息;若找不到,则从服务器的 IP 地址池中取一个地址分配给该主机。DHCP 服务器的回答报文称为提供报文,包含提供的 IP 地址等配置信息。

命题追踪 DHCP 发现报文的源地址和目的地址(2015、2022)

DHCP 服务器和 DHCP 客户的交换过程如下:
1)DHCP 客户广播 “DHCP 发现” 消息,试图找到网络中的 DHCP 服务器,以便从 DHCP 服务器获得一个 IP 地址。源地址为 0.0.0.0,目的地址为 255.255.255.255。
2)DHCP 服务器收到 “DHCP 发现” 消息后,广播 “DHCP 提供” 消息,其中包括提供给 DHCP 客户机的 IP 地址。源地址为 DHCP 服务器地址,目的地址为 255.255.255.255。
3)DHCP 客户收到 “DHCP 提供” 消息,若接受该 IP 地址,则广播 “DHCP 请求” 消息向 DHCP 服务器请求提供 IP 地址。源地址为 0.0.0.0,目的地址为 255.255.255.255。
4)DHCP 服务器广播 “DHCP 确认” 消息,将 IP 地址分配给 DHCP 客户。源地址为 DHCP 服务器地址,目的地址为 255.255.255.255。

        DHCP 服务器分配给 DHCP 客户的 IP 地址是临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 称这段时间为租用期。租用期的数值应由 DHCP 服务器自己决定,DHCP 客户也可在自己发送的报文中提出对租用期的要求。DHCP 客户可随时提前终止服务器提供的租用期,这时只需向 DHCP 服务器发送释放报文。
        DHCP 客户和服务器端需要通过广播方式来进行交互,原因是在 DHCP 执行初期,客户机不知道服务器端的 IP 地址,而在执行中间,客户机并未被分配 IP 地址,从而导致两者之间的通信必须采用广播的方式。采用 UDP 而不采用 TCP 的原因也很明显:TCP 需要建立连接,若连对方的 IP 地址都不知道,则更不可能通过双方的套接字建立连接。

4.2.7 网际控制报文协议 ICMP

命题追踪 直接为 ICMP 提供服务的协议(2012)

        为了有效地转发 IP 数据报和提高交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol,ICMP),让主机或路由器报告差错和异常情况。ICMP 报文被封装在 IP 数据报中发送,但 ICMP 不是高层协议,而是网络层的协议。
        ICMP 报文有两种,即 ICMP 差错报告报文和 ICMP 询问报文。

命题追踪 ICMP 差错报文的类型及含义(2022)

        ICMP 差错报告报文用于目标主机或到目标主机路径上的路由器,向源主机报告差错和异常情况。共有以下 5 种常用的类型:
1)终点不可达。当路由器或主机不能交付数据报时,就向源点发送终点不可达报文。
2)源点抑制 。当路由器或主机因为拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。(ICMP 标准在不断更新,最新的 ICMP 标准 [RFC6633] 已不再使用 “源点抑制报文” 。)
3)时间超过。当路由器收到一个数据报时,会将其首部中生存时间(TTL)的值减 1。若结果不为 0,则路由器将该数据报转发出去。若结果为 0,则路由器不但要丢弃该数据报,而且要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
4)参数问题。当路由器或目的主机收到的数据报的首部中有的字段(注意不是任意字段)的值不正确时,就丢弃该数据报,并向源点发送参数问题报文。
5)改变路由(重定向)。路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由)。
对于以下几种情况,不应发送 ICMP 差错报告报文:
1)对 ICMP 差错报告报文,不再发送 ICMP 差错报告报文。
2)对第一个分片的数据报片的所有后续数据报片,都不发送 ICMP 差错报告报文。
3)对具有多播地址的数据报,都不发送 ICMP 差错报告报文。
4)对具有特殊地址(如 127.0.0.0 或 0.0.0.0)的数据报,不发送 ICMP 差错报告报文。
常用的 ICMP 询问报文有两种类型:
1)回送请求和回答报文。用来测试目的主机是否可达以及了解其有关状态。
2)时间戳请求和回答报文。利用报文中记录的时间戳,发送方可计算出当前的往返时延。
        ICMP 的两个常见应用是分组网间探测 PING(用来测试两台主机之间的连通性)和 Traceroute(UNIX 中的名字,在 Windows 中是 Tracert,可以用来跟踪分组经过的路由)。其中 PING 使用了 ICMP 回送请求和回答报文,Traceroute(Tracert)使用了 ICMP 时间超过报文。

注意:

        PING 工作在应用层,它直接使用网络层的 ICMP;Traceroute/Tracert 工作在网络层。

4.2.8 本节习题精选

一、单项选择题

01.Internet 的网络层含有 4 个重要的协议,分别为( )。
A. IP,ICMP,ARP,UDP
B. TCP,ICMP,UDP,ARP
C. IP,ICMP,ARP,RARP
D. UDP,IP,ICMP,RARP

01.C
TCP 和 UDP 是传输层协议,IP、ICMP、ARP、RARP(逆地址解析协议)是网络层协议。

02.下列关于 IPv4 分组结构的描述中,错误的是( )。
A. IP 分组头的长度是可变的
B. 协议字段表示 IP 的版本,值为 4 表示 IPv4
C. IP 分组首部长度字段以 4B 为单位,总长度字段以字节为单位
D. 生存时间字段值表示一个分组可以经过的最多的跳数

02.B
协议字段表示使用 IP 的上层协议,如值为 6 表示 TCP,值为 17 表示 UDP。版本字段表示 IP 的版本,值为 4 表示 IPv4,值为 6 表示 IPv6。

03.IPv4 分组首部中有两个有关长度的字段:首部长度和总长度,其中( )。
A. 首部长度字段和总长度字段都以 8 比特为计数单位
B. 首部长度字段以 8 比特为计数单位,总长度字段以 32 比特为计数单位
C. 首部长度字段以 32 比特为计数单位,总长度字段以 8 比特为计数单位
D. 首部长度字段和总长度字段都以 32 比特为计数单位

03.C
在首部中有三个关于长度的标记:首部长度、总长度和片偏移,基本单位分别为 4B、1B 和 8B。IP 分组的首部长度必须是 4B 的整数倍,取值范围是 5~15(默认值是 5)。因为 IP 分组的首部长度是可变的,所以首部长度字段必不可少。总长度字段给出 IP 分组的总长度,单位是字节,包括分组首部和数据部分的长度。数据部分的长度可以从总长度减去分组首部长度计算。

04.下列关于 IP 分组的首部检验和字段的说法中,正确的是( )。
A. 检验和字段检查的范围是整个 IP 分组
B. 计算检验和的方法是对首部的每个 16 比特按反码运算求和再取反码
C. 若网络层发现检验和错误,则丢弃该 IP 分组并发送 ICMP 差错报文
D. IP 分组的检验和的计算需要加入一个伪首部

04.B
检验和字段只检查 IP 数据报的首部,不包括数据部分,选项 A 错误。计算检验和的方法是:先把 IP 数据报的首部划分为许多 16 比特的序列,用反码算术运算把所有 16 比特相加后,将得到的和的反码写入检验和字段,选项 B 正确。IP 并不要求源主机重传有差错的 IP 数据报,保证无差错传输是由 TCP 完成的。另一方面,首部检验和只能检验 IP 数据报的首部是否出错,但不知道首部中的源地址字段是否出错,若源地址出现差错,则将差错报文传送到错误的地址是没有任何意义的,因此接收方的网络层发现检验和出错后,就丢弃该数据报,但不会发送差错报文,选项 C 错误。IP 数据报的检验和的计算不需要加入伪首部,伪首部用于计算 UDP 或 TCP 检验和,选项 D 错误。

05.当数据报到达目的网络后,要传送到目的主机,需要知道 IP 地址对应的( )。
A. 逻辑地址
B. 动态地址
C. 域名
D. 物理地址

05.D
在数据链路层,MAC 地址用来标识主机或路由器,数据报到达具体的目的网络后,需要知道目的主机的 MAC 地址才能成功送达,因此需要将 IP 地址转换成对应的 MAC 地址,即物理地址。

06.若 IPv4 的分组太大,会在传输中被分片,则在( )将对分片后的数据报重组。
A. 中间路由器
B. 下一跳路由器
C. 核心路由器
D. 目的主机

06.D
数据报被分片后,每个分片都将独立地传输到目的地,其间有可能会经过不同的路径,而最后在目的端主机分组才能被重组。

07.在 IP 首部的字段中,与分片和重组无关的字段是( )。
A. 总长度
B. 标识
C. 标志
D. 片偏移

07.A
在 IP 首部中,标识字段的用途是让目标机器确认一个新到达的分片是否属于同一个数据报,用于重组分片后的 IP 数据报。标志字段中的 DF 表示是否允许分片,MF 表示后面是否还有分片。片偏移则指出分组在分片后某片在原分组中的相对位置。

08.下列关于 IP 分组的分片与组装的描述中,错误的是( )。
A. IP 分组头中与分片和组装相关的字段是:标识、标志与片偏移
B. IP 分组规定的最大长度为 65535B
C. 以太网的 MTU 为 1500B
D. 片偏移的单位是 4B

08.D
片偏移标识该分片所携带数据在原始分组所携带数据中的相对位置,以 8B 为单位。

09.若一个 IP 分组的片偏移字段的值为 100,则意味着( )。
A. 该 IP 分组没有分片
B. 该 IP 分组的长度为 100B
C. 该 IP 分组的第一个字节是分片前的第 100 个字节
D. 该 IP 分组的第一个字节是分片前的第 800 个字节

09.D
片偏移以 8B 为偏移单位,它指出数据报在分片后,某片在原数据报中的相对位置。若片偏移值为 0,则表示该数据报片是原数据报的第 1 片,或者该数据报没有分片。若片偏移值为 100,则表示该数据报片的第 1 个字节是原数据报的第 800 个字节。

10.下列关于 IP 分组分片基本方法的描述中,错误的是( )。
A. IP 分组长度大于 MTU 时,就必须对其进行分片
B. DF = 1,分组的长度又超过 MTU 时,则丢弃该分组,不需要向源主机报告
C. 分片的 MF 值为 1 表示接收到的分片不是最后一个分片
D. 属于同一原始 IP 分组的分片具有相同的标识

10.B
若分组长度超过 MTU,则当 DF = 1 时,丢弃该分组,并且要用 ICMP(终点不可达报文)向源主机报告差错;当 DF = 0 时,进行分片,MF = 1 表示后面还有分片。

11.某 IP 分组的片偏移字段值为 100,首部长度字段值为 5,总长度字段值为 100,则该 IP 分组的数据部分的第一个字节的编号与最后一个字节的编号是( )。
A. 100, 200
B. 100, 500
C. 800, 879
D. 800, 900

11.C
片偏移、首部长度、总长度的单位分别为 8B、4B、1B。片偏移值为 100,表示该分片的数据部分的第 1 个字节的编号是 800。分组的总长度为 100B,首部长度为 4B×5 = 20B,所以数据部分的长度为 80B。因此,该分片的数据部分的最后一个字节的编号是 879。

12.路由器 R0 的路由表见下表。若进入路由器 R0 的分组的目的地址为 132.19.237.5,则该分组应该被转发到( )下一跳路由器。

A. R1        B. R2        C. R3        D. R4

12.B
对于选项 A,132.19.237.5 的前 8 位与 132.0.0.0/8 匹配。而 B 选项中,132.19.237.5 的前 11 位与 132.0.0.0/11 匹配。C 选项中,132.19.237.5 的前 22 位与 132.19.232.0/22 不匹配。根据 “最长前缀匹配原则”,该分组应该被转发到 R2。选项 D 为默认路由,只有当前面的所有目的网络都不能和分组的目的 IP 地址匹配时才使用。

13. IP 规定每个 C 类网络最多可以有( )台主机或路由器。
A. 254        B. 256        C. 32        D. 1024

13.A
在分类的 IP 网络中,C 类地址的前 24 位为网络位,后 8 位为主机位,主机位全 “0” 表示网络号,主机位全 “1” 表示广播地址,因此最多可以有 2⁸ - 2 = 254 台主机或路由器。

14. 在下列 4 个地址中,属于子网 86.32.0.0/12 的地址是( )。
A. 86.33.224.123
B. 86.79.65.126
C. 86.79.65.216
D. 86.68.206.154

14.A
CIDR 地址块 86.32.0.0/12 的网络前缀为 12 位,说明第 2 个字节的前 4 位在前缀中,第 2 个字节 32 的二进制形式为 00100000。给出的 4 个地址的前 8 位均相同,而第 2 个字节的前 4 位分别是 0010, 0100, 0100, 0100,所以本题答案为选项 A。

15. 在下列 4 个地址中,属于单播地址的是( )。
A. 172.31.128.255/18
B. 10.255.255.255
C. 192.168.24.59/30
D. 224.105.5.211

15.A
10.255.255.255 为 A 类地址,主机号全 1,代表网络广播,为广播地址。192.168.24.59/30 为 CIDR 地址,只有后面 2 位为主机号,而 59 用二进制表示为 00111011,可知主机号全 1,代表网络广播,为广播地址。224.105.5.211 为 D 类多播地址。

16. 在下列 4 个地址中,属于本地回路地址的是( )。
A. 10.10.10.1
B. 255.255.255.0
C. 192.0.1
D. 127.0.0.1

16.D
所有形如 127.xx.yy.zz 的 IP 地址,都作为保留地址,用于回路测试。

17. 访问互联网的每台主机都需要分配 IP 地址(假定采用默认子网掩码),下列可以分配给主机的 IP 地址是( )。
A. 192.46.10.0
B. 110.47.10.0
C. 127.10.10.17
D. 211.60.256.21

17.B
选项 A 是 C 类地址,掩码为 255.255.255.0,由此得知 A 地址的主机号为全 0(未使用 CIDR),因此不能作为主机地址。选项 C 是为回环测试保留的地址。选项 D 是语法错误的地址,不允许有 256。选项 B 为 A 类地址,其网络号是 110,主机号是 47.10.0。

18. IP 规定,一些特殊的 IP 地址一般是不会被指派的,下列说法错误的是( )。
A. 0.0.0.0 可以作为 DHCP 客户的源 IP 地址
B. 路由器不会转发目的 IP 地址是 255.255.255.255 的 IP 数据报
C. 127.0.0.1 可以作为目的 IP 地址,但不能作为源 IP 地址
D. 路由器可以转发目的 IP 地址的主机号为全 1 的 IP 数据报

18.C
127.x.x.x 用于本地软件的回环测试,既可作为源 IP 地址,又可作为目的 IP 地址,选项 C 错误。0.0.0.0 可作为源 IP 地址,表示本网络上的本主机,通常作为 DHCP 客户的源 IP 地址。255.255.255.255 可作为目的 IP 地址,表示在本网络上进行广播(各路由器均不转发)。网络号为特定网络,主机号为全 1 的目的 IP 地址表示直接广播地址,可对特定网络上的所有主机进行广播。

19. 为了提供更多的子网,为一个 B 类地址指定了子网掩码 255.255.240.0,则每个子网最多可以有的主机数是( )。
A. 16
B. 256
C. 4094
D. 4096

19.C
因为 240₁₀ = 11110000₂,所以共有 12 比特位用于主机地址,且主机位全 0 和全 1 不能使用,所以最多可以有的主机数为 2¹² - 2 = 4094。

20. 不考虑 NAT,在 Internet 中,IP 数据报从源节点到目的节点可能需要经过多个网络和路由器。在整个传输过程中,IP 数据报首部中的( )。
A. 源地址和目的地址都不会发生变化
B. 源地址有可能发生变化而目的地址不会发生变化

C. 源地址不会发生变化而目的地址有可能发生变化
D. 源地址和目的地址都有可能发生变化

20.A
在 Internet 中,IP 数据报从源节点到目的节点可能需要经过多个网络和路由器。当一个路由器接收到一个 IP 数据报时,路由器根据 IP 数据报首部的目的 IP 地址进行路由选择,并不改变源 IP 地址的取值。即使 IP 数据报被分片时,原 IP 数据报的源 IP 地址和目的 IP 地址也将复制到每个分片的首部,因此在整个传输过程中,IP 数据报首部的源 IP 地址和目的 IP 地址都不发生变化。

21. 把 IP 网络划分成子网,这样做的好处是( )。
A. 增加冲突域的大小
B. 增加主机的数量
C. 减少广播域的大小
D. 增加网络的数量

21.C
划分子网可以增加子网的数量(把一个大的网络划分成许多小的网络,这是子网划分的结果,并不是目的),子网之间的数据传输需要通过路由器进行,因此减少了广播域的大小,提高网络的效率和安全性。划分子网后,因为各子网中主机号全 0 和全 1 的地址不能使用,所以会减少总的主机数量,但划分子网提高了 IP 地址的利用率。

22. 一个网段的网络号为 198.90.10.0/27,最多可以分成( )个子网;此网段划分成若干子网后,每个子网最多具有( )个可分配给主机的 IP 地址。
A. 8,30
B. 4,62
C. 16,14
D. 32,6

22.A
由题可知,主机号有 5 位,若主机号只占 1 位,则没有有效的 IP 地址可供分配(除去 0 和 1),因此最少 2 位表示主机号,还剩 3 位表示子网号,所以最多可以分成 8 个子网。而当 5 位都表示主机数,即只有 1 个子网时,每个子网最多具有 30 个有效的 IP 地址(除去全 0 和全 1)。

23. 一台主机有两个 IP 地址,一个地址是 192.168.11.25,另一个地址可能是( )。
A. 192.168.11.0
B. 192.168.11.26
C. 192.168.13.25
D. 192.168.11.24

23.C
在网络中,允许一台主机有两个或两个以上的 IP 地址,若一台主机有两个或两个以上 IP 地址,则说明这台主机属于两个或两个以上的网络。IP 地址 192.168.11.25 属于 C 类 IP 地址,所以与 A、B 和 D 属于同一个网络;只有 C 的网络号不同,表明它属于不同的网络。

24. CIDR 技术的主要作用是( )。
A. 有效分配 IP 地址空间,并减少路由表的数量
B. 把大的网络划分成小的子网
C. 彻底解决 IP 地址资源不足的问题
D. 由多台主机共享同一个网络地址

24.A
CIDR 可以更合理地分配 IP 地址空间,缓解 IP 地址消耗的速度,但无法彻底解决 IP 地址耗尽的问题。CIDR 通过路由聚合可减少路由表数量,从而减少路由器之间的信息交换,提高了网络性能。把大的网络划分成小的子网,这是 CIDR 划分子网的结果,并不是作用。

25. 某个 CIDR 表示的 IPv4 地址为 126.166.66.99/22,则下面的描述中错误的是( )。
A. 网络前缀占用 22 比特
B. 主机编号占用 10 比特
C. 所在地址块包含的地址数为210
D. 126.166.66.99 是所在地址块的第一个地址

25.D
CIDR 表示法是一种用斜线 “/” 后面加上网络前缀所占的位数来表示 IP 地址的方法。网络前缀所占的位数是网络号部分,剩下的位数是主机号部分。所在地址块包含的地址数是 2¹⁰ = 1024。令主机号全为 0,所以 126.166.66.99/22 所在地址块的第一个地址是 126.166.64.0。

26. 某网络的一台主机的 IP 地址是 200.15.10.6/29,其配置的默认网关地址是 200.15.10.7,这样配置后发现主机无法 PING 通任何远程设备,原因是( )。
A. 默认网关的地址不属于这个子网
B. 默认网关的地址是子网中的广播地址
C. 路由器接口的地址是子网的广播地址
D. 路由器接口的地址是多播地址

26.B
200.15.10.7 的最后一个字节展开成二进制为 0000 0111,该地址是 200.15.10.6/29 所在地址块的广播地址,不能使用。若将默认网关设置为广播地址,则导致无法识别网关,而被当作一个广播目标,导致分组无法正确地转发给其他网络,而被分发给本网络上的所有主机。

27. CIDR 地址块 192.168.10.0/20 所包含的 IP 地址范围是(①)。与地址 192.16.0.19/28 同属于一个子网的主机地址是(②)。
① A. 192.168.0.0 ~ 192.168.12.255
B. 192.168.10.0 ~ 192.168.13.255
C. 192.168.10.0 ~ 192.168.14.255
D. 192.168.0.0 ~ 192.168.15.255
② A. 192.16.0.17
B. 192.16.0.31
C. 192.16.0.15
D. 192.16.0.14

27.D、A
CIDR 地址由网络前缀和主机号两部分组成,CIDR 将网络前缀都相同的连续 IP 地址组成 “CIDR 地址块”。网络前缀的长度为 20 位,主机号为 12 位,因此 192.168.0.0/20 地址块中的地址数为 2¹² 个。其中,当主机号为全 0 时,取最小地址 192.168.0.0。当主机号全为 1 时,取最大地址 192.168.15.255。注意,这里并不是指可分配的主机地址。
对于 192.16.0.19/28,表示子网掩码为 255.255.255.240。IP 地址 192.16.0.19 所对应的前 28 位数相同,都是 11000000 00010000 00000000 0001,所以 IP 地址 192.16.0.17 是子网 192.16.0.19/28 的一台主机地址。注意,主机号全 0 和全 1 的地址不使用。

28. 路由器错误和软件故障都可能导致网络中的数据形成传输环路而无限转发环路的分组,IPv4 协议解决该问题的方法是( )。
A. 报文分片
B. 设定生命期
C. 增加检验和
D. 增加选项字段

28.B
为每个 IP 分组设定生存时间(TTL),每经过一个路由器,TTL 减 1,TTL 为 0 时,路由器就不再转发该分组。因此可以避免分组在网络中无限循环下去。

29. 当下列 IP 地址作为 IP 数据报的目的地址时,互联网上的路由器不会正常转发的是( )。
A. 192.172.56.23
B. 172.15.34.128
C. 192.168.32.17
D. 172.128.45.34

29.C
互联网的路由器对目的地址是私有地址的 IP 数据报一律不进行转发。有 3 个私有地址段:
10.0.0.0/8,即 10.0.0.0~10.255.255.255,相当于 1 个 A 类网络。
172.16.0.0/12,即 172.16.0.0~172.31.255.255,相当于 16 个连续的 B 类网络。
192.168.0.0/16,即 192.168.0.0~192.168.255.255,相当于 256 个连续的 C 类网络。

所以只有选项C是内部地址,不允许出现在互联网(公网)上。

30. 为了解决 IP 地址耗尽的问题,可以采用以下一些措施,其中治本的是( )。
A. 划分子网
B. 采用无类比编址 CIDR
C. 采用网络地址转换 NAT
D. 采用 IPv6

30. D

        最初设计的分类 IP 地址,因为每类地址所能连接的主机数大大超过一般单位的需求量,所以造成了 IP 地址的浪费。划分子网通过从网络的主机号借用若干比特作为子网号,从而使原来较大规模的网络细分为几个规模较小的网络,提高了 IP 地址的利用率。

        与划分子网相比,CIDR 是一种更灵活的手段,它消除了 A、B、C 类地址及划分子网的概念。使用各种长度的网络前缀来代替分类地址中的网络号和子网号,将网络前缀都相同的 IP 地址组成 “CIDR 地址块”。网络前缀越短,地址块越大。互联网服务提供者再根据客户的具体情况,分配合适大小的 CIDR 地址块,从而更加有效地利用 IPv4 的地址空间。

        采用网络地址转换(NAT),可以使一些使用本地地址的专用网连接到互联网上,进而使得一些机构的内部主机可以使用专用地址,只需给该机构分配一个 IP 地址即可,并且这些专用地址是可重用的 —— 其他机构也可使用,所以大大节省了 IP 地址的消耗。

        尽管以上三种方法可以在一定阶段内有效缓解 IP 地址耗尽的危机,但无论是从计算机本身发展来看还是从互联网的规模和传输速率来看,现在的 IPv4 地址已很不适用,所以治本的方法还是使用 128 比特编址的 IPv6 地址。

31. 下列对 IP 分组的分片和重组的描述中,正确的是( )。
A. IP 分组可以被源主机分片,并在中间路由器进行重组
B. IP 分组可以被路径中的路由器分片,并在目的主机进行重组
C. IP 分组可以被路径中的路由器分片,并在中间路由器上进行重组
D. IP 分组可以被路径中的路由器分片,并在最后一跳的路由器上进行重组

31. B

        当路由器准备将 IP 分组发送到网络上,而该网络又无法将整个分组一次发送时,路由器必须将该分组分片,使其长度能满足这一网络对分组长度的限制。IP 分片可以独立地通过各个路径发送,而且在传输过程中仍然存在分片的可能(不同网络的 MTU 可能不同),因此不能由中间路由器进行重组。分片后的 IP 分组直至到达目的主机后才能汇集在一起,并且甚至不一定以原先的次序到达。这样,进行接收的主机都要求支持重组能力。

32. 一个网络中有几个子网,其中一个已分配了子网号 74.178.247.96/29,则下列网络前缀中不能再分配给其他子网的是( )。
A. 74.178.247.120/29
B. 74.178.247.64/29
C. 74.178.247.96/28
D. 74.178.247.104/29

32. C

        “/29” 表明前 29 位是网络号,4 个选项的前 3 个字节均相同。A 中第 4 个字节 120 为 01111000,前 5 位为 01111;B 中第 4 个字节 64 为 01000000,前 5 位为 01000;C 中第 4 个字节 96 为 01100000,前 4 位为 0110;D 中第 4 个字节 104 为 01101000,前 5 位为 01101。因为已经分配的子网 74.178.247.96/29 的第 4 个字节的前 5 位为 01100,这与 C 中第 4 个字节的前 4 位重叠,所以 C 中的网络前缀不能再分配给其他子网。

33. 主机 A 和主机 B 的 IP 地址分别为 216.12.31.20 和 216.13.32.21,要想让 A 和 B 工作在同一个 IP 子网内,应该给它们分配的子网掩码是( )。
A. 255.255.255.0
B. 255.255.0.0
C. 255.255.255.255
D. 255.0.0.0

33. D

        本题实际上就是要求找一个子网掩码,使得 A 和 B 的 IP 地址与该子网掩码逐位 “与” 之后得到相同的结果。选项 D 与 A、B 相 “与” 的结果均为 216.0.0.0。

34. 某单位分配了 1 个 B 类地址,计划将内部网络划分成 35 个子网,将来可能增加 16 个子网,每个子网的主机数量接近 800 台,则可行的掩码方案是( )。
A. 255.255.248.0
B. 255.255.252.0
C. 255.255.254.0
D. 255.255.255.0

34. B

        未进行子网划分时,B 类地址有 16 位作为主机位。因为共需要划分 51 个子网,2⁵ < 51 < 2⁶,所以需要从主机位划出 6 位作为子网号,剩下的 10 位可容纳的主机数为 1022(2¹⁰ - 2)台主机,满足题目要求。因此子网掩码为 255.255.252.0。

35. 设有 4 条路由 172.18.129.0/24、172.18.130.0/24、172.18.132.0/24 和 172.18.133.0/24,若进行路由聚合,则能覆盖这 4 条路由的地址是( )。
A. 172.18.128.0/21
B. 172.18.128.0/22
C. 172.18.130.0/22
D. 172.18.132.0/23

35. A

        4 条路由的前 24 位(3 个字节)为网络前缀,前 2 个字节都一样,因此只需要比较第 3 个字节即可,129 = 10000001,130 = 10000010,132 = 10000100,133 = 10000101。前 5 位是完全相同的,因此聚合后的网络的掩码中,1 的数量应该是 8 + 8 + 5 = 21,聚合后的网络的第 3 个字节应该是 10000000 = 128,因此答案为 172.18.128.0/21。

36. 下列 4 个地址块中,与地址块 192.168.6.192/26 不重叠且与 192.168.6.192/26 聚合后的地址块不会引入多余地址的是( )。
A. 192.168.6.0/25
B. 192.168.6.0/26
C. 192.168.6.128/26
D. 192.168.6.192/27

36. C

        选项 A 与 192.168.6.192/26 不重叠,聚合后的地址块为 192.168.6.0/24,聚合后的地址块会引入多余地址。选项 B 与 192.168.6.192/26 不重叠,聚合后的地址块为 192.168.6.0/24,聚合后的地址块会引入多余地址;选项 C 与 192.168.6.192/26 不重叠,聚合后的地址块为 192.168.6.128/25,聚合后的地址块未引入多余地址;选项 D 在 192.168.6.192/26 内,有重叠。

37. 在一条点对点链路上,为了减少 IP 地址的浪费,子网掩码应指定为( )。
A. 255.255.255.252
B. 255.255.255.248
C. 255.255.255.240
D. 255.255.255.196

37. A

        在一条点对点链路中,只需要两个主机 IP 地址、一个网络地址和一个广播地址的 4 种组合,主机号只需 2 位,因此子网掩码应指定为 255.255.255.252 或用 CIDR 表示为 “/30”。

        注意,在新标准中,该题设的子网掩码可指定为 255.255.255.254,或用 CIDR 表示为 “/31”。

38. 某子网的子网掩码为 255.255.255.224,共给 4 台主机分配了 IP 地址,其中一台因 IP 地址分配不当而存在通信故障。这一台主机的 IP 地址是( )。
A. 202.3.1.33
B. 202.3.1.65
C. 202.3.1.44
D. 202.3.1.55

38. B

        本题中,某主机不能正常通信意味着它与其他三台主机不在同一个子网,只需判断哪个选项和其他选项不在同一个子网即可。子网掩码为 255.255.255.224 表示前 27 位是网络号,可以看出选项 B 属于子网 202.3.1.64/27,其他三项属于子网 202.3.1.32/27。或者,后 5 位是主机号,前 3 个子网的地址范围为 202.3.1.1~30, 33~62, 65~94(排除全 0 或全 1),据此也能选出答案。

39. 某主机的 IP 地址是 166.66.66.66,子网掩码为 255.255.192.0,若该主机向其所在子网发送广播分组,则目的 IP 地址应该是( )。
A. 166.66.66.255
B. 166.66.255.255
C. 166.255.255.255
D. 166.66.127.255

39. D

        由子网掩码 255.255.192.0,可知网络号占 18 位,主机号占 14 位,所以该子网的广播地址为 166.66.66.66 的后 14 位主机号为全 1,所以目的 IP 地址为 166.66.127.255。

40. 现将一个 IP 网络划分为 4 个子网,若其中一个子网是 192.168.1.130/26,则下列网络中不可能是另外 3 个子网之一的是( )。
A. 192.168.1.0/25
B. 192.168.1.64/26
C. 192.168.1.96/27
D. 192.168.1.224/27

40. C

        类似于哈夫曼编码的思想,可用高度为 32 的满二叉树来表示整个 IP 地址空间,因此每个分支节点都可表示成一个地址块,该分支节点下的所有叶节点的编码都是属于该地址块的 IP 地址。下图是以地址块 “/24” 为根的二叉树表示,为了简洁,图中省略了共同前缀 192.168.1。

        本题要求找出 3 个子网与题中的子网构成一个更大的网络,对应到二叉树中,需满足两个条件:①4 个子网的地址空间互不重叠,即 4 个分支节点不存在任何祖先或双亲关系;②4 个子网刚好能构成一个新的地址空间,即存在一个节点刚好能覆盖这 4 个节点下的所有子孙。现结合选项分析:选项 A、D 和 110/27 可与题中子网聚合成 / 24 网络;选项 B、00/26、11/26 可与题中子网聚合成 / 24 网络;选项 C 若要与题中子网聚合成一个更大的网络,则至少还需要 00/26、010/27、11/26,共 5 个子网,与题意不符。注意,上述对子网号的分析都是用的二进制表示。

41. 位于不同子网中的主机之间相互通信时,下列说法中正确的是( )。
A. 路由器在转发 IP 数据报时,重新封装源硬件地址和目的硬件地址
B. 路由器在转发 IP 数据报时,重新封装源 IP 地址和目的 IP 地址
C. 路由器在转发 IP 数据报时,重新封装目的硬件地址和目的 IP 地址
D. 源站点可以直接进行 ARP 广播得到目的站点的硬件地址

41. A

        IP 数据报的首部既有源 IP 地址,又有目的 IP 地址,但在通信中路由器只会根据目的 IP 地址进行路由选择。IP 数据报在通信过程中,首部的源 IP 地址和目的 IP 地址在经过路由器时不会发生改变。ARP 广播只在子网中传播,因为相互通信的主机不在同一个子网内,所以不可以直接通过 ARP 广播得到目的站的硬件地址。硬件地址只具有本地意义,因此每当路由器将 IP 数据报转发到一个具体的网络中时,都需要重新封装源硬件地址和目的硬件地址。

        注意:路由器接收到分组后,剥离该分组的数据链路层协议头,然后在分组被转发之前,给分组加上一个新的链路层协议头。

42. 路由器收到目的 IP 地址为 255.255.255.255 的分组,则路由器的操作是( )。
A. 丢弃该 IP 分组
B. 从所有其他接口转发该 IP 分组
C. 通过路由表中的默认路由转发该 IP 分组
D. 通过路由表中的特定主机路由转发该 IP 分组

42. A

        255.255.255.255 是受限的广播地址,仅用于主机配置过程中 IP 分组的目的地址。在任何情况下,路由器都不转发目的地址为受限广播地址的 IP 分组,这种 IP 分组仅出现在本地网络中。

43. 某以太网中,甲的 IP 地址为 211.71.136.23,子网掩码为 255.255.240.0,已知网关地址为 211.71.136.1。若甲向乙(IP 地址为 211.71.130.25)发送一个 IP 分组,则( )。
A. 该分组封装成帧后直接发送给乙,帧中目的 MAC 地址为网关的 MAC 地址
B. 该分组封装成帧后直接发送给乙,帧中目的 MAC 地址为乙的 MAC 地址
C. 该分组封装成帧后交由网关转发,帧中目的 MAC 地址为网关的 MAC 地址
D. 该分组封装成帧后交由网关转发,帧中目的 MAC 地址为乙的 MAC 地址

43. B

        先判断乙和甲是否在同一个子网内,用 IP 地址和子网掩码进行按位 AND 运算,然后检查它们的网络前缀是否相同。若乙和甲在同一个子网内,则直接交付,无须经过网关,因此将乙的 MAC 地址作为帧的目的 MAC 地址。若乙和甲不在同一个子网内,则要通过网关转发,因此将网关的 MAC 地址作为帧的目的 MAC 地址。经计算,甲的网络前缀为 211.71.128.0/20,乙的网络前缀为 211.71.128.0/20,乙和甲在同一个子网内,因此帧的目的 MAC 地址为乙的 MAC 地址。

44. 下列情况需要启动 ARP 请求的是( )。
A. 主机需要接收信息,但 ARP 表中没有源 IP 地址与 MAC 地址的映射关系
B. 主机需要接收信息,但 ARP 表中已有源 IP 地址与 MAC 地址的映射关系
C. 主机需要发送信息,但 ARP 表中没有目的 IP 地址与 MAC 地址的映射关系
D. 主机需要发送信息,但 ARP 表中已有目的 IP 地址与 MAC 地址的映射关系

44. C

        当源主机向本地局域网上的某主机发送 IP 数据报时,先在其 ARP 高速缓存中查看有无目的 IP 地址与 MAC 地址的映射。若有,就把这个硬件地址写入 MAC 帧,然后通过局域网把该 MAC 帧发往此硬件地址;若没有,则先通过广播 ARP 请求分组,在获得目的主机的 ARP 响应分组后,将目的主机的 IP 地址与硬件地址的映射写入 ARP 高速缓存。若目的主机不在本局域网上,则将 IP 分组发送给本局域网上的路由器,当然要先通过同样的方法获得路由器的 IP 地址和硬件地址的映射关系。

45. 某网络拓扑如下图所示,H1 与 H2 的默认网关和子网掩码都分别配置为 192.168.3.1 和 255.255.255.0,H3 和 H4 的默认网关和子网掩码都分别配置为 192.168.3.254 和 255.255.255.128,初始时所有设备的 ARP 缓存均为空。则下列说法中错误的是( )。

A. 若 H1 向 H3 发送数据,则 H2、H3、H4 都能收到 H1 发来的 ARP 请求报文
B. 若 H3 向 H1 发送数据,则 H3 能收到 H1 发来的 ARP 响应报文
C. 若 H1 向 H2 发送数据,则 H2、H3、H4 都能收到 H1 发来的 ARP 请求报文
D. 若 H3 向 H4 发送数据,则 H3 能收到 H4 发来的 ARP 响应报文

45. B

        H3 向 H1 发送数据:①H3 用目的 IP 地址、子网掩码逐位 “与”,192.168.3.2 & 255.255.255.128 = 192.168.3.0,因为与 H3 自身的网络前缀不同,所以判定 H3 和 H1 不属于同一个网络。②H3 使用 ARP 获得默认网关 E1 的 MAC 地址,并将发往 H1 的 IP 数据报封装成 MAC 帧(H3 判定和 H1 不属于同一个网络,因此目的 MAC 地址是默认网关 E1),该帧经过集线器、交换机的转发,最终被默认网关 E1 接收(H1 收不到这个帧),路由器不再向入口 E1 转发 IP 数据报。综上,H3 不会向 H1 发送 ARP 响应报文,选项 B 错误。读者可尝试分析其他选项的通信过程。

46. 网络层的广播指的是目的 IP 地址是广播 IP 地址,数据链路层的广播指的是目的 MAC 地址是广播 MAC 地址,下列报文段封装成 IP 数据报和以太网 MAC 帧后,目的 IP 地址是广播地址,目的 MAC 地址是单播地址的是( )。
I. ARP 请求报文
II. ARP 响应报文
III. DHCP 发现报文
IV. DHCP 提供报文
V. DHCP 请求报文
VI. DHCP 确认报文
A. IV、VI
B. I、III、VI
C. II、V、VI
D. III、IV、V、VI

46. A

        ARP 请求报文的目的 IP 地址是目的主机的 IP 地址,目的 MAC 地址是广播 MAC 地址。ARP 响应报文的目的 IP 地址是发起 ARP 请求的主机的 IP 地址,目的 MAC 地址是发起 ARP 请求的主机的 MAC 地址。DHCP 发现报文的目的 IP 地址是广播 IP 地址 255.255.255.255,目的 MAC 地址是广播 MAC 地址。DHCP 提供报文的目的 IP 地址同样是广播 IP 地址 255.255.255.255,但目的 MAC 地址是客户端主机的 MAC 地址。DHCP 请求报文和 DHCP 发现报文类似;DHCP 确认报文和 DHCP 提供报文类似。

47. 可以动态为主机配置 IP 地址的协议是( )。
A. ARP
B. RARP
C. DHCP
D. NAT

47. C

DHCP 提供了一种机制,使得使用 DHCP 可自动获得 IP 的配置信息而无须手工干预。

48. 若某路由器收到一个 TTL 值为 1 的 IP 数据报,则路由器的操作是( )。
A. 转发该 IP 数据报
B. 仅仅丢弃该 IP 数据报
C. 丢弃该 IP 数据报并向源主机发送类型为终点不可达的 ICMP 差错报告报文
D. 丢弃该 IP 数据报并向源主机发送类型为时间超过的 ICMP 差错报告报文

48. D

若路由器收到一个 TTL 值为 1 的 IP 数据报,则它先将 TTL 值减 1,然后判断是否为 0。若为 0,则丢弃该 IP 数据报并向源主机发送类型为时间超过的 ICMP 差错报告报文。

49. 下列关于 ICMP 报文的说法中,错误的是( )。
A. ICMP 报文封装在数据链路层帧中发送
B. ICMP 报文可以用于报告 IP 数据报发送错误
C. ICMP 报文封装在 IP 数据报中发送
D. 对于已经携带 ICMP 差错报文的分组,不再产生 ICMP 差错报文

49. A

ICMP 属于网络层协议,ICMP 报文被封装在 IP 数据报中发送,但 ICMP 不是高层协议。

50. 下列关于 ICMP 差错报文的描述中,错误的是( )。
A. ICMP 报文分为差错报告报文和询问报文两类
B. 对于已经分片的分组,只对第一个分片产生 ICMP 差错报文
C. PING 使用了 ICMP 差错报文
D. 对于多播的分组,不产生 ICMP 差错报文

50. C

PING 命令使用了 ICMP 的询问报文中的回送请求和回答报文。

51. 【2010 统考真题】某网络的 IP 地址空间为 192.168.5.0/24,采用定长子网划分,子网掩码为 255.255.255.248,则该网络中的最大子网个数、每个子网内的最大可分配地址个数分别是( )。
A. 32,8
B. 32,6
C. 8,32
D. 8,30

51. B

因为该网络的 IP 地址为 192.168.5.0/24,所以网络号为前 24 位,后 8 位为子网号 + 主机号。子网掩码为 255.255.255.248,第 4 个字节 248 转换成二进制为 11111000,因此后 8 位中,前 5 位用于子网号,在 CIDR 中可以表示 2⁵ = 32 个子网;后 3 位用于主机号,除去全 0 和全 1 的情况,可以表示 2³ - 2 = 6 台主机地址。

52. 【2010 统考真题】若路由器 R 因为拥塞丢弃 IP 分组,则此时 R 可向发出该 IP 分组的源主机发送的 ICMP 报文类型是( )。
A. 路由重定向
B. 目的不可达
C. 源点抑制
D. 超时

52. C

ICMP 差错报告报文有 5 种:终点不可达、源点抑制、时间超过、参数问题、改变路由。其中源点抑制是指当路由器或主机因拥塞而丢弃数据报时,向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。注意,最新的 ICMP 标准已不再使用源点抑制报文。

53. 【2011 统考真题】在子网 192.168.4.0/30 中,能接收目的地址为 192.168.4.3 的 IP 分组的最大主机数是( )。
A. 0
B. 1
C. 2
D. 4

53. C

首先分析 192.168.4.0/30 这个网络,主机号占 2 位,地址范围为 192.168.4.0~192.168. 4.3,主机号全 1 时是广播地址、全 0 时是本网络地址,因此可容纳 4 - 2 = 2 台主机。

54. 【2011 统考真题】某网络拓扑如下图所示,路由器 R1 只有到达子网 192.168.1.0/24 的路由。为使 R1 可以将 IP 分组正确地路由到图中的所有子网,在 R1 中需要增加的一条路由(目的网络,子网掩码,下一跳)是( )。

A. 192.168.2.0         255.255.255.128             192.168.1.1
B. 192.168.2.0         255.255.255.0                 192.168.1.1
C. 192.168.2.0         255.255.255.128             192.168.1.2
D. 192.168.2.0         255.255.255.0                 192.168.1.2

54. D

        要使 R1 能正确地将分组路由到所有子网,R1 中需要有到 192.168.2.0/25 和 192.168. 2.128/25 的路由,分别转换成二进制如下:
192.168.2.0:11000000 10101000 00000010 00000000
192.168.2.128:11000000 10101000 00000010 10000000

        前 24 位都相同,于是可以聚合成超网 192.168.2.0/24,子网掩码为前 24 位,即 255. 255.255.0。下一跳是与 R1 直接相连的 R2 的地址,因此是 192.168.1.2。

55. 【2012 统考真题】某主机的 IP 地址为 180.80.77.55,子网掩码为 255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是( )。
A. 180.80.76.0
B. 180.80.76.255
C. 180.80.77.255
D. 180.80.79.255

55. D

        子网掩码的第 3 个字节为 11111100,可知前 22 位为子网号、后 10 位为主机号。IP 地址的第 3 个字节为 01001101(下画线为子网号的一部分),将主机号(后 10 位)全置为 1,可以得到广播地址为 180.80.79.255。

56. 【2012 统考真题】ARP 的功能是( )。
A. 根据 IP 地址查询 MAC 地址
B. 根据 MAC 地址查询 IP 地址
C. 根据域名查询 IP 地址
D. 根据 IP 地址查询域名

56. A

在实际网络的数据链路层上传送数据时,最终必须使用硬件地址,ARP 将网络层的 IP 地址解析为数据链路层的 MAC 地址。

57. 【2012 统考真题】在 TCP/IP 体系结构中,直接为 ICMP 提供服务的协议是( )。
A. PPP
B. IP
C. UDP
D. TCP

57. B

        ICMP 报文作为数据字段封装在 IP 分组中,因此 IP 直接为 ICMP 提供服务。UDP 和 TCP 都是传输层协议,为应用层提供服务。PPP 是数据链路层协议,为网络层提供服务。

58. 【2015 统考真题】某路由器的路由表如下所示:

目的网络

下一跳

接口

169.96.40.0/23

176.1.1.1

S1

169.96.40.0/25

176.2.2.2

S2

169.96.40.0/27

176.3.3.3

S3

0.0.0.0/0

176.4.4.4

S4

若路由器收到一个目的地址为 169.96.40.5 的 IP 分组,则转发该 IP 分组的接口是( )。
A. S1        B. S2        C. S3        D. S4

58. C

        根据 “最长前缀匹配原则”,169.96.40.5 与 169.96.40.0 的前 27 位匹配最长,因此选 C。选项 D 为默认路由,只有当前面的所有目的网络都不能和分组的目的 IP 地址匹配时才使用。

59. 【2016 统考真题】如下图所示,假设 H1 与 H2 的默认网关和子网掩码均分别配置为 192.168.3.254 和 255.255.255.128,H3 和 H4 的默认网关和子网掩码均分别配置为 192.168.3.254 和 255.255.255.128,则下列现象中可能发生的是( )。

A. H1 不能与 H2 进行正常 IP 通信        B. H2 与 H4 均不能访问 Internet
C. H1 不能与 H3 进行正常 IP 通信        D. H3 不能与 H4 进行正常 IP 通信

59. C

从子网掩码可知 H1 和 H2 处于同一网络,H3 和 H4 处于同一网络,因此 H1 和 H2、H3 和 H4 分别可以进行正常的 IP 通信。H1 和 H2、H3 和 H4 处于不同的网络,因此需要通过路由器才能进行正常的 IP 通信,当 H1 向 H3 发送 IP 分组时,H1 用目的 IP 地址、子网掩码逐位 “与” H1 自身的网络前缀不同,于是判定 H3 与 H1 属于不同的网络,需要将该 IP 分组发送到默认网关,而 H1 配置的默认网关为 192.168.3.1,但 R2 的 E1 接口的 IP 地址为 192.168.3.254,因此 H1 不能与 H3 进行正常的 IP 通信。注意,即使 H1 的默认网关配置正确,但因为路由器不会从分组入口进行转发,所以 H1 和 H3 也无法进行正常的 IP 通信。H2 的默认网关为 192.168.3.1,因此 H2 也不能访问 Internet;H4 的默认网关为 192.168.3.254,因此 H4 可以正常访问 Internet。

60. 【2016 统考真题】在上题的图中,假设连接 R1、R2 和 R3 之间的点对点链路使用地址 201.1.3.x/30,当 H3 访问 Web 服务器 S 时,R2 转发出去的封装 HTTP 请求报文的 IP 分组是源 IP 地址和目的 IP 地址,它们分别是( )。
A. 192.168.3.251,130.18.10.1
B. 192.168.3.251,201.1.3.9
C. 201.1.3.8,130.18.10.1
D. 201.1.3.10,130.18.10.1

60. D

当内网用户向公网发送 IP 分组时,NAT 路由器会更改 IP 分组的源地址,因此下一步就是求 R1 的公网 IP 地址。连接 R1、R2 和 R3 之间的点对点链路使用 201.1.3.x/30 地址,可知该地址块的 IP 地址的后两位为主机号,而主机号全 0 和全 1 的 IP 地址不能分配,因此若已知路由器之间的点对点链路中的一个路由器接口的 IP 地址,就可求出另一路由器接口的 IP 地址。在 R1 和 R2 相连的链路中,已知 R1 端接口的 IP 地址为 201.1.3.9/30,将其后 8 位展开成二进制为 0000 1001,所以可分配给 R2 的 L0 接口的 IP 地址为 201.1.3.10。同理,也可求出 R2 的 L1 接口的 IP 地址为 201.1.3.2。访问 Web 服务器,只能通过 R2 的接口 L0 或 L1 转发,所以经过 R2 转发后,IP 分组的源地址可能为 201.1.3.10 或 201.1.3.2,目的地址为 Web 服务器的 IP 地址 130.18.10.1。

61. 【2017 统考真题】若将网络 21.3.0.0/16 划分为 128 个规模相同的子网,则每个子网可分配的最大 IP 地址个数是( )。
A. 254
B. 256
C. 510
D. 512

61. C

这个网络有 16 位的主机号,平均分成 128 个规模相同的子网,每个子网有 7 位的子网号,9 位的主机号。除去一个网络地址和广播地址,可分配的最大 IP 地址个数是 2⁹ - 2 = 512 - 2 = 510。

62. 【2017 统考真题】下列 IP 地址中,只能作为 IP 分组的源 IP 地址但不能作为目的 IP 地址的是( )。
A. 0.0.0.0
B. 127.0.0.1
C. 200.10.10.3
D. 255.255.255.255

62. A

0.0.0.0/32 可以作为本主机在本网络上的源地址。127.0.0.1 是回送地址,以它为目的 IP 地址的数据将被立即返回本机。200.10.10.3 是 C 类 IP 地址。255.255.255.255 是广播地址。

63. 【2018 统考真题】某路由表中有转发接口相同的 4 条路由表项,其目的网络地址分别为 35.230.32.0/21、35.230.40.0/21、35.230.48.0/21 和 35.230.56.0/21,将该 4 条路由聚合后的目的网络地址为( )。
A. 35.230.0.0/19
B. 35.230.0.0/20
C. 35.230.32.0/19
D. 35.230.32.0/20

63. C

对于此类题目,先分析需要聚合的 IP 地址。观察发现,题中的 4 个路由地址,前 16 位完全相同,不同之处在于第 3 段的 8 位中,将这 8 位展开写成二进制,分别如下:

7

6

5

4

3

2

1

0

32

0

0

1

0

0

0

0

0

40

0

0

1

0

1

0

0

0

48

0

0

1

1

0

0

0

0

56

0

0

1

1

1

0

0

0

观察发现,在 4 个地址的第 3 段中,从前向后最多有 3 位相同,因此这 3 位是能聚合的最大位数。将这些相同的位都保留,将第 3 段第 3 位后的所有位都置 0,就得到了聚合后的 IP 地址:35.230.32.0,其网络前缀为 16 + 3,即前 19 位,因此聚合后的网络地址为 35.230.32.0/19。

64. 【2018 统考真题】路由器 R 通过以太网交换机 S1 和 S2 连接两个网络,R 的接口、主机 H1 和 H2 的 IP 地址与 MAC 地址如下图所示。若 H1 向 H2 发送一个 IP 分组 P,则 H1 发出的封装 P 的以太网帧的目的 MAC 地址、H2 收到的封装 P 的以太网帧的源 MAC 地址分别是( )。

A. 00-a1-b2-c3-d4-62,00-1a-2b-3c-4d-52
B. 00-a1-b2-c3-d4-62,00-a1-b2-c3-d4-61
C. 00-1a-2b-3c-4d-51,00-1a-2b-3c-4d-52
D. 00-1a-2b-3c-4d-51,00-a1-b2-c3-d4-61

64. D

        在网络的数据传送中,会经常用到两个地址:MAC 地址和 IP 地址。其中,MAC 地址会随着数据被发往不同的网络而改变,但 IP 地址当且仅当数据在私有网络与外部网络之间传递时才会改变。分组 P 在如题图所示的网络中传递时,首先由主机 H1 将分组发往路由器 R,这时源 MAC 地址为 H1 主机本身的 MAC 地址,即 00 - 1a - 2b - 3c - 4d - 52,目的 MAC 地址为路由器 R 的 MAC 地址,即 00 - 1a - 2b - 3c - 4d - 51。路由器 R 收到分组 P 后,根据分组 P 的目的 IP 地址,得知应将分组从另一个端口转发出去,于是会给分组 P 更换新的 MAC 地址,此时因为从另外的端口转发出去,所以 P 的新源 MAC 地址变为负责转发的端口 MAC 地址,即 00 - a1 - b2 - c3 - d4 - 61,目的 MAC 地址应为主机 H2 的 MAC 地址,即 00 - a1 - b2 - c3 - d4 - 62。根据分析过程,题目所问的 MAC 地址应为路由器 R 两个端口的 MAC 地址,因此选 D。

65. 【2019 统考真题】若将 101.200.16.0/20 划分为 5 个子网,则可能的最小子网的可分配 IP 地址数是( )。
A. 126
B. 254
C. 510
D. 1022

65. B

        网络前缀为 20 位,将 101.200.16.0/20 划分为 5 个子网,为了保证有子网的可分配 IP 地址数尽可能小,即要让其他子网的可分配 IP 地址数尽可能大,不能采用平均划分的方法,而要采用变长的子网划分方法,也就是最大子网用 1 位子网号,第二大子网用 2 位子网号,以此类推。

        子网 1:101.200.0001 0000.00000001~101.200.0001 0111.11111110;地址范围为 101.200.16.1/21~101.200.23.254/21;可分配的 IP 地址数为 2046 个。

        子网 2:101.200.0001 1000.00000001~101.200.0001 1011.11111110;地址范围为 101.200.24.1/22~101.200.27.254/22;可分配的 IP 地址数为 1022 个。

        子网 3:101.200.0001 1100.00000001~101.200.0001 1101.11111110;地址范围为 101.200.28.1/23~101.200.29.254/23;可分配的 IP 地址数为 510 个。

        子网 4:101.200.0001 1110.00000001~101.200.0001 1110.11111110;地址范围为 101.200.30.1/24~101.200.30.254/24;可分配的 IP 地址数为 254 个。

        子网 5:101.200.0001 1111.00000001~101.200.0001 1111.11111110;地址范围为 101.200.31.1/24~101.200.31.254/24;可分配的 IP 地址数为 254 个。

        综上,可能的最小子网的可分配 IP 地址数是 254 个。

66. 【2021 统考真题】现将一个 IP 网络划分为 3 个子网,若其中一个子网是 192.168.9.128/26,则下列网络中不可能是另外两个子网之一的是( )。
A. 192.168.9.0/25
B. 192.168.9.0/26
C. 192.168.9.192/26
D. 192.168.9.192/27

66. B

        划分子网的原则是要求划分出来的子网的 IP 地址空间互不重叠,且原来的 IP 地址空间不遗漏,求解本题最好的方法是代入选项,观察是否可将原 IP 地址空间分割为 3 个互不重叠的子网。根据题意,将 IP 网络划分为 3 个子网。其中一个是 192.168.9.128/26。可简写成 10/26(省略前面相同的 24 位前缀,其中 10 是 128 的二进制 1000 0000 的前两位,因为 26 - 24 = 2)。同理,A 可简写成 0/25;B 可简写成 00/26;C 可简写成 11/26;D 可以简写成 110/27。采用二叉树形式画出这些子网的地址空间如下图所示。

        对于 A 和 C,可以组成 0/25、10/26、11/26 这 3 个互不重叠的子网。对于 D,可以组成 10/26、110/27、111/27 这 3 个互不重叠的子网。但对于 B,要想将一个 IP 网络划分为几个互不重叠的子网,3 个是不够的,至少需要划分为 4 个子网:00/26、01/26、10/26、11/26。

67. 【2021 统考真题】若路由器向 MTU = 800B 的链路转发一个总长度为 1580B 的 IP 数据报(首部长度为 20B)时进行了分片,且每个分片尽可能大,则第 2 个分片的总长度字段和 MF 标志位的值分别是( )。
A. 796, 0
B. 796, 1
C. 800, 0
D. 800, 1

67. B

        链路层 MTU = 800B。IP 分组首部长 20B。片偏移以 8 个字节为偏移单位,因此除了最后一个分片,其他每个分片的数据部分长度都是 8B 的整数倍。所以,最大 IP 分片的数据部分长度为 776B。在总长度为 1580B 的 IP 数据报中,数据部分占 1560B,1560B/776B = 2.01…,需要分成 3 片。所以第 2 个分片的总长度字段为 796,MF 为 1(表示还有后续的分片)。

68. 【2022 统考真题】若某主机的 IP 地址是 183.80.72.48,子网掩码是 255.255.192.0,则该主机所在网络的网络地址是( )。
A. 183.80.0.0
B. 183.80.64.0
C. 183.80.72.0
D. 183.80.192.0

68. B

        主机所在网络的网络地址可以通过主机的 IP 地址和子网掩码逐位 “与” 得到。子网掩码 255.255.192.0 的二进制前 18 位为 1、后 14 位为 0,把主机 IP 地址的后 14 位变为 0,得到的结果为 183.80.64.0,即为主机所在网络的网络地址。

69. 【2022 统考真题】下图所示网络中的主机 H 的子网掩码与默认网关分别是( )。

A. 255.255.255.192,192.168.1.1
B. 255.255.255.192,192.168.1.62
C. 255.255.255.224,192.168.1.1
D. 255.255.255.224,192.168.1.62

69. D

        默认网关可以理解为到当前主机最近的路由器的端口地址,所以是 192.168.1.62,而该主机的子网掩码和网关的子网掩码也相同,/27 即为 255.255.255.224。

70. 【2023 统考真题】某网络拓扑如下图所示,其中路由器 R2 实现 NAT 功能。若主机 H 向 Internet 发送 1 个 IP 分组,则经过 R2 转发后,该 IP 分组的源 IP 地址是( )。

A. 195.123.0.33
B. 195.123.0.35
C. 192.168.0.1
D. 192.168.0.3

70. A

        H 向 Internet 发送 IP 分组,初始的源 IP 地址为 192.168.0.3,经过 NAT 路由器的转发后,将源 IP 地址从私有 IP 地址改成全球 IP 地址(R2 外部接口的 IP 地址),因为 R2 外部接口和 195.123.0.34/30 处于同一子网,该子网可分配的 IP 地址范围是 195.123.0.33~195.123.0.34,所以 R2 外部接口的 IP 地址是 195.123.0.33,也就是经过 R2 转发后的源 IP 地址。

71. 【2023 统考真题】主机 168.16.84.24/20 所在子网的最小可分配 IP 地址和最大可分配 IP 地址分别是( )。
A. 168.16.80.1,168.16.84.254
B. 168.16.80.1,168.16.95.254
C. 168.16.84.1,168.16.84.254
D. 168.16.84.1,168.16.95.254

71. B

网络号位数为 20 = 8×2 + 4,子网掩码为 11111111 11111111 11110000 00000000,将它与主机地址 168.16.84.24 进行逐位 “与”,得到网络地址为 168.16.80.0/20,该网段共有 2¹² - 2 个可供分配的 IP 地址,地址范围是 168.16.80.1~168.16.95.254。

72. 【2024 统考真题】如下图所示的支持 VLAN 划分的交换机,已按端口划分了 3 个 VLAN,部分端口连接主机的 IP 地址和 MAC 地址如图中所示,ARP 表结构为 <IP 地址,MAC 地址,TTL>。下列选项中,不会出现在 H4 的 ARP 表中的是( )。

A. 192.168.3.81,00-18-A2-3B-36-21,14:32:00
B. 192.168.3.91,00-3E-C2-39-12-B5,14:37:00
C. 192.168.3.125,00-E5-78-4A-09-B2,14:45:00
D. 192.168.3.129,00-08-6E-05-A7-82,14:52:00

72. D

        ARP 用于解决局域网上的主机或路由器的 IP 地址和 MAC 地址的映射问题。因此 H4 的 ARP 表中只有和 H4 处于同一虚拟局域网上的主机的 IP 地址和 MAC 地址的映射,H4 位于 VLAN1,H6 位于 VLAN3,因此 D 表示的 H6 的 IP 地址与 MAC 地址的映射不应出现在 H4 的 ARP 表中。

二、综合应用题

01.一个数据报长度为 4000B(首部长度固定为 20B)。现经过一个网络传送,但此网络能够传送的最大数据长度为 1500B。IP 分片时,首部长度不变。试问应当划分为几个短一些的数据报片?各数据报片的数据字段长度、片段偏移字段和 MF 标志应为何值?

01. 【解答】

        数据报长度为 4000B,有效载荷为 4000 - 20 = 3980B。网络能传送的最大有效载荷为 1500 - 20 = 1480B,因此应分为 3 个短些的片,各片的数据字段长度分别为 1480、1480 和 1020B。片段偏移字段的单位为 8B,1480/8 = 185,(1480×2)/8 = 370,因此片段偏移字段的值分别为 0、185、370。MF = 1 时,代表后面还有分片;MF = 0 时,代表后面没有分片,因此 MF 字段的值分别为 1、1 和 0(注意,MF = 0 不能确定是独立的数据报,还是分片得来的,只有当 MF = 0 且片段偏移字段 > 0 时,才能确定是分片的最后一个分片)。

02.某网络的一台主机产生了一个 IP 数据报,首部长度为 20B,数据部分长度为 2000B。该数据报需要经过两个网络到达目的主机,这两个网络所允许的数据链路层的最大传输单位(MTU)分别为 1500B 和 576B。问原 IP 数据报到目的主机时分成了几个 IP 小报文?每个报文的数据部分长度分别是多少?

02. 【解答】

        在 IP 层下面的每种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传输单位(MTU)。1500 - 20 = 1480,2000 - 1480 = 520,所以原 IP 数据报经过第一个网络后分成了两个 IP 小报文,第一个报文的数据部分长度是 1480B,第二个报文的数据部分长度是 520B。

        (除最后一个报片外的)所有报片的有效载荷都是 8B 的倍数。576 - 20 = 556,但 556 不能被 8 整除,所以分片时的数据部分最大只能取 552。第一个报文经过第 2 个网络后,1480 - 552×2 = 376 < 576,变成数据长度分别为 552B、552B、376B 的 3 个 IP 小报文;第 2 个报文 520 < 552,因此不用分片。因此到达目的主机时,原 2000B 的数据被分成数据长度分别为 552B、552B、376B、520B 的 4 个小报文。

03.若到达的分组的片偏移值为 100,分组首部中的首部长度字段值为 5,总长度字段值为 100,则数据部分第一个字节的编号是多少?能确定数据部分最后一个字节的编号吗?

03. 【解答】

        分片的片偏移值表示其数据部分首字节在原始分组的数据部分中的相对位置,单位为 8B。首部长度字段以 4B 为单位,总长度字段以字节为单位。题目中,分组的片偏移值为 100,因此其数据部分第一个字节的编号是 800。因为分组的总长度为 100B,首部长度为 4×5 = 20B,所以数据部分长度为 80B。因此该分组的数据部分的最后一个字节的编号是 879。

04.在 4 个 “/24” 地址块中进行最大可能的聚合:212.56.132.0/24、212.56.133.0/24、212.56.134.0/24、212.56.135.0/24。

04. 【解答】

        因为一个 CIDR 地址块中可以包含很多地址,所以路由表中就利用 CIDR 地址块来查找目的网络,这种地址的聚合常称为路由聚合。

        本题已知有 212.56.132.0/24、212.56.133.0/24、212.56.134.0/24、212.56.135.0/24 地址块,可知第 3 个字节前 6 位相同,因此共同前缀为 8 + 8 + 6 = 22 位,因为这 4 个地址块的第 1、2 个字节相同,考虑它们的第 3 个字节:132 = (10000100)₂,133 = (10000101)₂,134 = (10000110)₂,135 = (1000 0111)₂,所以共同的前缀有 22 位,即 1101010000111000100001,聚合的 CIDR 地址块是 212.56.132.0/22。

05.现有一公司需要创建内部网络,该公司包括工程技术部、市场部、售后部、财务部和办公室 5 个部门,每个部门有 20 - 30 台计算机。试问:
1)若要将几个部门从网络上分开,且分配给该公司使用的地址为一个 C 类地址,网络地址是 192.168.161.0,则如何划分网络?可以将几个部门分开?
2)确定各部门的网络地址和子网掩码,并写出分配给每个部门网络中的主机 IP 地址范围。

05. 【解答】

可以采用划分子网的方法对该公司的网络进行划分。因为该公司包括 5 个部门,所以共需要划分为 5 个子网。

已知网络地址 192.168.161.0 是一个 C 类地址,所需的子网数为 5,每个子网的主机数为 20~30。子网号的比特数为 3,即最多有 2³ = 8 个可分配的子网,主机号的比特数为 5,因为主机号不能为全 0 或全 1,所以每个子网最多有 2⁵ - 2 = 30 个可分配的 IP 地址。
5 个部门子网的子网掩码均为 255.255.255.224,各部门的网络地址与部门主机的 IP 地址范围可分配如下:

06.某路由器具有右表所示的路由表项。

1)假设路由器收到两个分组:分组 A 的目的地址为 131.128.55.33,分组 B 的目的地址为 131.128.55.38。确定路由器为这两个分组选择的下一跳,并加以说明。

2)在路由表中增加一个路由表项,它使以 131.128.55.33 为目的地址的 IP 分组选择 “A” 作为下一跳,而不影响其他目的地址的 IP 分组的转发。

3)在路由表中增加一个路由表项,使所有目的地址与该路由表中任何路由表项都不匹配的 IP 分组被转发到下一跳 “E”。

4)将 131.128.56.0/24 划分为 4 个规模尽可能大的等长子网,给出子网掩码及每个子网的可分配地址范围。

网络前缀

下一跳

131.128.56.0/24

A

131.128.55.32/28

B

131.128.55.32/30

C

131.128.0.0/16

D

06. 【解答】

1)使用 CIDR 时,可能会导致有多个匹配结果,应当从当前匹配结果中选择具有最长网络前缀的路由。下面来一一分析分组 A 与表中这四项的匹配性:

①131.128.56.0/24 与 31.128.55.33 不匹配,因为前 24 位不同。

④②131.128.55.32/28 与 131.128.55.33 的前 24 位匹配,只需看后面 4 位是否匹配,32 转换为二进制为 0010 0000,33 转换为二进制为 0010 0001,匹配,且匹配了 28 位。

③131.128.55.32/30 与 131.128.55.33 的前 24 位匹配,只需要看后面 6 位是否匹配,32 转换为二进制为 0010 0000,33 转换为二进制为 0010 0001,匹配,且匹配了 30 位。

131.128.0.0/16 与 131.128.55.33 匹配,且匹配了 16 位。
综上,对于分组 A,第 2、3、4 项都能与之匹配,但根据最长网络前缀匹配原则,应该选择网络前缀为 131.128.55.32/30 的表项进行转发,下一跳路由器为 C。
同理,对于分组 B,路由表中第 2 和 4 项都能与之匹配,但是根据最长网络前缀匹配原则,应该选择第 2 个路由表项转发,下一跳路由器为 B。

2)即增加 1 条特定主机路由:网络前缀 131.128.55.33/32;下一跳 A。

3)即增加 1 条默认路由:网络前缀 0.0.0.0/0;下一跳 E。

4)要划分成 4 个规模尽可能大的子网,需要从主机位中划出 2 位作为子网位(22=4,CIDR 广泛使用之后允许子网位可以全 0 和全 1)。子网掩码均为 11111111 11111111 11111111 11000000,即 255.255.255.192。而地址范围中不能包含主机位全 0 或全 1 的地址。

07.下表是使用无类别域间路由选择(CIDR)的路由选择表,地址字段是用十六进制表示的,试指出具有下列目标地址的 IP 分组将被投递到哪个下一站?

07. 【解答】

1)网络号 C4.5E.10.0/20(下一站地是 B):第 3 个字节可以用二进制表示成 0001 0000。目标地址 C4.5E.13.87 的第 3 个字节可以用二进制表示成 0001 0011,显然取 20 位掩码与网络号 C4.5E.10.0/20 相匹配,所以具有该目标地址的 IP 分组将被投递到下一站地 B。

2)网络号 C4.50.0.0/12(下一站地是 A):第 2 个字节可以用二进制表示成 0101 0000。目标地址 C4.5E.22.09 的第 2 个字节可以用二进制表示成 0101 1110,显然取 12 位掩码与网络号 C4.50.0.0/12 相匹配,所以具有该目的地址的 IP 分组将被投递到下一站地 A。

3)网络号 80.0.0.0/1(下一站地是 E):第 1 个字节可以用二进制表示成 1000 0000。目标地址 C3.41.80.02 的第 1 个字节可以用二进制表示成 1100 0011,显然取 1 位掩码与网络号 80.0.0.0/1 相匹配,所以具有该目标地址的 IP 分组将被投递到下一站地 E。

4)网络号 40.0.0.0/2(下一站地是 F):第 1 个字节可以用二进制表示成 0100 0000。目标地址 5E.43.91.12 的第 1 个字节可以用二进制表示成 0101 1110,显然取 2 位掩码与网络号 40.0.0.0/2 相匹配,所以具有该目标地址的 IP 分组将被投递到下一站地 F。

08.一个自治系统有 5 个局域网,如下图所示,LAN2 至 LAN5 上的主机数分别为 91、150、3 和 15,该自治系统分配到的 IP 地址块为 30.138.118.0/23,试给出每个局域网的地址块(包括前缀)。

08. 【解答】

        分配网络前缀应先分配地址数较多的前缀。已知该自治系统分配到的 IP 地址块为 30.138.118/23(注意:①一个路由器端口也需要占用一个 IP 地址;②子网划分的答案不唯一)。

        LAN3:主机数 150,因为(27−2)<150+1<(28−2),所以主机号为 8 比特,网络前缀为 24。取第 24 位为 0,分配地址块 30.138.118.0/24。

        LAN2:主机数 91,因为(26−2)<91+1<(27−2),所以主机号为 7 比特,网络前缀为 25。取第 24、25 位为 10,分配地址块 30.138.119.0/25。

        LAN5:主机数 15,因为(24−2)<15+1<(25−2),所以主机号为 5 比特,网络前缀为 27。取第 24、25、26、27 位为 1110,分配地址块 30.138.119.192/27。

        LAN1:共有 3 个路由器,再加上一个网关地址,至少需要 4 个 IP 地址。因为(22−2)<3+1<(23−2),所以主机号为 3 比特,网络前缀为 29。取第 24、25、26、27、28、29 位为 111101,分配地址块 30.138.119.232/29。

        LAN4:主机数为 3,因为(22−2)<3+1<(23−2),所以主机号为 3 比特,网络前缀 29。取第 24、25、26、27、28、29 位为 111110,分配地址块 30.138.119.240/29。

09.某个网络地址块 192.168.75.0 中有 5 台主机 A、B、C、D 和 E,主机 A 的 IP 地址为 192.168.75.18,主机 B 的 IP 地址为 192.168.75.146,主机 C 的 IP 地址为 192.168.75.158,主机 D 的 IP 地址为 192.168.75.161,主机 E 的 IP 地址为 192.168.75.173,共同的子网掩码是 255.255.255.240。请回答:

1)5 台主机 A、B、C、D、E 分属几个网段?哪些主机位于同一网段?主机 D 的网络地址为多少?

2)若要加入第 6 台主机 F,使它能与主机 A 属于同一网段,则其 IP 地址范围是多少?

3)若在网络中另加入一台主机,其 IP 地址为 192.168.75.164,则它的广播地址是多少?哪些主机能够收到?

09. 【解答】

1)共同的子网掩码为 255.255.255.240,表示前 28 位为网络号,同一网段内的 IP 地址具有相同的网络号。主机 A 的网络号为 192.168.75.16;主机 B 的网络号为 192.168.75.144;主机 C 的网络号为 192.168.75.144;主机 D 的网络号为 192.168.75.160;主机 E 的网络号为 192.168.75.160。因此 5 台主机 A、B、C、D、E 分属 3 个网段,主机 B 和 C 在一个网段,主机 D 和 E 在一个网段,A 主机在一个网段。主机 D 的网络号为 192.168.75.160。

2)主机 F 与主机 A 在同一个网段,所以主机 F 所在的网段为 192.168.75.16,第 4 个字节 16 的二进制表示为 0001 0000,最后边的 4 位为主机位,去掉全 0 和全 1。则其 IP 地址范围为 192.168.75.17 - 192.168.75.30,并且不能为 192.168.75.18。

3)因为 164 的二进制为 1010 0100,将最右边的 4 位置 1,即 1010 1111,则广播地址为 192.168.75.175。主机 D 和主机 E 可以收到。

10.一个 IPv4 分组到达一个节点时,其首部信息(以十六进制表示)为:0x45 00 00 54 00 03 58 50 20 06 FF F0 7C 4E 01 02 04 0E 0F 02。IP 分组的首部格式见图 4.5。请回答:

1)分组的源 IP 地址和目的 IP 地址各是什么(点分十进制表示法)?

2)该分组数据部分的长度是多少?

3)该分组是否已经分片?若有分片,则偏移量是多少?

10. 【解答】

IPv4 的首部格式如下,然后根据首部格式来解析首部各个字段的含义。

1)由上图可知,源 IP 地址为 IP 首部的第 13、14、15、16 个字节,即 7C 4E 03 02,转换为点分十进制表示可得源 IP 地址为 124.78.3.2。目的 IP 地址为 IP 首部的第 17、18、19、20 个字节,即 B4 0E 0F 02,转换为点分十进制表示可以得到目的 IP 地址为 180.14.15.2。

2)分组总长度是 IP 首部的第 3、4 个字节,即 00 54,转换为十进制得该分组总长度为 84,单位为字节。而首部长度是 IP 首部的第 5 - 8 位,值为 5,单位为 4B,因此首部长度为 4B×5 = 20B。数据部分长度 = 总长度 - 首部长度 = 84 - 20 = 64B。

3)该分组首部的片偏移字段为第 7、8 个字节(除去第 7 个字节的前 3 位),不等于 0,而是二进制值 1 1000 0101 0000,即十进制数 6224,单位是 8B。另外,分组的标志字段为第 7 个字节的前 3 位,即 010,中间位 DF = 1 表示不可分片,最后位 MF = 0 表示后面没有分片。

11.主机 A 的 IP 地址为 218.207.61.211,MAC 地址为 00:1d:72:98:1d:fc。A 收到一个帧,该帧的前 64 个字节的十六进制形式和 ASCII 形式如下图所示。

IP 分组的首部格式见图 4.5,以太网帧的格式参见 3.6.2 节。问:

1)主机 A 所在网络的网关路由器的相应端口的 MAC 地址是多少?

2)该 IP 分组所携带的数据量为多少字节?

3)若该分组需要被路由器转发到一条 MTU 为 380B 的链路上,则路由器将做何种操作?

11. 【解答】

1)根据收到的帧,找出源 IP 地址为 da c7 66 28,表示成十进制为 218.199.102.40,是一个 C 类 IP 地址,与 A 的 IP 地址 218.207.61.211 不在同一个网络中,所以需经过路由器转发。MAC 地址只具有本地意义(ARP 也只能工作在同一局域网中)。该帧为 A 收到的帧,因此目的 MAC 地址为 A 的 MAC 地址,源 MAC 地址为网关路由器端口的 MAC 地址(若为 A 发出的帧,则目的 MAC 地址为默认网关的 MAC 地址)。首先找到目的 MAC 地址 00:1d:72:98:1d:fc 的位置(在下图中的位置 1 标出),根据以太网帧的结构,目的 MAC 地址后面紧邻的是源 MAC 地址,因此源 MAC 地址为 00:00:5e:00:01:01。

2)要求得 IP 分组所携带的数据量,需要知道首部长度和总长度。218.207.61.211 表示成十六进制是 da.cf.3d.d3,并且作为分组中的目的 IP 地址。在图中确定目的 IP 地址的位置(位3)置 2),再根据 IP 首部的结构,分别从目的 IP 的位置向前数 14 和 16 个字节,即可找到总长度和首部长度字段的位置。但首部长度字段所在的字节值为 0x45,首部长度字段只有 4 位,前 4 位是版本号。因此首部长度的值为 5,单位为 4B,所以首部长度为 20B。总长度字段的值为 0x0190,十进制为 400B。因此分组携带的数据长度为 380B。

因为整个 IP 分组的长度是 400B,大于输出链路 MTU(380B)。这时需要考虑分片,但是否能够分片还得看 IP 首部中的标志位。IP 首部中的标志字段占 3 位,从前到后依次为保留位、DF 位、MF 位。根据 IP 首部结构找到标志字段所在的字节,其值为 0x40,二进制表示为 01000000,于是 DF = 1,不能对该 IP 分组进行分片。此时,路由器应进行的操作是丢弃该分组,并用 ICMP 差错报文向源主机报告。

12.某网络拓扑见下图,R1 和 R2 为路由器,R2 实现了 NAT 功能,Switch 为交换机,Hub 为集线器,Web 服务器 S、主机 H1 - H4 和路由器各接口的 IP 地址配置见图中标注。

回答下列问题:

1)R2 的 E1 接口的 IP 地址是什么?H1 配置的默认网关是什么?

2)假设 H1 和 R2 的 ARP 缓存初始均为空,交换机的交换表初始也为空,H1 向 H3 发送一个 IP 分组 A,H3 收到 A 后向 H1 发送一个响应 IP 分组 B,则能收到封装 A 的以太网帧的主机有哪些?能收到封装 B 的以太网帧的主机有哪些?

3)H1 发出的封装有 HTTP 请求报文的 IP 分组 C,首部中的源 IP 地址和目的 IP 地址分别是什么?当 C 从 R2 转发出去时,首部中的源 IP 地址和目的 IP 地址分别是什么?

12. 【解答】

1)网络前缀 / 30,主机号不能为全 0 或全 1,可求出 R2 接口 E1 的 IP 地址为 203.10.2.1。H1 配置的默认网关应是 R2 接口 E0 的 IP 地址 172.18.1.126。

2)在 H1→R2→H3 传送 IP 分组的过程中,分别使用了两次 ARP,交换机进行了相关的自学习,还需要考虑 Hub 的广播特性。H1 给 H3 发送一个 IP 分组 A,能收到封装 A 的以太网帧的主机有 H3 和 H4,其中 H4 发现帧的目的 MAC 地址与自身的不同且不是广播地址,于是丢弃该帧,而 H3 发现帧的目的 MAC 地址与自身的相同,于是接收该帧。H3 给 H1 发送一个 IP 分组 B,能收到封装 B 的以太网帧的主机有 H4 和 H1,其中 H4 发现帧的目的 MAC 地址与自身的不同且不是广播地址,于是丢弃该帧,而 H1 接收该帧。

3)当 H1 发出 C 时,首部中的源 IP 地址为 H1 的 IP 地址 172.18.1.33,目的 IP 地址为 Web 服务器 S 的 IP 地址 213.48.226.31。当 C 从 R2 转发出去时,首部中的源 IP 地址为 R2 接口 E1 的 IP 地址 203.10.2.1,目的 IP 地址为 Web 服务器 S 的 IP 地址 213.48.226.31。

13.【2009 统考真题】某网络拓扑图如下图所示,路由器 R1 通过接口 E1、E2 分别连接局域网 1、局域网 2,通过接口 L0 连接路由器 R2,并通过路由器 R2 连接域名服务器与互联网。R1 的 L0 接口的 IP 地址是 202.118.2.1;R2 的 L0 接口的 IP 地址是 202.118.2.2,L1 接口的 IP 地址是 130.11.120.1,E0 接口的 IP 地址是 202.118.3.1;域名服务器的 IP 地址是 202.118.3.2。

1)将 IP 地址空间 202.118.1.0/24 划分为两个子网,分别分配给局域网 1 和局域网 2,每个局域网需分配的 IP 地址数不少于 120 个。请给出子网划分结果,说明理由或给出必要的计算过程。

2)请给出 R1 的路由表,使其明确包括到局域网 1 的路由、局域网 2 的路由、域名服务器的主机路由和互联网的路由。

3)请采用路由聚合技术,给出 R2 到局域网 1 和局域网 2 的路由。

13. 【解答】

1)子网号可以全 0 或全 1,但主机号不能全 0 或全 1。因此,若将 IP 地址空间 202.118.1.0/24 划分为 2 个子网,且每个局域网需分配的 IP 地址个数不少于 120 个,则子网号至少要占用 1 位。
由26−2<120<27−2可知,主机号至少要占用 7 位。
因为源 IP 地址空间的网络前缀为 24 位,所以主机号位数 + 子网号位数 = 8。
综上可得主机号位数为 7,子网号位数为 1。
因此子网的划分结果为子网 1:子网地址为 202.118.1.0,子网掩码为 255.255.255.128(或子网 1:202.118.1.0/25);子网 2:子网地址为 202.118.1.128,子网掩码为 255.255.255.128(或子网 2:202.118.1.128/25)。
地址分配方案:子网 1 分配给局域网 1,子网 2 分配给局域网 2;或者子网 1 分配给局域网 2,子网 2 分配给局域网 1。

2)因为局域网 1 和局域网 2 分别与路由器 R1 的 E1、E2 接口直接相连,所以在 R1 的路由表中,目的网络为局域网 1 的转发路径是直接通过接口 E1 转发的,目的网络为局域网 2 的转发路径是直接通过接口 E2 转发的。因为局域网 1、2 的网络前缀均为 25 位,所以它们的子网掩码均为 255.255.255.128。
域名服务器是一台特定的主机,它指明了其 IP 地址,因此设定 1 条特定主机路由,该表项的子网掩码为 255.255.255.255(只有和全 1 的子网掩码相与,才能保证和目的 IP 地址一样,从而选择该特定路由)。对应的下一跳地址是 202.118.2.2,转发接口是 L0。
R1 到互联网的路由实质上相当于一个默认路由(当某一目的 IP 地址与路由表中其他任何表项都不匹配时,则匹配该默认路由。互联网包括了无数的网络集合,不可能在路由表项中一一列出,因此只能采用默认路由的方式),默认路由一般写为 0/0,即目的地址为 0.0.0.0,子网掩码为 0.0.0.0。对应的下一跳地址是 202.118.2.2,转发接口是 L0。
综上可得到路由器 R1 的路由表如下:

(若子网 1 分配给局域网 2,子网 2 分配给局域网 1)

目的网络 IP 地址

子网掩码

下一跳 IP 地址

接口

202.118.1.128

255.255.255.128

E1

202.118.1.0

255.255.255.128

E2

202.118.3.2

255.255.255.255

202.118.2.2

L0

0.0.0.0

0.0.0.0

202.118.2.2

L0

3)局域网 1 和局域网 2 的地址可以聚合为 202.118.1.0/24,而对于路由器 R2 来说,通往局域网 1 和局域网 2 的转发路径都是从 L0 接口转发的,因此采用路由聚合技术后,路由器 R2 到局域网 1 和局域网 2 的路由如下:

14.【2015 统考真题】某网络拓扑如下图所示,其中路由器内网接口、DHCP 服务器、WWW 服务器与主机 1 均采用静态 IP 地址配置,相关地址信息见图中标注;主机 2 - 主机 N 通过 DHCP 服务器动态获取 IP 地址等配置信息。

回答下列问题:

1)DHCP 服务器可为主机 2 - N 动态分配 IP 地址的最大范围是什么?主机 2 使用 DHCP 获取 IP 地址的过程中,发送的封装 DHCP Discover 报文的 IP 分组的源 IP 地址和目的 IP 地址分别是多少?

2)若主机 2 的 ARP 表为空,则该主机访问 Internet 时,发出的第一个以太网帧的目的 MAC 地址是什么?封装主机 2 发往 Internet 的 IP 分组的以太网帧的目的 MAC 地址是什么?

3)若主机 1 的子网掩码和默认网关分别配置为 255.255.255.0 和 111.123.15.2,则该主机是否能访问 WWW 服务器?是否能访问 Internet?请说明理由。

14. 【解答】

1)DHCP 服务器可为主机 2~N 动态分配 IP 地址的最大范围是 111.123.15.5~111.123.15.254;主机 2 发送的封装 DHCP Discover 报文的 IP 分组的源 IP 地址和目的 IP 地址分别是 0.0.0.0 和 255.255.255.255。

2)主机 2 发出的第一个以太网帧的目的 MAC 地址是 ff-ff-ff-ff-ff-ff;封装主机 2 发往 Internet 的 IP 分组的以太网帧的目的 MAC 地址是 00-a1-a1-a1-a1-a1。

3)主机 1 能访问 WWW 服务器,但不能访问 Internet。因为主机 1 的子网掩码配置正确而默认网关 IP 地址被错误地配置为 111.123.15.2(正确 IP 地址是 111.123.15.1),所以主机 1 可以访问在同一个子网内的 WWW 服务器,但当主机 1 访问 Internet 时,主机 1 发出的 IP 分组会被路由到错误的默认网关(111.123.15.2),从而无法到达目的主机。

15.【2018 统考真题】某公司的网络如下图所示。IP 地址空间 192.168.1.0/24 均分给销售部和技术部两个子网,并已分别为部分主机和路由器接口分配了 IP 地址,销售部子网的 MTU = 1500B,技术部子网的 MTU = 800B。

回答下列问题:

1)销售部子网的广播地址是什么?技术部子网的子网地址是什么?若每台主机仅分配一个 IP 地址,则技术部子网还可以连接多少台主机?

2)假设主机 192.168.1.1 向主机 192.168.1.208 发送一个总长度为 1500B 的 IP 分组,IP 分组的首部长度为 20B,路由器在通过接口 F1 转发该 IP 分组时进行了分片。若分片时尽可能分为最大片,则一个最大 IP 分片封装数据的字节数是多少?至少需要分为几个分片?每个分片的片偏移量是多少?

15. 【解答】

1)广播地址是网络地址中主机号全 1 的地址(主机号全 0 的地址代表网络本身)。销售部和技术部均被分配了 192.168.1.0/24 的 IP 地址空间,IP 地址的前 24 位为网络号。于是在后 8 位中划分部门的子网,选择前 1 位作为部门子网的网络号。根据已分配的 IP 地址,销售部子网的网络号为 0,技术部子网的网络号为 1,则技术部的子网地址是 192.168.1.128;销售部的子网地址为 192.168.1.0,广播地址为 192.168.1.127。
每台主机仅分配一个 IP 地址,计算目前还可以分配的主机数,用技术部可以分配的主机数减去已分配的主机数,技术部总共可以分配的计算机主机数为27−2=126(减去全 0 和全 1 的主机号)。已经分配了208−129+1=80台,此外还有 1 个 IP 地址(192.168.1.254)分配给了路由器的端口,因此还可以分配126−80−1=45台。

2)判断分片的大小,需要考虑各个网段的 MTU,而且注意分片的数据长度必须是 8B 的整数倍。由题可知,在技术部子网内,MTU = 800B,IP 分组首部长 20B,最大 IP 分片封装数据的字节数为⌊(800−20)/8⌋×8=776。至少需要的分片数为⌈(1500−20)/776⌉=2。第 1 个分片的偏移量为 0;第 2 个分片的偏移量为776/8=97。

16.【2020 统考真题】某校园网有两个局域网,通过路由器 R1、R2 和 R3 互连后接入 Internet,S1 和 S2 为以太网交换机。局域网采用静态 IP 地址配置,路由器部分接口以及各主机的 IP 地址如下图所示。

请回答下列问题:

1)为使 H2 和 H3 能够访问 Web 服务器(使用默认端口号),需要进行什么配置?

2)若 H2 主动访问 Web 服务器时,将 HTTP 请求报文封装到 IP 数据报 P 中发送,则 H2 发送的 P 的源 IP 地址和目的 IP 地址分别是什么?经过 R3 转发后,P 的源 IP 地址和目的 IP 地址分别是什么?经过 R2 转发后,P 的源 IP 地址和目的 IP 地址分别是什么?

16. 【解答】

1)H2 和 H3 与 Web 服务器处于不同的局域网,路由器 R2、R3 具有 NAT 功能。当 R2 从 WAN 口收到来自 H2 或 H3 发来的 HTTP 请求时,根据 NAT 表发送给 Web 服务器的对应端口。为使外部主机能正常访问 Web 服务器,应在 R2 的 NAT 表中增加一项,外网的 IP 地址配置为路由器的外端 IP 地址,内网的 IP 地址配置为 Web 服务器的 IP 地址,HTTP 的服务器端的默认端口号为 80,因此外网和内网的端口号都需配置为 80。只需在 R2 中配置 Web 服务器的 NAT 表项,而不用在 R3 中配置 H2 和 H3 的 NAT 表项,原因在于 H2 和 H3 是主动访问 Web 服务器,若不提前配置好 Web 服务器的 NAT 映射,则当 IP 分组到达 R2 时,就不知道应当把目的 IP 地址转换成专用网中的哪个本地 IP 地址。而 R3 会自动记录 H2 和 H3 所对应的 IP 地址和端口号,且客户端的端口号是随机分配的,无法做静态配置,只能通过自动动态配置实现。R2 的 NAT 表配置如下:

2)因为启用了 NAT 服务,H2 发送的 P 的源 IP 地址应该是 H2 的内网地址,目的地址应该是 R2 的外网 IP 地址,源 IP 地址是 192.168.1.2,目的 IP 地址是 203.10.2.2。R3 转发后,将 P 的源 IP 地址改为 R3 的外网 IP 地址,目的 IP 地址仍然不变,源 IP 地址是 203.10.2.6,目的 IP 地址是 203.10.2.2。R2 转发后,将 P 的目的 IP 地址改为 Web 服务器的内网地址,源地址仍然不变,源 IP 地址是 203.10.2.6,目的 IP 地址是 192.168.1.2。

17.【2022 统考真题】某网络拓扑如下图所示,R 为路由器,S 为以太网交换机,AP 是 802.11 接入点,路由器的 E0 接口和 DHCP 服务器的 IP 地址配置如图中所示;H1 与 H2 属于同一个广播域,但不属于同一个冲突域;H2 和 H3 属于同一个冲突域;H4 和 H5 已经接入网络,并通过 DHCP 动态获取了 IP 地址。现有路由器、100BaseT 以太网交换机和 100BaseT 集线器(Hub)三类设备各若干。

请回答下列问题:

1)设备 1 和设备 2 应该分别选择哪类设备?

2)若信号传播速度为 2×10⁸m/s,以太网最小帧长为 64B,信号通过设备 2 时会产生额外的 1.51μs 的时延,则 H2 与 H3 之间可以相距的最远距离是多少?

3)在 H4 通过 DHCP 动态获取 IP 地址过程中,H4 首先发送了 DHCP 报文 M,M 是哪种 DHCP 报文?路由器 E0 接口能否收到封装 M 的以太网帧?S 向 DHCP 服务器转发的封装 M 的以太网帧的目的 MAC 地址是什么?

4)若 H4 向 H5 发送一个 IP 分组 P,则 H5 收到的封装 P 的 802.11 帧的地址 1、地址 2 和地址 3 分别是什么?

17. 【解答】

1)设备 1 选择 100BaseT 以太网交换机,设备 2 选择 100BaseT 集线器。因为物理层设备既不能隔离冲突域,又不能隔离广播域,链路层设备可以隔离冲突域但不能隔离广播域。

2)本题与 2016 年真题第 36 题几乎相同,仅修改了几个数字。有关最短帧长的题要抓住两个公式来分析:①发送帧的时间≥争用期的时间;②最短帧长 = 数据传输速率 × 争用期时间。要使公式①恒成立,就要考虑在最短帧长的情况下公式①仍成立。发送最短帧的时间为64B÷100Mb/s=5.12μs,根据公式①可知,该时间即为争用期时间(往返时延)的最大值。本题的特点在于往返时延由两部分组成,即传播时延和 Hub 产生的转发时延。单程总时延为2.56μs,Hub 产生的转发时延为1.51μs,所以传播时延为2.56−1.51=1.05μs,从而 H2 与 H3 之间理论上可以相距的最大距离为200m/μs×1.05μs=210m。

3)M 是 DHCP 发现报文(DISCOVER 报文)。路由器 E0 接口能收到封装 M 的以太网帧,因为 H4 发送的 DHCP 发现报文是广播的形式,所以同一个广播域内的所有设备和接口都可以收到该以太网帧。因为是广播帧,所以目的 MAC 地址是全 1,S 向 DHCP 服务器转发的封装 M 的以太网帧的目的 MAC 地址是 FF-FF-FF-FF-FF-FF。

4)在 H5 收到的帧中,地址 1、地址 2 和地址 3 分别是 00-11-11-11-11-E1、00-11-11-11-11-C1 和 00-11-11-11-11-D1。该帧来自 AP,地址 1 是接收方 H5 的 MAC 地址,地址 2 是 AP 的 MAC 地址,地址 3 是发送方 H4 的 MAC 地址。

4.3 IPv6

4.3.1 IPv6 的特点

        目前广泛使用的 IPv4 是在 20 世纪 70 年代设计的,互联网经过几十年的飞速发展,到 2011 年 2 月,IPv4 地址已经耗尽,为了解决 “IP 地址耗尽” 问题,有以下三种措施:

1)采用无类别编址 CIDR,使 IP 地址的分配更加合理。

2)采用网络地址转换(NAT)方法以节省全球 IP 地址。

3)采用具有更大地址空间的新版本的 IPv6。

        前两种方法只是延长了 IPv4 使用寿命,只有第三种方法能从根本上解决 IP 地址耗尽问题。

命题追踪 IPv6 的特点(2023)

IPv6 的主要特点如下:

        1)更大的地址空间。这是最重要的。IPv6 将地址从 IPv4 的 32 位增大到 128 位,IPv6 的地址空间是 IPv4 的2128/232=296倍,从长远来看,这些地址是绝对够用的。

        2)扩展的地址层次结构。IPv6 因为地址空间很大,所以可以划分为更多的层次。

        3)灵活的首部格式。IPv6 定义了许多可选的扩展首部,不仅可提供比 IPv4 更多的功能,还能提高路由器的处理效率,这是因为路由器对扩展首部不进行处理。

        4)改进的选项。IPv6 首部长度是固定的,其选项放在有效载荷中,选项是灵活可变的。而 IPv4 所规定的选项是固定不变的,其选项放在首部的可选部分。

        5)允许协议继续扩充。IPv6 允许不断扩充功能,而 IPv4 的功能是固定不变的。

        6)支持即插即用(自动配置)。因此 IPv6 不需要使用 DHCP。

        7)支持资源的预分配。IPv6 支持实时音 / 视频等要求保证一定带宽和时延的应用。

        8)IPv6 只有源主机才能分片,是端到端的,不允许类似 IPv4 在中间路由器进行分片。

        9)IPv6 首部长度是固定的 40B,而 IPv4 首部长度是可变的(必须是 4B 的整数倍)。

        10)增大了安全性。身份鉴别和保密功能是 IPv6 的扩展首部。

        虽然 IPv6 与 IPv4 不兼容,但总体而言它与所有其他的互联网协议兼容,包括 TCP、UDP、ICMP、IGMP 和 DNS 等,只是在少数地方做了必要的修改(大部分是为了处理长地址)。

4.3.2 IPv6 数据报的基本首部

        IPv6 数据报由两部分组成:基本首部和有效载荷(也称净负荷)。有效载荷由零个或多个扩展首部(扩展首部不属于 IPv6 数据报的首部)及其后面的数据部分构成,如图 4.11 所示。

与 IPv4 相比,IPv6 对首部中的某些字段进行了如下更改:

  • 取消了首部长度字段,因为它的首部长度是固定的(40B)。
  • 取消了服务类型字段,因为优先级和流标号字段实现了服务类型字段的功能。
  • 取消了总长度字段,改用有效载荷长度字段。
  • 取消了标识、标志和片偏移字段,因为这些功能已包含在分片扩展首部中。
  • 把 TTL 字段改称为跳数限制字段,但作用是一样的(名称与作用更加一致)。
  • 取消了协议字段,改用下一个首部字段。
  • 取消了检验和字段,毕竟在传输层有差错检验功能,这样就加快了路由器的处理速度。
  • 取消了选项字段,而用扩展首部来实现选项功能。

        因为取消了首部中不必要的功能,IPv6 基本首部的字段数减少到只有 8 个,但是由于 IPv6 地址长度为 128 位,所以 IPv6 基本首部的长度反而增大到 40B。IPv6 数据报的基本首部的格式如图 4.12 所示。

命题追踪 IPv6 基本首部字段的意义(2023)

下面简单介绍 IPv6 基本首部中各字段的含义:

1)版本。占 4 位,指明协议的版本,对于 IPv6 该字段的值是 6。

2)通信量类。占 8 位,用来区分不同的 IPv6 数据报的类别或优先级。

3)流标号。占 20 位,IPv6 提出流的抽象概念。流是指互联网上从特定源点到特定终点(单播或多播)的一系列数据报(如实时音 / 视频传输),而在这个 “流” 所经过的路径上的路由器都保证指明的服务质量。所有属于同一个流的数据报都具有相同的流标号。

4)有效载荷长度。占 16 位,指明 IPv6 数据报除基本首部以外的字节数(所有扩展首部都算在有效载荷之内)。这个字段的最大值是 65535(单位为字节)。

5)下一个首部。占 8 位,该字段相当于 IPv4 首部中的协议字段或可选字段。当 IPv6 没有扩展首部时,其作用与 IPv4 的协议字段一样,它指明 IPv6 数据报所运载的数据是何种协议数据单元;当 IPv6 带有扩展首部时,它就标识后面第一个扩展首部的类型。

6)跳数限制。占 8 位,类似于 IPv4 首部的 TTL 字段。源点在每个数据报发出时即设定某个限制值(最大为 255)。路由器每次转发时将其值减 1,减为 0 时就将该数据报丢弃。

7)源地址和目的地址。占 128 位,是数据报的发送端 / 接收端的 IP 地址。

4.3.3 IPv6 地址

IPv6 数据报的目的地址有以下三种基本类型:

1)单播。就是传统的点对点通信。

2)多播。一点对多点的通信,数据报发送到一组计算机中的每一台。

3)任播。这是 IPv6 增加的一种类型。任播的终点是一组计算机,但数据报只交付其中的一台计算机,通常是距离最近的一台计算机。

        IPv4 地址通常使用点分十进制表示法。若 IPv6 也使用这种表示法,则地址书写起来将相当长。IPv6 标准使用冒号十六进制记法,即把地址中的每 4 位用一个十六进制数表示,并用冒号分隔每 16 位,如 4BF5:AA12:0216:FEBC:BA5F:039A:BE9A:2170。

        当 16 位域的开头有一些 0 时,可以采用一种缩写表示法,但在域中必须至少有一个数字。例如,可以把地址 4BF5:0000:0000:0000:BA5F:039A:000A:2176 缩写为 4BF5:0:0:0:BA5F:39A:A:2176。

        当有相继的 0 值域时,还可以进一步缩写。这些域可用双冒号缩写(::)。当然,双冒号表示法在一个地址中仅能出现一次,因为 0 值域的个数没有编码,需要从指定的总的域的个数来推算。这样一来,前述地址可被更紧凑地书写成 4BF5::BA5F:39A:A:2176。

        IPv6 地址的分类如表 4.3 所示。

对表 4.3 给出的五类地址简单解释如下:

1)未指明地址:该地址不能用作目的地址,只能用于还未配置 IPv6 地址的主机作为源地址。

2)环回地址:该地址的作用与 IPv4 的环回地址相同,但 IPv6 的环回地址仅此一个。

3)多播地址:该地址的作用和 IPv4 的一样。这类地址占 IPv6 地址空间的 1/256。

4)本地链路单播地址:该地址的作用类似于 IPv4 的私有 IP 地址。

5)全球单播地址:用得最多的地址。IPv6 全球单播地址采用三级结构(见图 4.13):第一级为全球路由选择前缀,占 48 位,用于互联网中的路由选择,相当于 IPv4 分类地址中的网络号;第二级为子网标识符,占 16 位,用于各机构构建自己的子网;第三级为接口标识符,用于指明主机或路由器的单个网络接口,相当于 IPv4 分类地址中的主机号。

        与 IPv4 不同,IPv6 地址的接口标识符有 64 位之多,足以对各种接口的硬件地址直接进行编码。这样,IPv6 就可直接从 128 位地址的最后 64 位中直接提取出相应的硬件地址,而不需要使用地址解析协议(ARP)进行地址解析。

4.3.4 从 IPv4 向 IPv6 过渡

        从 IPv4 向 IPv6 过渡只能采用逐步演进的办法,同时还必须使新安装的 IPv6 系统能够向后兼容。IPv6 系统必须能够接收和转发 IPv4 分组,并且能够为 IPv4 分组选择路由。

命题追踪 IPv4 向 IPv6 过渡的策略(2023)

从 IPv4 向 IPv6 过渡可以采用下列两种策略:

1)双协议栈,是指在一台设备上同时装有 IPv4 和 IPv6 两个协议栈,分别配置了一个 IPv4 地址和一个 IPv6 地址,因此这台设备既能和 IPv4 网络通信,又能和 IPv6 网络通信。双协议栈主机在与 IPv6 主机通信时采用 IPv6 地址,而在与 IPv4 主机通信时采用 IPv4 地址,双协议栈主机使用应用层的域名系统(DNS)获知目的主机采用的是哪种地址。若 DNS 返回的是 IPv4 地址,则双协议的源主机就使用 IPv4 地址。若 DNS 返回的是 IPv6 地址,则双协议栈的源主机就使用 IPv6 地址。

2)隧道技术,是指在 IPv6 数据报要进入 IPv4 网络时,把整个 IPv6 数据报封装成 IPv4 数据报的数据部分,使原来的 IPv6 数据报就好像在 IPv4 网络的隧道中传输。当 IPv4 数据报离开 IPv4 网络时,再将其数据部分交给主机的 IPv6 协议。

4.3.5 本节习题精选

单项选择题
01. 下一代互联网核心协议 IPv6 的地址长度是( )。
A. 32 比特
B. 48 比特
C. 64 比特
D. 128 比特

01. D
IPv6 的地址用 16B(128 比特)表示,比 IPv4 长得多,地址空间是 IPv4 的296倍。

02. 与 IPv4 相比,IPv6( )。
A. 采用 32 位 IP 地址
B. 增加了首部字段数量
C. 不提供 QoS 保障
D. 没有提供检验和字段

02. D
IPv6 采用 128 位地址。IPv6 减少了首部字段数量,仅包含 8 个字段。IPv6 支持 QoS(指在有限的带宽资源下,为业务提供端到端的服务质量保证),以满足实时、多媒体通信的需要。因为目前网络传输介质的可靠性较高,所以出现比特错误的可能性很低,且数据链路层和传输层有自己的检验,为了效率,IPv6 没有检验和字段。

03. 一个 IPv6 地址为 1A22:120D:0000:0000:72A2:0000:0000:00C0,可以简化写成( )。
A. 1A22:120D::72A2:0000:0000:00C0
B. 1A22:120D::72A2:0:0:C0
C. 1A22::120D::72A2::00C0
D. 1A22:120D:0:0:72A2::C0

03. C
        使用零压缩法时,双冒号 “::”(表示零压缩)在一个地址中只能出现一次。也就是说,当有多处不相邻的 0 时,只能用 “::” 代表其中的一处。

04. 一个 IPv6 地址的简化写法为 8::D0:123:CDEF:89A,则其完整地址应该是( )。
A. 8000:0000:0000:0000:00D0:1230:CDEF:89A0
B. 0008:0000:0000:0000:00D0:0123:CDEF:89A0
C. 8000:0000:0000:0000:D000:1230:CDEF:89A0
D. 0008:0000:0000:0000:00D0:0123:CDEF:089A

04.D

        冒号十六进制记法表示 IPv6 地址的规则:①多个连续区域为 0,可进行零压缩,但一个地址仅可出现一次零压缩。②每个区域开头的 0 可省略,结尾的 0 不可省略。按照规则先将题中零压缩的部分展开,得到 8:0000:0000:0000:D0:123:CDEF:89A;每个区域应该有 4 位十六进制数,不足 4 位则表示开头的 0 被省略,补充后得到 0008:0000:0000:0000:00D0:0123:CDEF:089A。


05. 下列关于 IPv6 的描述中,错误的是( )。
A. IPv6 的首部长度是不可变的
B. IPv6 不允许在中间路由器进行分片
C. IPv6 采用了 16B 的地址,在可预见的将来不会用完
D. IPv6 使用了首部检验和来保证传输的正确性

05.D
        IPv6 的首部长度是固定的,因此不需要首部长度字段。IPv6 取消了检验和字段,这样就加快了路由器处理数据报的速度。我们知道,数据链路层会丢弃检测出差错的帧,传输层也有相应的差错处理机制,因此网络层的差错检测可以精简掉。

06. 若一个路由器收到的 IPv6 数据报因太大而不能转发到链路上,则路由器将把该数据报( )。
A. 丢弃
B. 暂存
C. 分片
D. 转发至能支持该数据报的链路上

06.A
        IPv6 中不允许在中间路由器进行分片。因此,若路由器发现到来的数据报太大而不能转发到链路上,则丢弃该数据报,并向发送方发送一个指示分组太大的 ICMP 报文。

07. 【2023 统考真题】下列关于 IPv4 和 IPv6 的叙述中,正确的是( )。
I. IPv6 地址空间是 IPv4 地址空间的 96 倍
II. IPv4 首部和 IPv6 基本首部的长度均可变
III. IPv4 向 IPv6 过渡可以采用双协议栈和隧道技术
IV. IPv6 首部的 Hop Limit 字段等价于 IPv4 首部的 TTL 字段
A. 仅 I、II
B. 仅 I、IV
C. 仅 II、III
D. 仅 III、IV

07.D
        IPv4 地址占 32 位,地址空间为232;IPv6 地址占 128 位,地址空间为2128,IPv6 地址空间是 IPv4 地址空间的296倍,I 错误。IPv4 首部长度是 4B 的倍数,长度可变;IPv6 基本首部长度是 40B,不可变,II 错误。IPv4 向 IPv6 过渡可以采用双协议栈(设备同时支持 IPv4 和 IPv6)和隧道技术(IPv6 数据报封装 IPv4 的数据部分),III 正确。IPv6 首部的 Hop Limit 字段和 IPv4 首部的 TTL 字段都用于限制数据报在网络中经过的路由器数量,IV 正确。

4.4 路由算法与路由协议

4.4.1 路由算法

        路由选择协议的核心是路由算法,即需要何种算法来获得路由表中的各个项目。路由算法的目的很简单:给定一组路由器及连接路由器的链路,路由算法要找到一条从源路由器到目的路由器的 “最佳” 路径。通常,“最佳” 路径是指具有最低费用的路径。

1.静态路由与动态路由

        路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。从能否随网络的通信量或拓扑自适应地进行调整变化来划分,路由算法可以分为如下两大类。

1)静态路由算法:指由网络管理员手工配置每一条路由。

2)动态路由算法:根据网络流量负载和拓扑结构的变化来动态调整自身的路由表。
        静态路由算法的特点是简单和开销较小,但不能及时适应网络状态的变化,适用于简单的小型网络。动态路由算法能较好地适应网络状态的变化,但实现复杂,开销也大,适用于较复杂的大型网络。常用的动态路由算法可分为两类:距离 - 向量路由算法和链路状态路由算法。

2.距离 - 向量路由算法
        距离 - 向量算法的基础是 Bellman - Ford 算法,它用于计算单源最短路径。每个节点以自身为源点执行 Bellman - Ford 算法,所以全局上可以解决任意节点对之间的最短路径问题。
        下面讨论 Bellman - Ford 算法的基本思想。
        假设dx​(y)表示从节点x到节点y的带权最短路径的费用,则有
        dx​(y)=min{c(x,v)+dv​(y)},v是x的所有邻居
式中,c(x,v)是从x到其邻居v的费用。已知x的所有邻居到y的最短路径费用后,从x到y的最短路径费用是对所有邻居v的c(x,v)+dv​(y)的最小值。所有最短路径算法都依赖于一个性质:“两点之间的最短路径也包含了路径上其他顶点间的最短路径。”

对于距离 - 向量算法,每个节点x维护下列路由信息:

1)从x到每个直接相连邻居v的链路费用c(x,v)。

2)节点x的距离向量,即x到网络中其他节点的费用。这是一组距离,因此称为距离向量。

3)它收到的每个邻居的距离向量,即x的每个邻居到网络中其他节点的费用。
        在距离 - 向量算法中,每个节点定期地向它的每个邻居发送它的距离向量副本。当节点x从它的任何一个邻居v接收到一个新距离向量时,它首先保存v的距离向量,然后使用 Bellman - Ford 公式dx​(y)=min{c(x,v)+dv​(y)}更新自己的距离向量。若节点x的距离向量因这个更新步骤而改变,则节点x接下来继续向它的每个邻居发送其更新后的距离向量。
        下面以图 4.14 顶部三个节点的简单网络为例,说明距离 - 向量算法的实现。

        命题追踪 距离向量路由算法的具体实现(2021)

        图 4.15 (a) 中的各列依次是三个节点的初始化距离向量,此时各节点之间尚未交换过任何路由信息,因此各节点的初始化距离向量就等于它到每个直接相连邻居 v 的费用。

        初始化后,每个节点第一次向它的所有邻居发送其距离向量,在接收到该更新报文后,每个节点重新计算自己的距离向量。例如,节点x计算的过程为:dx​(x)=0;dx​(y)=min{c(x,y)+dy​(y),c(x,z)+dz​(y)}=min{2+0,7+1}=2;dx​(z)=min{c(x,y)+dy​(z),c(x,z)+dz​(z)}=min{2+1,7+0}=3。注意到节点x到节点z的最低费用从 7 变成了 3,节点z到节点x的最低费用也从 7 变成了 3。节点的距离向量变化后,再次向它们的邻居发送它们更新的距离向量,而没有变化的节点y不用发送更新报文。接收到邻居的更新报文后,节点又重新计算它们的距离向量,此次没有节点更新,因此也无更新报文发送,算法进入静止状态,如图4.15(c)所示。
        显然,更新报文的大小与网络中的节点数量成正比,大型网络将导致很大的更新报文。
        最常见的距离 - 向量路由算法是 RIP 算法,它采用跳数作为距离的度量。
3. 链路状态路由算法
        链路状态是指本路由器都和哪些路由器相邻,以及相应链路的代价。链路状态算法要求每个节点都具有全网拓扑结构图(这个拓扑结构图在全网范围内是一致的),它们执行下列两项任务:第一,主动测试所有相邻节点的状态;第二,定期地将链路状态传播给所有其他节点。因此每个节点都知道全网共有多少个节点、哪些节点是相连的、其代价是多少等,于是每个节点都可使用 Dijkstra 最短路径算法计算出到达其他节点的最短路径。
        在链路状态算法中,节点每收到一个链路状态报文,便用其更新自己的网络状态 “视野图”,一旦链路状态发生变化,就使用 Dijkstra 算法重新计算到达所有其他节点的最短路径。
        因为一个节点的链路状态只涉及相邻节点的连通状态,而与整个互联网的规模并无直接关系,所以链路状态算法适用于大型的或路由信息变化聚敛的互联网环境。
        链路状态算法的主要优点是,每个节点都使用同样的链路状态数据独立地计算路径,而不依赖中间节点的计算;链路状态报文不加改变地传播,因此采用该算法易于查找故障。当一个节点从所有其他节点接收到报文时,它就在本地立即计算出正确的路径,保证一步汇聚。最后,因为链路状态报文仅运载来自单个节点关于直接链路的信息,其大小与网络中的节点数量无关,所以链路状态算法比距离 - 向量算法有更好的规模可伸展性。
        两种路由算法的比较:在距离 - 向量算法中,每个节点仅与它的直接邻居交谈,向它的邻居发送自己的路由表,其大小取决于网络中的节点数量,代价较大。在链路状态算法中,每个节点通过广播的方式与所有其他节点交谈,但它只告诉它们与它直接相连的链路的费用。
        典型的链路状态路由算法是 OSPF 算法。

4.4.2 分层次的路由选择协议

        互联网采用的是自适应的、分布式路由选择协议。因为互联网的规模非常大,许多联网单位不愿让外界了解自己单位网络的布局细节,所以互联网采用分层次的路由选择协议。
        为此,可以把整个互联网划分为许多较小的自治系统(Autonomous System,AS)。自治系统是在单一技术管理下的一组路由器,这些路由器使用一种 AS 内部的路由选择协议和共同的度量。一个 AS 对其他 AS 表现出的是一个单一的路由选择策略。
        这样,互联网就把路由选择协议划分为两大类。

1.内部网关协议(Interior Gateway Protocol,IGP)
        内部网关协议即在一个自治系统内部使用的路由选择协议,它与在互联网中的其他自治系统选用什么路由选择协议无关。目前这类路由选择协议使用得最多,如 RIP 和 OSPF。

2.外部网关协议(External Gateway Protocol,EGP)
        若源主机和目的主机处在不同的自治系统中(两个自治系统可能使用不同的 IGP),则当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议。目前使用最多的外部网关协议是 BGP - 4。
        自治系统之间的路由选择也称域间路由选择,自治系统内部的路由选择也称域内路由选择。
        图 4.16 是两个自治系统互连的示意图。每个自治系统自己决定在本自治系统内部运行哪个内部网关协议(可以是 RIP 或 OSPF)。但每个自治系统都有一个或多个路由器(图中的路由器 R1 和 R2)除运行本系统的内部网关协议外,还要运行外部网关协议(如 BGP - 4)。

图4.16 两个自治系统互连的示意图

4.4.3 路由信息协议

        路由信息协议(Routing Information Protocol,RIP)是内部网关协议 IGP 中最先得到广泛应用的协议。RIP 是一种分布式的基于距离向量的路由选择协议。

1.RIP 的规定

1)网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录,即距离向量。

2)使用跳数(Hop Count)(或称距离)来衡量到达目的网络的距离。规定从一路由器到直接连接的网络的距离定义为 1;而每经过一个路由器,距离就加 1。

3)RIP 认为好的路由就是它通过的路由器数量少,即距离短或跳数少。

命题追踪 RIP中跳数为16的含义(2010)

4)RIP 允许一条路径最多只能包含 15 个路由器。因此距离等于 16 时表示网络不可达。可见 RIP 只适用于小型互联网。距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是防止分组不断在环路上循环,减少网络拥塞的可能性。

5)每个路由表项都有三个关键字段:< 目的网络N,距离d,下一跳路由器地址X>。

2.RIP 的特点
RIP 的每个路由器都要不断与其他路由器交换信息,下面三个特点非常重要。

1)和谁交换信息:仅和直接相邻的路由器交换信息。

2)交换什么信息:交换的信息是本路由器所知道的全部信息,即自己的路由表。

3)何时交换信息:按固定的时间间隔(通常为 30 秒)交换路由信息。当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑变化后的路由信息。
        路由器刚开始工作时,只知道自己到直接相连的几个网络的距离为 1。每个路由器仅和相邻路由器周期性地交换并更新路由信息。经过若干次交换和更新后,所有的路由器最终都会知道到达本自治系统内任何网络的最短距离和下一跳路由器的地址,称为收敛。

命题追踪 封装RIP报文所采用的协议(2017)
        RIP 是应用层协议,它使用 UDP 传送数据(端口 520)。RIP 选择的路径不一定是时间最短的,但一定是具有最少的路由跳数,因为它是根据最少跳数进行路径选择的。

3.RIP 的距离向量算法
对每个相邻路由器发来的 RIP 报文,执行如下步骤:

1)对地址为X的相邻路由器发来的 RIP 报文,先修改该报文中的所有项目:把 “下一跳” 字段中的地址都改为X,并把所有 “距离” 字段的值加 1。

对修改后的 RIP 报文中的每个项目,执行如下步骤:

IF (若原来的路由表中没有目的网络N)则把该项目添加到路由表中(表明这是新的目的网络)。
ELSE IF (若原来的路由表中有目的网络N,且下一跳路由器的地址是X)用收到的项目替换原路由表中的项目(因为要以更新的消息为准)。
ELSE IF (若原来的路由表中有目的网络N,且下一跳路由器的地址不是X)若收到的项目中的距离d小于路由表中的距离,则进行更新。
ELSE 什么也不做。

3)若 180 秒(RIP 默认超时时间)还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达的路由器,即把距离设置为 16(表示不可达)。
4)返回。

命题追踪 RIP 的收敛过程(2024)

        下面举例说明 RIP 路由条目的更新过程。已知路由器 R6 和 R4 互为相邻路由器,表 4.4 (a) 所示为 R6 的路由表,现在收到相邻路由器 R4 发来的路由更新信息,如表 4.4 (b) 所示。

        现在试更新 R6 的路由表。先把 R4 发来的路由表 [表 4.4 (b)] 中各项的距离都加 1,并把下一跳路由器都改为 R4,得到表 4.5 (a)。将这个表的每行与 R6 的路由表 [表 4.4 (a)] 进行比较。
        第一行的 Net1 在表 4.4 (a) 中没有,因此要把这一行添加到表 4.4 (a) 中。
        第二行的 Net2 在表 4.4 (a) 中有,且下一跳路由器也是 R4,因此要更新(距离增大了)。
        第三行的 Net3 在表 4.4 (a) 中有,但下一跳路由器不同。于是需要比较距离。新的路由信息的距离是 2,小于原表中的 4,因此要更新。这样,得出更新后的 R6 的路由表如表 4.5 (b) 所示。

4. RIP 的优缺点

命题追踪 RIP 的优缺点(2024)

RIP 的优点:
1)实现简单、开销小、收敛过程较快。
2)若一个路由器发现了更短的路由,则这种更新信息就传播得很快,在较短时间内便可被传至所有路由器,俗称 “好消息传播得快”。

RIP 的缺点:
1)RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
2)路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大。
3)当网络出现故障时,路由器之间需反复多次交换信息才能完成收敛,要经过较长时间才能将故障消息传送到所有路由器(慢收敛现象),俗称坏消息传播得慢。

        下面举例说明 RIP“好消息传播得快,坏消息传播得慢” 的特点。假设图 4.17 中的路由器都采用 RIP 交换路由信息,初始时 R1 到网络 N 的距离为 4,且 R1 和 R2 均已收敛。

        在图 4.17 (a) 中,某时刻 R1 的某个端口检测到 “到 N 更短的链路”(距离由 4 变为 1),R1 计算其到 N 的最新距离 =到的距离,并通知邻居;R2 收到后,更新其到 N 的距离为 2,并通知邻居;R1 收到后,R1 到 N 的最短距离未变,不再发送通知,算法进入静止状态。可见,R2 到 N 的距离减少的好消息通过 RIP 得到了迅速传播。

命题追踪 RIP “坏消息传播得慢” 的分析(2016)

        在图 4.17 (b) 中,某时刻 R1 的某个端口检测到 “N 不可达”(距离变为 16),R1 计算其到 N 的最新距离 =到的距离。从网络全局的视角可以看出,经过 R2 的这个新距离显然是错误的。R1 计算出到 N 的最新距离后,通知邻居;R2 收到后,更新其到 N 的距离为 7,通知邻居;R1 收到后,计算其到 N 的距离 =到的距离,继续通知邻居…… 如此循环,直到 R2 最终算出它经由 R1 到达 N 的距离为 16 为止。可见,RIP 关于链路故障或距离增加的坏消息传播得很慢。

4.4.4 开放最短路径优先协议

1. 开放最短路径优先(OSPF)的基本特点

命题追踪 OSPF 和 RIP 的比较(2024)

        OSPF 协议是使用分布式链路状态路由算法的典型代表,也是内部网关协议(IGP)的一种。与 RIP 相比,OSPF 有下面 4 个主要特点:
1)OSPF 使用洪泛法向本自治系统中所有路由器发送信息,路由器通过所有输出端口向所有相邻的路由器发送信息,而每个相邻的路由器又将此信息发往所有的相邻路由器(但不再发送给刚刚发来信息的那个路由器)。这样最终整个区域中所有的路由器都得到了这个信息的一个副本。而 RIP 仅仅向自己相邻的几个路由器发送信息。
2)发送的信息是与本路由器相邻的所有路由器的链路状态,但是,这只是路由器所知道的部分信息。而在 RIP 中,发送的信息是本路由器所知道的全部信息,即整个路由表。
3)只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程收敛得快,不会出现 RIP “坏消息传播得慢” 的问题。而在 RIP 中,不管网络拓扑是否发生变化,路由器之间都要定期交换路由表的信息。

命题追踪 封装 OSPF 报文所采用的协议(2017)

4)OSPF 是网络层协议,它不用 UDP 或 TCP,而直接用 IP 数据报传送(其 IP 数据报首部的协议字段为 89)。而 RIP 是应用层协议,它在传输层使用 UDP。

注意:
        用 UDP 传送是指将该信息作为 UDP 报文的数据部分,而直接使用 IP 数据报传送是指将该信息直接作为 IP 数据报的数据部分。RIP 报文是作为 UDP 数据报的数据部分。

除以上区别外,OSPF 还有以下特点:
1)OSPF 允许对每条路由设置成不同的代价,对于不同类型的业务可计算出不同的路由。
2)若到同一个目的网络有多条相同代价的路径,则可将通信量分配给这几条路径。
3)OSPF 分组具有鉴别功能,从而保证仅在可信赖的路由器之间交换链路状态信息。
4)OSPF 支持可变长度的子网划分和无分类编址 CIDR。
5)每个链路状态都带上一个 32 位的序号,序号越大,状态就越新。

2. OSPF 的基本工作原理

        因为各路由器之间频繁地交换链路状态信息,所以所有路由器最终都能建立一个链路状态数据库,即全网的拓扑结构图。然后,每个路由器利用链路状态数据库中的数据,使用 Dijkstra 算法计算自己到达各目的网络的最优路径,构造出自己的路由表。此后,当链路状态发生变化时,每个路由器重新计算到达各目的网络的最优路径,构造出新的路由表。

注意:
        虽然使用 Dijkstra 算法能计算出完整的最优路径,但路由表中不会存储完整路径,而只存储 “下一跳”(只有到了下一跳路由器,才能知道再下一跳应当怎样走)。

        为了使 OSPF 能用于规模很大的网络,将一个自治系统再划分为若干更小的范围,称为区域。划分区域的好处是,把利用洪泛法交换链路状态信息的范围局限在各个区域,而不是整个 AS,从而减少了整个网络上的通信量。在一个区域内,由一个或多个区域边界路由器负责为流向该区域以外的分组提供路由选择。在 AS 内只有一个区域配置成主干区域,它包含 AS 内的所有区域边界路由器,可能还包含一些非边界路由器,主干区域的作用是连通其他区域。当分组在 AS 内的不同区域之间传送时,要先找到本区域内的一个区域边界路由器(如 R3、R4、R7),再通过主干区域路由到位于目的区域的区域边界路由器,最后路由到目的地。在图 4.18 中,R3、R4 和 R7 都是区域边界路由器,每个区域至少有一个区域边界路由器。主干区域还要有一个路由器专门负责和本 AS 外的其他 AS 交换路由器信息,称为自治系统边界路由器(如 R6)。

3. OSPF 的分组类型

OSPF 共有以下五种分组类型:
1)问候分组,用来发现和维持邻站的可达性。
2)数据库描述分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
3)链路状态请求分组,向对方请求发送某些链路状态项目的详细信息。
4)链路状态更新分组,用洪泛法对全网更新链路状态,它是 OSPF 最核心的部分。
5)链路状态确认分组,对链路更新分组的确认。

        通常网络中传送的大多数 OSPF 分组都是问候分组。OSPF 规定,两个相邻路由器每隔 10 秒要交换一次问候分组,以便知道哪些邻站可达。若有 40 秒没有收到某个相邻路由器发来的问候分组,则认为该相邻路由器不可达,应立即修改链路状态数据库,并重新计算路由表。

        路由器刚开始工作时,它只能通过问候分组得知它与哪些路由器相邻,以及相应链路的代价。为了得到链路状态数据库,若让所有路由器都将自己的本地链路状态信息进行全网广播,则未免开销太大。因此,OSPF 让每个路由器使用数据库描述分组和相邻路由器交换本数据库中已有的链路状态摘要信息。然后,路由器使用链路状态请求分组,向对方请求发送自己所缺少的某些链路状态项目的详细信息。通过一系列的这种分组交换,就建立了全网同步的链路数据库。图 4.19 给出了 OSPF 的基本操作,说明了两个路由器需要交换的各种类型的分组。

        在网络运行的过程中,只要一个路由器的链路状态发生变化,该路由器就要使用链路状态更新分组,用可靠的洪泛法向全网更新链路状态,其他路由器在收到更新分组后要发送确认。

        为了确保链路状态数据库与全网的状态保持一致,OSPF 还规定每隔一段时间(如 30 分钟)要刷新一次数据库中的链路状态。因为一个路由器的链路状态只涉及与相邻路由器的连通状态,与整个网络的规模并无直接关系,所以当互联网规模很大时,OSPF 要比 RIP 好得多。

4.4.5 边界网关协议

1. BGP 的基本特点

命题追踪 BGP 的作用(2013)

        边界网关协议(Border Gateway Protocol,BGP)是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。BGP 常用于互联网的网关之间。而 RIP 和 OSPF 都只能在一个 AS 内工作,若没有 BGP,则全世界数以万计的 AS 都是一个个没有联系的孤岛。

        内部网关协议主要是设法使分组在一个 AS 中尽可能有效地从源站传送到目的站。在一个 AS 内部也不需要考虑其他方面的策略。然而 BGP 使用的环境却不同,主要原因如下:
1)互联网的规模太大,使得 AS 之间路由选择非常困难,每个主干网路由表中的项目数都非常庞大。对于 AS 之间的路由选择,要寻找最佳路由是很不现实的。
2)AS 之间的路由选择必须考虑政治、安全或经济等有关因素。

命题追踪 封装 BGP 报文所采用的协议(2013、2017)

        BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。BGP 采用了路径向量路由选择协议,它与距离向量协议(如 RIP)和链路状态协议(如 OSPF)都有很大的区别。BGP 是应用层协议,它是基于 TCP 的。

命题追踪 两种 BGP 会话的定义(2024)

        两个相邻的 AS 通过各自的边界路由器直接相连,两个边界路由器通过端口号为 179 的半永久 TCP 连接(双方交换信息后仍保持连接状态)来交换 BGP 路由信息,AS 内部的路由器之间也有很多半永久 TCP 连接来传送 BGP 路由信息。每对 TCP 连接端点的两个路由器称为 BGP 对等方,用来发送 BGP 报文的 TCP 连接称为 BGP 会话。跨越两个 AS 的 BGP 会话称为外部 BGP(eBGP,external)会话,同一个 AS 中的两个路由器之间的 BGP 会话称为内部 BGP(iBGP,internal)会话。可见,BGP 不仅运行在 AS 之间,还运行在 AS 的内部。

2. BGP 路由

BGP 路由的一般格式如下:
                BGP 路由 = <CIDR 前缀,BGP 属性>

        当一个路由器通过 BGP 会话向对等方通告一条 BGP 路由时,最重要的两个 BGP 属性是 AS - PATH(自治系统路径)和 NEXT - HOP(下一跳)。

        AS - PATH 是通告的 BGP 路由所经过的自治系统。在 BGP 中,通常用一个全局唯一的自治系统号(ASN)来标识自治系统。BGP 路由每经过一个 AS,就将其 ASN 加入 AS - PATH。可见,BGP 路由必须指出通过哪些 AS,但不指出路由要通过哪些路由器。

        NEXT - HOP 是通告的 BGP 路由起点。

        下面通过一个简单的例子来加以说明。图 4.20 中 AS2 中的 R4 收到一条 BGP 路由 “X, AS1, R1”,表示 “从 R1 出发能到达 AS1 中的网络 X,即 R1→X”,R4 为了构造自己的转发表,需要对这条 BGP 路由的起点进行转换。由于路由的起点 R1 并不在 AS2 中,AS2 中的路由器都不能识别 R1,因此 R4 先把路由的起点添加上 R1 的对等方 R2,这样就变为 “R2→R1→X”。R2 在 AS2 中,因此 AS2 中的所有路由器都能把分组转发到 R2,再经过 R1,最终到达 X。

        然后,R4 利用内部网关协议,找到从 R4 到 R2 的最佳路由中的下一跳。在本例题中,查出下一跳是 R3,于是 R4 在转发表中增加到达网络 X 的下一跳是 R3 的表项 <X, R3>。这样,R4 只要收到目的网络为 X 的分组,就都按照路径 R4→R3→R2→R1→X,最后到达 X。类似地,R3 也在自己的转发表中增加到达网络 X 的表项 < X, R2>。每个路由器收到一条新的 BGP 路由通告后,必须经过上述步骤,才能在自己的转发表中增加到达 X 的 “下一跳” 的相应表目。

3. BGP 路由选择

        若从一个 AS 到另一个 AS 中的网络 X 只有一条 BGP 路由,则不存在选择 BGP 路由的问题,此时 BGP 路由是唯一的。然而,若到网络 X 有两条或更多的 BGP 路由可供选择,则应根据下列原则,并按下面给出的先后顺序,选择一条较好的 BGP 路由。

        1)首先选择本地偏好值最高的路由:在 BGP 路由的属性中有一个称为本地偏好的选项,一条路由的本地偏好可能由该路由器管理员设置,也可能是从同一 AS 中的另一个路由器学习得到的。若在几条 BGP 路由中找不出本地偏好值最高的路由(如它们的本地偏好值都相同),则采用下面的方法。

        2)选择 AS 跳数最少(AS - PATH 最短)的路由:以图 4.21 为例,从 AS1 到 AS5 共有两条 BGP 路由,根据该原则,应选择只通过 1 个 AS 的 BGP 路由,即 AS1→AS4→AS5。然而,由于 AS4 是个很大的 AS,分组在 AS4 中反而要经过更多次数的转发,可能要花费更长的时间。可见,AS 跳数最少的路由未必是最好的。

        3)使用热土豆路由选择算法

        命题追踪 热土豆路由选择算法的应用(2024)

        假设几条 BGP 路由的本地偏好值都相同,所经过的 AS 个数也相同,则利用前两种方法都无法选择最好的路由。这时,要进入 BGP 路由的 AS,执行热土豆路由选择算法。选择最靠近 NEXT - HOP 路由器的路由,让分组经过最少的转发次数离开本 AS,这时要使用内部网关协议(如 OSPF 或 RIP),对不同的路由器,得出的选择结果是不同的。

        4)选择 BGP 标识符的数值最小的路由:在 BGP 报文的首部有一个称为 BGP 标识符的字段,该字段作为运行 BGP 的路由器的唯一标识符。当以上三种方法都无法找出最好的 BGP 路由时,可使用 BGP 标识符来选择路由。

4. BGP 的四种报文

        当 BGP 刚运行时,BGP 会话的两端要相互交换整个 BGP 路由表,但以后只需在 BGP 发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的开销方面都有好处。

命题追踪 各种 BGP 报文的作用(2024)

BGP - 4 共使用四种报文:

1)Open(打开)报文:用来与相邻的另一个 BGP 对等方建立关系,使通信初始化。

2)Update(更新)报文:用来通知某一路由的信息,以及列出要撤销的多条路由。

3)Keepalive(保活)报文:用来周期性地证实邻站的连通性。

4)Notification(通知)报文:用来发送检测到的差错。

        Open 报文是两个路由器之间建立 TCP 连接后接着必须发送的报文,其作用是相互识别对方,协商一些协议参数。收到 Open 报文的路由器发回 Keepalive 报文表示接受建立 BGP 连接。Update 报文是 BGP 的核心,用于撤销它以前通知过的路由,或者宣布增加新的路由。撤销路由可以一次撤销多条,但增加新路由时,每个更新报文只能增加一条。

        BGP 连接一旦建立,两个对等方就要彼此周期性地交换 Keepalive 报文(如每隔 60 秒)。Keepalive 报文只有 19B,不会造成网络上太大的开销。

        RIP、OSPF 与 BGP 的比较如表 4.6 所示。

协议

RIP

OSPF

BGP

类型

内部

内部

外部

路由算法

距离向量

链路状态

路径向量

传递协议

UDP

IP

TCP

路径选择

跳数最少

代价最低

较好,非最佳

交换节点

和本节点相邻的路由器

网络中的所有路由器

和本节点相邻的路由器

交换内容

当前本路由器知道的全部信息,即自己的路由表

与本路由器相邻的所有路由器的链路状态

首次:整个路由表;非首次:有变化的部分

4.4.6 本节习题精选

一、单项选择题

01.下列关于动态路由选择和静态路由选择的主要区别的描述中,正确是( )。
A. 动态路由选择需要维护整个网络的拓扑结构信息,而静态路由选择只需要维护部分拓扑结构信息
B. 动态路由选择可随网络的通信量或拓扑变化而自适应地调整,而静态路由选择则需要手工去调整相关的路由信息
C. 动态路由选择简单且开销小,静态路由选择复杂且开销大
D. 动态路由选择使用路由表,静态路由选择不使用路由表

01.B
静态路由选择使用手动配置的路由信息,实现简单且开销小,需要维护整个网络的拓扑结构信息,但不能及时适应网络状态的变化。动态路由选择通过路由选择协议,自动发现并维护路由信息,能及时适应网络状态的变化,实现复杂且开销大。动态路由选择和静态路由选择都使用路由表。

02.下列关于路由算法的描述中,错误的是( )。
A. 静态路由有时也被称为非自适应的算法
B. 静态路由所使用的路由选择一旦启动就不能修改
C. 动态路由也称自适应算法,会根据网络的拓扑变化和流量变化改变路由决策
D. 动态路由算法需要实时获得网络的状态

02.B
静态路由也称非自适应算法,它不会估计流量和结构来调整其路由决策。但是,这并不说明路由选择是不能改变的,事实上用户可以随时配置路由表。而动态路由也称自适应算法,需要实时获取网络的状态,并根据网络的状态适时地改变路由决策。

03.下列关于链路状态协议的描述中,错误的是( )。
A. 仅相邻路由器需要交换各自的路由表
B. 全网络路由器的拓扑数据库是一致的
C. 采用洪泛技术更新链路变化信息
D. 具有快速收敛的优点

03.A
在链路状态算法中,每个路由器在自己的链路状态变化时,将链路状态信息用洪泛法发送给网络中的其他路由器。发送的链路状态信息包括该路由器的相邻路由器及所有相邻链路的状态。链路状态算法具有快速收敛的优点,它能在网络拓扑发生变化时,立即进行路由的重新计算,并及时向其他路由器发送最新的链路状态信息,使得各路由器的链路状态表能够尽量保持一致。

04.在链路状态路由算法中,每个路由器都得到网络的完整拓扑结构后,使用( )算法来找出它到其他路由器的路径长度。
A. Prim 最小生成树算法
B. Dijkstra 最短路径算法
C. Kruskal 最小生成树算法
D. 拓扑排序

04.B
在链路状态算法中,路由器通过交换每个节点到邻居节点的代价来构建一个完整的网络拓扑结构。然后,路由器使用 Dijkstra 最短路径算法来计算到所有节点的最短路径。

05.下列关于分层路由的描述中,错误的是( )。
A. 采用分层路由后,路由器被划分成区域
B. 每个路由器不仅知道如何将分组路由到自己区域的目标地址,还知道如何路由到其他区域
C. 采用分层路由后,可以将不同的网络连接起来
D. 对于大型网络,可能需要多级的分层路由来管理

05.B
采用分层路由后,路由器被划分为区域,每个路由器知道如何将分组路由到自己所在区域内的目标地址,但对于其他区域内的结构毫不知情。当不同的网络相互连接时,可将每个网络当作一个独立的区域,这样做的好处是一个网络中的路由器不必知道其他网络的拓扑结构。

06.以下关于自治系统的描述中,错误的是( )。
A. 自治系统划分区域的好处是,将利用洪泛法交换链路状态信息的范围局限在每个区域内,而不是整个自治系统
B. 采用分层划分区域的方法使交换信息的种类增多,同时也使 OSPF 协议更加简单
C. OSPF 协议将一个自治系统再划分为若干更小的范围,称为区域
D. 在一个区域内部的路由器只知道本区域的网络拓扑,而不知道其他区域的网络拓扑的情况

06.B
划分区域的好处是,将利用洪泛法交换链路状态信息的范围局限在每个区域内,而不是整个自治系统。因此,在一个区域内部的路由器只知道本区域的网络拓扑,而不知道其他区域的网络拓扑情况。采用分层次划分区域的方法虽然使交换信息的种类增多了,同时也使 OSPF 协议更加复杂了,但是,这样做却能使每个区域内部交换路由信息的通信量大大减少,进而使 OSPF 协议能够用于规模很大的自治系统中。

07.在计算机网络中,路由选择协议的功能不包括( )。
A. 交换网络状态或通路信息
B. 选择到达目的地的最佳路径
C. 更新路由表
D. 发现下一跳的物理地址

07.D
路由选择协议的功能通常包括:获取网络拓扑信息、构建路由表、在网络中更新路由信息、选择到达每个目的网络的最优路径、识别一个网络的无环通路等。发现下一跳的物理地址一般是通过其他方式(如 ARP)来实现的,不属于路由选择协议的功能。

08.用于域间路由的协议是( )。
A. RIP
B. BGP
C. OSPF
D. ARP

08.B
BGP(边界网关协议)是域间路由协议。RIP 和 OSPF 是域内路由协议,ARP 不是路由协议。

09.在 RIP 中,到某个网络的距离值为 16,其意义是( )。
A. 该网络不可达
B. 存在循环路由
C. 该网络为直接连接网络
D. 到达该网络要经过 15 次转发

09.A
RIP 规定的最大跳数为 15,16 表示网络不可达。

10.在 RIP 中,假设路由器 X 和路由器 K 是两个相邻的路由器,X 向 K 说:“我到目的网络 Y 的距离为 N”,则收到此信息的 K 就知道:“若将到网络 Y 的下一个路由器选为 X,则我到网络 Y 的距离为( )。”(假设 N 小于 15)
A. N
B. N - 1
C. 1
D. N + 1

10.D
RIP 规定,每经过一个路由器,距离(跳数)加 1。

11.以下关于 RIP 的描述中,错误的是( )。
A. RIP 是基于距离 - 向量路由选择算法的
B. RIP 要求内部路由器将它关于整个 AS 的路由信息发布出去
C. RIP 要求内部路由器向整个 AS 的路由器发布路由信息
D. RIP 要求内部路由器按照一定的时间间隔发布路由信息

11.C
RIP 规定一个路由器只向相邻路由器发布路由信息,而不像 OSPF 那样向整个域洪泛。

12.在 RIP 中,当路由器收到相邻路由器发来的路由更新信息时,若发现有更优的路由,则( )。
A. 直接更新自己的路由表
B. 向相邻路由器发送确认信息后再更新自己的路由表
C. 向所有相邻路由器发送确认信息后再更新自己的路由表
D. 不更新自己的路由表

12.A
在 RIP 中,当路由器收到相邻路由器发来的路由更新信息时,若发现有更优的路由(跳数更小的路由),则直接更新自己的路由表,并向其他相邻路由器广播自己的新路由。

13.对路由选择协议的一个要求是必须能够快速收敛,所谓 “路由收敛” 是指( )。
A. 路由器能把分组发送到预定的目标
B. 路由器处理分组的速度足够快
C. 网络设备的路由表与网络拓扑结构保持一致
D. 能把多个子网聚合成一个超网

13.C
所谓路由收敛,是指当路由环境发生变化后,各路由器调整自己的路由表以适应网络拓扑结构的变化,最终达到稳定状态(路由表与网络拓扑状态保持一致)。收敛越快,路由器就能越快适应网络拓扑结构的变化。

14.下列关于 RIP 和 OSPF 协议的叙述中,错误的是( )。
A. RIP 和 OSPF 协议都是网络层协议
B. 在进行路由信息交换时,RIP 中的路由器仅向自己相邻的路由器发送信息,OSPF 协议中的路由器向本自治系统中的所有路由器发送信息
C. 在进行路由信息交换时,RIP 中的路由器发送的信息是整个路由表,OSPF 协议中的路由器发送的信息只是路由表的一部分

D. RIP 的路由器不知道全网的拓扑结构,OSPF 协议的任何一个路由器都知道自己所在区域的拓扑结构

14.A
RIP 是应用层协议,它使用 UDP 传送数据,OSPF 才是网络层协议。A 错误。

15. OSPF 协议使用( )分组来保持与其邻居的连接。
A. Hello
B. Keepalive
C. SPF(最短路径优先)
D. LSU(链路状态更新)

15.A
此题属于记忆性题目,OSPF 协议使用 Hello 分组来保持与其邻居的连接。

16. 以下关于 OSPF 协议的描述中,最准确的是( )。
A. OSPF 协议根据链路状态法计算最佳路由
B. OSPF 协议是用于自治系统之间的外部网关协议
C. OSPF 协议不能根据网络通信情况动态地改变路由
D. OSPF 协议只适用于小型网络

16.A
OSPF 协议是一种用于自治系统内的路由协议,B 错误。它是一种基于链路状态路由选择算法的协议,能适用大型全局 IP 网络的扩展,支持可变长子网掩码,所以 OSPF 协议可用于管理一个受限地址域的中大型网络,D 错误。OSPF 协议维护一张它所连接的所有链路状态信息的邻居表和拓扑数据库,使用多播链路状态更新报文实现路由更新,并且只有当网络发生变化时才传送链路状态更新报文,C 错误。OSPF 协议不传送整个路由表,而传送受影响的路由更新报文。

17. 在 OSPF 协议中,划分区域的最主要目的是( )。
A. 减少路由表的大小
B. 减少洪泛法交换的通信量
C. 增加路由选择的灵活性
D. 增加网络的安全性

17.B
链路状态算法让每个路由器都知道整个自治系统的完整拓扑,从而计算出最短路径。若不划分区域,则会导致链路状态数据包的数量和大小非常大,占用大量的网络带宽资源,影响网络效率和稳定性。划分区域后,每个路由器只需要知道自己所在区域内的完整拓扑,把交换链路状态信息的范围局限在每个区域,这样就大大减少了链路状态数据包的数量和大小。

18. 下列关于 OSPF 协议特征的描述中,错误的是( )。
A. OSPF 协议将一个自治域划分成若干域,有一种特殊的域称为主干区域
B. 域之间通过区域边界路由器互连
C. 在自治系统中有 4 类路由器:区域内部路由器、主干路由器、区域边界路由器和自治域边界路由器
D. 主干路由器不能兼作区域边界路由器
19. BGP 交换的网络可达性信息是( )。
A. 到达某个网络所经过的路径
B. 到达某个网络的下一跳路由器
C. 到达某个网络的链路状态摘要信息
D. 到达某个网络的最短距离及下一跳路由器
20. RIP、OSPF 协议、BGP 的路由选择过程分别使用( )。
A. 路径向量协议、链路状态协议、距离向量协议
B. 距离向量协议、路径向量协议、链路状态协议
C. 路径向量协议、距离向量协议、链路状态协议
D. 距离向量协议、链路状态协议、路径向量协议
21. 从数据封装的角度看,下列( )协议属于 TCP/IP 模型的应用层。
I. OSPF
II. RIP
III. BGP
IV. ICMP
A. I、II
B. II、III
C. I、IV
D. I、II、III、IV
22. 考虑如下图所示的子网,该子网使用了距离向量算法,下面的向量刚刚到达路由器 C:
来自 B 的向量为 (5, 0, 8, 12, 6, 2);来自 D 的向量为 (16, 12, 6, 0, 9, 10);来自 E 的向量为 (7, 6, 3, 9, 0, 4)。经过测量,C 到 B、D 和 E 的延迟分别为 6、3 和 5,则 C 到达所有节点的最短路径是( )。

A. (5, 6, 0, 9, 6, 2)
B. (11, 6, 0, 3, 5, 8)
C. (5, 11, 0, 12, 8, 9)
D. (11, 8, 0, 7, 4, 9)
23. 某分组交换网络的拓扑如下图所示,各路由器使用 OSPF 协议且均已收敛,各链路的度量已在图中标注。假设各段链路的带宽均为 100Mb/s,分组长度为 1000B,其中分组的首部长度为 20B。若主机 A 向主机 B 发送一个大小为 980000B 的文件,忽略分组的传播时延和封装 / 解封时间,从 A 发送开始到 B 接收完毕为止,需要的时间是( )。
A. 80.08ms
B. 80.16ms
C. 80.32ms
D. 80.64ms

24.【2010 统考真题】某自治系统内采用 RIP,若该自治系统内的路由器 R1 收到其邻居路由器 R2 的距离向量,距离向量中包含信息 <Net1, 16>,则能得出的结论是( )。
A. R2 可以经过 R1 到达 Net1,跳数为 17
B. R2 可以到达 Net1,跳数为 16
C. R1 可以经过 R2 到达 Net1,跳数为 17
D. R1 不能经过 R2 到达 Net1

25.【2016 统考真题】假设下图中的 R1、R2、R3 采用 RIP 交换路由信息,且均已收敛。若 R3 检测到网络 201.1.2.0/25 不可达,并向 R2 通告一次新的距离向量,则 R2 更新后,其到达该网络的距离是( )。
A. 2
B. 3
C. 16
D. 17

26.【2017 统考真题】直接封装 RIP、OSPF、BGP 报文的协议分别是( )。
A. TCP、UDP、IP
B. TCP、IP、UDP
C. UDP、TCP、IP
D. UDP、IP、TCP

27.【2021 统考真题】某网络中的所有路由器均采用距离向量路由算法计算路由。若路由器 E 与邻居路由器 A、B、C 和 D 之间的直接链路距离分别是 8、10、12 和 6,且 E 收到邻居路由器的距离向量如下表所示,则路由器 E 更新后的到达目的网络 Net1 ~ Net4 的距离分别是( )。

A. 9, 10, 12, 6
B. 9, 10, 28, 20
C. 9, 20, 12, 20
D. 9, 20, 28, 20

二、综合应用题

01.RIP 使用 UDP,OSPF 使用 IP,而 BGP 使用 TCP。这样做有何优点?为什么 RIP 周期性地和邻站交换路由信息而 BGP 却不这样做?

02.在某个使用 RIP 的网络中,B 和 C 互为相邻路由器,其中表 1 为 B 的原路由表,表 2 为 C 广播的距离向量报文 <目的网络,距离>。

1)试求路由器 B 更新后的路由表并说明主要步骤。
2)当路由器 B 收到发往网络 N2 的 IP 分组时,应该做何处理?
03. 互联网中的一个自治系统的内部结构如下图所示。路由选择协议采用 OSPF 协议时,计算 R6 的关于网络 N1、N2、N3、N4 的路由表。

注:端口处的数字是该路由器向该链路转发分组的代价。
04. 【2013 统考真题】假设 Internet 的两个自治系统构成的网络如下图所示,自治系统 AS1 由路由器 R1 连接两个子网构成;自治系统 AS2 由路由器 R2、R3 互连并连接 3 个子网构成。各子网地址、R2 的接口名、R1 与 R3 的部分接口 IP 地址如下图所示。

请回答下列问题:
1)假设路由表结构如下表所示。利用路由聚合技术,给出 R2 的路由表,要求包括到达图中所有子网的路由,且路由表中的路由项尽可能少。

目的网络

下一跳

接口

2)若 R2 收到一个目的 IP 地址为 194.17.20.200 的 IP 分组,R2 会通过哪个接口转发该 IP 分组?
3)R1 与 R2 之间利用哪个路由协议交换路由信息?该路由协议的报文被封装到哪个协议的分组中进行传输?
05. 【2014 统考真题】某网络中的路由器运行 OSPF 路由协议,下表是路由器 R1 维护的主要链路状态信息(LSI),下图是根据该表及 R1 的接口名构造的网络拓扑。

请回答下列问题:
1)假设路由表结构如下表所示,给出图中 R1 的路由表,要求包括到达图中子网 192.1.x.x 的路由,且路由表中的路由项尽可能少。

目的网络

下一跳

接口

2)当主机 192.1.1.130 向主机 192.1.7.211 发送一个 TTL = 64 的 IP 分组时,R1 通过哪个接口转发该 IP 分组?主机 192.1.7.211 收到的 IP 分组的 TTL 是多少?
3)若 R1 增加一条 Metric 为 10 的链路连接 Internet,则表中 R1 的 LSI 需要增加哪些信息?
06. 【2024 统考真题】网络空间是继陆海空天之后的 “第五疆域”,网络技术是网络疆域建设与治理的基础。路由算法与协议是网络核心技术之一,对其准确认知、合理选择与应用,对于网络建设十分重要。假设有互联网中的 4 个自治系统互连拓扑示意图如下图所示。其中,AS1 运行内部网关协议 RIP;AS3 规模较小,自治系统内任意两个主机间通信,经过路由器的数量不超过 15 个;AS4 规模较大,自治系统内任意两个主机间通信,经过路由器的数量可能超过 20 个。请回答下列问题。

1)若仅有 RIP 和 OSPF 内部网关协议供选择,则 AS4 应该选择哪个协议?
2)若 AS3 中的某主机向本自治系统内的另一主机发送 1 个 IP 分组,为确保该 IP 分组能够被正常接收,则该 IP 分组的初始 TTL 值应该至少设置为多少?
3)假设 AS1 中的路由器同一时刻启动,启动后立即构建并交换初始距离向量,之后每隔 30s 交换一次最新的距离向量,则从交换初始距离向量时刻算起,R11~R16 路由器均获得到达网络 210.2.3.0/24 的正确路由由至少需要多长时间?均获得到达网络 210.2.4.0/24 的正确路由由至少需要多长时间?
4)R44 向 R13 通告到达网络 136.5.16.0/20 路由时,由 BGP 哪类会话完成?通过哪个 BGP 报文通告?R13 通过 BGP 的哪类会话将该网络可达性信息通告给 R14 和 R15?
5)若 R14 和 R15 均收到分别由 R11、R12、R13 通告的到达网络 136.5.16.0/20 的可达性信息如下。
        目的网络:136.5.16.0/20,AS 路径:AS2 AS8 AS19,下一跳:R11
        目的网络:136.5.16.0/20,AS 路径:AS3 AS7 AS11 AS19,下一跳:R12
        目的网络:136.5.16.0/20,AS 路径:AS4 AS10 AS19,下一跳:R13
     则在无策略约束情况下,R14 和 R15 更新路由表后,各自路由表中到达网络         136.5.16.0/20 路由的下一跳分别是什么(用路由器名称表示)?

相关文章:

  • RAG(Retrieval-Augmented Generation,检索增强生成)
  • Vue2 与 Vue3 深度对比与技术解析
  • 文章记单词 | 第49篇(六级)
  • 频谱感知方法简要介绍与比较分析
  • ByeCode,AI无代码开发平台,拖拽式操作构建应用
  • 第十一章-PHP表单传值
  • Tauri窗口与界面管理:打造专业桌面应用体验 (入门系列五)
  • java面向对象编程【高级篇】之多态
  • 996引擎-人物模型(UIModel):创建内观时装备偏移问题
  • 【合新通信】---Mini单路光模块(Mini SFF/USOT)
  • tsconfig.json和tsconfig.node.json和tsconfig.app.json有什么区别
  • 公网域名如何解析到内网ip服务器?自己域名映射外网访问
  • Linux:基础IO 文件系统
  • [SystemVerilog] Struct
  • ChatGPT与DeepSeek在科研论文撰写中的整体科研流程与案例解析
  • 使用 malloc 函数模拟开辟一个 3x5 的整型二维数组
  • 多模态大语言模型arxiv论文略读(四十四)
  • linux blueZ 第六篇:嵌入式与工业级应用案例——在 Raspberry Pi、Yocto 与 Buildroot 上裁剪 BlueZ 并落地实战
  • 单例模式:确保类的唯一实例
  • MyBatis 类型处理器(TypeHandler)注册与映射机制:JsonListTypeHandler和JsonListTypeHandler注册时机
  • 我国首个核电工业操作系统发布,将在华龙一号新机组全面应用
  • 专访|伊朗学者:美伊核谈不只是改革派立场,但伊朗不信任美国
  • 人民日报:广东全力推动外贸稳量提质
  • 四川甘孜州白玉县发生4.9级地震,震源深度10千米
  • 广汽集团一季度净亏损7.3亿元,同比转亏,总销量下滑9%
  • 两部门:推动“青年驿站”为毕业生跨地区求职提供住宿优惠便利