OSPF报文头格式
OSPF采用IP报文直接封装协议报文,协议号为89。OSPF报文分为五种类型:Hello报文、DD报文、LSR报文、LSU报文和LSAck报文,这五种报文都具有相同的报文头格式,长度为24字节。
OSPF Hello报文格式
Hello报文是常用的一种报文,用于建立和维护邻接关系,周期性地在已启用OSPF的接口上发送。报文内容包含定时器的数值、DR、BDR以及已知的邻居信息。报文格式中包含字段解释。
OSPF DD报文格式
两台路由器在建立邻接关系后,会使用DD报文(Database DescriptionPacket)来描述各自的LSDB(Link State Database),实现数据库同步。报文内容包括LSDB中每一条LSA(Link State Advertisement)的Header,这样可以减少路由器之间的协议报文流量。在交换DD报文的过程中,一台路由器为Master,另一台为Slave,Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号进行确认。
OSPF LSR报文格式
在交换DD报文后,路由器会知道对端路由器缺少哪些LSA或哪些LSA已失效,此时发送LSR报文(Link State Request Packet)向对端请求所需LSA的摘要。LSR报文格式包含字段解释。
OSPF LSU报文格式
用于发送所需LSA或广播更新的LSA。LSU报文(Link State Update Packet)在支持组播和广播的链路上以组播形式广播LSA。为了确保可靠传输,LSAck报文用于确认LSU报文,未收到确认的LSA会进行重传,直接发送给邻居。
OSPF LSAck报文格式
用于确认收到的LSU报文,内容为需要确认的LSA的Header。LSAck(Link StateAcknowledgment Packet)报文根据不同链路以单播或组播形式发送。LSAck报文格式同样包含字段解释。
OSPF报文类型涵盖了建立和维护邻接关系、数据库同步、请求特定LSA、广播LSA更新和确认报文等关键功能,是实现OSPF协议高效运行的基础。