首页 > 编程语言 >计算机网络(自顶向下)学习笔记)——路由选择算法

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

时间:2022-12-17 19:01:55浏览次数:46  
标签:选择 结点 路径 计算机网络 算法 自顶向下 路由 路由器

第五章—路由选择算法

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.png

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

image-20221215202918356.png

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

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

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

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

在该分布式、异步算法中,每个结点不时地向它的每个邻居发送它的距离向量副本 当结点 x 从它的任何一个邻居 v 接收到一个新距离向量,它保存 v 的距离向量,然后使用 Bellman- Ford 方程更新它自己的距离向盘如下: D~x~(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 处获得子网可达性信息 
1. 向本 AS 内部的所有路由器传播这些可达性信息 
1. 基于可达性信息和 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标识符选择路由

标签:选择,结点,路径,计算机网络,算法,自顶向下,路由,路由器
From: https://blog.51cto.com/u_15908581/5949986

相关文章

  • go http路由处理流程
    (1)type HandlertypeHandlerinterface{ServeHTTP(ResponseWriter,*Request)}该接口用于开发者能够实现自己的Handler,只要实现ServeHTTP(ResponseWriter,*Req......
  • laravel代码优化,使用路由中间件来处理数据返回和端口请求速率
    2022年12月17日14:47:22之前代码一直是使用trait来处理返回,但是如果遇到不熟悉代码系统设计的人就麻烦了,就想着能不能使用路由中间件来处理所有问题traitResponseTrait......
  • vue2 路由24 声明式导航 编程式导航 路由守卫
    用户点击了页面的路由链接,会导致hash值发生变化,路由监听到hash值的链接发生的变化,会把对应的组件渲染到当前的页面中   安装:直接安装router的话会安装最新版的,最新......
  • 2022.12.17 - vue Router4 关于嵌套路由配置无匹配页面导致失效问题
    constroutes=[ { path:'', name:'home', component:()=>import(/*webpackChunkName:"home"*/'../pages/index'), children:[ { path:'', ......
  • 路由协议 OSPF
    OSPF(OpenShortestPathFirst)是一个内部网关协议(InteriorGatewayProtocol,简称IGP),一个链路状态路由选择协议,用于在单一自治系统(autonomoussystem,AS)内决策路由。......
  • Vue笔记7--路由管理Vue-router
    Vue-router路由核心:改变URL,但是页面不进行整体刷新。路由理解为指向的意思,其中有很重要的一个关键就是路由表。路由表,是一个映射表,一个路由就是一组映射关系,key:valueke......
  • Blazor和Vue对比学习(进阶.路由导航五):路由守卫
    路由守卫,可以认为是设置在导航源和目标之间的中间件。Vue在代码上,表现为命名约定的钩子(类似于生命周期钩子),而Blazor会更复杂一些。VueRouter的路由守卫功能非常完善,而Blaz......
  • 详解物理层-传输介质 & 物理层设备【王道计算机网络笔记】
    传输介质传输介质也称传输媒体/传输媒介,它就是数据传输系统中发送设备和接受设备之间的物理通路信道是发送设备和接受设备之间的逻辑通路传输媒体并不是物理层。传输媒......
  • Windows系统CMD命令行添加或删除路由
    1,按Win键输入“CMD”,右键“以管理员身份运行”  2,在CMD窗口输入“ipconfig”并按Enter键  3,找到自己的网卡对应的“默认网关”,执行如下命令添加路由: routead......
  • 支持模拟量4-20ma的工业路由器应用于智慧城市
    什么是智慧城市?智慧城市包含的内容很多,一般指通过物联网、云计算、大数据、空间地理信息集成等智能计算技术的应用,使得城市管理、教育、医疗、房地产、交通运输、公用事业和......