一、题目
OSPF报文类型有多少种?( )
A、2
B、4
C、5
D、3
二、答案
C
三、解析
OSPF报文类型
- Hello报文
- 作用:用于邻居发现与保持邻居关系。每个路由器在OSPF网络中定期发送Hello报文,通过Hello报文可以确认相邻路由器的可达性,并协商路由器的状态。Hello报文有助于路由器建立邻居关系,进而交换路由信息。
- 发送方式:在支持组播和广播的网络上,Hello报文以组播形式发送到所有OSPF路由器。
- DD(Database Description)报文
- 作用:用于数据库描述,即交换链路状态数据库(LSDB)信息。在OSPF网络中,每个路由器都会维护一个LSDB来记录网络拓扑信息,DD报文用于同步这些数据库信息,以保持所有路由器之间的数据库一致性。
- 发送方式:两台设备在邻接关系初始化时,用DD报文描述本端设备的LSDB,进行数据库的同步。在交换DD报文的过程中,一台设备作为Master,另一台作为Slave,通过序列号确保报文传输的可靠性和完整性。
- LSR(Link State Request)报文
- 作用:用于请求链路状态数据。当一个路由器需要某些邻居路由器的链路状态信息时,会发送LSR报文来请求这些信息。
- 发送方式:LSR报文包含所需LSA的摘要信息,路由器通过发送LSR报文来请求特定的链路状态记录。
- LSU(Link State Update)报文
- 作用:用于发送链路状态更新信息。当一个路由器有新的链路状态信息需要告知邻居路由器时,会发送LSU报文来更新链路状态数据库。
- 发送方式:LSU报文包含有关链路状态信息的详细描述,用于更新本地和邻居路由器的数据库。在支持组播和广播的网络中,LSU报文以组播形式将LSA泛洪出去。
- LSAck(Link State Acknowledgment)报文
- 作用:用于确认收到的LSU报文。当一个路由器接收到LSU报文后,会发送LSAck报文作为确认,以告知发送者LSU报文已正确接收。
- 发送方式:LSAck报文包含需要确认的LSA的头部信息,用于确认目的LSR,确保LSU报文的可靠传输。LSAck报文根据不同的链路类型以单播或组播的形式发送。
综上所述,OSPF协议中共有5种报文类型,它们各自承担着不同的功能,共同协作以实现路由器之间的信息交换和数据库同步,从而维护网络的稳定性和可靠性。
四、扩展——Hello包
Hello报文知识点扩展
一、Hello报文的作用
Hello报文在OSPF协议中扮演着多重角色,主要包括:
- 邻居发现:路由器通过发送Hello报文来发现同一区域内的其他OSPF路由器,这是建立邻居关系的第一步。
- 维护邻居关系:路由器定期发送Hello报文,以确认与邻居路由器的连接状态是否仍然活跃。如果在指定的时间内未收到邻居的Hello报文,则认为邻居失效。
- 选举DR/BDR:在广播型或多路访问网络中,Hello报文还用于选举指定路由器(DR)和备份指定路由器(BDR)。DR负责在该网络中与所有其他路由器交换路由信息,以减少网络中路由信息的泛洪量;BDR则作为DR的备份,以防DR失效。
- 保证邻居的双向通信:通过比较Hello报文中的信息,路由器可以确认与邻居之间的双向通信是否正常。这是建立邻接关系的重要前提。
二、Hello报文的发送与接收
- 发送方式:在支持组播和广播的网络上,Hello报文通常以组播形式发送到所有OSPF路由器。组播地址通常为224.0.0.5(对于IPv4网络)。在点到点网络中,Hello报文则通过单播形式发送给对端路由器。
- 接收处理:当路由器接收到Hello报文时,它会检查报文中的参数,如区域ID、认证信息等,以确保报文来自同一区域内的合法邻居。如果参数匹配,路由器将更新邻居信息,并根据需要调整邻居状态。
三、Hello报文中的关键字段
Hello报文中包含多个关键字段,用于邻居发现和状态维护,主要包括:
- 路由器ID:唯一标识一个OSPF路由器。
- 网络掩码:表示发送Hello报文接口所在的子网掩码。
- Hello间隔时间:路由器发送Hello报文的时间间隔。
- 路由器失效时间:如果在指定的时间内未收到邻居的Hello报文,则认为邻居失效。
- DR/BDR接口地址:指定路由器和备份指定路由器的接口地址。
- 邻居列表:包含路由器已知的邻居信息,以路由器ID标识。