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

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

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

什么是距离向量:每个节点 i i i 都存有该节点到其余所有节点的距离 d j i ( j ≠ i ) d_{ji}(j\ne i) dji(j=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 Di=[d1i,...,di1,i,di+1,i,dNi]T
算法基本原理:算法的基本原理就是基于Bellman-Ford方程进行更新(距离向量),以获得最短路径
d j i = min ⁡ k ( d k i + d j k ) d_{ji}=\min_k (d_{ki}+d_{jk}) dji=kmin(dki+djk)
在这里插入图片描述

链路状态LS算法(Dijsktra)

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

区别

  1. DV 算法中,每个节点只需要维护自身的距离向量,且只需要与自己相连的链路的状态;而 LS 算法中每个节点都需要知道所有链路的状态;
  2. DV 算法中每个节点只需要把自己的信息传给相邻节点;而 LS 算法中每个节点都需要在网络中广播自己的信息,以实现网络中每个节点都保存有整个网络完整的拓扑信息;
  3. DV 算法可以是异步的,也即不要求节点之前同步,当邻居节点信息有变时完全可以再执行以此迭代,即可更新信息;而 LS 则要求全局信息已知,也就要求所有节点的信息都是正确的;
  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值