A. 距离向量路由(DVR) 该协议要求路由器定期通知其邻居拓扑结构的变化。历史上称为旧的ARPANET路由算法(或称为贝尔曼-福特算法)。
贝尔曼福特基础- 每个路由器维护一个距离向量表,其中包含其自身和所有可能的目标节点之间的距离。基于所选度量的距离是使用邻居距离向量中的信息计算的。
Information kept by DV router -
- 每个路由器都有一个ID
- 与连接到路由器的每条链路相关联,存在链接成本(静态或动态)。
- 中间啤酒花
- 到自身的距离=0
- 到所有其他路由器的距离=无穷大。
距离向量算法-
- 路由器将其距离向量传输到路由数据包中的每个邻居。
- 每个路由器接收并保存来自其每个邻居的最近接收到的距离向量。
- 路由器在以下情况下重新计算其距离向量:
- 它从邻居那里接收一个距离向量,其中包含与以前不同的信息。
- 它发现与邻居的链接已断开。
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的距离向量,并使用B-F方程更新自己的DV:
Dx(y) = min { C(x,v) + Dv(y), Dx(y) } for each node y ∈ N
例如—— 考虑3路由器X,Y和Z,如图所示。每个路由器都有自己的路由表。每个路由表都将包含到目标节点的距离。 考虑路由器X,X将共享IT路由表给邻居,邻居将它共享路由表到X,并用贝尔曼-福特方程计算节点X到目的地的距离。
Dx(y) = min { C(x,v) + Dv(y)} for each node y ∈ N
正如我们所看到的,当Y是中间节点(hop)时,从X到Z的距离将更小,因此它将在路由表X中更新。 同样地,Z也-
最后是所有人的路线表—— 距离向量路由的优势——
- 它比链路状态路由更易于配置和维护。
距离向量路由的缺点——
- 它的收敛速度比链路状态慢。
- 从计数问题到无穷大问题,这是有风险的。
- 由于跳数变化必须传播到所有路由器并在每个路由器上进行处理,因此它产生的流量比链路状态更多。跳数更新会定期进行,即使网络拓扑结构没有变化,也会出现浪费带宽的广播。
- 对于更大的网络,距离向量路由会导致比链路状态更大的路由表,因为每个路由器必须知道所有其他路由器。这也会导致广域网链路拥塞。
注—— 距离向量路由使用UDP(用户数据报协议)进行传输。
盖特CS角问题
练习下列问题将有助于测试你的知识。所有问题都是在前几年的GATE或GATE模拟测试中提出的。强烈建议你练习。
- 2011年CS门,问题52
- 2011年CS门,问题53
- CS门2010,问题54
- CS门2010,问题55
- 2005年,问题28
- GATE CS 2014(第1组),问题33
- 2008年,问题65
- GATE CS 2014(第二组),问题65
参考资料-
本文由 阿卡什·沙兰 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。