一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种设备检测方法、装置和通信设备与流程

2022-04-30 02:17:05 来源:中国专利 TAG:


1.本技术涉及通信领域,尤其是涉及一种设备检测方法、装置和通信设备。


背景技术:

2.在分布式网络中,为了及时获取网络中各个网络设备的状态,通常会采用心跳检测法来检测网络中的各个设备是否发生故障。具体地,心跳检测法是指一个设备周期性地向另一个设备发送心跳数据包,然后根据另一个设备反馈的响应数据包情况来确定接收端设备是否处于正常状态。比如图1所示,设备1定期地向设备2发送心跳数据包,然后等待设备2反馈响应数据包,如果在预设时间段内,设备1未接收到设备2发送的响应数据包,则设备1会判定设备2发生了故障,此时需要上报告警信息。
3.技术人员在实践过程中发现,在采用心跳检测法对设备的状态进行检测时,可能由于网络波动现象导致系统误判。比如网络波动时,可能出现网络线路时通时断的情况,进而导致发送端设备或者路由器,比如设备1定期发送的心跳数据包丢包,或者称为“概率性丢包”,从而导致接收端的设备2不会发送响应数据包,此时设备1只能判断出设备2发生故障,但实际上有可能是设备1和设备2之间的传输线路发生故障,而设备2本身并未发生故障,因此,采用心跳检测法不能准确地检测出设备实际的状态,准确率较低。


技术实现要素:

4.本技术实施例提供了一种设备检测方法、装置和通信设备,用于解决分布式网络中发生网络波动时无法准确检测设备状态的技术问题。为了解决该技术问题,本技术公开了以下技术方案:
5.第一方面,本技术提供了一种设备检测方法,该方法包括:当第一设备检测到第二设备反馈的应答响应超时时,获取所述第一设备在第一时间段内同步的历史心跳数据,所述历史心跳数据包括所述第一设备、所述第二设备和第三设备中每个设备检测的其他两个设备对心跳数据包的应答响应情况;根据所述历史心跳数据中每个设备检测的所述应答响应情况,确定所述第二设备应答响应超时的原因,所述原因包括所述第二设备发生故障,或者所述第二设备与所述第一设备之间的传输链路发生故障。
6.本方法,利用两个周边设备检测的历史心跳数据,和设备自身获取的历史心跳数据对处于异常状态的设备进行检测,通过比较各设备过去一段时间内的超时次数,确定出发生故障的原因是设备本身的故障,或者是概率性丢包导致的链路故障,由于获取的历史心跳数据是多个设备互相检测和上报的心跳超时情况,利用全局信息进行决策,所以相比于单一设备的历史心跳数据检测,本方法提高了分布式网络内设备故障检测的准确率,从而避免网络波动情况下由于概率性丢包导致的误判。
7.结合第一方面,在第一方面的一种可能的实现方式中,根据所述历史心跳数据中每个设备检测所述应答响应情况,确定所述第二设备应答响应超时的原因,包括:根据所述每个设备检测的所述应答响应情况分别确定所述第一设备、所述第二设备和所述第三设备
在所述第一时间段内的应答响应超时总数n1,n2和n3;当满足第一条件时,确定所述原因是所述第二设备发生故障,所述第一条件为:所述第二设备对应的所述应答响应超时总数n2最大,且所述第三设备对应的所述应答响应超时总数n3大于0。
8.本实现方式中,利用第一条件能够准确地检测出故障是否属于设备本身故障,从而提升了分布式网络在网络波动场景下故障检测的准确率。
9.结合第一方面,在第一方面的另一种可能的实现方式中,当满足第二条件时,确定所述原因是,所述第二设备与所述第一设备之间的传输链路发生故障,所述第二条件为:所述第一设备对应的所述应答响应超时总数n1大于0,所述第二设备对应的所述应答响应超时总数n2大于0,且所述第三设备对应的所述应答响应超时总数n3等于0。
10.本实现方式中,利用第二条件能够准确地检测出故障是否属于设备与设备之间的传输链路发生故障,从而提升了分布式网络在网络波动场景下故障检测的准确率。
11.结合第一方面,在第一方面的又一种可能的实现方式中,所述历史心跳数据包括:
12.所述第一设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
12
,所述第一设备在第一时间段内统计的所述第三设备反馈应答响应的累计超时次数a
13
;所述第二设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
21
,所述第二设备在第一时间段内统计的所述第三设备反馈应答响应的累计超时次数a
23
;所述第三设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
32
,所述第三设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
31
。在上述所包含的历史心跳数据情况下,所述第一条件为:n2>n1,n2>n3,且n3>0;其中,n1=a
12
a
13
a
21
a
31
,n2=a
12
a
21
a
23
a
32
,n3=a
13
a
23
a
31
a
32

13.结合第一方面,在第一方面的又一种可能的实现方式中,在上述所包含的历史心跳数据情况下,还包括所述第二条件为n1=n2>0,n3=0。其中,n1=a
12
a
13
a
21
a
31
,n2=a
12
a
21
a
23
a
32
,n3=a
13
a
23
a
31
a
32

14.结合第一方面,在第一方面的又一种可能的实现方式中,当所述历史心跳数据包括:所述第一设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
12
;所述第二设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
21
;所述第三设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
32
。在上述所包含的历史心跳数据情况下,所述第一条件为:a
12
>0,a
21
>0,且a
32
>0;所述第二条件为:a
12
>0,a
21
>0,且a
32
=0。
15.结合第一方面,在第一方面的又一种可能的实现方式中,当所述历史心跳数据包括:所述第一设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
12
;所述第二设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
21
;所述第三设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
32
,所述第三设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
31
。在上述所包含的历史心跳数据情况下,所述第一条件为:a
12
>0,a
21
>0,且a
32
a
23
>0;所述第二条件为:a
12
>0,a
21
>0,且a
32
a
23
=0。
16.结合第一方面,在第一方面的又一种可能的实现方式中,获取所述第一设备在第一时间段内同步的所述第三设备上报的历史心跳数据之前,还包括:在两个或两个以上设备中选择所述第三设备,所述第三设备为在所述第一设备向两个或两个以上设备中的每个
设备发送获取历史心跳数据的请求的情况下,接收到的第一个历史心跳数据所来自的设备。
17.结合第一方面,在第一方面的又一种可能的实现方式中,所述第一设备检测到第二设备反馈的应答响应超时之前,还包括:周期性地向网络中的所述第二设备和所述第三设备发送心跳数据包;分别接收来自所述第二设备和所述第三设备根据所述心跳数据包反馈的应答响应;统计所述第一时间段内所述第二设备反馈应答响应的累计超时次数,和,所述第三设备反馈应答响应的累计超时次数。
18.本实现方式中,分布式网络中的各个设备周期性地获取过去一段时间内其他设备的心跳超时情况,并同步这些设备的历史心跳数据,从而为发生故障时提供精准检测做准备。
19.第二方面,本技术提供了一种设备检测装置,所述装置包括:数据同步模块,当第一设备检测到第二设备反馈的应答响应超时时,获取所述第一设备在第一时间段内同步的历史心跳数据,所述历史心跳数据包括所述第一设备、所述第二设备和第三设备中每个设备检测的其他两个设备对心跳数据包的应答响应情况;处理模块,用于根据所述历史心跳数据中每个设备检测的所述应答响应情况,确定所述第二设备应答响应超时的原因,所述原因包括:所述第二设备发生故障,或者所述第二设备与所述第一设备之间的传输链路发生故障。
20.结合第二方面,在第二方面的一种可能的实现方式中,所述处理模块,具体用于根据所述每个设备检测的所述应答响应情况分别确定所述第一设备、所述第二设备和所述第三设备在所述第一时间段内的应答响应超时总数n1,n2和n3,以及,当满足第一条件时,确定所述原因是所述第二设备发生故障;所述第一条件为:所述第二设备对应的所述应答响应超时总数n2最大,且所述第三设备对应的所述应答响应超时总数n3大于0。
21.结合第二方面,在第二方面的另一种可能的实现方式中,所述处理模块,还用于当满足第二条件时,确定所述原因是所述第二设备与所述第一设备之间的传输链路发生故障;所述第二条件为:所述第一设备对应的所述应答响应超时总数n1大于0,所述第二设备对应的所述应答响应超时总数n2大于0,且所述第三设备对应的所述应答响应超时总数n3等于0。
22.结合第二方面,在第二方面的又一种可能的实现方式中,当所述历史心跳数据包括以下参数时:所述第一设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
12
,所述第一设备在第一时间段内统计的所述第三设备反馈应答响应的累计超时次数a
13
;所述第二设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
21
,所述第二设备在第一时间段内统计的所述第三设备反馈应答响应的累计超时次数a
23
;所述第三设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
32
,所述第三设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
31

23.所述第一条件为:n2>n1,n2>n3,且n3>0;其中,n1=a
12
a
13
a
21
a
31
,n2=a
12
a
21
a
23
a
32
,n3=a
13
a
23
a
31
a
32

24.进一步地,在这种情况下,所述第二条件为n1=n2>0,n3=0。
25.结合第二方面,在第二方面的又一种可能的实现方式中,当所述历史心跳数据包括以下参数时:所述第一设备在第一时间段内统计的所述第二设备反馈应答响应的累计超
时次数a
12
;所述第二设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
21
;所述第三设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
32

26.所述第一条件为:a
12
>0,a
21
>0,且a
32
>0;所述第二条件为:a
12
>0,a
21
>0,且a
32
=0。
27.结合第二方面,在第二方面的又一种可能的实现方式中,当所述历史心跳数据包括以下参数时:所述第一设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
12
;所述第二设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
21
;所述第三设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
32
,所述第三设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
31

28.所述第一条件为:a
12
>0,a
21
>0,且a
32
a
23
>0;所述第二条件为:a
12
>0,a
21
>0,且a
32
a
23
=0。
29.结合第二方面,在第二方面的又一种可能的实现方式中,所述处理模块,还用于在两个或两个以上设备中选择所述第三设备,所述第三设备为在所述第一设备向两个或两个以上设备中的每个设备发送获取历史心跳数据的请求的情况下,通过所述数据同步模块接收到的第一个历史心跳数据所来自的设备。
30.结合第二方面,在第二方面的又一种可能的实现方式中,还包括:心跳检测模块,用于在所述第一设备检测到第二设备反馈的应答响应超时之前,周期性地向网络中的所述第二设备和所述第三设备发送心跳数据包;采样模块,用于分别接收来自所述第二设备和所述第三设备根据所述心跳数据包反馈的应答响应,并统计所述第一时间段内所述第二设备反馈应答响应的累计超时次数,和,所述第三设备反馈应答响应的累计超时次数。
31.第三方面,本技术还提供了一种芯片系统,该芯片系统包括处理器和存储器,其中,处理器与存储器耦合,存储器用于存储计算机程序指令;处理器用于执行存储器中存储的所述指令,以使得所述芯片系统执行前述第一方面及第一方面各种实现方式中的方法。
32.此外,所述芯片系统中还包括接口电路,所述接口电路用于实现所述芯片系统与外部的其它模块之间的通信。
33.可选的,所述芯片系统为一个芯片电路。
34.第四方面,本技术还提供一种通信设备,所述通信设备可以是前述第二方面所述设备检测装置,或者包含前述第三方面所述的芯片系统,以便能够执行前述第一方面及第一方面各种实现方式中的方法。
35.其中,所述通信设备可以包括但不限于处理器、存储器、通信接口,以及传感器模块、移动通信模块、无线通信模块、显示屏、摄像头、usb接口和电源管理模块等等。
36.第五方面,本技术还提供了一种计算机可读存储介质,该存储介质中存储有指令,使得当指令在计算机或处理器上运行时,可以用于执行前述第一方面以及第一方面各种实现方式中的方法。
37.另外,本技术还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,当该指令被计算机或处理器执行时,可实现前述第一方面以及第一方面各种实现方式中的方法。
38.需要说明的是,上述第二方面至第五方面的各种实现方式的技术方案所对应的有
益效果与前述第一方面以及第一方面的各种实现方式的有益效果相同,具体参见上述第一方面以及第一方面的各种实现方式中的有益效果描述,不再赘述。
附图说明
39.图1为本技术提供的一种采用心跳检测法检测设备故障的网络结构示意图;
40.图2为本技术实施例提供的另一种采用心跳检测法检测设备故障的网络结构示意图;
41.图3为本技术实施例提供的一种设备检测方法的流程图;
42.图4为本技术实施例提供的一种设备检测装置的结构示意图;
43.图5为本技术实施例提供的另一种设备检测方法的流程图;
44.图6为本技术实施例提供的一种通信设备的结构示意图。
具体实施方式
45.为了使本技术领域的人员更好地理解本技术实施例中的技术方案,并使本技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本技术实施例中的技术方案作进一步详细的说明。
46.在对本技术实施例的技术方案说明之前,首先结合附图对本技术实施例的应用场景进行说明。
47.本技术的技术方案可应用于一种分布式网络,该网络可以是一种中心化的网络,也可以是一种去中心化网络,比如应用于一种智能家居环境。其中,所谓去中心化是相对于中心化的一个概念,去中心化网络中每个设备都是平等的,没有主设备和从设备。对于中心化网络来说,一般是主设备向其他从设备发送心跳数据包,并等待其他从设备反馈响应数据包,而在去中心化网络中,设备与设备之间互相发送心跳数据包和响应数据包。
48.例如图2所示,为本实施例提供的一种去中心化网络的结构示意图。该网络中包括至少三个电子设备,比如设备1、设备2和设备3。此外,还可以包括其他电子设备,比如交换机、路由器和服务器等,本实施例对该网络中所包含的电子设备的类型和数量不予限制。
49.可选的,所述设备1至设备3中的任意一种可以是一个终端设备,所述终端设备可以是一种便携式设备,比如智能终端、手机、笔记本电脑、平板电脑、个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda),可折叠终端、车载终端、具备无线通讯功能的可穿戴设备(例如智能手表或手环)、用户设备(user device)或用户设备(user equipment,ue)、以及增强现实(augmented reality,ar)或者虚拟现实(virtual reality,vr)设备等。此外,所述终端设备还可以是一种智能家居设备,比如部署在室内家庭中的音响、空调、冰箱、tv、洗衣机和热水器等,本技术的实施例对终端设备的具体设备形态不做限定。另外,上述各种终端设备中包括但不限于搭载苹果(ios)、安卓(android)、微软(microsoft)或者其他操作系统。
50.此外,所述设备1至设备3中任意一种还可以是网络设备,比如交换机、网关、服务器等,本实施例对此不予限制。
51.需要说明的是,如果上述设备为终端设备,则设备与设备之间的通信可以通过无线网络,比如wifi来传输;如果上述设备为网络设备,则设备与设备之间的通信可以通过
internet,比如光纤来传输。本技术对设备与设备之间具体的传输媒介不予限制。
52.本实施例中提供一种设备检测方法,该方法可应用于上述分布式网络,并能够检测出在网络波动时发生概率性丢包导致的应答响应异常问题。
53.其中,所述概率性丢包的一种可能的情况是,网络波动时由于线路的不稳定,出现网络链路时通时断的现象,导致心跳报文在链路传输过程中丢失。在这种情况下,接收端设备可能是处于正常状态,可以接收心跳数据包,并反馈应答的响应报文。
54.如图3所示,该方法包括以下步骤:
55.101:当第一设备检测到第二设备反馈的应答响应超时时,获取所述第一设备在第一时间段内同步的历史心跳数据。
56.其中,所述历史心跳数据包括所述第一设备、所述第二设备和第三设备中每个设备检测的其他两个设备对心跳数据包的应答响应情况。具体地,历史心跳数据至少包括以下3部分:
57.1、第一设备的历史心跳数据,包括:第一设备在第一时间段内检测的第二设备,和/或,第三设备对自己(第一设备)发送的心跳数据包的应答响应情况;
58.2、第二设备的历史心跳数据,包括:第二设备在第一时间段内检测的第一设备,和/或,第三设备对自己(第二设备)发送的心跳数据包的应答响应情况;
59.3、第三设备的历史心跳数据,包括:第三设备在第一时间段内检测的第一设备,和/或,第二设备对自己(第三设备)发送的心跳数据包的应答响应情况。
60.其中,上述第一设备的历史心跳数据由第一设备统计获得,第二设备的历史心跳数据和第三设备的历史心跳数据则通过各自设备主动上报给第一设备,第一设备分别接收后获得。
61.具体地,以第一设备的历史心跳数据为例,一种获取所述第一设备的历史心跳数据的实现方式是:第一设备周期性地向网络中的第二设备和第三设备发送心跳数据包,所述发送周期和发送范围可以自定义,比如设置发送周期为1s(秒),则第一设备每隔1s向每个其他设备发送一个心跳数据包或心跳报文。当第二设备和第三设备接收到来自第一设备发送的心跳数据包时,会向第一设备发送一个应答响应,比如反馈一个应答响应数据包或者响应报文等;第一设备会在发送一个心跳数据包之后开始计时,判断在预设时间内是否接收到来自第二设备和第三设备反馈的应答响应。所述预设时间可以自定义。
62.如果第一设备在预设时间内接收到第二设备或第三设备(接收端)发送的一个应答响应,则表示该接收端的应答反馈未超时;如果在预设时间之外接收到应答响应,或者没有接收到应答响应,则表示该接收端的应答反馈超时。可选的,所述应答反馈超时又可称为心跳异常。
63.例如,设备1在t1时刻分别向设备2和设备3发送一个心跳报文1,然后设备1在t2时刻接收到设备2反馈的响应报文1,在t3时刻接收到设备3反馈的响应报文2。如果t1与t2的时间间隔在预设时间间隔内,则设备1记录t1时刻发送给设备2的心跳报文所对应的应答响应未超时;如果t1与t3的时间间隔在所述预设时间间隔之外,或者在所述预设时间间隔内未接收到设备3发送的响应报文2,则记录t1时刻发送给设备3的心跳报文所对应的应答响应超时。
64.可选的,对于所述未超时的应答响应,第一设备将其标记为“0”,对于所述超时的
应答响应,第一设备将其标记为“1”。对于上述设备2,设备1会对其在t1时刻发送的心跳报文1的应答响应标记为“0”,对于上述设备3,设备1会对其在t2时刻发送的心跳报文1的应答响应标记为“1”。应理解,设备1还可以通过其他方式来标记其接收的应答响应超时和未超时的情况,本实施例对设备1采用的标记方式不作限制。本实施例中,当检测到第二设备应答响应超时时,即心跳响应异常时,则记录一个全“1”的二维数组。
65.同理地,第二设备也周期性地分别向第一设备和第三设备发送心跳数据包,并记录第一设备和第三设备的应答响应超时情况,形成第二设备的历史心跳数据。第三设备也周期性地分别向第二设备和第一设备发送心跳数据包,并记录第二设备和第一设备的应答响应超时情况,形成第一设备的历史心跳数据。
66.另外,所述历史心跳数据可以定时刷新,比如在各个设备侧存储1min(分钟)时间间隔的历史心跳数据,或者,每隔1min刷新一次本地存储记录,将历史心跳数据更新为最近1~2min的历史心跳数据。
67.本实施例以第一设备为例,在上述步骤101中,当第一设备检测到第二设备反馈的应答响应超时是指,第一设备与第二设备在正常通信中,两端设备互相收发心跳数据包和应答响应,当第一设备在某一时刻向第二设备发送的心跳数据包后,在预设时间内(比如1s)未收到第二设备反馈的响应报文,则第一设备确认当前所述第二设备反馈的应答响应超时,启动步骤101的方法。
68.102:根据所述历史心跳数据中每个设备检测的所述应答响应情况,确定所述第二设备应答响应超时的原因,所述原因包括:所述第二设备发生故障,或者所述第二设备与所述第一设备之间的传输链路发生故障。
69.具体地,可通过第一条件和第二条件来判断超时原因是设备本身发生的故障,还是设备之间传输链路发生的故障。
70.所述第一条件为:第二设备对应的所述应答响应超时总数n2最大,且第三设备对应的所述应答响应超时总数n3大于0。用表达式表示为:n2>n1,n2>n3,且n3>0。
71.所述第二条件为:第一设备对应的所述应答响应超时总数n1大于0,第二设备对应的所述应答响应超时总数n2大于0,且第三设备对应的所述应答响应超时总数n3等于0。用表达式表示为:n1>0,n2>0,且n3=0。
72.其中,n1表示所述第一设备在所述第一时间段内的应答响应超时总数,n2表示所述第二设备在所述第一时间段内的应答响应超时总数,n3表示所述第三设备在所述第一时间段内的应答响应超时总数。所述第一时间段可以自由设置,比如设置为30s、60s、90s、120s等,本实施例对此不予限制。
73.下面对本实施例中,第一设备根据历史心跳数据确定所述第二设备的故障原因,可能产生的几种实施方式进行说明。
74.第一种实施方式
75.本实施例中,假设各个设备发送心跳数据包的频率是1个/秒,周期是1秒,所述第一时间段是60s,所述预设时间为1s,即设备1发送一个心跳数据包后检测接收端的应答响应不超时的时间间隔是1s,则在一个检测周期60s内,如果设备1连续收到设备2发送的60个响应报文,假设设备2向设备1反馈响应报文的时间很短,比如毫秒级别的反馈响应,则在第61s时得到从第1s到第60s的检测周期(第一时间段)内,设备1检测设备2对设备1发送的心
跳数据包的应答响应情况为,应答响应超时次数为0,即心跳异常次数为0。类似的,如果设备1在60s内只接收到设备3发送的4个满足在1s的预设时间间隔的响应报文,标记了4个“0”,其余56个心跳报文的反馈响应均为超时,即标记了56个“1”,则设备1统计过去60s内设备3的应答响应情况为,应答响应超时次数为56,即心跳异常次数为56。
76.可选的,所述心跳异常次数可用字母“a”来表示,则a
12
表示设备1在第一时间段内统计的设备2的心跳异常次数(或应答响应情况),a
13
表示设备1在所述第一时间段内统计的设备3的心跳异常次数,进而设备1在第一时间段内统计的设备2和设备3的历史心跳数据为{a
12
,a
13
}。在上述示例中,a
12
=0,a
13
=56,则设备1在60s统计的设备1的历史心跳数据为{0,56}。
77.同理地,第二设备的历史心跳数据可以表示为{a
21
,a
23
},第三设备的历史心跳数据可以表示为{a
31
,a
32
}。其中,a
21
表示设备2在所述第一时间段内统计的设备1发生心跳异常的次数,a
23
表示设备2在所述第一时间段内统计的设备3发生心跳异常的次数,a
31
表示设备3在所述第一时间段内统计的设备1发生心跳异常的次数,a
32
表示设备3在所述第一时间段内统计的设备2发生心跳异常的次数。
78.此时,设备1在第一时间段内获得设备1至设备3统计的所有历史心跳数据为
79.并且,设备1将这些历史心跳数据存储在设备1的本地存储介质中。
80.另外,上述方法还包括:第一设备将所述第一设备在所述第一时间段内统计的历史心跳数据分别发送给第二设备和第三设备。第二设备将其在所述第一时间段内统计的历史心跳数据分别发送给第一设备和第三设备。第三设备将其在所述第一时间段内统计的历史心跳数据分别发送给第一设备和第二设备。从而使得第一设备、第二设备和第三设备都分别获得其他两个设备统计的历史心跳数据。
81.当检测到网络内第二设备的状态异常时,第一设备的数据同步模块获取第一设备的历史心跳数据,同时从网络内其他设备获取历史心跳数据,如果获取超时,则将该第二设备的心跳数据a
12
设置为默认数据。
82.上述根据第一设备获取的第一设备、第二设备和第三设备在第一时间段内的历史心跳数据分析第二设备反馈超时的原因,具体为:
83.首先,根据所述每个设备检测的所述应答响应情况分别确定所述第一设备、所述第二设备和所述第三设备在所述第一时间段内的应答响应超时总数n1,所述应答响应超时总数又为累积心跳异常次数n1,所述累积心跳异常次数n1为所有设备检测的心跳异常次数之和。
84.例如,设备1的累积心跳异常次数为n1,且n1=a
12
a
13
a
21
a
31

85.设备2的累积心跳异常次数为n2,且n2=a
12
a
21
a
23
a
32

86.设备3的累积心跳异常次数为n3,且n3=a
13
a
23
a
31
a
32

87.如果n1、n2、n3各不相同,且n2>n1>n3,n3>0,或者,n2>n1,n2>n3,且n3>0,则满足上述第一条件,则确定超时原因是所述第二设备(即设备2)发生了故障。本实施方式中,将累计心跳超时(或异常次数)最多的设备确定为发生故障的设备。
88.同理地,如果n1>n2>n3,且n3>0,或者,n1>n2,n1>n3,且n3>0,则确定所述第一设备(即设备1)发生了故障。如果n3>n2>n1,且n3>0,或者,n3>n2,n3>n1,且n3>0,则确定所述第三设备(即设备3)发生了故障。
89.举例说明,设备1在检测到设备2异常时获取设备1至设备3在第一时间段内的历史心跳数据为则n1=6 3 3 5=17,n2=6 3 0 0=9,n3=3 0 0 5=8,即n1>n2>n3,则确定设备1故障。
90.如果n1=n2>0,且n3=0,则满足上述第二条件,可确定超时原因是所述第二设备(即设备2)与所述第一设备(即设备1)之间的传输链路发生故障。
91.本实施例中提供的方法,利用两个周边设备检测的历史心跳数据,和设备自身获取的历史心跳数据对处于异常状态的设备进行检测,通过比较各设备过去一段时间内的超时次数,确定出发生故障的原因是设备本身的故障,或者是概率性丢包导致的链路故障,由于获取的历史心跳数据是多个设备互相检测和上报的心跳超时情况,利用全局信息进行决策,所以相比于单一设备的历史心跳数据检测,本方法提高了分布式网络内设备故障检测的准确率,从而避免网络波动情况下由于概率性丢包导致的误判。
92.另外,本方法中,分布式网络中的各个设备周期性地获取过去一段时间内其他设备的心跳超时情况,并同步这些设备的历史心跳数据,从而为发生故障时提供精准检测做准备。
93.第二种实施方式
94.本实施方式以设备1、设备2和设备3为例,当设备1检测到设备2心跳反馈超时后,设备1的数据同步模块从设备2和设备3同步其历史心跳数据,并进行处理。假设设备1获取的历史心跳数据包括:
95.设备1在第一时间段内统计的所述设备2反馈应答响应的累计超时次数a
12
;设备2在第一时间段内统计的所述设备1反馈应答响应的累计超时次数a
21
;设备3在第一时间段内统计的所述设备2反馈应答响应的累计超时次数a
32
;此时n1=a
12
,n2=a
21
,n3=a
32
,则通过上述历史心跳数据判断故障原因是设备2发生故障,还是设备1和设备2之间的传输链路发生故障,判断方法如下:
96.如果a
12
>0,a
21
>0,且a
32
>0,则满足上述第一条件,确定设备2发生故障;如果a
12
>0,a
21
>0,且a
32
=0,则满足上述第二条件,确定设备1和设备2之间的链路发生故障。
97.本实施方式在检测到设备2故障时,利用设备3的历史心跳数据,判断故障属于设备2本身的故障还是设备1与设备2之间的传输链路发生故障,从而提升了分布式网络在网络波动场景下,故障检测的准确率。
98.第三种实施方式
99.本实施方式与前述第二种可能的实施方式相似,不同之处在于设备1获取的历史心跳数据中,除了第二种可能的实施方式的a
12
,a
21
,a
32
之外,还包括a
23
,所述a
31
表示设备3在第一时间段内统计的设备1反馈应答响应的累计超时次数,此时n1=a
12
,n2=a
21
,n3=a
32
a
23
,则上述步骤102,通过历史心跳数据判断故障原因是设备2发生故障,还是设备1和设备2之间的传输链路发生故障,判断方法如下:
100.如果a
12
>0,a
21
>0,且a
32
a
23
>0,则满足上述第一条件,确定设备2发生故障;如果a
12
>0,a
21
>0,且a
32
a
23
=0,则满足上述第二条件,确定故障原因是设备1和设备2之间的链路发生故障。
101.需要说明的是,根据上述历史心跳数据的不同,还可以包括其他更多或更少的判断方法,本实施例对上述各种具体的判断方法不做一一赘述。
102.第四种实施方式
103.本实施方式在上述步骤101之前,如果第一设备在检测第二设备发生异常时,网络中有除了第一设备和第二设备之外,还包括两个或两个以上的终端设备,则需要先从至少两个终端设备中选择一个作为所述第三设备。
104.一种具体的选择方法是,第一设备分别向两个或两个以上设备中的每个设备发送获取历史心跳数据的请求,每个接收到的请求的设备会向第一设备发送自己记录的历史心跳数据,第一设备接收到的第一个历史心跳数据时,将发送该第一个历史心跳数据的设备确定为所述第三设备。所述接收到的该第一个历史心跳数据的设备的响应速度最快,或者,距离第一设备最近,因此选择该设备作为第三设备处理效率较高。
105.在确定了所述第三设备,并接收了该第三设备上报的历史心跳数据之后,执行前述实施例的步骤101和102,对第二设备的响应超时原因进行分析处理,具体过程参见前述第一种、第二种或第三种实施方式的说明,本实施例对此不再赘述。
106.本实施例中,当有多个设备时,第一设备同时向这些设备中的每一个发送获取历史心跳数据的请求,并选择其中第一个收到的历史心跳数据所对应的设备,作为第三设备,从而可以提高检测效率。
107.应理解,还可以采用其他选择标准来确定所述第三设备,比如与第一设备距离最近的一个设备作为第三设备,本实施例对上述选择确定第三设备的判断标准不予限制。
108.本实施例提供的方法应用于一种分布式网络内,当其中的一个设备发生异常时,获取并同步网络内其他设备的历史心跳数据,并对历史心跳数据进行合并处理,利用处理后的数据准确定位故障设备。具体地,将历史心跳数据转换为某设备在过去一段时间的累计超时次数,通过比较各设备过去一段时间内的累计超时次数,确定出发生故障的设备,即累计超时次数最多的设备,本方法提升了网络波动场景下,分布式网络内设备故障检测的准确性,避免利用单设备信息进行决策导致的误判。
109.需要说明的是,本实施例以第一设备为例对第二设备出现的异常状况进行检测,同理地,在分布式网络中,第二设备和第三设备也可以利用同样的方法检测第一设备发生异常状态的原因,其中,第二设备在检测第一设备发生异常时的检测方法与前述实施例中的方法相同,参见上述实施例中的方法步骤,本实施例不再赘述。
110.下面介绍与上述方法实施例对应的装置实施例。
111.图4为本技术实施例提供的一种设备检测装置的结构示意图。所述装置可以是一种通信设备,或位于所述通信设备中的一个部件,例如芯片或芯片系统。并且该装置可以实现前述实施例中的设备检测方法。
112.具体地,如图4所示,该装置可以包括:数据同步模块401、处理模块402、心跳检测模块403和采样模块404。此外,所述装置还可以包括存储单元等其他的单元或模块。
113.其中,各个模块至少具备以下功能,参见图5所示,
114.501:心跳检测模块403用于在第一设备检测到第二设备反馈的应答响应超时之前,周期性地向网络中的所述第二设备和第三设备发送心跳数据包。采样模块404用于分别接收来自所述第二设备和所述第三设备根据所述心跳数据包反馈的应答响应,并统计所述第一时间段内所述第二设备反馈应答响应的累计超时次数,和,所述第三设备反馈应答响应的累计超时次数。
115.502:采样模块404将在第一时间段内统计的各个设备的应答响应情况作为历史心跳数据发送给数据同步模块401。
116.503:数据同步模块401在当第一设备检测到第二设备反馈的应答响应超时时(即设备2状态异常消息时),获取所述第一设备在第一时间段内同步的历史心跳数据,所述历史心跳数据包括所述第一设备、所述第二设备和第三设备中每个设备检测的其他两个设备对心跳数据包的应答响应情况。
117.504:处理模块402用于根据所述历史心跳数据中每个设备检测的所述应答响应情况,确定所述第二设备应答响应超时的原因,所述原因包括:所述第二设备发生故障,或者所述第二设备与所述第一设备之间的传输链路发生故障。
118.可选的,在本实施例的一种具体的实现方式中,处理模块402具体用于根据所述每个设备检测的所述应答响应情况分别确定所述第一设备、所述第二设备和所述第三设备在所述第一时间段内的应答响应超时总数n1,n2和n3,以及,当满足第一条件时,确定所述原因是所述第二设备发生故障。其中,所述第一条件为:所述第二设备对应的所述应答响应超时总数n2最大,且所述第三设备对应的所述应答响应超时总数n3大于0。
119.可选的,在本实施例的另一种具体的实现方式中,处理模块402还用于当满足第二条件时,确定所述原因是所述第二设备与所述第一设备之间的传输链路发生故障。其中,所述第二条件为:所述第一设备对应的所述应答响应超时总数n1大于0,所述第二设备对应的所述应答响应超时总数n2大于0,且所述第三设备对应的所述应答响应超时总数n3等于0。
120.进一步地,在一种可能的实现方式中,所述历史心跳数据包括:所述第一设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
12
,所述第一设备在第一时间段内统计的所述第三设备反馈应答响应的累计超时次数a
13
;所述第二设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
21
,所述第二设备在第一时间段内统计的所述第三设备反馈应答响应的累计超时次数a
23
;所述第三设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
32
,所述第三设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
31
;所述第一条件为:n2>n1,n2>n3,且n3>0;其中,n1=a
12
a
13
a
21
a
31
,n2=a
12
a
21
a
23
a
32
,n3=a
13
a
23
a
31
a
32

121.进一步地,在另一种可能的实现方式中,还包括上述第二条件为n1=n2>0,n3=0。
122.可选的,在另一种可能的实现方式中,当所述历史心跳数据包括:所述第一设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
12
;所述第二设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
21
;所述第三设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
32
时,所述第一条件为:a
12
>0,a
21
>0,且a
32
>0;所述第二条件为:a
12
>0,a
21
>0,且a
32
=0。
123.可选的,在又一种可能的实现方式中,当所述历史心跳数据包括:所述第一设备在
第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
12
;所述第二设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
21
;所述第三设备在第一时间段内统计的所述第二设备反馈应答响应的累计超时次数a
32
,所述第三设备在第一时间段内统计的所述第一设备反馈应答响应的累计超时次数a
31
时,所述第一条件为:a
12
>0,a
21
>0,且a
32
a
23
>0;所述第二条件为:a
12
>0,a
21
>0,且a
32
a
23
=0。
124.可选的,在本实施例的又一种具体的实现方式中,处理模块402还用于在两个或两个以上设备中选择所述第三设备,所述第三设备为在所述第一设备向两个或两个以上设备中的每个设备发送获取历史心跳数据的请求的情况下,通过所述数据同步模块接收到的第一个历史心跳数据所来自的设备。
125.另外,在具体的硬件实现中,本实施例中还提供了一种通信设备,该通信设备可以是一个终端设备或网络设备,或者是集成在上述终端设备或网络设备上的一个部件。
126.图6示出了一种通信设备的结构示意图,该网络设备可以包括:处理器110、存储器120、和至少一个通信接口130。其中,处理器110、存储器120和至少一个通信接口130可通过通信总线耦合。
127.其中,处理器110为通信设备的控制中心,可用于设备间的通信,例如包括与第二设备、第三设备以及其他设备之间的信息传输。
128.处理器110可以由集成电路(integrated circuit,ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器110可以包括中央处理器(central processingunit,cpu)或数字信号处理器(digital signal processor,dsp)等。
129.此外,处理器110还可以包括硬件芯片,所述该硬件芯片可以是专用集成电路(application specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。可选的,所述硬件芯片为一种处理芯片,或芯片电路。
130.存储器120用于存储和交换各类数据或软件,包括存储历史心跳数据、心跳数据包、响应包或响应报文等。此外存储器120中可以存储有计算机程序和代码。
131.具体地,存储器120可以包括易失性存储器(volatile memory),例如随机存取内存(random access memory,ram);还可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard sisk drive,hdd)或固态硬盘(solid-state drive,ssd),存储器120还可以包括上述种类的存储器的组合。
132.通信接口130,使用任何收发器一类的装置,用于与其它设备或通信网络通信,如以太网,无线接入网(radio access network,ran),无线局域网(wireless local area network,wlan)、虚拟可扩展局域网(virtual extensible local area network,vxlan)等。
133.应理解,上述通信设备中还可以包括其他更多或更少的部件,本技术实施例示意的结构并不构成对通信设备的具体限定。并且图6所示的部件可以以硬件,软件、固件或者其任意组合的方式来实现。
134.当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。例如,在前述图4所示的装置中的心跳检测模块403和采样模块404可以通过通信接口来实现,所述数据同步模块401和处理模块402的功能可以由处理器110来实现,所述存储单元的功能可以由存储器120实现。
135.具体地,所述通信设备利用通信接口接收至少两个其他设备发送的应答响应,处理器110当检测到第二设备反馈的应答响应超时时,获取自己在第一时间段内同步的历史心跳数据,然后根据所述历史心跳数据中每个设备检测的应答响应情况,确定所述第二设备应答响应超时的原因。具体地,当检测到第二设备反馈的应答响应超时时,调用存储器120中的程序代码,执行上述实施例图3或图5所示的方法。
136.此外,该通信设备中还包括移动通信模块、无线通信模块等。所述移动通信模块包括:2g/3g/4g/5g等无线通信功能的模块。此外,还可以包括滤波器、开关、功率放大器、低噪声放大器(low noise amplifier,lna)等。所述无线通信模块可以提供应用在通信设备上的包括wlan、蓝牙(bluetooth),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm)等无线通信的解决方案。
137.此外,本技术实施例还提供了一种网络系统,该网络系统结构可以是如前述图2所示分布式网络架构,包括至少3个通信设备,比如设备1至设备3。其中,所述每个设备的结构可以是如图6所示的通信设备,用于实现前述实施例中的设备检测方法。
138.本实施例中,利用两个周边设备检测的历史心跳数据,和设备自身获取的历史心跳数据对处于异常状态的设备进行检测,通过比较各设备过去一段时间内的超时次数,确定出发生故障的原因是设备本身的故障,或者是概率性丢包导致的链路故障,由于获取的历史心跳数据是多个设备互相检测和上报的心跳超时情况,利用全局信息进行决策,所以相比于单一设备的历史心跳数据检测,本方法提高了分布式网络内设备故障检测的准确率,从而避免网络波动情况下由于概率性丢包导致的误判。
139.本技术实施例还提供一种计算机程序产品,所述计算机程序产品包括一个或多个计算机程序指令。在计算机加载和执行所述计算机程序指令时,全部或部分地产生按照上述各个实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。
140.所述计算机程序指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个通信设备、计算机、服务器或数据中心通过有线或无线方式向另一个通信设备进行传输。
141.其中,所述计算机程序产品和所述计算机程序指令可以位于前述通信设备的存储器中,从而实现本技术实施例所述的设备检测方法。
142.此外,在本技术实施例的描述中,所述至少一个是指一个或一个以上,所述至少三个是指三个或三个以上。另外,为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”、“第三”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”、“第三”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”、“第三”等字样也并不限定一定不同。
143.以上所述的本技术实施例并不构成对本技术保护范围的限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献