一种基于默克尔树的制造技术

技术编号:39655145 阅读:7 留言:0更新日期:2023-12-09 11:24
本发明专利技术公开了一种基于默克尔树的

【技术实现步骤摘要】
一种基于默克尔树的IoT设备数据校验方法


[0001]本专利技术涉及数据校验领域,尤其涉及一种基于默克尔树的
IoT
设备数据校验方法


技术介绍

[0002]大型设备集成物联网系统后,需要将实时采集到的设备数据传给后台,某些没有联网的设备数据传输需要通过
3G
网络实现
(
如采油机等
)
,存在网络信号质量波动,数据传输出错的问题

当前通常的解决方案是:针对一次作业全量数据包,计算数据包的哈希值,发送端同时上传完作业数据后,发送哈希值到接收端;接收端计算所接收数据的哈希值,与收到的哈希值比较,如果不一致,则说明数据传输有误,通知重发

存在的问题是:一次作业的数据,可能只有一条或几条传输有误,会导致全部数据重发


技术实现思路

[0003]本专利技术提供一种基于默克尔树的
IoT
设备数据校验方法,以克服上述技术问题

[0004]一种基于默克尔树的
IoT
设备数据校验方法,包括,
[0005]步骤一


IoT
设备集合作为发送端,将存储
IoT
设备所产生数据的平台作为接收端,
[0006]步骤二


IoT
设备集合执行当前作业产生的数据表示为第一数据集合,将
IoT
设备集合执行下一作业产生的数据表示为第二数据集合,获取执行相邻作业的时间间隔,对时间间隔内发送端与接收端之间的网络状态进行判断,当网络状态改变时更新默克尔树的叉数,当网络状态不改变时不更新默克尔树的叉数,
[0007]步骤三

获取第二数据集合,根据第二数据集合和默克尔树的叉数构建第二默克尔树,
[0008]步骤四

分别将第二数据集合

默克尔树的叉数

第二默克尔树以及第二默克尔树根节点的哈希值传输至接收端,接收端根据接收的第二数据集合和叉数重新构建第三默克尔树,比较第二默克尔树根节点的哈希值与第三默克尔树根节点的哈希值是否一致,若一致,表示接收端与发送端的数据一致,将接收的第二数据集合存储至接收端,若不一致,则依次比较第二默克尔树与第三默克尔树的子树根的哈希值,直到找到哈希值不一样的节点集合,根据节点集合中各节点与接收的第二数据集合之间的对应关系确定待重发数据的
IoT
设备集合,获取
IoT
设备集合中各
IoT
设备的编号并分别将重传指令传输至对应的
IoT
设备,使得各
IoT
设备重新将数据

数据对应的哈希值发送至接收端,接收端根据接收的数据分别计算哈希值,并比较接收的哈希值与计算的哈希值是否一致,若一致则存储接收的数据,反之,则重复使得
IoT
设备重新将数据

数据对应的哈希值发送至接收端直至一致,
[0009]步骤五

获取
IoT
设备集合需执行的下一作业,返回步骤二,重新获取第一数据集合和第二数据集合,并判断网络状态,直到
IoT
设备集合完成所有任务

[0010]优选地,所述对时间间隔内发送端与接收端之间的网络状态进行判断包括发送端通过在时间间隔内定时调用
ping
命令获取与接收端的网络时延,计算相邻时间间隔的网络
时延变化绝对值,若绝对值超过第一阈值,表示网络状态改变,反之,网络状态不改变

[0011]优选地,所述对时间间隔内发送端与接收端之间的网络状态进行判断包括获取统计周期,所述统计周期包括当前时间间隔以及当前时间间隔之前的前
k
个时间间隔,计算统计周期内接收端与发送端数据不一致的次数并表示为
n
,若
n
超过第二阈值时,表示网络状态改变,若
n
小于等于第二阈值,表示网络状态不改变

[0012]优选地,所述当网络状态改变时更新默克尔树的叉数包括将改变的网络状态划分为改善状态和恶化状态,当为改善状态时根据公式
(1)
更新默克尔树的叉数,当为恶化状态时,根据公式
(2)
更新默克尔数的叉数,
[0013][0014][0015]M
为叉数阈值

[0016]优选地,所述根据第二数据集合和默克尔树的叉数构建第二默克尔树包括,
[0017]a)
获取第二数据集合的所有记录,计算各条记录内容的哈希值,将哈希值作为默克尔树的叶子结点,
[0018]b)
将相邻的
p
个叶子结点的哈希值合并成一个字符串,计算字符串的哈希值作为默克尔树的上级节点,其中
p
为叉数,
[0019]c)
递归上一步操作,直到得到唯一的根结点

[0020]本专利技术提供一种基于默克尔树的
IoT
设备数据校验方法,通过构建
IoT
设备数据的默克尔树,提升数据上传的效率;根据网络数据传输质量,动态调整默克尔树的叉数与层数,以平衡默克尔树的计算量与数据校验失败导致的重发,可在网络质量不稳定的环境上,提升数据传输效率,降低由于数据校验失败导致的数据重发次数

附图说明
[0021]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图

[0022]图1是本专利技术方法流程图;
[0023]图2是本专利技术构建二叉默克尔树的过程示意图;
[0024]图3是本专利技术校验数据传输错误过程示意图

具体实施方式
[0025]为使本专利技术实施例的目的

技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚

完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例

基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围

[0026]图1为本专利技术方法流程图,如图1所示,本实施例的方法可以包括:
[0027]步骤一


IoT
设备集合作为发送端,将存储
IoT
设备所产生数据的平台作为接收端,
[0028]步骤二


IoT...

【技术保护点】

【技术特征摘要】
1.
一种基于默克尔树的
IoT
设备数据校验方法,其特征在于,包括,步骤一


IoT
设备集合作为发送端,将存储
IoT
设备所产生数据的平台作为接收端,步骤二


IoT
设备集合执行当前作业产生的数据表示为第一数据集合,将
IoT
设备集合执行下一作业产生的数据表示为第二数据集合,获取执行相邻作业的时间间隔,对时间间隔内发送端与接收端之间的网络状态进行判断,当网络状态改变时更新默克尔树的叉数,当网络状态不改变时不更新默克尔树的叉数,步骤三

获取第二数据集合,根据第二数据集合和默克尔树的叉数构建第二默克尔树,步骤四

分别将第二数据集合

默克尔树的叉数

第二默克尔树以及第二默克尔树根节点的哈希值传输至接收端,接收端根据接收的第二数据集合和叉数重新构建第三默克尔树,比较第二默克尔树根节点的哈希值与第三默克尔树根节点的哈希值是否一致,若一致,表示接收端与发送端的数据一致,将接收的第二数据集合存储至接收端,若不一致,则依次比较第二默克尔树与第三默克尔树的子树根的哈希值,直到找到哈希值不一样的节点集合,根据节点集合中各节点与接收的第二数据集合之间的对应关系确定待重发数据的
IoT
设备集合,获取
IoT
设备集合中各
IoT
设备的编号并分别将重传指令传输至对应的
IoT
设备,使得各
IoT
设备重新将数据

数据对应的哈希值发送至接收端,接收端根据接收的数据分别计算哈希值,并比较接收的哈希值与计算的哈希值是否一致,若一致则存储接收的数据,反之,则重复使得
IoT
设备重新将数据

数据对应的哈希值发送至接收端直至一致,步骤五

获取
IoT
设备集合需执行的下一作业,返回步骤二,重新获取第一数据集合和第二数据集合,并判断网络状态,直...

【专利技术属性】
技术研发人员:骆伟王菊
申请(专利权)人:大连东软信息学院
类型:发明
国别省市:

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

1