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