路由算法通常具有下列设计目标的一个或多个:
优化
优化指路由算法选择***路径的能力,根据metric的值和权值来计算。例如有一种路由算法可能使用跳数和延迟,但可能延迟的权值要大些。当然,路由协议必须严格定义计算metric的算法。
简单、低耗
路由算法也可以设计得尽量简单。换句话说,路由协议必须高效地提供其功能,尽量减少软件和应用的开销。当实现路由算法的软件必须运行在物理资源有限的计算机上时,高效尤其重要。
健壮、稳定
路由算法必须健壮,即在出现不正常或不可预见事件的情况下必须仍能正常处理,例如硬件故障、高负载和不正确的实现。因为路由器位于网络的连接点,当它们失效时会产生重大的问题。***的路由算法通常是那些经过了时间考验,证实在各种网络条件下都很稳定的算法。
快速聚合
此外,路由算法必须能快速聚合,聚合是所有路由器对***路径达成一致的过程。当某网络事件使路径断掉或不可用时,路由器通过网络分发路由更新信息,促使***路径的重新计算,最终使所有路由器达成一致。聚合很慢的路由算法可能会产生路由环或网路中断。
在下图中的路由环中,某分组在时间t1到达路由器1,路由器1已经更新并知道到达目的的***路径是以路由器2为下一跳,于是就把该分组转发给路由器2.但是路由器2还没有更新,它认为***的下一跳是路由器1,于是把该分组发回给路由器1,结果分组在两个路由器间来回传递直到路由器2收到路由更新信息或分组超过了生存期。
灵活性
路由算法还应该是灵活的,即它们应该迅速、准确地适应各种网络环境。例如,假定某网段断掉了,当知道问题后,很多路由算法对通常使用该网段的路径将迅速选择次佳的路径。路由算法可以设计得可适应网络带宽、路由器队列大小和网络延迟。
【编辑推荐】