煤矿数据网络中BFD异步检测加速收敛的一种方法

时间:2022-03-24 06:46:35

煤矿数据网络中BFD异步检测加速收敛的一种方法

[摘 要] BFD (Bidirectional Forwarding Detection)双向转发检测是一套用来实现快速检测的国际标准协议。它有包括异步模式在内的多种检测模式,在异步模式下,如何尽快发现链路故障是一个研究重点,本文提出一种引入减小系数的加速收敛模式,采用该模式可以在不增加链路报文负荷的前提下快速检测到链路故障,为快速煤矿数据网络故障检测和修复保驾护航。

[关键词] BFD; 加速收敛; 减小系数

Abstract: BFD is a detection protocol designed to provide fast forwarding path failure detection times for all media types, encapsulations, topologies, and routing protocols. BFD supports several detection modes, such as query mode, asynchronous mode. In this article, a method of convergence acceleration will be raised to fast forwarding path failure detection more effectively in asynchronous mode.

Keywords: BFD; convergence acceleration; Reducing coefficient

目前对网络稳定性影响较大的一般是链路中断或节点失效等问题,也就是需要在出现故障时在尽可能短的时间内建立起替代通道或倒换到其他链路。目前,一些硬件如SDH等可以提供这个功能,但是对于很多硬件或者软件无法提供这个功能。IP网络并不具备毫秒级别的故障修复功能,而传统路由架构在对实时应用(如语音)进行准确故障检测方面能力有限。所以实现快速网络故障检测和修复越发显得必要。

为解决上述问题,BFD技术应用而生。BFD能够在系统之间的任何类型通道上进行故障检测,这些通道包括直接的物理链路,虚电路,隧道,MPLS LSP,多跳路由通道,以及非直接的通道。同时正是由于BFD实现故障检测的简单、单一性,致使BFD能够专注于转发故障的快速检测,帮助网络以良好QoS实现语音、视频及其它点播业务的传输,从而帮助服务提供商基于IP网的实现,为客户提供所需的高可靠性、高适用性VoIP及其它实时业务[1]。

1 BFD技术介绍

BFD (Bidirectional Forwarding Detection) 双向转发检测。是一个简单的“Hello”协议,在很多方面,它与那些著名的路由协议的邻居检测部分相似。检测双方在它们之间的所建立会话的通道上周期性的发送检测报文,如果某个系统在足够长的时间内没有收到对端的检测报文,则认为相邻系统的双向通道的某个节点发生了故障。BFD能够尽快检测到与相邻设备间的通信故障,以便能够及时采取措施,从而保证业务继续进行,减小设备故障或链路故障对业务的影响、提高网络的可用性。BFD协议描述了实现双向检测的机制,可分为两种:异步模式、查询模式。在异步模式下,系统之间相互周期性地发送BFD控制包,如果某个系统在检测时间内没有收到对端发来的BFD控制报文,就宣布会话为Down。

1.2 当前BFD存在的问题

应用BFD检测后,确实能够大大加快链路故障的发现速度,对业务的影响也可以降低到一定的程度,然而美中不足的是, 在异步检测模式下,为判断链路正常,需要定时发送检测报文。这样就带来一个矛盾,即如果需要加快故障发现速度,必然需要减小检测报文的发送间隔,而减少检测报文的发送间隔带来的恶劣后果就是会更大的占用数据的传输带宽,在链路长期稳定的情况下,这种配置极大的影响了业务带宽,是对传输资源的严重浪费。如何在尽量不多占链路带宽的前提下仍能快速发现故障,是一个很有研究价值的问题。

2 加速收敛方法

加速收敛方法正是本文提出的解决该问题的有效手段:BFD协议自身实现“智能”控制功能,当发生“疑似”链路振荡的时候,立即减小检测报文的发送间隔,尽快检测和判断出链路故障以便上层业务切换到无故障链路上。也就是加速收敛的动作完全在BFD模块内部实现,业务发起会话时,可以同时通过标志位通知BFD是否使用本文描述的加速收敛模式,如果不使用,则BFD保持标准处理流程;如果使用,则由BFD模块本身根据链路的状态进行判断,具体流程描述见后文。

在标准流程情况下,BFD的发送周期和检测时间都是不变的,当链路断链时,BFD按照前述公式计算出的检测时间进行检测,判断链路状态,期间“检测时间”是一成不变的。加速收敛模式会对标准流程进行改进和扩充,新流程如图1-2所示,虚线边框为新加入的流程。

引入参数“减小系数S”,减小系数S=(DM > 2)?(T):(1)。其中T为收敛速度,取值范围为1>T>0.5,具体取值可人为配置,T值越小收敛速度越快,T值越大收敛速度越慢。

原先在标准异步模式下,检测时间 = 接收的远端DM * max(bfd.RMRI,接收到的DMTI)。采用加速收敛方法后,流程如下:当在发送周期内没有接收到报文时,则本地减小bfd.RMRI和接收到的DMTI,即bfd.RMRI=bfd.RMRI*S,接收到的DMTI=接收到的DMTI*S,也就是相当于减小单位检测时间。如果在此期间接收到对端报文,则bfd.RMRI和接收到的DMTI恢复原值。

为保证配置加速收敛模式与标准版本BFD的兼容性,特进行如下约定:

启用R位(保留位)作为加速检测协商字段,原则如下:

1.双方会话均配置了加速收敛机制,则协商结果为双方都支持。

2.双方都未配置加速收敛机制,则协商结果为双方都不支持。

3.有一方配置加速收敛机制,另外一方未配置,则协商结果为双方都不支持。

协商流程:

A端配置为加速收敛机制,向B端发送控制报文,其中P字段和R字段置为1

B端接收到A端发来的报文后,如果本端支持加速收敛机制,则返回应答报文给A端,其中F字段和R字段均置为1;如果本端不支持加速收敛机制,同样返回应答报文给A端,其中F字段置为1,R字段置为0。A端收到B端发来的应答报文后,如果R字段为1,则不做任何处理;如果R字段为0,通过接口向上层业务反馈“对端不支持加速收敛机制”,流程结束。

3 应用情形分析

假设设备A、B均已采用加速收敛方法,如图3所示。

若在链路收发方向均发生中断(即①处和②处均故障中断)的情况下,两端系统将按照前述分析均独立运行,不互相干扰。

若链路为单通,情况如下所述:以A端为例说明, B端流程同理:

A端接收方向链路断(即①处故障中断),但发送方向正常,当max(bfd.RMRI,接收到的DMTI)定时器第一次超时,按照前述分析减少本端的接收间隔和对端的发送间隔时间;当检测时间到,则A端置为DOWN并随即向B发送状态为DOWN的报文,B端随之置为DOWN状态。

A端发送方向链路断,但接收方向正常,则等待B端检测结果,当接收到B端的状态为DOWN的报文后,将本端置为DOWN。

4 结束语

BFD广泛应用于数据网络中,实现快速重路由;本文在介绍BFD技术的基础上,提出一种BFD异步检测加速收敛方法,采用该方法将在不增加链路报文负担的情况下实现链路故障更快检测,文中详细阐述快速收敛方法的原理与流程。实际应用中,各个网络设备厂商在实现BDF功能上可能各有不同,快速收敛方法还有待于各类设备的实现与支持。

[参考文献]

[1] BFD技术白皮书,华为技术有限公司

[2] Katz, D., and Ward, D., "Bidirectional Forwarding Detection", draft-ietf-bfd-base-02.txt, March, 2005.

上一篇:企业新老员工冲突管理研究 下一篇:浅谈如何培养大学生在煤矿企业中快速成才