基于MQTT的设备在线状态实时检测方法及检测系统技术方案

技术编号:35990648 阅读:8 留言:0更新日期:2022-12-17 23:05
本发明专利技术公开了一种基于MQTT的设备在线状态实时检测方法,包括进行初始化;实时获取设备端口的数据报文并处理得到探测集合;针对探测集合中的每一个元素建立一个概率模型;对探测集合中的每一个元素进行实时探测校验;将探测结果进行反馈完成最终的设备在线状态实时检测。本发明专利技术还公开了一种实现所述基于MQTT的设备在线状态实时检测方法的检测系统。本发明专利技术基于MQTT协议进行探测,避免了探测消耗大量的数据流量,通过整合多次校验结果并建立可信模型来建模设备的在线状态,聚合了多路消息源;而且本发明专利技术能够较好的监听到设备频繁上下线的情况,并直接进行反馈和检测;因此本发明专利技术可靠性高且精确性好。靠性高且精确性好。靠性高且精确性好。

【技术实现步骤摘要】
基于MQTT的设备在线状态实时检测方法及检测系统


[0001]本专利技术属于计算机网络
,具体涉及一种基于MQTT的设备在线状态实时检测方法及检测系统。

技术介绍

[0002]物联网技术的快速发展,推动了物联网数据采集系统的快速发展。一个物联网数据采集系统一般包括数据感知侧、管理平台和数据应用侧。在数据感知侧,具有无线通信能力的边缘设备用于采集传感器等不具备无线通信能力的终端所感知的数据,然后边缘设备基于MQTT协议通过无线通信的方式将数据上传到云端管理平台,最后数据应用侧的各类应用从平台获取所需的数据。
[0003]在实际的应用环境中,数据应用侧的应用基于所获取到的设备在线信息,去调取设备所上传的实时感知数据。然而,数据采集系统是较为复杂的:一方面,边缘设备上的集成系统中运行着一个MQTT客户端以及其他各种应用;另一方面,管理平台运行着许多的组件,并依赖这些组件管理下层设备和对接上层应用。此外,边缘设备可能被部署在通信环境不稳定的场所(如地下车库、偏远山区等),因此极易出现网络不稳定、突然断电等情况,进而引发边缘设备中运行的各类软件发生异常。上述这些原因可能使得边缘设备的在线状态非常不稳定,即设备出现频繁上下线的情形;而且,由于系统的复杂性,设备的在线状态信息在由MQTT代理同步到管理平台的过程中可能出现问题,使得管理平台出现设备在线状态信息和设备的真实在线状态不匹配的问题。

技术实现思路

[0004]本专利技术的目的之一在于提供一种可靠性高且精确性好的基于MQTT的设备在线状态实时检测方法。
[0005]本专利技术的目的之二在于提供一种实现所述基于MQTT的设备在线状态实时检测方法的检测系统。
[0006]本专利技术提供的这种基于MQTT的设备在线状态实时检测方法,包括如下步骤:
[0007]S1.进行初始化;
[0008]S2.基于MQTT协议,实时获取设备端口的数据报文,并处理得到探测集合;
[0009]S3.针对步骤S2得到的探测集合中的每一个元素,建立一个概率模型;
[0010]S4.基于步骤S3得到的概率模型,对探测集合中的每一个元素进行实时探测校验;
[0011]S5.将步骤S4得到的探测结果进行反馈,完成最终的设备在线状态实时检测。
[0012]步骤S1所述的初始化,具体包括如下步骤:
[0013]P
b
表示MQTT代理的服务器端口;D
n
表示第n个设备的设备ID,D
n
的在线状态变量S
n
为S
n
∈{0,1},D
n
在线则S
n
=1,D
n
离线则S
n
=0;D
n
的客户端连接端口为同时设定每个设备D
n
均订阅了一个探测主题Y
n
,其中Y
n
的名称仅与D
n
的名称相关,且Y
n
表示为Y
n
=f(D
n
)。
[0014]步骤S2所述的基于MQTT协议,实时获取设备端口的数据报文,并处理得到探测集
合,具体包括如下步骤:
[0015]抓取与端口P
b
相关的数据报文;
[0016]对抓取的报文进行判定:
[0017]若抓取到的数据报文为MQTT协议的CONNECT报文,则说明有设备发起上线请求;通过CONNECT报文获取上线设备的设备ID值D
n
和对应的客户端连接端口值并将对应的在线状态变量S
n
设置为1,同时将加入探测集合C中;
[0018]若抓取到的数据报文为MQTT协议的DISCONNECT报文或TCP重置RST报文,则说明有设备离线;通过DISCONNECT报文或TCP重置RST报文获取客户端连接端口值并将对应的在线状态变量S
n
设置为0,同时将加入探测集合C中。
[0019]步骤S3所述的针对步骤S2得到的探测集合中的每一个元素,建立一个概率模型,具体包括如下步骤:
[0020]对于探测集合中的任意元素设定端口所对应的设备D
n
的在线状态确实为S
n
的概率为X
n
,X
n
服从参数为α
n
和β
n
的Beta分布,X
n
~Be(α
n

n
),X
n
的数学期望μ
n

[0021]将μ
n
视为设备D
n
的在线状态确实为S
n
的可信度;规定当μ
n
大于上阈值时认定设备D
n
的在线状态为S
n
,当μ
n
小于下阈值Γ时认定设备D
n
的在线状态不为S
n

[0022]步骤S4所述的基于步骤S3得到的概率模型,对探测集合中的每一个元素进行实时探测校验,具体包括如下步骤:
[0023]A.初始化:
[0024]初始化当前探测次数t的值为1,同时设定最大探测次数maxt;对于探测集合中的任意元素所对应的Beta分布Be(α
n

n
),初始化时令α
n
=1,β
n
=1+ln(1+o
n
),其中o
n
为设备D
n
在当前时刻往前φ秒内的上下线次数,同时规定一次上线和一次下线共同视为一次上下线;
[0025]B.实时执行第t次探测校验,得到的探测结果为
[0026]通过MQTT客户端向探测主题Y
n
发布消息,消息报文的内容为M;
[0027]根据实时抓取的报文进行分析:若时间间隔Δt内抓取到目的端口消费信息的报文且报文内容为M,则表明端口对应的设备D
n
的当前状态为在线,若时间间隔Δt内未抓取到目的端口消费信息的报文,则表明端口对应的设备D
n
的当前状态为离线,
[0028]C.若第t次实时探测的结果等于S
n
,则α
n
增加1;若第t次实时探测的结果不等于S
n
,则β
n
增加1;然后根据Beta分布模型计算当前时刻对在线状态S
n
的信任度μ
n

[0029]D.若探测次数t≤maxt且μ
n
<Γ,则推翻当前假设的在线状态变量S
n
,删去当前探测集合C中的元素将在线状态变量更新为1

S
n
,并将元素记录到集合中;
[0030]若探测次数t≤本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于MQTT的设备在线状态实时检测方法,包括如下步骤:S1.进行初始化;S2.基于MQTT协议,实时获取设备端口的数据报文,并处理得到探测集合;S3.针对步骤S2得到的探测集合中的每一个元素,建立一个概率模型;S4.基于步骤S3得到的概率模型,对探测集合中的每一个元素进行实时探测校验;S5.将步骤S4得到的探测结果进行反馈,完成最终的设备在线状态实时检测。2.根据权利要求1所述的基于MQTT的设备在线状态实时检测方法,其特征在于步骤S1所述的初始化,具体包括如下步骤:P
b
表示MQTT代理的服务器端口;D
n
表示第n个设备的设备ID,D
n
的在线状态变量S
n
为S
n
∈{0,1},D
n
在线则S
n
=1,D
n
离线则S
n
=0;D
n
的客户端连接端口为同时设定每个设备D
n
均订阅了一个探测主题Y
n
,其中Y
n
的名称仅与D
n
的名称相关,且Y
n
表示为Y
n
=f(D
n
)。3.根据权利要求2所述的基于MQTT的设备在线状态实时检测方法,其特征在于步骤S2所述的基于MQTT协议,实时获取设备端口的数据报文,并处理得到探测集合,具体包括如下步骤:抓取与端口P
b
相关的数据报文;对抓取的报文进行判定:若抓取到的数据报文为MQTT协议的CONNECT报文,则说明有设备发起上线请求;通过CONNECT报文获取上线设备的设备ID值D
n
和对应的客户端连接端口值并将对应的在线状态变量S
n
设置为1,同时将加入探测集合C中;若抓取到的数据报文为MQTT协议的DISCONNECT报文或TCP重置RST报文,则说明有设备离线;通过DISCONNECT报文或TCP重置RST报文获取客户端连接端口值并将对应的在线状态变量S
n
设置为0,同时将加入探测集合C中。4.根据权利要求3所述的基于MQTT的设备在线状态实时检测方法,其特征在于步骤S3所述的针对步骤S2得到的探测集合中的每一个元素,建立一个概率模型,具体包括如下步骤:对于探测集合中的任意元素设定端口所对应的设备D
n
的在线状态确实为S
n
的概率为X
n
,X
n
服从参数为α
n
和β
n
的Beta分布,X
n
~Be(α
n

n
),X
n
的数学期望μ
n
为将μ
n
视为设备D
n
的在线状态确实为S
n
的可信度;规定当μ
n
大于上阈值时认定设备D
n
的在线状态为S
n
,当μ
n
小于下阈值Γ时认定设备D
n
的在线状态不为S
n
。5.根据权利要求...

【专利技术属性】
技术研发人员:祝视杨芳僚王建辉陈运生冯晓文徐宁张宇翔朱宏宇孙毅臻方彬
申请(专利权)人:国网湖南省电力有限公司信息通信分公司国家电网有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1