这个算法是干什么的?
就是导航路由器,找下一步该从哪里走的一个算法,从哪里走有最短的路径?
我们先看几个路由器之间的相对位置
连线之间的数字代表的是某种距离或者某种代价
首先每个路由器维护了一个自己的表,注意是每个路由器都有一个哦
里面有三列,分别是destination(目的地),也就是去哪个位置
distance(距离),离目的地的距离有多远
next
第一步
来到N1这个路由器
如果两个路由器没有直接相连,距离就设置成为无限远
然后是N2
N3
N4
文章来源地址https://www.toymoban.com/news/detail-446947.html
N5
有了这几个表就算是完成了第一步
然后我们来搞第二步
第二步
第二步更新干什么?
把自己的距离矢量只分享给他的邻居,也就是和他相邻的路由器,
比如N5和N4,N2相邻
什么是距离矢量?
就是表中的第二列,distance
文章来源:https://www.toymoban.com/news/detail-446947.html
这里我们举一个例子
比如要更新N5的路由表的第一行,N5到N1
接下来我们更新N5表的第二行
后面的也一样我们这里直接把这个表更新出来
和更新前的表相比
发现把无限远缩小了,变成了一个具体的数字,但是现在这个距离是不是就是最短的了呢?
可能是也可能不是哦
所以当我们把所有表更新了一遍之后
还要继续更新个2到3次
这是为什么呢?
我们知道这个算法的更新只是把距离矢量更新给他的邻居
所以我们就需要多次更新来传递距离矢量
比如通过第一次更新,就把N1的距离矢量带给了N2
第二次更新又把N1的距离矢量带到了N5和N3
第二次更新把N1的距离矢量带到了N4
所以经过这样三四次的更新,最终获得了最小的路由表
到了这里,关于详细解读距离矢量路由算法distance vector routing的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!