距离向量DV与链路状态LS算法的区别

距离向量DV算法与链路状态LS算法最大的区别就在于:前者为分布式、迭代算法,而后者为“集中式”的算法。什么意思呢?先来看一下两种算法的原理。

距离向量路由算法(Bellman-Ford)

什么是距离向量:每个节点 i i 都存有该节点到其余所有节点的距离 d j i ( j i ) d_{ji}(j\ne i) ,这就是一个距离向量;
D i = [ d 1 i , . . . , d i 1 , i , d i + 1 , i , d N i ] T D_i=[d_{1i}, ...,d_{i-1,i},d_{i+1,i}, d_{Ni}]^T
算法基本原理:算法的基本原理就是基于Bellman-Ford方程进行更新(距离向量),以获得最短路径
d j i = min k ( d k i + d j k ) d_{ji}=\min_k (d_{ki}+d_{jk})
在这里插入图片描述

链路状态LS算法(Dijsktra)

在算法开始前,需要知道任意两个节点之间链路状态的信息,维护一个到达源点最短路径已知的点的集合 D,每次选取最短路径并更新集合 D。
在这里插入图片描述

区别

  1. DV 算法中,每个节点只需要维护自身的距离向量,且只需要与自己相连的链路的状态;而 LS 算法中每个节点都需要知道所有链路的状态;
  2. DV 算法中每个节点只需要把自己的信息传给相邻节点;而 LS 算法中每个节点都需要在网络中广播自己的信息,以实现网络中每个节点都保存有整个网络完整的拓扑信息;
  3. DV 算法可以是异步的,也即不要求节点之前同步,当邻居节点信息有变时完全可以再执行以此迭代,即可更新信息;而 LS 则要求全局信息已知,也就要求所有节点的信息都是正确的;
发布了42 篇原创文章 · 获赞 34 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41024483/article/details/102019097
今日推荐