CN107947972B - 一种感知节点异常运行状态检测方法及检测装置 - Google Patents

一种感知节点异常运行状态检测方法及检测装置 Download PDF

Info

Publication number
CN107947972B
CN107947972B CN201711140457.2A CN201711140457A CN107947972B CN 107947972 B CN107947972 B CN 107947972B CN 201711140457 A CN201711140457 A CN 201711140457A CN 107947972 B CN107947972 B CN 107947972B
Authority
CN
China
Prior art keywords
task
matrix
transition
detected
template
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
Application number
CN201711140457.2A
Other languages
English (en)
Other versions
CN107947972A (zh
Inventor
马峻岩
张特
李易
张颖
王瑾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changan University
Original Assignee
Changan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changan University filed Critical Changan University
Priority to CN201711140457.2A priority Critical patent/CN107947972B/zh
Publication of CN107947972A publication Critical patent/CN107947972A/zh
Application granted granted Critical
Publication of CN107947972B publication Critical patent/CN107947972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management 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
    • H04L41/065Management 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 involving logical or physical relationship, e.g. grouping and hierarchies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/04Arrangements for maintaining operational condition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

本发明公开了一种感知节点异常运行状态检测方法及检测装置,通过计算待检测任务序列的一步任务转移概率,并计算其与正常任务序列的一步任务转移概率的相似性,利用相似性判断状态是否存在异常;上述技术方案能够有效地检测到在程序执行过程中出现的异常行为,对于异常行为的定位和修复提供代码级的帮助。

Description

一种感知节点异常运行状态检测方法及检测装置
技术领域
本发明涉及无线传感器网络技术领域,特别涉及一种感知节点异常运行状态检测方法及检测装置。
背景技术
无线传感器网络是物联网的重要组成部分,无线传感器网络被部署在真实的物理世界中以获取物理世界的信息,这种紧密的嵌入到物理世界的部署方式使得无线传感器网络的大范围应用面临众多挑战。通常无线传感器网络的部署的环境较为恶劣,为了提高无线传感器网络的可用性,人们需要更加有效,便捷的无线传感器网络状态监测与异常诊断工具,而无线传感器网络部署后的状态监测和异常诊断目前是十分困难的。
无线传感器网络运行异常可以分为两类:当节点因为某些程序缺陷或者硬件固有缺陷导致节点的行为与预期不符合,这种异常通常需要无线传感器网络开发设计人员提高其软件质量或完善其硬件的可靠性;无线传感器网络在部署后,由于外界环境不可抗力的影响,使无线传感器网络表现出与预期不符合的行为,这种异常的根本原因与软件或者硬件本身无关,而是与节点所处环境的变化有关系,这种异常的检测和诊断更为复杂。
目前关于传感器网络异常检测和诊断的方法有利用感知节点的测量值,从邻居节点与诊断节点在正常情况下的差异与异常情况下的不同来进行故障分析。该方法从网络整体上来进行故障预测,用于检测故障节点。建立故障特征与故障之间的映射关系,通过子网表决获得诊断结果,其从节点行为上来诊断节点故障是否为故障节点;另外有从静态代码中提取程序的执行模型并检查程序可能存在的异常行为的方法。
以上所述感知节点异常检测方法不能够准确定位故障在源代码中的位置,或者无法发现源代码在执行状态下的异常。
发明内容
针对上述现有技术中存在的问题,本发明的目的在于,提供一种感知节点异常运行状态检测方法,该方法根据节点执行程序的信息对节点进行异常检测,能够有效地检测到在程序执行过程中出现的异常行为。
为了实现上述目的,本发明采用如下技术方案:
一种感知节点异常运行状态检测方法,包括以下步骤:
步骤1,针对感知节点运行下的待检测任务序列的多个子序列,获取每个子序列的一步任务转移概率矩阵,第i个子序列RTi的一步任务转移概率矩阵为待检测矩阵RPi;i=1,2,...,I,其中,i表示子序列的标号,I表示子序列的总个数;
步骤2,针对多个正常运行的任务序列,获取每个正常运行的任务序列的一步任务转移概率矩阵,第j个正常运行的任务序列NTj的一步任务转移概率矩阵为模板矩阵NPj,所有模板矩阵形成模板矩阵库;j=1,2,...,J,其中,j表示正常运行的任务序列的标号,J表示正常运行的任务序列的总个数;
步骤3,求待检测矩阵RPi中的行向量RPi x和模板矩阵NPj中的行向量NPj x之间的夹角
Figure GDA0002700417280000031
其中,x表示行向量的标号,x=1,2,...,X,X表示行向量的个数;
若对于任意的x,存在
Figure GDA0002700417280000032
大于设定阈值,则待检测矩阵RPi与模板矩阵NPj不相似;若对于所有的j,待检测矩阵RPi与模板矩阵NPj均不相似,则待检测矩阵RPi代表疑似异常运行状态;
步骤4,若代表疑似异常运行状态的待检测矩阵RPi为模板矩阵库中不存在的矩阵,则将待检测矩阵RPi添加至模板矩阵库;否则,所述代表疑似异常运行状态的待检测矩阵RPi代表异常运行状态。
可选地,所述步骤1中的针对感知节点运行下的待检测任务序列的多个子序列,获取每个子序列的一步任务转移概率矩阵,包括以下步骤:
计算第i个子序列RTi中任务m到任务n的一步转移频数Qmn
根据一步转移频数求任务m到任务n之间的一步转移概率
Figure GDA0002700417280000033
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号。
可选地,所述步骤2中的针对多个正常运行的任务序列,获取每个正常运行的任务序列的一步任务转移概率矩阵,第j个正常运行的任务序列NTj的一步任务转移概率矩阵为模板矩阵NPj,所有模板矩阵形成模板矩阵库;包括以下步骤:
计算第j个正常运行的任务序列NTj中任务m到任务n的一步转移频数Qmn
根据一步转移频数求任务m到任务n之间的一步转移概率
Figure GDA0002700417280000041
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵即模板矩阵NPj,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号;
所有正常运行的任务序列求得的模板矩阵形成模板矩阵库。
本发明还提供一种感知节点异常运行状态检测装置,其特征在于,包括待检测矩阵获取模块、模板矩阵库构建模块、疑似异常运行状态检测模块和异常运行状态确定模块,其中,
待检测矩阵获取模块用于实现以下功能:
针对感知节点运行下的待检测任务序列的多个子序列RTi,获取每个子序列的一步任务转移概率矩阵,第i个子序列RTi的一步任务转移概率矩阵为待检测矩阵RPi;i=1,2,...,I,其中,i表示子序列的标号,I表示子序列的总个数;
模板矩阵库构建模块用于实现以下功能:
针对多个正常运行的任务序列NTj,获取每个正常运行的任务序列的一步任务转移概率矩阵,第j个正常运行的任务序列NTj的一步任务转移概率矩阵为模板矩阵NPj,所有模板矩阵NPj形成模板矩阵库;j=1,2,...,J,其中,j表示正常运行的任务序列的标号,J表示正常运行的任务序列的总个数;
疑似异常运行状态检测模块用于实现以下功能:
求待检测矩阵RPi中的行向量RPi x和模板矩阵NPj中的行向量NPj x之间的夹角
Figure GDA0002700417280000051
其中,x表示行向量的标号,x=1,2,...,X,X表示行向量的个数;
异常运行状态确定模块用于实现以下功能:
若代表疑似异常运行状态的待检测矩阵RPi为模板矩阵库中不存在的矩阵,则将待检测矩阵RPi添加至模板矩阵库;否则,所述代表疑似异常运行状态的待检测矩阵RPi代表异常运行状态。
可选地,所述待检测矩阵获取模块包括:子模块11、子模块12和子模块13,其中,
子模块11用于实现以下功能:计算第i个子序列RTi中任务m到任务n的一步转移频数Qmn
子模块12用于实现以下功能:根据一步转移频数求任务m到任务n之间的一步转移概率
Figure GDA0002700417280000052
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
子模块13用于实现以下功能:所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号。
可选地,所述模板矩阵库构建模块包括子模块21、子模块22、子模块23和子模块24,其中,
子模块21用于实现以下功能:
计算第j个正常运行的任务序列NTj中任务m到任务n的一步转移频数Qmn
子模块22用于实现以下功能:
根据一步转移频数求任务m到任务n之间的一步转移概率
Figure GDA0002700417280000061
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
子模块23用于实现以下功能:
所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号;
子模块24用于实现以下功能:
所有正常运行的任务序列求得的模板矩阵形成模板矩阵库。
与现有技术相比,本发明具有以下技术效果:本发明通过计算待检测任务序列的一步任务转移概率,并计算其与正常任务序列的一步任务转移概率的相似性,利用相似性判断状态是否存在异常;上述技术方案能够有效地检测到在程序执行过程中出现的异常行为,对于异常行为的定位和修复提供代码级的帮助。
附图说明
图1是本发明的方法流程图;
图2是任务执行序列按照时间窗口转换为状态流;
图3是实施例1中网络初始拓扑;
图4是实施例1中感知节点状态流;
图5是实施例1中时间窗口w与误报率关系;
图6是实施例1中阈值Q与误报率关系;
图7是实施例2中网络初始拓扑;
图8是实施例2中节点2状态流;
图9是实施例2中更新状态表后节点2状态流;
图10是实施例2中节点3状态流;
图11是实施例2中节点4状态流;
图12是实施例3中外部存储器故障节点状态流。
具体实施方式
本发明提供的感知节点异常运行状态检测方法,参见图1,包括以下步骤:
步骤1,针对感知节点运行下的待检测任务序列的多个子序列RTi,获取每个子序列的一步任务转移概率矩阵,第i个子序列RTi的一步任务转移概率矩阵为待检测矩阵RPi;i=1,2,...,I,其中,i表示子序列的标号,I表示子序列的总个数;一步任务转移概率矩阵也称为运行状态;待检测任务序列被转换为状态流。参见图2。
步骤2,针对多个正常运行的任务序列NTj,获取每个正常运行的任务序列的一步任务转移概率矩阵,第j个正常运行的任务序列NTj的一步任务转移概率矩阵为模板矩阵NPj,所有模板矩阵Pj形成模板矩阵库;j=1,2,...,J,其中,j表示正常运行的任务序列的标号,J表示正常运行的任务序列的总个数。
步骤3,求待检测矩阵RPi中的行向量RPi x和模板矩阵NPj中与该行向量行数相同的行向量NPj x之间的夹角
Figure GDA0002700417280000081
其中,x表示行向量的标号,x=1,2,...,X,X表示行向量的个数;
若对于任意的x,存在
Figure GDA0002700417280000082
大于设定阈值Q,则待检测矩阵RPi与模板矩阵NPj不相似;若对于所有的j,待检测矩阵RPi与模板矩阵NPj均不相似,则待检测矩阵RPi代表疑似异常运行状态。
步骤4,若代表疑似异常运行状态的待检测矩阵RPi为模板矩阵库中不存在的矩阵,则将待检测矩阵RPi添加至模板矩阵库;否则,所述代表疑似异常运行状态的待检测矩阵RPi代表异常运行状态。
具体地,所述步骤1中的待检测任务序列由TinyOS(开放源代码操作系统)中获取,待检测任务序列中的任务为多个时刻下的任务。
所述的子序列RTi的获取方法为:设定时间窗口w将待检测序列安装时间窗口划分为多个子序列。
所述的获取每个子序列的一步任务转移概率矩阵的方法如下:
计算子序列RTi中任务m到任务n的一步转移频数Qmn;一步转移频数指的是从任务m经过一步转移到达任务n的次数,例如,子序列RTi中的任务为1,2,3,1,3,则从任务1经过一步转移达到任务3的次数为1次,则任务1和任务3之间的一步转移频数为1。任务m和任务n为子序列RTi中的任意一个任务。
根据一步转移频数求任务m到任务n之间的一步转移概率
Figure GDA0002700417280000091
其中,Qm表示从任务m开始转移的所有一步转移频数之和。若任务m到任务n之间不存在一步转移,则任务m到任务n之间的一步转移概率为0。
所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号。
具体地,所述步骤2中的获取每个正常运行的任务序列NTj的一步任务转移概率矩阵的方法:
计算第j个正常运行的任务序列NTj中任务m到任务n的一步转移频数Qmn
根据一步转移频数求任务m到任务n之间的一步转移概率
Figure GDA0002700417280000092
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号。
本发明的另一个方面还提供一种感知节点异常运行状态检测装置,包括待检测矩阵获取模块、模板矩阵库构建模块、疑似异常运行状态检测模块和异常运行状态确定模块,其中,
待检测矩阵获取模块用于实现以下功能:
针对感知节点运行下的待检测任务序列的多个子序列RTi,获取每个子序列的一步任务转移概率矩阵,第i个子序列RTi的一步任务转移概率矩阵为待检测矩阵RPi;i=1,2,...,I,其中,i表示子序列的标号,I表示子序列的总个数;
模板矩阵库构建模块用于实现以下功能:
针对多个正常运行的任务序列NTj,获取每个正常运行的任务序列的一步任务转移概率矩阵,第j个正常运行的任务序列NTj的一步任务转移概率矩阵为模板矩阵NPj,所有模板矩阵NPj形成模板矩阵库;j=1,2,...,J,其中,j表示正常运行的任务序列的标号,J表示正常运行的任务序列的总个数;
疑似异常运行状态检测模块用于实现以下功能:
求待检测矩阵RPi中的行向量RPi x和模板矩阵NPj中的行向量NPj x之间的夹角
Figure GDA0002700417280000101
其中,x表示行向量的标号,x=1,2,...,X,X表示行向量的个数;
异常运行状态确定模块用于实现以下功能:
若代表疑似异常运行状态的待检测矩阵RPi为模板矩阵库中不存在的矩阵,则将待检测矩阵RPi添加至模板矩阵库;否则,所述代表疑似异常运行状态的待检测矩阵RPi代表异常运行状态。
具体地,所述待检测矩阵获取模块包括:子模块11、子模块12和子模块13,其中,
子模块11用于实现以下功能:计算第i个子序列RTi中任务m到任务n的一步转移频数Qmn
子模块12用于实现以下功能:根据一步转移频数求任务m到任务n之间的一步转移概率
Figure GDA0002700417280000111
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
子模块13用于实现以下功能:所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号。
具体的,所述模板矩阵库构建模块包括子模块21、子模块22、子模块23和子模块24,其中,
子模块21用于实现以下功能:
计算第j个正常运行的任务序列NTj中任务m到任务n的一步转移频数Qmn
子模块22用于实现以下功能:
根据一步转移频数求任务m到任务n之间的一步转移概率
Figure GDA0002700417280000112
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
子模块23用于实现以下功能:
所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号;
子模块24用于实现以下功能:
所有正常运行的任务序列求得的模板矩阵形成模板矩阵库。
实施例
以下给出3个实施例,用于验证本发明方法的有效性。实施例中使用的嵌入式操作系统是TinyOS 2.1.x和Telosb节点。使用Cooja仿真器运行网络程序,Cooja是一款具有指令级精度的传感器网络仿真器。通过修改TinyOS内核代码在调度器调度任务前捕获任务ID实现在运行时获取任务执行序列并通过修改Cooja提供的接口实现节点运行任务信息的提取与记录。
实施例1:分发协议定时器溢出故障
实施例1选择了托管在GitHub网站TinyOS主仓库commit号为11ff964的系统版本,该TinyOS版本的Trickle协议实现的定时器代码存在溢出缺陷:在WSN丢失分发节点后一段时间(约10分钟),与分发节点通信的感知节点会持续执行某一个任务而使得其它任务无法执行。实施例1使用TinyOS的例程TestDisseminatio进行测试,实验设置节点的通信半径为50米。首先,对TestDissemination的源代码静态分析之后得到该应用共有6个任务被执行。设置时间窗口参数w=4.5min,阈值Q=13°。如图3,实验使用4个TelosB节点进行测试,其中1号节点为分发节点。本发明收集3号节点在正常工作状态下的任务执行序列得到3号节点有2种正常状态模型,其状态模型矩阵如下:
Figure GDA0002700417280000131
节点在不同的状态下有着不同的任务转移概率,全0的行向量表明该任务在节点中未得到执行。网络运行时间共持续149分钟,在第135分钟时刻使分1号发节点死亡,这时应用的故障将重现,节点表现出异常行为。如图4为感知节点的状态流以及对状态的检测结果,本发明准确的检测到了程序的异常行为,进一步,本发明发现了表1所示异常任务。
表1实施例1中异常任务
Figure GDA0002700417280000132
表1第一列为任务的ID,内核调度器根据该ID完成对任务的调度。由异常任务0x000a,0x000f可以判断节点的异常与定时器异常导致。该异常产生的真正原因是TinyOS系统TrickleTimerImplP组件的代码缺陷,由异常任务0x000f(TrickleTimerImplP__0__timerTask)可以为定位该代码缺陷的范围提供代码级的帮助。
但是本发明并不总是如此高效,经过多次实验并改变本发明的w参数和Q参数,得到了本发明的误报率与参数有着如图5、图6中所示关系。由图5知,随着时间窗口的增大误报率将呈下降趋势。但是由经验可知,时间窗口越大本发明对于持续时间较短的异常状态敏感性越低;由图6知,随着阈值的增大误报率呈下降趋势。
实施例2:节点位置变化异常分析
实施例2由10个运行MultihopOscilloscope应用的节点组成,该应用使用汇聚树协议进行网络通信。实施例2是对环境监测项目网络部分的仿真试验,该项目将在长安大学校园内的布置若干感知节点来监测温湿度与空气质量对校园行人流量和分布情况的影响。由于我们的环境监测项目对于感知节点有移动性要求,因此本实验主要测试改变节点位置对网络的行为的影响,并使用本发明对这种影响进行监测。在该实验中,对代码进行静态分析得到节点内部共有13个任务被执行,如表2,即u=13。
表2实施例2中任务
Figure GDA0002700417280000151
本实施例初始网络结构如图7,节点的通信半径为50米,在实验进行到第2小时的时候,改变4号节点的位置使其与3号节点的连接切断并进入2号节点的通信范围内,整个实验过程持续4小时。实验的预期是本发明准确的检测到网络这一异常行为并且4号节点及时连接点到2号节点。
设置本发明的时间窗口参数w=4.5min,阈值Q=13°。本发明检测到2号,3号,4号节点发生异常行为。对本发明检测到异常节点的异常信息进行分析。
本发明检测出2号节点的状态流如图8,方框表示部分为异常状态,未用方框表示部分为正常状态,其数值表示状态的编号,不同的数值代表着不同的状态对应的任务转移概率矩阵。2号节点异常状态1,2是4号节点与2号节点建立连接时出现的状态。导致异常状态1出现的原因是任务0x0011(CC2420ReceiveP__receiveDone_task)的转移概率发生变化。正常情况下任务0x0011的任务一步转移概率情况如下:
P{X(1)=0x0011∣X=0x0011}=0.5
P{X(1)=0x0001∣X=0x0011}=0.5
在4号节点中断与3号节点连接并进入2号节点通信半径但未与2号节点建立连接期间其转移概率发生改变:
P{X(1)=0x0011∣X=0x0011}=0.964
P{X(1)=0x0001∣X=0x0011}=0.036
此异常信息表明了2号节点频繁处理接收事件,这是由于4号节点在此时频繁向2号节点发送数据包导致。
异常状态2出现的原因是任务0x0021(UARTDebugSenderP__sendTask)的转移概率发生变化,这是因为建立连接时节点频繁发送Debug信息。
异常状态3发生在2号节点与4号节点建立连接之后,本发明报告了如表3异常任务。异常状态3是由于网络结构改变,节点2与节点4之间由不能通信变为可以通信,因此由表3可以看出节点2的异常状态3主要是由一些与发送和接收有关的任务导致,因此我们有理由认为状态3是网络结构重新达到稳定后的正常状态,因此将状态3添加至状态表,更新状态表后的2号节点状态流如表4所示,异常状态由网络结构变化导致。节点3的状态流如图10,其中节点3处于异常状态1~5时,本发明检测到如表4所示转移概率发生异常的任务。
表3实施例2中2号节点导致异常状态3的任务
Figure GDA0002700417280000171
表4实施例2中节点3转移概率发生变化并导致异常状态1~4发生的任务
Figure GDA0002700417280000172
节点3出现的异常任务主要是与发生和接收数据包相关的任务,由于网络经历了从突然改变结构到新的网络结构逐步稳定的动态变化过程,因此与发送和接收相关的任务也会经历一个动态的变化过程,其从异常状态1逐步达到异常状态5并达到稳定。与上述分析2号节点状态3相似,3号节点异常状态5是网络结构重新稳定之后的新的正常状态,因此我们需要将状态5添加至本发明状态表中。
如图11,4号节点状态流显示4号节点共有一个正常状态和两个异常状态,异常状态出现在4号节点丢失父节点且未与2号节点建立连接的时间内,当4号节点与2号节点建立连接之后其工作状态恢复正常。
如表5,4号节点的出现的异常任务与发送与接收数据包相关和与更新路由相关。其原因是由于4号节点断开与3号节点的连接导致其丢失父节点并进入2号节点通信范围内后,其需要不断的发送请求数据与新的父节点建立连接并更新其路由表。
表5实施例2中4号节点异常任务
Figure GDA0002700417280000181
在实验2中我们发现了一个新的异常现象:4号节点从丢失父节点并进入2号节点通信范围内到其与2号节点建立连接并将2号节点设置为新的父节点经历了20分钟,这远远大于我们期望的时间。通过分析异常节点的异常信息,我们试图找到这一新的异常行为的原因。
对比表2,表3与表5的2号节点,3号节点,4号节点出现的异常任务,发现CtpRoutingEngineP组件内均有异常发生,该组件负责维护节点的路由信息,4号节点丢失父节点之后任务0x0016(CtpRoutingEngineP__0__updateRouteTask)出现异常,而2号节点的0x0016任务未出现异常。通过对CtpRoutingEngineP组件代码分析发现,Router定时器BeaconTimer在网络稳定之后广播Beacon数据包的周期为512000毫秒导致了4号节点不能及时获取到新的邻居信息进一步导致4号节点建立新的路由时间较长,这一异常将使得网络在节点位置发生变化之后不能很快建立新的最佳链路,网络性能变差。将Beacon广播周期设置为1秒后,TinyOS汇聚树协议程序很好的满足了我们的项目在节点具有移动性的情况下快速建立路由的需求。
实施例3:外部存储器失效故障
造成外部存储器失效故障的原因是TinyOS相关代码在访问外部存储器时不对存储器的状态进行检测。我们在Cooja中重现了这一故障并利用本发明检测到这一异常,本发明给出了相关的异常任务信息,该异常任务信息可以帮助开发人员找到代码缺陷的位置。
Telosb节点使用STM25P作为外部存储器。通过修改Cooja中STM25P80仿真器代码使其不对来自TinyOS节点的任何读写操作做出响应重现了这一故障。
利用本发明可以获得实验节点的状态流如图12。在实验进行一段时间后重现外部存储器故障,本发明准确的检测到了这一异常。节点内所有运行的任务如表6。本发明检测到任务0x0007(ArbiterP__1__grantedTask)出现异常,在正常状态下任务0x0007到任务0x0000(Stm25pSectorP__signalDone_task)的一步转移概率为0.035,在异常状态下该一步转移概率为0.411。根据本发明给出的异常信息,开发人员可以确定该故障与TinyOS资源仲裁器或STM25P外部存储器驱动代码相关。进一步分析可以知道STM25P驱动代码可以找到该异常的原因是TinyOS的启动STM25P函数总是返回成功而不对存储器的状态进行检查。
表6实施例3中节点内运行任务
Figure GDA0002700417280000201

Claims (6)

1.一种感知节点异常运行状态检测方法,其特征在于,包括以下步骤:
步骤1,针对感知节点运行下的待检测任务序列的多个子序列,获取每个子序列的一步任务转移概率矩阵,第i个子序列RTi的一步任务转移概率矩阵为待检测矩阵RPi;i=1,2,...,I,其中,i表示子序列的标号,I表示子序列的总个数;
步骤2,针对多个正常运行的任务序列,获取每个正常运行的任务序列的一步任务转移概率矩阵,第j个正常运行的任务序列NTj的一步任务转移概率矩阵为模板矩阵NPj,所有模板矩阵形成模板矩阵库;j=1,2,...,J,其中,j表示正常运行的任务序列的标号,J表示正常运行的任务序列的总个数;
步骤3,求待检测矩阵RPi中的行向量RPi x和模板矩阵NPj中的行向量NPj x之间的夹角
Figure FDA0002794245090000011
其中,x表示行向量的标号,x=1,2,...,X,X表示行向量的个数;
若对于任意的x,存在
Figure FDA0002794245090000012
大于设定阈值,则待检测矩阵RPi与模板矩阵NPj不相似;若对于所有的j,待检测矩阵RPi与模板矩阵NPj均不相似,则待检测矩阵RPi代表疑似异常运行状态;
步骤4,若疑似异常状态是由于网络结构改变导致节点间通信路由改变,并且在网络结构重新达到稳定后恢复正常运行状态,则代表疑似异常运行状态的待检测矩阵RPi代表模板矩阵库中不存在的正常运行状态,则将待检测矩阵RPi添加至模板矩阵库;否则,所述代表疑似异常运行状态的待检测矩阵RPi代表异常运行状态。
2.如权利要求1所述的感知节点异常运行状态检测方法,其特征在于,所述步骤1中的针对感知节点运行下的待检测任务序列的多个子序列,获取每个子序列的一步任务转移概率矩阵,包括以下步骤:
计算第i个子序列RTi中任务m到任务n的一步转移频数Qmn
根据一步转移频数求任务m到任务n之间的一步转移概率
Figure FDA0002794245090000021
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号。
3.如权利要求1所述的感知节点异常运行状态检测方法,其特征在于,所述步骤2中的针对多个正常运行的任务序列,获取每个正常运行的任务序列的一步任务转移概率矩阵,第j个正常运行的任务序列NTj的一步任务转移概率矩阵为模板矩阵NPj,所有模板矩阵形成模板矩阵库;包括以下步骤:
计算第j个正常运行的任务序列NTj中任务m到任务n的一步转移频数Qmn
根据一步转移频数求任务m到任务n之间的一步转移概率
Figure FDA0002794245090000022
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵即模板矩阵NPj,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号;
所有正常运行的任务序列求得的模板矩阵形成模板矩阵库。
4.一种感知节点异常运行状态检测装置,其特征在于,包括待检测矩阵获取模块、模板矩阵库构建模块、疑似异常运行状态检测模块和异常运行状态确定模块,其中,
待检测矩阵获取模块用于实现以下功能:
针对感知节点运行下的待检测任务序列的多个子序列RTi,获取每个子序列的一步任务转移概率矩阵,第i个子序列RTi的一步任务转移概率矩阵为待检测矩阵RPi;i=1,2,...,I,其中,i表示子序列的标号,I表示子序列的总个数;
模板矩阵库构建模块用于实现以下功能:
针对多个正常运行的任务序列NTj,获取每个正常运行的任务序列的一步任务转移概率矩阵,第j个正常运行的任务序列NTj的一步任务转移概率矩阵为模板矩阵NPj,所有模板矩阵NPj形成模板矩阵库;j=1,2,...,J,其中,j表示正常运行的任务序列的标号,J表示正常运行的任务序列的总个数;
疑似异常运行状态检测模块用于实现以下功能:
求待检测矩阵RPi中的行向量RPi x和模板矩阵NPj中的行向量NPj x之间的夹角
Figure FDA0002794245090000031
其中,x表示行向量的标号,x=1,2,...,X,X表示行向量的个数;
异常运行状态确定模块用于实现以下功能:
若疑似异常状态是由于网络结构改变导致节点间通信路由改变,并且在网络结构重新达到稳定后恢复正常运行状态,则代表疑似异常运行状态的待检测矩阵RPi代表模板矩阵库中不存在的正常运行状态,则将待检测矩阵RPi添加至模板矩阵库;否则,所述代表疑似异常运行状态的待检测矩阵RPi代表异常运行状态。
5.如权利要求4所述的感知节点异常运行状态检测装置,其特征在于,所述待检测矩阵获取模块包括:子模块11、子模块12和子模块13,其中,
子模块11用于实现以下功能:计算第i个子序列RTi中任务m到任务n的一步转移频数Qmn
子模块12用于实现以下功能:根据一步转移频数求任务m到任务n之间的一步转移概率
Figure FDA0002794245090000041
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
子模块13用于实现以下功能:所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号。
6.如权利要求4所述的感知节点异常运行状态检测装置,其特征在于,所述模板矩阵库构建模块包括子模块21、子模块22、子模块23和子模块24,其中,
子模块21用于实现以下功能:
计算第j个正常运行的任务序列NTj中任务m到任务n的一步转移频数Qmn
子模块22用于实现以下功能:
根据一步转移频数求任务m到任务n之间的一步转移概率
Figure FDA0002794245090000051
其中,Qm表示从任务m开始转移的所有一步转移频数之和;
子模块23用于实现以下功能:
所有求得的一步转移概率作为矩阵的元素构成一步任务转移概率矩阵,该一步任务转移概率矩阵中的元素的行号为开始转移的任务标号,列号为结束转移的任务标号;
子模块24用于实现以下功能:
所有正常运行的任务序列求得的模板矩阵形成模板矩阵库。
CN201711140457.2A 2017-11-16 2017-11-16 一种感知节点异常运行状态检测方法及检测装置 Active CN107947972B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711140457.2A CN107947972B (zh) 2017-11-16 2017-11-16 一种感知节点异常运行状态检测方法及检测装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711140457.2A CN107947972B (zh) 2017-11-16 2017-11-16 一种感知节点异常运行状态检测方法及检测装置

Publications (2)

Publication Number Publication Date
CN107947972A CN107947972A (zh) 2018-04-20
CN107947972B true CN107947972B (zh) 2021-01-15

Family

ID=61932716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711140457.2A Active CN107947972B (zh) 2017-11-16 2017-11-16 一种感知节点异常运行状态检测方法及检测装置

Country Status (1)

Country Link
CN (1) CN107947972B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920356B (zh) * 2018-05-31 2021-07-27 长安大学 一种基于任务执行轨迹模型的感知节点异常检测方法
CN110417621B (zh) * 2019-07-25 2021-01-12 长安大学 一种轻量级嵌入式系统异常运行状态检测方法
CN111090885A (zh) * 2019-12-20 2020-05-01 北京天融信网络安全技术有限公司 一种用户行为审计方法、装置、电子设备及存储介质
CN111323544B (zh) * 2020-03-27 2022-09-20 沈阳沃尔鑫环保科技有限公司 一种基于微型空气质量监测仪器的校准方法及系统
CN111858285B (zh) * 2020-07-30 2024-03-12 北京达佳互联信息技术有限公司 视频操作行为的异常识别方法、装置、服务器及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826114A (zh) * 2010-05-26 2010-09-08 南京大学 一种基于多马尔可夫链的内容推荐方法
CN104075749A (zh) * 2014-06-30 2014-10-01 通号通信信息集团有限公司 物联网中设备异常状态检测的方法及系统
CN107085544A (zh) * 2017-04-19 2017-08-22 国家电网公司 一种系统错误定位方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826114A (zh) * 2010-05-26 2010-09-08 南京大学 一种基于多马尔可夫链的内容推荐方法
CN104075749A (zh) * 2014-06-30 2014-10-01 通号通信信息集团有限公司 物联网中设备异常状态检测的方法及系统
CN107085544A (zh) * 2017-04-19 2017-08-22 国家电网公司 一种系统错误定位方法及装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A Survey of Recent Achievements for Wireless Sensor Networks Testbeds;Junyan MA 等;《2017 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC)》;20171014;全文 *
Anomaly Detection Using Markov Chain Model;Michael Zheludev 等;《2017 Computer Science and Information Technologies (CSIT)》;20170929;全文 *
Post-Deployment Anomaly Detection and Diagnosis in Networked Embedded Systems by Program Profiling and Symptom Mining;Wei Dong 等;《2013 IEEE 34th Real-Time Systems Symposium》;20160316;全文 *
基于FSM 的感知节点软件故障检测;马峻岩;《北京邮电大学学报》;20130430;全文 *
工业物联网中的设备状态建模与检测;吕晓鹏;《科技创新与应用》;20131108;全文 *

Also Published As

Publication number Publication date
CN107947972A (zh) 2018-04-20

Similar Documents

Publication Publication Date Title
CN107947972B (zh) 一种感知节点异常运行状态检测方法及检测装置
CN102436376B (zh) 用于分布式应用确认的模型检查
KR101331935B1 (ko) 추적점 기반의 고장 진단/복구 시스템 및 그 방법
US10495691B2 (en) System architecture method and apparatus for adaptive hardware fault detection with hardware metrics subsystem
US20060253837A1 (en) Using a call stack hash to record the state of a process
US9122784B2 (en) Isolation of problems in a virtual environment
US20180026848A9 (en) Isolation of problems in a virtual environment
Langner et al. Detecting software aging in a cloud computing framework by comparing development versions
WO2006117833A1 (ja) 監視シミュレーション装置,方法およびそのプログラム
CN113946499A (zh) 一种微服务链路跟踪及性能分析方法、系统、设备及应用
Abdulmunem et al. Availability and security assessment of smart building automation systems: combining of attack tree analysis and Markov models
US11163924B2 (en) Identification of changes in functional behavior and runtime behavior of a system during maintenance cycles
Wetzig et al. Unsupervised anomaly alerting for iot-gateway monitoring using adaptive thresholds and half-space trees
CN115766402B (zh) 服务器故障根因的过滤方法和装置、存储介质及电子装置
CN110417621B (zh) 一种轻量级嵌入式系统异常运行状态检测方法
Jiang et al. An industrial case study on speeding up user acceptance testing by mining execution logs
CN109032918B (zh) 一种基于异常任务函数轨迹的感知节点程序异常诊断方法
CN116405412A (zh) 服务端集群的有效性验证方法和系统
CN111309584A (zh) 数据处理方法、装置、电子设备及存储介质
Soualhia et al. Automated traces-based anomaly detection and root cause analysis in cloud platforms
Luong Nguyen et al. Validation, verification and root-cause analysis
US10437710B2 (en) Code coverage testing utilizing test-to-file maps
CN108920356B (zh) 一种基于任务执行轨迹模型的感知节点异常检测方法
Bhatia et al. Efficient failure diagnosis of OpenStack using Tempest
CN116382968B (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