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

article/2025/10/2 23:24:32

文章目录

  • 1. 概述
  • 2. 路由选择算法
    • 2.1 链路状态路由选择算法(LS)
    • 2.2 距离向量路由选择算法(DV)
    • 2.3 DV和LS算法的对比

网络层由数据平台和控制平台两个部分组成。接下来我们将对控制平台进行讨论。

1. 概述

重点

  • 转发表和流表是如何计算、维护和安装的。

路由器的转发操作需要根据转发表将输入分组传输到合适的输出链路,因此转发表的初始化和更新很重要。有两种方式能够完成转发表的计算、维护与安装:

  • 路由器控制:每台路由器都运行一种路由选择算法。
    ①路由器包含转发和路由选择两种功能。
    ②路由器通过路由选择组件间的通信计算转发表。
    在这里插入图片描述

  • 逻辑集中式控制:逻辑集中式控制器计算分发转发表。
    ①路由器仅执行转发功能。
    ②路由器中有一个控制代理(CA) 以配置和管理路由器的转发表。
    在这里插入图片描述

两种工作方式中路由器分别含有路由选择组件和控制代理,但是它们的功能是完全不同的。两种方式的关键差异:

  • 路由选择组件可以相互交互,也可以主动参与转发表的计算
  • 控制代理CA既不能相互交互,也不能主动参与转发表的计算

2. 路由选择算法

路由选择算法是为从源到目的的分组确定一条开销最小的路由,通过计算源到目的的最短路径计算转发表。常见的路由算法有以下分类:

  • 集中式路由选择算法:利用全局的网络知识计算从源到目的的最短路径及开销。
    ①以所有节点的连通性和链路的开销为输入。
    ②常见算法:LS

  • 分散式路由选择算法:路由器以迭代、分布式的方式计算最短路径及其开销。
    ①以直接相连的邻居节点及其链路开销为输入。
    ②常见算法:DV


  • 静态路由选择算法:人为手工配置转发表。
    ①路由更新慢、优先级高。
  • 动态路由选择算法:利用路由选择算法计算更新转发表。
    ①路由更新快、及时响应链路费用和网络拓扑变化。

2.1 链路状态路由选择算法(LS)

(1)定义
LS是一种集中式路由选择算法,它以网络拓扑和所有链路的开销为输出。

  • 广播链路状态分组:每个节点向其他节点广播链路状态分组,链路状态分组由节点连接链路的标识和开销组成。

  • Dijstra算法:采用Dijstra算法计算源到目的的最短路径和开销。
    ①思路:每次选择距离源节点开销最小的未被访问的节点加入最短路径,然后对其邻接且还未被访问的节点的开销进行更新。算法结束后,每个节点都有一个前驱节点,可以通过前驱节点得到源到目的的最短路径。
    在这里插入图片描述
    每个节点的转发表中保存源到目的的最短路径上的下一条节点
    在这里插入图片描述

(2)问题

  • 震荡现象:假设链路开销表示链路负载。
    因为链路开销动态的变化导致路由表更新频繁,在环形链路中分组可能无法到达目的地
    在这里插入图片描述
  • 解决方法
    ①强制链路开销不依赖链路负载(×):因为路由选择需要确保避开高度拥塞的链路。
    ②确保并不是所有路由器都运行LS算法(√)

2.2 距离向量路由选择算法(DV)

距离向量算法是一种迭代的、异步的和分布式的算法。
(1)定义

  • Bellman-Ford方程 d x ( y ) = min ⁡ { c ( x , v ) + d v ( y ) } d_x(y)=\min\{c(x,v)+d_v(y)\} dx(y)=min{c(x,v)+dv(y)}
    d x ( y ) d_x(y) dx(y)表示x到y最低开销路径的费用。
    ②节点x到节点y的开销可以通过节点x到邻居节点的开销和邻居节点到节点y的开销表示。因此当邻居节点的距离向量不再更新,且邻居与节点x的开销没有变化时,节点x到达y的最低开销路径的费用不会发生改变。

  • 距离向量(DV)算法:采用Bellman-Ford方程迭代的、异步的、分布式的更新节点的距离向量,计算获得转发表项。
    ①思路:当节点发现与之直接相连链路的开销变化接收到邻居的距离向量更新时,它就去计算更新距离向量。如果距离向量发生改变,则向所有邻居发送这个更新的距离向量。
    ②步骤:等待(直接相连链路开销变化、收到邻居距离向量的更新)–>重新计算距离向量–>如果DV发生变化,则通知所有邻居
    在这里插入图片描述

(2)特点

  • 异步迭代不要求所有节点操作一致,仅当直接相连的链路开销发生改变或收到邻居的DV更新时,才会引发局部迭代的。
  • 分布式DV算法不需要全局信息,通过采用Bellman-Ford算法,利用邻居DV计算更新距离向量。当DV发生变化时才通告给邻居。

DV算法中有两个能够引起局部迭代的因素:直接相连链路开销变化、收到邻居DV更新。当直接相连的链路开销变化时,可能引起链路故障。

(3)问题

  • 无穷计数问题链路开销增大的坏消息传播的很慢
    ①现象:z需要通过y路由才能到达x,当x与y相连的链路开销增大时,会引发节点y的局部迭代。这种情况下会形成选择环路,即为了到达x,y需要通过z的路由,z需要通过y路由。这种情况下DV的更新会导致多次迭代。
    在这里插入图片描述

为了解决无穷计数问题,可以采用毒性逆转的方法解决。

  • 毒性逆转如果一个节点Z到达目的节点X的最短路径是通过某个邻居Y,则Z通知给邻居节点Y到达目的X的距离为无穷大
    在这里插入图片描述
    ①局限:当涉及到3个或更多节点的环路将无法使用毒性逆转技术检测到。

2.3 DV和LS算法的对比

  • 全局与离散:LS需要全局信息,每个节点需要与其他所有节点通信。DV不需要全局信息,只需要根据直接相连链路的开销和邻居节点的DV计算更新DV。
  • 报文复杂性:采用LS算法时,任何一条链路开销发生变化都需要通知其他所有节点。采用DV算法时,仅当系欸但那距离向量发生变化时才需要通知所有邻居节点。
  • 收敛速度:DV算法时间复杂度为 O ( ∣ V ∣ 2 ) O(|V|^2) O(V2),LS算法时间复杂度为 O ( ∣ V ∣ ∣ E ∣ ) O(|V||E|) O(VE)
  • 健壮性:LS算法各个节点路由计算是分离的,具有健壮性。DV算法一个不正确的节点值会扩散到整个网络。

本节中我们介绍了路由选择算法的概念以及两种主要的路由选择算法。路由选择算法的作用是在路由器控制转发表的计算、维护时计算并更新路由表表项。传统的路由选择算法可以划分为静态路由选择和动态路由选择,其中静态路由选择算法是由人工配置路由表项,路由更新慢但优先级高。路由选择算法也可以分为集中式路由选择算法和分散式路由选择算法。集中式路由选择算法如LS需要全局信息,每个节点需要与其他所有节点通信。无论合适链路开销发生变化,都需要向所有节点发送新的链路开销。分散式路由选择算法如DV不需要全局信息,它根据直接相连的链路开销和邻居节点DV计算节点的距离向量。当DV发生变化时需要向邻居发送DV更新。通过异步迭代、分布式的更新实现了路由表表项的计算与维护。LS算法通过Dijkstra算法计算更新路由表,但是可能存在震荡问题。DV算法通过Bellman-Ford方程实现通过直接相连的链路开销和邻居DV计算并更新转发表,但具有无穷计数的问题,可以采用毒性逆转解决。


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

相关文章

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

路由选择算法 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配置命令 什么是动态路由和概述 动态路由是与静态路…

路由策略概述

文章目录 1.Route-Policy2.Route-Policy的基本概念3.基础配置3.1创建一个Route-Policy节点3.2(可选)配置if-match语句3.3(可选)配置apply语句 4.Filter-Policy5.IP前缀列表 路由策略(Routing Policy)是一套用于对路由信息进行过滤、属性设置等操作的方,法,通过对路由的控制,可以…

1.路由迭代

** 路由迭代 ** 原因: 路由必须有直连的下一跳才能指导转发 在下一跳不是直连邻居的时候 就需要计算出直连邻居的下一跳 图例: 如图 R1想去往R3的192.168.2.0网段 中间要经过非直连的R2 静态路由该怎么写? 简单的想 两条静态 不就够了么 R…

路由守卫的详解

路由守卫总共有7个 全局路由守卫: beforeEach 前置守卫 affterEach 后置守卫 beforeResolve 解析守卫 路由的守卫 beforeRouterEnter 进入组件之前触发,在Created前面 beforeRouterUpdated 路由更新但是内容不会改变 beforeRouterLeave 离开之前触发,在beforeDestory之前…

路由选择算法总结

文章目录 一、路由算法1.静态路由与动态路由①静态路由算法(非自适应路由算法)②动态路由算法(自适应路由算法) 2.链路状态(LS)算法3.距离向量(DV)算法 二、层次路由与自治系统层次路由方法自治系统(Autono…

什么是浮动路由及作用

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

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

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

vue 路由懒加载

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

路由引入基本概念

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

Vue路由详解

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

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

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

【路由】静态路由

静态路由 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、静态…

什么是前端路由?

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

路由是什么

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

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

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

什么是路由选择?

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