计算机网络——网络层-距离向量路由算法

计算机网络系列博文——目录

距离向量(Distance-Vector,DV)路由选择算法

  • 迭代,异步,分布式路由选择算法;

特点

分布式
每个节点都从其邻居处接收信息,执行计算,而后将计算结果分发给邻居;

迭代式
计算过程一直持续到邻居间无更多信息交换为止;
此算法是自我终止的,没有算法应当停止的信号;

异步
不要求所有节点间同步操作;

基本概念

Bellman-Ford方程
x到y的带权最短路径长度 = min(x的邻居v){x到v的权重+v到y的带权最短路径长度}

距离向量
节点x的距离向量维护节点x到其它所有节点的估计距离;

松弛操作
当更新到节点v的最短路径后,更新到节点v邻居的当前最短路径

DV路由选择算法原理

  • 每个节点维护一个距离向量;

  • 距离向量中,到邻居节点的距离是准确值;

  • 节点在每次迭代中向所有邻居发送自身的距离向量;

  • 节点每次收到邻居发送的距离向量,就根据Bellman-Ford方程校正自身的距离向量;

  • 校正过程即是最短路径问题中的松弛操作;

  • 只要所有节点以异步方式交换距离向量,每个节点的距离向量值都会收敛到精确最短路径值;

  • 距离向量收敛后,只要链路没有更新,节点就不会向邻居发出新距离向量报文,也不会收到邻居的报文,算法进入静止状态;

路由选择环路问题

  • 某链路w权重增加后,非相邻节点a可能要在多次迭代后才获知这一事实(因为链路w在节点a预期的某条最短路径上),而该链路的邻接节点b可以立刻获知这一事实;
    在路由表多次迭代直至稳定之前,会导致路由选择环路问题:
  • b将把分组发往a,期望a能以较低代价转发分组,而a会把分组发往b,因为a预期的最短路径通过链路w,而此时a的距离向量还未完全反映w权重大量上升这一事实;

路由选择环路问题的解决方案

毒性逆转

  • 对涉及两个节点的路由选择环路问题可通过毒性逆转技术解决;
  • 若节点a通过节点b到达节点c,则节点a将虚假但善意地告诉b:a到c的距离是无穷大,从而避免环路问题;
  • 等价地,节点a在告所节点b自己到节点c的费用时,可附带通过自己到c的路径上的下一跳路由,这使得节点b能判断a是否是通过b自身到达c的,也能起到毒性逆转的作用;
  • 毒性逆转技术对涉及到三个或更多节点的选择环路问题无能为力;

最大度量

  • 通过限制分组最大跳步数TTL可在一定程度上减轻路由选择环路问题的影响

LS与DV路由选择算法对比

  • LS算法中,每个节点a经广播通告所有节点:a与a邻居的链路权重;
  • DV算法中,每个节点a仅与a的邻居节点交流,通告邻居:a到所有其它节点的最低费用估计;
  • LS要求发送大量报文以通告整个网络的情况;
  • DV收敛速度较慢,且有路由选择环路问题;
  • LS每个路由器的计算是隔离的,相对健壮;
  • DV中,一个损坏的路由器会将错误信息扩散至全网;

DV,LS各有所长,都在因特网中得到应用,并且,LS和DV基本上是因特网实践中仅有的两种算法。

你可能感兴趣的:(计算机网络——网络层-距离向量路由算法)