一种基于默克尔树和广播自请求的镜像数据传输方法技术

技术编号:25894003 阅读:35 留言:0更新日期:2020-10-09 23:40
本发明专利技术提出了一种基于默克尔树和广播自请求的镜像数据传输方法,应用于Mesh网络中,包含如下步骤:将待传输镜像数据分割为若干镜像数据块,并基于分割后的镜像数据块构造默克尔树;边界路由器以主动广播方式向子节点传输包含默克尔树根哈希值的镜像传输命令,子节点单播回应边界路由器,直至所有的子节点全部回复响应;子节点以自请求方式向边界路由器或相邻子节点广播请求默克尔树叶子节点信息,并基于默克尔树根哈希值对接收的默克尔树节点信息进行自校验;完成默克尔树校验的子节点以自请求方式向边界路由器或相邻子节点广播请求镜像数据块,并基于默克尔树对接收到的镜像数据块进行校验,直至完成镜像数据传输。提高镜像传输的可靠性和效率。

【技术实现步骤摘要】
一种基于默克尔树和广播自请求的镜像数据传输方法
本专利技术涉及通信
,尤其涉及一种基于默克尔树和广播自请求的镜像数据传输方法。
技术介绍
默克尔树默克尔树其叶子节点上的值通常为数据块的哈希值,而非叶子节点上的值则由叶子节点的哈希值两两运算得到,最后得到一个根哈希值。所以有时候默克尔树也表示为Hashtree。无线Mesh网络Mesh网络一般由一个边界路由器和若干个子节点组成,子节点包含路由节点和叶子节点,如图1所示。边界路由器具有外部网络和内部网络通信转换、Mesh网络管理等功能。路由节点作为网络中继,除了普通子节点的功能外,还能够路由Mesh网络中的信息,从而扩大网络的覆盖范围。绿色节点为叶子节点,与路由节点相比不具备数据路由功能。在无线网络中,点对点通信受到发射功率,通信速率等因素制约,存在最远通信距离的限制。使用mesh组网技术,数据通过路由转发的方式在点与点之间中继传播,理论上可以无限扩大网络覆盖范围。在Mesh网络中,网络节点需要固件版本更新的时候,为了实现远程在线固件升级,需要通过现有的Mesh网络,将存储在边界路由器的升级镜像传输到每一个Mesh网络子节点上。而无线Mesh网络的通信具有不稳定和低速率等特点。传统的Mesh网络镜像传输,一般有两种方式:点对点单播传输,主动广播传输。1、点对点单播传输该方式是由边界路由器和目标子节点进行点对点单播数据传输,数据经过Mesh网络的多级路由转发达到目标节点。假设一个深度为N级的网络中,一个数据包的传输需要经过N-1次转发才能最终到达目标节点。如图2所示,以一个4层的网络为例,一个数据包到达目标叶子节点需要3次的空中传输,在这个网络中,如果要将一个数据包发给所有节点,需要1+1+2+2+2+3+3共14次传输。不难想象这将花费大量的时间。由于所有节点需要的升级镜像是相同的,单播方式在中继转发镜像数据的时候,并没有有效利用该数据,造成效率低下。2、主动广播传输鉴于单播的低效率,Mesh网络主动广播传输是由边界路由器开始,自上而下的广播镜像数据。如图3所示,在同样的网络拓扑中,利用广播将数据包传输到所有的子节点,只需要4次,相比单播而言大大缩减了数据传输次数,而且网络规模越大,效果越明显。主动广播传输情况下,由于节点不知道其子节点是否收到自己的数据,需要一直循环广播,直到Mesh网络中所有节点的镜像传输完成,这也将浪费大量的广播资源。特别是当遇到部分节点因为镜像验证错误或者重启导致部分数据重新传输的时候,将花费更多的时间。现有的镜像传输方法是完整的镜像传输完毕后,对整个镜像进行哈希校验,然后和传输开始的时候边界路由器给出的哈希值进行比对。该方法的弊端是,当最终因为校验失败而发现镜像传输错误的时候,完整的镜像传输已经完成,但是不知道具体哪个部分出现错误,这使得我们需要重新进行完整镜像的传输,这使得升级效率非常的低。另一种情况,当升级过程中某个子节点发生了复位,则之前传输的进度信息丢失,也需要重新进行传输。而且在镜像传输过程中,由于无线Mesh网络的传输不稳定性,在传输过程中很可能出现数据错误而导致镜像错误。如果使用数据出错的镜像对子节点进行固件升级,将会导致子节点升级失败而无法使用。
技术实现思路
本专利技术为了解决上述问题,提供了一种基于默克尔树和广播自请求的镜像数据传输方法,提高了镜像传输的可靠性和传输效率,节省广播资源,具有最佳的带宽表现。本专利技术采用如下技术方案实现:一种基于默克尔树和广播自请求的镜像数据传输方法,应用于Mesh网络中,包含如下步骤:S10,将待传输镜像数据分割为若干镜像数据块,并基于分割后的镜像数据块构造默克尔树;S20,边界路由器以主动广播方式向子节点传输包含默克尔树根哈希值的镜像传输命令,子节点单播回应边界路由器,直至所有的子节点全部回复响应,边界路由器停止广播;S30,子节点以自请求方式向边界路由器或相邻子节点广播请求默克尔树节点信息,并基于默克尔树根哈希值对接收的默克尔树节点信息进行自校验;S40,完成默克尔树校验的子节点以自请求方式向边界路由器或相邻子节点广播请求镜像数据块,并基于默克尔树节点信息对接收到的镜像数据块进行自校验,直至完成镜像数据传输。进一步的,S30中,子节点基于默克尔树根哈希值对接收的默克尔树节点信息进行自校验具体包含:子节点将接收到的默克尔树自默克尔树叶子节点向上两两校验,验证默克尔树传输的正确性;若校验错误,丢弃校验失败的默克尔树节点,并向边界路由器或相邻子节点以自请求方式重传校验失败的默克尔树节点,直至完成默克尔树的传输和校验。进一步的,S30还包含,若子节点在传输默克尔树的过程发生异常,则恢复正常后,子节点以自请求方式向边界路由器或相邻子节点广播请求默克尔树数据。进一步的,子节点以自请求方式向边界路由器或相邻子节点广播请默克尔树节点信息具体包含:S31,不包含该数据的相邻子节点收到广播请求时,忽略请求;S32,边界路由器或包含该数据的相邻子节点收到广播请求时应答;S33,发出请求的子节点收到应答,并保存和校验接收的默克尔树数据。进一步的,还包含S34,未发出请求子节点收到应答的默克尔树节点信息时,若子节点已有该应答数据,则忽略应答,否则,将收到的数据保存并标记。进一步的,S40中,所述子节点基于默克尔树对接收到的镜像数据块进行校验具体包含:子节点对接收到的镜像数据块进行哈希校验并与默克尔树相应叶子节点的哈希值比对,若比对结果匹配,则存储校验通过的镜像数据块;若比对结果不匹配,则子节点向边界路由器或相邻子节点自广播请求重传镜像数据块。进一步的,S40还包含:若子节点在传输镜像数据块的过程发生异常,则恢复正常后,子节点以自请求方式向边界路由器或相邻子节点广播请求默克尔树数据并进行自校验;子节点将已有的镜像数据块进行哈希校验,并与默克尔树的叶子节点比对,若比对结果匹配,则将镜像数据块标记为已传;以及,子节点以自请求方式向边界路由器或相邻子节点广播请求比对不匹配的镜像数据块。进一步的,子节点以自请求方式向边界路由器或相邻子节点广播请求镜像数据块具体包含:S41,不包含该数据的相邻子节点忽略该请求;S42,边界路由器或者是包含该数据的相邻子节点收到广播请求时应答;S43,发出请求的子节点收到应答,并保存和校验接收的镜像数据块。进一步的,还包含S44,未发出请求的子节点收到应答的镜像数据块时,若子节点已有该镜像数据块,则忽略应答,否则,将收到的镜像数据块保存并标记。进一步的,镜像数据块为大小相同的数据块。本专利技术的有益效果为:1.在镜像传输完毕后对镜像进行校验,提高镜像传输的可靠性和传输速率。2.镜像数据块传输错误,将会在第一时间被发现并进行重传,无需整个镜像进行重传,缩短了发生错误情况下的镜像传输时间。3.发现掉电复位等异常情况,恢复正常后,可实现断点续传。4.边界路由器主动广播镜像传输命令,所有子节点全部本文档来自技高网
...

【技术保护点】
1.一种基于默克尔树和广播自请求的镜像数据传输方法,应用于Mesh网络中,其特征在于,包含如下步骤:/nS10,将待传输镜像数据分割为若干镜像数据块,并基于分割后的镜像数据块构造默克尔树;/nS20,边界路由器以主动广播方式向子节点传输包含默克尔树根哈希值的镜像传输命令,子节点单播回应边界路由器,直至所有的子节点全部回复响应,边界路由器停止广播;/nS30,子节点以自请求方式向边界路由器或相邻子节点广播请求默克尔树节点信息,并基于默克尔树根哈希值对接收的默克尔树节点信息进行自校验;/nS40,完成默克尔树校验的子节点以自请求方式向边界路由器或相邻子节点广播请求镜像数据块,并基于默克尔树节点信息对接收到的镜像数据块进行自校验,直至完成镜像数据传输。/n

【技术特征摘要】
1.一种基于默克尔树和广播自请求的镜像数据传输方法,应用于Mesh网络中,其特征在于,包含如下步骤:
S10,将待传输镜像数据分割为若干镜像数据块,并基于分割后的镜像数据块构造默克尔树;
S20,边界路由器以主动广播方式向子节点传输包含默克尔树根哈希值的镜像传输命令,子节点单播回应边界路由器,直至所有的子节点全部回复响应,边界路由器停止广播;
S30,子节点以自请求方式向边界路由器或相邻子节点广播请求默克尔树节点信息,并基于默克尔树根哈希值对接收的默克尔树节点信息进行自校验;
S40,完成默克尔树校验的子节点以自请求方式向边界路由器或相邻子节点广播请求镜像数据块,并基于默克尔树节点信息对接收到的镜像数据块进行自校验,直至完成镜像数据传输。


2.根据权利要求1所述的镜像数据传输方法,其特征在于,S30中,所述子节点基于默克尔树根哈希值对接收的默克尔树节点信息进行自校验具体包含:
子节点将接收到的默克尔树自默克尔树叶子节点向上两两校验,验证默克尔树传输的正确性;
若校验错误,丢弃校验失败的默克尔树节点,并向边界路由器或相邻子节点以自请求方式重传校验失败的默克尔树节点,直至完成默克尔树的传输和校验。


3.根据权利要求2所述的镜像数据传输方法,其特征在于,S30还包含,若子节点在传输默克尔树的过程中发生异常,恢复正常后,子节点以自请求方式向边界路由器或相邻子节点广播请求默克尔树数据。


4.根据权利要求1至3任一所述的镜像数据传输方法,其特征在于,所述子节点以自请求方式向边界路由器或相邻子节点广播请默克尔树节点信息具体包含:
S31,不包含该数据的相邻子节点收到广播请求时,忽略请求;
S32,边界路由器或包含该数据的相邻子节点收到广播请求时应答;
S33,发出请求的子节点收到应答,并保存和校验接收的默克尔树数据。

【专利技术属性】
技术研发人员:张健刘思双
申请(专利权)人:杭州芯讯科技有限公司
类型:发明
国别省市:浙江;33

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

1