计算机网络(六):网络层(功能概述、异构网络互联、路由与转发、拥塞控制)
文章目录
- 网络层功能
- 异构网络互连
- 路由与转发
- 虚电路服务
- 数据报服务
- SDN的基本概念
- 拥塞控制
- 网络层考点大纲
网络层功能
网络层提供主机到主机的通信服务,主要任务是将分组从源主机经过多个网络和多段链路传输到目的主机。该任务可划分为 分组转发 和 路由选择 两种重要功能。
OSI参考模型曾主张在网络层使用面向连接的虚电路服务,认为应由网络自身来保证通信的可靠性。而TCP/IP体系的网络层提供的是无连接的数据报服务,其核心思想是应由用户主机来保证通信的可靠性。
在互联网采用的TCP/IP体系结构中,网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。也就是说,所传送的分组可能出错、丢失、重复、失序或超时,这就使得网络中的路由器可以做得比较简单,而且价格低廉。通信的可靠性可以由更高层的传输层来负责。
采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。互联网能够发展到今日的规模,充分证明了当初采用这种设计思想的正确性。
异构网络互连
互联网是由全球范围内数以百万计的异构网络互连起来的。这些网络的拓扑结构、寻址方案、差错处理方法、路由选择机制等都不尽相同。网络层所要完成的任务之一就是实现这些异构网络的互连。网络互连是指将两个以上的计算机网络,通过一定的方法,用一些中继系统相互连接起来,以构成更大的网络系统。根据所在的层次,中继系统分为以下4种:
1)物理层中继系统:转发器,集线器。
2)数据链路层中继系统:网桥或交换机。
3)网络层中继系统:路由器。
4)网络层以上的中继系统:网关。
当使用物理层或数据链路层的中继系统时,只是把一个网络扩大了,而从网络层的角度看,它仍然是同一个网络,一般并不称为网络互连。因此,网络互连通常是指用路由器进行网络连接和路由选择。路由器是一台专用计算机,用于在互联网中进行路由选择。
TCP/IP在网络互连方面的做法是在网络层采用标准化协议,但相互连接的网络可以是异构的。
IP网络的概念如图,图a表示许多计算机网络通过些路由器进行互连。因为参与互连的计算机网络都使用相同的IP,通过IP就可使这些性能各异的网络在网络层上看起来像是一个统一的网络,所以可把互连后的网络视为如图b所示的一个虚拟互连网络,简称IP网络。
使用IP网络的好处是:当IP网上的主机进行通信时,就好像在单个网络上通信一样,而看不见互连的各个网络的具体异构细节(如具体的编址方案、路由选择协议等)。
路由与转发
路由器主要完成两个功能:一是路由选择(确定哪一条路径),二是分组转发(当一个分组到达时所采取的动作)。前者根据路由选择协议构造并维护路由表。后者处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等。
1)路由选择。根据路由协议构造路由表,同时经常或定期地与相邻路由器交换信息,获取网络最新拓扑,动态更新维护路由表,以决定分组到达目的地节点的最优路径。
2)分组转发。指路由器根据转发表将分组从合适的端口转发出去。路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应使查找过程最优化,路由表则需要最优化网络拓扑变化的计算。在讨论路由选择的原理时,往往不区分转发表和路由表,而笼统地使用路由表一词。
虚电路服务
分组交换网根据其通信子网向端点系统提供的服务,还可进一步分为面向连接的虚电路服务和无连接的数据报服务。这两种服务方式都是由网络层提供的。
虚电路网络的特性(2020)
在虚电路方式中,当两台计算机进行通信时,应当先建立网络层的连接,也就是建立一条逻辑上的虚电路(VirtualCircuit,VC),连接一旦建立,就固定了虚电路对应的物理路径。与电路交换类似,整个通信过程分为三个阶段:虚电路建立、数据传输与虚电路释放。
每次建立虚电路时,将一个未用过的虚电路号(VCID)分配给该虚电路,以区别于本系统中的其他虚电路,然后双方就沿着已建立的虚电路传送分组。分组的首部仅在连接建立时使用完整的目的地址,之后每个分组的首部只需携带这条虚电路的编号即可。在虚电路网络中的每个节点上都维持。张虚电路表,表中每项记录一个打开的虚电路的信息,包括在接收链路和发送链路上的虚电路号、前一节点和下一节点的标识,它是在虚电路建立过程中确定的。
虚电路方式的工作原理如图所示。
1)数据传输前,主机A与主机B先建立连接,主机A发出“呼叫请求”分组,该分组通过中间节点送往主机B,若主机B同意连接,则发送“呼叫应答”分组予以确认。
2)虚电路建立后,主机A和主机B就可相互传送数据分组。
3)传送结束后,主机A通过发送“释放请求”分组来拆除虚电路,逐段断开整个连接。
通过上面的例子,可总结出虚电路服务具有如下特点:
1)虚电路通信链路的建立和拆除需要时间开销,对交互式应用和少量的短分组情况显得很浪费,但对长时间、频繁的数据交换效率较高。
2)虚电路的路由选择体现在连接建立阶段,连接建立后,就确定了传输路径。
3)虚电路提供了可靠的通信功能,能保证每个分组正确且有序到达。此外,还可对两个端点的流量进行控制,当接收方来不及接收数据时,可以通知发送方暂缓发送。
4)虚电路有一个致命的弱点,即当网络中的某个节点或某条链路出现故障而彻底失效时,所有经过该节点或该链路的虚电路将遭到破坏。
5)分组首部不包含目的地址,包含的是虚电路号,相对于数据报方式,其开销小。虚电路之所以是虚,是因为这条电路不是专用的,每个节点到其他节点之间的链路可能同时有若干条虚电路通过,也可能同时在多个节点之间建立虚电路。
注意,图中所示的数据传输过程是有确认的传输,B收到分组后要发回相应的确认。
数据报服务
网络在发送分组前不需要先建立连接。源主机的高层协议将报文拆成若干较小的数据段,并加上地址等控制信息后构成分组。中间节点存储分组很短一段时间,找到最佳的路由后,尽快转发每个分组。网络层不提供服务质量的承诺。因为网络不提供端到端的可靠传输服务,所以这就使得网络中的路由器比较简单,且造价低廉(与电话网络相比)。
用图中的例子来说明数据报服务的原理。假定主机A向主机B发送分组。
1)主机A先将分组逐个发往与它直接相连的交换节点A,交换节点A缓存收到的分组。
2)然后查找自己的转发表。因为不同时刻的网络状态不同,所以转发表的内容可能不完全相同,所以有的分组转发给交换节点C,有的分组转发给交换节点D。
3)网络中的其他节点收到分组后,类似地转发分组,直到分组最终到达主机B。
当分组正在某一链路上传送时,分组并不占用网络其他部分的资源。因为采用存储转发技术,资源是共享的,所以主机A在发送分组时,主机B也可同时向其他主机发送分组。
通过上面的例子,我们可以总结出数据报服务具有如下特点:
1)发送分组前不需要建立连接。发送方可随时发送分组,网络中的节点可随时接收分组。
2)网络尽最大努力交付,传输不保证可靠性,所以分组可能出错或丢失;网络为每个分组独立地选择路由,转发的路径可能不同,因此分组不一定按序到达目的节点。
3)发送的分组中要包括发送方和接收方的完整地址,以便可以独立传输。
4)当分组在交换节点存储转发时,需要排队等候处理,这会带来一定的时延。当网络发生拥塞时,这种时延会大大增加,交换节点还可根据情况丢弃部分分组。
5)网络具有冗余路径,当某个交换节点或一条链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强。
6)收发双方不独占某条链路,资源利用率较高。
采用这种设计思想的好处是:网络的造价大大降低、运行方式灵活、能够适应多种应用。互联网能够发展到今天的规模,充分证明了当初采用这种设计思想的正确性。
SDN的基本概念
网络层的主要任务是转发和路由选择。可以将网络层抽象地划分为数据平面(也称转发层面)和控制平面,转发是数据平面实现的功能,而路由选择是控制平面实现的功能。
软件定义网络(Software DefinedNetwork,SDN) 是近年流行的一种创新网络架构,它采用集中式的控制平面和分布式的数据平面,两个平面相互分离,控制平面利用控制一数据接口对数据平面上的路由器进行集中式控制,方便软件来控制网络。传统网络中的路由器既有转发表,又有路由选择软件,即既有数据平面,又有控制平面。但是在图4.4所示的SDN结构中,路由器都变得简单了,它的路由选择软件都不需要了,因此路由器之间不再相互交换路由信息。在网络的控制平面有一个逻辑上的远程控制器(可由多个服务器组成)。远程控制器掌握各主机和整个网络的状态,为每个分组计算出最佳路由,通过Openflow协议(或其他途径)将转发表(在SDN中称为流表)下发给路由器。路由器的工作很单纯,即收到分组、查找转发表、转发分组。
这样,网络又变成集中控制的,而本来互联网是分布式的。SDN并非要把整个互联网都改造成如图4.4所示的集中控制模式,这是不现实的。然而,在某些具体条件下,特别是像一些大型的数据中心之间的广域网,使用SDN模式来建造,就可使网络的运行效率更高。
SDN的南向接口的定义(2022)
SDN的可编程性通过为开发者提供强大的编程接口,使得网络具有很好的编程性。对上层应用的开发者,SDN提供的编程接口称为北向接口,北向接口提供了一系列丰富的API,开发者可以在此基础上设计自已的应用,而不必关心底层的硬件细节。SDN控制器和转发设备建立双向会话的接口称为南向接口,通过不同的南向接口协议(如Openflow),SDN控制器就可兼容不同的硬件设备,同时可在设备中实现上层应用的逻辑。SDN控制器集群内部控制器之间的通信接口称为东西向接口,用于增强整个控制平面的可靠性和可拓展性。
SDN的优点:
①全局集中式控制和分布式高速转发,既利于控制平面的全局优化,又利于高性能的网络转发。
②灵活可编程与性能的平衡,控制和转发功能分离后,使得网络可以由专有的自动化工具以编程方式配置。
③降低成本,控制和数据平面分离后,尤其是在使用开放的接口协议后,就实现了网络设备的制造与功能软件的开发相分离,从而有效降低了成本。
SDN的问题:
①安全风险,集中管理容易受攻击,若崩溃,则整个网络会受到影响。
②瓶颈问题,原本分布式的控制平面集中化后,随着网络规模扩大,控制器可能成为网络性能的瓶颈。
拥塞控制
因出现过量的分组而引起网络性能下降的现象称为拥塞。判断网络是否进入拥塞状态的方法是,观察网络的吞吐量与网络负载的关系:若随着网络负载的增加,网络的吞吐量明显小于正常的吞吐量,则网络就可能已进入轻度拥塞状态;若网络的吞吐量随着网络负载的增大而下降,则网络就可能已进入拥塞状态。拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,从而利用这些信息进行控制,以避免因拥塞而出现分组的丢失。
拥塞控制的作用是确保网络能够承载所达到的流量,这是一个全局性的过程,涉及网络中所有的主机、路由器及导致网络传输能力下降的所有因素。单一地增加资源并不能解决拥塞。
与流量控制的区别:流量控制往往是指在发送方和接收方之间的点对点通信量的控制。流量控制所要做的是抑制发送方发送数据的速率,以便使接收方来得及接收。
拥塞控制的方法有两种:
1)开环控制。在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。这是一种静态的预防方法。一旦整个系统启动并运行,中途就不再需要修改。开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度策略等。所有这些手段的共性是,在做决定时不考虑当前网络的状态。
2)闭环控制。事先不考虑有关发生拥塞的各种因素,采用监测网络系统去监视,及时检测哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制是基于反馈环路的概念,是一种动态的方法。