一、网络层的功能
1、异构网络互联
所谓网络互联,是指将两个以上的计算机网络,通过一定的方法,用一种或多种通信处理设备(即中间设备)相互连接起来,一构成更大的网络系统。中间设备又称中间系统或中继系统。根据所在的层次,中继系统分为以下4种:
1)物理层中继系统:中继器、集线器(Hub);
2)数据链路层中继系统:网桥 或 交换机;
3)网络层中继系统:路由器
4)网络层以上的中继系统:网关;
使用物理层或数据链路层的中继系统时,只是把一个网络扩大的,而从网络层的角度来看,它仍然是同一个网络,一般并不称为网络互联。因此网络互联通常是指用路由器进行网络互联和路由选择。路由器是一台专用计算机,用于在互联网中进行路由选择。
TCP/IP体系在网络互联上采用的做法是在网络层(即IP层)采用标准化协议,但相互连接的网络可以是异构的。许多计算计网络通过一些路由器进行互联,由于参加互联的计算机网络都是使用的相同的网际协议(Internet Protocol,IP),因此可以把互联后的计算机网络视为一个虚拟IP网络。
虚拟互联网络也就是逻辑互联网络,即互联起来的各种物理网络的异构性本来是客观存在的,但是通过使用IP就可以使这些性能各异的网络在网络层上看起来就好像是一个统一的网络。这种使用IP的虚拟互联网络可简称为IP网络。
使用虚拟互联网络的好处是:当互联网上的主机进行通信时,就好像在同一个网络上通信一样,而看不见互联的具体的网络异构细节(如具体的编址方案、路由选择协议等);
2、路由与转发
路由器主要完成两个功能:
1、路由选择(确定哪一条路径):是根据特定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。 路由选择是指按照复杂的分布式算法,根据从相邻路由器所得到的关于整个网络拓扑的变化情况,动态地改变所选择的路由;
2、分组转发(当一个分组到达时所采取的动作):处理通过路由器的数据流,关键操作是转发表查询、转发及相关的队列管理和任务调度等;分组转发指路由器根据转发表将用户的IP数据报从合适的端口转发出去。
路由表是根据路由选择算法得出的,而转发表是从路由表得出的。转发表的结构应当使查找过程最优化,路由表则需要对网络拓扑变化的计算最优化。在讨论路由选择的原理时,往往不去区分转发表和路由表,而是笼统地使用路由表一词。
3、拥塞控制
在通信子网中,因出现过量的分组而引起网络性能下降的现象称为拥塞。
判断网络是否进入拥塞状态的方法是:观察网络的吞吐量状态;如果网络的吞吐量随着网络负载的增大而下降,那么网络就可能已进入拥塞状态;如果网络的负载继续增大,而网络的吞吐量下降到零,那么网络就可能已经进入死锁状态;
为避免拥塞现象的出现,要采用能防止拥塞的一系列方法对子网进行拥塞控制。拥塞控制主要解决的问题是如何获取网络中发生拥塞的信息,从而利用这些信息进行控制,以避免由于拥塞而出现分组丢失,以及严重拥塞而产生网络死锁的现象。
拥塞控制的作用是确保子网能够承载所达到的流量,这是一个全局性的过程,涉及各方面的行为:主机、路由器及路由器内部的转发处理过程等。单一地增加资源并不能解决拥塞。
流量控制和拥塞控制的区别:流量控制往往是指在发送端和接收端之间的点对点通信量的控制。流量控制所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。而拥塞控制必须确保通信子网能够传送待传送的数据,是一个全局性的问题,涉及网络中所有主机、路由器及导致网络传输能力下降的所有因素。
拥塞控制的方法有两种:
1)开环控制:在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。这是一种静态的预防方法。一旦整个系统启动并运行,中途就不再需要修改。开环控制手段包括确定何时可接收新流量、何时可丢弃分组及丢弃哪些分组,确定何种调度决策等。所有这些手段的共性是,在做决定时不考虑当前网络的状态。
2)闭环控制:事先不考虑有关发生拥塞的各种因素,采用检测网络系统去监视,及时检测哪里发生了拥塞,然后将拥塞信息传到合适的地方,以便调整网络系统的运行,并解决出现的问题。闭环控制时基于反馈环路的概念,是一种动态的方法。
二、路由算法
1、静态路由 与动态路由
路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。从能否随网络的通信量或拓扑自适应地进行调整变化来划分,路由算法可分为以下两大类:
静态路由算法:也称 非自适应路由算法,指由网络管理员手工配置的路由信息。当网络的拓扑结构或链路的状态发生变化时,网络管理员手工去修改路由表中相关的静态路由信息。大型和复杂的网络环境通常不宜采用静态路由。一方面,网路管理员难以全面了解整个网络的拓扑结构;另一方面,当网络的拓扑结构和链路状态发生变化时,路由器中的静态路由信息需要大范围地调整,这一工作的难度和复杂度非常高。
动态路由算法:又称自适应路由算法。指路由器上的路由表项时通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息会在一定时间间隙里不断更新,以适应不带变换的网络,随时获取最优的寻路效果。
静态路由算法的优点时简便、可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,因此广泛用于高度安全的军事系统和娇小的商业网络。动态路由算法能改善网络的性能并有助于流量控制;但算法复杂,会增加网络的负担,有时因对动态变化的反应太快而引起振荡,或反应太慢而影响网络路由的一致性,因此要仔细设计动态路由算法,以发挥其优势。常用的动态路由算法可分为两类:距离-向量路由算法 和 链路状态路由算法;
2、距离-向量路由算法
在距离-向量路由算法中,所有结点都定期地将它们的整个路由选择表传送给所有与之直接相邻的结点。这种路由选择表包含:1)每条路径的目的地(另一个结点);2)路径的代价(也称距离);在这种算法中,所有结点都必须参与距离向量交换,以保证路由的有效性和一致性,也就是说,所有的结点都监听从其他结点传来的路由选择更新信息,并在下列情况下更新它们的路由选择表:
1)被通告一条新的路由,该路由在本结点的路由表中不存在,此时本地系统加入这条新的路由;
2)发来的路由信息中有一条到达某个目的地的路由,该路由与当前使用的路由相比,有较短的距离(较小的代价)。此种情况下,就用经过发送路由信息的结点的新路由替换路由表中到达那个目的地的现有路由;
距离-向量路由算法的实质是,迭代计算一条路由中的站段数或延迟时间,从而得到到达一个目标的最短(最小代价)通路。它要求每个结点在每次更新时都将它的全部路由表发送给所有相邻的结点。显然,更新报文的大小与通信子网的结点个数成正比,大的通信子网将导致很大的更新报文。由于更新报文发给直接邻接的结点,所以所有结点都将参与路由选择信息交换。基于这些原因,在通信子网上传送的路由选择信息的数量很容易变得非常大。
最常见的距离-向量路由算法是RIP算法,它采用“跳数”作为距离的度量;跳数指从源端口到达目的端口所经过的路由个数,每经过一个路由器,跳数加1。
3、链路状态路由算法