网络规划设计师考试全程指导第 7 章网络互连协议根据考试大纲,本章要求考生掌握以下知识点:(1)网络互连的概念。
(2)网络互连的方法。
(3)路由算法:静态路由算法、自适应路由算法、广播路由算法、分层路由算法。
(4)路由协议:路由信息协议、开放最短路径优先协议、边界网关协议。
7.1 网络互连概述网络互连的主要目的是将各种大小、类型的网络,从物理上连接起来,组成一个覆盖范围更大、功能更强、方便数据交换的网络系统。
同时,又可以将组网后的网络内机器按逻辑进行划分,形成一个个逻辑网络。
网络互连包含以下几个方面:(1)互连(Interconnection):是指网络在物理上的连接,两个网络之间至少有一条在物理上连接的线路,它为两个网络的数据交换提供了物资基础和可能性,但并不能保证两个网络一定能够进行数据交换,这要取决于两个网络的通信协议是不是相互兼容。
(2)互联(internetworking):是指网络在物理和逻辑上,尤其是逻辑上的连接。
(3)互通(intercommunication):是指两个网络之间可以交换数据。
(4)互操作(interoperability):是指网络中不同计算机系统之间具有透明地访问对方资源的能力。
网络互连技术优势体现在以下方面:(1)支持多种介质。
(2)支持多种网络规程。
(3)支持多种网络互连协议。
网络互连技术正在发生着根本性的变化,推动它发展的动力包括:商业需求、新的网络应用的不断出现、技术进步、信息高速公路的发展。
可见,网络互连技术已成为当前网络技术研究与应用的一个新的热点问题。
网络互连的要求主要有以下几点:(1)需要在网络之间提供一条链路,至少需要一条物理和链路控制的链路。
(2)提供不同网络节点的路由选择和数据传送。
(3)提供网络记账服务,记录网络资源使用情况,提供各用户使用网络的记录及有关状态信息。
(4)在提供网络互连时,应尽量避免由于互连而降低网络的通信性能。
(5)不修改互连在一起的各网络原有的结构和协议。
根据网络层次的结构模型,网络互连的层次如下:(1)数据链路层互连。
互连设备是网桥,用网桥实现互连时,允许互连网络的数据链路层与物理层协议可以相同,也可以不同。
(2)网络层互连。
互连设备是路由器,用路由器实现互连时,允许互连网络的网络层及以下各层协议可以相同,也可以不同。
(3)高层互连。
传输层及以上各层协议不同的网络之间的互连属于高层互连,其互连设备是网关。
使用的网关中很多都是应用层网关,通常称为应用网关。
用应用网关实现互连时,允许互连网络的应用层及以下各层协议可以相同,也可以不同。
网络互连的方法包括以下几种:(1)局域网-局域网互连,互连设备一般是网桥。
(2)局域网-广域网互连,互连设备一般是路由器。
(3)局域网-广域网-局域网互连,互连设备一般是路由器或网关。
(4)广域网-广域网互连,互连设备一般是路由器或网关。
7.2 路由算法路由算法一般分为静态路由算法和动态路由算法两类。
7.2.1 静态路由概述在因特网发展早期,网络一般是同构的,结构比较简单,所以尽管路由技术的研究已经有数十年的历史,但是直到20世纪80年代中期才逐渐得到商业化。
静态路由是固定的(fixed)或显式的(explicit)非适应性路由。
源和目标之间的路由是在源节点事先决定的,不需要协议交互最新的网络状况,所有路由器中的路由表必须由管理员手工配置。
此算法一旦确定,可保持一段时间不变,不再对网络的流量和拓扑变化做出反应,故也叫非自适应路由算法。
静态路由算法主要有最短路径算法:一般来讲,网络节点直接相连,传输时延也不是绝对最小,这与线路质量、网络节点"忙"与"闲"状态,节点处理能力等很多因素有关。
定量分析中,常用"费用最小"作为网络节点之间选择依据,节点间的传输时延是决定费用的主要因素。
最短路径法是由Dijkstra提出的,其基本思想是:将源节点到网络中所有节点的最短通路都找出来,作为这个节点的路由表,当网络的拓扑结构不变、通信量平稳时,该点到网络内任何其它节点的最佳路径都在它的路由表中。
如果每一个节点都生成和保存这样一张路由表,则整个网络通信都在最佳路径下进行。
每个节点收到分组后,查表决定向哪个后继节点转发。
7.2.2 动态路由算法概述在动态路由模式中,所有节点都参与路由选择,按照既定的准则确定最佳路由。
这种路由模式称为跳到跳路由(Hop-by-Hop),比较适合尽力而为的报文转发服务。
该算法又叫自适应路由算法。
准静态路由和动态路由都能适应于网络拓扑的变化,它们需要路由协议的支持。
静态路由和动态路由可以在网络中并存,例如可以在边界网络配置静态路由,而骨干网络使用动态路由协议。
希赛教育专家提示:静态路由和动态路由之间的协调一般不是自动的,需要手工配置。
动态路由协议中有一个重要的概念--收敛(convergence)。
如果网络中所有的路由器对某些网络前缀的可达性达成一致,则称为前缀收敛;如果网络中所有的前缀收敛,则网络收敛。
路由协议的收敛性指的是通过该路由协议传递前缀的可达性信息并使其收敛。
影响收敛性的因素有很多,包括网络的规模、拓扑结构、路由方法及路由策略等。
下面就来讨论静态路由和动态路由算法。
7.2.3 距离矢量路由算法距离矢量(Distance-Vector,V-D)路由算法是基于Bellman-Ford的数学研究结果,因此有时也将该算法称为Bellman-Ford算法。
V-D算法要求路由器之间周期地交换路由更新报文,路由更新报文中包含到所有目的网络的距离矢量。
1. 工作原理V-D路由算法的工作原理就是邻居路由器之间定期交换距离矢量表。
每当接收到邻居路由器发来的距离矢量表时,路由器重新计算到每个目的节点的距离,并且更新路由表。
距离矢量表只包含到所有目的节点的距离,距离的度量单位可以是延迟、物理距离或其他参数。
在V-D路由算法中,必须假定每个路由器都知道到邻居路由器的"距离".如果度量标准是跳步数,则1跳表示的距离为1;如果度量标准是延迟,则路由器可以通过发送一个"回应请求(echo request)"报文,等待邻居路由器的"回应响应(echo reply)"回来后,测出它到邻居路由器的延迟。
V-D路由算法的工作原理是,每隔一段时间(通常以ms计算)邻居路由器之间交换距离矢量表,每个路由器根据各个邻居路由器报告的路由信息更新自己的路由表。
假设某路由器Y从邻居路由器X收到一张距离矢量表,路由器X告诉Y它到路由器I 的延迟是XI ms,而路由器Y知道它到X的延迟为t ms,则路由器Y就知道它通过路由器X 到达路由器I的延迟是(XI + t)ms.同样的道理,路由器Y收到另一个邻居路由器Z发来的距离矢量表,路由器Z告诉Y它到路由器I的延迟是ZI ms,而路由器Y知道它到Z的延迟为r ms,则路由器Y就知道通过路由器Z到达路由器I的延迟是(ZI + r)ms.通过这样的计算,路由器Y就可以找到一条到达路由器I的延迟最短的路径,然后路由器Y就将该条路径记录在路由表中,同时更新距离矢量表。
为了更好地说明V-D路由算法的工作原理,来看一个例子。
图7-1(a)给出了某网络拓扑结构。
在这个例子中,用延迟来作为"距离"的度量标准,并且假定网络中的每个路由器都知道到其邻居路由器的延迟。
上述例子的更新过程如图7-1(b)所示。
图7-1(b)的前4列表示路由器J从邻居路由器A、I、H和K收到的距离矢量表。
路由器A告诉J,它到B的延迟为12ms,到C的延迟为25ms,到D的延迟为40ms,…同样的道理,路由器I、H和K都分别告诉路由器J它们到网络中每一个节点的延迟。
假定路由器J已经知道它到邻居路由器A、I、H和K的延迟分别为8ms、10ms、12ms 和6ms.下面考察一下J怎样更新到路由器G的延迟。
路由器J知道经A到G的延迟是38ms (因为A告诉J它到G的延迟是30ms,而J到A的延迟是8ms,因此J经过A到达G的延迟为30ms+8ms=38ms)。
同样的道理,J可以计算出经过I、H和K到G的延迟分别为27+10=37ms、10+12=22ms和41+6=47ms.比较这些延迟,J就知道经H到G的延迟是最小的22ms,因而在J的新路由表中填上到G的延迟为22ms,输出线路为H,如图22-3(b)中的最后一列所示。
同时J更新它将要发给邻居路由器的距离矢量表,把到G的距离(实际上是延迟)设为22ms,但是在距离矢量表中并没有指出是通过H到G的(这就会带来下面将要重点讨论的慢收敛问题)。
(a)网络拓扑结构(b)来自A、I、H和K的路由表及J的新路由表图7-1 V-D路由算法的例子当然V-D算法刚开始工作的时候,每个路由器的距离矢量表中都是只包含到每个邻居路由器的距离,而到其他非邻居路由器的距离都是无穷大。
但是,随着时间的推移,邻居路由器之间不断地交换距离矢量表,于是每个路由器都能够计算出到达其他路由器的最短距离了。
2. 慢收敛问题所谓收敛是指网络中所有路由器对网络的可达性达成一致。
影响路由算法收敛性的因素有很多,包括网络的规模、拓扑结构、路由方法及路由策略等。
在V-D路由算法中,存在慢收敛问题。
为了说明这个问题,来看一下图7-2的例子(图中A、B、C、D和E为路由器,距离度量单位是跳数,而且图中的距离值都是针对以A为目的节点的)。
(a)好消息传播块(b)坏消息传播慢图7-2 慢收敛问题为了说明V-D路由算法的慢收敛问题,先来看图7-2(a)的情况。
假定刚开始时,A 到B的线路不通,因此B、C、D和E到A的距离为∞。
假设某时刻,A、B线路恢复了,则A会向B发送它的距离矢量表。
经过第1次距离矢量表交换后,B收到A发来的距离矢量表,而且A告诉B它到A的距离是0,因此B就知道A可达,且B到A的距离为1.而此时,C、D和E到A的距离还是为∞,也就是说,B、C 和E都还不知道A、B线路已经恢复了,如图7-2(a)的第二行所示。
第2次交换后,B会告诉C,它到A的距离为1,因此C知道通过B到A的距离为2;同时D会告诉C,它到A的距离为∞,而C到D的距离为1,因此C知道通过D到A的距离为∞(即不可达);结果C在它的距离矢量表中填上到A的距离为2,输出线路是B.而此时D和E到A的距离还是∞,如图7-2(a)的第三行所示。
再经过第3次和第4次交换后,D和E都知道到A的线路畅通了,都在自己的距离矢量表中填上最短距离和输出线路,图7-2(a)的第四、五行说明了这个结果。
很明显,A、B线路恢复畅通这样"好消息"的传播是每交换一次距离矢量表往前推进一步。