网络层 I(网络层的功能)【★★★★★★】

devtools/2024/9/24 4:44:01/

(★★)代表非常重要的知识点,(★)代表重要的知识点。

一、 路由与转发(★★)

路由器主要完成两个功能:

1. 路由选择

【(确定哪一条路径)根据路由选择协议构造并维护路由表】

根据路由协议构造路由表,同时经常或定期地与相邻路由器交换信息,获取网络最新拓扑,动态更新维护路由表,以决定分组到达目的地结点的最优路径。

注意:

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

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

2. 分组转发

【(当一个分组到达时所采取的动作)处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。】

分组转发指路由器根据转发表将分组从合适的端口转发出去。

路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要最优化网络拓扑变化的计算。在讨论路由选择的原理时,往往不区分转发表和路由表,而笼统地使用路由表一词。

二、数据报与虚电路(网络层提供的两种服务)

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

1. 虚电路

1)虚电路网络的特性

在虚电路方式中,当两台计算机进行通信时,应当先建立网络层的连接,也就是建立一条逻辑上的虚电路(Virtual Circuit, VC),连接一旦建立,就固定了虚电路对应的物理路径。与电路交换类似,整个通信过程分为三个阶段,分别为:虚电路建立、数据传输与虚电路释放。

每次建立虚电路时,将一个未用过的虚电路号(VCID)分配给该虚电路,以区别于本系统中的其他虚电路,然后双方就沿着已建立的虚电路传送分组。分组的首部仅在连接建立时使用完整的目的地址,之后每个分组的首部只需携带这条虚电路的编号即可。在虚电路网络中的每个结点上都维持一张虚电路表,表中每项记录一个打开的虚电路的信息,包括在接收链路和发送链路上的虚电路号、前一结点和下一结点的标识,它是在虚电路建立过程中确定的。

2)虚电路方式的工作原理

虚电路方式的工作原理如下图所示。

  • 数据传输前,主机 A 与主机 B 先建立连接,主机 A 发出“呼叫请求”分组,该分组通过中间结点送往主机 B ,若主机 B 同意连接,则发送“呼叫应答”分组予以确认。
  • 虚电路建立后,主机 A 和主机 B 就可相互传送数据分组。
  • 传送结束后,主机 A 通过发送“释放请求”分组来拆除虚电路,逐段断开整个连接。

虚电路之所以是虚,是因为这条电路不是专用的,每个结点到其他结点之间的链路可能同时有若干条虚电路通过,也可能同时在多个结点之间建立虚电路。

注意,上图所示的数据传输过程是有确认的传输(由高层实现),B 收到分组后要发回相应分组的确认。网络中的传输是否有确认与网络层提供的两种服务没有任何关系。

【拓展】:

虚电路不只是临时性的,它提供的服务包括永久性虚电路(PVC)和交换型虚电路(SVC),其中前者是一种提前定义好的、基本上不需要任何建立时间的端点之间的连接,而后者是端点之间的一种临时性连接,这些连接只持续所需的时间,并且在会话结束时就取消这种连接。

3)虚电路服务的特点

  • 虚电路通信链路的建立和拆除需要时间开销,对交互式应用和少量的短分组情况显得很浪费,但对长时间、频繁的数据交换效率较高。
  • 虚电路的路由选择体现在连接建立阶段,连接建立后,就确定了传输路径。
  • 虚电路提供了可靠的通信功能,能保证每个分组正确且有序到达。此外,还可对两个端点的流量进行控制,当接收方来不及接收数据时,可以通知发送方暂缓发送。
  • 虚电路有一个致命的弱点,即当网络中的某个结点或某条链路出现故障而彻底失效时,所有经过该结点或该链路的虚电路将遭到破坏。
  • 分组首部不包含目的地址,包含的是虚电路号,相对于数据报方式,其开销小。

虚电路服务是面向连接的。属于同一条虚电路的分组,根据该分组的相同虚电路标识,按照同一路由转发,保证分组的有序到达。

2. 数据报

1)数据报网络的特性

网络在发送分组前不需要先建立连接。源主机的高层协议将报文拆成若干较小的数据段,并加上地址等控制信息后构成分组。每一个分组(也就是 IP 数据报)独立发送,与其前后的分组无关(即不进行编号)。中间结点存储分组很短一段时间,找到最佳的路由后,尽快转发每个分组。

网络层不提供服务质量的承诺。也就是说,所传送的分组可能出错、丢失、重复和失序(即不按序到达终点),当然也不保证分组交付的时限。因为网络不提供端到端的可靠传输服务,所以这就使得网络中的路由器比较简单,且造价低廉(与电话网络相比)。如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。

2)数据报方式的工作原理

用下图所示的例子来说明数据报服务的原理。假定主机 A 向主机 B 发送分组。

  • 主机 A 先将分组逐个发往与它直接相连的交换结点 A ,交换结点 A 缓存收到的分组。
  • 然后查找自己的转发表。因为不同时刻的网络状态不同,所以转发表的内容可能不完全相同,所以有的分组转发给交换结点 C ,有的分组转发给交换结点 D 。
  • 网络中的其他结点收到分组后,类似地转发分组,直到分组最终到达主机 B 。

当分组正在某一链路上传送时,分组并不占用网络其他部分的资源。因为采用存储转发技术,资源是共享的,所以主机 A 在发送分组时,主机 B 也可同时向其他主机发送分组。

3)数据报服务的特点

  • 发送分组前不需要建立连接。发送方可随时发送分组,网络中的结点可随时接收分组。
  • 网络尽最大努力交付,传输不保证可靠性,所以分组可能出错或丢失;网络为每个分组独立地选择路由,转发的路径可能不同,因此分组不一定按序到达目的结点。
  • 发送的分组中要包括发送方和接收方的完整地址,以便可以独立传输。
  • 当分组在交换结点存储转发时,需要排队等候处理,这会带来一定的时延。当网络发生拥塞时,这种时延会大大增加,交换结点还可根据情况丢弃部分分组。
  • 网络具有冗余路径,当某个交换结点或一条链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强。
  • 收发双方不独占某条链路,资源利用率较高。

数据报服务中,网络为每个分组独立地选择路由,传输不保证可靠性,也不保证分组的按序到达。

3. 虚电路服务和数据报服务的对比

下图归纳了虚电路服务与数据报服务的主要区别。

【注】数据报服务中,每个分组在传输过程中都必须携带源地址和目的地址;而虚电路服务中,在建立连接后,分组只需携带虚电路标识,而不必带有源地址和目的地址。

4. 总结

以下详细说明电路交换、报文交换、分组交换(又分为数据报和虚电路)这几种数据交换方式的特点。其中电路交换、报文交换和分组交换的概念在计算机网络体系结构那一章节中提到过。

  • 电路交换方式的优点是:传输时延小、通信实时性强,适用于交互式会话类通信;但其缺点是:对突发性通信不适应,系统效率低,不具备存储数据的能力,不能平滑网络通信量,不具备差错控制的能力,无法纠正传输过程中发生的数据差错。
  • 报文交换分组交换都采用存储转发,传送的数据都要经过中间结点的若干存储、转发才能到达目的地,因此传输时延较大。报文交换传送数据长度不固定且较长,分组交换中,要将传送的长报文分割为多个固定有限长度的分组,因此传输时延较报文交换要小。
  • 分组交换在实际应用中又可分为数据报和虚电路两种方式。
    数据报是面向无连接的,它提供的是一种不可靠的服务,它不保证分组不被丢失,也不保证分组的顺序不变及在多长的时限到达目的主机。但由于每个分组能独立地选择传送路径,当某个结点发生故障时,后续的分组就可另选路径;另外通过高层协议如 TCP 的差错控制和流量控制技术可以保证其传输的可靠性、有序性。
    虚电路是面向连接的,它提供的是一种可靠的服务,能保证数据的可靠性和有序性。但是由于所有分组都按同一路由进行转发,一旦虚电路中的某个结点出现故障,它就必须重新建立一条虚电路。因此,对于出错率高的传输系统,易出现结点故障,这项任务就显得相当艰巨。

三、SDN 基本概念

1. SDN 结构

网络层的主要任务是转发和路由选择。可以将网络层抽象地划分为数据平面(也称转发层面)和控制平面。转发是数据平面实现的功能,而路由选择是控制平面实现的功能。

软件定义网络(Software DefinedNetwork, SDN)是近年流行的一种创新网络架构,它采用集中式的控制平面和分布式的数据平面,两个平面相互分离。控制平面利用控制 - 数据接口对数据平面上的路由器进行集中式控制,方便软件来控制网络。

传统网络中的路由器既有转发表又有路由选择软件,即既有数据平面又有控制平面。但是在下图所示的 SDN 结构中,路由器都变得简单了,它的路由选择软件都不需要了,因此路由器之间不再相互交换路由信息。在网络的控制平面有一个逻辑上的远程控制器(可由多个服务器组成)。远程控制器掌握各主机和整个网络的状态,为每个分组计算出最佳路由,通过 Openflow 协议(或其他途径)将转发表(在 SDN 中称为流表)下发给路由器。路由器的工作很单纯,即收到分组、查找转发表、转发分组。

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

2. 南向接口、北向接口和东西向接口

SDN 的可编程性通过为开发者提供强大的编程接口,使得网络具有很好的编程性。对上层应用的开发者,SDN 提供的编程接口称为北向接口,北向接口提供了一系列丰富的 API ,开发者可以在此基础上设计自己的应用,而不必关心底层的硬件细节。

SDN 控制器和转发设备建立双向会话的接口称为南向接口,通过不同的南向接口协议(如 Openflow),SDN 控制器就可兼容不同的硬件设备,同时可在设备中实现上层应用的逻辑。

SDN 控制器集群内部控制器之间的通信接口称为东西向接口,用于增强整个控制平面的可靠性和可拓展性。

3. SDN 的优点和缺点

SDN 的优点:

  • 全局集中式控制和分布式高速转发,既利于控制平面的全局优化,又利于高性能的网络转发。
  • 灵活可编程与性能的平衡,控制和转发功能分离后,使得网络可以由专有的自动化工具以编程方式配置。
  • 降低成本,控制和数据平面分离后,尤其是在使用开放的接口协议后,就实现了网络设备的制造与功能软件的开发相分离,从而有效降低了成本。

SDN 的缺点:

  • 安全风险,集中管理容易受攻击,若崩溃,则整个网络会受到影响。
  • 瓶颈问题,原本分布式的控制平面集中化后,随着网络规模扩大,控制器可能成为网络性能的瓶颈。

四、其他知识点(了解即可)

1. 网络层的功能

网络层提供主机到主机的通信服务,主要任务是将分组从源主机经过多个网络和多段链路传输到目的主机。该任务可划分为分组转发路由选择两种重要功能。

思考:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?

OSI 参考模型曾主张在网络层使用面向连接的虚电路(Virtual Circuit, VC)服务,认为应由网络自身来保证通信的可靠性。而 TCP/IP 体系的网络层提供的是无连接的数据报服务,其核心思想是应由用户主机来保证通信的可靠性。

在互联网采用的 TCP/IP 体系结构中,网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报(datagram)服务。也就是说,所传送的分组可能出错、丢失、重复、失序或超时,这就使得网络中的路由器可以做得比较简单,而且价格低廉。通信的可靠性可以由更高层的传输层来负责。

网络层的主要目的:在任意结点间进行数据报传输。

采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。互联网能够发展到今日的规模,充分证明了当初采用这种设计思想的正确性。

2. 异构网络互连

互联网是由全球范围内数以百万计的异构网络互连起来的。这些网络的拓扑结构、寻址方案、差错处理方法、路由选择机制等都不尽相同。网络层所要完成的任务之一就是使这些异构的网络实现互连。

异构网络是指由不同类型的网络设备、技术和协议组成的网络系统(即数据链路层和物理层均不同)。这些设备可能包括无线网络、移动网络、有线网络以及不同品牌或类型的路由器、交换机和终端设备等。异构网络的特点是各部分之间的互联和互操作性,这样可以实现多种技术的协同工作,以满足不同的应用需求。

网络互连是指将两个以上的计算机网络,通过一定的方法,用一些中继系统相互连接起来,以构成更大的网络系统。根据中间设备所在的层次,中继系统分为以下4种:

  • 物理层中继系统:转发器(repeater)、集线器(Hub)。
  • 数据链路层中继系统:网桥或桥接器(bridge)、交换机 。
  • 网络层中继系统:路由器(router)。
  • 在网络层以上使用的中间设备叫做网关(gateway),用网关连接两个不兼容的系统需要在高层进行协议的转换。

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

当使用物理层或数据链路层的中继系统时(转发器或网桥),只是把一个网络扩大了,而从网络层的角度看,它仍然是同一个网络,一般并不称为网络互连。网关由于比较复杂,目前使用得较少。因此,网络互连通常是指用路由器进行网络互连和路由选择。路由器其实就是一台专用计算机,用来在互联网中进行路由选择。

下图(a)表示有许多计算机网络通过一些路由器进行互连。由于参加互连的计算机网络都使用相同的网际协议 IP(Internet Protocol),因此可以把互连以后的计算机网络看成如下图(b)所示的一个虚拟互连网络(internet)。下图是 IP 网络的概念示意图。

所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是通过 IP 协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。这种使用 IP 协议的虚拟互连网络可简称为 IP 网络(IP 网是虚拟的,但平常不必每次都强调“虚拟”二字)。

使用 IP 网络的好处是:当 IP 网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节(如具体的编址方案、路由选择协议,等等)。如果在这种覆盖全球的 IP 网的上层使用 TCP 协议,那么就是现在的互联网(Internet)。

【拓展】:

当很多异构网络通过路由器互连起来时,如果所有的网络都使用相同的 IP 协议,那么在网络层讨论问题就显得很方便。现在用一个例子来说明。下图所示是分组在互联网中的传送过程。

上图所示的互联网中的源主机 H1 要把一个 IP 数据报发送给目的主机 H2 。分为以下几个步骤:

  • 根据分组交换的存储转发概念,主机 H1 先要查找自己的路由表,看目的主机是否就在本网络上。如是,则不需要经过任何路由器而是直接交付,任务就完成了。如不是,则必须把 IP 数据报发送给某个路由器(即图中的 R1 ) 。
  • H1 在查找了自己的路由表后,知道应当把数据报转发给 R2 进行间接交付。
  • 这样一直转发下去,最后由路由器 R5 知道自己是和 H2 连接在同一个网络上,不需要再使用别的路由器转发了,于是就把数据报直接交付目的主机 H2

① 图中画出了源主机、目的主机以及各路由器的协议栈。我们注意到,主机的协议栈共有五层,但路由器的协议栈只有下三层。
② 图中还画出了数据在各协议栈中流动的方向(用黑色粗线表示)。我们还可注意到,在 R4 和 R5 之间使用了卫星链路,而 R5 所连接的是个无线局域网。在 R1 到 R4 之间的三个网络则可以是任意类型的网络。
总之,这里强调的是:互联网可以由多种异构网络互连组成。

如果我们只从网络层考虑问题,那么 IP 数据报就可以想象是在网络层中传送,其传送路径是:
H1 → R1 → R2 → R3 → R4 → R5 → H2
这样就不必画出许多完整的协议栈,使问题的描述更加简单。

3. 拥塞控制

1)判断网络是否进入拥塞状态的方法

因出现过量的分组而引起网络性能下降的现象称为拥塞。判断网络是否进入拥塞状态的方法是,观察网络的吞吐量与网络负载的关系:

  • 若随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,则网络就可能已进入轻度拥塞状态;
  • 若网络的吞吐量随着网络负载的增大而下降,则网络就可能已进入拥塞状态。

拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,从而利用这些信息进行控制,以避免因拥塞而出现分组的丢失。

2)拥塞控制的作用

确保网络能够承载所达到的流量,这是一个全局性的过程,涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素。单一地增加资源并不能解决拥塞。

3)与流量控制的区别

流量控制往往是指在发送方和接收方之间的点对点通信量的控制。流量控制所要做的是抑制发送方发送数据的速率,以便使接收方来得及接收。

4)拥塞控制的方法

拥塞控制的方法有如下两种:

  • 开环控制:在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。这是一种静态的预防方法。一旦整个系统启动并运行,中途就不再需要修改。开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度策略等。所有这些手段的共性是,在做决定时不考虑当前网络的状态。
  • 闭环控制:事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,是一种动态的方法。

五、例题

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

② 在下列数据交换方式中,数据经过网络的传输延迟长而且是不固定的,不能用于语音数据传输的是( B )。
A. 电路交换
B. 报文交换
C. 数据报交换
D. 虚电路交换

在报文交换中,交换的数据单元是报文。由于报文大小不固定,在交换结点中需要较大的存储空间,另外报文经过中间结点的接收、存储和转发时间较长而且也不固定,因此不能用于实时通信应用环境(如语音、视频等)。

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

④ 下列描述中,( D )不是软件定义网络(SDN)的特点。
A. 控制与转发功能分离
B. 控制平面集中化
C. 接口开放可编程
D. Openflow取代了路由协议
【Openflow 协议是控制平面和数据平面之间的接口。在 SDN 中,路由器之间不再相互交换路由信息,由远程控制器计算出最佳路由。】

⑤ 下列关于 SDN 的描述中,错误的是( A )。
I. SDN 是近年来出现的一种新型物理网络结构
II. OpenFlow 交换机基于“流表”来转发分组
III. SDN 远程控制器位于 OpenFlow 交换机中
IV. OpenFlow 可视为 SDN 的控制层面与数据层面的通信接口
A. I 和 III
B. I 和 IV
C. II 和 IV
D. I、III 和IV

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

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

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


http://www.ppmy.cn/devtools/99710.html

相关文章

c++链表(list)

前言 链表作为一个常见的数据结构,在高频插入删除的场景下有独特的优势,在内存的使用上也极少有浪费可以按需申请。今天我们就来简单的学习一下这种数据结构,链表也有很多不同的实现,我们这里和标准库保持一致,实现带…

[JAVA] 什么是Java线程同步机制?

在单线程程序中,每次只能做一件事情,后面的事情需要等待前面的事情完成后才可以进行,如果使用多线程程序,就会发生两个线程抢占资源的问题,所以在多线程编程中,需要防止这些资源访问的冲突,Java…

Spring 中XmlWebApplicationContext

XmlWebApplicationContext 是 Spring Framework 中的一个重要类,位于 org.springframework.web.context.support 包中。它是 AbstractRefreshableWebApplicationContext 的实现,用于在 Web 应用程序中从 XML 配置文件加载 Spring bean 定义。 主要功能 …

巡检机器人的使用方法和维护保养

在当今快速发展的工业环境中,智能巡检机器人正逐渐成为提升运维效率和安全性的重要工具。旗晟机器人凭借其核心技术团队和多年的行业经验,推出了多款高效、智能的巡检机器人,旨在帮助企业实现设备运维的智能化升级。本文将介绍旗晟巡检机器人…

VMware NET Service在虚拟机关闭后仍然占用CPU - 解决方案

问题 VMware NET Service(即vmnat.exe)在虚拟机关闭后仍然占用CPU,这是VM 17.5.0 和 VM 17.5.1 软件本身存在的Bug,此问题已在 VM 17.5.2 版本修复,下文介绍解决方案。 时间:2024年8月 解决方案 临时方…

day39.动态规划+MySQL数据库复习

一.动态规划: 198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定…

微服务多个模块启动,端口被占用,yml配置文件读不到

刚刚提交到gitee自己的仓库&#xff0c;拉下来还是报错&#xff0c;然后看到一个解决方法&#xff1a; <build><resources><resource><directory>src/main/java</directory><includes><include>**/*.yml</include><includ…

python | 图片转换为 pdf 实现方法

目录 一、PIL 库简介及安装使用方法 &#xff08;一&#xff09;python 不同版本下 PIL 的使用方法 二、图片转换为 pdf 的两种实现方法 &#xff08;一&#xff09;简易版——pdf 页面尺寸跟随图片大小 &#xff08;二&#xff09;常用版——pdf 每页尺寸统一为 A4 一、P…