网络协议

关注公众号 jb51net

关闭
网络 > 网络协议 >

网络协议之内部网关协议OSPF

脚本之家

  要想认识OSPF首先得区分OSPF于RIP的不同,有很多人都搞不清楚两者之间的关系与区别,下面我们先从定义来看看他们的区别。

  OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪杰斯特拉(Dijkstra)算法被用来计算最短路径树。与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。

  路由信息协议(RIP)是一种在网关与主机之间交换路由选择信息的标准。RIP 是一种内部网关协议。在国家性网络中如当前的因特网,拥有很多用于整个网络的路由选择协议。作为形成网络的每一个自治系统(AS),都有属于自己的路由选择技术,不同的 AS 系统,路由选择技术也不同。

  1.OSPF与RIP不同

  ①向本自治系统中的所有路由器发送消息。这里使用的是洪泛法(flooding)。

  ②发送的信息是与本路由器相邻的所有路由器的链路状态。链路状态就是用来说明该路由器与那些路由器相邻以及该链路的“度量”。这个度量可以自行定义,而不是像RIP那样的单一(跳数),可以定义为表示费用、距离、时延、带宽等等。所以SOPF比RIP要灵活许多。

  ③只有当链路状态发生变化的时候,路由器才向所有路由器用泛洪法发送此消息,这与RIP的定期交换路由表信息不同。

  经过交换细心,所有的路由器最终都能建立一个链路状态数据库(记录的数据都是某两台相邻路由器之间的链路状态),这个数据库实际上就是全网的拓扑结构图,且这个数据库在所有路由器中是一致的(这称为链路状态数据库的同步)。有了链路状态数据库中的数据,路由器就可以使用特定的算法(例如,使用Dijkstra最短路径算法)自己构造路由表。(注意RIP是不知道全网的拓扑结构的,只能知道下一跳路由器。)其实按照上边的泛洪法,OSPF的链路状态数据库能较快地进行更新,由此路由器的路由表更新也较快。OSPF的更新过程收敛得快是其重要优点。

  值得注意的是,OSPF不用UDP而是直接用IP数据报传送。OSPF构成的数据报就很短。这样可以减少路由信息的通信量。

  2.划分区域

  由于要运用泛洪法所以如果网络中的路由器过多的话,那么运用OSPF效果不佳。所以当OSPF运用于规模很大的网络时,OSPF将一个自治系统在划分为若干个更小的区域。每个区域都有一个32位的标示符,如下图:

  这样泛洪法只需要在各个区域中运用,但是此时区域中的路由器只知道该区域的拓扑结构,而不知道全网的拓扑结构。为了使每个区域之间可以进行通信,OSPF运用了层次结构的区域划分。

  在上层的区域叫做主干区域(标示符0.0.0.0)。主干区域的作用就是用来连通其他在下层的区域。从其他区域来的信息都由区域边界路由器(R347)来概括,这些路由器同时也属于主干区域,是主干路由器。另外自治系统之间的信息交互使用自治系统边界路由器(R6)。

  3.OSPF的五种分组类型

  OSPF共有以下五种分组类型:

  (1)问候分组——用来发现和维持临站的可达性。

  (2)数据库描述分组——向临站给出自己的链路状态数据库中的所有链路状态项目的摘要信息(3)链路状态请求分组——向对方请求发送某些链路状态项目的详细信息。

  (4)链路状态更新分组——用洪泛法对全网跟新链路状态。

  (5)链路状态确认分组——对链路更新分组的确认。

  当某路由器的链路状态发送变化的时候就需要运用泛洪法发送更新报文,收到的路由器需要发送确认报文,确认报文只需要发送一次(下图的白箭头为确认报文)。

  以上就是网络协议OSPF内部网关协议的内容,谢谢阅读,希望能帮到大家,请继续关注脚本之家,我们会努力分享更多优秀的文章。