您的位置:首页 > 理论基础 > 计算机网络

网络层—距离矢量算法

2015-12-28 15:35 591 查看

本文主要介绍距离矢量路由(distance vector routing)算法,也可以叫做Bellman-Ford路由算法(这是根据设计者的名字来命名的),该算法应用于很多网络协议中,例如著名的RIP。

距离矢量算法(我们简称它为DV,而链路路由算法我们简称为LS)是一种迭代的、异步的、分布式的算法。首先,说它是迭代的,是因为这个过程一直要持续到邻居之间没有更多信息需要交换为止。其次,说它是异步的,是因为不需要所有路由器同步一致地进行操作。最后,说它是分布式的,是因为每个结点都要从它的邻居接受信息,同时也要发送信息给它的邻居。并且每个结点需要知道的只是它的邻居的信息,而不需要了解整个网络的拓扑等信息。
在真正学习DV算法之前,我们需要了解一个很著名的方程,因为DV算法就是利用这个方程在不断更新每个路由表的信息的。这个方程叫做Bellman-Ford方程:
dx(y)= minv {   c(x,v)+ dv(y)}
dx(y)表示结点x到结点y的最低费用路径所需要花费的费用,v是x的邻居结点,c(x,v)表示x到v的直接费用,dv(y)表示结点v到结点y的最低费用路径所需要花费的费用。
下面正式介绍距离矢量算法:
Initialization
for all destinations y in N
D x(y) = c(x,y) /* if y is not a neighbor then c(x,y) = max */
for each neighbor w
send distance vector Dx = [Dx(y) : y in N] to w
Loop
wait (until I see a link cost change to some neighbor w or
until I receive a distance vector from some neighbor w)
for each y in N
Dx(y) = min v{c(x,v) + Dv(y)}
if Dx(y) changed for any destination y
send distance vector Dx = [Dx(y) : y in N] to all neighbors
forever

DV算法对与好消息是收敛(指找出最短路径的这个动作)是很迅速的,但是对与坏消息的收敛是很慢的,而且还容易造成一种叫做无穷计数的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: