第6章 路由算法总结

合集下载

计算机网络中的路由算法

计算机网络中的路由算法

计算机网络中的路由算法路由算法在计算机网络中起着关键的作用,它用于确定数据包在网络中的传输路径。

根据不同的网络拓扑和需求,有多种不同的路由算法被应用。

本文将介绍几种常见的路由算法。

1. 距离矢量算法(Distance Vector Algorithm)距离矢量算法是一种分布式的路由算法,每个节点在路由表中记录到达目的节点的距离向量。

节点之间通过交换距离向量信息来更新路由表,并且通过Bellman-Ford算法来计算最短路径。

该算法简单易实现,但是在大型网络中容易产生计数到无穷大的问题,即由于链路故障等原因产生的无限循环。

2. 链路状态算法(Link State Algorithm)链路状态算法是一种集中式的路由算法,每个节点都会收集与自身相连的链路状态信息,并通过最短路径算法(如Dijkstra算法)计算出到达其他节点的最短路径。

然后,每个节点都将自己的链路状态信息广播给所有其他节点,使得每个节点都有完整的网络拓扑和链路状态信息。

该算法需要节点之间频繁的广播和计算,但是能够保证收敛,即要么找到最短路径,要么不进行路由。

3. 路径向量算法(Path Vector Algorithm)路径向量算法可以看作是距离矢量算法和链路状态算法的结合,它通过回退进行路径检测和避免计数到无穷大的问题。

每个节点在路由表中记录到达目的节点的路径和向量信息,通过交换路径向量信息来更新路由表。

在计算最短路径时,路径向量算法使用类似链路状态算法的Dijkstra算法,但是在寻找路径时,会检查前面的节点是否已经在路径中出现,以避免产生环路。

4. 队列距离矢量算法(Queue Distance Vector Algorithm)队列距离矢量算法是距离矢量算法的一种改进算法,主要解决计数到无穷大问题。

该算法引入了队列和计数器,通过计数器和链路状态信息来确定数据包是否进入队列。

每个节点在路由表中记录到达目的节点的距离向量和队列的长度。

路由选择算法

路由选择算法
6
2021/6/4
2、固定式(网中每一个结点存放一张事先确 定好的路由表(存放最佳路由)) 表中给出本结点到各目的结点的最短路径 例
一旦C和E之间的 网络断开,则A 、 B无法通信。
特点:简单、可靠性差(不能适应网络状态变 7
2021/6/4
3、适应式(动态路由选择)适用于中型网络 路由表动态设置(不需要人工干预) 实现方式:相邻结点(交换机或路由器)周期 性交换路由信息。
D

i
S

i
2、经128ms后,结点1收到3个相邻节点(2、3
、4)的时延向量 D、2 D、3 D,4 进行更新运算,得 到更新后的路由表。
d 21 2
d 22 0
D
2
d d
23 24
3
2
d
25
3
d 26 5
d 31 3
d 32 3
D
3
42
部分资料从网络收集整 理而来,供大家参考,
感谢您的关注!
Mind133
18
2021/6/4
计算 d 15 最小值
1 2 3 5 1 2 4 5 1 3 5 1 4 5
M ind152
d15 d12 d 23 d35 6 d15 d12 d 24 d 45 5 d15 d13 d35 6 d15 d14 d 45 2
19
2021/6/4
26
2021/6/4 27
2021/6/4
2、发送链路状态分组(采用扩散式)
3、计算新路由(采用Dijstra算法) 当一个结点获得了一整套的链路状态分
组后,便可以用Dijstra算法找出它到所有可能 目的结点的最短路径,并更新路由表。

第6章路由算法总结ppt课件

第6章路由算法总结ppt课件

在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
非自适应路由算法
固定路由算法(fixed routing algorithm) 洪泛法(flooding) 随机走动法(random walk) 基于流量的路由算法(flow-based routing)
由所有的线路平均延迟,可直接计算出流量的加权 平均值,从而得到整个网络的平均分组延迟
这样找出网络的最小平均延迟就可以实现最优路由 选择
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
自适应路由算法
孤立路由选择 集中路由选择 分布式路由选择
当结点或链路发生故障时,该方法可使路由算法有 较好的稳健性
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
基于流量的路由算法
该方法不仅考虑网络的拓扑结构,还要考虑网络的 负载因素
对某一给定的线路,如果已知负载量与平均流量, 那么可以根据排队论的知识计算出该线路上的平均 分组延迟
• 如果找不到相应的表项,在G的路由表中增加一项 :(N,G’,D’+C)
• 如果V=G’,G中路由表对应的表项根据D’+C和D的 比较获得
– 如果D’+C<D,G中表项更新为(N,G’,D’+C)
– 否则G中表项保持原状,仍为(N,V,D)
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么

第6章路由算法总结

第6章路由算法总结

第6章路由算法总结路由算法是网络中的核心算法之一,它决定了数据包在网络中的传输路径。

路由算法的设计和优化对于网络的性能和稳定性具有重要影响。

在本章中,我们将总结一些常见的路由算法,并介绍它们的优缺点。

1.静态路由算法:静态路由算法是最简单的路由算法,它通过人工配置将目的地和下一跳地址映射起来。

静态路由算法的优点是简单、易于实现和维护,适用于小型网络。

然而,静态路由算法的缺点是无法适应网络拓扑的变化,对于大型和复杂网络不可行。

2.距离向量路由算法:距离向量路由算法是一种基于邻居节点交换信息的分布式算法。

每个节点维护一个路由表,其中包含到达各个目的地的距离和下一跳节点信息。

节点周期性地将路由表广播给邻居节点,并根据收到的更新信息更新自身路由表。

距离向量路由算法的优点是简单、分布式,适用于小型网络。

然而,它的缺点是收敛速度慢和计算复杂度高,容易出现路由环路和计数问题。

3.链路状态路由算法:链路状态路由算法是一种基于全局网络状态信息的算法。

每个节点通过发送链路状态信息到整个网络,使得每个节点都具有完整的网络拓扑信息。

节点根据收到的链路状态信息计算最短路径,并构建路由表。

链路状态路由算法的优点是收敛速度快、计算复杂度低和稳定性好。

然而,它的缺点是需要消耗大量的带宽和存储资源,并且对于网络规模较大的情况下,算法的效率会下降。

4.链路状态路由算法的改进算法:为了优化链路状态路由算法,人们提出了一些改进算法,如OSPF (开放式最短路径优先)、IS-IS(中间系统间路由)等。

这些算法使用了一些技术,如分层、区域划分和链路优化等,以提高算法的性能和可扩展性。

5.BGP(边界网关协议):BGP是用于互联网的一种路径向量路由协议。

它是一种自治系统之间的路由协议,用于实现互联网的路由选择。

BGP通过交换路由信息和策略来确定数据包的最佳路径。

BGP的优点是具有高度的灵活性和可配置性,可以根据策略调整路由。

然而,BGP的缺点是配置复杂和收敛速度较慢。

路由算法与路由协议

路由算法与路由协议

路由算法与路由协议
路由算法和路由协议是计算机网络中非常重要的概念。

路由算法是指在网络中选择最优路径的过程,而路由协议则是指网络中路由器之间通信的协议。

常用的路由算法包括距离矢量算法、链路状态算法和路径矩阵算法。

距离矢量算法以距离为基础来选择最优路径,链路状态算法则是通过收集邻居节点的信息来计算网络拓扑结构,从而选择最优路径。

路径矩阵算法则是通过计算矩阵来确定最优路径。

路由协议包括RIP、OSPF、BGP等。

RIP是一种基于距离矢量算
法的协议,其特点是简单易用,但是对于大型网络来说效率较低。

OSPF 是一种基于链路状态算法的协议,其特点是对于大型网络来说效率较高,但是配置相对较为复杂。

BGP是一种面向互联网的协议,其特点是可以实现自治系统之间的互联。

在实际应用中,路由算法和路由协议的选择需要根据网络的规模、性能要求等因素来确定,以实现最优的网络性能。

- 1 -。

路由算法简介

路由算法简介

上述路径环路会通过R1、R2之间不断的路 由更新报文交换而解除,但是解除过程是 非常缓慢的。在出现路径环路之后,在下 一轮路由广播中,R1将向R2广播 (net1,R2,2)表项,R2收到此表项后,将 去往net1的路径改为(net1,R1,3);
然后R2向R1通告(net1,R1,3)表项, R1将去往net1的路由项改为(net1,R2, 4)…
➢ 适应范围:支持较大规模的网络,最多可 支持几百台路由器。
➢ 快速收敛:在网络拓扑结构发生变化后立 即发送更新报文,使变化在自治系统中同 步
➢ 无自环:由于OSPF根据收集到的链路状态 用最短路径树算法(Dijkstra)计算路由, 从算法本身保证了不会生成自环路由。
➢ 区域划分:允许自制系统的网络被划分成 区域来管理。
快 65536 可进行区域划分
Dijkstra算法
➢ 在路由选择算法中都要用到求最短路径的 算法,最出名的就是Bellman-Ford算法和 Dijkstra算法。他们的主要思想:黑板分析。
DSR 路由协议简介
➢ 动态源路由协议(DSR,Dynamic Source Routing)是一种按需路由协议,它允许节点 动态地发现到达目的节点的多跳路由。
图2 OSPF中AS、主干和区域间的关系
OSPF协议的基本特点
➢ 向本自治系统中的所有路由器发送信息。 使用洪泛法(flooding):路由器通过所有 输出端口向所有相邻的路由器发送信息, 这些相邻路由器又将此信息发给相邻路由 器(但不回传)。这样,最终整个路由器 都得到这个消息的一个副本。
➢ 发送的信息:与本路由器相邻的所有路由 器的链路状态。
➢ 当跳数超过15,RIP协议会认为目的地不可 达。因此,它只适应于中小型网络。

无线传感器网络的路由算法

无线传感器网络的路由算法

AODV协议1. 概述Nokia研究中心开发,自组网路由协议的RFc标准,它是DSR和DSDV的综合,借用了DSR中路由发现和路由维护的基础程序,及DSDV的逐跳(Hop-by-HoP)路由、目的节点序列号和路由维护阶段的周期更新机制,以DSDV为基础,结合DSR中的按需路由思想并加以改进。

它应用于无线自组织网络中进行路由选择的路由协议, 它能够实现单播和多播路由。

该协议是自组织网络中按需生成路由方式的典型协议。

用于特定网络中的可移动节点。

它能在动态变化的点对点网络中确定一条到目的地的路由,并且具有接入速度快,计算量小,内存占用低,网络负荷轻等特点。

它采用目的序列号来确保在任何时候都不会出现回环,避免了传统的距离向量协议中会出现的很多问题。

AODV最初提出的目的是为了建立一个纯粹的按需路由的系统。

网络中的节点完全不依赖活动路径,既不维护任何路由信息,也不参与任何定期的路由表交换。

节点不需要发现和维护到其他节点的路由,除非两个节点需要通讯或者节点是作为中间转发节点提供特定的服务来维护另外两个节点的连接性。

提出:With the goals of minimizing broadcasts and transmission latency when new routes are needed, we designed a protocol to improve up on the performance characteristics of DSDV in the creation and maintenance of ad-hoc networks.2. 特点优点:(1)基本路由算法为距离向量算法,但有所改进,思路简单、易懂。

(2)按需路由协议,而且节点只存储需要的路由,减少了内存的需求和不必要的复制。

(3)采用UDP 封装,属于应用层协议。

(4)支持中间节点应答,能使源节点快速获得路由,有效减少了广播数,但存在过时路由问题。

计算机网络原理 最短路径路由

计算机网络原理  最短路径路由

计算机网络原理最短路径路由在路由选择方法中,我们经常采用的算法是:求给定网络中任意两个节点间的最短路径。

即求任意两个节点间的最小时延或最小费用的路径。

这里已知的是整个网络拓扑和各链路的长度。

求最短路径的方法有许多种,下面我们以图6-4所示的网络为例来讨论一种由Dijkstra 提出的求最短路径的算法,即寻找从源节点到网络中其他各节点的最短路径。

在本例中,设节点A为源节点,然后逐步寻找其最短路径,每次找一个节点到源节点的最短路径,直到把所有的点都找到为止。

图6-4 求最短路径算法的网络举例令D(V)为源节点(节点A)到节点v的距离,它就是沿着某一通路的所有链路的长度之和。

再令l(i,l)为节点i至节点j之间的距离。

整个算法有以下部分:(1)初始化。

令N表示网络节点的集合。

先令N={A},对所有不在N中的节点v,写出:λ(A,ν)若节点ν与节点A直接相连;D(ν)= {∞若节点ν与节点A不直接相连;在用计算机进行求解时,可以用一个比任何路径长度大得多的数值代替∞,可以使D (v)=99。

(2)寻找一个不在N中的节点w,其D(w)值为最小。

把w加入到N中,然后对所有不在N中的节点,用D(v)与[D(w)+λ(w,ν)]中较小的值去更新原有的D(v)值,即:D(v)←min[D(v),D(w)+λ(w,ν)](3)重得步骤(2),直到所有的网络节点都在N中为止。

6-2所示是对图6-4的网络进行求解的详细步骤。

可以看出,上述的步骤(2)共执行了5次,表中带圆圈的数字是在每一次执行步骤(2)时所寻找的具有最小值的D(w)值。

当第5次执行步骤(2)并得出了结果后,所有网络节点都已包含在N之中,整个算法即告结束。

最后就可得出以节点A 为根的最短路径树,如图6-5(1)所示。

从这个最短路径树可以清楚地看出从源节点A 到网内任何一个节点的最短路径。

图中,每个节点旁边括号中的数字表明该节点是在执行第几步的算法时加入到集合中去的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 如果D’+C<D,G中表项更新为(N,G’,D’+C) – 否则G中表项保持原状,仍为(N,V,D)
正确的算法
如果找不到相应的表项,在G的路由表中增加一项:(N,G’,D’+C)

如果V=G’,G中路由表对应的表项根据D’+C和D的比较获得
– 如果D’+C<D,G中表项更新为(N,G’,D’+C)
第6章 路由算法
图抽象
图: G = (N,E)
5
v 3w
2
5
u
2 31
z
1x
y2
1
N = 路由器集合 = { u, v, w, x, y, z }
E = 链路集合 ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
标注:图抽象在其它网络上下文中也十分有用 例如: P2P, N是peer结点,E是TCP的连接
当网络的通信量很小时,该方法使分组的时延为最 小,因为在并行发送的路由中,肯定有一条为最佳
该方法的缺点是网络中的分组数目会迅速增加,导 致网络出现拥塞现象,应用并不广泛
该方法可用于健壮性要求很高的地方,如军事网络
随机走动法
随即徘徊法 当分组到达某个结点时,随机选择一条链路作为转
发的路由;当某结点的输出链路有3条时,就以平均 概率0.33选择任一条链路作为转发路由 当结点或链路发生故障时,该方法可使路由算法有 较好的稳健性
基于流量的路由算法
该方法不仅考虑网络的拓扑结构,还要考虑网络的 负载因素
对某一给定的线路,如果已知负载量与平均流量, 那么可以根据排队论的知识计算出该线路上的平均 分组延迟
自适应算法(adaptive algorithm):能适应网络 拓扑和通信量的变化,也叫动态路由算法和自适 应路由算法
非自适应路由算法
固定路由算法(fixed routing algorithm) 洪泛法(flooding) 随机走动法(random walk) 基于流量的路由算法(flow-based routing)
5
2 33
2
5
1
2 31
6
14
52
1
最短路径算法
Dijkstra算法首先建立一个除源点外的所有结 点的集合S,集合S保存尚未被删除的结点
Dijkstra算法使用两个数组D和R,每个结点在 这两个数组中都各有一项
数组D的第i项存储从源点到结点i的最短距离 数组R的第i项存储从源点到结点i路径上的下一站
– 否则G中表项保持原状,仍为(N,V,D)
该改为:如果V=G’,那么无条件的把G中的项目更新为G’。理由 是:要以最新消息为准。见谢希仁第五版《计算机网络》148页
距离矢量路由算法
距离矢量路由算法
路由器1的更新前的路由表 路由器2发给路由器1的报文
路由器1的更新后的路由表
距离矢量路由算法
公平性(fairness):对每一个站点都公平
最优性(optimality):某一个指标的最优(时间、 费用或综合指标)。实际上,获取最优的结果代价 较高,可以选择次优的结果
路由算法的分类
自适应或者非自适应?
非自适应算法(non-adaptive algorithm):不能 适应网络拓扑和通信量的变化,路由表是事先计 算好的,也叫静态路由算法和非自适应路由算法
路由算法:发现最小代价路径的算法
路由的概念
路由:按照某种指标(传输延迟,所经过的站点数目 等)找到一条从源结点到目标结点的较好路径
较好路径: 按照某种指标较小的路径
路由算法(routing algorithm):网络层软件的一部 分,完成路由功能
路由的时机
虚电路:在建立虚电路时使用(会话路由选择, session routing)
分布式路由选择
根据来自于相邻结点的信息,通过一个最短花费路 由算法计算出到每个目的地的路由
分布式路由算法得到了广泛使用 目前最流行的两个分布式路由算法
距离矢量路由算法(distance vector routing)
• 局部:路由器只知道与它有物理连接关系的邻居路由器 和到该路由器的代价
最短等待法 逆向学习算法
集中路由选择
根据所有结点的网络信息来选择路由 网络中设置了一个路由控制中心 每隔一段时间,每个结点向路由控制中心发送状态
信息,如链路连接情况、流量和队列长度等 路由控制中心收集所有这些信息,然后根据它对整
个网络的全局性了解,利用这些信息使用最短路径 算法计算出每对结点之间的最佳路径,构造出路由 表分发给对应的每个结点 缺点:计算量大和路由控制中心的脆弱性
• 如果K记录的下一结点标识为J,并且J所报告的到 目的地的距离改变了,也会更新路由表中的距离 度量
距离矢量路由算法
算法表示
初始化。对于每个结点G,对所有它直接连接的 目的地N,路由表中的表项用三元组(N,G,0)来表 示,即从结点G到目的地N无需经过转发
结点G定期发送它的路由表给相邻结点。更新信 息中对应着每一个目的地N用一个三元组来表示 (N,V,D),即到目的地N的路由上的下一结点为 V,G到N的距离为D
链路状态路由算法(link state routing)
• 全局:所有的路由器拥有完整的拓扑和边的代价的信息
距离矢量路由算法
历史及应用情况
由Bellman、Ford和Fulkerson等提出 用于ARPANET, Internet和Novell
基本思想
每个结点都保存一张到目的地的路由表 • 到目的地的下一结点 • 测量出到目的地的度量值(metric):初始化时,直接 连接的目的地置为0(表示无需经过别的路由器),其 它置为
每个结点把它的路由表定期向它直接连接的相邻结点传递
距离矢量路由算法
当结点K从结点J接收一个更新消息后,它对 到每个目的地的路由和距离度量进行检查
• 如果J知道一条到目的地的更短的路径,结点K更 新该目的地对应的下一结点标识和距离度量
• 如果J列出了一个K还没有记录的某个目的地的路 径,结点K会向表中增加一项
– 否则G中表项保持原状,仍为(N,V,D)

改为:

如果找不到相应的表项,在G的路由表中增加一项:
(N,G’,D’+C)

如果V=G’,那么无条件的把G中的项目更新为G’中的
(N,G’,D’+C)。

如果V≠G’,G中路由表对应的表项根据D’+C和D的比较获得
– 如果D’+C<D,G中表项更新为(N,G’,D’+C)
LS的基本工作过程
1. 发现相邻结点,获知对方网络地址 2. 测量到相邻结点的的代价(延迟或开销) 3. 组装一个LS分组,描述它到相邻结点的代价情况 4. 将分组通过扩散的方法发到所有其它路由器 5. 通过Dijkstra算法找出最短路径
链路状态路由算法
1. 发现相邻结点,获知对方网络地址
一个路由器加电之后,向所有线路发送HELLO分组 其它路由器收到HELLO分组,回送应答,在应答分组中告
链路状态路由算法
4. 将分组通过扩展的方法发到所有其它路由器
顺序号:用于控制无穷的扩散,每个路由器都记 录(源路由器,顺序号),发现重复的或老的就 不扩散
• 具体问题1: 循环使用问题 • 具体问题2: 路由器崩溃之后序号从0开始 • 具体问题3:序号出现错误
解决问题的办法:年龄字段(age)
• 生成一个分组时,年龄字段不为0 • 每过一个时间段,AGE字段减1 • AGE字段为0的分组将被抛弃
链路状态路由算法
5. 通过Dijkstra算法找出最短路径
路由器获得各站点LS分组和整个网络的拓扑 通过Dijkstra算法计算出到其它各路由器的最短路
径(汇集树) 将计算结果记录到路由表中
• 第二次交换,C从B处获得消息, B可以到达A,路径为3 。 因此,C到A从B走,代价为4
• 无限此之后, 到A的距离变成INF,不可达
链路状态路由算法
LS的背景
DV的问题 • 代价没有考虑线路带宽因素,认为所有线路带宽一样 • 慢速收敛问题(无穷计算问题)
1979年后ARPANET的路由算法都转为LS
固定路由算法
每个网络结点存储一张表格,表格的每一项记录到 达某个目的结点的下一结点或链路,而不是记录到 该目的结点的所有中间结点
优点:简单,适合一个负载稳定和拓扑变化不大的 网络
缺点:灵活性较差,无法对网络的拥塞和故障作出 反应
洪泛法
结点收到不是发给它的分组时,就将该分组的副本 向除输入链路之外的所有与此结点相连的链路转发 出去
知自己的全局唯一的名字 在LAN中,通过广播HELLO分组,获得其它路由器的信息
链路状态路由算法
2. 测量到相邻结点的代价(延迟或开销)
实测法,发送一个分组要求对方立即响应 回送一个ECHO分组 通过测量时间可以估算出延迟情况
3. 组装一个分组,描述相邻结点的情况
发送者名称 序号,年龄 列表: 给出它相邻结点,和它到相邻结点的延迟
DV的无穷计算问题 DV的特点 • 好消息传的快 坏消息传的慢 好消息的传播以每一个交换周期前进一个路由器 的速度进行 • 好消息:某个路由器接入或有更短的路径
• 举例
距离矢量路由算法
DV的无穷计算问题
坏消息的传播速度非常慢(无穷计算问题) 例子
• 第一次交换之后, B从C处获得信息,C可以到达A(C-A, 要经过B本身),但是路径是2,因此B变成3,从C处走
相关文档
最新文档