网络设施
2007-11-12 14:33    文章来源:网界网

浅析路由协议的实现算法

作者:CNW.com.cn


(2) 定义一个最大值


 
定义一个向量距离的最大值,可以在一定程度上防止形成路由环路,例如RIP协议定义Hop Count的最大值为16。使用这种方法,路由协议在向量距离超过协议允许的最大值前,允许路由环路的存在,一旦路由信息的向量距离超过规定的最大值,该路由信息将被标记为不可到达。 与此相关的另外一个概念是TTL(Time To Live)。TTL是一个包含在数据包中的参数,数据包每经过一次路由器的路由处理,TTL值减1,当TTL值等于0时,路由器将放弃对该数据包的处理,这样会避免数据包在某个环路中无休止的传递。
 
(3) 挂起计数器(Hold-Down Timers) 所谓挂起计数器是指路由器需要将某些可能导致路由环路的网络状态的变化保留一段时间,在这段时间内,路由器将视情况对这些网络状态的变化所产生的路由信息进行更改。下面看一下挂起计数器是如何工作的:
 
当一个路由器从它的邻居那儿收到以前某个可访问的网络现在变为不可访问的信息时,路由器将指向该网络的路由设置为不可访问,同时启动计数器。
 
如果在计数器到期前,该路由器又从同一个邻居那儿收到该网络可以访问的信息,则它会重新将网络标记为可访问,并删除计数器。
 
如果该路由器从另外一个邻居那儿收到一条比原路由更好的访问该网络的路由信息,它同样将该网络标记为可访问,以新的路由替代原路由,并删除计数器。
 
如果在计数器到期前,该路由器从另外一个邻居那儿收到一条访问该网络的比原路由差的路由信息,这条信息将被忽略。这样做能够使“网络不可访问”的信息有更多的时间在整个网络上传播。
 
计数器到期后,该路由标记为不可到达,如果这时收到该网络可以访问的路由信息,路由器的处理方式同上。
 
计数器计数时间的长短应该略大于路由信息传遍整个网络所需的时间。
 
(4) 触发式更新(Triggered Updates)
 
触发式更新在这里已经不是新概念,因为我们在前面谈到路由器之间的路由信息交换和上述三种解决路由环路的方法时,已经不止一次地使用了这一概念,尽管那时没有明确这种提法。简单的说,触发式更新是指路由器之间不单纯按照预定的时间周期进行路由信息交换,而是在路由表发生变化的时候及时地进行路由信息交换。触发式更新普遍地应用在各种路由协议中。
 
一般说来,路由表在没有发生变化的情况下,将按照预定的时间周期进行交换,例如IP RIP协议规定路由器之间每隔30秒交换一次路由信息,IPX RIP协议则规定为60秒。但是当路由表由于某种原因发生变化时,路由器立刻将路由表的变化情况通知邻近的路由器,再由它们去通知其他的路由器,这样一波接一波,在不发生意外的情况下就可以将该路由的变化通知到网络中所有的路由器。意外情况包括路由更新信息在网络传输过程中的丢失或者路由更新信息没有及时地发出,这都有可能导致路由环路的产生,譬如在介绍“收敛”时所举的例子。
 
触发式更新经常与挂起计数器技术结合在一起来解决路由环路问题。

(二)链路状态算法(Link-State Routing)
 
链路状态算法,有时也称为最短路径优先算法(SPF-Shortest Path First)。与向量距离算法不同的是,这种算法需要每一个路由器都保存一份最新的关于整个网络的网络拓扑结构数据库,因此路由器不仅清楚地知道从本路由器出发能否到达某一指定网络,而且在能到达的情况下,还能选择出最短的路径以及使用该路径将经过哪些路由器。使用链路状态算法的路由协议有NLSP,OSPF和IS-IS。 
 
链路状态算法使用LSP(链路状态数据包,Link-State Packets),网络拓扑数据库,SPF路径选择算法,SPF树,最终计算出从该路由器到其他目标网络的最短路径,这些路径就构成了路由表。在算法中,需要给每个路由器一个唯一的名字或标识。

1  2  3  4  5  
责任编辑:孙可

文章评论

评论加载中...请稍后

精彩专题