关于路由的基础知识( 二 )


路由算法可以根据多个特性来加以区分 。首先,算法设计者的特定目标影响了该路由协议的操作;其次,存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;最后,路由算法使用多种metric,影响到最佳路径的计算 。下面的章节分析了这些路由算法的特性 。
1、设计目标
路由算法通常具有下列设计目标的一个或多个:
优化
简单、低耗
健壮、稳定
快速聚合
灵活性
优化指路由算法选择最佳路径的能力,根据metric的值和权值来计算 。例如有一种路由算法可能使用跳数和延迟,但可能延迟的权值要大些 。当然,路由协议必须严格定义计算metric的算法 。
路由算法也可以设计得尽量简单 。换句话说,路由协议必须高效地提供其功能,尽量减少软件和应用的开销 。当实现路由算法的软件必须运行在物理资源有限的计算机上时高效尤其重要 。
路由算法必须健壮,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高负载和不正确的实现 。因为路由器位于网络的连接点,当它们失效时会产生重大的问题 。最好的路由算法通常是那些经过了时间考验,证实在各种网络条件下都很稳定的算法 。
此外,路由算法必须能快速聚合,聚合是所有路由器对最佳路径达成一致的过程 。当某网络事件使路径断掉或不可用时,路由器通过网络分发路由更新信息,促使最佳路径的重新计算,最终使所有路由器达成一致 。聚合很慢的路由算法可能会产生路由环或网路中断 。
在下图中的路由环中,某分组在时间t1到达路由器1,路由器1已经更新并知道到达目的的最佳路径是以路由器2为下一跳,于是就把该分组转发给路由器2 。但是路由器2还没有更新,它认为最佳的下一跳是路由器1,于是把该分组发回给路由器1,结果分组在两个路由器间往返传递直到路由器2收到路由更新信息或分组超过了生存期 。
路由算法还应该是灵活的,即它们应该迅速、准确地适应各种网络环境 。例如,假定某网段断掉了,当知道问题后,很多路由算法对通常使用该网段的路径将迅速选择次佳的路径 。路由算法可以设计得可适应网络带宽、路由器队列大小和网络延迟 。
2、算法类型
各路由算法的区别点包括:
静态与动态
单路径与多路径
平坦与分层
主机智能与路由器智能
域内与域间
链接状态与距离向量
(1)静态与动态
静态路由算法很难算得上是算法,只不过是开始路由前由网管建立的表映射 。这些映射自身并不改变,除非网管去改动 。使用静态路由的算法较轻易设计,在网络通信可猜测及简单的网络中工作得很好 。
由于静态路由系统不能对网络改变做出反映,通常被认为不适用于现在的大型、易变的网络 。九十年代主要的路由算法都是动态路由算法,通过分析收到的路由更新信息来适应网络环境的改变 。假如信息表示网络发生了变化,路由软件就重新计算路由并发出新的路由更新信息 。这些信息渗入网络,促使路由器重新计算并对路由表做相应的改变 。
动态路由算法可以在适当的地方以静态路由作为补充 。例如,最后可选路由(router of last resort),作为所有不可路由分组的去路,保证了所有的数据至少有方法处理 。
(2)单路径与多路径
一些复杂的路由协议支持到同一目的的多条路径 。与单路径算法不同,这些多路径算法答应数据在多条线路上复用 。多路径算法的优点很明显:它们可以提供更好的吞吐量和可靠性 。

推荐阅读