BFD(Bidirectional Forwarding Detection)是一种网络检测协议,它可以快速检测网络中的故障,并报告给网络管理员,以便快速处理。BFD检测的基本单位是BFD会话,而BFD会话的控制交互则通过BFD控制报文实现。本文将从多个角度分析BFD控制报文,包括其作用、报文格式、报文类型等方面。
作用
BFD控制报文是BFD会话中用于交换控制信息的数据包。它具有以下作用:
1. 启动和维护BFD会话:BFD控制报文用于启动和维护BFD会话。在BFD会话建立之前,相邻两个节点之间需要通过BFD控制报文交换配置信息,以便双方可以了解彼此的BFD参数设置,并在此基础上启动会话。
2. 检测网络故障:BFD控制报文用于检测网络故障。在BFD会话建立后,相邻两个节点之间可以通过BFD控制报文交换心跳包,以便及时发现网络故障并报告给网络管理员。心跳包的发送频率取决于会话的参数设置,一般为几毫秒到几秒钟不等。
报文格式
BFD控制报文的格式如下:
图1 BFD控制报文格式
BFD控制报文共有三个部分:公共报文头、状态标志和可选的参数。其中,公共报文头是必需的,而状态标志和参数则是可选的。
1. 公共报文头:公共报文头包含了报文类型、版本号、会话标识等信息。其中,报文类型指出了该报文的用途,版本号指出了BFD协议的版本,会话标识用于标识当前报文所对应的BFD会话。
2. 状态标志:状态标志用来表明当前BFD会话的状态。其中,状态标志共有六个比特位,分别表示了初始化、未检测到故障、检测到故障、未同步、来自远端的未同步、维护等状态。
3. 参数:参数是可选的,用来传递和设置BFD会话的参数。其中,参数包括了检测间隔、检测重试次数、最小接收时间等信息。
报文类型
BFD控制报文共有八种不同类型,分别是:
1. 发送报文请求报文(Echo Request):用于发起一次控制报文测试。该报文的作用相当于BFD会话中的心跳包,通过评估返回的Echo Response报文的时间来计算网络故障检测时间。
2. 发送报文回答报文(Echo Response):用于回复Echo Request报文。
3. 状态报告请求报文(State Request):用于查询与BFD会话相关的状态信息。
4. 状态报告回答报文(State Response):用于回复State Request报文。
5. 调试报文请求报文(Poll):用于测试BFD会话的状态。
6. 调试报文回答报文(Final):用于回复Poll报文。
7. 控制报文(Control):用于传递BFD会话所需的状态信息。
8. 非控制报文(Reserved):用于传递数据信息。
扫码咨询 领取资料