CN104821957A - 一种bfd状态机的实现方法、装置及系统 - Google Patents
一种bfd状态机的实现方法、装置及系统 Download PDFInfo
- Publication number
- CN104821957A CN104821957A CN201510181055.1A CN201510181055A CN104821957A CN 104821957 A CN104821957 A CN 104821957A CN 201510181055 A CN201510181055 A CN 201510181055A CN 104821957 A CN104821957 A CN 104821957A
- Authority
- CN
- China
- Prior art keywords
- local terminal
- bfd
- state machine
- bfd state
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明实施例公开了一种BFD状态机实现方法、装置及系统。该方法包括:获取BFD状态机跳转信息,所述BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;从读写存储单元存储的跳转关系中,查找与所述本端BFD状态机协议标识信息、所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系;根据查找到的所述跳转关系,将所述当前本端BFD状态跳转至所述跳转关系包括的目的本端BFD状态。可以修改读写存储器读写存储单元中的BFD状态机的跳转关系,BFD状态机的实现更加灵活。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种BFD状态机的实现方法、装置及系统。
背景技术
双向转发检测(Bidirectional Forwarding Dection,BFD)是互联网工程任务组(Internet Engineering Task Force,IETF)提出的一种应用于多协议标签交换(Multi Protocol Label Switching,MPLS)和因特网协议(Internet Protocol,IP)等网络中的路径故障检测机制,它的优点是检测精度高、开销小和运行效率高,与底层介质、上层协议无关,适用于物理或者逻辑接口、数据链路以及转发引擎之间的路径检测。
通常BFD的实现方式是:相互通信的两台设备的路径上周期性发送BFD报文,一端的设备如果在预定时间内没有接收到对端设备的BFD报文,则认为在两台设备之间路径发生故障。
BFD的基础协议即请求评议(Request For Comments,RFC)5880(定制于2010年)定义了4种会话状态:初始化(init)、建立(up)、会话拆除(down)和管理层会话中断(admin down),以及这4种会话状态间的跳转关系,即BFD状态机。BFD状态机是整个BFD工作机制的核心部分。上述BFD报文中携带了指示发送该BFD报文的设备的BFD会话状态的信息。本端设备可以通过解析接收到的对端设备发送的BFD报文得到对端设备BFD会话状态,并从本端设备中获取本端设备BFD会话状态,将得到的本端设备BFD会话状态和对端设备BFD会话状态作为BFD状态机的输入,得到下一个本端设备BFD会话状态,实现了本端设备BFD会话状态的跳转。如图1所示,为RFC5880定义的状态机,其中,方框内的down、init和up为本端设备BFD会话状态,BFD会话状态跳转条件上的down、admin down、init和up等为对端设备BFD会话状态,timer表示本端BFD会话在预定时间内没有接收到对端设备发送的BFD报文,即会话超时。以当前的本端BFD会话状态是up为例,当接收到对端设备的BFD报文后,若解析得到对端设备BFD会话状态为init/up,本端BFD会话状态仍为up,若解析得到对端设备的BFD会话状态为admin down/down,本端BFD会话状态跳转至down,若在预定时间内没有接收到对端会话发送的BFD报文,本端BFD会话状态跳转为down。
根据上述BFD会话状态,BFD的检测结果如表1所示。
表1
如图2所示,为另一种协议的状态机,RFC6428(制定于2011年)定义了用于多协议标签交换传输架构(MPLS Transport Profile,MPLS–TP)网络的BFD扩展,用来支持MPLS-TP网络中伪线、标签交换路径(Label SwitchPath,LSP)等路径的生存性检测。该协议定义了2种新的会话(session)模式,其中独立会话(independent session)模式下,对于发送端和接收端定义了与RFC5880不同的BFD状态机,分别如图2和图3所示。其中,错误连接(mis-connectivity)表示两个本不应该连接的设备由于错误配置导致误连接。图2中没有显示RFC6428中定义的链路故障指示(Link down indication,LDI)和链路锁定指示(Lock report,LKR)等与BFD本身无关的BFD会话状态跳转条件,这些BFD会话状态跳转条件需要上层软件通过其他操作管理维护(Operation Administration Maintenance,OAM)消息来获得并通过配置的方法实现BFD状态机的跳转。
为了提高BFD协议的工作效率、扩展故障检测范围和增加适用场景,又定义了无缝BFD(Seamless-BFD,S-BFD)的状态机,如图4所示,对发送端的BFD状态机也与RFC5880的定义有所不同。
综上,随着标准和需求的变化,新的BFD状态机定义也会随之出现。
在RFC5880定义中,BFD会话的发送周期最小值可以为微秒级,更小的发送周期意味着更快的故障检测时间,但对设备的发送带宽要求、处理性能也提出了更高的要求。如果用软件实现BFD协议,则会占用大量的CPU资源,导致对于路由协议、保护倒换协议等其他关键处理造成响应缓慢,影响设备性能。所以在某些局端设备或者对于链路故障检测性能要求较高的场合中,会考虑使用硬件(如特定用途集成电路(Application Specific Integrated Circuit,ASIC)FPGA、现场可编程门阵列(Field Programmable Gate Array,FPGA)等芯片)实现BFD协议。那么,由于随着标准和需求的变化,新的BFD状态机定义出现时,用于实现BFD功能的芯片也需要与BFD状态机的变化相适应。
如果使用ASIC技术实现BFD功能,BFD状态机,即BFD会话状态之间的跳转关系,是通过基本的与非门电路单元加上基本电路单元之间的连线实现的,并且固化在芯片中。在芯片流片完成后已经定型,无法根据将来标准的变化或者特殊的需求来灵活的定制某一种状态机。如果使用FPGA技术实现BFD功能,虽然可以通过更改芯片内部单元间的连线修改相关BFD状态机从而满足需求的变化,但也面临多次更新设计影响可实现性、需要重复验证等问题,并且也可能因基本单元资源不足而导致功能无法实现。可见,现有的BFD状态机实现方式中用于实现BFD状态机的芯片不能与BFD状态机定义的变化相适应。
发明内容
本发明实施例的目的是提供一种BFD状态机实现方法、装置及系统,用于解决现有的BFD状态机实现方式中用于实现BFD功能的芯片不能与BFD状态机定义的变化相适应的问题。
本发明实施例的目的是通过以下技术方案实现的:
在第一方面,本发明实施例提供了一种BFD状态机的实现方法,包括:
获取BFD状态机跳转信息,所述BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;
从读写存储单元存储的跳转关系中,查找与所述本端BFD状态机协议标识信息、所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系;
根据查找到的所述跳转关系,将所述当前本端BFD状态跳转至所述跳转关系包括的目的本端BFD状态。
可选的,所述从读写存储单元存储的跳转关系中,查找与所述本端BFD状态机协议标识信息、所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系,包括:
将所述本端BFD状态机协议标识信息作为第一索引,从所述读写存储单元存储的跳转关系中,确定与所述本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系;
将所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息作为第二索引,从确定出的所述属于同一BFD状态机协议的跳转关系中,确定与所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息唯一匹配的跳转关系。
可选的,所述方法还包括:
获取新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系;
将新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系保存在所述读写存储单元中。
可选的,所述本端BFD状态机协议标识信息、所述跳转关系及所述本端BFD状态机协议标识信息与所述跳转关系的对应关系以表格的形式存储在所述读写存储单元中。
可选的,所述本端BFD会话是否超时信息包括所述本端BFD会话未超时信息和所述本端BFD会话超时信息;
所述获取BFD状态机跳转信息之前,所述方法还包括:
检测是否在预定时间内接收到对端发送的BFD报文,所述BFD报文包括所述对端BFD状态;
若在预定时间内接收到所述对端发送的所述BFD报文,则确定本端与所述对端之间的所述本端BFD会话未超时;
获取所述本端BFD会话未超时信息和所述对端BFD状态,并从本端获取所述本端BFD状态机标识信息和所述当前本端BFD状态;
若在预定时间内未接收到所述对端发送的所述BFD报文,则确定所述本端BFD会话超时;
获取所述本端BFD会话超时信息,并从本端获取所述本端BFD状态机标识信息、所述当前本端BFD状态以及所述对端BFD状态。
在第二方面,本发明实施例提供了一种BFD状态机的实现装置,包括:
信息获取模块,用于:获取BFD状态机跳转信息,所述BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;
关系查找模块,用于:从读写存储单元存储的跳转关系中,查找与所述本端BFD状态机协议标识信息、所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系;
状态跳转模块,用于:根据查找到的所述跳转关系,将所述当前本端BFD状态跳转至所述跳转关系包括的目的本端BFD状态。
可选的,所述关系查找模块具体用于:
将所述本端BFD状态机协议标识信息作为第一索引,从所述读写存储单元存储的跳转关系中,确定与所述本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系;
将所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息作为第二索引,从确定出的所述属于同一BFD状态机协议的跳转关系中,确定与所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息唯一匹配的跳转关系。
可选的,所述装置还包括:状态机存储模块,用于:
获取新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系;
将新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系保存在所述读写存储单元中。
可选的,所述本端BFD状态机协议标识信息、所述跳转关系及所述本端BFD状态机协议标识信息与所述跳转关系的对应关系以表格的形式存储在所述读写存储单元中。
可选的,所述信息获取模块获取的所述本端BFD会话是否超时信息包括所述本端BFD会话未超时信息和所述本端BFD会话超时信息;
所述装置还包括:超时信息确定模块,用于:在所述信息获取模块获取BFD状态机跳转信息之前,检测是否在预定时间内接收到对端发送的BFD报文,所述BFD报文包括所述对端BFD状态;若在预定时间内接收到所述对端发送的所述BFD报文,则确定本端与所述对端之间的所述本端BFD会话未超时;若在预定时间内未接收到所述对端发送的所述BFD报文,则确定所述本端BFD会话超时;
若超时信息确定模块确定本端与所述对端之间的所述本端BFD会话未超时,所述信息获取模块,具体用于:获取所述本端BFD会话未超时信息和所述对端BFD状态,并从本端获取所述本端BFD状态机标识信息和所述当前本端BFD状态;
若超时信息确定模块确定所述本端BFD会话超时,所述信息获取模块,具体用于:获取所述本端BFD会话超时信息,并从本端获取所述本端BFD状态机标识信息、所述当前本端BFD状态以及所述对端BFD状态。
在第三方面,本发明实施例提供了一种BFD状态机实现系统,所述系统包括若干个BFD状态机实现装置,所述装置为以上任一所述的装置。
本发明实施例的有益效果如下:
本发明实施例中,获取BFD状态机跳转信息,包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;从读写存储单元中存储的跳转关系中,查找与本端BFD状态机协议标识信息对应、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息对应的跳转关系;根据查找到的跳转关系,将当前本端BFD状态跳转至该跳转关系包括的目的本端BFD状态,从而实现了BFD状态机。由于BFD状态机的跳转关系是预先存储在读写存储单元中的,而读写存储单元可读可写,因此,不仅可以从读写存储单元中查找存储的BFD状态机的跳转关系,而且可以修改读写存储单元中的BFD状态机的跳转关系,BFD状态机的实现更加灵活,能够适应BFD状态机的变化。
附图说明
图1为现有技术中的一种协议的BFD状态机;
图2为现有技术中的另一种协议发送端的BFD状态机;
图3为现有技术中的另一种协议接收端的BFD状态机;
图4为现有技术中的又一种协议的BFD状态机;
图5为本发明实施例提供的一种BFD状态机实现方法流程图;
图6为本发明实施例提供的第二种BFD状态机实现方法流程图;
图7为本发明实施例提供的BFD状态查找表;
图8为本发明实施例提供的第三种BFD状态机实现方法流程图;
图9为本发明实施例中根据第三种BFD状态机实现方法实现的RFC5880状态机;
图10为本发明实施例提供的一种BFD状态机装置示意图;
图11为本发明实施例提供的另一种BFD状态机装置示意图;
图12为本发明实施例提供的又一种BFD状态机装置示意图。
具体实施方式
下面结合附图和实施例对本发明提供的一种BFD状态机实现方法、装置及系统进行更详细地说明。
如图5所示,本发明实施例提供一种BFD状态机实现方法,其具体实现步骤如下:
步骤510:获取BFD状态机跳转信息,BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息。
其中,本端BFD状态即本端设备的BFD会话状态。对端BFD状态即与本端设备建立会话的对端设备的BFD会话状态。BFD状态机跳转信息还可以根据实际需要,增加其它与BFD状态相关的信息。
步骤520:从读写存储单元中存储的跳转关系中,查找与本端BFD状态机协议标识信息、当前本端BFD状态,对端BFD状态和本端BFD会话是否超时信息对应的跳转关系。
其中,一个本端BFD状态机协议标识信息可以对应多条跳转关系,一条跳转关系至少包含当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息,与目的本端BFD状态的对应关系。
步骤530:根据查找到的跳转关系,将本端BFD状态跳转至该跳转关系包括的目的本端BFD状态。
本发明实施例中,获取BFD状态机跳转信息,包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;从读写存储单元中存储的跳转关系中,查找与本端BFD状态机协议标识信息对应、当前本端BFD状态,对端BFD状态和本端BFD会话是否超时信息对应的跳转关系;根据查找到的跳转关系,将当前本端BFD状态跳转至该跳转关系包括的目的本端BFD状态,从而实现了BFD状态机。由于BFD状态机的跳转关系是预先存储在读写存储单元中的,而读写存储单元可读可写,因此,不仅可以从读写存储单元中查找存储的BFD状态机的跳转关系,而且可以修改读写存储单元中的BFD状态机的跳转关系,BFD状态机的实现更加灵活,能够适应BFD状态机的变化。
应当指出的是,读写存储单元可以是具有软件配置接口的芯片,例如随机存储器(Random Access Memory,RAM),也可以是设置有软件接口的、由基本的与非门电路单元加上基本电路单元连线构成的存储电路,等等。
可选的,上述步骤520可通过多种方式实现,在一种实现方式中,按照预定格式,根据获取的本端BFD状态机协议标识信息组成第一索引;按照预定格式,根据获取的当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息组成第二索引,该第二索引至少包括当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;按照预定格式,根据第一索引和第二索引组成查找索引。根据该查找索引从读写存储单元中存储的跳转关系中查找与本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息对应的跳转关系,该跳转关系中的当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息,以该查找索引的格式表示。这种实现方式并未限定根据第一索引和第二索引进行查找跳转关系的时序,是先得到第一索引和第二索引然后再查找跳转关系。
例如,可以先根据第一索引查找出与第一索引对应的跳转关系,再根据第二索引查找出与第二索引对应的跳转关系。
具体的,将本端BFD状态机协议标识信息作为第一索引,从读写存储单元存储的跳转关系中,确定与本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系;将当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息作为第二索引,从确定出的属于同一BFD状态机协议的跳转关系中,确定与当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息唯一匹配的跳转关系。
其中,第二索引中包含的信息可以根据上述BFD状态机跳转信息进行调整,增加其他与BFD状态相关的信息。
可选的,以上所有实施例中,随着标准和需求的变化,增加一种新的BFD状态机时,可以将新增加的BFD状态机存储到上述读写存储单元中,其具体实现方式可以是:获取新增加的本端BFD状态机协议标识信息、跳转关系及新增加的本端BFD状态机协议标识信息与跳转关系的对应关系;将新增加的本端BFD状态机协议标识信息、跳转关系及新增加的本端BFD状态机协议标识信息与跳转关系的对应关系保存在读写存储单元中。
可选的,以上所有实施例中,读写存储单元存储BFD状态机的信息有多种,本端BFD状态机协议标识信息、跳转关系及本端BFD状态机协议标识信息与跳转关系的对应关系,可以表格形式存储在读写存储单元中,也可以信息树的形式存储在读写存储单元中,等等。
可选的,以上所有实施例中,本端BFD会话是否超时信息包括本端BFD会话未超时信息和本端BFD会话超时信息,在获取BFD状态机跳转信息之前,还需检测BFD报文的接收情况,并进行相应的处理,通过该步骤,可根据不同情况获取BFD状态机跳转信息,进而根据获取的BFD状态机跳转信息实现状态跳转。具体实现方式如图6所示:
步骤610:检测是否在预定时间内接收到对端发送的BFD报文,该BFD报文中至少携带了对端BFD状态,若在预定时间内接收到对端发送的BFD报文,执行步骤620,若在预定时间内未接收到对端发送的BFD报文,执行步骤640。
步骤620:确定本端与对端之间的本端BFD会话未超时,执行步骤630。
步骤630:获取本端BFD会话未超时信息和对端BFD状态,并从本端获取本端BFD状态机标识信息和当前本端BFD状态。
步骤640:确定本端BFD会话超时,执行步骤650。
步骤650:获取本端BFD会话超时信息,并从本端获取本端BFD状态机协议标识信息、当前本端BFD状态以及对端BFD状态。
应当指出的是,以上所有实施例均是针对一个本端BFD会话的方案,对于本端的所有的BFD会话均按照以上所述实施例中的方案实施。
下面以具体的BFD状态机为例对本发明实施例提供的一种BFD状态机的实现方法进行更加详细地说明。
本发明实施例中,以具有软件配置接口的芯片为读写存储单元,以查找索引的方式查找目的本端BFD状态。预先以表格形式存储的具体内容如下:
根据所需要支持的BFD状态机的标准或者草案的定义得到BFD状态机中所有的跳转关系,一条跳转关系至少包含当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息,与目的本端BFD状态的对应关系,也可以在该跳转关系中根据需要增加其他与BFD状态相关的信息与目的本端BFD状态的对应关系。每一种协议的BFD状态机由一个BFD状态机协议标识信息标识,一个BFD状态机协议标识信息对应多条跳转关系。具体的:
将当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息等与BFD状态相关的信息,作为BFD状态查找表的查找索引的第二索引,假设称为C[0]……,C[n]。将BFD状态机协议标识信息作为BFD状态查找表的查找索引的第一索引,并将其作为每个BFD会话的本端BFD属性表的一个属性。BFD状态机的标识信息用指针(Pointer,Ptr)表示,将不同的Ptr对应到不同的协议的BFD状态机,例如可以定义Ptr=0的所有表项对应RFC5880,Ptr=1的所有表项对应RFC6428,等等。针对每一个Ptr的值,根据C[0]……,C[n]所有可能的取值组合和对应协议的BFD状态机的定义得到对应的目的本端BFD状态,该目的本端BFD状态即为该取值组合对应查找索引的表项的值。即,在表项中存储Ptr标识的BFD状态机的所有跳转关系。
其中,Ptr的宽度为W比特,则需要保证2的W次方的结果大于等于所需要支持的不同BFD状态机的数量。
假设实现的BFD状态查找表的查找索引为index={Ptr,C[2],C[1],C[0]},其中C[0]代表本端BFD状态,C[1]代表对端BFD状态或者接收BFD报文的状态(BFD报文中携带的指示该对端BFD状态的字段),C[2]代表本端BFD会话超时或者未超时,Ptr的值为BFD状态机的标识信息。假设Ptr宽度为2个bit即支持4种BFD协议定义状态机。其中C[0]和C[1]对应的BFD状态的编码为:00代表admindown,01代表down,10代表ini,11代表up;C[2]对应的编码:1代表本端BFD会话超时,0代表本端BFD会话未超时;未定义的状态以N/A表示。
如图7所示,Ptr=00代表RFC5880协议的BFD状态机;Ptr=01和10代表RFC6428协议的BFD状态机;Ptr=11代表S-BFD草案的BFD状态机。其中,本端状态(local_state)表示本端BFD状态;远端状态(remote_state)表示对端BFD状态,超时(timeout)表示本端BFD会话超时,下一个状态(next_state)表示目的本端BFD状态。
从图7可以看出Ptr=00和01者区别就在于C[0]=11时C[2]=1和C[1]=01情况下next_state不同,Ptr=00和10的区别就在于C[0]=01时C[1]=11情况下next_state不同,Ptr=00和11的有效区别也在于C[0]=01时C[1]=11情况下next_state不同。因此上层软件可以通过配置不同BFD会话的Ptr属性值来使得BFD会话在不同的协议标准间切换,也可以实现不同BFD会话支持不同协议的BFD状态机,并且如果上层软件希望临时调整BFD状态机某些条件下的下一状态或者实现另一种自定义的状态机,就可以通过配置相应查找索引的next_state值来实现。图7中的*代表2进制编码中的所有可能,例如remote_state=*代表remote_state=00/01/10/11。
在本发明实施例中,由于第一索引Ptr的值可代表多个不同BFD协议/草案,并且,多个属于不同BFD协议/草案的BFD状态机的跳转关系也是预先存储在读写存储单元中的,而读写存储单元可读可写,因此,不仅可以从读写存储单元中查找存储的BFD状态机的跳转关系,而且可以修改读写存储单元中的BFD状态机的跳转关系,BFD状态机的实现更加灵活,能够适应BFD状态机的变化。
在上述芯片的基础上,如图8所示,通过查找BFD状态表的方式实现BFD状态机,其具体过程如下:
步骤810:检测所有的BFD会话是否在预定时间内接收到对端发送的BFD报文,若在预定时间内接收到对端发送的BFD报文,该报文对应的BFD会话未超时,执行步骤820;若某个本端BFD会话在预定时间内没有接收到BFD报文,该本端BFD会话超时,执行步骤890。
步骤820:确定本端与对端之间的本端BFD会话未超时,从BFD报文中获取你的描述符(your_discriminator)即本端描述符和对端BFD状态,并记录报文接收时间等信息,执行步骤830。
其中,记录的报文接收时间用于结合预设时间判断下一个BFD会话是否超时。
步骤830:查找本端描述符表得到当前BFD报文所对应的本端BFD会话标识号,其中,本端描述符表中存储本端描述符和本端BFD会话标识号的对应关系,执行步骤840。
其中,不同的BFD会话用BFD会话标识号来标识。
步骤840:根据本端BFD会话标识号将对端BFD状态、报文接收时间等信息存储到对端BFD属性表中,执行步骤850。
步骤850:根据BFD会话的标识号查找本端BFD属性表得到BFD状态机的相关属性,至少包括:本端BFD状态和本端BFD状态机协议标识信息,执行步骤860。
步骤860:将本端BFD状态机协议标识信息作为第一索引,从读写存储单元存储的跳转关系中,确定与本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系,执行步骤870。
步骤870:将当前本端BFD状态、对端BFD状态和本端BFD会话未超时信息作为第二索引,从确定出的属于同一BFD状态机协议的跳转关系中,确定与当前本端BFD状态、对端BFD状态和本端BFD会话未超时信息唯一匹配的跳转关系。
其中,该跳转关系与查找索引的格式相同。
步骤880:根据查找到的跳转关系,将本端BFD状态跳转至该跳转关系包括的目的本端BFD状态。
步骤890:确定本端BFD会话超时,并获取超时的本端BFD会话标识号,执行步骤8100。
步骤8100:根据本端BFD会话标识号查找本端BFD属性表得到BFD状态机相关的本端BFD属性,至少包括本端BFD状态机协议标识信息和本端BFD状态,执行步骤8110。
步骤8110:根据本端BFD会话标识号查找对端BFD属性表得到BFD状态机相关的对端BFD属性,至少包括对端BFD状态,执行步骤8120。
步骤8120:将本端BFD状态机协议标识信息作为第一索引,从读写存储单元存储的跳转关系中,确定与本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系,执行步骤8130。
步骤8130:将当前本端BFD状态、对端BFD状态和本端BFD会话超时信息作为第二索引,从确定出的属于同一BFD状态机协议的跳转关系中,确定与当前本端BFD状态、对端BFD状态和本端BFD会话超时信息唯一匹配的跳转关系,执行步骤8140。
步骤8140:根据查找到的跳转关系,将本端BFD状态跳转至该跳转关系包括的目的本端BFD状态。
按照上述步骤,以RFC5880协议的BFD状态机为例,使用上面的查表方法实现的BFD状态机如图9所示。
基于同样的发明构思,如图10所示,本发明实施例提供一种BFD状态机的实现装置,包括:信息获取模块1001,关系查找模块1002和状态跳转模块1003。
信息获取模块1001,用于:获取BFD状态机跳转信息,BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;
关系查找模块1002,用于:从读写存储单元存储的跳转关系中,查找与本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系;
状态跳转模块1003,用于:根据查找到的跳转关系,将当前本端BFD状态跳转至跳转关系包括的目的本端BFD状态。
可选的,关系查找模块1002具体用于:
将本端BFD状态机协议标识信息作为第一索引,从读写存储单元存储的跳转关系中,确定与本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系;
将当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息作为第二索引,从确定出的属于同一BFD状态机协议的跳转关系中,确定与当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息唯一匹配的跳转关系。
可选的,如图11所示,还包括状态机存储模块1004,用于:
获取新增加的本端BFD状态机协议标识信息、跳转关系及新增加的本端BFD状态机协议标识信息与跳转关系的对应关系;
将新增加的本端BFD状态机协议标识信息、跳转关系及新增加的本端BFD状态机协议标识信息与跳转关系的对应关系保存在读写存储单元中。
可选的,本端BFD状态机协议标识信息、跳转关系及本端BFD状态机协议标识信息与跳转关系的对应关系以表格的形式存储在读写存储单元中。
可选的,本端BFD会话是否超时信息包括本端BFD会话未超时信息和本端BFD会话超时信息,如图12所示,该装置还包括:超时信息确定模块1005,用于:
信息获取模块1001获取BFD状态机跳转信息之前,检测是否在预定时间内接收到对端发送的BFD报文,BFD报文包括对端BFD状态;若在预定时间内接收到对端发送的BFD报文,则确定本端与所述对端之间的本端BFD会话未超时;若在预定时间内未接收到对端发送的BFD报文,则确定本端BFD会话超时;
若超时信息确定模块1005确定本端与对端之间的本端BFD会话未超时,信息获取模块1001,具体用于:获取本端BFD会话未超时信息和对端BFD状态,并从本端获取本端BFD状态机标识信息和当前本端BFD状态;
若超时信息确定模块1005确定本端BFD会话超时,信息获取模块1001,具体用于:获取本端BFD会话超时信息,并从本端获取本端BFD状态机标识信息、当前本端BFD状态以及对端BFD状态。
基于同样的发明构思,本发明实施例提供一种BFD状态机实现系统,该系统包括若干个BFD状态机实现装置,该装置为以上任一实施例所述的装置。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种BFD状态机的实现方法,其特征在于,包括:
获取BFD状态机跳转信息,所述BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;
从读写存储单元存储的跳转关系中,查找与所述本端BFD状态机协议标识信息、所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系;
根据查找到的所述跳转关系,将所述当前本端BFD状态跳转至所述跳转关系包括的目的本端BFD状态。
2.根据权利要求1所述的方法,其特征在于,所述从读写存储单元存储的跳转关系中,查找与所述本端BFD状态机协议标识信息、所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系,包括:
将所述本端BFD状态机协议标识信息作为第一索引,从所述读写存储单元存储的跳转关系中,确定与所述本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系;
将所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息作为第二索引,从确定出的所述属于同一BFD状态机协议的跳转关系中,确定与所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息唯一匹配的跳转关系。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系;
将新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系保存在所述读写存储单元中。
4.根据权利要求3所述的方法,其特征在于,所述本端BFD状态机协议标识信息、所述跳转关系及所述本端BFD状态机协议标识信息与所述跳转关系的对应关系以表格的形式存储在所述读写存储单元中。
5.根据权利要求1或2所述的方法,其特征在于,所述本端BFD会话是否超时信息包括所述本端BFD会话未超时信息和所述本端BFD会话超时信息;
所述获取BFD状态机跳转信息之前,所述方法还包括:
检测是否在预定时间内接收到对端发送的BFD报文,所述BFD报文包括所述对端BFD状态;
若在预定时间内接收到所述对端发送的所述BFD报文,则确定本端与所述对端之间的所述本端BFD会话未超时;
获取所述本端BFD会话未超时信息和所述对端BFD状态,并从本端获取所述本端BFD状态机标识信息和所述当前本端BFD状态;
若在预定时间内未接收到所述对端发送的所述BFD报文,则确定所述本端BFD会话超时;
获取所述本端BFD会话超时信息,并从本端获取所述本端BFD状态机标识信息、所述当前本端BFD状态以及所述对端BFD状态。
6.一种BFD状态机的实现装置,其特征在于,包括:
信息获取模块,用于:获取BFD状态机跳转信息,所述BFD状态机跳转信息包括本端BFD状态机协议标识信息、当前本端BFD状态、对端BFD状态和本端BFD会话是否超时信息;
关系查找模块,用于:从读写存储单元存储的跳转关系中,查找与所述本端BFD状态机协议标识信息、所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息对应的跳转关系;
状态跳转模块,用于:根据查找到的所述跳转关系,将所述当前本端BFD状态跳转至所述跳转关系包括的目的本端BFD状态。
7.根据权利要求6所述的装置,其特征在于,所述关系查找模块具体用于:
将所述本端BFD状态机协议标识信息作为第一索引,从所述读写存储单元存储的跳转关系中,确定与所述本端BFD状态机协议标识信息匹配的属于同一BFD状态机协议的跳转关系;
将所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息作为第二索引,从确定出的所述属于同一BFD状态机协议的跳转关系中,确定与所述当前本端BFD状态、所述对端BFD状态和所述本端BFD会话是否超时信息唯一匹配的跳转关系。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:状态机存储模块,用于:
获取新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系;
将新增加的所述本端BFD状态机协议标识信息、所述跳转关系及所述新增加的本端BFD状态机协议标识信息与所述跳转关系的对应关系保存在所述读写存储单元中。
9.根据权利要求8所述的装置,其特征在于,所述本端BFD状态机协议标识信息、所述跳转关系及所述本端BFD状态机协议标识信息与所述跳转关系的对应关系以表格的形式存储在所述读写存储单元中。
10.根据权利要求6或7所述的装置,其特征在于,所述信息获取模块获取的所述本端BFD会话是否超时信息包括所述本端BFD会话未超时信息和所述本端BFD会话超时信息;
所述装置还包括:超时信息确定模块,用于:在所述信息获取模块获取BFD状态机跳转信息之前,检测是否在预定时间内接收到对端发送的BFD报文,所述BFD报文包括所述对端BFD状态;若在预定时间内接收到所述对端发送的所述BFD报文,则确定本端与所述对端之间的所述本端BFD会话未超时;若在预定时间内未接收到所述对端发送的所述BFD报文,则确定所述本端BFD会话超时;
若超时信息确定模块确定本端与所述对端之间的所述本端BFD会话未超时,所述信息获取模块,具体用于:获取所述本端BFD会话未超时信息和所述对端BFD状态,并从本端获取所述本端BFD状态机标识信息和所述当前本端BFD状态;
若超时信息确定模块确定所述本端BFD会话超时,所述信息获取模块,具体用于:获取所述本端BFD会话超时信息,并从本端获取所述本端BFD状态机标识信息、所述当前本端BFD状态以及所述对端BFD状态。
11.一种BFD状态机实现系统,其特征在于,所述系统包括若干个BFD状态机实现装置,所述装置为权利要求6~10任一项所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510181055.1A CN104821957B (zh) | 2015-04-16 | 2015-04-16 | 一种bfd状态机的实现方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510181055.1A CN104821957B (zh) | 2015-04-16 | 2015-04-16 | 一种bfd状态机的实现方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104821957A true CN104821957A (zh) | 2015-08-05 |
CN104821957B CN104821957B (zh) | 2018-08-07 |
Family
ID=53732120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510181055.1A Active CN104821957B (zh) | 2015-04-16 | 2015-04-16 | 一种bfd状态机的实现方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104821957B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105553742A (zh) * | 2015-12-31 | 2016-05-04 | 北京中科江南信息技术股份有限公司 | 基于状态机的电子报文通信方法 |
CN106911571A (zh) * | 2017-02-28 | 2017-06-30 | 烽火通信科技股份有限公司 | 一种基于网络处理器的远端pw bfd描述符学习方法及系统 |
WO2018050122A1 (zh) * | 2016-09-19 | 2018-03-22 | 新华三技术有限公司 | 防止故障处理延迟 |
CN108156050A (zh) * | 2017-11-28 | 2018-06-12 | 盛科网络(苏州)有限公司 | 无缝双向转发检测方法及装置 |
CN110995594A (zh) * | 2019-12-23 | 2020-04-10 | 安徽皖通邮电股份有限公司 | 一种解决pw bfd受到攻击震荡的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2771526B1 (fr) * | 1997-11-27 | 2004-07-23 | Bull Sa | Architecture pour la gestion de donnees vitales dans une machine multi-modulaire et procede pour la mise en oeuvre d'une telle architecture |
CN101136789A (zh) * | 2006-08-30 | 2008-03-05 | 华为技术有限公司 | 一种实现端到端的链路检测、路由策略倒换的方法及装置 |
CN101170459B (zh) * | 2007-11-28 | 2010-07-14 | 中兴通讯股份有限公司 | 基于双向转发链路进行故障检测与链路恢复的方法 |
CN101201753B (zh) * | 2007-12-13 | 2012-12-26 | 浪潮通信信息系统有限公司 | 一种多状态机管理引擎的配置管理方法 |
CN101247270A (zh) * | 2008-03-19 | 2008-08-20 | 中兴通讯股份有限公司 | 一种实现双向转发检测的系统及方法 |
CN102355414B (zh) * | 2011-09-21 | 2017-11-03 | 中兴通讯股份有限公司 | 自动保护切换状态机处理方法及装置 |
-
2015
- 2015-04-16 CN CN201510181055.1A patent/CN104821957B/zh active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105553742A (zh) * | 2015-12-31 | 2016-05-04 | 北京中科江南信息技术股份有限公司 | 基于状态机的电子报文通信方法 |
CN105553742B (zh) * | 2015-12-31 | 2019-04-09 | 北京中科江南信息技术股份有限公司 | 基于状态机的电子报文通信方法 |
WO2018050122A1 (zh) * | 2016-09-19 | 2018-03-22 | 新华三技术有限公司 | 防止故障处理延迟 |
US11206176B2 (en) | 2016-09-19 | 2021-12-21 | New H3C Technologies Co., Ltd. | Preventing failure processing delay |
CN106911571A (zh) * | 2017-02-28 | 2017-06-30 | 烽火通信科技股份有限公司 | 一种基于网络处理器的远端pw bfd描述符学习方法及系统 |
CN106911571B (zh) * | 2017-02-28 | 2019-08-13 | 烽火通信科技股份有限公司 | 一种基于网络处理器的远端pw bfd描述符学习方法及系统 |
CN108156050A (zh) * | 2017-11-28 | 2018-06-12 | 盛科网络(苏州)有限公司 | 无缝双向转发检测方法及装置 |
CN110995594A (zh) * | 2019-12-23 | 2020-04-10 | 安徽皖通邮电股份有限公司 | 一种解决pw bfd受到攻击震荡的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104821957B (zh) | 2018-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104821957A (zh) | 一种bfd状态机的实现方法、装置及系统 | |
US11297000B2 (en) | Data transmission method, apparatus, and system | |
US20160352578A1 (en) | System and method for adaptive paths locator for virtual network function links | |
CN102201947B (zh) | 吞吐量测量方法及维护端节点 | |
CN110519079B (zh) | 一种数据转发方法、装置、网板、网络设备和存储介质 | |
CN101505278A (zh) | 报文转发路径获取方法、报文转发方法和报文转发装置 | |
WO2018108149A1 (zh) | 数据链路切换方法和装置以及数据链路切换设备 | |
CN102347867A (zh) | 一种堆叠分裂检测的处理方法和设备 | |
CN103152210B (zh) | 修复生成树协议转发状态异常的方法及堆叠设备 | |
CN107959715A (zh) | 基于无线通讯的远程终端信息识别软件系统及识别方法 | |
CN105763394A (zh) | 一种网络链路检测方法、装置和系统 | |
JP6176734B2 (ja) | 仮想マシンの配置決定装置、その方法およびプログラム | |
US20150295820A1 (en) | Global Concurrent Optimization Method, Device and System for Label Switching Path | |
CN109495345A (zh) | 一种bfd处理方法及网络设备 | |
CN112511430A (zh) | 信息交互、隧道建立方法、装置、通信节点及存储介质 | |
CN104852813A (zh) | 家庭网关设备中tr069参数节点的按需加载方法及系统 | |
CN106301871A (zh) | 一种基于lacp的转发检测方法及系统 | |
CN102957613B (zh) | Mpls-tp网络中oam报文和数据报文统一转发路径的方法及装置 | |
CN107566143B (zh) | 一种纵向堆叠发现方法和装置 | |
CN105099721A (zh) | 维护组播成员的方法及设备 | |
CN116684468B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN106850268A (zh) | 一种线性保护倒换的实现装置及方法 | |
WO2019149166A1 (zh) | 网络访问方法、客户端、网络交互方法及调度、网络系统 | |
CN109831378A (zh) | 一种报文超时回应方法及装置 | |
CN102263700A (zh) | 一种报文收发方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |