距离矢量路由算法

article/2025/10/2 23:03:42


    现代计算机网络通常使用动态路由算法,因为这类算法能够适应网络的拓扑和流量变化,其中最流行的两种动态路由算法是“距离矢量路由算法”和“链路状态路由算法”。

    距离矢量路由算法Distance Vector RoutingDVARPANET网络上最早使用的路由算法,也称Bellman-Ford路由算法和Ford-Fulkerson算法,主要在RIPRoute Information Protocol)协议中使用。CiscoIGRPEIGRP路由协议也是采用DV这种路由算法的。

    “距离矢量路由算法”的基本思想如下:每个路由器维护一个距离矢量(通常是以延时是作变量的)表,然后通过相邻路由器之间的距离矢量通告进行距离矢量表的更新。每个距离矢量表项包括两部分:到达目的结点的最佳输出线路,和到达目的结点所需时间或距离,通信子网中的其它每个路由器在表中占据一个表项,并作为该表项的索引。每隔一段时间,路由器会向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表。这样以此类推,经过一段时间后便可将网络中各路由器所获得的距离矢量信息在各路由器上统一起来,这样各路由器只需要查看这个距离矢量表就可以为不同来源分组找到一条最佳的路由。

    现假定用延时作为距离的度量,举一个简单的例子,如图7-37所示。假设某个时候路由器Y收到其邻居路由器X的距离矢量,其中mY估计到达路由器X的延时。若Y路由器知道它到邻居Z的延时为n,那么它可以得知Z通过Y到达X需要花费时间m+n。如果Z路由器还有其他相邻路由器,则对于从其他每个邻居那儿收到的距离矢量,该路由器执行同样的计算,最后从中选择费时最小的路由作为Z去往X的最佳路由,然后更新其路由表,并通告给其邻居路由器。

7-37  距离矢量路由算法简单实例

    现以一个如图7-38所示的示例介绍距离矢量算法中的路由的确定流程,各段链路的延时均已在图中标注。ABCDE代表五个路由器,假设路由表的传递方向为:A → B → C → D → E(这与路由器启动的先后次序有关)。下面具体的流程。 

   (1)初始状态下,各路由器都只收集直接相连的链路的延时信息,各路由器结点得出各自的初始矢量表如图7-39所示。因为各结点间还没有交换路由信息,所以它们的初始状态的路由表也如它们的矢量表。 

 

图7-38 距离矢量算法路由确定示例

图7-39 初始状态下各结点的矢量表

   (2) 现在路由器A把它的路由表发给路由器B。此时它会综合从A路由器发来的路由表和它自己的初始路由表,更新为一个新的矢量表,如图7-40左图所示(最终的矢量表如图中深颜色部分)。从图中可以看出,从B结点到达E结点此时存在两条路径,一条是直达的,一条是通过A结点到达的。而且这两条线的开销不同,经过A结点到达E结点的开销(7)比直达线路的开销(8)更低,所以最终在形成的路由表中,把到达E结点的线路改为经由A结点这条线路,如图7-40右图所示。

图7-40  B结点新的矢量表和路由表

   (3B再把最终形成的路由表发给路由器C。同样,路由器C也要把它原来的初始路由表与从B路由器发来的路由表进行综合,形成新的矢量表,如图7-41左图所示(最终的矢量表如图中深颜色部分)。在新的矢量表中,除了最初的直接连接的BD结点间的矢量外,还新收集了到达AE结点的矢量信息。因为C结点没有与AE结点的直接连接,在初始路由表中并没有到达这两个结点的路由信息,所以现在只有采用从B路由器发来的路由表中,经过B结点到达AE结点的路径。

    这里要注意一点,因为在B结点路由表中就已识别了直接通过B结点到达E结点的开销(8)还比依次通过BA结点到达E结点的开销(7)大,所以在C结点路由表中是采用依次通过BA结点到达E结点这条路径。最终形成的路由表如图7-41右图所示。

图7-41  C结点新的矢量表和路由表

  (4)路由器 C再把它的最终路由表发给路由器D。同样,路由器D也要把它原来的初始路由表与从C路由器发来的路由表进行综合,形成新的矢量表,如图7-42左图所示(最终的矢量表如图中深颜色部分)。在新的矢量表中,除了最初的直接连接的CE结点间的矢量信息外,还新收集了到达AB结点的矢量信息。因为D结点没有与AB结点的直接连接,所以在其最初的路由表中并没有到达这两个结点的矢量信息,此时仍采用经过C结点到达AB结点的路径。

   在这里同样要注意一点,从D结点到达E结点也有两条路径:一是直接到达,二是依次通过CBA结点到达,经过比较发现直接连接到达的开销(2)要比通过CBA结点到达E结点路径的开销(10)要小,所以在D结点中,到达E结点是采用直接连接这条线路。最终形成的路由表如图7-42右图所示。

   (5)路由器 D再把它的最终路由表发给路由器E。同样,路由器E也要把它原来的初始路由表与从D路由器发来的路由表进行综合,形成新的矢量表,如图7-43左图所示(最终的矢量表如图中深颜色部分)。在新的矢量表中,除了最初的直接连接的ABD结点间的矢量外,还新收集了到达C结点的矢量信息,因为E结点没有与C结点的直接连接。此时仍采用经过D结点到达C结点的路径。

 

图7-42  D结点新的矢量表和路由表

   在这里有两个要注意的地方:一是从E结点到达A结点的路径问题,因为此时E结点与A结点是直接连接的,而且其开销(1)要比原来从D路由口器发来的路由表中提供的通过DCB结点到达A结点路径开销(11)要小,所以在最终的E结点路由表中,到达A结点是采用直接连接这条线路。二是E结点虽然也是与B结点直接连接,但它的开销(8)还要比原来从D路由器发来的路由表中提供的依次经过DC这两个结点到达B结点的开销(5)大,所以在最终的E结点路由表中,到达B结点是采用依次经过DC两个结点这条路径。最终形成的路由表如图7-43右图所示。

 

图7-43  E结点新的矢量表和路由表

    通过以上步骤,网络中各路由器就完整了整个路由表的确定,当然在拓扑结构发生变化时,各路由器的路由表又会发生变化,重新进行更新。

    当形成环路或者有一些路由器连接断裂时,就会产生无穷计算问题

    为了避免无穷计算,RIP协议规定路由的最大METRIC为15跳,大于15跳表示网络不可达。这种规定限制的RIP的应用范围, 它只能适用于中小网络,网络规模太大路由信息就无法到达远端的路由器了。
    同时, RIP协议在实现中还使用了带毒性逆转的水平分割技术。
    所谓水平分割是指从某一个邻居获得的路由信息不再向这个邻居发送回去。
    而毒性逆转则是将这样的路由信息METRIC置为无穷大,大于或等于16 在发送回去。
    这两种措施都是为了让路由器不收到从自己发送出去的循环路由而产生错误路由,保持法,将不可达的路由信息在路由表中保持一段时间,以尽可能的扩展最坏情况

    毒性逆转是指发出一条路由,路由的METRIC为无穷大(16跳),作用是通知别的路由器,这条路由已经不可达了。

好处:收到一条坏消息好过没有收到任何消息,也就是有消息好过没有消息。可以取代保持机制来加快路由收敛。
坏处:过多地浪费了链路的带宽,增大了路由表的大小。
结论:通常情况下,不提倡使用,因为会增大路由表,浪费链路带宽。

水平分割也有二种:普通水平分割和带毒性逆转的水平分割。
普通水平分割:从一个接口收到的路由不会再从这个接口泛洪出去。
带毒性逆转的水平分割:从一个接口收到的路由,会从这个接口泛洪出去,但这条路由的METRIC是无穷大。

好处:有消息胜过无消息,即使是一条坏消息。




http://chatgpt.dhexx.cn/article/kQcbo49n.shtml

相关文章

路由算法之距离矢量算法和链路状态算法

我们之前说了,路由器需要对于每一对端端节点都要寻找出一个最佳的路径,比如说最小链路成本的路径。路由算法就是通过自己到相邻节点之间的信息来计算出自己到目的地址的最佳出境线路是哪一条,进而进行转发的一类算法。具有代表性的就是距离矢…

路由算法(网络层)

引言 网络层的主要功能是将数据包从源机器路由到目标机器。在大多数是网络中,数据包需要多跳才能到达目的地。唯一一个值得指出的例外是广播网络,但即使在广播网络中,如果源机器和目标机器不在同一个网络段中时,路由仍然是一个问…

路由算法(凑字)

即最短路径问题,说白了还是算法问题,分类有静态动态路由算法,和全局分散路由算法两种。 **静态:**通过手工配置,路由更新慢,但是优先级高。 **动态:**路由更新快(定期更新&#xff0…

最佳路由路径选择算法详解

动态路由协议基于运行特征可分为 距离矢量协议:RIP、EIGRP、BGP 链路状态协议:OSPF、ISIS 通用的路由选择算法 1.最长匹配原则 2.管理距离 3.度量值 路由路径选择的时候,最先看最长匹配原则,然后再看管理距离,最…

路由算法

距离矢量路由算法(D-V) Distance vector routing:动态路由算法,最初应用于ARPANET,后来应用于因特网的RIP协议(路由信息协议) ,Cisco的IGRP和EIGRP路由协议也是采用DV这种路由算法的。 基本思想 每个结点…

4.2.1 路由算法与路由协议概述(静态路由和动态路由---距离-向量路由算法---链路状态路由算法、层次路由)

文章目录 0.思维导图1.路由算法分类与路由表2.静态路由和动态路由3.动态路由的两种算法:链路状态路由算法和距离向量路由算法4.层次路由 0.思维导图 1.路由算法分类与路由表 路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。从能否随网…

路由算法-链路状态路由

路由算法 网络层的主要功能是将数据包从源机器路由到目标机器。在大多数网络中,数据包需要经过多跳才能到达目的地。路由算法和这些算法所用的数据结构是网络层设计的最主要内容。 可以这样想,路由器内部有两个进程。其中一个进程在每个数据包到达的时候…

路由器路由算法

互联网是由路由器连接的网络组合而成的。为了能让数据包正确达地到达目标主机,路由器必须在途中进行正确地转发。这种向“正确的方向”转发数据所进行的处理就叫做路由控制或路由。 路由器根据路由控制表(Routing Table)转发数据包。它根据所…

距离向量路由算法

一、距离向量路由算法特点 距离向量路由算法是一种迭代的、异步的和分布式的算法。 (1)分布式:每个节点都从其直接相连邻居接受信息,进行计算,再将计算结果分发给邻居。 (2)迭代:计…

分簇路由算法 LEACH算法

1.1 什么是分簇路由算法 在无线传感器网络路由算法中,分簇路由算法具有能量消耗低、稳定性高和扩展性好等优点。分簇路由算法中分簇就是分组,即按照特定的应用要求将网络中的所有节点分成不同的小组,每个小组就是一个簇。每个簇由一个簇头和多…

路由选择算法

网络层的主要功能是将分组从源端机器经选定的路由送到目的端机器。在大多数子网中,分组的整个旅途需经过多次转发。无线广播网络是惟一明显的例外。但即使在这里,如果源端和目的端在同一网络中,仍然有路由选择的问题:路由选择算法…

路由算法入门

路由算法是提高路由协议功能,尽量减少路由时所带来开销的算法。 路由器使用路由算法来找到到达目的地的最佳链路。 网络可以抽象成图来理解 路由算法分类: 静态路由是指由用户或网络管理员手工配置的路由信息。 动态路由是指路由器能够自动地…

路由算法(全网最细)

正文开始 文章目录 正文开始[toc]1.路由算法综述2.静态路由算法3.距离-向量路由算法(RIP)4.链路状态路由算法(OSPF)5.层次路由 1.路由算法综述 路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。主机通常直接与一台路由器相…

计算机网络基础——路由算法

路由控制有各种各样的算法,其中最具代表性的有两种,是距离向量算法(Distance-Vector)和链路状态算法(Link-State) 一、距离向量算法 距离向量算法是根据距离(代价)和方向决定目标网…

计算机网络(十三)——路由算法

文章目录 1. 概述2. 路由选择算法2.1 链路状态路由选择算法(LS)2.2 距离向量路由选择算法(DV)2.3 DV和LS算法的对比 网络层由数据平台和控制平台两个部分组成。接下来我们将对控制平台进行讨论。 1. 概述 重点 转发表和流表是如…

计算机网络——网络层学习笔记(中):路由算法

路由选择算法 1、路由算法概述 路由算法(协议)确定去往目的网络的最佳路径 转发表确定在本路由器如何转发分组。 网络抽象:图 图:G(N,E) N路由器集合,E链路集合 关键问题:源到目的的最小费用路径是什…

路由算法(Dijkstra, Bellman-Ford算法)

文章目录 前言一、路由算法引入二、静态路由三、动态路由1.链路状态(LS)路由算法2.距离向量(DV)路由算法 总结 前言 提示:以下是本篇文章正文内容 一、路由算法引入 路由器的功能: 路由算法(协议)确定去往目的网络的最佳路径,转发表确定在本…

前置路由守卫和后置路由守卫

路由跳转之前, 会触发的一个函数 叫前置路由守卫 语法:router.beforeEach((to, from, next) > {这里可以写路径的跳转判断/有无token值的情况分析}) 作用 : 防止别人猜到网址的hash值后直接跳过登录就可以查看数据 里面的3个参数: to : 到哪里去 …

华为路由器的递归路由、迭代路由

一、什么是路由递归? 路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由递归。路由递归也被称为路由迭代。 【AR1】ip route-static …

什么是动态路由如何使用动态路由

文章目录 什么是动态路由和概述动态路由特点动态路由如何实现动态路由协议选择依据:度量值收敛动态路由协议分类什么是RIPRIP的基本概念路由表的形成RIP的度量值与更新时间RIP协议防环机制RIP路由协议版本区别RIP配置命令 什么是动态路由和概述 动态路由是与静态路…