本文概述
距离矢量算法是迭代的, 异步的和分布式的。分布式的:分布式的是, 每个节点都从一个或多个直接连接的邻居接收信息, 执行计算, 然后将结果分发回其邻居。迭代:迭代的过程一直持续到邻居之间没有更多的信息可交换为止。异步:不需要其所有节点都在锁定步骤中彼此操作。
距离矢量算法是一种动态算法。
它主要用于ARPANET和RIP。
每个路由器都维护一个称为Vector的距离表。
理解距离矢量路由算法工作的三个关键:
有关整个网络的知识:每个路由器都通过整个网络共享其知识。路由器将收集到的有关网络的知识发送给其邻居。
仅路由到邻居:路由器仅将其有关网络的知识发送到具有直接链接的那些路由器。路由器通过端口发送关于网络的所有信息。该信息由路由器接收, 并使用该信息更新其自己的路由表。
定期共享信息:路由器在30秒内将信息发送到相邻路由器。
距离矢量路由算法
令dx(y)为从节点x到节点y的最小成本路径的成本。最少的费用与Bellman-Ford方程相关,
dx(y) = minv{c(x, v) + dv(y)}
其中minv是对所有x个邻居采取的方程式。从x到v行进之后, 如果我们考虑从v到y的最小成本路径, 则路径成本将为c(x, v)+ dv(y)。从x到y的最小开销是对所有邻居取的c(x, v)+ dv(y)的最小值。
使用距离矢量路由算法, 节点x包含以下路由信息:
对于每个邻居v, 成本c(x, v)是从x到直接连接的邻居v的路径成本。
距离向量x, 即Dx = [Dx(y):N中的y], 其中包含距离N的所有目的地y的成本。
每个邻居的距离向量, 即x的每个邻居v的Dv = [Dv(y):N中的y]。
距