计算机网络(自顶向下)学习笔记——路由选择算法

news2024/11/27 21:44:34

第五章—路由选择算法

5.1、路由的概念

路由:按照某种指标(传输延迟,所经过的站点数目等)找到一条 从源节点到目标节点的较好路径

  • 较好路径: 按照某种指标较小的路径
  • 指标:站数, 延迟,费用,队列长度等, 或者是一些单纯指标的加权平均
  • 采用什么样的指标,表示网络使用者希望网络在什么方面表现突出,什 么指标网络使用者比较重视

以网络为单位进行路由(路由信息通告+路由计算)

  • 网络为单位进行路由,路由信息传输、计算和匹配的代价低
  • 前提条件是:一个网络所有节点地址前缀相同,且物理上聚集
  • 路由就是:计算网络 到其他网络如何走的问题

路由的原则

  • 路由选择算法的原则
    • 正确性(correctness):算法必须是正确的和完整的,使分 组一站一站接力,正确发向目标站;完整:目标所有的 站地址,在路由表中都能找到相应的表项;没有处理不 了的目标站地址;
    • 简单性(simplicity):算法在计算机上应简单:最优但复杂 的算法,时间上延迟很大,不实用,不应为了获取路由 信息增加很多的通信量;
    • 健壮性(robustness):算法应能适应通信量和网络拓扑的 变化:通信量变化,网络拓扑的变化算法能很快适应; 不向很拥挤的链路发数据,不向断了的链路发送数据;
    • 稳定性(stability):产生的路由不应该摇摆
    • 公平性(fairness):对每一个站点都公平
    • 最优性(optimality):某一个指标的最优,时间上,费用 上,等指标,或综合指标;实际上,获取最优的结果代 价较高,可以是次优的

对路由选择算法的一种广义分类方式是根据 该算法是全局式的还是分散式的来加以区分:

  • 全局式路由选择算法:具有全局状态信息的算法常被称作 链路状态算法(Link State,LS)
  • 分散式路由选择算法:以迭代、分布式的方式计算出最低费用路径。距离向量(Distance-Vector,DV)算法:就是分散式路由选择算法

路由选择算法的第二种广义分类方式是根据算法是静态的还是动态的进行分类:

  • 静态路由选择算法:变化缓慢,通常人工干预
  • 动态路由选择算法:网络流量负载或拓扑发生变化时改变路由选择路径、周期性运行或直接响应变化、也容易受路由选择循环、路由震荡等问题的影响

路由选择算法的第三种分类方式是根据它是负载敏感的还是负载迟钝的进行划分:

  • 负载敏感算法:链路费用动态变化来反映链路拥塞水平
  • 负载迟钝算法:链路费用与拥塞无关,当今因特网路由选择算法基本都是迟钝的

5.2、链路状态路由选择算法

链路状态路由选择算法叫做 Dijkstra 算法

Dijktra 算法计算从某结点(源结点,我们称之为 u) 到网络中所有其他结点的最低费用路径 Dijkstra 算法是迭代算法,其性质是经算法的第 次迭代后,可知道到 个目的结点的最低 费用路径,在到所有目的结点的最低费用路径之中,这条路径具有个最低费用我们定义下列记号:

  • D( v) :到算法的本次迭代,从源结点到目的结点 的最低费用路径的费用
  • p(v): 从源到 沿着当前最低费用路径的前一结点(凹的邻居)
  • N’: 结点子集;如果从源到 的最低费用路径已确知,v在 N’ 中

该全局路由选择算法由一个初始化步骤和其后的循环组成 循环执行的次数与网络中 结点个数相同 一旦终止,该算法就计算出了从源结点 到网络中每个其他结点的最短 路径。

例题:计算从 到所有可能目的地的最低费用路径

image-20221215202043338

上题网络产生的最低路径费用路径和u中的转发表

image-20221215202918356

5.3、距离向量路由选择算法

距离向 (Distance- Vector, DV) 算法是一种迭代的、异步的和分布式的算法.

每个x结点 Dx(y) 开始,对在 N 中的所有结点,估计从它自己到结点 y 的最低费用路径的费用 。令 Dx = [D(y); y∈N]是结点 x 的距离向量,该向量是从 x 到在 N 中的所有其他结点 y 的费用估计的向量。使用 DV 算法,每个结点 x 维护下 列路由选择信息:

  • 对于每个邻居v,从 x 到直接相连邻居 v 的费用为 c(x v)
  • 结点 x 的距离向量,即 = [Dx(Y): Y∈N], 包含了 x 到 N 中所有目的地 的费 用的估计值。 它的每个邻居的距离向量,即对 x 的每个邻居v,有 Dv=[D (y): Y∈N]

在该分布式、异步算法中,每个结点不时地向它的每个邻居发送它的距离向量副本 当结点 x 从它的任何一个邻居 v 接收到一个新距离向量,它保存 v 的距离向量,然后使用 Bellman- Ford 方程更新它自己的距离向盘如下: Dx(Y) = min{c(x ,v) + D(y) } I对中的每个结点

LS 和 DV 路由选择算法的比较

  • 消息复杂度(DV胜出)
    • LS: 有 n 节点, E 条链路,发送 报文O(nE)个 :局部的路由信息;全局传播
    • DV: 只和邻居交换信息 :全局的路由信息,局部传播
  • 收敛时间(LS胜出)
    • LS: O(n2) 算法: 有可能震荡
    • DV: 收敛较慢 :可能存在路由环路 、 count-to-infinity 问题
  • 健壮性: 路由器故障会发生什么 (LS胜出)
    • LS:
      • 节点会通告不正确的链路代价
      • 每个节点只计算自己的路由表
      • 错误信息影响较小,局部,路由较 健壮
    • DV:
      • DV 节点可能通告对全网所有节点 的不正确路径代价
      • 距离矢量
      • 每一个节点的路由表可能被其它节 点使用
      • 错误可以扩散到全网

5.4、层次路由选择

**规模:**随着路由器数目变得很大,涉及路由选择信息的计算、存储及通信(例如 LS 更新或最低费用路径的变化)的开销将高得不可实现

管理自治:一个组织应该当按自己愿望运行管理其网络

这两个问题都可以通过将路由器组织进自治系统 (Autonomous System , AS) 来解决, 每个 AS 由一组通常处在相同管理控制下的路由器组成(例如,由相同的 ISP 运营或属于 相同的公司网络)

自治系统内部路由选择协议( intra- autonomous system routing protocol):在一个自治系统内运行的路由选择算法

5.5、因特网中自治系统内部的路由选择: RIP

AS 内部路由选择协议用于确定在一个 AS 内执行路由选择的方式 AS 内部路由选择 协议又称为内部网关协议 (interior gateway protocol)

有两个路由选择协议曾被广 泛用于因特网上自治系统内的路由选择:路由选择信息协议 (Routing Infonnation Protocol , RIP)开放最短路优先 (Open Shortest Path First , OSPF)

下图中的表:从源 A 到每个叶子子网的跳数:

image-20221215205753664

一条路径的最大费用被限制为 15 ,因此 RIP 的使用限制在网络直径不超过 15 跳的自治系统内。

在RIP中, 路由选择更新信息在邻居之间通过使用 RIP 晌应报文( RIP response message) 来交 换,大约每 30 秒相互交换一次 台路由器或主机发出的响应报文包含了一个该 AS 的多达 25 个目的子网的列表,以及发送方到其中每个子网的距离 响应报文又被称作 RIP 通告( RIP advertisement)

一台路由器超过180s没有从邻居听到报文,该邻居要么死记要么链路中断
RIP可以修改本地路由选择表,向活着的邻居发送RIP通告
也可以使用RIP请求报文请求邻居到目的地的费用
RIP被当做一个应用进程来实现,能在一个标准socket上发送个接收报文,并且使用一个标准的运输层协议
路由器在UDP上用端口520相互发送RIP请求/响应报文。意思是RIP使用一个运输层协议实现网络层功能

5.6、困特网中自治系统内部的路由选择: OSPF

  • 安全: 所有的OSPF报文都是经过认证的 (防止恶意的攻击)
  • 允许有多个代价相同的路径存在 (在RIP协议中只有一个)  对于每一个链路,对于不同的TOS有多重代价矩阵
    • 例如:卫星链路代价对于尽力而为的服务代价设置比较低,对实 时服务代价设置的比较高
    • 支持按照不同的代价计算最优路径,如:按照时间和延迟分别计 算最优路径
  • 对单播和多播的集成支持:
    • Multicast OSPF (MOSPF) 使用相同的拓扑数据库, 就像在OSPF中一样
  • 支持在单个路由选择域内的层次结构

5.7、自治系统间的路由选择: BGP

**边界网关协议 (Broder Gateway Protocol , BGP): **跨越多个 AS 的源和目的对之间是如何确定路径的。

BGP基础:

  • 跨越两个 AS BGP 会话称为外部 BGP (eBGP) 会话 (external BGP session)
  • 在同一个AS 中的两台路由器之间的 BGP 会话称为内部 BGP (iBGP) 会话( internal BGP session)

BGP 为每个 AS 提供了进行以 下工作的手段:

1. 从相邻 AS 处获得子网可达性信息 
2. 向本 AS 内部的所有路由器传播这些可达性信息 
3. 基于可达性信息和 AS 策略,决定到达子网的"好"路由

当一台路由器通过BGP会话通告一个前缀时,它在前缀中包括一些属性。带属性的前缀称为一条路由,BGP对等方彼此通告路由

  • AS-PATH:该属性包含了前缀通告已经通过的AS,当一个前缀传送到一个AS时,AS将其ASN增加到AS-PATH中
    • 路由器使用AS-PATH属性检测和防止循环通告
    • 路由器使用AS-PATH在多条路径中选择相同的前缀
  • NEXT-HOP:是一个开始某AS-PATH的路由器接口
    • 路由器使用该属性正确地配置它们的转发表
    • 使用NEXT-HOP值和AS内部路由选择算法,路由器能确定到每条对等链路的路径的费用,用热土豆路由选择决定适当的接口

BGP路由选择:

BGP使用eBGP和iBGP向在AS中的所有路由器发布路由,路由器可能知道到达任何一条前缀的多条路由。消除规则从上到下:

  • 选择具有最高本地偏好值(管理员决定)的路由
  • 选择具有最短AS-PATH的路由
  • 最靠近NEXT-HOP路由器的路由,最靠近指最低费用路径最低,由AS内部算法决定(hot potato routing)
  • 使用BGP标识符选择路由

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/91992.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

m基于优化算法的多车辆的路径规划matlab仿真,对比GA,PSO以及烟花算法

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 路径规划是运动规划的主要研究内容之一。运动规划由路径规划和轨迹规划组成,连接起点位置和终点位置的序列点或曲线称之为路径,构成路径的策略称之为路径规划。路径规划在…

微软12月多个安全漏洞修复解决方案

安全狗应急响应中心监测到,微软发布了2022年12月份安全更新,事件等级:严重,事件评分:10.0。此次安全更新发布了52个漏洞的补丁,主要覆盖了以下组件:Azure; Office and Office Components; SysIn…

提高电网的稳态稳定性(Matlab代码实现)

目录 1 概述 2 稳态稳定性分析 2.1 系统模型 2.2 稳态稳定性 2.3 问题说明 3 仿真结果 4 一点小智慧 5 Matlab代码实现 1 概述 随着电力系统的复杂性和规模的增加,电力系统的有效控制变得越来越困难。我们提出了一种自动控制策略,该策略基于通过…

如何使用typeScript实现贪吃蛇游戏?

1.配置文件 配置文件写过一次之后,可以复制粘贴使用,修改部分细节就可以了。 package.json {"name": "snake","version": "1.0.0","description": "","main": "index.js&q…

网络协议——RPC协议综述

拿最简单的场景,客户端调用一个加法函数,将两个整数加起来,返回它们的和。 如果放在本地调用,那是简单的不能再简单了,。但是一旦变成了远程调用,门槛一下子就上去了。 如何解决这五个问题? …

秦力洪复盘2022:蔚来的长板和误判

作者 | 张祥威 编辑 | 王博最初我们看蔚来,觉得它是中国的特斯拉。后来它主动挑战宝马,以46万的平均单价在高端品牌阵营厮杀,看上去又具备成为宝马的潜力。再到后来,蔚来宣布将推出全新品牌,喊话月销5万辆,…

[附源码]Nodejs计算机毕业设计基于大数据的高校国有固定资产管理及绩效自动评价系统Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

Django学习15 -- 验证码

1. 验证码 验证码(CAPTCHA,Completely Automated Public Turing test to tell Computers and Humans Apart),全自动区分计算机和人类的图灵测试的简称,一种区分用户是计算机还是人的公共全自动程序。防止恶意破解密码、…

Java+Swing+mysql实现学生选课管理系统

JavaSwing实现学生选课管理系统一、系统介绍二、系统展示1.课程查询2.课程添加3.退课三、系统实现四、其他1.其它系统2.获取源码一、系统介绍 本系统实现了学生登录和管理员登录,学生实现选课,查看已选课程,修改密码,查看学生信息…

Vue.use 与 Vue.prototype 在注册插件时,使用上有什么区别

很多使用Vue开发的童鞋,可能对Vue的原型对象prototype有了解过,但对于Vue.use只知如何使用,却不知其背后的含义。那么,今天我们就来瞧一瞧Vue.use()背后的逻辑。 🎈 首先,Vue.use()是什么? 官方…

外汇天眼:投资200美元起 每天收益7%!千万别被蒙蔽双眼!

12月14日,英国金融行为监管局( FCA )首次对 GoldVest FX 发出警告,提示投资者警惕与这家未经授权的公司打交道。 FCA警告称:GoldVest FX 在未经我们授权的情况下在英国提供金融服务或产品,如果一旦遭受资金损失,您将无…

logback-spring.xml 配置化说明记录如何在SpringBoot项目里面配置logback-spring.xml教程说明

目录 前言描述 logback-spring.xml 配置项详细 配置位置路径 前言描述 无论什么样的java应用都需要日志分级, 日志记录器(Logger)是日志处理的核心组件。log4j具有5种正常级别(Level)。 DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的。1.static L…

【三维目标检测】FCAF3D(二)

FCAF3D数据和源码配置调试过程请参考上一篇博文:【三维目标检测】FCAF3D(一)_Coding的叶子的博客-CSDN博客。本文主要详细介绍FCAF3D网络结构及其运行中间状态。 1 模型总体过程 FCAF3D模型的整体结构如下图所示。该模型属于anchor-free目标…

SIoU Loss 原理与代码解析

paper:SIoU Loss: More Powerful Learning for Bounding Box Regression code:https://github.com/meituan/YOLOv6/blob/main/yolov6/utils/figure_iou.py#L75 存在的问题 之前的目标检测模型的回归损失考虑到了预测的bounding box和gt box之间的dis…

【头歌C语言程序与设计】选择结构程序设计进阶

目录 写在前面 正文 第1关:快递费用计算 第2关:计算一元二次方程的根 第3关:产品信息格式化 写在最后 写在前面 本文代码是我自己所作,本人水平有限,可能部分代码看着不够简练,运行效率不高,但都能运…

cmake笔记 编译与链接

文章目录概述编译最简单的hello world编译工程化的helloWorld更工程化的Hello World: 构建静态库与动态库如何使用外部共享库和头文件其他有用的cmake命令include_directoriesfind_package file(GLOB variable [RELATIVE path] [globbing expressions]...)windows 下…

【Maven基础】IDEA环境使用

第一节 创建父工程 1、创建 Project 2、开启自动导入 创建 Project 后,IDEA 会自动弹出下面提示,我们选择**『Enable Auto-Import』**,意思是启用自动导入。 这个自动导入一定要开启,因为 Project、Module 新创建或 pom.xml 每次…

微服务的相关概念及知识

微服务概念 微服务的概念最早是在2014年由Martin Fowler和James Lewis共同提出,他们定义了微服务是由单一应用程序构成的小服务,拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用HT…

6-zookeeper-hadoop-ha原理简述-fail

6-zookeeper-hadoop-ha故障转移机制,原理简述: HA概述(2.X版本架构)。 1)、HA(High available),即高可用(7*24小时不间断服务。) 1、zookeeper协调服务,通…

jsp+ssm计算机毕业设计毕业设计管理系统【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…