列举ospf的5种报文类型_OSPF-5种报文、3个阶段、3张表

本文详细解析了OSPF协议的运作过程,包括邻居发现、路由发现和路由选择3个阶段,以及邻居表、拓扑表和全局路由表3张关键表。重点介绍了OSPF的5种报文类型:Hello、DBD、LSR、LSU和LSAck,详述了它们的功能和报文头部结构,有助于深入理解OSPF协议的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在理解OSPF各种报文之前,需先清楚OSPF协议,通过下面图例帮助理解(口诀:5种报文、3个阶段、3张表)

73a8c2bc427e63b4e0eb6f52a5f70fad.png

(Notice:OSPF报文头部24字节)

1、3个阶段

邻居发现阶段:    直连路由器形成邻居关系,在broadcast和NBMA中还要选举DR/BDR791d7f092a598ff1e00a44593aa37c43.png

路由发现阶段:      同一个区域内所有路由器LSDB同步c1d32d1b06a1f4b96d27b5edd604476f.png

路由选择阶段:    LSDB同步后,进行路由计算,最佳路由信息进路由表。

e00c369cfb893e869821dfecef42bb9c.png

2、3张表

邻居表(neighbor table):      OSPF用邻居机制来发现和维持路由的存在,邻居表存储了双向通信的OSPF路由器列表。

6dc75982415873a5a539af11bc076c05.png

拓扑表  LSDB:      OSPF用LSA(link state Advertisement 链路状态通告)来描述网络拓扑信息, LSA存储在LSDB中。

6fc8d33a0eda968f2be2c3ff4067bf81.png

全局路由表      路由器的全局路由表,用于数据包转发;OSPF把计算出来的路由,安装到全局路由表。

d3fe5e1deb11823b84b10e1bda574032.png

3、5种报文(Notice:每种报文都包括24字节的OSPF报文头部)

(1)Hello:建立和维护OSPF邻居关系。

2535c224ffe3caa062dea4648e07106d.png

a0cddf419b3cd56438ee667108c69547.png

OSPF报文头部分解介绍:

Version(8bit):OSPF报文的版本,最新版本是版本2

Message Type(8bit):报文的类型;1是Hello,2是DBD,3是LSR,4是LSU,5是LSAck

Packet Length(16bit):整个OSPF报文的长度(24字节头部+各类报文的长度)

Source OSPF Router(32bit):路由器的RID

Area ID(32bit):区域ID

Packet Checksum(16bit):整个报文的校验

Auth Type(16bit):认证类型;0表示没有认证,1表示简单的口令认证,2表示MD5认证

Auth Data(64bit):认证字段

Hello报文分解介绍:

Network Mask(32bit):网络掩码;如果这个掩码与接收该报文接口的掩码不一致,那么该报文将被丢弃,无法建立邻居关系

Hello Interval(16bit):发送Hello报文的间隔时间,默认为10s,广播或NMBA默认为30s,如果与接收该报文接口的Hello Interval时间不一致,同样无法建立邻居关系

Options(8bit):可选项;DC位表示是否具有支持按需电路上的OSPF能力,1支持,0不支持;NP位表示对NSSA的支持,1为NSSA区域,0为普通区域;MC位表示对IP组播的支持,E位表示对外部路由的支持能力,1支持,0不支持(Stub区域为0)

Router Priority(8bit):路由器优先级;用作DR与BDR的选举,默认为1,当为0时,说明不具备选举能力

Router Dead Interval(32bit):宣告邻居无效之前需要等待的时间,通常为4倍的Hello Interval,默认为40s,广播或NMBA默认为120s,如果双方不一致,无法建立邻居关系

Designated Router(32bit):网络中指定路由器的接口的IP地址(Notice:并不是指定路由器的RID,而且并不一定是最后选举出来的DR,如果不存在,则被置为0.0.0.0)

Backup Designated Router(32bit):网络中备用指定路由器的接口的IP地址,(Notice:并不是备用指定路由器的RID,而且并不一定是最后选举出来的BDR,如果不存在,则被置为0.0.0.0)

Active Neighbor:有效的邻居列表

(2)DBD:链路状态数据库描述信息(描述LSDB中LSA头部列表),OSPF邻居第一次建立时才交换DBD,LSR。

474ff7638491c5566ffbea76d31d3748.png

(Notice:选举Master/Slave的报文不包含LSA头部)

a254258331a4284f2e241c9738ddfcd8.png

DBD报文分解介绍:

MTU(16bit):在不分段的情况下,始发接口可接收的最大IP包大小。当报文在虚链路上传递时,这个字段是0x0000

Options(8bit):可选项。在Hello报文中已做过介绍

DB Description(8bit):前5位总是被置0,I位为1时,表示是第一个报文,为0时,表示不是第一个报文;M位为1时,表示不是最后一个报文,为0时表示是最后一个报文;MS 为1时,表示为主路由器,为0时表示为从路由器。口诀:初始情况下,器由器发送的是I、M、MS都为1的报文,表示这是第一个报文,不是最后一报文,且认为自己是主路由器。

DD Sequence(32bit):DD报文序列号,由主路由器进行确定,后续报文依次增加。

(LSA头部在以后文章中介绍)

(3)LSR:链路状态请求。向OSPF邻居请求特定的LSA。

0fcb481329e4cce34655f5b6ffbb3bc9.png

d127d57e862b8867d47e75d6b1aa171f.png

(Notice:Link-State Advertisement Type、Link-State ID、Advertising Router三个参数唯一确定的是一个LSA,而不是唯一确定一条路由。request报文请求的是LSA,并不是某条特定的路由,比如LSA-1,我们会发现,对于在路由器上network通告的路由,对端路由器只会发送一个request请求报文,来请求对端network所有通告的路由。)

Link-State Advertisement Type(32bit):链路状态类型号,主要有LSA-1(路由链路通告),LSA-2(网络链路通告),LSA-3(ABR汇总链路通告),LSA-4(ASBR汇总链路通告),LSA-5(自治系统扩展路由通告),LSA-7(非完全端区NSSA扩展)

Link-State ID(32bit):链路状态ID,每种类型的LSA定义各不相同

Advertising Router(32bit):始发LSA通行路由器的RID

2b9ab8a6be9d093c17b625937d8dc4d0.png

(4)LSU:链路状态更新(包含一条或多条LSA)。

a9a6ab17ec1a064f4bdd51137c26f2dd.png

d4fea5781b039d1c62e2d697a5b54aa9.png

Number Of LSAs:LSA的数量,一个更新报文可以携带多个LSA

(Notice:下面就是具体的LSA,将在以后的文章中介绍)

(5)LSAck:对LSU中的LSA进行确认。

815024245976ea9aa5eff4d32eb62bf1.png

802c28cd047f6bcfd61bd6f0ff53dc30.png

OSPF (开放最短路径优先) 协议是一种基于链路状态的路由协议,用于在自治系统内(例如,一个大型网络内的所有路由器都属于一个单一的管理域)计算最佳路径。OSPF 使用多种类型报文来进行信息交换,以下是 OSPF 的五种主要报文类型: 1. **Hello 报文**:这是 OSPF 协议的基本组成部分,用于建立邻居关系并维持邻接关系。当路由器启动或检测到相邻路由器的状态改变时,它会发送 Hello 报文以确认和维护其与相邻路由器之间的连接。 2. **DD (Database Description) 报文**:当路由器收到 Hello 报文并与邻居建立了邻接关系之后,就会开始交换 DD 报文。DD 报文包含描述路由器内部链路状态数据库的部分信息,包括接口的配置、链路状态 ID 等,目的是为了构建和更新 LSDB(链路状态数据库)。通过比较这些信息,路由器可以确定它们是否拥有相同的 LSDB,并在此基础上构建或更新 SPF 树。 3. **LSR (Link State Request)报文**:如果两个邻居的 DBD 数据存在差异,即它们的 LSDB 中包含的不同链路状态信息不足以满足对等体的需求,则会触发 LSR 报文的生成。LSR 报文请求特定链路状态的详细信息,以便接收端可以完整地填充其 LSDB。 4. **LSU(Link State Update)报文**:当一个路由器收到 LSR 报文并响应时,它将发送 LSU 报文。此报文包含了请求的特定链路状态数据,如新的或修改的链路状态通告。 5. **LSAck(Link State Acknowledgment)报文**:在 LSU 报文成功传输后,接收端会发送 LSAck 报文作为确认,明收到了完整的链路状态数据。这个过程对于验证链路状态数据的完整性和一致性至关重要。 以上五种报文类型共同协作,使得 OSPF 能够高效地在网络中传播和更新路由信息。需要注意的是,这些报文的交互过程确保了网络的一致性和可靠性,是 OSPF 实现其功能的关键机制之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值