一种基于LTCodes的有关数据可靠性存储的高效收集方法与流程

文档序号:20511632发布日期:2020-04-24 18:36阅读:160来源:国知局
一种基于LT Codes的有关数据可靠性存储的高效收集方法与流程

本发明涉及一种改进lt码的数据收集方法,更具体而言是设计一种大规模无线传感器网络下基于lt码的可靠性存储模型的高效数据收集方法。



背景技术:

无线传感器网络是部署在指定区域的一系列多跳的感知节点组成。每个感知节点都是资源受限,带宽受限,廉价的设备,这些节点用于监测周围的环境,执行一些简单的数据的记录和存储工作,并且能够将感知到的数据周期性地和周围的邻居节点进行交换传递。收集阶段,通常会使用一个汇聚节点固定在远处某个位置,感知节点通过自己的邻居转发一步步将数据传送到汇聚节点;或者使用移动的汇聚节点进入监测的区域中从感知节点上收集数据。

但是由于传感器节点能量受限且易受故障影响,因此我们要解决的就是如何将数据弹性地存储在网络中,即使只有一部分传感器节点可以访问,感知节点也能够根据从感知节点中采集到的信息恢复全部的原始数据,即无线传感器网络中数据持久性问题。

传统的解决方案是利用冗余节点将原始节点上的数据进行简单赋值备份来提高数据的可靠性,但是简单的复制仍然不能有效提高可靠性(某些存储相同数据的节点可能同时被破坏),因此,喷泉码诞生了,ltcodes是喷泉码的首个实现方式,ltcodes利用喷泉码的特性将各节点上的数据进行异或编码存储,在不增加每个节点存储容量的前提下有效提高了数据的可靠性。

然而,现在仍然有几个问题有待解决。首先,针对大型传感器网络,网络中节点数量众多(可能有成千上万个节点),倘若使用固定的汇聚节点进行数据收集,汇聚节点周围的节点将会承担大量的数据转发工作,而我们知道节点本身的资源又是有限的,大量的数据转发可能会导致节点的失效,而这些节点又是网络中的关键节点,可能会进一步导致整个网络瘫痪,数据收集无法继续进行;其次,如果使用移动的汇聚节点的收集模式,针对地势险峻的区域,汇聚节点又是很难进入监测区域进行实地的数据收集,并且由于感知节点数量较大,进行逐个节点的数据收集又会导致数据收集效率过低。最后,传统的ltcodes由于陡壁效应的存在导致收集阶段前期解码效率过低。



技术实现要素:

本发明的目的在于针对现有技术中存在的缺陷,为了解决传统数据收集模式的问题,提出基于ltcodes的有关数据可靠性存储的高效收集方法。

为了达到目的,本发明提供的技术方案为:

本发明涉及的一种基于ltcodes的有关数据可靠性存储的高效收集方法,其特征在于:其包括以下步骤:

1)按照感知节点与网络边缘的距离,对网络中的感知节点进行路由层次划分,选择网络中最外圈的节点作为超级节点,在网络外放置汇聚节点;

2)感知节点按照划分的层次,将自身存储的数据按照层次号从高到低的顺序从内层逐层向外转发,最终数据包抵达超级节点,超级节点接收数据包并存储,汇聚节点通过访问超级节点,获得网络中感知节点的数据,完成数据的收集工作。

优选地,所述的步骤1包括以下步骤:

1.1)汇聚节点围绕整个网络外围区域发出激发信号,在汇聚节点通信半径内的最外圈的节点收到激发信号,将自身的层号记为1,同时这些最外层节点也作为将来供汇聚节点收集数据的超级节点;

1.2)所有可以收到激发信号的感知节点均接收到激发信号后,这些感知节点根据自己的通信半径,向内层邻居感知节点发送激发信号并携带自己的层号;

1.3)邻居感知节点收到激发信号并判断该节点是否接收过激发信号,若该感知节点未接收过激发信号,则将发送信号的感知节点的邻居感知节点的层号+1作为邻居感知节点的层号;若该感知节点接收过激发信号,则不予理会;

1.4)重复步骤1.2~1.3,使所有感知节点都拥有自己的层号。

优选地,所述的步骤2包括以下步骤:

2.1)对于网络中的每个感知节点,若该感知节点的层号大于1,则轮询自己的邻居节点列表,一旦找到比自己层号小的邻居节点,将自身存储的数据发送到该邻居节点上,并记录下此次接收该数据包的邻居节点,下次轮询邻居节点列表时跳过该邻居节点;若遍历完邻居节点列表,没有找到合适的邻居节点,则该感知节点存储的数据则不发送;对于层次号等于1超级节点,不做数据包转发操作;

2.2)收到数据包的感知节点轮询自己邻居节点列表,找到合适的邻居节点,记录该节点信息,下次轮询邻居节点列表时跳过该节点,同样地,如果遍历完邻居节点列表没有找到合适的节点,表示该数据包无法继续转发;

2.3)重复步骤2.2,直到将数据包发送到超级节点,超级节点按照接收顺序将接收到的数据包存储起来,等待汇聚节点经过进行解码;

2.4)汇聚节点访问、收集超级节点中的数据包,并对数据包解码,恢复出全部的源数据。

优选地,所述的步骤2包括以下步骤:

2.1')各感知节点根据自身存储数据包的数量标记度号,度号与数据包数量相同;

2.2’)对于网络中的所有度号最小的感知节点,若该感知节点不是超级节点,则轮询自己的邻居节点列表,一旦找到比自己层号小的节点,则将自身存储的数据发送到该邻居节点上,并记录下此次接收该数据包的邻居节点,下次轮询邻居节点列表时跳过该感知节点,若遍历完邻居节点列表,没有找到合适的邻居节点,该节点存储的数据则无法发送;若该感知节点为超级节点,不做数据包转发操作;

2.3')收到数据包的节点同样轮询自己邻居节点列表,找到合适的邻居节点,记录该节点信息,下次轮询邻居节点列表时跳过该节点,同样地,如果遍历完邻居节点列表也没有找到合适的节点,该数据包无法继续转发;

2.4')重复步骤2.1’~2.3’,从低度到高度的顺序依次转发数据包,直到数据包发送到超级节点上进行存储;

2.5')汇聚节点按照低度到高度的顺序访问、收集超级节点中的数据包并对数据包解码,恢复出全部的源数据。

采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:

(1)本发明提出基于边缘分层模型的边缘分层码(edgelayeringfountaincodeselfc),通过对网络中的节点进行简单的分层路由划分,使得数据收集阶段,网络中的节点能够将产生的数据包从里向外传送到边缘层的节点上进行存储,等待汇聚节点进行收集,以此来分摊汇聚节点周围节点的能源消耗。

(2)本发明还提出了有序边缘分层码(orderededgelayeringfountaincodesoelfc),对收集过程进行了进一步的优化,使得收集时数据包能够按照从低度到高度的顺序转发到边缘节点进行存储,使得汇聚节点进行收集时能够优先收集到低度的数据包,使得几乎每一次的数据包收集都能进行有效的数据恢复,从而在一定程度上缓解了ltcodes的陡壁效应。

附图说明

图1是本发明的边缘分层模型示意图;

图2是本发明实施例一和实施例二步骤1的流程示意图;

图3是本发明实施例一步骤2的流程示意图;

图4是本发明实施例二步骤2的流程示意图。

具体实施方式

为进一步了解本发明的内容,结合实施例对本发明作详细描述,以下实施例用于说明本发明,但不用来限制本发明的范围。

实施例一:

本实施例涉及的ltcodes的有关数据可靠性存储的高效收集方法,包括准备阶段和收集阶段,其收集方法包括以下步骤:

1)准备阶段:按照感知节点与网络边缘的距离,对网络中的感知节点进行路由层次划分,选择网络中最外圈的节点作为超级节点,如附图1所示,在网络外放置汇聚节点,该阶段的具体步骤如附图2所示,包括以下几点:

1.1)汇聚节点围绕整个网络外围区域发出激发信号,在汇聚节点通信半径内的最外圈的节点收到激发信号,将自身的层号记为1,同时这些最外层节点也作为将来供汇聚节点收集数据的超级节点;

1.2)所有可以收到激发信号的感知节点均接收到激发信号后,这些感知节点根据自己的通信半径,向内层邻居感知节点发送激发信号并携带自己的层号;

1.3)邻居感知节点收到激发信号并判断该节点是否接收过激发信号,若该感知节点未接收过激发信号,则将发送信号的感知节点的邻居感知节点的层号+1作为邻居感知节点的层号;若该感知节点接收过激发信号,则不予理会;

1.4)重复步骤1.2~1.3,使所有感知节点都拥有自己的层号。

2)收集阶段:感知节点按照划分的层次,将自身存储的数据按照层次号从高到低的顺序从内层逐层向外转发,最终数据包抵达超级节点,超级节点接收数据包并存储,汇聚节点通过访问超级节点,获得网络中感知节点的数据,完成数据的收集工作,结合附图3所示,该阶段的具体步骤包括:

2.1)对于网络中的每个感知节点,若该感知节点的层号大于1,则轮询自己的邻居节点列表,一旦找到比自己层号小的邻居节点,将自身存储的数据发送到该邻居节点上,并记录下此次接收该数据包的邻居节点,下次轮询邻居节点列表时跳过该邻居节点;若遍历完邻居节点列表,没有找到合适的邻居节点,则该感知节点存储的数据则不发送;对于层次号等于1超级节点,不做数据包转发操作;

2.2)收到数据包的感知节点轮询自己邻居节点列表,找到合适的邻居节点,记录该节点信息,下次轮询邻居节点列表时跳过该节点,同样地,如果遍历完邻居节点列表没有找到合适的节点,表示该数据包无法继续转发;

2.3)重复步骤2.2,直到将数据包发送到超级节点,超级节点按照接收顺序将接收到的数据包存储起来,等待汇聚节点经过进行解码;

2.4)汇聚节点访问、收集超级节点中的数据包,并对数据包解码,恢复出全部的源数据。

实施例二

为缓解ltcodes的陡壁效应,本实施例在实施例一的基础上进行了优化,本实施例涉及的ltcodes的有关数据可靠性存储的高效收集方法,包括准备阶段和收集阶段,其收集方法包括以下步骤:

1)准备阶段:按照感知节点与网络边缘的距离,对网络中的感知节点进行路由层次划分,选择网络中最外圈的节点作为超级节点,如附图1所示,在网络外放置汇聚节点,该阶段的具体步骤如附图2所示,包括以下几点:

1.1)汇聚节点围绕整个网络外围区域发出激发信号,在汇聚节点通信半径内的最外圈的节点收到激发信号,将自身的层号记为1,同时这些最外层节点也作为将来供汇聚节点收集数据的超级节点;

1.2)所有可以收到激发信号的感知节点均接收到激发信号后,这些感知节点根据自己的通信半径,向内层邻居感知节点发送激发信号并携带自己的层号;

1.3)邻居感知节点收到激发信号并判断该节点是否接收过激发信号,若该感知节点未接收过激发信号,则将发送信号的感知节点的邻居感知节点的层号+1作为邻居感知节点的层号;若该感知节点接收过激发信号,则不予理会;

1.4)重复步骤1.2~1.3,使所有感知节点都拥有自己的层号。

2)收集阶段:感知节点按照划分的层次,将自身存储的数据按照层次号从高到低的顺序从内层逐层向外转发,最终数据包抵达超级节点,超级节点接收数据包并存储,汇聚节点通过访问超级节点,获得网络中感知节点的数据,完成数据的收集工作,结合附图4所示,该阶段的具体步骤包括:

2.1′)各感知节点根据自身存储数据包的数量标记度号,度号与数据包数量相同,本实施例中感知节点的最小度号为1;

2.2’)对于网络中的所有度号最小的感知节点,若该感知节点不是超级节点,则轮询自己的邻居节点列表,一旦找到比自己层号小的节点,则将自身存储的数据发送到该邻居节点上,并记录下此次接收该数据包的邻居节点,下次轮询邻居节点列表时跳过该感知节点,若遍历完邻居节点列表,没有找到合适的邻居节点,该节点存储的数据则无法发送;若该感知节点为超级节点,不做数据包转发操作;

2.3′)收到数据包的节点同样轮询自己邻居节点列表,找到合适的邻居节点,记录该节点信息,下次轮询邻居节点列表时跳过该节点,同样地,如果遍历完邻居节点列表也没有找到合适的节点,该数据包无法继续转发;

2.4′)重复步骤2.1’~2.3’,每一轮开始时,网络中度号最小的感知节点的度号为上一轮感知节点度号加1,进而按照从低度到高度的顺序依次转发数据包,直到数据包发送到超级节点上进行存储;

2.5′)汇聚节点按照低度到高度的顺序访问、收集超级节点中的数据包并对数据包解码,恢复出全部的源数据。

以上结合实施例对本发明进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍属于本发明的专利涵盖范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1