路由选择算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

下面就以图1的网络为例来讨论这种算法, 即寻找从源结点到网络中其他各结点的最短路 径。为方便起见,设源结点为结点1.然后一步 一步寻找,每次找一个结点到源结点的最短路 径直到把所有的点都找到为止。
令D(v)为源结点(记为结点1)到某个结点v的 距离,它就是从结点1沿某一路径到结点v的所 有链路的长度之和。再令 l (i, j ) 为结点 i 至结 点 j 之间的距离。整个算法只有以下两个部分: (1)初始化: 令N表示网络结点的集合。先令 N {1}.对所有 不在N中的结点v,写出
距离向量算法与最短路径算法的比较
距离向量算法和链路状态算法各有千秋, 两种算法的差别基本上可以归纳为表2中的几 点,我们可以以此作为集体应用中选择路由选 择协议的技术依据。
需要注意的一个问题
收敛是路由算法选择时所遇到的一个重要问 题。一个理想的路由选择算法其收敛时间应越短 越好,收敛时间是指从网络的拓扑结构发生变化 到网络上所有的相关路由器都得知这一变化,并 且相应地做出改变所需要的时间。这一时间越短 ,网络变化对全网的扰动就越小。收敛时间过长 会导致路由环路的出现。 距离向量路由选择算法的收敛时间就相对较 长。特别当网络出现故障时,要经过很长的时间
路由选择及其算法
通信子网为网络源节点和目的节点提供了 多条传输路径的可能性。网络节点在收到一个 分组后,要确定向一下节点传送的路径,这就 是路由选择。在数据报方式中,网络节点要为 每个分组路由做出选择;而在虚电路方式中, 只需在连接建立时确定路由。确定路由选择的 策略称路由算法。
路由(径)选择——根据一定的原则和算 法在所有传输通路中选择一条通往目的结点的 最佳路径。 路由选择算法——路由选择过程中采用的 策略。
延迟向量 Di
d i1 di 2 Di d 1N
其中:d 0 ii
d kj d ki d ij Min[d ki d ij ]
iA
A为结点 k 的所有相邻节点
dii 指结点到结点自身的延迟
后继结点向量 Si s i1 si 2 Si s iN Skj i 使每个结点[dki dij ] 最小
3、计算新路由(采用Dijstra算法) 当一个结点获得了一整套的链路状态分 组后,便可以用Dijstra算法找出它到所有可能 目的结点的最短路径,并更新路由表。
最短路径算法
在路由选择算法中都要用到求最短路径算 法。其中最出名的求最短路径的算法有两个, 即Bellman-Ford算法和Dijkstra算法。这两种算 法的思路不同,但得出的结果是相同的。我们 下面只介绍Dijkstra算法。它的已知条件是整 个网络拓扑和各链路的长度。 应注意到,若将已知的各链路长度改造为 链路时延或费用,这就相当于求任意两节点之 间具有最小时延或最小费用的路径。因此,求 最短路径的算法具有普遍的应用价值。
例:计算 d13
1 2 3 1 3 1 4 4
Min d13 3
d13 d12 d 23 2 3 5 d13 d13 d33 5 0 5 d13 d14 d 43 1 2 3
计算 d15 最小值
Βιβλιοθήκη Baidu
1 2 3 5 1 2 4 5 1 3 5 1 4 5
d15 d12 d 23 d 35 6 d15 d12 d 24 d 45 5 d15 d13 d 35 6 d15 d14 d 45 2
Min d15 2
得到了结点1的新的部分路由表
链路状态路由选择算法
链路状态算法,又称最短路径优先算法。 与距离向量算法不同 的是,由于这种算法需 要每一个路由器都保存一份最新的关于整个网 络的网络拓扑结构数据库,因此路由器不仅清 楚地知道从本路由器出发能否到达某一指定网 络,而且能够到达的情况下,还可以选择出最 短的路径以及采用该路径将经过的路由器。链 路状态算法使用LSP(链路状态数据包)、网络 拓扑数据库、SPF路径选择算法、SPF树,最


典型的路由选择算法
1、多路发送
特点:可靠性高、盲目性大(重复分路多)、 通信量大
几路发送
特点:通信量减小、可靠性降低
2、固定式(网中每一个结点存放一张事先确 定好的路由表(存放最佳路由)) 表中给出本结点到各目的结点的最短路径 例 一旦C和E之间的 网络断开,则A、 B无法通信。 特点:简单、可靠性差(不能适应网络状态变 化),适用于小型网络,(人工维护路由表)
3、适应式(动态路由选择)适用于中型网络 路由表动态设臵(不需要人工干预) 实现方式:相邻结点(交换机或路由器)周期 性交换路由信息。
例:
一旦结点C与结点E之间断开,则结点C向结 点A反馈信息,通过其他路径进行通信。
分布式路由算法
1、基本思想:每个结点周期性地从相邻的结 点获得网络状态信息,同时将本结点做出的决 定周期性地通知周围的结点,以使这些结点不 断地根据网络新的状态更新其路由选择决定。 2、基本算法:距离向量法和链路状态法
终计算出从该路由器到其他目标网络的最短路径
,这些路径就构成了路由表。该算法要求每个路 由器具有唯一的名字或标识。 算法思想:链路状态算法的思想十分简单, 其具体工作过程如下。 每个路由器必须: (1)发现与它相邻的路由器,并知道其网络地址;
(2)测量它到达各相邻路由器的传输代价; (3)组装链路数据包(LSP),以便把它所知信息发送给
路由选择算法分类
1、根据能否适应通信量和拓扑结构变化 非自适应(静态路由):可靠性差、简单 自适应(动态路由):实现复杂、可靠性高—— 实用 2、根据源节点向外发送数据方式 全路发送(扩散式) 统称多路发送 几路发送(选择扩散式) 单路发送


固定式(静态路由) 单路发送 适应式(动态路由) 最短路法 分布式 局部延迟法
l (1, v) D (v )
更新原有的D(v) 值,即: D(v) min[D(v), D(w) l (w, v)] (1) (3)重复步骤(2),直到所有的网络结点都在N 中为止。 下表1是对图1的网络进行求解的详细步骤。
现在我们对以上的最短路径树的找出过程进行 一些解释。
距离向量路由选择算法
距离向量路由选择算法是一种最基本的动 态路由选择算法。 原理:让每个路由器维护一张路由表,表 中给出了到每个目的地已知的最佳距离和路径 。通过与相邻路由器之间周期性地相互交换信 息,来更新表中的信息。当网络拓扑结构发生 变化时,路由器之间也将及时地相互通知有关 变更信息。
基本思想:每个结点保持两个向量 Di和 Si ; 每隔一段时间(如128ms)相邻节点交换时延 向量;根据收到的全部时延向量修改本结点时 延向量和后继结点时延向量。
网络上所有其他的路由器; (4)发送LSP给网络上所有其他的路由器,以便创建 网络拓扑结构数据库(即:SPF树); (5)计算到每个其他路由器的最短路径; (6)路由器将计算出的最短路径以及所有的该路由 器的网络端口信息添加到路由表中。
由于链路状态算法要求各路由器的网络拓 扑结构数据库相互一致;因此,当链路状态发 生变化时,最先检测到这一变化的路由器需要 将变化的情况发送给其他的路由器。每当路由 器收到新的LSP,它都会重新计算最短路径并 更新路由表,保证各路由器在网络拓扑结构方 面重新达成一致;当网络拓扑结构数据库创建 后变化时,每个路由器使用最短路径算法来找 出到其他路由器的最短路径。
才能此消息传送到所有的路由器。也就是说“ 好消息传播的快,而坏消息传播的慢”,从而 导致路由环路。
路由选择算法在路由选择协议中起着至关 重要的作用,采用何种算法往往决定了最终的 寻径结果。一个实际的路由选择算法,应尽可 能的接近于理想的路由选择算法,即要具有以 下特点:最优、简单、健壮稳定、快速收敛、 灵活、公平性。
若结点v与结点1直接相连 若结点v与结点1不直接相连 在用计算机进行求解时,可以用一个比任何路 径长度大得多的数值代替 。对于上述例子, 可以使用 D(v) 99 。 (2)寻找一个不在N中的结点w ,其中D(w) 的值 为最小。把 w 加入到N中。然后对所有不在N 中的结点v,用[ D(v), D(w) l (w, v)] 中较小的值去
具体步骤: (1)构造链路状态信息——每个结点收集与其相 邻的结点及其延迟信息。 通过:①HELLO分组—确认相邻节点。 ②ECHO分组—收集该结点到相邻结点的 延迟(要求对方立即响应)。 通过上述信息来构造链路状态分组(反映与 某结点相邻的所有结点的状态)。
例:
2、发送链路状态分组(采用扩散式)
如下图1所示网络,图2是更新前结点1的路由 表
1、路由表中给出了结点1的两个向量Di 和 Si 。 2、经128ms后,结点1收到3个相邻节点(2、 3、4)的时延向量 D2 、 3、 4 ,进行更新运算, D D 得到更新后的路由表。 d 21 2 d 31 3 d 41 1 d 22 0 d 32 3 d 42 2 d 3 d 0 d 2 23 D3 33 D4 43 D2 d 24 2 d 34 2 d 44 0 d 35 1 d 25 3 d 45 1 d 5 d 3 d 3 26 36 46
相关文档
最新文档