一种双向转发检测方法及装置
技术领域
本申请涉及通信技术领域,尤其涉及一种双向转发检测方法及装置。
背景技术
双向转发检测(Bidirectional Forwarding Detection,简称BFD)用于实现链路的快速检测。在实际应用中,两个网络设备之间通过三次握手使得BFD会话迁移至UP状态,完成BFD会话的建立。在BFD会话建立之后,两个网络设备之间周期性互相发送BFD控制报文,以维持BFD会话(处于UP状态)。如果在检测时间内,一端网络设备没有接收到对端网络设备发送的BFD控制报文,则说明两个网络设备之间的链路出现故障。
目前,在网络设备维持BFD会话处于UP状态的过程中,BFD控制报文存在无用的字段,使得网络带宽的利用率较低。
发明内容
本申请提供一种双向转发检测方法及装置,用于解决网络设备在维持BFD会话处于UP状态的过程中,由于标准BFD控制报文存在无用的字段,造成网络带宽的利用率较低的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种双向转发检测方法,所述方法包括:
在BFD会话建立过程中,接收对端设备发送的标准BFD控制报文;
若所述标准BFD控制报文携带的诊断码Diag字段中包括预设标识信息,则确定所述对端设备支持简化BFD控制报文;
在与所述对端设备建立BFD会话后,向所述对端设备发送简化BFD控制报文,以维持所述BFD会话处于UP状态;
其中,所述简化BFD控制报文携带的字段信息少于所述标准BFD控制报文携带的字段信息。
基于上述方法,在BFD会话建立过程中,网络设备确定对端设备支持简化BFD控制报文。由于简化BFD控制报文携带的字段信息少于所述标准控制报文携带的字段信息,因此简化BFD控制报文占用的网络带宽较少。这样,在与对端设备建立BFD会话后,网络设备向对端设备发送简化BFD控制报文,能够提高网络带宽的利用率。
第二方面,本申请提供一种双向转发检测装置,所述装置包括:
接收模块,用于在BFD会话建立过程中,接收对端设备发送的标准BFD控制报文;
处理模块,用于当所述标准BFD控制报文携带的诊断码Diag字段中包括预设标识信息时,确定所述对端设备支持简化BFD控制报文;
发送模块,用于在与所述对端设备建立BFD会话后,向所述对端设备发送简化BFD控制报文,以维持所述BFD会话处于UP状态;
其中,所述简化BFD控制报文携带的字段信息少于所述标准BFD控制报文携带的字段信息。
第三方面,本申请提供一种网络设备,所述网络设备包括:处理器、收发器和存储器。其中,存储器存储有一个或多个程序,一个或多个程序包括计算机可执行指令,当该网络设备运行时,处理器执行该存储器存储的该计算机可执行指令,以使该网络设备执行第一方面及其各种可选的实现方式中任意之一所述的双向转发检测方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当该计算机设备执行该指令时,该计算机设备执行上述第一方面及其各种可选的实现方式中任意之一所述的双向转发检测方法。
其中,上述第二方面至第四方面对应的有益效果,可参见第一方面的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1为标准BFD控制报文的字段格式的示意图;
图2为本申请实施例提供的一种简化BFD控制报文的字段格式的示意图;
图3为本申请实施例提供的一种双向转发检测方法的流程图;
图4为本申请实施例提供的另一种双向转发检测方法的流程图;
图5为本申请实施例提供的一种双向转发检测装置的结构示意图;
图6为本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,为国际互联网工程任务组(The Internet Engineering Task Force,IETF)标准RFC5880定义的BFD控制报文(为了便于描述,下文简称为:标准BFD控制报文)的字段格式。其中,各字段表示的具体含义如下表一所示。
表一
可见,标准BFD控制报文中存在以下字段:本端鉴别值(My Discriminator)字段、对端鉴别值(Your Discriminator)字段、本端支持的最小BFD控制报文发送时间间隔(Desired Min TX Interval)字段、本端支持的最小BFD控制报文接收时间间隔(RequiredMin RX Interval)字段以及本端支持的最小BFD回声报文接收时间间隔(Required MinEcho RX Interval)字段。网络设备利用这些字段在三次握手过程中进行BFD会话参数的协商。但是,在BFD会话建立(UP)之后,一端的网络设备接收到另一端网络设备发送的标准BFD控制报文,网络设备仅需读取标准BFD控制报文中的Your Discriminator字段就能匹配对应的BFD会话,从而重置该BFD会话的超时定时器,以维持该BFD会话(处于UP状态)。
在BFD会话处于UP状态时,对于网络设备来说,标准BFD控制报文中的MyDiscriminator字段、Desired Min TX Interval字段、Required Min RX Interval字段以及Required Min Echo RX Interval字段均是无用的字段。由于网络设备在传输标准BFD控制报文时,这些无用的字段同样要占用一定的网络宽带,因此造成了无谓的网络带宽资源的浪费,降低网络带宽的利用率。
为了解决上述问题,本申请提供一种简化BFD控制报文,应用在网络设备维持BFD会话处于UP状态的过程中。该简化BFD控制报文携带的字段信息少于所述标准BFD控制报文携带的字段信息。
一种可选实现方式中,该简化BFD控制报文携带有Your Discriminator字段。并且,该简化BFD控制报文不包括以下字段中的至少一个:My Discriminator字段、DesiredMin TX Interval字段、Required Min RX Interval字段以及Required MinEcho RXInterval字段。
示例性的,图2为一种简化BFD控制报文的字段格式。该简化BFD控制报文包括YourDiscriminator字段,但不包括My Discriminator字段、Desired Min TXInterval字段、Required Min RX Interval字段以及Required Min Echo RX Interval字段。
结合图2所示的简化BFD控制报文,举例说明简化BFD控制报文与标准BFD控制报文占用网络带宽的情况。假设在以太网中,BFD会话的两端网络设备经过协商后确定报文发送时间间隔为10ms,而网络设备在传输标准BFD控制报文时,一个数据包的长度为70字节(以太网封装18字节+网际互联协议第4版
(Internet Protocol 4,IPv4)首部20字节+用户数据报协议(UserDatagramProtocol,UDP)首部8字节+标准BFD控制报文24字节),因此占用的单向网络带宽为70*8*100=56kbps。网络设备在传输简化BFD控制报文时,一个数据包的长度为54字节(以太网封装18字节+IPv4首部20字节+UDP首部8字节+简化BFD控制报文8字节),因此占用的单向网络带宽为:54*8*100=43.2kbps。可见,相比于标准BFD控制报文,简化BFD控制报文能够节约23%左右的网络带宽资源。
基于上述简化BFD控制报文,本申请实施例提供一种双向转发检测方法,所述方法的执行主体是网络设备,例如路由器、交换机等。如图3所示,所述方法包括:
101、在BFD会话建立过程中,接收对端设备发送的标准BFD控制报文。
其中,上述对端设备为路由器、交换机等设备。
102、若所述标准BFD控制报文携带的diag字段中包括预设标识信息,则确定所述对端设备支持简化BFD控制报文。
目前,标准BFD控制报文中diag字段的取值与含义的对应关系如表二所示。
表二
取值 |
含义 |
0 |
无诊断码 |
1 |
控制检测时间超时 |
2 |
Echo功能失败 |
3 |
邻居信令表明会话down |
4 |
转发平面重置 |
5 |
路径down |
6 |
串联路径down |
7 |
管理down |
8 |
反向串联路径down |
9-31 |
预留编码 |
可见,在diag字段中,9-31的取值是未使用的预留编码。因此,在本申请实施例中,从9-31中选择一个数值作为预设标识信息。例如,该预设标识信息可以为31。
示例性的,假设该预设标识信息为31,若网络设备接收到对端设备发送的标准BFD控制报文中diag字段的取值为31,则网络设备确定对端设备支持简化BFD控制报文。
值得说明的是,在BFD会话建立过程中,若网络设备也支持简化BFD控制报文,则网络设备也会向对端设备发送diag字段中包括预设标识信息的标准BFD控制报文,以便于对端设备获知网络设备支持简化BFD控制报文。可选的,在网络设备和对端设备均获知对方支持简化BFD控制报文的情况下,网络设备执行下述步骤103。
103、在与所述对端设备建立BFD会话后,向所述对端设备发送简化BFD控制报文,以维持所述BFD会话处于UP状态。
可以理解的是,若网络设备不支持简化BFD控制报文,或对端设备不支持简化BFD控制报文,则在网络设备与对端设备建立BFD会话后,所述网络设备向对端设备发送标准BFD控制报文,以维持所述对端设备的BFD会话处于UP状态。
下面将结合具体应用场景,对图3所示的方法进行具体说明。如图4所示,为本申请实施例提供的另一种双向转发检测的方法,所述方法包括:步骤201-210。
201、网络设备创建本地的BFD会话。
此时,该BFD会话处于down状态。
202、对端设备创建本地的BFD会话。
此时,该BFD会话处于down状态。
203、网络设备向对端设备发送Sta字段的取值为1,Diag字段的取值为31的标准BFD控制报文。
由表1可知,标准BFD控制报文的Sta字段的取值为1,说明网络设备的BFD会话处于down状态。另外,标准BFD控制报文的Diag字段的取值为31,说明网络设备支持简化BFD控制报文。
204、对端设备的BFD会话切换至Init状态。
对端设备在接收到网络设备发送的标准BFD控制报文后,通过解析该标准BDF控制报文,获知该标准BFD控制报文的Sta字段的取值为1,因此对端设备的BDF会话切换至Init状态。对端设备还通过该标准BFD控制报文的Diag字段的取值为31,获知网络设备支持简化BFD控制报文。
205、对端设备向网络设备发送Sta字段的取值为2,Diag字段的取值为31的标准BFD控制报文。
由表1可知,标准BFD控制报文的Sta字段的取值为2,说明对端设备的BFD会话处于Init状态。另外,标准BFD控制报文的Diag字段的取值为31,说明对端设备支持简化BFD控制报文。
206、网络设备的BFD会话切换至UP状态。
网络设备在接收到对端设备发送的标准BFD控制报文后,通过解析该标准BDF控制报文,获知该标准BFD控制报文的Sta字段的取值为2,因此网络设备的BDF会话切换至UP状态。网络设备还通过该标准BFD控制报文的Diag字段的取值为31,获知对端设备支持简化BFD控制报文。
207、网络设备向对端设备发送Sta字段的取值为3的标准BFD控制报文。
由表1可知,标准BFD控制报文的Sta字段的取值为3,说明网络设备的BFD会话处于UP状态。
208、对端设备的BFD会话切换至UP状态。
至此,网络设备与对端设备完成三次握手的过程,成功建立BFD会话。在三次握手的过程中,网络设备与对端设备互相协商了BFD会话的参数,并且,网络设备与对端设备均获知对方支持简化BFD控制报文。因此,下面执行步骤209-210,以维持BFD会话处于UP状态。值得说明的是,本申请实施例不限定步骤209、210的执行顺序上。即可以先执行步骤209再执行步骤210,或先执行步骤210再执行步骤209。
209、对端设备定时向网络设备发送Sta字段的取值为3的简化BFD控制报文,以维持BFD会话处于UP状态。
由表1可知,Your Discriminator字段是BFD会话的唯一标识,可用于区分不同的BFD会话,因此在接收到对端设备发送的简化BFD控制报文之后,网络设备根据该简化BFD控制报文携带的Your Discriminator字段,匹配对应的BFD会话,从而重置该BFD会话的超时定时器,从而维持该BFD会话处于UP状态。
另外,在本申请实施例中,简化BFD控制报文中长度length字段的取值为简化BFD控制报文字节数,所述length字段的取值用于确定BFD控制报文是否为简化BFD控制报文。示例性的,图1所示的标准简化BFD控制报文的length字段的取值为24。图2所示的简化BFD控制报文的length字段的取值为8。若网络设备接收到length字段的取值为8的BFD控制报文,网络设备能够确定该BFD控制报文为简化BFD控制报文。
210、网络设备定时向对端设备发送Sta字段的取值为3的简化BFD控制报文,以维持BFD会话处于UP状态。
在接收到网络设备发送的简化BFD控制报文后,对端设备根据该简化BFD控制报文携带的Your Discriminator字段,匹配对应的BFD会话,从而重置该BFD会话的超时定时器,以避免超时定时器超时,从而维持该BFD会话处于UP状态。
可选的,在BFD会话的参数发生改变后,网络设备与对端设备需要重新协商BFD会话的参数。在这种情况下,网络设备与对端设备需要恢复使用标准BFD控制报文来进行参数的协商。因此,网络设备停止向对端设备发送简化BFD控制报文,对端设备也停止向网络设备发送简化BFD控制报文,直至BFD会话的参数协商完毕。
可选的,在BFD会话的状态发生改变后,例如BFD会话从UP状态切换至Down状态,网络设备与对端设备需要重新经过BFD会话建立过程,以使得BFD会话恢复UP状态。在这种情况下,网络设备与对端设备需要恢复使用标准BFD控制报文来进行BFD会话建立过程。因此,网络设备停止向对端设备发送简化BFD控制报文,对端设备也停止向网络设备发送简化BFD控制报文,直至BFD会话重新UP。
本申请实施例可以根据上述方法示例对网络设备进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图5所示,本申请实施例提供一种双向转发检测装置,所述装置包括:
接收模块11,用于在BFD会话建立过程中,接收对端设备发送的标准BFD控制报文。
处理模块12,用于当所述标准BFD控制报文携带的Diag字段中包括预设标识信息时,确定所述对端设备支持简化BFD控制报文。
发送模块13,用于在与所述对端设备建立BFD会话后,向所述对端设备发送简化BFD控制报文,以维持所述BFD会话处于UP状态;
其中,所述简化BFD控制报文携带的字段信息少于所述标准BFD控制报文携带的字段信息。
一种可能的实现方式中,所述接收模块11,还用于在所述BFD会话建立后,接收所述对端设备发送的简化BFD控制报文;所述简化BFD控制报文携带YourDiscriminator字段,所述简化BFD控制报文不包括以下字段中的至少一个:MyDiscriminator字段、Desired MinTX Interval字段、Required Min RX Interval字段以及Required Min Echo RX Interval字段。所述处理模块12,还用于根据所述简化BFD控制报文携带的Your Discriminator字段,匹配所述BFD会话,重置所述BFD会话的超时定时器,以维持所述BFD会话处于UP状态。
可选的,所述简化BFD控制报文中长度length字段的取值为简化BFD控制报文字节数,所述length字段的取值用于确定BFD控制报文是否为简化BFD控制报文。
一种可选的实现方式中,所述发送模块13,还用于当所述BFD会话的状态发生改变时,停止向所述对端设备发送简化BFD控制报文,直至BFD会话重新UP。
一种可选的实现方式中,所述发送模块13,还用于当BFD会话的参数发生改变时,停止向所述对端设备发送简化BFD控制报文,直至BFD会话的参数协商完毕。
在采用集成的单元的情况下,图6示出了上述实施例中所涉及的网络设备的一种可能的结构示意图。所述网络设备包括:处理单元21。所述处理单元21用于执行上述处理模块12执行的步骤,和/或用于执行本文所描述的技术的其它过程。所述网络设备还可以包括通信单元22、存储单元23和总线24。其中,所述通信单元22用于执行上述接收模块11、发送模块13执行的步骤,和/或用于执行本文所描述的技术的其它过程。所述通信单元22还用于支持网络设备与其他设备的通信。存储单元23用于存储网络设备的程序代码和数据。
其中,上述处理单元21可以是网络设备中的处理器或控制器,该处理器或控制器可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器或控制器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合等。
通信单元22可以是网络设备中的收发器、收发电路或系统接口等。
存储单元23可以是网络设备中的存储器等,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
总线24可以是扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。总线24可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本说明书中的各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序加载到计算机上被计算机执行时,使计算机执行上述双向转发检测方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。