OSPF:使用SPF算法的路由传播

 

OSPF:使用SPF算法的路由传播

一、引言

RIP协议使用矢量距离算法在网关和主机中传播路由信息,其最大的优点就

是简单。RIP通过限制从源地址到目的地址路径上的跳数,有效防止了路由选择循环的无限延续,从而保证了网络的稳定性。然而随着Internet规模的不断扩大,RIP协议的缺点就更加严重。首先就是RIP限制了网络的规模,它能使用的最大距离为15(16为不可达);其次路由器之间交换的完整路由信息开销太大。最后,“坏消息传播得慢”,使许多更新过程的收敛时间过长。

    开放最短路径优先OSPF(Open Shortest Path First)使用链路状态算法来传播选路信息,它使用SPF算法(Dijkstra算法)。其要点如下:

1、所有的路由器都维持一个链路状态数据库,只有可达邻站的链路状态信

息才存入链路状态数据库,这个数据库实际上就是整个互连网的拓扑结构图。而使用RIP协议的路由器只各自知道到所有目的网络的下一站路由器,但却不知道全网的拓扑结构。

    2、OSPF让每一个链路状态都带上一个32bit的序号(增长的速率不得超过每5秒1次),序号越大状态越新。每一个路由器用链路状态数据库中的数据,算出自己的路由表。

3、要网络拓扑发生任何变化,链路状态数据库就能很快地进行更新,使各

个路由器能够重新计算出新的路由表。

    4、OSPF依靠各路由器之间的频繁交换信息来建立链路状态数据库,并维持这数据库在全网范围内的一致性(链路状态数据库的同步)。

5、OSPF不象RIP使用运输层的用户数据报UDP进行传送,而是直接用IP

数据报传送,并且数据报很短。(1

IP数据报首部(20字节)

OSPF报文首部(24字节)

类型1至5的OSPF报文

1  OSPF使用IP数据报传送

由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互连网的规模无关。

二、基本概念

1、链路状态:所谓一个路由器的“链路状态”就是该路由器都和哪些网

络或路由器相邻,以及将数据发往这些网络或路由器所需的费用。

    2、自治系统:一般简称为AS。一个自治系统是一个互连网络,其最重要的特点是它有权自主地决定在本系统内应采用何种路由选择协议。

3、内部网关协议IGP:即在一个自治系统内部使用的路由选择协议。

4、区域OSPF允许进一步地将互连网划分成一些区域。每个区域都包含一

组相邻的网络及所连接的主机,每个网关都必须被放置在其中的一个区域中。每一区域内的拓扑结构对区域外是不可见的。由于保持了区域拓扑的独立性,因此路由选择交换信息量比AS未被分隔时小。带有多个接口的路由器可加入到多个区域,这些所谓的区域边界路由器为每个区域维护一个单独的拓扑数据库。

5、链路状态数据库:是与路由器相关的网络的整体结构图,它包含从同一

区域中所有路由器接收的LSA(链路状态通告:包含有关链路接口、所用计量标准及其他变量信息)。

6、OSPF主干:负责在两个区域之间发送路由选择信息,它由区域边界路由

器、跨区域网络及与其连接的路由器组成。运行OSPF的AS边界路由器通过外部网关协议或配置信息了解外部路由。

    7、指定的路由器:如果某个网络上接有N个网关,则它们可形成N(N-1)/2个可能的邻接。每当某个网关传送一个报文时,它会向所有N-1个邻接网关发送该报文,因而共传送(N-1)²个链路状态。当指定一个网关作为指定路由器后,每个网关都变得与指定路由器有邻接关系,而与其它网关不存在邻接关系,与特定网络相连的N个网关之间仅有N-1个邻接,传送的信息量大为减少。指定路由器的另一项任务是为该网络发送链路状态通告,传送链路状态更新数据。

    8、后备指定路由器:当多重接入网络上的网关没有选出指定路由器的时候,后备指定路由器成为指定路由器,再在余下的网关中选出新的后备指定路由器。此时N个网关之间可能有2N-3个邻接关系。

三、OSPF分组格式

版本号(1)

类型(1)

数据分组长度(2)

路由器ID(4)

区域ID(4)

校验和(2)

鉴别类型(2)

鉴别(8)

数据(可变)

2  OSPF分组格式

各字段含义如下(2):

版本号字段:给出了OSPF的版本。

类型字段OSPF共有五种报文类型:

类型1Hello报文,用来发现和维持邻站的可达性;

类型2Database Description报文,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息;

类型3Link State Request报文,向对方请求发送某些链路状态项目的详细信息;

类型4Link State Update报文,用洪泛法向全网更新链路状态;

类型5Link State Acknowledgment报文,对链路更新报文的确认。

数据分组长度字段OSPF分组的长度,包括分组首部。

路由器ID字段:标识数据分组的源地。

区域ID字段:标识分组所属的区域。

校验和字段:检验分组内容。

鉴别类型字段:所有OSPF协议路由器间的数据交换都需要被鉴别,保证只有可信赖的路由器才能传送路由信息。

鉴别字段:包括鉴别信息。

数据:类型1至类型5的OSPF报文。

四、链路状态数据库的建立和更新

    每个路由器定期发送一个链路状态通告LSA,以提供有关路由器的邻接信息,或通知其他路由器某个路由器的状态改变了。通过把已经建立的邻接路由器与连接状态相比较,可以快速检测出失效路由器,并适时修改网络的链路状态数据库,每一路由器以其为根据计算一个最短路径树,该最短路径树提供一个路由选择表。OSPF规定,每两个相邻路由器每隔10秒要交换一次Hello报文,以确知哪些邻站是可达的。只有可达邻站的链路状态信息才存入链路状态数据库,并由此算出路由表来。若有40秒没有收到某个相邻路由器发来的Hello报文,则可认为该相邻路由器不可达,应立即修改链路状态数据库,并重新计算路由表。 

当一个路由器刚开始工作时,它只能通过Hello报文得知它有哪些相邻的路由器在工作,以及将数据发往相邻路由器所需的费用。OSPF让每一个路由器用Database Description报文和相邻路由器交换本数据库中已有的链路状态摘要信息(指出有哪些路由器的链路状态信息已写入数据库)。之后路由器使用Link State Request报文向对方请求发送自己所缺的某些链路状态项目的详细信息。通过一系列的这种报文交换,全网的链路状态数据库就建立起来了

在网络运行的过程中,只要一个路由器的链路状态发生变化,该路由器就要使用Link State Update报文,用洪泛法向全网更新链路状态。当一个重复的报文到达时,网关丢弃该报文,而不发送它的副本。为了确保链路状态数据库与全网的状态保持一致,OSPF还规定每隔一段时间,如30分钟要刷新一次数据库中的链路状态。

五、OSPF的图论模型

    OSPF利用网络拓扑的图论模型来计算最短路径。OSPF拓扑图中的每个节点或者对应一个网关,或者对应一个网络。如果网中两实体存在物理连接,则OSPF图在代表实体的两个节点之间有一对有向边,每个边都有一个“权”。OSPF根据沿着花费最小的路径转发数据报的原则建立选路表。

六、OSPF的有限状态机模型

    有两个原因使Hello对多重接入网络特别重要。首先,网络硬件并不检查或报告网关的崩溃或重启,为了互相保留对方的状态信息,与多重接入网络相连接的两个网关必须交换分组。第二,与某个多重接入网络相连接的任意两个网关之间都能够直接通信,因此OSPF必须防止这些网关形成过多的邻接。

OSPF标准使用了一个有限状态机来规范使用Hello的网关如何与相邻网关交互作用。

一般来说,所有相邻网关最初都处于DOWN状态,表示并未准备通信。当一个网关接收到相邻网关发出的Hello分组后,它将相邻网关从DOWN状态变迁到INIT状态。在此之后,相邻网关或者进入2-WAY状态,或者进入EXSTART状态。其中2-WAY状态表示通信已经建立,但相邻网关与该网关之间没有邻接关系,EXSTART状态表示不但已经建立通信,而且两个网关之间存在经过双方协商同意的邻接关系。

当协商结束时,网关开始交换链路状态数据库中的信息,以确保它们有完全相同的底层互连网拓扑图。两个相邻网关中的一个成为“主网关”,它查询另一个网关数据库中的信息。非主网关返回数据库描述分组,以通知主网关最近接收到的该拓扑图中每条链路的信息。在建立邻接关系时,交换信息尤其重要,因为在网络断连期间,某个网关中的信息可能变为过时的信息。每个拓扑信息分组中包含一个序号,因此网关能够知道相邻网关数据库中的描述信息是否比该网关自身数据库中的信息更新。在交换完成且所有拓扑信息都已装载后,网关进入FULL状态。在FULL状态中,两个网关定期交换分组,以保持连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本备忘录的状态 本文档讲述了一种Internet社区的Internet标准跟踪议,它需要进一步进行讨论和建议以得到改进。本备忘录的发布不受任何限制。 目 录 1.介绍 5 1.1 议概述 5 1.2 定义常用术语 6 1.3 基于SPF路由技术的简要历史 7 1.4 文档的组织 7 2.拓朴数据库 8 2.1 最短路径树 12 2.2 使用外部路由信息 13 2.3 等价的多条路径 14 3.自治系统的区域划分 14 3.1 自治系统的主干 14 3.2 区域间路由 15 3.3 路由器的分类 15 3.4 一个区域配置的例子 15 3.5 支持IP子网 19 3.6 区域分割 20 4.功能汇总 20 4.1 区域间路由 21 4.2 自治系统外部路由器 21 4.3 路由议包 21 4.4 基本实现要求 22 5. 议数据结构 23 6. 区域数据结构 24 7. 生成邻接 25 7.1 Hello议 25 7.2 同步数据库 26 7.3 指定路由器 26 7.4 后备指定路由器 27 7.5 邻接图 27 8. 议包处理 28 8.1 传送议包 28 8.2 接收议包 30 9. 接口数据结构 31 9.1 接口状态 32 9.2 事件引起的接口状态变化 33 9.3 接口状态机 34 9.4 选举指定路由器 35 9.5 发送Hello包 36 9.5.1 在非广播网络上传输Hello包 36 10.邻居数据结构 37 10.1 邻居状态 38 10.2 引起邻居状态变化的事件 39 10.3 邻居状态机 40 10.4 是否成为邻接 43 10.5 接收呼叫包 43 10.6 接收数据库描述包 44 10.7 收到连接状态请求包 45 10.8 发送数据库描述包 45 10.9 发送连接状态请求包 45 10.10 一个示例 46 11.路由表结构 46 11.1 两个例子 48 12.连接状态公告 49 12.1 连接状态头 50 12.1.1 LS类型 50 12.1.2 连接状态ID 50 12.1.3 公告路由器 51 12.1.4 LS顺序号 51 12.1.5 LS生存期 52 12.1.6 LS检查和 52 12.3 组织连接状态公告 53 12.3.1 路由器连接 54 12.3.2 网络连接 56 12.3.3 汇总连接 56 12.3.4 自治系统外部连接 57 12.4 TOS尺度 58 13 传播过程 59 13.1 确定哪个连接状态是更新的 59 13.2 在数据库完装连接状态公告 60 13.3 在传播过程的下一步 60 13.4收到自己组织的连接包 61 13.5 发送连接状态确认包 61 13.6 重传连接状态公告 62 13.7 接收连接状态确认 63 14 连接状态数据库的生存期 63 15 虚拟连接 63 16 计算路由表 64 16.1 计算一个区域的最短路径树 65 16.1.1 下一跳的计算 67 16.2 计算区间路由 67 16.3 解析虚拟下一跳 68 16.4 计算自治系统外部路由 68 16.5 增量更新——汇总连接 69 16.6 增量更新——自治系统外部连接 69 16.7 路由表变化引起的事件 69 16.8 等价多路径 70 附录A 包格式 72 A.1 OSPF包的封装 72 A.2 OSPF包头 73 A.3 连接状态(LS : Link State)公告头 73 A.4 Hello包 74 A.5 数据库描述包 75 A.6 连接状态请求包 76 A.7 连接状态更新包 77 A.7.1 路由连接公告 77 A.7.2 网络连接公告 79 A.7.3 汇总连接公告 79 A.7.4 自治系统外部连接公告 80 A.8 连接状态确认包 81 附录B 结构常量 82 附录C 可配置常数 83 C.1 全局参数 83 C.2 区域参数 83 C.3 路由器接口参数 83 C.4 虚拟连接参数 84 C.5 非广播、多路存取网络参数 85 C.6 主路由参数 85 D 必要的统计信息 86 D.1 日志信息 86 D.2 累计统计 87 E 认证 90

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值