路由选择算法总结

article/2025/10/3 0:58:43

文章目录

  • 一、路由算法
    • 1.静态路由与动态路由
      • ①静态路由算法(非自适应路由算法)
      • ②动态路由算法(自适应路由算法)
    • 2.链路状态(LS)算法
    • 3.距离向量(DV)算法
  • 二、层次路由与自治系统
    • 层次路由方法
    • 自治系统(Autonomous System,AS):
  • 三、路由协议
    • 1.自治系统内部的路由选择
      • 路由信息协议(RIP)
      • 开放最短路径优先(OSPF)协议
    • 2.ISP之间的路由选择
      • 边界网关协议(BGP)
    • 3.三种路由协议的比较

一、路由算法

路由器转发分组是通过路由表转发的,而路由表是通过各种算法得到的。从能否随网络的通信量或拓扑自适应地进行调整变化来划分,路由算法可以分为如下两大类。

1.静态路由与动态路由

①静态路由算法(非自适应路由算法)

  • 由网络管理员手工配置的路由信息。

静态路由特点

  1. 当网络的拓扑结构或链路的状态发生变化时,需手工修改路由表中的静态路由信息。
  2. 它不能及时适应网络状态的变化,对于简单的小型网络,可以采用静态路由。

②动态路由算法(自适应路由算法)

  • 相互连接的路由器之间彼此交换信息,按照一定的算法优化出路由表。

动态路由特点

  1. 这些路由信息会在一定时间间隙里不断更新,以随时获得最优的寻路效果。
  2. 常用的动态路由算法还可以分为两类:距离-向量路由算法链路状态路由选择算法

2.链路状态(LS)算法

它属于全局式路由选择算法,即要求每个参与该算法的结点都具有完全的网络拓扑信息,最终使用Dijstra算法得到源点到各个结点的最短路径。

算法的运行过程

  1. 主动测试所有邻接结点的状态。
  2. 定期地将链路状态传播给所有其他结点(或称路由结点)。

算法伪代码

Initialization:N'={u}for all nodes vif v is a neighbor of uthen D(V)= c(u, v)else D(v)=∞
Loopfind w not in N'such that D(w) is a minimumadd w to N'update D(v) for each neighbor v of w and not in N' ;D(V)=min (D(v) , D(W)+c(w, v) )
/* new cost to v is either old cost to v or knownleast path cost to w plus cost from w to v*/
until N'= N

基本特征

  1. 向本自治系统中所有路由器发送信息使用的方法是洪泛
  2. 发送的信息是与路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信
    息。
  3. 只有当链路状态发生变化时,路由器才向所有路由器发送此信息。

3.距离向量(DV)算法

它属于分散式路由选择算法,每个路由表都有三个数据,<目的网络N,距离d,下一跳路由器地址X>

算法的运行过程

  1. 对地址为X的相邻路由器发来的RIP报文,先修改此报文中的所有项目:把“下一跳”字段中的地址都改为X,并把所有“距离”字段的值加1。
  2. 对修改后的RIP报文中的每个项目。首先,当原来的路由表中没有目的网络N时,把该项目添加到路由表中。
  3. 当原来的路由表中有目的网络N,且下一跳路由器的地址是X时,用收到的项目替换原路由表中的项目。
  4. 当原来的路由表中有目的网络N,且下一跳路由器的地址不是X时,如果收到的项目中的距离d小于路由表中的距离,那么就用收到的项目替换原路由表中的项目;否则什么也不做。
  5. 运行完上面三条之后,如果180秒(RIP默认超时时间)还没有收到相邻路由器的更新路由表,那么把此相邻路由器记为不可达路由器,即把距离设置为16(距离为16表示不可达)。
  6. 返回。

算法伪代码

Initialization:for all destinations y in N:Dx(y)= c(x, y)/* if y is not a neighbor then c(x, y)=∞*/for each neighbor wDw(y)= ? for all destinations y in Nfor each neighbor wsend distance vector  Dx = [Dx(y) : y in N] to w
Loopwait (until I see a link cost change to some neighbor w or until I receive a distance vector from some neighbor w)for each y in N:Dx(y) =minv{c (x, V)+ Dv(y)}
if Dx(y) changed for any destination ysend distance vector Dx = [Dx(y) : y in N] to all neighbors
forever

距离-向量算法的实质是通过迭代计算每个路由器的代价,得到目标路由的最小代价


二、层次路由与自治系统

网络规模扩大时,路由器的路由表成比例地增大。这会消耗路由器缓冲区空间,还需要用更多CPU时间,用更多的带宽来交换路由状态信息。因此路由选择必须按照层次的方式进行。

层次路由方法

  • 因特网将整个互联网划分为较小的自治系统(一个自治系统中包含很多局域网),每个自治系统内部有自己的路由选择协议
  • 如果两个自治系统需要通信,则需要自治系统之间的协议来屏蔽掉这些差异,在下一个部分会介绍响应的路由协议。

自治系统(Autonomous System,AS):

  • 单一技术管理下的一组路由器,这些路由器使用一种AS内部的路由选择协议和共同的度量来确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议来确定分组在AS之间的路由
  • 一个自治系统内的所有网络都由一个行政单位管辖,一个自治系统的所有路由器在本自治系统内都必须是连通的

三、路由协议

1.自治系统内部的路由选择

路由信息协议(RIP)

路由信息协议(Routing Information Protocol,RIP)是内部网关协议(IGP)中最先得到广泛应用的协议。RIP是一种分布式基于距离向量的路由选择协议,其最大优点就是简单

该协议的规定及工作原理

  1. 网络中的每个路由器都要维护从它自身到其他每个目的网络的距离记录
  2. 距离也称跳数(Hop Count),规定从一个路由器到直接连接网络的距离(跳数)为1。而
    每经过一个路由器,距离(跳数)加1。
  3. RIP认为好的路由就是它通过的路由器的数目少,即优先选择跳数少的路径
  4. RIP 允许一条路径最多只能包含15个路由器(即最多允许15跳)。因此距离等于16时,它表示网络不可达可见RIP只适用于小型互联网。距离向量路由可能会出现环路的情况,规定路径上的最高跳数的目的是为了防止数据报不断循环在环路上,减少网络拥塞的可能性。
  5. RIP默认在任意两个使用RIP的路由器之间每30秒广播一次RIP路由更新信息,以便自动建立并维护路由表(动态维护)。
  6. 在RIP中不支持子网掩码的RIP广播,所以RIP中每个网络的子网掩码必须相同。

RIP协议缺点

  1. RIP限制了网络的规模,它能使用的最大距离为15(16表示不可达)。
  2. 路由器之间交换的是路由器中的完整路由表,因此网络规模越大,开销也越大
  3. 网络出现故障时,会出现慢收敛现象(即需要较长时间才能将此信息传送到所有路由器),俗称“坏消息传得慢”,使更新过程的收敛时间长

RIP协议特点

  1. 仅和相邻路由器交换信息。
  2. 路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表
  3. 固定的时间间隔交换路由信息,如每隔30秒。

开放最短路径优先(OSPF)协议

开放最短路径优先(OSPF)协议是使用分布式链路状态路由算法的典型代表,也是内部网关协议(IGP)的一种。

OSPF与RIP相比有以下4点主要区别:

  1. OSPF向本自治系统中的所有路由器发送信息,这里使用的方法是洪泛法而RIP仅向自己相邻的几个路由器发送信息。
  2. 发送的信息是与本路由器相邻的所有路由器的链路状态,这些信息说明本路由器和哪些路由器相邻及该链路的“度量”(或代价)而在RIP中,发送的信息是本路由器所知道的全部信息,即整个路由表。
  3. 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息,并且更新过程收敛得快。不会出现 RIP“坏消息传得慢”的问题。而在 RIP 中,不管网络拓扑是否发生变化,路由器之间都会定期交换路由表的信息。
  4. OSPF是网络层协议,它不使用UDP或TCP,而直接用IP数据报传送(其IP数据报首部的协议字段为89)。而RIP是应用层协议,它在传输层使用UDP。

OSPF协议的工作原理

  1. 各路由器之间频繁的交换链路状态信息,从而构建一个大的数据库,存储全网的拓扑结构,并且同步到每个路由器上。
  2. 每个路由器根据这个拓扑图,使用Dijstra算法计算总自己到各个网络的最优路径。
  3. 当链路状态发生变化时,每个路由器重新计算各目的网络的最优路径,构建新的网络表。

:虽然使用Dijkstra算法能计算出完整的最优路径,但路由表中不会存储完整路径,而只存储“下一跳”

在这里插入图片描述
为使OSPF能够用于规模很大的网络,OSPF 将一个自治系统再划分为若千更小的范围,称为区域
划分区域的好处:将洪泛法的范围局限于每个区域而非整个自治系统,减少了整个网络上的通信量
在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑情况。这些区域也有层次之分。处在上层的域称为主干区域,负责连通其他下层的区域,并且还连接其他自治域。

2.ISP之间的路由选择

边界网关协议(BGP)

边界网关协议(Border Gateway Protocol,BGP)是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。边界网关协议常用于互联网的网关之间。

BGP的工作原理:

  1. 每个自治系统的管理员要选择至少一个路由器(可以有多个)作为该自治系统的“BGP发言人”。
  2. 一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接。然后在此连接上交换BGP报文以建立BGP会话,再利用BGP会话交换路由信息。
  3. 当所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可找出到达各个自治系统的较好路由。
  4. 每个BGP发言人除必须运行BGP外,还必须运行该AS所用的内部网关协议,如 OSPF或RIP。BGP所交换的网络可达性信息就是要到达某个网络(用网络前缀表示)所要经过的一系列AS。

主干网与自治系统之间路径向量的交换
BGP的特点

  1. BGP交换路由信息的结点数量级是自治系统的数量级,要比这些自治系统中的网络数少很多。
  2. 每个自治系统中BGP发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。
  3. BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
  4. 在BGP刚运行时,BGP的邻站交换整个BGP路由表,但以后只需在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。

3.三种路由协议的比较

协议RIPOSPFBGP
类型内部内部外部
路由算法距离-向量链路状态路径-向量
传递协议UDPIPTCP
路径选择跳数最少代价最低较好
交换结点和本结点相邻的路由器网络中的所有路由器和本结点相邻的路由器
交换内容当前本路由器知道的全部信息与自己相邻的所有路由器的链路状态首次为整个路由表,之后是变化的部分

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

相关文章

什么是浮动路由及作用

目录 一、浮动路由介绍 二、配置步骤及命令 一、浮动路由介绍 浮动路由指的是配置两条静态路由&#xff0c;默认选取链路质量优&#xff08;带宽大的&#xff09;作为主路径&#xff0c;当主路径出现故障时&#xff0c;由带宽较小的备份路径顶替主路径。 作用&#xff1a;保持…

路由基本概念(路由优先级、路由表、路由转发)

目录 路由基本概念 什么是路由 实现路由的设备 实现路由的依据 路由表包含内容&#xff08;华为设备&#xff09; 路由信息&#xff08;路由表&#xff09;的来源 路由进表的规则 路由报文转发机制 路由转发流程 路由高级特性 路由递归 等价路由&#xff08;负载分…

vue 路由懒加载

1. 路由懒加载如何实现 当打包构建应用时&#xff0c;JavaScript 包会变得非常大&#xff0c;影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块&#xff0c;然后当路由被访问的时候才加载对应组件&#xff0c;这样就会更加高效 当前&#xff0c;我们使用如下…

路由引入基本概念

目录 路由引入概念 基本概念 路由引入的初始度量值 路由引入概念加深 路由引入的方式 路由引入场景 单点单向引入场景 双点单向引入 单点双向引入 双点双向引入 路由引入概念 基本概念 路由引入&#xff08;import注入、redistribute重发布&#xff09; 为什么需要路…

Vue路由详解

目标 1.能够说出什么是路由 2.能够说出前端路由的实现原理 3.能够使用Vue-Router实现前端路由 4.能够实现嵌套路由&#xff0c;动态路由 5.能够实现命名路由以及编程式导航 6.理解并实现后台管理案例 1.路由的概念 路由的本质就是一种对应关系&#xff0c;比如说我们在url地…

路由协议是什么?路由协议在网络中有哪些作用

目录 前言 干货来啦~ 说点想说的 前言 "薄荷&#xff0c;我今天在做一个实验&#xff0c;感觉好复杂啊&#xff01;而且这里面好多路由协议&#xff0c;我都不知道我的实验对不对呢&#xff01;"小曼又可怜巴巴地找到我 “你做的是什么实验啊&#xff01;” “…

【路由】静态路由

静态路由 1、静态路由的概念1.1、概念1.2、注意事项1.3、弊端 2、静态路由的配置须知2.1、出接口为BMA类型2.2、出接口为P2P类型2.3、出接口为NBMA类型 3、默认路由3.1、概念3.2、实验场景3.3、适用场景3.4、注意事项 4、浮动静态路由4.1、静态路由负载均衡的实验场景4.2、静态…

什么是前端路由?

什么是路由&#xff1f; 路由这个概念最先是后端出现的。在以前用模板引擎开发页面时&#xff0c;经常会 看到这样&#xff1a; http://hometown.xxx.edu.cn/bbs/forum.php 有时还会有带.asp或.html的路径&#xff0c;这就是所谓的SSR(Server Side Render)&#xff0c; 通…

路由是什么

中秋节公司放假3天&#xff0c;第一天去公司加班&#xff0c;第二天宅了一天&#xff0c;今天第三天&#xff0c;也是中秋节&#xff0c;还是继续宅着… 言归正传&#xff0c;本文站在初学者的角度&#xff0c;尽量通俗的讲解什么是路由&#xff0c;它有什么作用。 如下网络拓…

什么是路由策略?路由策略和策略路由有什么区别? 如何配置路由策略?

对于IP网络工程师来说&#xff0c;路由策略的部署随处可见&#xff0c;无论在运营商IP网络还是在企业网中&#xff0c;路由策略的应用都是非常普遍的。同时&#xff0c;在网络规划中&#xff0c;路由策略的规划也是一个核心的内容。为了方便大家更好的掌握和应用路由策略&#…

什么是路由选择?

路由选择包括两类&#xff1a;①静态路由选择 ②动态路由选择 # 因特网所采用的路由选择协议的主要特点 自适应&#xff1a;动态路由选择&#xff0c;能较好地适应网络状态的变化。 分布式&#xff1a;因特网中的各路由器通过相互间的信息交互&#xff0c;共同完成路由信息的…

路由的基本概念

一、什么是路由 1、路由器的作用&#xff1a;网络中的路由器负责为数据包选择转发路径。 2、路由表&#xff1a;每个路由器中有一个路由表&#xff0c;路由表则是若干条路由信息的一个集合。 3、路由条目的各个字段进行解释&#xff1a; ①Destination/Mask :表示目标IP地…

什么是路由?

介绍 路由是指路由器从一个接口上收到数据包&#xff0c;根据数据包的目的地址进行定向并转发到另一个接口的过程。路由发生在OSI网络参考模型中的第三层即网络层。 路由引导分组转送&#xff0c;经过一些中间的节点后&#xff0c;到它们最后的目的地。作成硬件的话&#xff…

什么是路由

认识前端路由 路由其实是网络工程中的一个术语&#xff1a; 在架构一个网络时&#xff0c;非常重要的两个设备就是路由器和交换机。 当然&#xff0c;目前在我们生活中路由器也是越来越被大家所熟知&#xff0c;因为我们生活中都会用到路由器&#xff1a; 事实上&#xff0c;…

路由表介绍

路由表简介 本次采用的是华为数通产品查看路由表的命令是 display ip routing-table 本次采用的是华为数通产品 查看路由表的命令是 display ip routing-table 路由表由以下几项信息元素组成&#xff1a; 1.Destination/Mask 目的网络地址/掩码长度&#xff1b; 2. Proto 协议…

怎么看路由表

电脑上很多网络适配器 路由表决定了怎么跳 当前的路由&#xff1a; destination 目的网段 mask 子网掩码 interface 到达该目的地的本路由器的出口ip gateway 下一跳路由器入口的ip&#xff0c;路由器通过interface和gateway定义一调到下一个路由器的链路&#xff0c;通常情况下…

Linux 查看路由表

文章目录 路由表简介Linux系统查看路由表方法方法1&#xff1a;通过netstat命令方法2&#xff1a;通过route命令方法3&#xff1a;通过ip route命令 route添加/删除默认路由网关Linux多网卡多路由设置 原文地址&#xff1a;https://m.yisu.com/zixun/677706.html 这篇文章将为…

路由表的由来

路由表的实现方法有三种&#xff1a; 1 直连路由 2 静态路由 3 动态路由 直连路由 开启了路由器借口之后&#xff0c;路由表自动感知而来 当路由器吧两个接口的ip地址配置好并开启&#xff0c;就能从其路由表内看到这两个直连子网已经被记录。 静态路由 由管理员手工配置…

路由表的建立和形成

以下内容可翻阅第六版谢希仁版的《计算机网路》和《路由与交换技术》书查看具体协议信息 首先路由表有以下几项形成 •网络号 •下一跳地址 •接口 •Metric&#xff1a;跳数、延迟、费用 例如&#xff1a; 路由表项 †特定主机路由 „前缀长度为32比特的路由表项。 †…

Linux下的路由表详解

linux 路由表 的一些相关资料 linux 路由表维护 查看 Linux 内核路由表 使用下面的 route 命令可以查看 Linux 内核路由表。 # route Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U …