上一篇用毒性逆转技术仍然无法识别三个以上的路由环路问题。现在,我们来介绍一种专门用以解决计数到无穷问题的协议:DSDV协议。
基本思想
总体来讲,DSDV协议是对传统的DV协议的一种拓展。它的拓展包括:
- 给每条路径增加了一个序列号码
- 每个目的节点会定期广播一个单调递增的偶数序列号号码
- 当一个节点发现它到某个目的节点的路径断开时,它把到这个节点的距离设为∞,并且将这条路径的序列号加1(此时为奇数),然后向网络中广播这个更新包。当这条路径修复时,它又将序列号加1然后广播出去
换另一种方式来说,每个节点都保持着一张路由表,路由表中的每一项记录了它到目的节点的距离和序列号,也就是(s,d)。我们假设有一目的节点为D,当以下任何一情况发生时,都会发送更新:
- D定期将自己的序列号加2并广播出去,即(S,0)
- 如果节点X要通过Y到达节点D,当X和Y之间的连接断开后,X将到D的路径的序列号加1,同时将路径值设为∞,然后将信息发送给邻居。
更新
我们假设节点A向节点B发送了一个信息(Sa,Da),B在更新前的状态是(Sb,Db)。在收到信息后,B将按照如下方式进行更新: