DV和LS算法采用互补的方法来解决路由选择计算问题。在DV算法中,每个节点仅与它的直接相连的邻居交谈,但它为其邻居提供了从它自己到网络中(它所知道的)所有其他节点的最低开销估计。LS算法需要全局信息。因此,当在每台路由器中实现时,每个节点(经广播)与所有其他节点通信,但仅告诉它们 与它直接相连链路的开销。我们通过快速比较它们各自的属性来总结所学的链路状态与距 离向量算法。记住N是节点(路由器)的集合,而E是边(链路)的集合。
•报文复杂性。我们已经看到LS算法要求每个节点都知道网络中每条链路的开销。 这就要求要发送O(|N| |E|)个报文。而且无论何时一条链路的开销改变时,必须向所有节点发送新的链路开销。DV算法要求在每次迭代时,在两个直接相连邻 居之间交换报文。我们已经看到,算法收敛所需时间依赖于许多因素。当链路开销 改变时,DV算法仅当在新的链路开销导致与该链路相连节点的最低开销路径发生 改变时,才传播已改变的链路开销。
•收敛速度。我们已经看到LS算法的实现是一个要求O(|N| |E|)个报文的O()算法。DV算法收敛较慢,且在收敛时会遇到路由选择环路。DV算法还会遭遇无穷计数的问题。
•健壮性。如果一台路由器发生故障、行为错乱或受到蓄意破坏时情况会怎样呢?对于LS算法,路由器能够向其连接的链路(而不是其他链路)广播不正确的开销。 作为LS广播的一部分,一个节点也可损坏或丢弃它收到的任何LS广播分组。但是 一个LS节点仅计算自己的转发表;其他节点也自行执行类似的计算。这就意味着 在LS算法下,路由计算在某种程度上是分离的,提供了一定程度的健壮性。在DV 算法下,一个节点可向任意或所有目的节点通告其不正确的最低开销路径。更一般地,我们会注意到每次迭 代时,在DV算法中一个节点的计算会传递给它的邻居,然后在下次迭代时再间接 地传递给邻居的邻居。在此情况下,DV算法中一个不正确的节点计算值会扩散到 整个网络。
总之,两个算法没有一个是明显的赢家,它们的确都在因特网中得到了应用。