故障诊断装置和方法、以及退避时间的设置方法.pdf

上传人:e2 文档编号:663269 上传时间:2018-03-02 格式:PDF 页数:30 大小:5.82MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310149266.8

申请日:

2013.04.26

公开号:

CN104125108A

公开日:

2014.10.29

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):H04L 12/26申请日:20130426|||公开

IPC分类号:

H04L12/26; H04L12/44; H04L12/66

主分类号:

H04L12/26

申请人:

富士通株式会社

发明人:

张兆宇; 底欣; 温允; 藤田裕志; 尾崎一幸

地址:

日本神奈川县川崎市

优先权:

专利代理机构:

北京三友知识产权代理有限公司 11127

代理人:

田勇

PDF下载: PDF下载
内容摘要

本发明实施例提供一种故障诊断装置和方法、以及退避时间的设置方法,所述故障诊断装置包括:时间启动单元,在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;根节点确定单元,根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;诊断控制单元,控制所述根节点启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。通过本发明实施例,可以在网关处获得统一的诊断结果,同时降低系统的通信开销。

权利要求书

1.  一种故障诊断装置,所述故障诊断装置包括:
时间启动单元,在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;其中,通过将所述怀疑节点的多个邻居节点分为不同的组来设置所述退避时间;
根节点确定单元,根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;
诊断控制单元,控制所述根节点来启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。

2.
  根据权利要求1所述的故障诊断装置,其中,所述故障诊断装置还包括:
分组单元,根据通信距离将所述怀疑节点的多个邻居节点分为多个不同的组。

3.
  根据权利要求2所述的故障诊断装置,其中,所述分组单元根据通信距离将所述怀疑节点的多个邻居节点分为第一组和第二组;
所述第一组中的邻居节点与所述怀疑节点的通信距离小于或等于R/2,所述第二组中的邻居节点与所述怀疑节点的通信距离大于R/2;其中,所述R为所述怀疑节点的通信范围。

4.
  根据权利要求1至3任一项所述的故障诊断装置,其中,所述故障诊断装置还包括:
时间设置单元,根据不同的组来设置所述退避时间,其中不同的组的退避时间所形成的时间范围互不重叠。

5.
  根据权利要求4所述的故障诊断装置,其中,所述时间设置单元采用如下规则设置所述退避时间:
t0≤t1≤BO1≤t2<t3≤BO2≤t4
其中,BO1是为第一组的邻居节点设置的退避时间,BO2是为第二组的邻居节点设置的退避时间;t1、t2、t3、t4是预定的时间,t0为所述诊断节点检测到所述怀疑节点故障的时刻。

6.
  根据权利要求5所述的故障诊断装置,其中,
BO1=t1+(t2-t1)·F(Hop,NN)
BO2=t3+(t4-t3)·F(Hop,NN)
F(Hop,NN)为一取值在[0,1]的函数,所述F(Hop,NN)与节点的跳数Hop成正比,与节点的邻居数量NN成反比。

7.
  根据权利要求3所述的故障诊断装置,其中,所述故障诊断装置还包括:
节点选择单元,当所述第一组的邻居节点为空时,从所述第二组中挑选一个邻居节点作为所述第一组的邻居节点;并且,为选择出的所述邻居节点设置对应所述第一组的退避时间。

8.
  根据权利要求7所述的故障诊断装置,其中,所述故障诊断装置还包括:
时间发送单元,将所述退避时间发送给选择出的所述邻居节点,使得所述邻居节点存储并使用所述退避时间。

9.
  根据权利要求1所述的故障诊断装置,其中,所述诊断控制单元还用于控制所述根节点广播检测包;使得其他诊断节点在退避时间倒计时未结束且收到所述检测包时,不再进行退避时间的倒计时。

10.
  一种故障诊断方法,所述故障诊断方法包括:
在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;其中,通过将所述怀疑节点的多个邻居节点分为不同的组来设置所述退避时间;
根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;
控制所述根节点来启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。

11.
  一种退避时间的设置方法,所述设置方法包括:
将节点的多个邻居节点分为不同的组;
对于不同组的邻居节点设置不同的退避时间,其中不同的组的退避时间所形成的时间范围互不重叠。

12.
  根据权利要求11所述的设置方法,其中,将节点的多个邻居节点分为不同的组具体包括:根据通信距离将节点的多个邻居节点分为多个不同的组。

13.
  根据权利要求12所述的设置方法,其中,根据通信距离将所述多个邻居节点分为第一组和第二组;
所述第一组中的邻居节点与所述节点的通信距离小于或等于R/2,所述第二组中的邻居节点与所述节点的通信距离大于R/2;其中,所述R为所述节点的通信范围。

14.
  根据权利要求11至13任一项所述的设置方法,其中,采用如下规则设置所述退避时间:
t0≤t1≤BO1≤t2<t3≤BO2≤t4
其中,BO1是为第一组的邻居节点设置的退避时间,BO2是为第二组的邻居节点设置的退避时间;t1、t2、t3、t4是预定的时间;t0为诊断节点检测到怀疑节点故障的时刻。

15.
  根据权利要求14所述的设置方法,其中,
BO1=t1+(t2-t1)·F(Hop,NN)
BO2=t3+(t4-t3)·F(Hop,NN)
F(Hop,NN)为一取值在[0,1]的函数,所述F(Hop,NN)与节点的跳数Hop成正比,与节点的邻居数量成反比。

说明书

故障诊断装置和方法、以及退避时间的设置方法
技术领域
本发明涉及网络故障诊断技术领域,特别涉及一种故障诊断装置和方法、以及退避时间的设置方法。
背景技术
网络在发生故障时,需要启动网络故障诊断过程来排除故障,例如可以包括链路故障诊断和节点故障诊断。目前,当一怀疑节点需要诊断时,该怀疑节点的多个诊断节点可能均启动诊断过程,各自建立诊断树并上报诊断结果。
但是,在实现本发明的过程中,发明人发现现有技术的缺陷在于:在怀疑节点需要诊断的情况下,由于无法保证只有一个诊断节点上报诊断结果,因而在网关(GW,Gateway)处无法获得统一的诊断结果,同时多个诊断过程被启动、以及多个诊断节点上报诊断信息也会给系统带来过大的通信开销。
发明内容
本发明实施例提供一种故障诊断装置和方法、以及退避时间的设置方法,目的在于在网关处获得统一的诊断结果,同时降低系统的通信开销。
根据本发明实施例的一个方面,提供一种故障诊断装置,所述故障诊断装置包括:
时间启动单元,在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;其中,通过将所述怀疑节点的多个邻居节点分为不同的组来设置所述退避时间;
根节点确定单元,根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;
诊断控制单元,控制所述根节点启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。
根据本发明实施例的另一个方面,提供一种故障诊断方法,所述故障诊断方法包括:
在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;其中,通过将所述怀疑节点的多个邻居节点分为不同的组来设置所述退避时间;
根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;
控制所述根节点启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。
根据本发明实施例的另一个方面,提供一种退避时间的设置方法,所述设置方法包括:
将节点的多个邻居节点分为不同的组;
对于不同组的邻居节点,设置不同的退避时间。
本发明实施例的有益效果在于:在怀疑节点需要诊断时,启动诊断节点针对怀疑节点的退避时间,根据对退避时间的倒计时来确定根节点,并由该根节点启动建立诊断树,接收诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。由此,可以在网关处获得统一的诊断结果,同时降低系统的通信开销。
参照后文的说明和附图,详细公开了本发明的特定实施方式,指明了本发明的原理可以被采用的方式。应该理解,本发明的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本发明的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
图1是本发明实施例1的故障诊断装置的一构成示意图;
图2是本发明实施例1的故障诊断装置的另一构成示意图;
图3是本发明实施例1的对一节点的邻居节点进行分组之后的示意图;
图4是本发明实施例1的t1、t2、t3、t4与BO1、BO2的关系示意图;
图5是本发明实施例1的故障诊断装置的另一构成示意图;
图6是本发明实施例1的对一节点的邻居节点进行分组之后的另一示意图;
图7是本发明实施例1的检测包的一结构示意图;
图8是本发明实施例2的故障诊断方法的一流程示意图;
图9是本发明实施例2的故障诊断方法的另一流程示意图;
图10是本发明实施例3的退避时间的设置方法的一流程示意图;
图11是本发明实施例3的退避时间的设置方法的一示例图;
图12是本发明实施例3的退避时间的设置方法的另一示例图;
图13是本发明实施例4的网络节点的一示意图;
图14是本发明实施例4的网络节点的另一示意图。
具体实施方式
下面结合附图对本发明的各种实施方式进行说明。这些实施方式只是示例性的,不是对本发明的限制。为了使本领域的技术人员能够容易地理解本发明的原理和实施方式,本发明的实施方式以无线Ad hoc网络或者无线传感器网络为例进行说明。但应该注意的是,本发明不限于此,本发明的实施方式可以适用于所有存在网络故障的通信系统。
实施例1
本发明实施例提供一种故障诊断装置,图1是本发明实施例的故障诊断装置的一构成示意图。如图1所示,该故障诊断装置100包括:时间启动单元101、根节点确定单元102和诊断控制单元103。
其中,时间启动单元101在怀疑节点需要诊断时,启动诊断节点针对该怀疑节点的退避时间;根节点确定单元102根据对退避时间的倒计时来确定根节点,根节点是该怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;诊断控制单元103控制根节点启动建立诊断树,并接收该诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。
在本实施例中,故障诊断装置100可以是诊断节点的一组成部分,网络中的一个或多个诊断节点可以具有该故障诊断装置100,诊断节点的其他部分的构成可以参考现有技术。例如,网络中的每一诊断节点均可以具有该故障诊断装置100;而怀疑节点可以具有与诊断节点相同的构成。由此,网络中的各个节点之间可以形成分布式的 结构。
但本发明不限于此,例如故障诊断装置100还可以是独立于诊断节点的部件,可以是网络中控制多个诊断节点的设备,由此在网络中形成集中式的结构。或者,故障诊断装置100的一部分可以位于诊断节点上,而另一部分形成集中式的设备。本领域技术人员可以根据实际情况确定具体的实施场景。在以下的实施例中,仅以该故障诊断装置包括在一个或多个诊断节点中为例进行说明。
在本实施例中,诊断过程中可以有两种节点:诊断节点(DN,Detection Node)和怀疑节点(SN,Suspect Node)。例如,当节点A无法和节点B通信时,节点A会怀疑B发生故障,A会启动一个针对B的诊断过程;A称为诊断节点DN,而B称作怀疑节点SN。诊断节点是怀疑节点的一个或多个邻居节点,也就是说,诊断节点的集合可以是怀疑节点的邻居节点集合的一个子集。
当怀疑节点B需要诊断时,可能存在多个诊断节点(例如除节点A之外,还有节点C、D)。在具体实施时,诊断节点A、C、D可以通过各自的时间启动单元101来启动退避时间开始倒计时;然后倒计时最先结束的诊断节点(例如节点A)中的根节点确定单元102可以确定该节点A为根节点(RN,Root Node),而其他诊断节点(例如节点C、D)中的根节点确定单元102可以确定节点C、D不是根节点(可以停止退避时间的倒计时,具体可以参考后述内容)。
由此,可以由诊断节点A中的诊断控制单元103进行诊断控制,由该根节点A启动建立诊断树,加入到诊断树中的节点将各自的诊断信息发送给该根节点A,节点A最终将诊断结果上报给GW。因而在网关处可以获得统一的诊断结果,同时降低系统的通信开销。至于具体如何进行诊断树的建立、以及具体如何收集诊断信息和如何发送诊断结果,可以参考现有技术,本发明不再详细说明。
在本实施例中,退避时间可以预先设置。对于网络中的一个节点,可以为该节点的多个邻居节点设置退避时间。退避时间可以通过将该节点的多个邻居节点分为不同的组后而设置,不同组的邻居节点设置不同的退避时间。
在具体实施时,如果怀疑节点的邻居节点中存在网关节点,也就是说网关是该怀疑节点的一邻居节点,则在该网关对该怀疑节点进行诊断时,可以将该网关确定为根节点。例如,可以直接确定该网关为根节点,由该网关建立诊断树;也可以为该网关设置小于其他节点的退避时间,使得该网关最先结束退避时间。
在具体实施时,至于如何设置退避时间,可以由该节点对各个邻居节点统一分配,也可以由各个邻居节点各自自己计算。本发明不限于此,本实施例中仅以各个邻居节点自己计算各自针对该节点的退避时间为例进行说明。
图2是本发明实施例的故障诊断装置的另一构成示意图。如图2所示,该故障诊断装置200包括:时间启动单元101、根节点确定单元102和诊断控制单元103。如上所述。
如图2所示,该故障诊断装置200还可以包括:分组单元204。该分组单元204根据通信距离将怀疑节点的多个邻居节点分为不同的组。
在具体实施时,分组单元204具体可以用于:根据通信距离将一节点的多个邻居节点分为第一组和第二组;其中,第一组中的邻居节点与该节点的通信距离小于或等于设定的距离,比如R/2、R/3、R/4等,第二组中的邻居节点与该节点的通信距离大于所述设定的距离。其中,R为该节点的通信范围。
此外,也可以通过接收到该节点的信号强度进行分组,其中,第一组中的邻居节点接收到该节点的信号强度大于等于设定的信号强度阈值,比如-50dBm、-60dBm、-70dBm等,第一组中的邻居节点接收到该节点的信号强度小于所述设定的信号强度阈值。
当分成超过两组,如分成第一组、第二组、第三组,第一组中的邻居节点与该节点的通信距离小于或等于R/4,第二组中的邻居节点与该节点的通信距离大于R/4小于等于R/2,第三组中的邻居节点与该节点的通信距离大于R/2。其余的分组方法不再举例,与此类似。
例如,网络中的每个节点可以通过周期性的侦听(例如采用Hello包)机制来获取自己和邻居节点间的接收信号强度指示(RSSI,Received Signal Strength Indication)信息,进而得到该节点和邻居节点之间的通信距离,然后可以将多个邻居节点进行分组。
值得注意的是,以上通过通信距离进行分组的方法仅是本发明的具体实施方式,但本发明不限于此,例如还可以根据其他信息(例如通信质量)进行分组,或者将邻居节点分为多于2组(例如3组、4组等等),可以根据实际情况确定具体的实施场景。
图3是本发明实施例的对一节点的邻居节点进行分组之后的示意图。如图3所示, 节点①是该节点,节点②③④⑤⑥是其邻居节点。可以将与节点①距离小于等于R/2(R是节点的通信范围)的区域(图中区域A)称作主要区域PZ(Primary Zone);在节点①的通信范围内,并且与节点①距离大于R/2的区域(图中区域B)称作次要区域SZ(Secondary Zone)。由此,可以将邻居节点分组(例如,PZ区域的邻居节点对应第一组,SZ区域的邻居节点对应第二组)。
在本实施例中,将一节点的多个邻居节点分为不同的组之后,可以对不同组的邻居节点设置不同的退避时间。由此,可以使得不同组的邻居节点的退避时间不会同时结束,根据退避时间的倒计时来确定的根节点可以为一个。
如图2所示,该故障诊断装置200还可以包括:时间设置单元205,该时间设置单元205对不同组的邻居节点设置不同的退避时间。其中,对于每个组中的多个邻居节点,所对应的退避时间可以为多个;例如各个邻居节点的退避时间各不相同。因此每个组的退避时间可以形成一段时间范围。
并且,不同的组的退避时间所形成的时间范围互不重叠。以下以分为两组为例,对退避时间的设置进行说明。在本实施例中,可以按照下述规则为每个邻居节点设置一个退避时间BO(Backoff)。
例如,时间设置单元205可以采用如下公式设置退避时间:
t0≤t1≤BO1≤t2<t3≤BO2≤t4
其中,BO1是为第一组的邻居节点(例如图3中的④⑤)设置的退避时间,BO2是为第二组的邻居节点(例如图3中的②③⑥)设置的退避时间;其中,t1、t2、t3、t4是预定的时间,t0为该诊断节点检测到怀疑节点故障的时刻。
在具体实施时,可以采用如下规则来实现:
BO1=t1+(t2-t1)·F(Hop,NN)
BO2=t3+(t4-t3)·F(Hop,NN)
F(Hop,NN)为一取值在[0,1]的函数,F(Hop,NN)与该邻居节点的跳数Hop成正比,与该邻居节点的邻居数量成反比。
在具体实施时,t0=t1时表明当该节点一检测到故障就开始退避时间的倒计时;t0<t1时表明该节点在检测到故障之后,延时一段时间再开始退避时间的倒计时。t1=t2时,该节点可以以MAC层CSMA/CA机制的backoff时间作为自己的退避时间;MAC层中的backoff机制是为了保证避免信道冲突,具体内容可以参考现有技术。对于t3、t4 可以与t1、t2的情况相同。
在具体实施时,如果怀疑节点的邻居节点中存在网关节点,则可以为该网关分配t0到t1之间的退避时间,使得该网关最先结束退避时间的倒计时,成为根节点而启动建立诊断树。
在一个实施方式中,F(HopNN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;arctg(HopNN)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数。
在另一个实施方式中,F(HopNN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;(sin(HopNN)+1)+&epsiv;]]>
或者,F(Hop,NN)=α&CenterDot;(cos(HopNN)+1)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数;并且如果则令
图4是本发明实施例的t1、t2、t3、t4与BO1、BO2的关系示意图。如图4所示,BO1是[t1,t2]之间的某值,BO2是[t3,t4]之间的某值。如果距离怀疑节点R/2的范围内至少有一个诊断节点,[t2,t3]这段时间保证了只有一个诊断节点会启动诊断树的建立过程。
在具体实施时,t2和t3之间的间隔时间为一参数。可以设定t2和t3之间的间隔为“数据包传输3跳的时间”;也可以设定t2和t3之间的间隔是“数据包传输9跳的时间”。
例如,对于图3所示的场景,邻居节点④⑤中的时间设置单元205可以针对节点①采用BO1=t1+(t2-t1)·F(Hop,NN)来设置退避时间T4、T5;邻居节点②③⑥中的时间设置单元205可以针对节点①采用BO2=t3+(t4-t3)·F(Hop,NN)来设置退避时间T2、T3、T6。而节点①中的时间设置单元205也可以针对其邻居节点来为自己设置退避时间。
值得注意的是,以上仅对本发明中退避时间的设置进行了示意性说明,但本发明不限于此,例如还可以根据实际情况采用适当的变形等,可以采用其他的公式。
图5是本发明实施例的故障诊断装置的另一构成示意图。如图5所示,该故障诊断装置500包括:时间启动单元101、根节点确定单元102、诊断控制单元103、分组单元204和时间设置单元205,如上所述。
如图5所示,该故障诊断装置还可以包括:节点选择单元505,在第一组没有邻 居节点时,从第二组中挑选一个邻居节点作为第一组的邻居节点;并且,时间设置单元205还用于为选择出的该邻居节点设置对应第一组的退避时间。
具体地,节点选择单元505可以在所有的邻居节点与该诊断节点的距离全都大于R/2时,从距离全都大于R/2的邻居节点中挑选一个邻居节点作为第一组的邻居节点。
如图5所示,该故障诊断装置还可以包括:时间发送单元506。该时间发送单元506将时间设置单元205设置的退避时间发送给选择出的邻居节点,使得邻居节点存储该退避时间。
其中,该节点选择单元505可以选择距离该诊断节点最近的邻居节点;或者,当存在多个距离相同的邻居节点时,该节点选择单元505选择其中跳数最小的邻居节点;或者,当存在多个距离相同且多个跳数相同的邻居节点时,该节点选择单元505从其中随机选取一个邻居节点。
图6是本发明实施例的对一节点的邻居节点进行分组之后的另一示意图。如图6所示,节点①是该节点,节点②③⑥是其邻居节点。可以将与节点①距离小于等于R/2(R是节点的通信范围)的区域(图中区域A)称作主要区域PZ;在节点①的通信范围内,并且与节点①距离大于R/2的区域(图中区域B)称作次要区域SZ。
如图6所示,在区域A中没有邻居节点,而在区域B中具有邻居节点②③⑥。在具体实施时,针对例如附图6在PZ(区域A)中没有节点的情况,即该节点①发现邻居节点与自己的距离全都大于R/2时,该节点①挑选一个距离自己最近的节点(例如节点②)。如果有多个距离相同的邻居节点,则挑选其中跳数最小的邻居节点;如果还有多个跳数相同的邻居节点,则从中随机选取。
在选择出该邻居节点(例如节点②)之后,节点①可以为该邻居节点②设置一个在[t1,t2]内的BACKOFF时间,并将这个时间发送给该邻居节点。
在本实施例中,时间启动单元101具体可以用于:在诊断节点没有从怀疑节点连续收到多个侦听包(Hello包)时,启动针对该怀疑节点的退避时间开始倒计时,并可以将该怀疑节点存储在本地作为本地怀疑节点LSN(Local Suspect Node)。
在本实施例中,诊断控制单元103还可以用于:在根节点确定单元102确定根节点之后,控制该根节点广播检测包DP(Detection Packet);使得其他诊断节点在退避时间倒计时未结束且收到该检测包时,不再进行退避时间的倒计时。其中,其他诊断节点是指除了确定为根节点的诊断节点外的一个或多个诊断节点。
在具体实施时,例如当节点A发现其邻居节点B已有连续K次Hello包未收到时,节点A认为节点B需要进行诊断,并将节点B存储在本地,记做LSN(Local SN)。如果节点A的退避时间BO计时结束,则可以建立诊断树并广播一个检测包DP;如果节点A在BO倒计时未结束时就收到了其他节点发送的检测包DP,则不再进行BO倒计时,而将该检测包DP继续广播(需要指出的是,已加入到诊断树中的节点如果再次收到DP包,则不再进行广播)。
在具体实施时,该检测包DP可以包括源地址、怀疑节点的标识信息、以及根节点的标识信息。此外,还可以包括帧类型(Frame Type)和保留位(Reserved)。
图7是本发明实施例的检测包的一结构示意图。如图7所示,可以包括:DP包的源地址(可以用GS表示);帧类型(FT,Frame Type),表明该包是detection packet;怀疑节点标识(可以用SN ID表示);根节点标识(可以用RN ID表示);以及保留位(可以用Reserved表示)。
在本实施例中,当一个节点收到DP后,如果发现该DP的SN ID和本地存储的LSN相同,则可以将该DP的GS改为自己的地址之后继续广播这个DP;如果发现SN ID和本地邻居表中的某个邻居节点相同,则继续广播这个DP;如果发现SN ID不在本地邻居表内,则不广播这个DP(说明该节点不是SN的邻居节点)。
由上述实施例可知,在怀疑节点需要诊断时,启动诊断节点针对怀疑节点的退避时间,根据对退避时间的倒计时来确定根节点,并由该根节点启动建立诊断树,接收诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。由此,可以在网关处获得统一的诊断结果,同时降低系统的通信开销。
实施例2
本发明实施例提供一种故障诊断方法,对应于实施例1的故障诊断装置。图8是本发明实施例的故障诊断方法的一流程示意图,如图8所示,该故障诊断方法包括:
步骤801,在怀疑节点需要诊断时,启动诊断节点针对该怀疑节点的退避时间;
步骤802,根据对该退避时间的倒计时来确定根节点;该根节点为该怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;
步骤803,控制该根节点启动建立诊断树,并接收诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。
在本实施例中,退避时间可以是预先确定的。对于每个诊断节点,可以将该诊断 节点的多个邻居节点分为不同的组,并对不同组的邻居节点设置不同的退避时间。
具体地,将诊断节点的多个邻居节点分为不同的组具体可以包括:根据通信距离将多个邻居节点分为多个不同的组。例如,可以分为第一组和第二组;第一组中的邻居节点与该诊断节点的通信距离小于或等于R/2,第二组中的邻居节点与该诊断节点的通信距离大于R/2;其中,R为该诊断节点的通信范围。
在一个实施方式中,实施场景可以如图3所示。第一组(例如图3中的区域A)和第二组(例如图3中的区域B)均存在邻居节点。可以分别对不同组的邻居节点设置不同的退避时间。
在另一个实施方式中,实施场景可以如图6所示。在所有的邻居节点与该诊断节点的距离全都大于R/2时,可以挑选一个邻居节点作为第一组的邻居节点。其中,挑选一个邻居节点作为所述第一组的邻居节点具体可以包括:选择距离该诊断节点最近的邻居节点;或者,当存在多个距离相同的邻居节点时,选择其中跳数最小的邻居节点;或者,当存在多个距离相同且多个跳数相同的邻居节点时,从其中随机选取一个邻居节点。
在本实施例中,该故障诊断方法还可以包括:将设置的退避时间发送给该选择出的邻居节点,使得该邻居节点存储退避时间。
在本实施例中,步骤801中在怀疑节点需要诊断时,启动诊断节点针对该怀疑节点的退避时间具体可以包括:在该诊断节点没有从该怀疑节点连续收到多个Hello包时,启动退避时间开始倒计时,并将该怀疑节点存储在本地作为本地怀疑节点。
在本实施例中,在步骤802确定根节点之后,该故障诊断方法还可以包括:控制该根节点广播检测包;使得其他诊断节点在退避时间倒计时未结束且收到检测包时,不再进行退避时间的倒计时。其中,检测包可以包括源地址、怀疑节点的标识信息、以及根节点的标识信息。检测包的结构可以参考附图7的内容。
在本实施例中,该故障诊断方法还可以包括:当某一个诊断节点收到检测包后,如果发现该检测包的怀疑节点的标识信息和本地存储的本地怀疑节点相同,则将该检测包的源地址改为该诊断节点自己的地址,然后继续广播检测包;如果发现检测包的怀疑节点的标识信息和本地邻居表中的某个邻居节点相同,则继续广播检测包;如果发现检测包的怀疑节点的标识信息不在本地邻居表内,则不广播检测包。
图9是本发明实施例的故障诊断方法的另一流程示意图,如图9所示,该故障诊 断方法包括:
步骤901,诊断节点对怀疑节点发送的Hello包进行计数。
步骤902,判断是否没有连续接收到该怀疑节点发送的K个Hello包;如果没有连续接收到,则执行步骤903。
步骤903,诊断节点认为该怀疑节点需要诊断,开启退避时间开始倒计时。
步骤904,判断退避时间的倒计时是否结束;如果倒计时已经结束,则执行步骤905,否则执行步骤907。
具体地,可以判断该诊断节点针对该怀疑节点的退避时间BO;如果BO大于0则该退避时间还没有结束,执行步骤907;如果BO小于等于0则该退避时间结束,执行步骤905。
步骤905,确定该诊断节点为根节点,开启建立诊断树并广播检测包DP。
步骤906,收集诊断信息并上报诊断结果给网关。
步骤907,判断是否收到其他节点发送的检测包DP;如果收到检测包DP,则执行步骤908,否则执行步骤904。
步骤908,停止退避时间倒计时,加入其他节点建立的诊断树并继续广播该检测包DP。
此外,如果接收到检测包DP的节点发现该检测包DP的怀疑节点的标识信息不在本地邻居表内,则表明该节点不是该怀疑节点的邻居节点,因此不广播该检测包DP。并且,已经加入到诊断树的节点再次接收到检测包后,也可以不再广播该检测包。
以下以图3所示的场景为例进行说明。在如图3所示的场景中,假设针对节点①,已经为邻居节点②③④⑤⑥设置了退避时间,分别是T2、T3、T4、T5、T6。具体的设置方法可以参考实施例1或者实施例3。
在节点①作为怀疑节点需要诊断时,节点②③④⑤⑥作为诊断节点开始启动退避时间倒计时。对于其中一个诊断节点(例如节点⑤),如果T5=0(即最早结束退避时间),则可以确定该节点⑤是根节点,该节点⑤开始建立诊断树并发送检测包DP。
对于其他诊断节点(例如节点②③④⑥),如果接收到该节点⑤发送的检测包DP,则停止退避时间的倒计时,加入该诊断树并继续广播该检测包DP。由此,可以由节点⑤建立诊断树,收集诊断信息并发送给网关。
由上述实施例可知,在怀疑节点需要诊断时,启动诊断节点针对怀疑节点的退避时间,根据对退避时间的倒计时来确定根节点,并由该根节点启动建立诊断树,接收诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。由此,可以在网关处获得统一的诊断结果,同时降低系统的通信开销。
实施例3
本发明实施例提供一种退避时间的设置方法,可以作为实施例2的一部分或者预先准备过程,与实施例1中退避时间的设置部分相同的内容,此处不再赘述。
图10是本发明实施例的退避时间的设置方法的一流程示意图,如图10所示,该设置方法包括:
步骤1001,将节点的多个邻居节点分为不同的组;
步骤1002,对于不同组的邻居节点,设置不同的退避时间。
在本实施例中,对于任一节点,可以将该节点的多个邻居节点分为不同的组,然后设置退避时间。由此,可以使得不同组的邻居节点的退避时间不会同时结束,根据退避时间的倒计时来确定的根节点可以为一个。
在具体实施时,步骤1001中将节点的多个邻居节点分为不同的组,具体可以包括:根据通信距离将多个邻居节点分为多个不同的组。例如,可以分为第一组和第二组,第一组中的邻居节点与该节点的通信距离小于或等于R/2,第二组中的邻居节点与该节点的通信距离大于R/2;其中,R为该节点的通信范围。
值得注意的是,以上通过通信距离进行分组的方法仅是本发明的具体实施方式,但本发明不限于此,例如还可以根据其他信息(例如通信质量)进行分组,或者将邻居节点分为多于2组(例如3组、4组等等),可以根据实际情况确定具体的实施场景。
在具体实施时,步骤1002中可以采用如下规则设置退避时间:
t0≤t1≤BO1≤t2<t3≤BO2≤t4
其中,BO1是为第一组的邻居节点设置的退避时间,BO2是为第二组的邻居节点设置的退避时间;t1、t2、t3、t4是预定的时间。
在具体实施时,可以采用如下规则实现:
BO1=t1+(t2-t1)·F(Hop,NN)
BO2=t3+(t4-t3)·F(Hop,NN)
F(Hop,NN)为一取值在[0,1]的函数,F(Hop,NN)与节点的跳数Hop成正比,与节点的邻居数量成反比。
在一个实施方式中,F(Hop,NN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;arctg(HopNN)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数。
在另一个实施方式中,F(HopNN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;(sin(HopNN)+1)+&epsiv;]]>
或者,F(Hop,NN)=α&CenterDot;(cos(HopNN)+1)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数;并且如果则令
值得注意的是,以上公式仅是对本发明中退避时间设置的示意性说明,但本发明不限于此,还可以根据实际情况采用适当的变形等,可以采用其他的公式。
在本实施例中,退避时间的设置可以在该节点上进行,该设置方法还可以包括:将设置的退避时间发送给各个邻居节点,使得各个邻居节点分别存储对应的退避时间。
此外,退避时间的设置还可以在各个邻居节点上进行,由各个邻居节点各自设置针对该节点的退避时间。以下以各个邻居节点各自设置针对该节点的退避时间为例进行说明。
图11是本发明实施例的退避时间的设置方法的一示例图,以图3所示的场景为例,示出了第一组和第二组中均有邻居节点的情况。如图11所示,该设置方法包括:
步骤1101,开始Hello过程。
步骤1102,计算节点间的距离。
具体地,可以使用Hello包中所包含的RSSI信息来计算节点间的距离,但本发明不限于此。
步骤1103,对于该节点的一邻居节点,判断该节点和该邻居节点的距离是否小于R/2;如果是则执行步骤1104;如果不是则执行步骤1105。
步骤1104,该邻居节点采用公式BO1=t1+(t2-t1)·F(Hop,NN)来设置退避时间。
步骤1105,该邻居节点采用公式BO2=t3+(t4-t3)·F(Hop,NN)来设置退避时间。
例如,在图3所示的场景中,邻居节点④⑤可以采用BO1=t1+(t2-t1)·F(Hop,NN)来 设置针对节点①的退避时间。其中,F(Hop,NN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;arctg(HopNN)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数。
或者,F(Hop,NN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;(sin(HopNN)+1)+&epsiv;]]>
或者,F(Hop,NN)=α&CenterDot;(cos(HopNN)+1)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数;并且如果则令Hop为节点④或⑤的跳数,NN为节点④或⑤的邻居数量。
而邻居节点②③⑥可以采用BO2=t3+(t4-t3)·F(Hop,NN)来设置针对节点①的退避时间。其中,F(Hop,NN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;arctg(HopNN)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数。
或者,F(Hop,NN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;(sin(HopNN)+1)+&epsiv;]]>
或者,F(Hop,NN)=α&CenterDot;(cos(HopNN)+1)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数;并且如果则令Hop为节点②、③或者⑥的跳数,NN为节点②、③或者⑥的邻居数量。
图12是本发明实施例的退避时间的设置方法的另一示例图,以图3和图6所示的场景为例,示出了第一组中可能没有邻居节点的情况。如图12所示,该设置方法包括:
步骤1201,开始Hello过程。
步骤1202,计算节点间的距离,并根据距离分为第一区域和第二区域。
步骤1203,判断第一区域中是否存在邻居节点;如果没有邻居节点则执行步骤1205;如果存在邻居节点则执行步骤1204。
步骤1204,该节点的邻居节点按照分组分别设置退避时间。
具体地,可以按照图11中的步骤1103至步骤1105来设置退避时间。
步骤1205,该节点从邻居节点中选择一个节点,采用第一区域的公式来为该邻 居节点设置退避时间,即采用BO1=t1+(t2-t1)·F(Hop,NN)。
具体的,可以选择距离该节点最近的邻居节点;或者,当存在多个距离相同的邻居节点时,选择其中跳数最小的邻居节点;或者,当存在多个距离相同且多个跳数相同的邻居节点时,从其中随机选取一个邻居节点。
步骤1206,该节点将该退避时间发送给该选择的邻居节点。
步骤1207,该选择的邻居节点接收到该退避时间后,将该退避时间存储在本地。
例如,在图6所示的场景中,节点①可以选择出一个邻居节点(例如节点②),然后节点①可以采用BO1=t1+(t2-t1)·F(Hop,NN)来设置节点②的退避时间。
其中,F(Hop,NN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;arctg(HopNN)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数。
或者,F(Hop,NN)可以采用如下公式:
F(Hop,NN)=α&CenterDot;(sin(HopNN)+1)+&epsiv;]]>
或者,F(Hop,NN)=α&CenterDot;(cos(HopNN)+1)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数;并且如果则令Hop为节点②的跳数,NN为节点②的邻居数量。
然后,节点①可以将该退避时间发送给节点②,由节点②采用该接收到的退避时间替换掉之前自己计算的退避时间,将该更新后的退避时间存储在本地。
由上述实施例可知,通过将节点的多个邻居节点分为不同的组,并对不同组的邻居节点设置不同的退避时间。可以使得不同组的邻居节点的退避时间不会同时结束,保证根据退避时间倒计时的根节点为一个。
实施例4
本发明实施例还提供一种网络节点,所述网络节点包括如实施例1所述的故障诊断装置。图13是本发明实施例的网络节点的一示意图,如图13所示,网络中可以具有多个网络节点1301、1302、1303等,一个或多个网络节点(例如网络节点1301)可以具有时间启动单元101、根节点确定单元102和诊断控制单元103。
此外,作为变型例,本发明的故障诊断装置还可以是集中式的。图14是本发明实施例的网络节点的另一示意图,如图14所示,可以具有多个网络节点1301、1302、 1303等。此外,网络中还可以具有故障诊断装置1304,该故障诊断装置1304具有时间启动单元101、根节点确定单元102和诊断控制单元103,对网络节点1301、1302、1303等进行控制,实现对网络节点的故障诊断。
本发明以上的装置和方法可以由硬件实现,也可以由硬件结合软件实现。本发明涉及这样的计算机可读程序,当该程序被逻辑部件所执行时,能够使该逻辑部件实现上文所述的装置或构成部件,或使该逻辑部件实现上文所述的各种方法或步骤。本发明还涉及用于存储以上程序的存储介质,如硬盘、磁盘、光盘、DVD、flash存储器等。
以上结合具体的实施方式对本发明进行了描述,但本领域技术人员应该清楚,这些描述都是示例性的,并不是对本发明保护范围的限制。本领域技术人员可以根据本发明的精神和原理对本发明做出各种变型和修改,这些变型和修改也在本发明的范围内。
关于包括以上实施例的实施方式,还公开下述的附记:
(附记1)一种故障诊断装置,所述故障诊断装置包括:
时间启动单元,在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;
根节点确定单元,根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;
诊断控制单元,控制所述根节点启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。
(附记2)根据附记1所述的故障诊断装置,其中,所述故障诊断装置还包括:
分组单元,将所述怀疑节点的多个邻居节点分为不同的组。
(附记3)根据附记2所述的故障诊断装置,其中,所述分组单元具体用于:根据通信距离将所述多个邻居节点分为第一组和第二组;
所述第一组中的邻居节点与所述怀疑节点的通信距离小于或等于R/2,所述第二组中的邻居节点与所述怀疑节点的通信距离大于R/2;其中,所述R为所述怀疑节点的通信范围。
(附记4)根据附记1至3任一项所述的故障诊断装置,其中,所述故障诊断装置还包括:
时间设置单元,根据将所述怀疑节点的多个邻居节点分成的不同的组来设置所述退避时间;其中,不同的组的退避时间所形成的时间范围互不重叠。
(附记5)根据附记4所述的故障诊断装置,其中,所述时间设置单元采用如下规则设置退避时间:
t0≤t1≤BO1≤t2<t3≤BO2≤t4
其中,BO1是为所述第一组的邻居节点设置的退避时间,BO2是为所述第二组的邻居节点设置的退避时间;t1、t2、t3、t4是预定的时间,t0为所述诊断节点检测到所述怀疑节点故障的时刻。
(附记6)根据附记5所述的故障诊断装置,其中,
BO1=t1+(t2-t1)·F(Hop,NN)
BO2=t3+(t4-t3)·F(Hop,NN)
F(Hop,NN)为一取值在[0,1]的函数,所述F(Hop,NN)与节点的跳数Hop成正比,与节点的邻居数量成反比。
(附记7)根据附记6所述的故障诊断装置,其中,所述F(Hop,NN)采用如下公式:
F(Hop,NN)=α&CenterDot;arctg(HopNN)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数。
(附记8)根据附记6所述的故障诊断装置,其中,所述F(Hop,NN)采用如下公式:
F(Hop,NN)=α&CenterDot;(sin(HopNN)+1)+&epsiv;]]>
或者,F(Hop,NN)=α&CenterDot;(cos(HopNN)+1)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数;并且如果则令
(附记9)根据附记3所述的故障诊断装置,其中,所述故障诊断装置还包括:
节点选择单元,在所述第一组的邻居节点为空时,从第二组中挑选一个邻居节点作为所述第一组的邻居节点;并且,为选择出的所述邻居节点设置对应所述第一组的退避时间。
(附记10)根据附记9所述的故障诊断装置,其中,所述节点选择单元选择距离所述怀疑节点最近的邻居节点;
或者,当存在多个距离相同的邻居节点时,所述节点选择单元选择其中跳数最小的邻居节点;
或者,当存在多个距离相同且多个跳数相同的邻居节点时,所述节点选择单元从其中随机选取一个邻居节点。
(附记11)根据附记9或10所述的故障诊断装置,其中,所述故障诊断装置还包括:
时间发送单元,将设置的退避时间发送给所述邻居节点,使得所述邻居节点存储并使用所述退避时间。
(附记12)根据附记1所述的故障诊断装置,其中,所述时间启动单元具体用于在所述诊断节点没有从所述怀疑节点连续收到多个Hello包时,启动所述退避时间开始倒计时,并将该怀疑节点存储在本地作为本地怀疑节点。
(附记13)根据附记12所述的故障诊断装置,其中,所述诊断控制单元还用于控制所述根节点广播检测包;使得其他诊断节点在退避时间倒计时未结束且收到所述检测包时,不再进行退避时间的倒计时。
(附记14)根据附记13所述的故障诊断装置,其中,所述检测包包括源地址、所述怀疑节点的标识信息、以及所述根节点的标识信息。
(附记15)一种故障诊断方法,所述故障诊断方法包括:
在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;
根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;
控制所述根节点启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。
(附记16)根据附记15所述的故障诊断方法,其中,所述故障诊断方法还包括:
将所述怀疑节点的多个邻居节点分为不同的组,并对不同组的邻居节点设置不同的退避时间。
(附记17)根据附记16所述的故障诊断方法,其中,将所述诊断节点的多个邻居节点分为不同的组具体包括:
根据通信距离将所述多个邻居节点分为第一组和第二组;所述第一组中的邻居节点与所述怀疑节点的通信距离小于或等于R/2,所述第二组中的邻居节点与所述怀疑节点的通信距离大于R/2;其中,所述R为所述怀疑节点的通信范围。
(附记18)根据附记17所述的故障诊断方法,其中,所述故障诊断方法还包括:
在所有的邻居节点与所述怀疑节点的距离全都大于R/2时,挑选一个邻居节点作为所述第一组的邻居节点。
(附记19)根据附记18所述的故障诊断方法,其中,挑选一个邻居节点作为所述第一组的邻居节点具体包括:
选择距离所述怀疑节点最近的邻居节点;
或者,当存在多个距离相同的邻居节点时,选择其中跳数最小的邻居节点;
或者,当存在多个距离相同且多个跳数相同的邻居节点时,从其中随机选取一个邻居节点。
(附记20)根据附记18或19所述的故障诊断方法,其中,所述故障诊断方法还包括:
将设置的退避时间发送给所述邻居节点,使得所述邻居节点存储并使用所述退避时间。
(附记21)根据附记15所述的故障诊断方法,其中,在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间具体包括:
在所述诊断节点没有从所述怀疑节点连续收到多个Hello包时,启动所述退避时间开始倒计时,并将该怀疑节点存储在本地作为本地怀疑节点。
(附记22)根据附记21所述的故障诊断方法,其中,所述故障诊断方法还包括:
控制所述根节点广播检测包;使得其他诊断节点在退避时间倒计时未结束且收到所述检测包时,不再进行退避时间的倒计时。
(附记23)根据附记22所述的故障诊断方法,其中,所述检测包包括源地址、所述怀疑节点的标识信息、以及所述根节点的标识信息。
(附记24)根据附记22所述的故障诊断方法,其中,所述故障诊断方法还包括:
当某一个诊断节点收到所述检测包后,如果发现所述检测包的怀疑节点的标识信息和本地存储的本地怀疑节点相同,则将所述检测包的源地址改为所述诊断节点自己的地址,然后继续广播所述检测包;
如果发现所述检测包的怀疑节点的标识信息和本地邻居表中的某个邻居节点相同,则继续广播所述检测包;
如果发现所述检测包的怀疑节点的标识信息不在本地邻居表内,则不广播所述检测包。
(附记25)一种退避时间的设置方法,所述设置方法包括:
将节点的多个邻居节点分为不同的组;
对不同组的邻居节点设置不同的退避时间,其中不同的组的退避时间所形成的时间范围互不重叠。
(附记26)根据附记25所述的设置方法,其中,将节点的多个邻居节点分为不同的组具体包括:根据通信距离将所述多个邻居节点分为多个不同的组。
(附记27)根据附记26所述的设置方法,其中,根据通信距离将所述多个邻居节点分为第一组和第二组,所述第一组中的邻居节点与所述节点的通信距离小于或等于R/2,所述第二组中的邻居节点与所述节点的通信距离大于R/2;其中,所述R为所述节点的通信范围。
(附记28)根据附记25至27任一项所述的设置方法,其中,采用如下规则设置退避时间:t0≤t1≤BO1≤t2<t3≤BO2≤t4
其中,BO1是为第一组的邻居节点设置的退避时间,BO2是为第二组的邻居节点设置的退避时间;t1、t2、t3、t4是预定的时间。
(附记29)根据附记28所述的设置方法,其中,
BO1=t1+(t2-t1)·F(Hop,NN)
BO2=t3+(t4-t3)·F(Hop,NN)
F(Hop,NN)为一取值在[0,1]的函数,所述F(Hop,NN)与节点的跳数Hop成正比,与节点的邻居数量成反比。
(附记30)根据附记29所述的设置方法,其中,所述F(Hop,NN)采用如下公式:
F(Hop,NN)=α&CenterDot;arctg(HopNN)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数。
(附记31)根据附记29所述的设置方法,其中,所述F(Hop,NN)采用如下公式:
F(Hop,NN)=α&CenterDot;(sin(HopNN)+1)+&epsiv;]]>
或者,F(Hop,NN)=α&CenterDot;(cos(HopNN)+1)+&epsiv;]]>
其中,ε为取值在[0,0.5]的随机参数;并且如果则令
(附记32)根据附记27所述的设置方法,其中,所述故设置方法还包括:
在所有的邻居节点与所述节点的距离全都大于R/2时,挑选一个邻居节点作为所 述第一组的邻居节点。
(附记33)一种网络节点,所述网络节点包括如附记1至14任一项所述的故障诊断装置。
(附记34)一种计算机可读程序,其中当在网络节点中执行所述程序时,所述程序使得计算机在所述网络节点中执行如附记15至24中任一项所述的故障诊断方法,或者如附记25至31任一项所述的退避时间的设置方法。
(附记35)一种存储有计算机可读程序的存储介质,其中所述计算机可读程序使得计算机在网络节点中执行如附记15至24中任一项所述的故障诊断方法,或者如附记25至31任一项所述的退避时间的设置方法。

故障诊断装置和方法、以及退避时间的设置方法.pdf_第1页
第1页 / 共30页
故障诊断装置和方法、以及退避时间的设置方法.pdf_第2页
第2页 / 共30页
故障诊断装置和方法、以及退避时间的设置方法.pdf_第3页
第3页 / 共30页
点击查看更多>>
资源描述

《故障诊断装置和方法、以及退避时间的设置方法.pdf》由会员分享,可在线阅读,更多相关《故障诊断装置和方法、以及退避时间的设置方法.pdf(30页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104125108A43申请公布日20141029CN104125108A21申请号201310149266822申请日20130426H04L12/26200601H04L12/44200601H04L12/6620060171申请人富士通株式会社地址日本神奈川县川崎市72发明人张兆宇底欣温允藤田裕志尾崎一幸74专利代理机构北京三友知识产权代理有限公司11127代理人田勇54发明名称故障诊断装置和方法、以及退避时间的设置方法57摘要本发明实施例提供一种故障诊断装置和方法、以及退避时间的设置方法,所述故障诊断装置包括时间启动单元,在怀疑节点需要诊断时,启动诊断节点针对所述怀疑。

2、节点的退避时间;根节点确定单元,根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;诊断控制单元,控制所述根节点启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。通过本发明实施例,可以在网关处获得统一的诊断结果,同时降低系统的通信开销。51INTCL权利要求书2页说明书16页附图11页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书16页附图11页10申请公布号CN104125108ACN104125108A1/2页21一种故障诊断装置,所述故障诊断装置包括时间启动单元,在怀疑节点需要诊。

3、断时,启动诊断节点针对所述怀疑节点的退避时间;其中,通过将所述怀疑节点的多个邻居节点分为不同的组来设置所述退避时间;根节点确定单元,根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;诊断控制单元,控制所述根节点来启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。2根据权利要求1所述的故障诊断装置,其中,所述故障诊断装置还包括分组单元,根据通信距离将所述怀疑节点的多个邻居节点分为多个不同的组。3根据权利要求2所述的故障诊断装置,其中,所述分组单元根据通信距离将所述怀疑节点的多个邻居节点分为第一组和第二组;所。

4、述第一组中的邻居节点与所述怀疑节点的通信距离小于或等于R/2,所述第二组中的邻居节点与所述怀疑节点的通信距离大于R/2;其中,所述R为所述怀疑节点的通信范围。4根据权利要求1至3任一项所述的故障诊断装置,其中,所述故障诊断装置还包括时间设置单元,根据不同的组来设置所述退避时间,其中不同的组的退避时间所形成的时间范围互不重叠。5根据权利要求4所述的故障诊断装置,其中,所述时间设置单元采用如下规则设置所述退避时间T0T1BO1T2T3BO2T4其中,BO1是为第一组的邻居节点设置的退避时间,BO2是为第二组的邻居节点设置的退避时间;T1、T2、T3、T4是预定的时间,T0为所述诊断节点检测到所述怀。

5、疑节点故障的时刻。6根据权利要求5所述的故障诊断装置,其中,BO1T1T2T1FHOP,NNBO2T3T4T3FHOP,NNFHOP,NN为一取值在0,1的函数,所述FHOP,NN与节点的跳数HOP成正比,与节点的邻居数量NN成反比。7根据权利要求3所述的故障诊断装置,其中,所述故障诊断装置还包括节点选择单元,当所述第一组的邻居节点为空时,从所述第二组中挑选一个邻居节点作为所述第一组的邻居节点;并且,为选择出的所述邻居节点设置对应所述第一组的退避时间。8根据权利要求7所述的故障诊断装置,其中,所述故障诊断装置还包括时间发送单元,将所述退避时间发送给选择出的所述邻居节点,使得所述邻居节点存储并使。

6、用所述退避时间。9根据权利要求1所述的故障诊断装置,其中,所述诊断控制单元还用于控制所述根节点广播检测包;使得其他诊断节点在退避时间倒计时未结束且收到所述检测包时,不再进行退避时间的倒计时。10一种故障诊断方法,所述故障诊断方法包括在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;其中,通过将所权利要求书CN104125108A2/2页3述怀疑节点的多个邻居节点分为不同的组来设置所述退避时间;根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;控制所述根节点来启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结。

7、果上报给网关。11一种退避时间的设置方法,所述设置方法包括将节点的多个邻居节点分为不同的组;对于不同组的邻居节点设置不同的退避时间,其中不同的组的退避时间所形成的时间范围互不重叠。12根据权利要求11所述的设置方法,其中,将节点的多个邻居节点分为不同的组具体包括根据通信距离将节点的多个邻居节点分为多个不同的组。13根据权利要求12所述的设置方法,其中,根据通信距离将所述多个邻居节点分为第一组和第二组;所述第一组中的邻居节点与所述节点的通信距离小于或等于R/2,所述第二组中的邻居节点与所述节点的通信距离大于R/2;其中,所述R为所述节点的通信范围。14根据权利要求11至13任一项所述的设置方法,。

8、其中,采用如下规则设置所述退避时间T0T1BO1T2T3BO2T4其中,BO1是为第一组的邻居节点设置的退避时间,BO2是为第二组的邻居节点设置的退避时间;T1、T2、T3、T4是预定的时间;T0为诊断节点检测到怀疑节点故障的时刻。15根据权利要求14所述的设置方法,其中,BO1T1T2T1FHOP,NNBO2T3T4T3FHOP,NNFHOP,NN为一取值在0,1的函数,所述FHOP,NN与节点的跳数HOP成正比,与节点的邻居数量成反比。权利要求书CN104125108A1/16页4故障诊断装置和方法、以及退避时间的设置方法技术领域0001本发明涉及网络故障诊断技术领域,特别涉及一种故障诊断。

9、装置和方法、以及退避时间的设置方法。背景技术0002网络在发生故障时,需要启动网络故障诊断过程来排除故障,例如可以包括链路故障诊断和节点故障诊断。目前,当一怀疑节点需要诊断时,该怀疑节点的多个诊断节点可能均启动诊断过程,各自建立诊断树并上报诊断结果。0003但是,在实现本发明的过程中,发明人发现现有技术的缺陷在于在怀疑节点需要诊断的情况下,由于无法保证只有一个诊断节点上报诊断结果,因而在网关(GW,GATEWAY)处无法获得统一的诊断结果,同时多个诊断过程被启动、以及多个诊断节点上报诊断信息也会给系统带来过大的通信开销。发明内容0004本发明实施例提供一种故障诊断装置和方法、以及退避时间的设置。

10、方法,目的在于在网关处获得统一的诊断结果,同时降低系统的通信开销。0005根据本发明实施例的一个方面,提供一种故障诊断装置,所述故障诊断装置包括0006时间启动单元,在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;其中,通过将所述怀疑节点的多个邻居节点分为不同的组来设置所述退避时间;0007根节点确定单元,根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;0008诊断控制单元,控制所述根节点启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。0009根据本发明实施例的另一个方面,提供一种故障诊。

11、断方法,所述故障诊断方法包括0010在怀疑节点需要诊断时,启动诊断节点针对所述怀疑节点的退避时间;其中,通过将所述怀疑节点的多个邻居节点分为不同的组来设置所述退避时间;0011根据对所述退避时间的倒计时来确定根节点;所述根节点为所述怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;0012控制所述根节点启动建立诊断树,并接收所述诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。0013根据本发明实施例的另一个方面,提供一种退避时间的设置方法,所述设置方法包括0014将节点的多个邻居节点分为不同的组;0015对于不同组的邻居节点,设置不同的退避时间。说明书CN104125108A2/16。

12、页50016本发明实施例的有益效果在于在怀疑节点需要诊断时,启动诊断节点针对怀疑节点的退避时间,根据对退避时间的倒计时来确定根节点,并由该根节点启动建立诊断树,接收诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。由此,可以在网关处获得统一的诊断结果,同时降低系统的通信开销。0017参照后文的说明和附图,详细公开了本发明的特定实施方式,指明了本发明的原理可以被采用的方式。应该理解,本发明的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本发明的实施方式包括许多改变、修改和等同。0018针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方。

13、式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。0019应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。附图说明0020图1是本发明实施例1的故障诊断装置的一构成示意图;0021图2是本发明实施例1的故障诊断装置的另一构成示意图;0022图3是本发明实施例1的对一节点的邻居节点进行分组之后的示意图;0023图4是本发明实施例1的T1、T2、T3、T4与BO1、BO2的关系示意图;0024图5是本发明实施例1的故障诊断装置的另一构成示意图;0025图6是本发明实施例1的对一节点的邻居节点进行。

14、分组之后的另一示意图;0026图7是本发明实施例1的检测包的一结构示意图;0027图8是本发明实施例2的故障诊断方法的一流程示意图;0028图9是本发明实施例2的故障诊断方法的另一流程示意图;0029图10是本发明实施例3的退避时间的设置方法的一流程示意图;0030图11是本发明实施例3的退避时间的设置方法的一示例图;0031图12是本发明实施例3的退避时间的设置方法的另一示例图;0032图13是本发明实施例4的网络节点的一示意图;0033图14是本发明实施例4的网络节点的另一示意图。具体实施方式0034下面结合附图对本发明的各种实施方式进行说明。这些实施方式只是示例性的,不是对本发明的限制。。

15、为了使本领域的技术人员能够容易地理解本发明的原理和实施方式,本发明的实施方式以无线ADHOC网络或者无线传感器网络为例进行说明。但应该注意的是,本发明不限于此,本发明的实施方式可以适用于所有存在网络故障的通信系统。0035实施例10036本发明实施例提供一种故障诊断装置,图1是本发明实施例的故障诊断装置的一构成示意图。如图1所示,该故障诊断装置100包括时间启动单元101、根节点确定单元102和诊断控制单元103。0037其中,时间启动单元101在怀疑节点需要诊断时,启动诊断节点针对该怀疑节点说明书CN104125108A3/16页6的退避时间;根节点确定单元102根据对退避时间的倒计时来确定。

16、根节点,根节点是该怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;诊断控制单元103控制根节点启动建立诊断树,并接收该诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。0038在本实施例中,故障诊断装置100可以是诊断节点的一组成部分,网络中的一个或多个诊断节点可以具有该故障诊断装置100,诊断节点的其他部分的构成可以参考现有技术。例如,网络中的每一诊断节点均可以具有该故障诊断装置100;而怀疑节点可以具有与诊断节点相同的构成。由此,网络中的各个节点之间可以形成分布式的结构。0039但本发明不限于此,例如故障诊断装置100还可以是独立于诊断节点的部件,可以是网络中控制多个诊断节点的设。

17、备,由此在网络中形成集中式的结构。或者,故障诊断装置100的一部分可以位于诊断节点上,而另一部分形成集中式的设备。本领域技术人员可以根据实际情况确定具体的实施场景。在以下的实施例中,仅以该故障诊断装置包括在一个或多个诊断节点中为例进行说明。0040在本实施例中,诊断过程中可以有两种节点诊断节点(DN,DETECTIONNODE)和怀疑节点(SN,SUSPECTNODE)。例如,当节点A无法和节点B通信时,节点A会怀疑B发生故障,A会启动一个针对B的诊断过程;A称为诊断节点DN,而B称作怀疑节点SN。诊断节点是怀疑节点的一个或多个邻居节点,也就是说,诊断节点的集合可以是怀疑节点的邻居节点集合的一。

18、个子集。0041当怀疑节点B需要诊断时,可能存在多个诊断节点(例如除节点A之外,还有节点C、D)。在具体实施时,诊断节点A、C、D可以通过各自的时间启动单元101来启动退避时间开始倒计时;然后倒计时最先结束的诊断节点(例如节点A)中的根节点确定单元102可以确定该节点A为根节点(RN,ROOTNODE),而其他诊断节点(例如节点C、D)中的根节点确定单元102可以确定节点C、D不是根节点(可以停止退避时间的倒计时,具体可以参考后述内容)。0042由此,可以由诊断节点A中的诊断控制单元103进行诊断控制,由该根节点A启动建立诊断树,加入到诊断树中的节点将各自的诊断信息发送给该根节点A,节点A最终。

19、将诊断结果上报给GW。因而在网关处可以获得统一的诊断结果,同时降低系统的通信开销。至于具体如何进行诊断树的建立、以及具体如何收集诊断信息和如何发送诊断结果,可以参考现有技术,本发明不再详细说明。0043在本实施例中,退避时间可以预先设置。对于网络中的一个节点,可以为该节点的多个邻居节点设置退避时间。退避时间可以通过将该节点的多个邻居节点分为不同的组后而设置,不同组的邻居节点设置不同的退避时间。0044在具体实施时,如果怀疑节点的邻居节点中存在网关节点,也就是说网关是该怀疑节点的一邻居节点,则在该网关对该怀疑节点进行诊断时,可以将该网关确定为根节点。例如,可以直接确定该网关为根节点,由该网关建立。

20、诊断树;也可以为该网关设置小于其他节点的退避时间,使得该网关最先结束退避时间。0045在具体实施时,至于如何设置退避时间,可以由该节点对各个邻居节点统一分配,也可以由各个邻居节点各自自己计算。本发明不限于此,本实施例中仅以各个邻居节点自己计算各自针对该节点的退避时间为例进行说明。0046图2是本发明实施例的故障诊断装置的另一构成示意图。如图2所示,该故障诊说明书CN104125108A4/16页7断装置200包括时间启动单元101、根节点确定单元102和诊断控制单元103。如上所述。0047如图2所示,该故障诊断装置200还可以包括分组单元204。该分组单元204根据通信距离将怀疑节点的多个邻。

21、居节点分为不同的组。0048在具体实施时,分组单元204具体可以用于根据通信距离将一节点的多个邻居节点分为第一组和第二组;其中,第一组中的邻居节点与该节点的通信距离小于或等于设定的距离,比如R/2、R/3、R/4等,第二组中的邻居节点与该节点的通信距离大于所述设定的距离。其中,R为该节点的通信范围。0049此外,也可以通过接收到该节点的信号强度进行分组,其中,第一组中的邻居节点接收到该节点的信号强度大于等于设定的信号强度阈值,比如50DBM、60DBM、70DBM等,第一组中的邻居节点接收到该节点的信号强度小于所述设定的信号强度阈值。0050当分成超过两组,如分成第一组、第二组、第三组,第一组。

22、中的邻居节点与该节点的通信距离小于或等于R/4,第二组中的邻居节点与该节点的通信距离大于R/4小于等于R/2,第三组中的邻居节点与该节点的通信距离大于R/2。其余的分组方法不再举例,与此类似。0051例如,网络中的每个节点可以通过周期性的侦听(例如采用HELLO包)机制来获取自己和邻居节点间的接收信号强度指示(RSSI,RECEIVEDSIGNALSTRENGTHINDICATION)信息,进而得到该节点和邻居节点之间的通信距离,然后可以将多个邻居节点进行分组。0052值得注意的是,以上通过通信距离进行分组的方法仅是本发明的具体实施方式,但本发明不限于此,例如还可以根据其他信息(例如通信质量)。

23、进行分组,或者将邻居节点分为多于2组(例如3组、4组等等),可以根据实际情况确定具体的实施场景。0053图3是本发明实施例的对一节点的邻居节点进行分组之后的示意图。如图3所示,节点是该节点,节点是其邻居节点。可以将与节点距离小于等于R/2(R是节点的通信范围)的区域(图中区域A)称作主要区域PZ(PRIMARYZONE);在节点的通信范围内,并且与节点距离大于R/2的区域(图中区域B)称作次要区域SZ(SECONDARYZONE)。由此,可以将邻居节点分组(例如,PZ区域的邻居节点对应第一组,SZ区域的邻居节点对应第二组)。0054在本实施例中,将一节点的多个邻居节点分为不同的组之后,可以对不。

24、同组的邻居节点设置不同的退避时间。由此,可以使得不同组的邻居节点的退避时间不会同时结束,根据退避时间的倒计时来确定的根节点可以为一个。0055如图2所示,该故障诊断装置200还可以包括时间设置单元205,该时间设置单元205对不同组的邻居节点设置不同的退避时间。其中,对于每个组中的多个邻居节点,所对应的退避时间可以为多个;例如各个邻居节点的退避时间各不相同。因此每个组的退避时间可以形成一段时间范围。0056并且,不同的组的退避时间所形成的时间范围互不重叠。以下以分为两组为例,对退避时间的设置进行说明。在本实施例中,可以按照下述规则为每个邻居节点设置一个退避时间BO(BACKOFF)。0057例。

25、如,时间设置单元205可以采用如下公式设置退避时间0058T0T1BO1T2T3BO2T40059其中,BO1是为第一组的邻居节点(例如图3中的)设置的退避时间,BO2是为说明书CN104125108A5/16页8第二组的邻居节点(例如图3中的)设置的退避时间;其中,T1、T2、T3、T4是预定的时间,T0为该诊断节点检测到怀疑节点故障的时刻。0060在具体实施时,可以采用如下规则来实现0061BO1T1T2T1FHOP,NN0062BO2T3T4T3FHOP,NN0063FHOP,NN为一取值在0,1的函数,FHOP,NN与该邻居节点的跳数HOP成正比,与该邻居节点的邻居数量成反比。0064。

26、在具体实施时,T0T1时表明当该节点一检测到故障就开始退避时间的倒计时;T0T1时表明该节点在检测到故障之后,延时一段时间再开始退避时间的倒计时。T1T2时,该节点可以以MAC层CSMA/CA机制的BACKOFF时间作为自己的退避时间;MAC层中的BACKOFF机制是为了保证避免信道冲突,具体内容可以参考现有技术。对于T3、T4可以与T1、T2的情况相同。0065在具体实施时,如果怀疑节点的邻居节点中存在网关节点,则可以为该网关分配T0到T1之间的退避时间,使得该网关最先结束退避时间的倒计时,成为根节点而启动建立诊断树。0066在一个实施方式中,FHOPNN可以采用如下公式00670068其中。

27、,为取值在0,05的随机参数。0069在另一个实施方式中,FHOPNN可以采用如下公式00700071或者,0072其中,为取值在0,05的随机参数;并且如果则令0073图4是本发明实施例的T1、T2、T3、T4与BO1、BO2的关系示意图。如图4所示,BO1是T1,T2之间的某值,BO2是T3,T4之间的某值。如果距离怀疑节点R/2的范围内至少有一个诊断节点,T2,T3这段时间保证了只有一个诊断节点会启动诊断树的建立过程。0074在具体实施时,T2和T3之间的间隔时间为一参数。可以设定T2和T3之间的间隔为“数据包传输3跳的时间”;也可以设定T2和T3之间的间隔是“数据包传输9跳的时间”。0。

28、075例如,对于图3所示的场景,邻居节点中的时间设置单元205可以针对节点采用BO1T1T2T1FHOP,NN来设置退避时间T4、T5;邻居节点中的时间设置单元205可以针对节点采用BO2T3T4T3FHOP,NN来设置退避时间T2、T3、T6。而节点中的时间设置单元205也可以针对其邻居节点来为自己设置退避时间。0076值得注意的是,以上仅对本发明中退避时间的设置进行了示意性说明,但本发明不限于此,例如还可以根据实际情况采用适当的变形等,可以采用其他的公式。0077图5是本发明实施例的故障诊断装置的另一构成示意图。如图5所示,该故障诊断装置500包括时间启动单元101、根节点确定单元102、。

29、诊断控制单元103、分组单元204说明书CN104125108A6/16页9和时间设置单元205,如上所述。0078如图5所示,该故障诊断装置还可以包括节点选择单元505,在第一组没有邻居节点时,从第二组中挑选一个邻居节点作为第一组的邻居节点;并且,时间设置单元205还用于为选择出的该邻居节点设置对应第一组的退避时间。0079具体地,节点选择单元505可以在所有的邻居节点与该诊断节点的距离全都大于R/2时,从距离全都大于R/2的邻居节点中挑选一个邻居节点作为第一组的邻居节点。0080如图5所示,该故障诊断装置还可以包括时间发送单元506。该时间发送单元506将时间设置单元205设置的退避时间发。

30、送给选择出的邻居节点,使得邻居节点存储该退避时间。0081其中,该节点选择单元505可以选择距离该诊断节点最近的邻居节点;或者,当存在多个距离相同的邻居节点时,该节点选择单元505选择其中跳数最小的邻居节点;或者,当存在多个距离相同且多个跳数相同的邻居节点时,该节点选择单元505从其中随机选取一个邻居节点。0082图6是本发明实施例的对一节点的邻居节点进行分组之后的另一示意图。如图6所示,节点是该节点,节点是其邻居节点。可以将与节点距离小于等于R/2(R是节点的通信范围)的区域(图中区域A)称作主要区域PZ;在节点的通信范围内,并且与节点距离大于R/2的区域(图中区域B)称作次要区域SZ。00。

31、83如图6所示,在区域A中没有邻居节点,而在区域B中具有邻居节点。在具体实施时,针对例如附图6在PZ(区域A)中没有节点的情况,即该节点发现邻居节点与自己的距离全都大于R/2时,该节点挑选一个距离自己最近的节点(例如节点)。如果有多个距离相同的邻居节点,则挑选其中跳数最小的邻居节点;如果还有多个跳数相同的邻居节点,则从中随机选取。0084在选择出该邻居节点(例如节点)之后,节点可以为该邻居节点设置一个在T1,T2内的BACKOFF时间,并将这个时间发送给该邻居节点。0085在本实施例中,时间启动单元101具体可以用于在诊断节点没有从怀疑节点连续收到多个侦听包(HELLO包)时,启动针对该怀疑节。

32、点的退避时间开始倒计时,并可以将该怀疑节点存储在本地作为本地怀疑节点LSN(LOCALSUSPECTNODE)。0086在本实施例中,诊断控制单元103还可以用于在根节点确定单元102确定根节点之后,控制该根节点广播检测包DP(DETECTIONPACKET);使得其他诊断节点在退避时间倒计时未结束且收到该检测包时,不再进行退避时间的倒计时。其中,其他诊断节点是指除了确定为根节点的诊断节点外的一个或多个诊断节点。0087在具体实施时,例如当节点A发现其邻居节点B已有连续K次HELLO包未收到时,节点A认为节点B需要进行诊断,并将节点B存储在本地,记做LSN(LOCALSN)。如果节点A的退避时。

33、间BO计时结束,则可以建立诊断树并广播一个检测包DP;如果节点A在BO倒计时未结束时就收到了其他节点发送的检测包DP,则不再进行BO倒计时,而将该检测包DP继续广播(需要指出的是,已加入到诊断树中的节点如果再次收到DP包,则不再进行广播)。0088在具体实施时,该检测包DP可以包括源地址、怀疑节点的标识信息、以及根节点的标识信息。此外,还可以包括帧类型(FRAMETYPE)和保留位(RESERVED)。0089图7是本发明实施例的检测包的一结构示意图。如图7所示,可以包括DP包的源说明书CN104125108A7/16页10地址(可以用GS表示);帧类型(FT,FRAMETYPE),表明该包是。

34、DETECTIONPACKET;怀疑节点标识(可以用SNID表示);根节点标识(可以用RNID表示);以及保留位(可以用RESERVED表示)。0090在本实施例中,当一个节点收到DP后,如果发现该DP的SNID和本地存储的LSN相同,则可以将该DP的GS改为自己的地址之后继续广播这个DP;如果发现SNID和本地邻居表中的某个邻居节点相同,则继续广播这个DP;如果发现SNID不在本地邻居表内,则不广播这个DP(说明该节点不是SN的邻居节点)。0091由上述实施例可知,在怀疑节点需要诊断时,启动诊断节点针对怀疑节点的退避时间,根据对退避时间的倒计时来确定根节点,并由该根节点启动建立诊断树,接收诊。

35、断树中的节点发送的诊断信息,以及将诊断结果上报给网关。由此,可以在网关处获得统一的诊断结果,同时降低系统的通信开销。0092实施例20093本发明实施例提供一种故障诊断方法,对应于实施例1的故障诊断装置。图8是本发明实施例的故障诊断方法的一流程示意图,如图8所示,该故障诊断方法包括0094步骤801,在怀疑节点需要诊断时,启动诊断节点针对该怀疑节点的退避时间;0095步骤802,根据对该退避时间的倒计时来确定根节点;该根节点为该怀疑节点的多个诊断节点中退避时间最先结束的诊断节点;0096步骤803,控制该根节点启动建立诊断树,并接收诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。009。

36、7在本实施例中,退避时间可以是预先确定的。对于每个诊断节点,可以将该诊断节点的多个邻居节点分为不同的组,并对不同组的邻居节点设置不同的退避时间。0098具体地,将诊断节点的多个邻居节点分为不同的组具体可以包括根据通信距离将多个邻居节点分为多个不同的组。例如,可以分为第一组和第二组;第一组中的邻居节点与该诊断节点的通信距离小于或等于R/2,第二组中的邻居节点与该诊断节点的通信距离大于R/2;其中,R为该诊断节点的通信范围。0099在一个实施方式中,实施场景可以如图3所示。第一组(例如图3中的区域A)和第二组(例如图3中的区域B)均存在邻居节点。可以分别对不同组的邻居节点设置不同的退避时间。010。

37、0在另一个实施方式中,实施场景可以如图6所示。在所有的邻居节点与该诊断节点的距离全都大于R/2时,可以挑选一个邻居节点作为第一组的邻居节点。其中,挑选一个邻居节点作为所述第一组的邻居节点具体可以包括选择距离该诊断节点最近的邻居节点;或者,当存在多个距离相同的邻居节点时,选择其中跳数最小的邻居节点;或者,当存在多个距离相同且多个跳数相同的邻居节点时,从其中随机选取一个邻居节点。0101在本实施例中,该故障诊断方法还可以包括将设置的退避时间发送给该选择出的邻居节点,使得该邻居节点存储退避时间。0102在本实施例中,步骤801中在怀疑节点需要诊断时,启动诊断节点针对该怀疑节点的退避时间具体可以包括在。

38、该诊断节点没有从该怀疑节点连续收到多个HELLO包时,启动退避时间开始倒计时,并将该怀疑节点存储在本地作为本地怀疑节点。0103在本实施例中,在步骤802确定根节点之后,该故障诊断方法还可以包括控制该说明书CN104125108A108/16页11根节点广播检测包;使得其他诊断节点在退避时间倒计时未结束且收到检测包时,不再进行退避时间的倒计时。其中,检测包可以包括源地址、怀疑节点的标识信息、以及根节点的标识信息。检测包的结构可以参考附图7的内容。0104在本实施例中,该故障诊断方法还可以包括当某一个诊断节点收到检测包后,如果发现该检测包的怀疑节点的标识信息和本地存储的本地怀疑节点相同,则将该检。

39、测包的源地址改为该诊断节点自己的地址,然后继续广播检测包;如果发现检测包的怀疑节点的标识信息和本地邻居表中的某个邻居节点相同,则继续广播检测包;如果发现检测包的怀疑节点的标识信息不在本地邻居表内,则不广播检测包。0105图9是本发明实施例的故障诊断方法的另一流程示意图,如图9所示,该故障诊断方法包括0106步骤901,诊断节点对怀疑节点发送的HELLO包进行计数。0107步骤902,判断是否没有连续接收到该怀疑节点发送的K个HELLO包;如果没有连续接收到,则执行步骤903。0108步骤903,诊断节点认为该怀疑节点需要诊断,开启退避时间开始倒计时。0109步骤904,判断退避时间的倒计时是否。

40、结束;如果倒计时已经结束,则执行步骤905,否则执行步骤907。0110具体地,可以判断该诊断节点针对该怀疑节点的退避时间BO;如果BO大于0则该退避时间还没有结束,执行步骤907;如果BO小于等于0则该退避时间结束,执行步骤905。0111步骤905,确定该诊断节点为根节点,开启建立诊断树并广播检测包DP。0112步骤906,收集诊断信息并上报诊断结果给网关。0113步骤907,判断是否收到其他节点发送的检测包DP;如果收到检测包DP,则执行步骤908,否则执行步骤904。0114步骤908,停止退避时间倒计时,加入其他节点建立的诊断树并继续广播该检测包DP。0115此外,如果接收到检测包D。

41、P的节点发现该检测包DP的怀疑节点的标识信息不在本地邻居表内,则表明该节点不是该怀疑节点的邻居节点,因此不广播该检测包DP。并且,已经加入到诊断树的节点再次接收到检测包后,也可以不再广播该检测包。0116以下以图3所示的场景为例进行说明。在如图3所示的场景中,假设针对节点,已经为邻居节点设置了退避时间,分别是T2、T3、T4、T5、T6。具体的设置方法可以参考实施例1或者实施例3。0117在节点作为怀疑节点需要诊断时,节点作为诊断节点开始启动退避时间倒计时。对于其中一个诊断节点(例如节点),如果T50(即最早结束退避时间),则可以确定该节点是根节点,该节点开始建立诊断树并发送检测包DP。011。

42、8对于其他诊断节点(例如节点),如果接收到该节点发送的检测包DP,则停止退避时间的倒计时,加入该诊断树并继续广播该检测包DP。由此,可以由节点建立诊断树,收集诊断信息并发送给网关。0119由上述实施例可知,在怀疑节点需要诊断时,启动诊断节点针对怀疑节点的退避时间,根据对退避时间的倒计时来确定根节点,并由该根节点启动建立诊断树,接收诊断树中的节点发送的诊断信息,以及将诊断结果上报给网关。由此,可以在网关处获得统一的诊说明书CN104125108A119/16页12断结果,同时降低系统的通信开销。0120实施例30121本发明实施例提供一种退避时间的设置方法,可以作为实施例2的一部分或者预先准备过。

43、程,与实施例1中退避时间的设置部分相同的内容,此处不再赘述。0122图10是本发明实施例的退避时间的设置方法的一流程示意图,如图10所示,该设置方法包括0123步骤1001,将节点的多个邻居节点分为不同的组;0124步骤1002,对于不同组的邻居节点,设置不同的退避时间。0125在本实施例中,对于任一节点,可以将该节点的多个邻居节点分为不同的组,然后设置退避时间。由此,可以使得不同组的邻居节点的退避时间不会同时结束,根据退避时间的倒计时来确定的根节点可以为一个。0126在具体实施时,步骤1001中将节点的多个邻居节点分为不同的组,具体可以包括根据通信距离将多个邻居节点分为多个不同的组。例如,可。

44、以分为第一组和第二组,第一组中的邻居节点与该节点的通信距离小于或等于R/2,第二组中的邻居节点与该节点的通信距离大于R/2;其中,R为该节点的通信范围。0127值得注意的是,以上通过通信距离进行分组的方法仅是本发明的具体实施方式,但本发明不限于此,例如还可以根据其他信息(例如通信质量)进行分组,或者将邻居节点分为多于2组(例如3组、4组等等),可以根据实际情况确定具体的实施场景。0128在具体实施时,步骤1002中可以采用如下规则设置退避时间0129T0T1BO1T2T3BO2T40130其中,BO1是为第一组的邻居节点设置的退避时间,BO2是为第二组的邻居节点设置的退避时间;T1、T2、T3。

45、、T4是预定的时间。0131在具体实施时,可以采用如下规则实现0132BO1T1T2T1FHOP,NN0133BO2T3T4T3FHOP,NN0134FHOP,NN为一取值在0,1的函数,FHOP,NN与节点的跳数HOP成正比,与节点的邻居数量成反比。0135在一个实施方式中,FHOP,NN可以采用如下公式01360137其中,为取值在0,05的随机参数。0138在另一个实施方式中,FHOPNN可以采用如下公式01390140或者,0141其中,为取值在0,05的随机参数;并且如果则令说明书CN104125108A1210/16页130142值得注意的是,以上公式仅是对本发明中退避时间设置的示。

46、意性说明,但本发明不限于此,还可以根据实际情况采用适当的变形等,可以采用其他的公式。0143在本实施例中,退避时间的设置可以在该节点上进行,该设置方法还可以包括将设置的退避时间发送给各个邻居节点,使得各个邻居节点分别存储对应的退避时间。0144此外,退避时间的设置还可以在各个邻居节点上进行,由各个邻居节点各自设置针对该节点的退避时间。以下以各个邻居节点各自设置针对该节点的退避时间为例进行说明。0145图11是本发明实施例的退避时间的设置方法的一示例图,以图3所示的场景为例,示出了第一组和第二组中均有邻居节点的情况。如图11所示,该设置方法包括0146步骤1101,开始HELLO过程。0147步。

47、骤1102,计算节点间的距离。0148具体地,可以使用HELLO包中所包含的RSSI信息来计算节点间的距离,但本发明不限于此。0149步骤1103,对于该节点的一邻居节点,判断该节点和该邻居节点的距离是否小于R/2;如果是则执行步骤1104;如果不是则执行步骤1105。0150步骤1104,该邻居节点采用公式BO1T1T2T1FHOP,NN来设置退避时间。0151步骤1105,该邻居节点采用公式BO2T3T4T3FHOP,NN来设置退避时间。0152例如,在图3所示的场景中,邻居节点可以采用BO1T1T2T1FHOP,NN来设置针对节点的退避时间。其中,FHOP,NN可以采用如下公式01530。

48、154其中,为取值在0,05的随机参数。0155或者,FHOP,NN可以采用如下公式01560157或者,0158其中,为取值在0,05的随机参数;并且如果则令HOP为节点或的跳数,NN为节点或的邻居数量。0159而邻居节点可以采用BO2T3T4T3FHOP,NN来设置针对节点的退避时间。其中,FHOP,NN可以采用如下公式01600161其中,为取值在0,05的随机参数。0162或者,FHOP,NN可以采用如下公式说明书CN104125108A1311/16页1401630164或者,0165其中,为取值在0,05的随机参数;并且如果则令HOP为节点、或者的跳数,NN为节点、或者的邻居数量。。

49、0166图12是本发明实施例的退避时间的设置方法的另一示例图,以图3和图6所示的场景为例,示出了第一组中可能没有邻居节点的情况。如图12所示,该设置方法包括0167步骤1201,开始HELLO过程。0168步骤1202,计算节点间的距离,并根据距离分为第一区域和第二区域。0169步骤1203,判断第一区域中是否存在邻居节点;如果没有邻居节点则执行步骤1205;如果存在邻居节点则执行步骤1204。0170步骤1204,该节点的邻居节点按照分组分别设置退避时间。0171具体地,可以按照图11中的步骤1103至步骤1105来设置退避时间。0172步骤1205,该节点从邻居节点中选择一个节点,采用第一区域的公式来为该邻居节点设置退避时间,即采用BO1T1T2T1FHOP,NN。0173具体的,可以选择距离该节点最近的邻居节点;或者,当存在多个距离相同的邻居节点时,选择其中跳数最小的邻居节点;或者,当存在多个距离相同且多个跳数相同的邻居节点时,从其中随机选取一个邻居节点。0174步骤1206,该节点将该退避时间发送给该选择的邻居节点。0175步骤1207,该选择的邻居节点接收到该退避时间。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1