路由算法简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ 此外,OSPF对不同类型的业务可计算不同 的路由。
➢ 如果到同一目的网络有多条相同代价的路 径,那么将通信量分配给这几条路径。这 叫多路径间的负载平衡
➢ 所有在OSPF路由器之间交换的分组(链路 状态更新分组)都具有鉴别的功能,因而 保证了仅在可信赖的路由器之间交换链路 状态信息
➢ Hello分组的时间间隔:10s(点到点以及广 播类型接口);30s(点到多点、nbma非广 播多路访问类型接口)
路由算法简介
路由选择协议
➢ 路由获取方法 1, 直连路由:由链路层协议发现的,一般指
去往路由器的接口地址所在网段的路径. 2,静态路由:由网络规划者根据网络拓扑,
使用命令在路由器上配置的路由信息。 3,动态路由:路由器能够按照特定的算法自
动计算新的路由信息,适应网络拓扑结构 的变化
当一个分组在路由器中进行寻径时,路 由器首先查找静态路由,如果查到则根据 相应的静态路由转发分组,否则再查找动 态路由
上述路径环路会通过R1、R2之间不断的路 由更新报文交换而解除,但是解除过程是 非常缓慢的。在出现路径环路之后,在下 一轮路由广播中,R1将向R2广播 (net1,R2,2)表项,R2收到此表项后,将 去往net1的路径改为(net1,R1,3);
然后R2向R1通告(net1,R1,3)表项, R1将去往net1的路由项改为(net1,R2, 4)…
OSPF分组
➢ 五种分组类型 1,问候(hello)分组:用来发现和维持邻站的
可达性。 2,数据库描述分组(Database Description):
向邻站给出自己的链路状态数据库中的所 有链路状态项目的摘要信息 3,链路状态请求(link state request):向对方 请求发送某些链路状态项目的详细信息
➢ RIP协议的最大优点是实现简单,开销较小。 其缺点也较多,比如限制了网络的规模, 它能使用的最大距离为15。其次, 坏消息 收敛很慢。再比如,只选择最短路径路由, 容易造成拥塞。因此,对于规模较大的网 络,应使用OSPF协议。
OSPF路由协议
➢ (OPEN SHORTEST PATN FIRST)开放 最短路由优先协议,这是基于链路状态的 自制系统内部路由协议。其特性如下:
图2 OSPF中AS、主干和区域间的关系
OSPF协议的基本特点
➢ 向本自治系统中的所有路由器发送信息。 使用洪泛法(flooding):路由器通过所有 输出端口向所有相邻的路由器发送信息, 这些相邻路由器又将此信息发给相邻路由 器(但不回传)。这样,最终整个路由器 都得到这个消息的一个副本。
➢ 发送的信息:与本路由器相邻的所有路由 器的链路状态。
➢ 适应范围:支持较大规模的网络,最多可 支持几百台路由器。
➢ 快速收敛:在网络拓扑结构发生变化后立 即发送更新报文,使变化在自治系统中同 步
➢ 无自环:由于OSPF根据收集到的链路状态 用最短路径树算法(Dijkstra)计算路由, 从算法本身保证了不会生成自环路由。
➢ 区域划分:允许自制系统的网络被划分成 区域来管理。
➢ 路由器的失效时间:hello-interval的四倍; 若在此间隔内未收到对方的hello分组,怎 认为对端路由器已经失效。
➢ (rip协议里默认路由失效时间是180s)
RIP和OSPF的比较
比较项目
路由类型 算法
度量尺度
看到的网络拓扑结构 报文/分组的封装 更新周期
交换内容 收敛速度
跳数 区域划分
障链路的路由,并重新发起一个路由发现 过程。
ቤተ መጻሕፍቲ ባይዱ
DSR优点
➢ ①节点仅需要维护与之通信的节点的路由, 减少了协议开销;
➢ ②使用路由缓存技术减少了路由发现的耗 费;
➢ ③一次路由发现过程可能会产生多条到目 的节点的路由;
➢ ④对链路的对称性无要求。
DSR缺点
➢ ①每个数据报文的头部都需要携带路由信 息,数据包的额外开销较大;
动态路由协议
动态路由协 议
内部网关协 议 IGP
外部网关协 议 EGP
链路状态路由算法——OSPF
距离矢量路由算法
RIP RIP Ⅱ
IGRP
混合型路由算法——EIGP
EIG
BGP
衡量路由协议的性能指标
➢ 正确性:能够正确找到最优的路由,且无自环 ➢ 快收敛:当网络拓扑结构发生变化之后,能够迅
速在自治系统中作相应的路由改变 ( 自治系统是由同一机构管理,使用同一组选路 策略的路由器的集合) ➢ 低开销:协议自身的开销(内存、网络带宽)最 小 ➢ 安全性:协议自身不易受攻击,有安全机制 ➢ 普适性:适应各种拓扑结构和规模的网络
➢ 等值路由:支持到同一目的的地址的多条 等值路由
➢ OSPF可以把一个自治系统划分为若干区域 (Area ),每个区域都有一个32bit的编号, 一个区域的拓扑结构对于自治系统的其余 部分是不可见的。这种信息的隐藏可以带 来路由信息量的显著降低,从而减少占用 的网络带宽。同时,域内的路由只由域本 身的拓扑结构决定,使其不受域外错误信 息的影响。
➢ ②路由请求消息采用泛洪方式,相邻节点 路由请求消息可能发生传播冲突并可能会 产生重复广播;
➢ ③由于缓存,过期路由会影响路由选择的 准确性等。
➢ 因此,现阶段以DSR路由协议为基础的各种 协议都趋向于避其弊用其利,通过对DSR 路由协议进行改进或扩展,以期能设计出 满足Ad Hoc网络高动态变化,低能耗及低 延迟等要求的路由协议。
DSR路由建立过程
➢ 当节点要传送数据分组时,源节点先检查 缓存中是否有到信宿的路由信息,若有非 过期的路由则可直接采用,否则泛洪广播 发送路由请求分组。每个节点接收后,判 断是否有到目的节点的路由,若无,则将 自己的地址加入分组的路由记录并转发给 邻节点。若是目的节点则返回路由应答分 组,当源节点接收到路由回复后,路由发 现过程结束。
➢ 水平分裂:通过限制路由表的单向传递,即从不 将来自某一端口的路由表回传,减少无效路由信 息的传递。
➢ 反向路由中毒:当路由器监测到某一端口偶断开 连接后,直接把距离值设为无穷大,然后向其他 路由器发出更新信息。
➢ 保持定时器:这种方法是在网络断开时, 暂时阻止路由器的正常更新。
➢ 触发更新:为了加速收敛,在路由表发生 变化的时候,路由器立即向邻居发出路由 更新信息。
RIP
距离矢量路由协议 Bllman-ford算法 跳数
从网络邻居的角度观察网络拓扑结构
UDP,端口号520 周期更新(30s)
整个路由表 好消息快,坏消息慢
15 不支持
OSPF 链路状态路由协议
Dijkstra算法 代价(cost) 得到整个网络的拓扑结构
IP。协议号89 事件触发更新 只更新链路发生变化的路由表
如此下去,直到路径长度变为16。也就 是说,要经过7次来回(至少30×7秒)路 径环路才可以消除。这就是所谓的慢收敛 问题。更为复杂的路由环路还有可能发生 在一系列路由器之间。
路由环路问题的解决
➢ 设置最大度量值:定义一个最大的距离值,表示 网络不可到达,停止距离值的增加,从而阻止路 由无限循环。(RIP:16;IGRP:256)
➢ 建立路由后,源节点将进行数据传送,在 此过程中需要对已建立的路由进行维护。
源节点通过路由维护机制可以检测出网络 拓扑的改变,从而知道到目的节点的路由是
否可用。当路由维护探测到某条使用中的 路由出现了问题时,就会发RERR(路由错误 报文)给源节点,源节点在收到该RERR后,
就会从它的路由缓存中删除所有包含该故
➢ 收敛:自治系统中所有的节点都得到正确 的路由选择信息的过程
路由环路问题
图1 慢收敛问题实例
➢ 如图1所示,图中是一个正常的网络拓扑结 构,从R1可以直接到达net1,从R2经过R1 可到达net1。正常情况下,R2收到R1的距 离向量报文后,会建立一条路径 (net1,R1,1)。
➢ 现在假设从R1到net1的路径因故障而崩溃, 但R1依然能正常工作。R1一旦检测到net1 不可到达,它会立即将原来去往net1的路 径废除(将距离值设为16)。然后会出现 两种情况:
➢ 当跳数超过15,RIP协议会认为目的地不可 达。因此,它只适应于中小型网络。
➢ RIP协议的位置在应用层,使用运输层的用 户数据报协议UDP进行传送,但是转发IP 数据报的过程是在网络层完成的。
RIP路由协议
➢ 如果网络中发生了故障,则故障路由器信 息可能要多次才能更新。此即RIP协议的特 点“坏消息传得慢,好消息传得快”,这 是因为网络的故障是由跳数不可达来表示 的,跳数不可达需要特殊为16时才可判为 不可达(后有实例);而新的可达路由, 则直接转发即可,所以传得很快。
快 65536 可进行区域划分
Dijkstra算法
➢ 在路由选择算法中都要用到求最短路径的 算法,最出名的就是Bellman-Ford算法和 Dijkstra算法。他们的主要思想:黑板分析。
DSR 路由协议简介
➢ 动态源路由协议(DSR,Dynamic Source Routing)是一种按需路由协议,它允许节点 动态地发现到达目的节点的多跳路由。
➢ 所谓源路由,是指在每个数据分组的头部 携带有在到达目的节点之前所有分组必须 经过的节点的列表,即分组中含有到达目 的节点的完整路由。
➢ 在DSR中,不用周期性地广播路由控制信 息,DSR路由协议中的所有状态都是“软 状态”,任何状态的丢失都不会影响DSR 路由协议的正确操作,因为所有状态都是 按需建立的,所有状态在丢失之后如果仍 然需要的话则能够很容易得到迅速恢复, 这样就能减少网络的带宽开销,节约电池 能量消耗,避免移动Ad Hoc网络中大范围 的路由更新。
距离矢量路由算法
➢ 也称Bellman-Ford算法。基本思想是每个 路由器维护一张表(一个矢量),表中列 出了当前已知的每个目标的最佳距离,以 及所使用的线路。相邻路由器之间相互交 换信息,不断更新内部的表。
➢ 常见的距离矢量路由算法:RIP和IGRP (Cisco专用协议)
距离矢量路由算法
➢ 路由的建立与更新:首先,路由器把与自 己活动端口直接相连的的网络地址写入路 由表,然后距离矢量路由协议定时把自己 的完整路由表传送给邻居路由器,并接受 传来的路由表,把距离矢量加1.
RIP路由协议
➢ 通过抵达目的地的最少条数(hop)来选取 最佳路径,默认每30秒向其相邻设置发出 一个包含整个路由表副本的RIP更新信息。
( 为了防止整个网络中参与RIP协议交互的 路由器同时广播路由更新报文从而造成网 络的拥塞,协议规定在30秒的基本更新时 间间隔上附加一个随机变化量,此变化量 为5秒。因此真正RIP协议实现中更新定时 器的值变化范围为25秒到35秒。)
第一种,在收到来自R2的路由更新请求报文 之前,R1将修改后的路径(net1,R1,1)删除。这 时整个网络路由状态是正确的。
第二种,R2赶在R1发送新的更新路由报文之 前广播自己的路由更新报文,该报文中必然有一 条(net1,R1,1)表项,说明从R2出发,经过一个 路由器就可以到达net1。这时R1会根据此表项来 修改自已的路由表,产生关于net1的新路径 (net1,R2,2)。于是在R1与R2之间出现了路由环 路,如图1b所示。
所谓“链路状态”就是说明本路由器都 和哪些路由器相邻,以及它们之间的“度 量”。OSPF里的度量用来表示距离、时延、 带宽等等。
OSPF位于网络层,不用UDP而是直接用 IP数据报传送。
OSPF协议的基本特点
➢ 只有当链路状态发生变化时,路由器才用 洪泛法向所有路由器发送更新信息。
由于各路由器之间频繁的交换链路状态 信息,因此所有路由器最终都能建立一个 链路状态数据库(link-state database ),这 个数据库实际上就是全网的拓扑结构。也 就是说,每一个路由器都知道全网共有多 少个路游器,以及那些路由器是相连的, 其代价是多少等等信息。
➢ 4,链路状态更新(link state update)分组:用 洪泛法对全网更新链路状态,这种分组是 最复杂的,也是OSPF协议的最核心的部分。 路由器使用这种分组将其链路状态通知给 邻站。
➢ 5,链路状态确认(link state acknowledgment)分 组:对链路更新分组的确认。