计网第四章(网络层)(八)(最短路径优先协议OSPF)

在第七节(计网第四章(网络层)(七)_永无魇足的博客-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)相邻的两个路由器之间周期性地发送问候分组。以便建立和维护邻居关系。

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

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

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

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

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

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

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

相关推荐
非凡大爹10 小时前
实验十 华为路由器和交换机实现RIP 动态路由协议配置实验指导书
运维·网络·计算机网络·华为
Aaswk10 小时前
计算机网络概述
网络·网络协议·tcp/ip·计算机网络·http·dubbo
梦奇不是胖猫10 小时前
[ 计算机网络 | 第四章 ] 网络层 02 网际协议IP
运维·服务器·网络·网络协议·tcp/ip·计算机网络
艾莉丝努力练剑10 小时前
【Linux网络】Linux 网络编程:传输层协议TCP(五)
linux·运维·网络·计算机网络·udp
小小工匠1 天前
计算机网络 - 彻底理解 CIDR、子网掩码与网段划分
计算机网络·子网掩码·cidr·网段划分
Sagittarius_A*2 天前
H3CSE 高性能园区网:SNMP 网络管理协议详解
网络·计算机网络·安全·h3cse
似水এ᭄往昔2 天前
【Linux网络编程】--计算机网络基础
linux·网络·计算机网络
梦奇不是胖猫2 天前
[ 计算机网络 | 第四章 ] 网络层 01 概述
网络·网络协议·计算机网络
艾莉丝努力练剑2 天前
【Linux网络】Linux 网络编程:传输层TCP(二)
linux·运维·服务器·网络·tcp/ip·计算机网络
basketball6163 天前
计算机网络 物理层通信计算知识点总结
计算机网络