一种链路检测方法、装置及网络设备与流程

文档序号:17125522发布日期:2019-03-16 00:22阅读:163来源:国知局
一种链路检测方法、装置及网络设备与流程

本发明涉及通信技术领域,特别是涉及一种链路检测方法、装置及网络设备。



背景技术:

设备虚拟化技术例如irf(intelligentresilientframwork,智能弹性架构)可以将多台网络设备连接在一起,经过必要的配置后,虚拟化成一台聚合设备,从而可以集合多台网络设备的资源和软件处理能力,实现多台设备的协同工作、统一管理。为了维持聚合设备的正常运行,需要保证聚合设备中的网络设备之间能够正常的进行数据交互,因此为了维护聚合设备的稳定性,聚合设备中的网络设备之间可以设置有多条冗余链路,并在其中一个冗余链路存在故障的情况下,网络设备可以通过其他的冗余链路进行数据交互。如果聚合设备中网络设备之间使用了存在故障的冗余链路进行数据交互,则网络设备之间可能由于无法正常进行数据交互,致使聚合设备分裂。

现有技术中,判断一条冗余链路是否存在故障,可以依据该冗余链路的端口的物理状态处于up还是down,如果该冗余链路的端口的物理状态为up,则确定该冗余链路不存在故障,如果该冗余链路的端口的物理状态为down,则确定该冗余链路存在故障。

但是,在一些应用场景中,冗余链路的端口可能物理状态处于up,但是端口协议处于down,该冗余链路实际上仍然无法正常工作。因此基于冗余链路的端口的物理状态判断冗余链路是否存在故障,不够准确。



技术实现要素:

本发明实施例的目的在于提供一种冗余链路检测方法,以实现更准确地检测聚合设备中冗余链路是否存在故障。具体技术方案如下:

在本发明实施例的第一方面,提供了一种链路检测方法,应用于聚合设备中的第一网络设备,所述聚合设备还包括第二网络设备,所述第一网络设备和所述第二网络设备之间通过多个冗余链路连接,所述方法包括:

在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和所述第二网络设备进行数据交互,所述待检测链路属于所述多个冗余链路,其中,n大于等于2,且n为整数;

确定所述第一网络设备和所述第二网络设备在所述n个时间窗口内,所进行的数据交互的成功次数是否小于预设次数阈值,所述预设次数阈值小于等于n;

如果所述成功次数不小于所述预设次数阈值,确定所述待检测链路不存在故障。

结合第一方面,在第一种可能的实现方式中,在所述确定所述第一网络设备和所述第二网络设备在所述n个时间窗口内,所进行的数据交互的成功次数是否大于预设次数阈值之后,所述方法还包括:

如果所述成功次数小于所述预设次数阈值,确定所述待检测链路存在故障;

停止使用所述待检测链路和所述第二网络设备进行数据交互。

结合第一方面,在第二种可能的实现方式中,所述在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和所述第二网络设备进行数据交互,包括:

在连续的n个时间窗口中的每个时间窗口内,通过待检测链路向所述第二网络设备发送探测报文;

在所述n个时间窗口中的每个时间窗口内,通过所述待检测链路接收所述第二网络设备发送的响应报文,所述响应报文携带接收次数,所述接收次数用于表示所述第二网络设备已经接收探测报文的次数;

所述成功次数为:在所述n个时间窗口内最后一个接收到的响应报文携带的接收次数,和在所述n个时间窗口内所接收到的响应报文总次数中的较小值。

结合第一方面,在第三种可能的实现方式中,在所述确定所述待检测链路不存在故障之后,所述方法还包括:

判断所述n个时间窗口中是否存在满足以下条件的连续的m个时间窗口:在所述m个时间窗口中的每个时间窗口内,通过所述待检测链路传输的业务报文的总数大于预设数量阈值,其中,m小于等于n,且m为正整数;

如果存在所述m个时间窗口,则从与所述第二网络设备连接的链路中,选择除所述待检测之外的任一链路作为通信链路,以传输后续的业务报文。

结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,在所述选择除所述待检测链路之外的任一链路传输后续的业务报文之后,所述方法还包括:

若确定所述通信链路的使用时间大于预设时长,切换至所述待检测链路传输后续的业务报文。

结合第一方面的第三种可能的实现方式,在第五种可能的实现方式中,如果不存在所述m个时间窗口,继续使用所述待检测链路传输业务报文。

在本发明实施例的第二方面,提供了一种链路检测装置,应用于聚合设备中的第一网络设备,所述聚合设备还包括第二网络设备,所述第一网络设备和所述第二网络设备之间通过多个冗余链路连接,所述装置包括:

握手模块,用于在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和所述第二网络设备进行数据交互,所述待检测链路属于所述多个冗余链路,其中,n大于等于2,且n为整数;

握手分析模块,用于确定所述第一网络设备和所述第二网络设备在所述n个时间窗口内,所进行的数据交互的成功次数是否小于预设次数阈值,所述预设次数阈值小于等于n;如果所述成功次数不小于所述预设次数阈值,确定所述待检测链路不存在故障。

结合第二方面,在第一种可能的实现方式中,所述握手分析模块,还用于在所述确定所述第一网络设备和所述第二网络设备在所述n个时间窗口内,所进行的数据交互的成功次数是否大于预设次数阈值之后,如果所述成功次数小于所述预设次数阈值,确定所述待检测链路存在故障;控制所述第一网络设备停止使用所述待检测链路和所述第二网络设备进行数据交互。

结合第二方面,在第二种可能的实现方式中,所述握手模块,具体用于:

在连续的n个时间窗口中的每个时间窗口内,通过待检测链路向所述第二网络设备发送探测报文;

在所述n个时间窗口中的每个时间窗口内,通过所述待检测链路接收所述第二网络设备发送的响应报文,所述响应报文携带接收次数,所述接收次数用于表示所述第二网络设备已经接收到探测报文的次数;

所述成功次数为:在所述n个时间窗口内最后一个接收到的响应报文携带的接收次数,和在所述n个时间窗口内所接收到的响应报文总次数中的较小值。

结合第二方面,在第三种可能的实现方式中,所述装置还包括流量分析模块,用于在所述确定所述待检测链路不存在故障之后,判断所述n个时间窗口中是否存在满足以下条件的连续的m个时间窗口:在所述m个时间窗口中的每个时间窗口内,通过所述待检测链路传输的业务报文的总数大于预设数量阈值,其中,m小于等于n,且m为正整数;如果存在所述m个时间窗口,则从与所述第二网络设备连接的链路中,选择除所述待检测链路之外的任一链路作为通信链路,以传输后续的业务报文。

结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述流量分析模块,还用于在所述选择除所述待检测链路之外的任一链路作为通信链路,以传输后续的业务报文之后,若确定所述通信链路的使用时间大于预设时长,控制所述第一网络设备切换至所述待检测链路传输后续的业务报文。

结合第二方面的第三种可能的实现方式,在第五种可能的实现方式中,,所述流量分析模块,还用于如果不存在所述m个时间窗口,控制所述第一网络设备继续使用所述待检测链路传输业务报文。

在本发明实施例的第三方面,提供了一种网络设备,包括:

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述的链路检测方法。

在本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的链路检测方法。

本发明实施例提供的链路检测方法、装置及网络设备,由于第一网络设备和第二网络设备如果在一个时间窗口内能够通过待检测链路成功进行数据交互,则待检测链路在该时间窗口内能够实现具有时效性的数据交互,即待检测链路能够在该时间窗口内正常工作,并且当第一网络设备和第二网络设备在n个时间窗口内进行数据交互的成功次数大于预设次数阈值时,可以认为待检测链路在绝大部分情况下能够正常工作,因此在这种情况下,确定待检测链路不存在故障更为合理、准确。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的聚合设备的一种结构示意图;

图2为本发明实施例提供的链路检测方法的一种流程示意图;

图3为本发明实施例提供的链路检测方法的另一种流程示意图;

图4为本发明实施例提供的探测报文的一种报文格式示意图;

图5为本发明实施例提供的链路检测方法的另一种流程示意图;

图6为本发明实施例提供的链路检测方法的另一种流程示意图;

图7为本发明实施例提供的聚合设备应用场景的一种结构示意图;

图8为本发明实施例提供的链路检测方法的另一种流程示意图;

图9a为本发明实施例提供的链路检测装置的一种结构示意图;

图9b为本发明实施例提供的链路检测装置的另一种结构示意图;

图10为本发明实施例提供的网络设备的一种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1所示为本发明实施例提供的聚合设备的一种结构示意图,包括第一网络设备110和第二网络设备120,可以通过设备虚拟化技术(为方便描述,本文以irf技术为例进行说明),将第一网络设备110和第二网络设备120虚拟成一台聚合设备。具体的,第一网络设备110和第二网络设备120均包括多个网口,可以是通过连接在这些网口之间的多条网线,将第一网络设备110和第二网络设备120连接,然后通过irf技术将第一网络设备110和第二网络设备120虚拟成一台聚合设备,同时将第一网络设备110和第二网络设备120之间、且用于在irf设备内部传输报文的多条链路设置为冗余链路130。第一网络设备110和第二网络设备120通过这些冗余链路130,进行控制报文以及业务报文的交互,以维持聚合设备的正常工作。

其中,业务报文可以包括中继(relay)报文和热备报文。

中继报文,是指从聚合设备中某一成员设备进入、并通过另一成员设备发送的报文。

热备报文,又为备份报文,用于将聚合设备的某一成员设备的信息备份到接收到备份报文的成员设备。

控制报文,可以用于在聚合设备中各成员设备之间互相传输,以更新各成员设备的状态和/或传递控制指令,例如,irf控制报文可以用于在聚合设备中第一网络设备和第二网络设备之间互相传输,以更新各成员设备的状态和/或传递控制指令。控制报文可以是心跳(hello)报文、握手报文或者其他用于更新成员设备状态的协议报文。

在实施例中,第一网络设备110可以是聚合设备中的主设备(master),也可以是聚合设备中的从设备(slave)。第一网络设备110在向第二网络设备120发送控制报文时,可能是选择多个冗余链路130中的一个冗余链路130发送该控制报文,例如选择一个端口物理状态为up的冗余链路130。但是如果该冗余链路130的端口物理状态为up,而协议状态为down,则无法通过该冗余链路130将控制报文发送至第二网络设备120,可能会导致第一网络设备和第二网络设备之间无法继续更新设备状态和传递控制指令,进而分裂为两个相对独立的网络设备,即聚合设备发生分裂。

为了减少上述现象,可以参见图2,图2所示为本发明实施例提供的链路检测方法的一种流程示意图,该方法可以应用于聚合设备中的第一网络设备,可以包括步骤s201-s203。

s201,在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和第二网络设备进行数据交互。

其中,n为大于等于2的正整数,待检测链路属于第一网络设备和第二网络设备之间的多个冗余链路中的一个或多个链路。连续的n个时间窗口,可以是指这n个时间窗口在时域上是相邻的,每个时间窗口的长短可以根据实际需求或者用户经验进行设置。假设每个时间窗口的时长为10s(秒),并且第一个时间窗口的起始时间点为t=0s,为描述方便以[t1,t2]表示一个时间窗口,其中t1表示该时间窗口的起始时间,t2表示该时间窗口的结束时间,则n个时间窗口可以分别是[0,10]、[10,20]、…、[10(n-1),10n]。

在每个时间窗口内,第一网络设备和第二网络设备进行数据交互的方式,可以是向第二网络设备发送报文,并接收第二网络设备反馈的报文。在一种可选的实施例中,第一网络设备向第二网络设备发送的报文、以及第二网络设备反馈第一网络设备的报文可以是与控制报文格式相同或者兼容的报文。

s202,确定第一网络设备和第二网络设备在n个时间窗口内,所进行的数据交互的成功次数是否小于预设次数阈值。

第一网络设备和第二网络设备在一个时间窗口内数据交互成功,可以是指在该时间窗口内,第一网络设备能够接收到第二网络设备发送的数据,也能够向第二网络设备发送数据。示例性的,如果在一个时间窗口内,第一网络设备能够接收到第二网络设备发送的数据,并且第二网络设备也能够接收到第一网络设备发送的数据,则可以确定在该时间窗口内,第一网络设备和第二网络设备成功进行数据交互。

预设次数阈值可以根据实际需求或者用户经验进行设置。示例性的,假设n=3,则预设次数阈值可以为2。如果在每个时间窗口内,第一网络设备和第二网络设备均成功进行数据交互,则第一网络设备和第二网络设备在这n个时间窗口内,所进行的数据交互的成功次数为3。

应当说明的是,如果预设次数阈值大于n,则第一网络设备和第二网络设备即使在每个时间窗口内均成功进行数据交互,成功次数依然小于预设次数阈值,因此为保证合理性,在本实施例中,预设次数阈值小于等于n。

s203,如果成功次数不小于预设次数阈值,确定待检测链路不存在故障。

如果在一个时间窗口内,第一网络设备和第二网络设备成功进行数据交互,则可以认为在该时间窗口内,待检测链路可以正常工作,即可以通过待检测链路进行控制报文的交互。

如果成功次数大于预设次数阈值,则可以认为待检测链路能够在大部分的情况下,完成第一网络设备和第二网络设备之间的数据交互,因此可以认为待检测链路不存在故障。即第一网络设备通过该待检测链路和第二网络设备进行控制报文的交互的过程中,理论上不会因为链路故障问题导致控制报文的丢失。因此,在确定待检测链路不存在故障后,第一网络设备和第二网络设备之间可以继续使用该待检测链路进行控制报文的交互。

选用该实施例,由于待检测链路是否存在故障,是基于多个时间窗口内第一网络设备和第二网络和设备通过待检测链路进行数据交互的成功次数确定得到,相比于简单地根据冗余链路的端口物理状态判断,确定待检测链路不存在故障更为合理、准确。

以待检测链路的端口处于物理状态up、协议状态down的情况为例。如果根据端口的物理状态判断,则可能将该待检测链路确定为不存在故障的链路,这与实际情况显然相反。而选用该实施例,由于第一网络设备在通过该待检测链路和第二网络设备进行数据交互是难以(甚至无法)成功的,因此成功次数在很大程度上会小于预设次数阈值,此时则可以确定该待检测链路存在故障,可见结果更加准确。

参见图3,图3所示为本发明实施例提供的链路检测方法的另一种流程示意图,该方法可以应用于聚合设备中的第一网络设备,可以包括步骤s301-s304。

s301,在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和第二网络设备进行数据交互。

该步骤与s201相同,可以参见前述关于s201的描述,在此不再赘述。

s302,确定第一网络设备和第二网络设备在n个时间窗口内,所进行的数据交互的成功次数是否小于预设次数阈值,如果成功次数不小于预设次数阈值,执行s303,如果成功次数小于预设次数阈值,执行s304。

该步骤与s202相同,可以参见前述关于s202的描述,在此不再赘述。

s303,确定待检测链路不存在故障。

该步骤与s203相同,可以参见前述关于s203的描述在,在此不再赘述。

s304,确定待检测链路存在故障,并停止使用待检测链路和第二网络设备进行数据交互。

在一实施例中,第一网络设备可以在运行日志中记录待检测链路存在故障。可以理解的是,如果成功次数小于预设次数阈值,则可以认为如果第一网络设备继续使用该待检测链路与第二网络设备进行控制报文的交互,则可能因为链路故障问题,导致控制报文在交互的过程中丢失,进而造成聚合设备分裂。因此第一网络设备可以停止使用该待检测链路与第二网络设备进行控制报文交互。

在一实施例中,第一网路设备和第二网络设备进行数据交互的方式,可以是向第二网络设备发送探测报文,并接收第二网络设备反馈的响应报文,响应报文中可以携带有第二网络设备已经接收到的探测报文的次数(以下称接收次数),响应报文的格式可以如图4所示。其中,irfhead表示报文头的格式与irf控制报文的报文头的格式相同或兼容,local_recv_num为所携带的接收次数,tail表示报文的报文尾。在一种可选的实施例中,探测报文中也可以携带有第一网络设备已经接收到的响应报文的数量,并且探测报文的报文格式可以和响应报文的报文格式相同。

下面以第一网络设备向第二网络设备发送探测报文,并接收第二网络设备反馈的响应报文为例,对本发明实施例提供的链路检测方法进行说明,参见图5,可以包括步骤s501-s504

s501,在连续的n个时间窗口中的每个时间窗口内,第一网络设备通过待检测链路向第二网络设备发送探测报文。

在每个时间窗口内,根据实际需求,第一网络设备可以向第二网络设备发送一个探测报文,也可以向第二网络设备发送多个探测报文。

s502,在该n个时间窗口中的每个时间窗口内,第二网络设备在接收到第一网络发送的探测报文后,向第一网络设备发送响应报文。

其中,响应报文中携带有接收次数。进一步的,第二网络设备可以在本地维护一个变量,为方便讨论将该变量记为local_probe_num,用于记录第二网络设备已经接收到的探测报文的次数。

在开始执行s501之前,将local_probe_num初始化为0,每当在一个时间窗口内,接收到第一网络设备发送的探测报文后,令local_probe_num自加1。例如假设local_probe_num=0,在第一时间窗口内,第二网络设备接收到第一网络设备发送的第一个探测报文后,令

local_probe_num=local_probe_num+1=1。

之后第二网络设备接收到第一网络设备发送的第二个探测报文后,令

local_probe_num=local_probe_num+1=2。

同理第一网络设备也可以在本地维护这样一个变量,用于记录第一网络设备已经接受到的响应报文的次数。

s503,第一网络设备将该n个时间窗口内最后一个接收到的响应报文携带的接收次数,和在n个时间窗口内所接收到的响应报文总次数中的较小值,作为第一网络设备和第二网络设备在n个时间窗口内进行数据交互的成功次数。

在实施例中,第一网络设备可以在本地维护一个变量,为方便讨论将该变量记为local_recv_num,用于记录第一网络设备最近接收到的响应报文中携带的接收次数。

例如,如果在第三个时间窗口内,第一网络设备接收到第二网络设备通过待检测链路发送的响应报文,并且该响应报文中携带的接收次数为2,则令local_recv_num=2。如果在第三时间窗口内,第一网络设备没有接收到第二网络设备通过待检测链路发送的响应报文,则维持local_recv_num的值不变。在n个时间窗口结束后,local_recv_num的值即为第一网络设备在这n个时间窗口内所接收到的最后一个响应报文携带的接收次数。

第一网络设备在n个时间窗口内最后一个接收到的响应报文携带的接收次数,可以表示第二网络设备在n个时间窗口内所接收到的探测报文的次数,即可以表示第一网络设备在n个时间窗口内通过待检测链路成功发送的探测报文的次数。而第一网络设备在n个时间窗口内所接收到的响应报文总次数,可以表示第一网络设备在n个时间窗口内通过待检测链路成功发送的探测报文的总次数。

因此,第一网络设备可以通过接收到的响应报文携带的接收次数,确定与第二网络设备进行数据交互成功的次数。

在一个实施例中,第一网络设备在n个时间窗口内最后一个接收到的响应报文携带的接收次数,和第一网络设备在n个时间窗口内所接收到的响应报文总次数的较小值,可以表示第一网络设备和第二网络设备在n个时间窗口内进行数据交互的成功次数。

s504,如果成功次数不小于预设次数阈值,确定待检测链路不存在故障。

在该实施例中,成功次数为n个时间窗口内最后一个接收到的响应报文携带的接收次数,和在n个时间窗口内所接收到的探测报文总次数中的较小值。而确定较小值是否小于预设次数阈值,可以通过以下两种方式实现。

第一种、比较最后一个接收到的响应报文携带的接收次数,与在n个时间窗口内所接收到的响应报文总次数中的大小,选取两者中的较小值与预设次数阈值进行比较。

第二种、分别比较最后一个接收到的响应报文携带的接收次数、以及在n个时间窗口内所接收到的响应报文总次数,与预设次数阈值之间的大小。

如果最后一个接收到的响应报文携带的接收次数和在n个时间窗口内所接收到的响应报文总次数均不小于预设次数阈值,则确定较小值不小于预设次数阈值。如果最后一个接收到的响应报文携带的接收次数和在n个时间窗口内所接收到的响应报文总次数均小于预设次数阈值,则确定较小值小于预设次数阈值。

示例性的,在一种可选的实施例中,假设预设次数阈值为2,则可以是分别确定第一网络设备本地所维护的变量local_recv_num以及local_probe_num是否均不小于2。如果第一网络设备本地所维护的变量local_recv_num以及local_probe_num均不小于2,则确定成功次数不小于预设次数阈值。如果第一网络设备本地所维护的变量local_recv_num以及local_probe_num均小于2,则确定成功次数小于预设次数阈值。

选用该实施例,可以使得第一网络设备可以通过响应报文携带的接收次数,获取到第二网络设备接收到探测报文的次数,进而在n个时间窗口过后,第一网络设备可以在不需要第二网络设配合的情况下(即第一网络设备可以不需要额外进行交互),确定出n个时间窗口内第一网络设备与第二网络设备进行数据交互的成功次数,更加方便快捷。

下面以n=3,预设次数阈值为2的情况为例,结合第一网络设备以及第二网络设备对本发明实施例提供的链路检测方法进行说明,

第一个时间窗口内:第一网络设备向第二网络设备发送一个探测报文;

第二网络设备在接收到探测报文后,向第一网络设备发送一个响应报文,该响应报文中携带探测报文的接收次数:1。

第二时间窗口内:第一网络设备向第二网络设备发送一个探测报文;

第二网络设备在接收到探测报文后,向第一网络设备发送一个响应报文,该响应报文中携带探测报文的接收次数:2。

第三个时间窗口内:第一网络设备向第二网络设备发送一个探测报文;

第二网络设备在接收到探测报文后,向第一网络设备发送一个响应报文,该响应报文中携带探测报文的接收次数:3。

第四个时间窗口内:第一网络设备确定最后一个接收到的响应报文所携带的接收次数:3,以及第一网络设备在第一至第三时间窗口内接收到的响应报文总次数:3,两者中的较小值是否小于2。经过判断可知,两者中的较小值大于2。

在第五个时间窗口内,如果较小值不小于2,确定待检测链路不存在故障;如果较小值小于2,停止使用待检测链路与第二网络设备进行数据交互。经过上判断可知,待检测链路不存在故障。

可以理解的是,如果较小值小于2,则说明第一网络设备和第二网络设备在第一至第三时间窗口内成功进行数据交互的次数较小,因此可以认为如果第一网络设备继续使用该待检测链路与第二网络设备进行数据交互,则可能因为链路故障问题,导致控制报文在交互的过程中丢失,进而造成聚合设备分裂。因此可以禁止第一网络设备继续使用该待检测链路与第二网络设备进行数据交互。

在一些情况下,即使待检测链路不存在故障,能够实现第一网络设备与第二网络设备之间的数据交互,但是在实际运行过程中,待检测链路可能在短时间需要传输的业务报文的数量较多,造成链路堵塞,影响第一网络设备和第二网络设备之间传输控制报文。为了应对这种情况,可以参见图6,图6所示为本发明实施例提供的链路检测方法的另一种流程示意图,该方法可以应用于聚合设备中的第一网络设备,可以包括如下步骤。

s601,在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和第二网络设备进行数据交互。

该步骤与s201相同,可以参见前述关于s201的描述,在此不再赘述。

s602,确定第一网络设备和第二网络设备在n个时间窗口内,所进行的数据交互的成功次数是否小于预设次数阈值。

该步骤与s202相同,可以参见前述关于s202的描述,在此不再赘述。

s603,如果成功次数不小于预设次数阈值,确定待检测链路不存在故障。

该步骤与s203相同,可以参见前述关于s203的描述,在此不再赘述。

s604,判断n个时间窗口内是否存在满足以下条件的连续的m个时间窗口:在该m个时间窗口中的每个时间窗口内,通过待检测链路传输的业务报文的总数大于预设数量阈值。

其中,m为大于1并且小于等于n的正整数,示例性的,m可以等于2,预设数量阈值可以根据实际需求或者用户经验进行设置。

在本实施例中,可以是在n个时间窗口中的每个时间窗口内,检测待检测链路在该时间窗口内所传输的中继报文的数目、以及热备报文的数目,并统计中继报文的数目和热备报文的数目之和是否大于预设数量阈值。

根据各个时间窗口的统计结果,确定是否存在连续的m个时间窗口,满足在这m个时间窗口中的每个时间窗口内,通过待检测链路传输的中继报文和热备报文的数目之和大于预设数量阈值。

s605,如果存在满足条件的m个时间窗口,则从与第二网络设备连接的链路中,选择除待检测链路之外的任一链路作为通信链路,以传输后续的业务报文。例如:可以从冗余链路130中选择除待检测链路之外的任一链路作为通信链路。

如果存在满足条件的m个时间窗口,可以认为待检测链路所传输的业务报文的数量超出了该待检测链路所能够承受的范围,可能会影响该待检测链路正常传输控制报文。为了避免聚合设备分裂,第一网络设备和第二网络设备之间不能继续使用该待检测链路传输业务报文。

除待检测链路之外的任一链路,可以是第一网络设备和第二网络设备之间的多个冗余链路中除待检测链路之外的其他冗余链路。也可以是第一网络设备和第二网络设备之间的多个冗余链路之外的其他链路。例如在一些使用场景中,第一网络设备和第二网络设备之间,除了通过多个冗余链路连接以外,还可能存在其他的数据链路,在这种情况下,如果存在满足条件的m个时间窗口,也可以将该待检测链路所需要传输的relay报文和热备报文切换至该数据链路进行传输。示例性的,如图7所示,第一网络设备110和第二网络设备120以插卡的形式插入在交换机140上,交换机分别通过内部端口与第一网络设备和第二网络设备连接,因此第一网络设备和第二网络设备之间也可以通过交换机传输后续的业务报文。

选用该实施例,可以进一步在待检测链路发生堵塞的情况下,停止使用待检测链路传输relay报文和热备报文,尽可能地保证控制报文的正常传输,可以有效降低聚合设备发生分裂的可能性。

参见图8,图8所示为本发明实施例提供的链路检测方法的另一种流程示意图,可以包括步骤s801-s806。

s801,在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和第二网络设备进行数据交互。

该步骤与s201相同,可以参见前述关于s201的描述,在此不再赘述。

s802,确定第一网络设备和第二网络设备在n个时间窗口内,所进行的数据交互的成功次数是否小于预设次数阈值。

该步骤与s202相同,可以参见前述关于s202的描述,在此不再赘述。

s803,如果成功次数不小于预设次数阈值,确定待检测链路不存在故障。

该步骤与s203相同,可以参见前述关于s203的描述,在此不再赘述。

s804,判断n个时间窗口内是否存在满足以下条件的连续的m个时间窗口:在该m个时间窗口中的每个时间窗口内,通过待检测链路所传输的业务报文的总数大于预设数量阈值。

如果存在满足条件的m个时间窗口,则执行s805。

如果不存在满足条件的m个时间窗口,则执行s806。

s805,则从与第二网络设备连接的链路中,选择除待检测链路之外的任一链路作为通信链路,以传输后续的业务报文。

该步骤与s605相同,可以参见前述关于s605的描述,在此不再赘述。

s806,继续使用待检测链路传输业务报文。

如果不存在满足条件的m个时间窗口,则说明待检测链路所传输的业务报文的数量,在待检测链路所能够承受的范围之内,几乎不可能(甚至不可能)因为传输业务报文造成链路堵塞影响到控制报文的传输,因此可以继续使用待检测链路传输业务报文。

在一种情况下,待检测链路单位时间内所需要传输的业务报文的数量可能随时间发生改变,待检测链路可能在一个时间段内由于业务报文高峰期的出现,需要传输的业务报文较多,当该业务报文高峰期过去后,待检测链路所需要传输的业务报文可能重新恢复到待检测链路能够接受的范围内,因此在一种可选的实施例中,可以在使用选择的通信链路传输后续的业务报文后,若确定通信链路的使用时间大于预设时长(如150s),切换至待检测链路传输后续的业务报文,即重新使用待检测链路传输业务报文。该预设时长可以是自定义设置,也可以是按历史报文的传输情况设置,例如可以将该预设时长设置为报文高峰的时长。对于预设时长,本方案不作特别限定。

下面将以n=3,m=2,预设次数阈值等于2,预设数量阈值为3为例,结合第一网络设备和第二网络设备在各个时间窗口内执行的步骤,对本发明实施例提供的链路检测方法进行说明。

在第一时间窗口内:第一网络设备向第二网络设备发送一个探测报文,第二网络设备在接收到探测报文后,向第一网络设备发送一个响应报文,并且第一网络设备和第二网络设备之间通过待检测链路传输业务报文的数量为:3。该响应报文中携带探测报文的接收次数:1。

在第二时间窗口内:第一网络设备向第二网络设备发送一个探测报文,第二网络设备在接收到探测报文后,向第一网络设备发送一个响应报文,并且第一网络设备和第二网络设备之间通过待检测链路传输业务报文的数量为:6。该响应报文中携带探测报文的接收次数:2。

在第三时间窗口内:第一网络设备向第二网络设备发送一个探测报文,第二网络设备在接收到探测报文后,向第一网络设备发送一个响应报文,并且第一网络设备和第二网络设备之间通过待检测链路传输业务报文的数量为:7。该响应报文中携带探测报文的接收次数:3。

在第四时间窗口内:第一网络设备确定最后一个接收到的响应报文所携带的接收次数,以及第一网络设备在第一至第三时间窗口内接收到的响应报文总次数:3,判断两者中的较小值是否小于2,并且确定在第一至第三之间窗口中,是否存在连续的两个时间窗口,待检测链路所传输的业务报文的总数均大于预设数量阈值:5。

经判断,两者中的较小值大于2,存在连续的两个时间窗口,待检测链路所传输的业务报文的总数均大于预设数量阈值。

在第五时间窗口内:如果较小值小于2,确定待检测链路存在故障,第一网络设备停止使用待检测链路和第二网络设备进行数据交互。

如果较小值不小于2,并且存在满足条件的两个时间窗口,第一网络设备和第二网络设备停止使用待检测链路传输业务报文,并继续使用待检测链路传输控制报文。

如果较小值不小于2,并且不存在满足条件的两个时间窗口,第一网络设备和第二网络设备继续使用待检测链路传输业务报文以及控制报文。可以理解的是,业务报文的丢失可能会影响到聚合设备的正常工作,但是不会造成分裂,而控制报文丢失,则可能导致分裂。

经判断,两者中的较小值大于2,存在连续的两个时间窗口,待检测链路所传输的业务报文的总数均大于预设数量阈值,第一网络设备停止使用待检测链路传输业务报文,并继续使用待检测链路传输控制报文。将后续的业务第一网络设备通过其他链路传输后续的业务报文,此过程已在前文实施例中说明,具体可以参阅s605,在此不再赘述。

参见图9a,图9a所示为本发明实施例提供的链路检测装置的一种结构示意图,该链路检测装置应用于聚合设备中的第一网络设备,聚合设备还包括第二网络设备,第一网络设备和第二网络设备之间通过多个冗余链路连接,该装置可以包括握手模块901、握手分析模块902,各模块的具体描述如下所示。

握手模块901,用于在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和第二网络设备进行数据交互,待检测链路属于多个冗余链路,其中,n大于等于2,且n为整数。

握手分析模块902,用于确定第一网络设备和第二网络设备在n个时间窗口内,所进行的数据交互的成功次数是否小于预设次数阈值,预设次数阈值小于等于n;如果所述成功次数不小于所述预设次数阈值,确定所述待检测链路不存在故障。

可选的,握手分析模块902,还用于在确定第一网络设备和第二网络设备在n个时间窗口内,所进行的数据交互的成功次数是否大于预设次数阈值之后,如果成功次数小于预设次数阈值,确定待检测链路存在故障;控制第一网络设备停止使用待检测链路和第二网络设备进行数据交互。

可选的,握手模块901,具体用于在连续的n个时间窗口中的每个时间窗口内,通过待检测链路向第二网络设备发送探测报文;在该n个时间窗口中的每个时间窗口内,通过待检测链路接收第二网络设备发送的响应报文,响应报文携带接收次数,接收次数用于表示第二网络设备已经接收到探测报文的次数;

成功次数为:n个时间窗口内最后一个接收到的响应报文携带的接收次数,和在n个时间窗口内所接收到的响应报文总次数中的较小值。

可选的,如图9b所示,装置还包括流量分析模块903,用于在确定待检测链路不存在故障之后,判断n个时间窗口中是否存在满足以下条件连续的m个时间窗口:在m个时间窗口中的每个时间窗口内,所传输的业务报文的总数大于预设数量阈值,其中,m小于等于n,且m为正整数;如果存在m个时间窗口,则从与第二网络设备连接的链路中,选择除待检测链路之外的任一链路作为通信链路,以传输后续的业务报文。

可选的,流量分析模块903,还用于在选择除待检测链路之外的任一链路作为通信链路,以传输后续的业务报文之后,若确定通信链路的使用时间大于预设时长,控制第一网络设备切换至待检测链路传输后续的业务报文。

可选的,流量分析模块903,还用于如果不存在m个时间窗口,控制第一网络设备继续使用待检测链路传输业务报文。

本发明实施例还提供了一种网络设备,如图10所示,该网络设备可以包括存储器1001、处理器1002,具体描述如下所示。

存储器1001,用于存放计算机程序;

处理器1002,用于执行存储器1001上所存放的程序时,实现如下步骤:

在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和第二网络设备进行数据交互,待检测链路属于多个冗余链路,其中,n大于等于2,且n为整数;

确定第一网络设备和第二网络设备在n个时间窗口内,所进行的数据交互的成功次数是否小于预设次数阈值,预设次数阈值小于等于n;

如果成功次数不小于预设次数阈值,确定待检测链路不存在故障。

可选的,在确定第一网络设备和第二网络设备在n个时间窗口内,所进行的数据交互的成功次数是否大于预设次数阈值之后,方法还包括:

如果成功次数小于预设次数阈值,确定待检测链路存在故障;

停止使用待检测链路和第二网络设备进行数据交互。

可选的,在连续的n个时间窗口中的每个时间窗口内,通过待检测链路和第二网络设备进行数据交互,包括:

在连续的n个时间窗口中的每个时间窗口内,通过待检测链路向第二网络设备发送探测报文;

在n个时间窗口中的每个时间窗口内,通过待检测链路接收第二网络设备发送的响应报文,响应报文携带接收次数,接收次数用于表示第二网络设备已经接收到探测报文的次数;

成功次数为:在n个时间窗口内最后一个接收到的响应报文携带的接收次数,和在n个时间窗口内所接收到的响应报文总次数中的较小值。

可选的,在确定待检测链路不存在故障之后,方法还包括:

判断n个时间窗口中是否存在满足以下条件的连续的m个时间窗口:在m个时间窗口中的每个时间窗口内,通过待检测链路传输的业务报文的总数大于预设数量阈值,其中,m小于等于n,且m为正整数;

如果存在m个时间窗口,则从与第二网络设备连接的链路中,选择除待检测链路之外的任一链路作为通信链路,以传输后续的业务报文。

可选的,在选择待检测链路之外的任一链路传输后续的业务报文之后,方法还包括:

若确定通信链路的使用时间大于预设时长,切换至待检测链路传输后续的业务报文。

上述网络设备提到存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一链路检测方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一链路检测方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、网络设备、计算机可读存储介质、计算机程序产品的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1