网络:简述路由算法之动态路由算法

article/2025/10/2 22:03:41

网络:简述路由算法之动态路由算法


在计算机网络中,路由器的一个很重要责任就是要在端对端的节点中找出一条最佳路径出来,通过自己与相邻节点之间的信息,来计算出从自己位置到目的节点之间的最佳线路,这种算法我们可以理解为路由算法

路由的模式又主要分为「静态路由」和「动态路由」。静态路由协议是由网络管理员手动输入配置的,适用于小型的不太复杂的网络环境中,或者有特定需求的网络场景中。而动态路由协议是现代计算机网络中最为常用的一种方式。动态路由算法能够根据网络拓扑结构去适应流量的变化。

动态路由算法大致可以分为两类:

  1. 距离矢量路由算法
  2. 链路状态路由算法

一、距离矢量路由算法

距离矢量路由算法(Distance Vector Routing),它是网络上最早使用的动态路由算法,也称为Bellman-Ford或者Ford-Fulkerson算法。基于这类算法实现的协议有:RIP、BGP等。
在这里插入图片描述
如图,这类算法的基本思路是:网络中每一个路由器都要维护一张 矢量表 ,这个矢量表 中的每一行都记录了从当前位置能到达的目标路由器的最佳出口(接口)和距离(跳数)。

每隔一段时间当前路由器会向所有的邻居节点发送自己的这个表,同时它也会接收每个邻居发来的它们的表。并会将邻居的表和自己的表做一个对比更新。

比如当前 路由器X 离 邻居Y路由器 的距离是m,此时收到 邻居Y 发来的表中写到了“ 邻居Y离路由器Z的距离是n ”,那 当前路由器X 就知道它离 路由器Z 的距离可能就是 m+n 了,如图:
在这里插入图片描述
就这样继续类推,要不了多久,每个路由器就可以将网络中所有路由节点和子网线路都汇聚起来了。这样的话,每个路由器只需要查找自己的表就可以很容易的知道到达目的地的最佳出口(接口)是哪个了。

当然,当网络结构发生变化的时候,各个路由器中的矢量表也会随之动态更新。

「距离矢量路由算法」,“距离”这个词就基本表明了这个算法是通过 距离(跳数/时间)来度量2个路由网络之间的线路的,而“矢量”这个词,可以看出线路是有方向性的,且路由表中只记录了数据包去往目的地应该走哪个出口方向,并不会记录到达目的地的整条路径。

「距离矢量路由算法」的优点很明显:非常简单清晰,且任何加入到网络中的新节点都能很快的与其它节点建立起联系获得补充信息。

「距离矢量路由算法」的缺点如下:

  1. 每次发送信息的时候,要发送整个全局路由表,太大了,因为每个路由器需要在矢量表中记录下整个网络的信息,导致需要较大存储、CPU、网络开销,对资源的要求越来越高。
  2. 收敛时间太慢,也就是路由器共享路由信息并使各台路由器掌握的网络情况达到一致所需的时间比较久,收敛速度慢会导致有些路由器的表更新慢,从而造成路由环路的问题。

二、链路状态路由算法

链路状态路由算法(Link State Routing ),基于Dijkstra算法,它是以图论作为理论基础,用图来表示网络拓扑结构,用图论中的最短路径算法来计算网络间的最佳路由。基于这类算法实现的协议有:OSPF 等。
在这里插入图片描述
如图,这类算法的基本思路是:采用的是不停的拼接地图的方式。每一个路由器首先都会发现自己身边的邻居节点,然后将自己与邻居节点之间的链路状态包广播出去,发送到整个网络。这样,当某个路由器收到从网络中其它路由器广播来的路由信息包(链路状态包)之后,会将这个包中的信息与自己路由器上的信息进行拼装,最终形成一个全网的拓扑视图。

当路由器中形成了全网的拓扑视图后,它就可以通过最短路径算法来计算当前节点到其它路由器之间的最短路径了。当某台路由器的链路状态发生变化时,路由器采用洪泛法向所有路由器发送此信息,其它路由器使用收到的信息重新计算最佳路径,重新生成路由表(拓扑图)。

这里可以做一个类比,有一个路人去问路,然后本地人A只知道A自己生活方圆5公里的地图,本地人B只知道B自己生活的方圆5公里的地图,但是路人要去的地方需要穿过A和B所在区域,那么就把A和B的2份地图拿来拼装在一起,然后去往目的地的完整路线就可以查出来了。

链路状态路由算法简单而言就是五个步骤:

  1. 发现邻居节点,并了解邻居网络地址
  2. 测量到邻居节点的距离或成本度量值
  3. 构建一个包含自己所拥有信息的链路状态包
  4. 将这个包广播到网络中,并接收其它路由器的链路状态包
  5. 计算出当前节点到其它节点之间的最短路径(基于Dijkstra算法)

链路状态路由算法 不会像 距离矢量路由算法 那样发送整个路由表,链路状态路由协议只会广播更新的或者改变了的网络拓扑,这样传播的信息量会少很多,同时对带宽和CPU资源也是一种节省。

「链路状态路由算法」具有很好的扩展能力,也具有更快的收敛速度,能够快速的适应网络变化,且由于一个路由器的链路状态只涉及与其相邻的路由器的联通状态,因而与整个互联网的规模并无直接关系,因此链路状态路由算法可以用于大型的或者路由信息变化剧烈的互联网环境。

将上述两种算法做一个简单的对比:
在这里插入图片描述


参考:

  1. https://mp.weixin.qq.com/s/7TTrDuykPWcYWeK5JnBT2A

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

相关文章

路由选择算法——链路状态算法

好久没写东西了,好生疏的感觉。。 链路状态算法 这是一种全局式的路由选择算法,也就是说,一个路由器知道到其他路由器的所有链路的状态信息(例如某条链路上堵不堵),并且假设这种信息是被量化好了的&#…

示例演示“距离矢量路由算法”工作原理

以下内容摘自刚刚上市,已被纳入全国高校教材系统,并在全国热销、好评如潮的《深入理解计算机网络》新书。 7.5.3 距离矢量路由算法 现代计算机网络通常使用动态路由算法,因为这类算法能够适应网络的拓扑和流量变化,其中最流行的…

距离矢量路由算法

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

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

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

路由算法(网络层)

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

路由算法(凑字)

即最短路径问题,说白了还是算法问题,分类有静态动态路由算法,和全局分散路由算法两种。 **静态:**通过手工配置,路由更新慢,但是优先级高。 **动态:**路由更新快(定期更新&#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)路由算法 总结 前言 提示:以下是本篇文章正文内容 一、路由算法引入 路由器的功能: 路由算法(协议)确定去往目的网络的最佳路径,转发表确定在本…