计网第四章(网络层)(八)

在第七节(计网第四章(网络层)(七)_永无魇足的博客-CSDN博客)我们总结了路由信息协议RIP。在最后我们提到了RIP协议有坏消息传的慢的问题,这是距离向量算法的本质决定的,所以这种问题无法彻底避免。

既然基于距离向量无法彻底避免产生路由环路,那么就不基于它了。

一、最短路径优先协议OSPF

“最短路径”是因为使用了最短路径算法Dijkstra提出的最短路径算法SPF。

OSPF是基于链路状态的,由于采用SPF算法计算路由,所以从算法上就保证了不会产生路由环路问题。

在第七节我们提到,RIP协议只适合小规模网络。但是OSPF算法不限制网络规模,更新效率高,收敛速度快。

1.链路状态:

指本路由器与都与哪些路由器相邻,以及相应链路的“代价”(“代价”用来表示费用、距离、时延、带宽等,这是由网络管理人员决定的)。

2.基本工作原理

(1)Hello分组

OSPF相邻路由器之间通过交互问候(Hello)分组,建立和维护邻居关系。

Hello分组封装在IP数据报中,发往组播地址224.0.0.5。

发送周期为10秒。

如果40秒没有收到邻居路由器的Hello分组,就认为该邻居路由器不可达。

每个路由器都有一张邻居表。表里每一条条目都包括邻居ID,接口和“死亡”倒计时。在“死亡倒计时”到达0之前,如果再次收到来自条目对应的路由器传来的Hello分组,就会重启该条目的40秒倒计时。

(2)链路状态LSA

使用OSPF的每个路由器都会产生链路状态通告LSA,LSA包括直连网络的链路状态信息和邻居路由器的链路状态信息。

LSA被封装在链路状态更新分组LSU中,采用洪泛法发送(就是之前提到过的泛洪,路由器收到分组后,除了接收到该分组的接口,其余接口都转发)。

(3)链路状态数据库LSDB

使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA(链路状态通告)。

就好像路由表一样,现在表成了LSDB,里面的条目变成了LSA。

通过各路由器洪泛发送装有自己的LSA的LSU分组,各路由器的LSDB最终达到一致。

使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各自到达其他路由器的最短路径。

3.五种分组

(1)问候分组

即前面提到的Hello分组,用来发现和维护邻居路由器的可达性。

(2)数据库描述分组

向邻居路由器给出自己LSDB中的所有链路状态项目的摘要信息。

(3)链路状态请求分组

向邻居路由器发送某些链路状态项目的详细信息。

(4)链路状态更新分组

路由器使用这种分组将其链路状态进行洪泛发送,

(5)链路状态确认分组

对链路状态更新分组的确认分组。

4.基本工作过程

如图:(1)相邻的两个路由器之间周期性地发送问候分组。以便建立和维护邻居关系。

计网第四章(网络层)(八)_第1张图片

(2)建立邻居关系后,给邻居路由器发送数据库描述分组。里面就有自己LSDB里面的所有链路状态的摘要信息。

计网第四章(网络层)(八)_第2张图片

 (3)假设B收到来自A的数据库描述分组后,发现自己缺少其中某些链路状态项目。 便会向A发送链路状态请求分组。

计网第四章(网络层)(八)_第3张图片

(4)A收到请求分组后,将B所需的链路状态项目的详细信息封装到链路状态更新分组中 ,然后发送给B。

计网第四章(网络层)(八)_第4张图片

(5)B收到后,将这些链路状态项目的详细信息 添加到自己的LSDB中,随后向A发送链路确认分组。

计网第四章(网络层)(八)_第5张图片

 同样地,A也会经历类似的上述过程获取到B中自己所缺的链路状态项目的详细信息。

最后,就实现了各路由器的LSDB达到一致。

需要注意的是:每30分钟或者链路状态发生变化的时候,路由器都会发送链路状态更新分组,收到该分组的其余路由器会通过洪泛方式转发该分组。并给该路由器发回链路状态确认分组。

你可能感兴趣的:(计算机网络第八版(谢希仁),计算机网络)