故障诊断方法和装置的制造方法_3

文档序号:8324952阅读:来源:国知局
为存活节点,以该第三存活消息中的存活节点作为被怀疑节点的信息。
[0089]例如,请参照图1,节点B接收到了节点C或节点D转发的由节点A发送的针对节点B的存活消息,则节点B是该存活消息的目的节点。该节点可以首先判断是否已经启动了针对接收到的该存活消息所包含的存活节点的状态判定延时定时器。
[0090]如果已经启动,则说明在自己怀疑对方(接收到的该存活消息所包含的存活节点)的同时,对方也怀疑了自己,此时,该节点确定为其与接收到的该存活消息所包含的存活节点之间的链路故障。可选的,该节点可以选择停止该状态判定延时定时器,并将接收到的该存活消息所包含的存活节点和被怀疑节点的信息存入本地的存活消息表中。而后,该节点可以根据应用对故障诊断的具体需求,选择是否向网关、簇头等报告诊断结果。可选的,该节点还可以选择在邻居列表中删除该邻居节点(接收到的该存活消息所包含的存活节点)。
[0091]如果没有启动,则说明是对方先怀疑了自己,此时,该节点广播发送一个针对接收到的存活消息所包含的存活节点的存活消息(在本实施例中称为第四存活消息),以表明自己是正常状态。该第四存活消息所包含的存活节点即为所述节点,被怀疑节点为接收到的存活消息(上述第三存活消息)所包含的存活节点。
[0092]可选的,在该节点广播发送上述第四存活消息之前,该节点可以先查看一下本地的存活消息表,判断该存活消息表中是否包含了该第三存活消息所包含的信息,也即该第三存活消息所包含的存活节点和被怀疑节点(所述节点)的信息,如果是,则说明所述节点已经接收过这样一条第三存活消息且已经对其进行过处理,则此时,该节点结束处理,不再发送所述第四存活消息;否则,说明所述节点是第一次接收这条第三存活消息,则该节点发送上述第四存活消息。
[0093]可选的,在该节点广播发送上述第四存活消息之后,将该第三存活消息所包含的信息存入本地的存活消息表中,同时将该第四存活消息所包含的信息也存入本地的存活消息表中。
[0094]在本实施方式中,该被怀疑节点接收到的该存活消息有可能是广播发送的(例如单向链路故障时),也有可能是单播发送的(例如,该被怀疑节点的邻居节点单播转发的),本实施例并不以此作为限制。
[0095]图7步骤403的一个实施方式的流程图。请参照图7,该方法还包括:
[0096]步骤701:根据接收到的存活消息判断是否已经启动针对该存活消息中所包含的存活节点的“状态判定延时”定时器,如果是,则确定该存活消息所包含的存活节点与该节点(被怀疑节点)之间的链路故障,执行步骤702,否则,执行步骤705 ;
[0097]步骤702:终止该针对接收到的该存活消息所包含的存活节点的定时器;
[0098]步骤703:根据应用对故障诊断的具体需求进行相应处理;
[0099]步骤704:将接收到的该存活消息中所包含的存活节点和被怀疑节点的信息存入本地的存活消息表。
[0100]步骤705:判断本地的存活消息表中是否包含与接收到该存活消息中所包含的信息相同的条目,如果是,则结束处理,否则执行步骤706 ;
[0101]步骤706:广播表明自身状态的存活消息(在本实施例中称为第四存活消息);
[0102]其中,该表明自身状态的存活消息中包含以该节点作为存活节点,以接收到的该存活消息中的存活节点作为被怀疑节点的信息。
[0103]步骤707:将表明自身状态的存活消息所包含的信息存入本地的存活消息表中;
[0104]步骤708:将接收到的该存活消息中所包含的信息存入本地的存活消息表中。
[0105]在本实施方式中,并不限制各个步骤执行的先后顺序,例如,步骤702和步骤703以及步骤704的执行顺序不分先后,再例如,步骤707和步骤708的执行顺序不分先后。
[0106]下面结合图1通过举例对步骤403的方法进行说明。
[0107]如图1所示,假设节点B接收到一个存活消息,在该存活消息中,存活节点为节点A,被怀疑节点为节点B,则节点B是该存活消息的目的节点,则节点B首先判断是否已经启动了针对节点A的状态判定延时定时器,若已经启动,则说明节点B也怀疑了节点A,则节点B由此可以确定节点A和节点B之间的链路发生了故障,其节点B停止该状态判定延时定时器,将收到的该存活消息中包含的信息存储到存活消息表中,可选的,节点B可以根据应用对故障诊断的具体需求,选择是否向网关、簇头等报告诊断结果,并且,可选的,节点B还可以选择在邻居列表中删除此邻居节点,也即节点A ;若没有启动,则节点B首先查询其存活消息表,判断其存活消息表中是否包含与接收到的存活消息所包含的信息(存活节点为节点A、被怀疑节点为节点B)相同的条目,如果有,则说明节点B已经处理过接收到的该存活消息,则直接结束处理;如果没有,则节点B立即广播包含其自身状态的存活消息,在包含其自身状态的存活消息中,存活节点为节点B,被怀疑节点为节点A,也即该存活消息表明了节点B是正常的,而节点B怀疑节点A不正常。可选的,节点B可以将接收到的存活消息(存活节点为节点A,被怀疑节点为节点B)以及表明自身状态的存活消息(存活节点为节点B,被怀疑节点为节点A)存入其本地的存活消息表中。
[0108]由此,接收到存活消息的目的节点,完成了故障诊断。由于无需发起针对被怀疑节点的状态的问询,也无需从怀疑故障节点的其它邻居节点处收集证据,从而改善了通信开销和诊断可靠性。
[0109]以上通过实施例1和实施例2对本发明实施例的故障诊断方法进行了说明,然而,上述实施例1和实施例2并不是孤立的,在某些实施方式中,这两个实施例可以结合起来实施。例如,对于ad hoc网络中的某一个节点,当其怀疑邻居节点时,可以根据实施例1的方法进行故障诊断;而当其接收到其他节点发送的存活消息,并且自身并不是接收到的该存活消息的目的节点时,可以根据实施例2的步骤402对接收到的该存活消息进行转发;而当其接收到其他节点发送的存活消息,并且自身是接收到的该存活消息的目的节点时,可以根据实施例2的步骤403协助该存活消息中的存活节点进行故障诊断或进行自我的故障诊断。
[0110]本发明实施例还提供了一种ad hoc网络中的节点,如下面的实施例3所述,由于该节点解决问题的原理与实施例1及实施例2的方法类似,因此其具体的实施可以参照实施例I或实施例2的实施,内容相同之处不再赘述。
[0111]实施例3
[0112]本发明实施例提供了一种Ad hoc网络中的节点。图8是该节点的组成示意图,请参照图8,该节点800包括:发送单元801、存储单元802、第一确定单元803,其中,
[0113]发送单元801,其发送第一存活消息,启动针对被怀疑节点的定时器,该第一存活消息包含存活节点和被怀疑节点的信息,该存活节点为该节点;
[0114]存储单元802,其在该发送单元801发送了所述第一存活消息后,将该第一存活消息对应的存活节点和被怀疑节点的信息存储到存活消息表中
[0115]第一确定单元803,其在该针对被怀疑节点的定时器的计时时间内,收到该被怀疑节点广播的第二存活消息时,如果该第二存活消息包含以该被怀疑节点作为存活节点,以该节点作为被怀疑节点的信息,则确定该节点与该被怀疑节点之间的链路故障;否则,确定该被怀疑节点故障。
[0116]通过本实施例的节点,无需发起针对被怀疑节点的状态的问询,也无需从怀疑故障节点的其它邻居节点处收集证据,即可实现故障诊断,从而改善了通信开销和诊断可靠性。
[0117]在本实施例中,该节点还可以包括:
[0118]查找单元804,其在该发送单元801发送该第一存活消息之前,查找该节点的存活消息表,确定该存活消息表中是否存在以该被怀疑节点作为存活节点,以该节点作为被怀疑节点的信息;
[0119]该第一确定单元803在该查找单元804的查找结果为存在时,确定该节点与该被怀疑节点之间的链路故障;
[0120]该发送单元801在该查找单元804的查找结果为不存在时,发送该第一存活消息。
[0121]所述存储单元802将所述第一存活消息对应的存活节点和被怀疑节点的信息存储到存活消息表中。
[0122]其中,该第一存活消息还可以包括预先设定的扩散度。
[0123]在本实施例的一个实施方式中,如果该节点收到其他节点发送的第三存活消息,并且该节点是该第三存活消息的目的节点,则该第一确定单元803在该节点已经启动针对该第三存活消息所包含的存活节点的定时器时,确定为该第三存活消息所包含的存活节点与该节点之间的链路故障;该发送单元801在该节点没有启动针对该第三存活消息所包含的存活节点的定时器时,广播第四存活消息,该第四存活消息包含以该节点作为存活节点,以该第三存活消息中的存活节点作为被怀疑节点的信息。
[0124]在该实施方式中,该节点还可以包括:
[0125]第一处理单元805,其在该第一确定单元803确定为该第三存活消息所包含的存活节点与该节点之间的链路故障后,终止该针对该第三存活消息所包含的存活节点的定时器;以及,将该第三存活消息中所包含的存活节点和被怀疑节点的信息存入本地的存活消息表。
[0126]在该实施方式中,该节点还可以包括:
[0127]第一判断单元806,其在该发送单元801广播该第四存活消息之前,判断本地存储的存活消息表中是否包含该第三存活消息中所包含的信息;
[0128]该发送单元801在该第一判断单元806判断为是时,结束处理,在该第一判断单元806判断为否时,广播该第四存活消息。
[0129]在该实施方式中,该节点还可以包括:
[0130]第二处理单元807,其在该发送单元801广播该第四存活消息之后,将该第四存活消息所包含的存活节点和被怀疑节点的信息存入本地的存活消息表;以及,将该第三存活消息中所包含的存活节点和被怀疑节点的信息存入本地的存活消息表。
[0131]在本实施例的另一个实施方式中,如果该节点收到其他节点发送的第三存活消息,并且该节点不是该第三存活消息的目的节点,则该发送单元801在该第三存活消息所包含的被怀疑节点是该节点的邻居节点时,在该节点怀疑过该被怀疑节点的情况下广播转发该第三存活消息,在该节点没有怀疑过该被怀疑节点的情况下向被怀疑节点单播转发该第三存活消息。。
[0132]在该实施方式中,该节点还可以包括:
[0133]第二判断单元808,其在该发送单元801转发该第三存活消息之前,判断本地存活消息表中是否有该第三存活消息所包含的存活节点和被怀疑节点的信息;
[0134]该发送单元801在该第二判断单元808为有时,结束处理,在该第二判断单元808判断为没有时,转发该第三存活消息。
[0135]其中,该发送单元801可以包括:
[0136]判断模块8011,其判断本地的存活消息表中是否有以该节点为存活节点,以该被怀疑节点为被怀疑节点的信息;
[0137]第一发送模块8012,其在该判断模块8011判断为没有时,向被怀疑节点单播转发该第三存活消息;在该判断模块8011判断为有时,广播转发该第三存活消息。
[0138]其中,该第一发送模块8012在该第三存活消息中包含扩散度时,先将扩散度减1,再广播转发该第三存活消息。
[0139]其中,该节点还可以包括:
[0140]第三处理单元809,其在该第一发送模块8012单播转发或广播转发该第三存活消息之后,将该第三存活消息所包含的存活节点和被怀疑节点的信息存入本地的存活消息表。
[0141]在本实施例的另一个实施方式中,如果该节点收到其他节点发送的第三存活消息,并且不是该第三存活消息的目的节点,则该发送单元801在该第三存活消息所包含的被怀疑节点不是该节点的邻居
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1