OSPF协议介绍❶(数据包、链路状态数据结构、工作过程的七个状态、三张相关表、网络类型)
OSPF(Open Shortest Path First开放式最短路径优先)
是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。------以上资料来自于百度百科。

组播更新地址:224.0.0.5/6
OSPF 数据包
OSPF执行过程中的多种功能
1.发现邻居并建立邻接
2.泛洪LSU同步LSDB
3.SPF算法计算目的已知目的的最佳路径
4.最佳路径填充到路由表

OSPF协议依靠五种不同类型的分组来建立邻接关系和交换路由信息,即问候分组、数据库描述分组、链路状态请求分组、链路状态更新分组和链路状态确认分组。
1、问候(Hello)分组
OSPF使用Hello分组建立和维护邻接关系。在一个路由器能够给其他路由器分发它的邻居信息前,必须先问候它的邻居们。
2、数据库描述(Data base Description,DBD)分组
DBD分组不包含完整的“链路状态数据库”信息,只包含数据库中每个条目的概要。当一个路由器首次连入网络,或者刚刚从故障中恢复时,它需要完整的“链路状态数据库”信息。此时,该路由器首先通过hello分组与邻居们建立双向通信关系,然后将会收到每个邻居反馈的DBD分组。新连入的这个路由器会检查所有概要,然后发送一个或多个链路状态请求分组,取回完整的条目信息。
3、链路状态请求(Link State Request,LSR)分组
LSR分组用来请求邻居发送其链路状态数据库中某些条目的详细信息。当一个路由器与邻居交换了数据库描述分组后,如果发现它的链路状态数据库缺少某些条目或某些条目已过期,就使用LSR分组来取得邻居链路状态数据库中较新的部分。
4、链路状态更新(Link State Update,LSU)分组
LSU分组被用来应答链路状态请求分组,也可以在链路状态发生变化时实现洪泛(flooding)。在网络运行过程中,只要一个路由器的链路状态发生变化,该路由器就要使用LSU,用洪泛法向全网更新链路状态。
5、链路状态确认(Link State Acknowledgment,LSAck)分组
LSAck分组被用来应答链路状态更新分组,对其进行确认,从而使得链路状态更新分组采用的洪泛法变得可靠。
接收LSU的动作:
1)如果LSDB中没有这样的条目,则将其加入到LSDB中,返回一个链路状态确认(LSAck),将该信息扩散到其他路由器,运行SPF,并更新其路由表。
2)如果有这样的条目,且LSU中包含的信息与之相同,则忽略它。
3)如果有这样的条目,但是LSU中包含的信息更新,则将其加入到LSDB中,返回一个LSAck,将该信息扩散到其他路由器,运行SPF,并更新其路由表。
4)如果有这样的条目,但LSU中包含的信息更旧,则将一个包含新信息的LSU发送给发送方。
其实可以这么理解 以吃瓜的心态来理解 可以分为这四种情况
第一种他传过来的瓜 我不知道,我记下来,不仅自己知道了,我还要传递给其他的好朋友
第二种他传过来的瓜 我知道 那我就不管了
第三种他传过来的瓜比我知道的瓜大 ,我记下来,不仅传递给其他的好朋友,还要给他发个确认消息说句牛x
第四种他传过来的瓜没我知道的瓜大,那我得给他分享最新最大的瓜

OSPF数据包字段解释
OSPF包结构如上图所示,IP报头中的协议标识符89表示OSPF分组。所有OSPF分组开头的报头格式都相同,该报头中包含以下字段。
版本号:对于OSPF第2版(用于IPv4的最新OSPF版本),设置为2。后面会介绍用于IPv6的OSPF第3版。
分组类型:区分5种OSPF分组的长度,单位为字节。
分组长度:OSPF分组的长度,单位为字节。
路由器ID:标识最初发送分组的路由器。
区域ID:指出分组来自哪个区域。
校验和:用于分组报头错误检测,确保OSPF分组在传输过程中未受损。
身份验证类型:一个OSPF选项,指出路由器不进行身份验证、使用明文密码进行身份验证还是使用加密的消息摘要5(MD5)进行身份验证。
身份验证:同身份验证类型结合使用。
数据:包含的信息随OSPF分组类型而异。
1.对于Hello分组,包含一个由已知邻居组成的列表。
2.对于DBD分组,包含LSDB摘要,其中包括所有已知路由器的ID、最后使用的序列号以及一些其他字段。
3.对于LSR分组,包含需要的LSU类型和能够提供所需LSU的路由器ID。
4.LSU分组,包含完整的LSA条目,一个OSPF更新分组中可以包含多个LSA条目。
5.对于LSAck分组,该字段为空。
OSPF 网络类型
根据路由器所连接的物理网络不同,OSPF将网络划分为四种类型:
广播多路访问型(Broadcast multiAccess)、
非广播多路访问型(None Broadcast MultiAccess,NBMA)、
点到点型(Point-to-Point)、
点到多点型(Point-to-MultiPoint)。
广播多路访问型网络如:Ethernet、Token Ring、FDDI。
NBMA型网络如:Frame Relay、X.25、SMDS。
Point-to-Point型网络如:PPP、HDLC。
OSPF 三张表




OSPF 七个状态机


OSPF 配置



参考文档:
1.链路状态数据的结构和五种数据包
2.马素刚.路由协议OSPF的研究与仿真[J].计算机系统应用,2016,25(5):228-231.
