OSPF五种报文分别是:
hello报文,DBD数据库描述报文,LSR链路状态请求报文,LSU链路状态更新报文,LSACK链路状态确认包
以下是这五种报文的详细解读:
1. Hello报文
-
作用:
用于邻居的发现、建立和维护。通过周期性发送Hello报文,路由器可以确认相邻路由器的存在,并协商关键参数(如区域ID、认证信息等)。 -
关键字段:
-
Router ID:发送路由器的唯一标识。
-
Hello/Dead Interval:Hello报文发送间隔和邻居失效时间。
-
Neighbor List:已知邻居的Router ID列表。
-
Network Mask:接口的子网掩码(广播网络需一致)。
-
-
特点:
-
仅在直连链路上发送(组播地址
224.0.0.5
)。 -
若参数不匹配(如区域ID不同),邻居关系无法建立。
-
通俗点说:
Hello报文
👋作用:打招呼,确认邻居关系。
📢类比:就像你搬新家后,定期和邻居问好:“嘿,我住这儿,你在吗?”
📍用途:发现相邻路由器,维持邻居状态(默认10秒发一次,超40秒没收到就认为对方“失联”)。
版本为2是ipv4,版本为3是ipv6
Area0为骨干区域
没有开启认证
发送频率为10秒钟,40秒接收不到回复会死亡
2. Database Description (DD) 报文
-
作用:
在邻居关系建立后(达到2-Way
或ExStart
状态),用于交换链路状态数据库(LSDB)的摘要信息(即LSA头部),确保双方数据库同步。 -
关键字段:
-
Sequence Number:序列号用于确保报文顺序。
-
I/M/MS比特:
-
I
(Initial):表示第一个DD报文。 -
-
M
(More):后续还有更多DD报文。 -
-
MS
(Master/Slave):主从协商标志(主路由器控制同步过程)。 -
-
-
-
特点:
-
通过主从路由器协商确保DD报文有序传输。
-
仅包含LSA的摘要(类型、Router ID、序列号等),不携带完整LSA。
-
通俗点说:
DD报文(Database Description)
📚作用:交换网络拓扑的“目录清单”。
📋类比:邻居互相展示自家藏书目录:“我有A、B、C三本书”,对方对比后发现自己缺哪本。
📌用途:初次建立邻居时,快速同步链路状态数据库(LSDB)的摘要,避免重复传输。
3. Link State Request (LSR) 报文
-
作用:
在收到DD报文后,路由器对比本地LSDB,若发现缺失或过时的LSA,则通过LSR主动请求具体的LSA内容。 -
关键字段:
-
LSA Type:请求的LSA类型(如Router-LSA、Network-LSA等)。
-
Link State ID + Advertising Router:唯一标识一个LSA。
-
-
特点:
-
仅在
Loading
状态下发送,用于按需请求缺失的LSA。
-
通俗点说:
LSR报文(Link State Request)
🙋作用:主动请求缺失的信息。
📩类比:发现邻居有本《网络秘籍》自己缺了,直接说:“请把这本书借我看看”。
🔍用途:根据DD报文对比后,精准请求需要的链路状态详情。
4. Link State Update (LSU) 报文
-
作用:
响应LSR请求或主动触发更新(如链路状态变化),携带一个或多个完整的LSA(链路状态通告)。 -
关键字段:
-
LSA Count:报文中包含的LSA数量。
-
LSA List:具体的LSA内容(如链路类型、度量值等)。
-
-
特点:
-
通过组播发送(
224.0.0.5
或224.0.0.6
,后者用于DR/BDR场景)。 -
接收方需回复LSAck确认。
-
通俗点说:
LSU报文(Link State Update)
📦作用:发送具体的网络状态数据包。
📖类比:邻居把《网络秘籍》整本书递给你:“给,这是你要的内容”。
🔄用途:携带LSA(链路状态通告,即具体路由信息)进行更新,同步最新网络变化。
5. Link State Acknowledgment (LSAck) 报文
-
作用:
对接收到的LSU报文进行确认,确保可靠传输(类似TCP的ACK机制)。 -
关键字段:
-
LSA Headers:需确认的LSA头部列表(无需完整LSA内容)。
-
-
特点:
-
可通过单播或组播发送。
-
若未收到LSAck,发送方会重传LSU。
-
通俗点说:
LSAck报文(Link State Acknowledgment)
✅作用:确认收到信息,避免丢包。
📲类比:收到快递后回复短信:“包裹已签收,谢谢!”。
📡用途:确保LSU报文可靠传输,若未收到确认,发送方会重传。