📜  距离矢量路由 (DVR) 协议

📅  最后修改于: 2021-09-27 15:18:45             🧑  作者: Mango

距离矢量路由 (DVR)协议要求路由器定期通知其邻居拓扑更改。历史上称为旧的 ARPANET 路由算法(或称为 Bellman-Ford 算法)。

Bellman Ford Basics –每个路由器都维护一个距离向量表,其中包含它自己和所有可能的目标节点之间的距离。距离,基于选定的度量,使用来自邻居的距离向量的信息计算。

Information kept by DV router -
  • 每个路由器都有一个ID
  • 与连接到路由器的每条链路相关的链路成本(静态或动态)。
  • 中间啤酒花

距离向量表初始化 –

  • 到自身的距离 = 0
  • 与所有其他路由器的距离 = 无穷大。

距离向量算法 –

  1. 路由器在路由数据包中将其距离向量传输到其每个邻居。
  2. 每个路由器从其每个邻居接收并保存最近接收到的距离向量。
  3. 路由器在以下情况下重新计算其距离向量:
    • 它从包含与以前不同的信息的邻居那里接收距离向量。
    • 它发现与邻居的链接已断开。

DV 计算基于最小化每个目的地的成本

Dx(y) = Estimate of least cost from x to y 
C(x,v) =  Node x knows cost to each neighbor v
Dx   =  [Dx(y): y ∈ N ] = Node x maintains distance vector
Node x also maintains its neighbors' distance vectors
– For each neighbor v, x maintains Dv = [Dv(y): y ∈ N ]

笔记 –

  • 不时地,每个节点都会向邻居发送自己的距离向量估计。
  • 当节点 x 从任何邻居 v 接收到新的 DV 估计时,它保存 v 的距离向量并使用 BF 方程更新自己的 DV:
    Dx(y) = min { C(x,v) + Dv(y), Dx(y) } for each node y ∈ N
    

示例 –考虑如图所示的 3 个路由器 X、Y 和 Z。每个路由器都有自己的路由表。每个路由表将包含到目的节点的距离。
r1
考虑路由器 X,X 将其路由表共享给邻居,邻居将其路由表共享给 X,节点 X 到目的地的距离将使用 bellmenford 方程计算。

Dx(y) = min { C(x,v) + Dv(y)} for each node y ∈ N

正如我们所看到的,当 Y 是中间节点(跳)时,从 X 到 Z 的距离会更小,因此它将在路由表 X 中更新。
dvr2
同样对于 Z 也 –
dvr3

最后是所有的路由表——
dvr4距离矢量路由的优点 –

  • 配置和维护比链路状态路由更简单。

    距离矢量路由的缺点 –

    • 收敛速度比链接状态慢。
    • 它面临从计数到无穷大问题的风险。
    • 由于跳数变化必须传播到所有路由器并在每个路由器上处理,因此它创建的流量比链路状态更多。即使网络拓扑没有变化,跳数更新也会定期进行,因此仍然会发生浪费带宽的广播。
    • 对于较大的网络,距离矢量路由会产生比链路状态更大的路由表,因为每个路由器都必须了解所有其他路由器。这也可能导致 WAN 链接拥塞。

    注 –距离矢量路由使用 UDP(用户数据报协议)进行传输。

    GATE CS 角问题

    练习以下问题将帮助您测试您的知识。所有问题都在前几年的 GATE 或 GATE 模拟测试中提出。强烈建议您练习它们。

    1. GATE CS 2011,问题 52
    2. GATE CS 2011,问题 53
    3. GATE CS 2010,问题 54
    4. GATE CS 2010,问题 55
    5. GATE IT 2005,问题 28
    6. GATE CS 2014(第 1 组),问题 33
    7. GATE IT 2008,问题 65
    8. GATE CS 2014(第 2 组),问题 65

    参考 –

    距离矢量路由 – 维基百科
    www.eecs.yorku.ca