CN109039746B - 检测双向转发路径检测会话状态的方法及处理器 - Google Patents
检测双向转发路径检测会话状态的方法及处理器 Download PDFInfo
- Publication number
- CN109039746B CN109039746B CN201810892827.6A CN201810892827A CN109039746B CN 109039746 B CN109039746 B CN 109039746B CN 201810892827 A CN201810892827 A CN 201810892827A CN 109039746 B CN109039746 B CN 109039746B
- Authority
- CN
- China
- Prior art keywords
- bfd
- session
- timer
- bfd session
- timing
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0631—Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种检测双向转发路径检测会话状态的方法及处理器。处理器包括控制核以及转发核;控制核,获取第一与第二网络设备之间已建立的BFD会话约定的超时时长并输出至转发核;转发核,依据超时时长和产生定时中断指令的时长,在虚拟链表中,确定与BFD会话对应的定时器所承载的第一定时节点,虚拟链表结构表示定时中断指令,构成虚拟链表的每一定时节点上承载至少一个定时器,每一定时器与已建立的BFD会话一一对应,相邻定时节点之间的时间步长为产生定时中断指令的时长;转发核还用于,当产生定时中断指令时,对定时中断指令当前对应的定时节点上承载的定时器所对应的BFD会话进行状态检测。如此,可提升BFD会话状态检测效率。
Description
技术领域
本申请涉及通信检测技术领域,具体而言,涉及一种检测双向转发路径检测会话状态的方法及处理器。
背景技术
为了减小网络设备故障对通信系统业务的影响,提高通信系统的可靠性,网络设备需要能够尽快检测到与相邻网络设备间的通信故障,以便通信系统及时采取业务切换措施,保证业务继续进行。
双向转发路径检测(英文:Bidirectional Forwarding Detection,简称:BFD)提供了一通用的、标准化的介质无关和协议无关的快速故障检测机制。可以为各上层协议,例如,开放式最短路径优先(英文:Open Shortest Path First,简称:OSPF)协议、边界网关协议(英文:Border Gateway Protocol,简称:BGP)等协议统一地快速检测两台网络设备间的双向转发路径。由于BFD能够提供毫秒级别的BFD会话检测,从而在检测到故障时,可以与BFD联动的上层协议实现快速倒换功能,得到了广泛的应用。
随着通信系统规模的不断扩大,与一网络设备,尤其是路由器设备等相邻的其他网络设备数量变得十分庞大。这样,需要该网络设备与其它相邻网络设备建立大量的BFD会话,并在BFD会话建立后,通过周期性收发BFD报文进行BFD会话状态检测,如果检测到BFD会话状态为故障状态,需要通知与BFD联动的上层协议进行相应转发路径切换处理,以实现快速倒换功能。
目前,在进行BFD会话状态检测时,需要为每一BFD会话设置软件接收定时器以及软件发送定时器。在软件发送定时器计时到发送超时时长时,向对端网络设备(相邻网络设备)发送BFD报文。当接收到对端网络设备发送的该BFD会话对应的BFD报文后,则重置软件接收定时器。如果在软件接收定时器计时到接收超时时长时,还没有接收到来自对端网络设备的BFD报文,确认BFD会话掉线(英文:DOWN),即确定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会话对应的定时器后移至与所述第二定时节点相距所述和值个定时节点的第四定时节点上,并为所述第四定时节点承载的所述BFD会话的接收定时器设置重复检测门限。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,所述转发核还用于:
接收所述第二网络设备发送的BFD报文,所述BFD报文包括源网络设备信息和目的网络设备信息;
若预先存储的本地BFD检测会话表中存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,则在所述本地BFD检测会话表中,更新所述BFD会话的接收报文更新标识;
若预先存储的本地BFD检测会话表中不存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,则将所述BFD报文传输至所述控制核。
结合第一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述转发核还具体用于:
获取所述第二定时节点上承载的至少一个定时器对应的BFD会话;
依据所述BFD会话的会话表项中包括的目的网络设备信息,向所述目的网络设备信息对应的网络设备发送BFD报文;
从所述本地BFD检测会话表中,读取所述BFD会话的会话表项中的接收报文更新标识;
若所述接收报文更新标识为更新状态,则确定所述BFD会话状态为正常状态;
将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述步长数个定时节点的第五定时节点上;
若所述接收报文更新标识为非更新状态,且所述接收定时器的重复检测门限为0,则确定所述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会话对应的定时器后移至与所述第二定时节点相距所述和值个定时节点的第四定时节点上,并为所述第四定时节点承载的所述BFD会话的接收定时器设置重复检测门限。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
接收所述第二网络设备发送的BFD报文,所述BFD报文包括源网络设备信息和目的网络设备信息;
若预先存储的本地BFD检测会话表中存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,所述BFD转发核在所述本地BFD检测会话表中,更新所述BFD会话的接收报文更新标识;
若预先存储的本地BFD检测会话表中不存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,则将所述BFD报文传输至所述控制核。
结合第二方面的第三种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
获取所述第二定时节点上承载的至少一个定时器对应的BFD会话;
依据所述BFD会话的会话表项中包括的目的网络设备信息,向所述目的网络设备信息对应的网络设备发送BFD报文;
从所述本地BFD检测会话表中,读取所述BFD会话的会话表项中的接收报文更新标识;
若所述接收报文更新标识为更新状态,则确定所述BFD会话状态为正常状态;
将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述步长数个定时节点的第五定时节点上;
若所述接收报文更新标识为非更新状态,且所述接收定时器的重复检测门限为0,则确定所述BFD会话状态为故障状态;
从所述本地BFD检测会话表中,删除所述BFD会话的会话表项,并从所述虚拟链表中删除所述BFD会话对应的定时器;
向所述控制核发送表示所述BFD会话状态为故障的通知消息;
将所述第二定时节点承载的所述BFD会话对应的定时器后移到一个定时节点。
在第三方面,本申请实施例提供一种检测双向转发路径检测会话状态的装置,所述装置包括如上所述的处理器。
在第四方面,本申请实施例提供一种计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
在第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的方法的步骤。
相对于现有技术而言,本申请具有以下有益效果:
本申请提供的检测双向转发路径检测会话状态的方法及处理器,利用虚拟链表的定时节点承载各BFD会话对应的定时器,虚拟链表中各BFD会话对应的定时器通过统一的定时中断指令进行维护,并通过中断指令检测各BFD会话状态。
这样,无需为每一BFD会话设置独立运行的软件定时器以及软件发送定时器,通过共享方式,大大减少BFD会话需要占用的资源,有效提升BFD会话状态检测效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的处理器结构示意图;
图2为本申请实施例提供的检测双向转发路径检测会话状态的方法流程示意图;
图3为图2所示步骤201的子步骤流程示意图之一;
图4为图2所示步骤202的子步骤流程示意图之一;
图5为图2所示步骤203的子步骤流程示意图之一;
图6为步骤A11的子步骤流程示意图之一;
图7为步骤A12的子步骤流程示意图之一;
图8为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
实施例一
图1为本申请实施例提供的处理器结构示意图。该处理器处于第一网络设备中,如图1所示,该处理器包括:控制核11以及转发核12;其中,
控制核11,用于当所述第一网络设备与第二网络设备之间已建立BFD会话时,获取所述BFD会话约定的超时时长,并将所述超时时长输出至转发核12;
本申请实施例中,对于网络设备具有多核CPU的情形,将多核CPU中的一CPU作为BFD控制核,用于运行协议栈,用以对BFD会话状态进行维护。将多核CPU中的其他一些CPU作为BFD转发核,用以检测BFD报文的收发。
这样,利用多核CPU形成多个BFD转发核,用以检测BFD报文收发,每一BFD转发核可以检测一个或多个BFD会话对应的BFD报文,可以提升处理BFD报文的性能和效率。
本申请实施例中,控制核约定每个BFD会话的超时时长,并将约定的超时时长写入会话表项,将会话表项分配给不同的转发核,一BFD会话对应有一会话表项。
转发核12,用于依据所述超时时长和所述第一网络设备中的硬件定时器产生定时中断指令的时长,在虚拟链表中,确定与所述BFD会话对应的定时器所承载的第一定时节点,构成所述虚拟链表的每一定时节点上承载至少一个定时器,每一定时器与已建立的BFD会话一一对应,相邻定时节点之间的时间步长为产生所述定时中断指令的时长;
转发核12还用于,当所述第一网络设备中的硬件定时器产生定时中断指令时,对定时中断指令当前对应的定时节点上承载的定时器所对应的BFD会话进行状态检测。
本申请实施例中,作为一可选实施例,中断指令利用基于硬件设置的用于各BFD会话共享的硬件定时器来生成。其中,硬件定时器按照预设中断周期发送中断指令,通过中断指令对虚拟链表中定时节点上承载的各BFD会话对应的各定时器进行统一控制。
本申请实施例中,虚拟链表可由多个单向链表头尾连接,如此,可循环使用多个单向链表。例如,虚拟链表包括:第一单向链表以及第二单向链表,第一单向链表以及第二单向链表完全相同。第一单向链表的尾定时节点指向第二单向链表的头定时节点,第二单向链表的尾定时节点指向第一单向链表的头定时节点。
本申请实施例中,控制核约定每个BFD会话的超时时长后,分配给不同的转发核,每个转发核通过虚拟链表,对分配的BFD会话进行检测。由于无需为每一BFD会话设置独立运行的软件定时器以及软件发送定时器,通过共享虚拟链表的方式,大大减少BFD会话需要占用的资源,有效提升BFD会话状态的检测效率。
本申请实施例中,作为一可选实施例,转发核12还用于,在依据预设中断周期产生定时中断指令时,在所述虚拟链表中,确定所述定时中断指令当前对应的第二定时节点,则检测所述第二定时节点上承载的BFD会话状态。
本申请实施例中,作为一可选实施例,控制核11具体用于:
当所述第一网络设备与第二网络设备之间已建立BFD会话时,获取所述BFD会话的会话信息,依据所述会话信息,构建所述BFD会话的会话表项,所述会话表项包括源网络设备信息、目的网络设备信息以及超时时长;
对所述源网络设备信息、和/或,目的网络设备信息进行哈希运算,得到所述BFD会话的哈希值;
依据所述BFD会话的哈希值,将所述会话表项分配给转发核12;
转发核12还用于,获取所述超时时长;将所述会话表项存储在本地BFD检测会话表中。
本申请实施例中,控制核对BFD会话的会话表项中的源网络设备信息、和/或,目的网络设备信息进行哈希运算,并依据BFD会话的哈希值,将BFD会话分流到多个BFD转发核中的一个。
本申请实施例中,作为一可选实施例,所述超时时长包括接收报文超时时长以及发送报文超时时长,所述发送报文超时时长为产生所述定时中断指令的时长,所述接收报文超时时长为所述发送报文超时时长的整数倍;
转发核12具体用于:
计算所述超时时长与所述预设中断周期的比值,得到步长数;
获取所述第二定时节点在所述虚拟链表中的定位位置,依据所述定位位置反应的定时时刻,判断所述定时时刻与所述BFD会话建立的时刻是否相同;
若所述定时时刻与所述BFD会话建立的时刻相同,将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述步长数个定时节点的第三定时节点上,并为所述第三定时节点承载的所述BFD会话的接收定时器设置表征接收超时的重复检测门限,所述重复检测门限等于所述整数倍;
若所述定时时刻与所述BFD会话建立的时刻不相同,计算所述步长数加1的和值,将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述和值个定时节点的第四定时节点上,并为所述第四定时节点承载的所述BFD会话的接收定时器设置重复检测门限。
本申请实施例中,超时时长以预设中断周期为单位时长。
本申请实施例中,作为一可选实施例,虚拟链表的起始时刻与硬件定时器开始计时的起始时刻相同。
本申请实施例中,作为一可选实施例,转发核12还用于:
接收所述第二网络设备发送的BFD报文,所述BFD报文包括源网络设备信息和目的网络设备信息;
若预先存储的本地BFD检测会话表中存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,则在所述本地BFD检测会话表中,更新所述BFD会话的接收报文更新标识;
若预先存储的本地BFD检测会话表中不存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,则将所述BFD报文传输至控制核11。
本申请实施例中,BFD转发核接收到第二网络设备发送的BFD报文时,通过查询存储的本地BFD检测会话表,对接收的BFD报文进行相应处理。
本申请实施例中,作为一可选实施例,转发核12还具体用于:
获取所述第二定时节点上承载的至少一个定时器对应的BFD会话;
依据所述BFD会话的会话表项中包括的目的网络设备信息,向所述目的网络设备信息对应的网络设备发送BFD报文;
从所述本地BFD检测会话表中,读取所述BFD会话的会话表项中的接收报文更新标识;
若所述接收报文更新标识为更新状态,则确定所述BFD会话状态为正常状态;
将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述步长数个定时节点的第五定时节点上;
若所述接收报文更新标识为非更新状态,且所述接收定时器的重复检测门限为0,则确定所述BFD会话状态为故障状态;
从所述本地BFD检测会话表中,删除所述BFD会话的会话表项,并从所述虚拟链表中删除所述BFD会话对应的定时器;
向所述控制核发送表示所述BFD会话状态为故障的通知消息;
将所述第二定时节点承载的所述BFD会话对应的定时器后移到一个定时节点。
实施例二
图2为本申请实施例提供的检测双向转发路径检测会话状态的方法流程示意图。所述方法应用于第一网络设备,如图2所示,该流程包括:
步骤201,当所述第一网络设备与第二网络设备之间已建立BFD会话时,所述第一网络设备获取所述BFD会话约定的超时时长;
本申请实施例中,第一网络设备在检测到与第二网络设备协商建立的BFD会话时,获取该协商的BFD会话约定的超时时长。
步骤202,所述第一网络设备依据所述超时时长和所述第一网络设备中的硬件定时器产生定时中断指令的时长,在虚拟链表中,确定与所述BFD会话对应的定时器所承载的第一定时节点,构成所述虚拟链表的每一定时节点上承载至少一个定时器,每一定时器与已建立的BFD会话一一对应,相邻定时节点之间的时间步长为产生所述定时中断指令的时长;
本申请实施例中,第一网络设备基于共享的虚拟链表统一维护各BFD会话对应的定时器,可以降低分别维护定时器导致的资源开销。
本申请实施例中,在虚拟链表中确定承载BFD会话对应的定时器的第一定时节点,即确定BFD会话对应的定时器需要承载在虚拟链表中的哪一定时节点上。其中,定时器与已建立的BFD会话一一对应,用于在超时时长到时,触发对BFD会话状态的检测。
步骤203,当所述硬件定时器产生定时中断指令时,对定时中断指令当前对应的定时节点上承载的定时器所对应的BFD会话进行状态检测。
本申请实施例中,硬件定时器按照预设中断周期产生定时中断指令,当定时中断指令当前对应的是第一定时节点时,检测虚拟链表的第一定时节点上承载的定时器对应的BFD会话状态。
本申请实施例中,作为一可选实施例,该方法还包括:
在接收到第二网络设备发送的用于检测所述BFD会话状态的BFD报文时,所述第一网络设备更新BFD检测会话表中的接收报文更新标识。
本申请实施例中,作为一可选实施例,定时器包括:接收定时器以及发送定时器。相对应地,超时时长包括:接收报文超时时长以及发送报文超时时长。其中,接收报文超时时长用于确定第二网络设备至第一网络设备的BFD会话状态发生异常的最大检测时间。发送报文超时时长用于确定向第二网络设备发送BFD报文的时间间隔。其中,接收定时器对应于接收报文超时时长,发送定时器对应于发送报文超时时长。作为一可选实施例,接收报文超时时长为发送报文超时时长的整数倍。
本申请实施例中,在虚拟链表中确定承载BFD会话对应的定时器的第一定时节点后,如果第一网络设备在接收报文超时时长内接收到该BFD会话的BFD报文,更新对应于该接收定时器的接收报文更新标识,表征已接收到第二网络设备发送的针对该BFD会话的BFD报文。
本申请实施例中,作为另一可选实施例,该方法还包括:
A11,在依据预设中断周期产生定时中断指令时,在所述虚拟链表中,确定所述定时中断指令当前对应的第二定时节点;
本申请实施例中,作为一可选实施例,中断指令利用基于硬件设置的用于各BFD会话共享的硬件定时器来生成。其中,硬件定时器按照预设中断周期发送中断指令,通过中断指令对虚拟链表中定时节点上承载的各BFD会话对应的各定时器进行统一控制。从而可以基于虚拟链表以及依据中断周期产生的中断指令,实现对各BFD会话状态的检测。
A12,检测所述第二定时节点上承载的BFD会话状态。
本申请实施例中,依据第二定时节点上承载的BFD会话状态对应的定时器中的发送定时器,在发送报文超时时长到时,则向第二网络设备发送BFD报文。
同时,读取BFD检测会话表中的接收报文更新标识。在无论是否达到接收报文超时时长的情形下,若该接收报文更新标识为更新状态,表明已接收到第二网络设备发送的BFD报文;或者,在未达到接收报文超时时长的情形下,若该接收报文更新标识为非更新状态的情形下。在虚拟链表中,均依据超时时长,再次确定承载所述BFD会话对应的定时器的定时节点。
若在达到接收报文超时时长的情形下,该接收报文更新标识为非更新状态,表明在接收报文超时时长内,均未接收到第二网络设备发送的BFD报文,或者,发送BFD报文不成功,确定BFD会话状态为故障状态,通知上层协议。
本申请实施例中,利用虚拟链表的定时节点承载各BFD会话对应的定时器,虚拟链表中各BFD会话对应的定时器通过统一的定时中断指令进行维护,并通过中断指令检测各BFD会话状态。
这样,利用各BFD会话共享的虚拟链表,维护各BFD会话的定时器,无需为每一BFD会话设置独立运行的软件接收定时器以及软件发送定时器,通过共享方式,大大减少了BFD会话需要占用的资源,从而能够有效提升BFD会话状态检测效率,可以满足大量BFD会话的需求。进一步地,由于各BFD会话的定时器共享虚拟链表,可以具有统一的计时基准,可以提升各定时器的同步计时精度。
实施例三
图3为图2所示步骤201的子步骤流程示意图之一。如图3所示,该流程包括:
步骤301,当所述第一网络设备与第二网络设备之间已建立BFD会话时,所述第一网络设备的BFD控制核获取所述BFD会话的会话信息,依据所述会话信息,构建所述BFD会话的会话表项,所述会话表项包括源网络设备信息、目的网络设备信息以及超时时长;
本申请实施例中,对于网络设备具有多核CPU的情形,基于BFD会话一旦建立,后续周期性发出的BFD报文的格式和内容都是固定的特点。因而,作为一可选实施例,将BFD会话状态的维护(BFD会话协商、UP/DOWN变迁处理)和用于检测BFD会话状态的BFD报文收发进行分离解耦。将多核CPU中的一CPU作为BFD控制核,用于运行协议栈,用以对BFD会话状态进行维护。将多核CPU中的其他一些CPU作为BFD转发核,用以检测BFD报文的收发。
这样,利用多核CPU形成多个BFD转发核,用以检测BFD报文收发,每一BFD转发核可以检测一个或多个BFD会话对应的BFD报文,可以进一步提升处理BFD报文的性能和效率。
本申请实施例中,一BFD会话对应有一会话表项,会话表项包括源网络设备信息、目的网络设备信息以及超时时长。
步骤302,所述BFD控制核对所述源网络设备信息、和/或,目的网络设备信息进行哈希运算,得到所述BFD会话的哈希值;
本申请实施例中,作为一可选实施例,会话表表项还包括:BFD报文出接口信息、接收报文超时时长(英文:RxStep)、发送报文超时时长(英文:TxStep)、接收报文更新(英文:update)标识等。其中,BFD报文出接口信息表征发送的BFD报文的出接口信息。接收报文超时时长为接收定时器的接收报文超时时长。发送报文超时时长为发送定时器的发送报文超时时长。
步骤303,依据所述BFD会话的哈希值,所述BFD控制核将所述会话表项分配到所述第一网络设备的BFD转发核;
本申请实施例中,将BFD会话分流到多个BFD转发核中的一个。
步骤304,所述BFD转发核获取所述超时时长。
本申请实施例中,作为一可选实施例,该方法还包括:
所述BFD转发核将所述会话表项存储至本地BFD检测会话表。
实施例四
图4为图2所示步骤202的子步骤流程示意图之一。超时时长包括接收报文超时时长以及发送报文超时时长,所述发送报文超时时长为产生所述定时中断指令的时长,所述接收报文超时时长为所述发送报文超时时长的整数倍。如图4所示,该流程包括:
步骤401,所述BFD转发核计算所述超时时长与所述预设中断周期的比值,得到步长数;
本申请实施例中,假设接收报文超时时长为3ms,发送报文超时时长为1ms,预设中断周期为1ms。则:计算得到的接收步长数为3,发送步长数为1。
本申请实施例中,作为另一可选实施例,超时时长以预设中断周期为单位时长。例如,对于10ms×3的BFD会话,表示超时时长为10ms,重复检测门限为3。其中,发送报文超时时长等于超时时长,接收报文超时时长等于超时时长,若连续3次接收报文超时时长内未接收到BFD报文,确定该BFD会话状态为异常。若硬件定时器的预设中断周期为1ms,则计算得到的步长数为10。其中,每隔10个步长数发送一BFD报文,若连续3次10个步长数内均未接收到BFD报文,确定该BFD会话状态为异常。
步骤402,所述BFD转发核获取所述第二定时节点在所述虚拟链表中的定位位置,依据所述定位位置反应的定时时刻,判断所述定时时刻与所述BFD会话建立的时刻是否相同;
本申请实施例中,假设检测到BFD会话建立的时刻为t时刻,虚拟链表中当前定时节点的起始时刻也为t时刻,表明起始时刻与检测到的BFD会话建立时刻相同。假设检测到的BFD会话建立时刻为t时刻,虚拟链表中当前定时节点的起始时刻为t+t0或t-t0(t0大于0而小于预设中断周期)时刻,表明起始时刻与检测到的BFD会话建立时刻不相同。
本申请实施例中,作为一可选实施例,虚拟链表的起始时刻与硬件定时器开始计时的起始时刻相同。
步骤403,若所述定时时刻与所述BFD会话建立的时刻相同,将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述步长数个定时节点的第三定时节点上,并为所述第三定时节点承载的所述BFD会话的接收定时器设置表征接收超时的重复检测门限,所述重复检测门限等于所述整数倍;
本申请实施例中,若所述起始时刻与检测到的BFD会话建立时刻相同,将当前的第二定时节点往后移位步长数个定时节点,得到承载所述BFD会话对应的定时器的第三定时节点。即将所述BFD会话对应的定时器承载到虚拟链表中当前的第二定时节点往后第步长数个定时节点上。并在倍数大于1的情形下,为承载在第三定时节点上的定时器中的接收定时器设置重复检测门限。
本申请实施例中,在每次接收到中断指令后,将当前定时节点移至下一定时节点。
本申请实施例中,作为一可选实施例,虚拟链表包括:第一单向链表以及第二单向链表,第一单向链表以及第二单向链表完全相同。以第一单向链表为例,第一单向链表中相邻节点的时间步长为预设中断周期(产生定时中断指令的时长),第一单向链表包含的定时节点数由最大超时时长以及产生定时中断指令的时长确定。例如,如果BFD会话的最大超时时长为1000ms,硬件定时器的预设中断周期为1ms,则第一单向链表和第二单向链表分别是包含1000个定时节点的单向链表。这样,可以有效节约维护虚拟链表的资源。
本申请实施例中,虚拟链表可由多个单向链表头尾连接,如此,可循环使用多个单向链表。例如,第一单向链表的尾定时节点指向第二单向链表的头定时节点,第二单向链表的尾定时节点指向第一单向链表的头定时节点。作为一可选实施例,将所述第二定时节点后移所述步长数个定时节点,得到承载所述BFD会话对应的定时器的第三定时节点,包括:
A21,获取所述第二定时节点至所述第一单向链表中的尾定时节点之间的定时节点数;
A22,判断所述定时节点数是否大于所述步长数;
A23,若所述定时节点数大于或等于所述步长数,将所述第二定时节点后移所述步长数个节点,得到承载所述待检测BFD会话对应的定时器的第三定时节点;
A24,若所述定时节点数小于所述步长数,计算步长数与所述定时节点数的差值,将所述第二定时节点后移所述第二单向链表的头定时节点,并将所述头定时节点后移所述差值个定时节点,得到承载所述待检测BFD会话对应的定时器的定时节点。
本申请实施例中,随着定时器向第一单向链表的尾定时节点移动。如果下一个超时时长超过了第一单向链表的尾定时节点,将对应的定时器承载到第二单向链表上。例如,在第1ms时,在虚拟链表中承载了一超时时长为10ms×2的定时器,以发送定时器为例,虚拟链表的时间步长为1ms,中断周期为1ms。则第一次超时时长到时,发送BFD报文,将定时器承载在第一单向链表的第11个定时节点。第二次超时时长到时,发送BFD报文,将定时器挂在第一单向链表的第21个定时节点。…,第99次超时时长到时,发送BFD报文,将定时器承载在第一单向链表的第991个定时节点。第100次超时时长到时,发送BFD报文,将定时器承载在第二单向链表的第1个定时节点。如此循环。
步骤404,若所述定时时刻与所述BFD会话建立的时刻不相同,计算所述步长数加1的和值,将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述和值个定时节点的第四定时节点上,并为所述第四定时节点承载的所述BFD会话的接收定时器设置重复检测门限。
本申请实施例中,若所述起始时刻与检测到的BFD会话建立时刻不相同,将当前定时节点的下一定时节点往后移位步长数个节点,作为承载所述BFD会话对应的定时器的第四定时节点。
本申请实施例中,由于各BFD会话共享虚拟链表,因而,不同BFD会话对应的定时器可能对应(挂在)虚拟链表中的同一定时节点。作为一可选实施例,为每一定时器设置BFD会话标识,使得虚拟链表中的一定时节点具有多个BFD会话标识,用以区分虚拟链表中的同一定时节点表征的不同BFD会话。
本申请实施例中,若所述起始时刻与检测到BFD会话建立的时刻不相同,BFD报文接收和发送的延迟误差最多不超过预设中断周期。例如,预设中断周期为1ms,则收发BFD报文的延迟误差不超过1ms。如果预设中断周期设置为500us,则收发BFD报文的延迟误差减少到不超过500us。通过设置硬件定时器的预设中断周期,可以实现不同精度的中断,能够保证各定时器的定时精度。
举例来说,如果BFD控制核在1.2ms时建立了一10ms×1的BFD会话,该BFD会话建立的时刻位于当前定时节点的起始时刻(1.0ms)和下一定时节点的起始时刻(2.0ms)之间,即前述的所述起始时刻与检测到BFD会话建立的时刻不相同。则在进行承载定时器的定时节点的确定时,预设中断周期(时间步长)为1ms,以下一定时节点为基准,将定时器承载在向后移位的第10个定时节点上。对于第一次的超时时长,依据下一次接收的中断指令,从下一定时节点的起始时刻(2.0ms)开始计时,经过10ms计时完毕。使得第一次的超时时长实际为10.8ms(2+10-1.2),而非设置的超时时长10ms。即第一次接收或发送BFD报文的相位延迟误差为0.8ms。自第一次的超时时长后,依据后续的超时时长接收或发送BFD报文,其相位延迟误差为0。
实施例五
图5为图2所示步骤203的子步骤流程示意图之一。如图5所示,该流程包括:
步骤501,接收所述第二网络设备发送的BFD报文,所述BFD报文包括源网络设备信息和目的网络设备信息;
步骤502,若预先存储的本地BFD检测会话表中存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,所述BFD转发核在所述本地BFD检测会话表中,更新所述BFD会话的接收报文更新标识。
本申请实施例中,BFD转发核接收到第二网络设备发送的BFD报文,查询存储的本地BFD检测会话表,如果本地BFD检测会话表中存在与BFD报文中包含的源网络设备信息和目的网络设备信息相匹配的BFD会话,则命中接收到的BFD报文。在本地BFD检测会话表中,更新该BFD会话的接收报文更新标识,实现对接收定时器的接收报文更新标识的更新。如果没有命中,将接收的BFD报文传输至BFD控制核,BFD控制核依据该报文的源网络设备信息、和/或,目的网络设备信息进行哈希运算,下发至哈希值对应的BFD控制核进行处理。
本申请实施例中,作为一可选实施例,更新接收报文更新标识可以是对接收报文更新标识进行置位。例如,将接收报文更新标识由0置为1。
实施例六
图6为步骤A11的子步骤流程示意图之一。如图6所示,该流程包括:
步骤601,在接收到依据所述中断周期发送的定时中断指令时,获取所述定时中断指令的中断发送时刻;
本申请实施例中,作为一可选实施例,硬件定时器基于CPU主频或总线频率进行定时计数来产生定时中断指令。举例来说,若硬件定时器为CPU主频或总线频率为1M的时钟定时器,该时钟定时器对应的时钟周期为1us,则该硬件定时器每隔1us,计数值增加1。若预先配置的计数阈值为1000,则预设中断周期为1ms,即每隔1ms,硬件定时器产生一个定时中断指令并输出。
本申请实施例中,由于虚拟链表的起始时刻与硬件定时器开始计数的起始时刻相同。因而,中断发送时刻与虚拟链表中一定时节点的起始时刻相同。
步骤602,获取所述虚拟链表中具有相同所述中断发送时刻的定时节点,作为所述定时中断指令在所述虚拟链表中当前对应的第二定时节点。
本申请实施例中,如果虚拟链表中相邻定时节点的步长为预设中断周期,则在接收到一定时中断指令时,将当前定时节点移动至下一个定时节点,得到当前对应的定时节点。
实施例七
图7为步骤A12的子步骤流程示意图之一。如图7所示,该流程包括:
步骤701,获取所述第二定时节点上承载的至少一个定时器对应的BFD会话;
本申请实施例中,每次接收到定时中断指令,扫描虚拟链表中当前定时节点承载的定时器,每一定时器对应一BFD会话。多个BFD会话对应的定时器承载在当前定时节点上。
步骤702,依据所述BFD会话的会话表项中包括的目的网络设备信息,向所述目的网络设备信息对应的网络设备发送BFD报文;
本申请实施例中,由于发送定时中断指令的时长与超时时长相等,因而,在接收到一定时中断指令后,发送BFD报文。
步骤703,从所述本地BFD检测会话表中,读取所述BFD会话的会话表项中的接收报文更新标识;
步骤704,若所述接收报文更新标识为更新状态,则确定所述BFD会话状态为正常状态;
步骤705,将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述步长数个定时节点的第五定时节点上;
本申请实施例中,查看本地BFD检测会话表中存储的接收报文更新标识。如果接收报文更新标识置位,则表明接收到了BFD报文。将定时器从当前定时节点挂到往后第步长数个定时节点。
本申请实施例中,作为一可选实施例,在确定该BFD会话状态为正常状态后,该方法还包括:
复位所述本地BFD检测会话表中的接收报文更新标识以及重复检测门限。
本申请实施例中,在当前超时时长内对接收报文更新标识进行置位后,在下一超时时长内,需要对接收报文更新标识以及重复检测门限进行复位。例如,以前述第一单向链表的接收定时器为例,在第一次超时时长到时,如确定接收报文更新标识为更新状态,将定时器承载在第一单向链表的第11个定时节点,将第11个定时节点承载的本地BFD检测会话表中的接收报文更新标识置为0,接收定时器的重复检测门限设置更新为初始值1。在第二次超时时长到时,如确定该接收报文更新标识为非更新状态,将定时器挂在第一单向链表的第21个定时节点,将第21个定时节点承载的对应接收定时器的重复检测门限设置更新为0。如此循环。
步骤706,若所述接收报文更新标识为非更新状态,且所述接收定时器的重复检测门限为0,则确定所述BFD会话状态为故障状态。
本申请实施例中,如果接收报文更新标识没有置位,且所述接收定时器的重复检测门限为0,表明在连续个超时时长组成的接收超时时长内,一直没有收到BFD报文,确定该BFD会话状态为故障状态。
本申请实施例中,如果接收报文更新标识没有置位,但所述接收定时器的重复检测门限不为0,将该接收定时器的重复检测门限减1。
本申请实施例中,作为一可选实施例,在确定所述BFD会话状态为故障状态后,该方法还包括:
从所述本地BFD检测会话表中,删除所述BFD会话的会话表项,并从虚拟链表中删除所述BFD会话对应的定时器;
向BFD控制核发送表示所述BFD会话状态为故障的通知消息;
将所述第二定时节点承载的所述BFD会话对应的定时器后移到一个定时节点。
实施例八
本申请实施例提供检测双向转发路径检测会话状态的装置,该装置包括如前所述的处理器。
实施例九
图8为本申请实施例提供的计算机设备的结构示意图。如图8所示,本申请一实施例提供的一种计算机设备,用于执行图2至图7中的检测双向转发路径检测会话状态的方法。该设备包括存储器1000、处理器2000及存储在该存储器1000上并可在该处理器2000上运行的计算机程序。其中,上述处理器2000执行上述计算机程序时实现上述检测双向转发路径检测会话状态的方法的步骤。
具体地,上述存储器1000和处理器2000能够为通用的存储器和处理器,这里不做具体限定。当处理器2000运行存储器2000存储的计算机程序时,能够执行上述检测双向转发路径检测会话状态的方法,从而解决现有技术中需要为每一BFD会话设置独立运行的软件接收定时器以及软件发送定时器导致的资源浪费以及BFD会话状态检测效率较低的问题,本申请实施例通过利用虚拟链表的定时节点承载各BFD会话对应的定时器,虚拟链表中各BFD会话对应的定时器通过统一的定时中断指令进行维护,并通过中断指令检测各BFD会话状态。使得通过共享方式,避免需要为每一BFD会话设置独立运行的软件接收定时器以及软件发送定时器,可以有效减少资源浪费。同时,可以利用节约的资源检测更多的BFD会话状态,满足对大量BFD会话状态检测的需求,有效提升BFD会话状态检测效率。
对应于图2至图7中的检测双向转发路径检测会话状态的方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述检测双向转发路径检测会话状态的方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述检测双向转发路径检测会话状态的方法,从而解决现有技术中需要为每一BFD会话设置独立运行的软件接收定时器以及软件发送定时器导致的资源浪费以及BFD会话状态检测效率较低的问题,本申请实施例通过利用虚拟链表的定时节点承载各BFD会话对应的定时器,虚拟链表中各BFD会话对应的定时器通过统一的定时中断指令进行维护,并通过中断指令检测各BFD会话状态。使得通过共享方式,避免需要为每一BFD会话设置独立运行的软件接收定时器以及软件发送定时器,可以有效减少资源浪费。同时,可以利用节约的资源检测更多的BFD会话状态,满足对大量BFD会话状态检测的需求,有效提升BFD会话状态检测效率。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种处理器,所述处理器处于第一网络设备中,所述处理器包括控制核以及转发核;
所述控制核,用于当所述第一网络设备与第二网络设备之间已建立BFD会话时,获取所述BFD会话约定的发送报文超时时长和接收报文超时时长,并将所述发送报文超时时长和接收报文超时时长输出至所述转发核;
所述转发核,用于依据所述接收报文超时时长和所述第一网络设备中硬件接收定时器产生定时中断指令的时长,在虚拟链表中,确定与所述BFD会话对应的接收定时器所承载的第一定时节点,或依据所述发送报文超时时长和所述第一网络设备中硬件发送定时器产生定时中断指令的时长,在虚拟链表中,确定与所述BFD会话对应的发送定时器所承载的第一定时节点,构成所述虚拟链表的每一定时节点上承载至少一个定时器,每一定时器与已建立的BFD会话一一对应,相邻定时节点之间的时间步长为产生所述定时中断指令的时长;
所述转发核还用于,当所述第一网络设备中的硬件定时器产生定时中断指令时,对定时中断指令当前对应的定时节点上承载的定时器所对应的BFD会话进行状态检测。
2.根据权利要求1所述的处理器,其特征在于,所述转发核还用于,在依据预设中断周期产生定时中断指令时,在所述虚拟链表中,确定所述定时中断指令当前指示的第二定时节点;若所述第二定时节点承载有所述BFD会话对应的定时器,则检测所述BFD会话状态。
3.根据权利要求2所述的处理器,其特征在于,所述控制核具体用于:
当所述第一网络设备与第二网络设备之间已建立BFD会话时,获取所述BFD会话的会话信息,依据所述会话信息,构建所述BFD会话的会话表项,所述会话表项包括源网络设备信息、目的网络设备信息以及超时时长;
对所述源网络设备信息、和/或,目的网络设备信息进行哈希运算,得到所述BFD会话的哈希值;
依据所述BFD会话的哈希值,将所述会话表项分配给所述转发核;
所述转发核还用于,获取所述超时时长;将所述会话表项存储在本地BFD检测会话表中。
4.根据权利要求3所述的处理器,其特征在于,所述超时时长包括接收报文超时时长以及发送报文超时时长,所述发送报文超时时长为产生所述定时中断指令的时长,所述接收报文超时时长为所述发送报文超时时长的整数倍;
所述转发核具体用于:计算所述接收报文超时时长与所述预设中断周期的比值,得到接收步长数,以及,计算所述发送报文超时时长与所述预设中断周期的比值,得到发送步长数;
获取所述第二定时节点在所述虚拟链表中的定位位置,依据所述定位位置反应的定时时刻,判断所述定时时刻与所述BFD会话建立的时刻是否相同;
若所述定时时刻与所述BFD会话建立的时刻相同,若所述BFD会话对应接收定时器,将该接收定时器后移至与所述第二定时节点相距所述接收步长数个定时节点的第三定时节点上,若所述BFD会话对应发送定时器,将该发送定时器后移至与所述第二定时节点相距所述发送步长数个定时节点的第三定时节点上,并为所述第三定时节点承载的所述BFD会话的接收定时器设置表征接收超时的重复检测门限,所述重复检测门限等于所述整数倍;
若所述定时时刻与所述BFD会话建立的时刻不相同,计算所述接收步长数加1的第一和值,计算所述发送步长数加1的第二和值,若所述BFD会话对应接收定时器,将该接收定时器后移至与所述第二定时节点相距所述第一和值个定时节点的第四定时节点上,若所述BFD会话对应发送定时器,将该发送定时器后移至与所述第二定时节点相距所述第二和值个定时节点的第四定时节点上,并为所述第四定时节点承载的所述BFD会话的接收定时器设置重复检测门限。
5.根据权利要求3所述的处理器,其特征在于,所述转发核还用于:
接收所述第二网络设备发送的BFD报文,所述BFD报文包括源网络设备信息和目的网络设备信息;
若预先存储的本地BFD检测会话表中存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,则在所述本地BFD检测会话表中,更新所述BFD会话的接收报文更新标识;
若预先存储的本地BFD检测会话表中不存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,则将所述BFD报文传输至所述控制核。
6.根据权利要求4所述的处理器,其特征在于,所述转发核还具体用于:
获取所述第二定时节点上承载的至少一个定时器对应的BFD会话;
依据所述BFD会话的会话表项中包括的目的网络设备信息,向所述目的网络设备信息对应的网络设备发送BFD报文;
从所述本地BFD检测会话表中,读取所述BFD会话的会话表项中的接收报文更新标识;
若所述接收报文更新标识为更新状态,则确定所述BFD会话状态为正常状态;
将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述步长数个定时节点的第五定时节点上;
若所述接收报文更新标识为非更新状态,且所述接收定时器的重复检测门限为0,则确定所述BFD会话状态为故障状态;
从所述本地BFD检测会话表中,删除所述BFD会话的会话表项,并从所述虚拟链表中删除所述BFD会话对应的定时器;
向所述控制核发送表示所述BFD会话状态为故障的通知消息;
将所述第二定时节点承载的所述BFD会话对应的定时器后移到一个定时节点。
7.一种检测双向转发路径检测BFD会话状态的方法,其特征在于,所述方法应用于第一网络设备,所述方法包括:
当所述第一网络设备与第二网络设备之间已建立BFD会话时,所述第一网络设备获取所述BFD会话约定的发送报文超时时长和接收报文超时时长;
所述第一网络设备依据所述接收报文超时时长和所述第一网络设备中硬件接收定时器产生定时中断指令的时长,在虚拟链表中,确定与所述BFD会话对应的接收定时器所承载的第一定时节点,或依据所述发送报文超时时长和所述第一网络设备中硬件发送定时器产生定时中断指令的时长,在虚拟链表中,确定与所述BFD会话对应的发送定时器所承载的第一定时节点,构成所述虚拟链表的每一定时节点上承载至少一个定时器,每一定时器与已建立的BFD会话一一对应,相邻定时节点之间的时间步长为产生所述定时中断指令的时长;
当硬件定时器产生定时中断指令时,对定时中断指令当前对应的定时节点上承载的定时器所对应的BFD会话进行状态检测。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在依据预设中断周期产生定时中断指令时,在所述虚拟链表中,确定所述定时中断指令当前对应的第二定时节点,则检测所述第二定时节点上承载的BFD会话状态。
9.根据权利要求8所述的方法,其特征在于,所述当所述第一网络设备与第二网络设备之间已建立BFD会话时,所述第一网络设备获取所述BFD会话约定的超时时长,包括:
当所述第一网络设备与第二网络设备之间已建立BFD会话时,所述第一网络设备的BFD控制核获取所述BFD会话的会话信息,依据所述会话信息,构建所述BFD会话的会话表项,所述会话表项包括源网络设备信息、目的网络设备信息以及超时时长;
所述BFD控制核对所述源网络设备信息、和/或,目的网络设备信息进行哈希运算,得到所述BFD会话的哈希值;
依据所述BFD会话的哈希值,所述BFD控制核将所述会话表项分配到所述第一网络设备的BFD转发核;
所述BFD转发核获取所述超时时长;
所述BFD转发核将所述会话表项存储在本地BFD检测会话表中。
10.根据权利要求9所述的方法,其特征在于,所述超时时长包括接收报文超时时长以及发送报文超时时长,所述发送报文超时时长为产生所述定时中断指令的时长,所述接收报文超时时长为所述发送报文超时时长的整数倍;
所述第一网络设备依据所述接收报文超时时长和所述第一网络设备中的硬件接收定时器产生定时中断指令的时长,在虚拟链表中,确定与所述BFD会话对应的接收定时器所承载的第一定时节点,或依据所述发送报文超时时长和所述第一网络设备中硬件发送定时器产生定时中断指令的时长,在虚拟链表中,确定与所述BFD会话对应的发送定时器所承载的第一定时节点,包括:
所述BFD转发核计算所述接收报文超时时长与所述预设中断周期的比值,得到接收步长数,以及,计算所述发送报文超时时长与所述预设中断周期的比值,得到发送步长数;
所述BFD转发核获取所述第二定时节点在所述虚拟链表中的定位位置,依据所述定位位置反应的定时时刻,判断所述定时时刻与所述BFD会话建立的时刻是否相同;
若所述定时时刻与所述BFD会话建立的时刻相同,将所述BFD会话对应的接收定时器后移至与所述第二定时节点相距所述接收步长数个定时节点的第三定时节点上,或,将所述BFD会话对应的发送定时器后移至与所述第二定时节点相距所述发送步长数个定时节点的第三定时节点上,并为所述第三定时节点承载的所述BFD会话的接收定时器设置表征接收超时的重复检测门限,所述重复检测门限等于所述整数倍;
若所述定时时刻与所述BFD会话建立的时刻不相同,计算所述接收步长数加1的第一和值,计算所述发送步长数加1的第二和值,若所述BFD会话对应接收定时器,将该接收定时器后移至与所述第二定时节点相距所述第一和值个定时节点的第四定时节点上,若所述BFD会话对应发送定时器,将该发送定时器后移至与所述第二定时节点相距所述第二和值个定时节点的第四定时节点上,并为所述第四定时节点承载的所述BFD会话的接收定时器设置重复检测门限。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
接收所述第二网络设备发送的BFD报文,所述BFD报文包括源网络设备信息和目的网络设备信息;
若预先存储的本地BFD检测会话表中存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,所述BFD转发核在所述本地BFD检测会话表中,更新所述BFD会话的接收报文更新标识;
若预先存储的本地BFD检测会话表中不存在与所述源网络设备信息和目的网络设备信息相匹配的BFD会话,则将所述BFD报文传输至所述控制核。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括:
获取所述第二定时节点上承载的至少一个定时器对应的BFD会话;
依据所述BFD会话的会话表项中包括的目的网络设备信息,向所述目的网络设备信息对应的网络设备发送BFD报文;
从所述本地BFD检测会话表中,读取所述BFD会话的会话表项中的接收报文更新标识;
若所述接收报文更新标识为更新状态,则确定所述BFD会话状态为正常状态;
将所述BFD会话对应的定时器后移至与所述第二定时节点相距所述步长数个定时节点的第五定时节点上;
若所述接收报文更新标识为非更新状态,且所述接收定时器的重复检测门限为0,则确定所述BFD会话状态为故障状态;
从所述本地BFD检测会话表中,删除所述BFD会话的会话表项,并从所述虚拟链表中删除所述BFD会话对应的定时器;
向所述控制核发送表示所述BFD会话状态为故障的通知消息;
将所述第二定时节点承载的所述BFD会话对应的定时器后移到一个定时节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810892827.6A CN109039746B (zh) | 2018-08-07 | 2018-08-07 | 检测双向转发路径检测会话状态的方法及处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810892827.6A CN109039746B (zh) | 2018-08-07 | 2018-08-07 | 检测双向转发路径检测会话状态的方法及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109039746A CN109039746A (zh) | 2018-12-18 |
CN109039746B true CN109039746B (zh) | 2022-02-25 |
Family
ID=64649444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810892827.6A Active CN109039746B (zh) | 2018-08-07 | 2018-08-07 | 检测双向转发路径检测会话状态的方法及处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109039746B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110740094B (zh) * | 2019-10-28 | 2021-09-21 | 新华三信息安全技术有限公司 | 一种网络设备、bfd报文的传输方法及装置 |
CN111654434B (zh) * | 2020-04-08 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种流量切换的方法、装置以及转发设备 |
CN111565132B (zh) * | 2020-04-24 | 2021-11-30 | 烽火通信科技股份有限公司 | 一种双向转发检测报文的超时检测方法及系统 |
CN112422442B (zh) * | 2020-10-21 | 2022-07-05 | 鹏城实验室 | 处理双向转发检测协议的会话中断消息的方法及存储介质 |
CN113098774B (zh) * | 2021-03-25 | 2023-01-03 | 北京金山云网络技术有限公司 | 一种报文转发方法及装置 |
CN113132159B (zh) * | 2021-04-08 | 2023-04-25 | 北京马赫谷科技有限公司 | 存储集群节点故障的处理方法、设备及存储系统 |
CN113765797B (zh) * | 2021-09-24 | 2022-11-18 | 新华三信息安全技术有限公司 | 一种消息处理方法及装置 |
CN114006836B (zh) * | 2021-11-01 | 2023-05-23 | 迈普通信技术股份有限公司 | 定时器调整方法、装置、电子设备和计算机可读存储介质 |
CN115934000B (zh) * | 2023-03-07 | 2023-06-09 | 苏州浪潮智能科技有限公司 | 一种存储系统的定时方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247270A (zh) * | 2008-03-19 | 2008-08-20 | 中兴通讯股份有限公司 | 一种实现双向转发检测的系统及方法 |
CN101984587A (zh) * | 2010-11-12 | 2011-03-09 | 中兴通讯股份有限公司 | 一种检测组播转发树上两点间连通性的方法、系统和装置 |
CN101989953A (zh) * | 2010-11-09 | 2011-03-23 | 中兴通讯股份有限公司 | 双向转发检测报文的发送方法及设备 |
WO2016187979A1 (zh) * | 2015-05-27 | 2016-12-01 | 中兴通讯股份有限公司 | 双向转发检测bfd报文的发送方法及装置 |
CN107547619A (zh) * | 2017-06-19 | 2018-01-05 | 新华三技术有限公司 | 一种定时器参数协商方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459594B (zh) * | 2007-12-14 | 2011-04-13 | 华为技术有限公司 | Bfd报文的发送方法、链路故障的探测方法及装置 |
CN105847056B (zh) * | 2016-03-25 | 2019-08-06 | 华为技术有限公司 | 双向转发检测控制报文的传输方法及系统 |
-
2018
- 2018-08-07 CN CN201810892827.6A patent/CN109039746B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247270A (zh) * | 2008-03-19 | 2008-08-20 | 中兴通讯股份有限公司 | 一种实现双向转发检测的系统及方法 |
CN101989953A (zh) * | 2010-11-09 | 2011-03-23 | 中兴通讯股份有限公司 | 双向转发检测报文的发送方法及设备 |
CN101984587A (zh) * | 2010-11-12 | 2011-03-09 | 中兴通讯股份有限公司 | 一种检测组播转发树上两点间连通性的方法、系统和装置 |
WO2016187979A1 (zh) * | 2015-05-27 | 2016-12-01 | 中兴通讯股份有限公司 | 双向转发检测bfd报文的发送方法及装置 |
CN107547619A (zh) * | 2017-06-19 | 2018-01-05 | 新华三技术有限公司 | 一种定时器参数协商方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109039746A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109039746B (zh) | 检测双向转发路径检测会话状态的方法及处理器 | |
US9596187B2 (en) | Time-triggered Ethernet-based data transmission method and node device | |
US10623313B2 (en) | Path computation method, message responding method, and related device | |
EP1697843B1 (en) | System and method for managing protocol network failures in a cluster system | |
CN106302700B (zh) | 基于paxos算法的分布式系统一致性更新方法及系统 | |
CN109194547A (zh) | 报文传输方法、装置、本端设备及可读存储介质 | |
US20140010116A1 (en) | Method and Apparatus for the Fast Detection of Connectivity Loss Between Devices in a Network | |
CN109150659B (zh) | 一种处理器及bfd报文传输方法 | |
CN113746733A (zh) | 表项同步方法、网关设备、组网系统及存储介质 | |
CN110225133B (zh) | 消息发送方法、节点、装置、系统及相关设备 | |
CN103200109A (zh) | 一种ospf邻居关系管理方法和设备 | |
CN102158335B (zh) | 时间同步端口的处理方法及装置 | |
CN109379283B (zh) | 基于物联网异构设备的自组网通信方法、装置及自组网 | |
CN109274546B (zh) | 一种定时器调度方法及装置 | |
EP2628274B1 (en) | Reducing continuity check message (ccm) bursts in connectivity fault management (cfm) maintenance association (ma) | |
Cena et al. | A MODBUS extension for inexpensive distributed embedded systems | |
CN106921992B (zh) | 无线网络连接状态的确定方法、客户端及服务端 | |
CN110601786B (zh) | 一种时间同步方法、中继设备及装置 | |
CN112311899A (zh) | 一种会话处理方法、装置及系统 | |
US20140211604A1 (en) | Method and Apparatus for the Fast Detection of Connectivity Loss Between Devices in a Network | |
CN114124833A (zh) | 一种控制报文发送的方法、网路设备和系统 | |
Patti et al. | An EDF-based swapping approach to enhance support for asynchronous real-time traffic over EtherCAT networks | |
Laqua et al. | Ethernet-based real-time control data bus | |
CN113765711B (zh) | 一种网络设备保活方法及装置 | |
CN109936502B (zh) | 数据接收方法及数据传输设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230627 Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd. Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466 Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |