首页> 中国专利> 基于网络编码的无线传感器网络数据分发方法

基于网络编码的无线传感器网络数据分发方法

摘要

本发明公开了一种基于网络编码的无线传感器网络的数据分发方法,本发明的数据分发方法把流内随机网络编码应用在无线传感器网络中Sink节点将数据传输给网络中所有节点的情况。本方法的基本思想是Sink节点将要发送的数据包先进行编码后再发送,所有其它节点收到足够的已编码数据包后进行再编码并按相应转发机制进行广播,当节点收到足够的编码包后解码出原始的数据包。该数据分发方法特别适用于在实际应用中传感器节点失效或传输链路不稳定导致丢包发生的情况。将网络编码与广播特性相结合,可减少数据包的传输次数和重传次数,降低无线传感器网络信息传输过程中的能量消耗,从而节省节点能耗。

著录项

  • 公开/公告号CN101951556A

    专利类型发明专利

  • 公开/公告日2011-01-19

    原文格式PDF

  • 申请/专利权人 湖南大学;

    申请/专利号CN201010295107.5

  • 发明设计人 肖玲;李仁发;罗娟;

    申请日2010-09-28

  • 分类号H04W4/06(20090101);H04W28/06(20090101);H04W84/18(20090101);H04L1/00(20060101);

  • 代理机构43114 长沙市融智专利事务所;

  • 代理人黄美成

  • 地址 410082 湖南省长沙市岳麓区麓山南路2号

  • 入库时间 2023-12-18 01:39:26

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-11-11

    未缴年费专利权终止 IPC(主分类):H04L1/00 授权公告日:20130102 终止日期:20140928 申请日:20100928

    专利权的终止

  • 2013-01-02

    授权

    授权

  • 2011-03-16

    实质审查的生效 IPC(主分类):H04W4/06 申请日:20100928

    实质审查的生效

  • 2011-01-19

    公开

    公开

说明书

技术领域

本发明属于无线传感器网络通信技术领域,具体涉及一种无线传感器网络数据分发方法。

技术背景

无线传感器网络已被广泛应用于军事、环境监测、医疗护理、建筑物状态监控等很多方面。在传感器网络中,Sink节点经常需要对所有节点进行数据分发,比如应用程序开发与调试、代码更新、参数设置、任务分配等。广播是Sink节点将数据包传输给网络中所有节点的一种操作。该广播必须是可靠、快速并且尽可能地减少能量消耗。

广播通信是无线网络中的一种很普遍的通信方式。洪泛法是简单易行的广播,但洪泛法会导致巨大的能量开销,直接影响到无线节点电池的寿命,因此如何利用现有的网络资源,减少广播开销,提高能量利用率成为研究的热点之一。用路由的方式实现最小化能量广播非常困难。因此,有必要提供一种更好的通信方法以减少无线传感器网络的能量消耗。

发明内容

本发明的目的是提出一种基于网络编码的无线传感器网络数据分发方法,该基于网络编码的无线传感器网络数据分发方法用以在实际应用中传感器节点失效或传输链路不稳定导致丢包发生的情况。将网络编码与广播特性相结合,通过对接收的多个数据包进行编码,增加单次传输的信息量,可减少数据包的传输次数和重传次数,从而达到节省无线传感器节点能量消耗的目的。

本发明的技术解决方案如下:

一种基于网络编码的无线传感器网络数据分发方法,无线传感器网络是由一个汇聚节点和多个普通节点组成,所述的基于网络编码的该无线传感器网络数据分发方法包括以下步骤:

步骤1:汇聚节点分批编码发出数据步骤:

汇聚节点将要发送的数据进行分批处理和编码后,形成编码包向普通节点广播;同一批次的编码包由m个源数据包组成;每一批次数据包都设置有区分不同批次的批次标识。

步骤2:普通节点转发数据步骤:

普通节点接收到编码包后,首先根据编码包是否增加矩阵的秩判断该编码包是否是更新包;如果是更新包,则将新数据包存入缓存,如果不是更新包,则丢弃该包,也不再继续向其它节点转发;将收到的更新包按批处理,如果同一批刚好收齐了m个,就不再转发,否则,如果收到的更新包对应的这一批还没有达到m个,就将收到的n个已编码包进行再编码并以转发概率p向其它普通节点转发,n<m;

步骤3:数据解码:任一普通节点收到了同一批次的m个更新编码包后,则解码出原始的数据包;

普通节点转发编码后的数据包是一个动态的过程,当每一个普通节点都没有数据包可发了,则本次通信过程自动结束。

步骤1中,当汇聚节点发送数据时,将所要发送的原始数据分成若干个批次,每批次由m个源数据包组成,这m个数据包记为x1,x2,….xm,并赋予相同的批次标识,每个源数据包为L比特,当它与要组合的数据包长度不同时,较短的信息附加额外一串“0”补齐到L比特。选取m个编码系数,对原始的m个数据包进行线性编码,把原来的m个源数据编码成新的m个数据包y1,y2…ym,记编码第i个数据包时所使用的m个编码系数为gi1,gi2,…,gim,则编码的公式为:

然后再把这一组数据包的批次标识与每一个数据包的编码向量作为头部信息添加到数据首部,将数据包发出;

步骤2中再编码的过程为:

普通节点对收到的同一批次n个数据包y1,y2…yn,n<m,随机选取编码系数进行再编码;记普通节点发送出第i个再编码的数据包时选取的系数为g’i1,g’i2,…,g’in,,编码后的数据包为y’1,y’2,…y’k,则普通节点对收到的n个更新的已编码包进行再编码由下式表示:

普通节点再编码后的数据包(y’1,y’2,…y’k)与源数据包(x1,x2,….xm)的关系如下式:

其中,k为大于0的整数;

用编码系数作为编码后的新系数向量放在已编码数据包的首部传递到其他普通节点,当其他普通节点收到属于同一批次的m个线性独立的数据包后,即可按照下式恢复出原始m个数据包:

这里讲到的编码是第二级编码,普通节点的多级编码过程如同此处的再编码过程。

编码包个数m取为2的整数次幂;编码系数的选取为首系数都取为1,其余系数在0到q-1之间随机取整数,q为素数。

转发概率p值在0-1之间选取。

汇聚节点发送完同一批次的m个编码包后,停顿T毫秒时间,来确保普通节点有充分时间收到同一批次的编码包;T毫秒过后,汇聚节点再进行下一批次数据包的发送。

有益效果:

本发明的数据分发方法把流内随机网络编码应用在无线传感器网络中Sink节点将数据传输给网络中所有节点的情况。本方法的基本思想是Sink节点将要发送的数据包先进行编码后再发送,所有其它节点收到足够的已编码数据包后进行再编码并按相应转发机制进行广播,当节点收到足够的编码包后解码出原始的数据包。通过设计概率转发和时间控制相结合的转发机制来提高数据分发的有效性。该数据分发方法能通过减少网络中数据包的传输次数达到节省传感器节点能耗的目的。

本发明的数据分发方法在Sink节点将要发送的数据包先进行编码后再发送,所有其它节点收到足够的已编码数据包后进行再编码并向下广播,当节点收到足够的编码包后解码出原始的数据包,并通过概率转发来提高数据分发的有效性。该数据分发方法将网络编码与广播特性相结合,通过对接收的多个数据包进行编码信息融合,增加单次传输的信息量,从而减少数据包的传输次数,降低无线传感器网络信息传输过程中的能量消耗,从而节省节点能耗。考虑到在实际应用中,传感器节点失效或传输链路不稳定都导致丢包情况的发生,而使用网络编码后,节点收到同组里的任意一个数据包都是相同的效果,从而增强了网络的鲁棒性。

采用本发明的方法能更快地收到足够多的数据包来解码,导致比AdapCode算法等方法更小的平均时延。本发明在不同节点间距下的平均数据包的传输代价要优于AdapCode算法,具体实验结果见后续的实施例。

该数据分发方法特别适用于在实际应用中传感器节点失效或传输链路不稳定导致丢包发生的情况。将网络编码与广播特性相结合,通过对接收的多个数据包进行编码,增加单次传输的信息量,可减少数据包的传输次数和重传次数,降低无线传感器网络信息传输过程中的能量消耗,从而节省节点能耗。另外使用网络编码后,节点收到同组里的任意一个数据包都是相同的效果,从而增强了网络的鲁棒性。

附图说明

图1是汇聚节点(即Sink节点)发出数据的流程图;

图2是普通节点接收和发出数据的流程图;

图3是使用网络编码后的数据包格式;

图4是无线传感器网络的一个拓扑实例;

图5是转发概率与数据传输代价的关系示意图;

图6为不同节点间距下的平均数据包的传输代价的实验曲线;

图7为不同节点间距下的平均时延的实验曲线。

具体实施方式

以下将结合图和具体实施过程对本发明做进一步详细说明。

一种基于网络编码的无线传感器网络数据分发方法,该无线传感器网络是由一个汇聚(Sink)节点和许多普通传感器节点组成;其特征在于,该无线传感器网络Sink节点的数据分发方法包括以下步骤:

1)Sink节点将要发送的数据包先进行分批和编码后再发送出去。

2)所有其它节点收到足够的已编码数据包后进行再编码并按相应的转发机制向下广播。

3)节点收到足够的编码包后解码出原始的数据包。

当Sink节点发送数据时,将所要发送的原始数据分成若干个批次,每批次由m个源数据包组成。这m个源数据包记为x1,x2,….xm,并赋予相同的批次标识。假设每个源数据包为L比特,当数据包长度不足L比特时,较短的信息附加额外一串“0”补齐到L比特。选取m个数,用这m个数作为编码系数,对原始的m个数据包进行线性编码,把原来的m个数据编码成新的m个数据包y1,y2,…ym,记编码第i个数据包时所使用的m个编码系数为g11,g12,…,g1m,则编码的公式为

Sink节点在对数据进行编码后,生成y1,y2,…ym个数据包,然后再把这一组数据包的批次标识与每一个数据包的编码系数作为头部信息添加到数据首部,将数据包广播出去。m取为2的整数次幂。如m=4。m个编码系数的选取为每个编码包的首系数都取为1,其余系数在0到q-1之间随机取值(取整数)(q为素数)。

Sink节点编码过程中的数据变化如公式1所示。

Sink节点发送完同一批次的m个编码包后,停顿T毫秒时间,来确保有足够的活跃节点收到这些编码包。T毫秒过后,Sink节点再进行下一批次数据包的发送。

普通节点接收到编码包后,存储编码向量和编码后的结果,以行向量的形式,存储在解码矩阵中。普通节点首先根据编码包是否增加矩阵的秩判断该编码包是否是更新包;如果是更新包,则将新数据包存入缓存,如果不是更新包,则丢弃该包,也不再继续向其它节点转发;将收到的更新包按批处理,如果同一批刚好收齐了m个,就不再转发,否则,如果收到的更新包对应的这一批还没有达到m个,就将收到的n个已编码包进行再编码并以转发概率p向其它普通节点转发,n<m。转发概率p值是确定算法性能的重要参数之一,在0-1之间选取。p值较大可以保证节点对于接收到的编码包的高解码率,但是会增大节点的发送次数;p值较小可能会造成节点没有获得足够多的编码包来进行成功解码。因此p应根据实际情况和考虑的因素来具体确定。

假设普通节点r进行再编码后的k个数据包为y’1,y’2,…y’k,记节点发送出第i个再编码的数据包时选取的系数为g’i1,g’i2,…,g’in,【g’i1,g’i2,…,g’in,的选取方式与前面的g11,g12,…,g1m的选取方法相同】,则节点r对收到的n个已编码数据包进行再编码可由式(2)表示。

由式(1)(2)可得出节点r再编码后的数据包(y’1,y’2,…y’k)与源数据包(x1,x2,….xm)的关系如式(3),新的编码系数向量hij如式(4),用这组编码系数作为编码后的新系数向量放在已编码数据包的首部。假设

当节点收到属于同一批次的m个线性独立的数据包后,通过高斯消元法解m个线性方程组,如通过公式(5)就可以恢复出原始m个数据包,成功解码。

当节点能成功解码包后就不再进行再编码和广播了。当所有节点都能收到并解码出Sink节点的原始数据包,结束整个数据分发过程。

实施例1:

采用NS2仿真平台进行仿真实验。采用的网络拓扑结构为:在200m*200m的场景中随机和均匀分布100个静止节点,任意两个相邻节点间距离为20m。Sink节点位于区域的左上方。Sink节点总共需要发128个源数据包,数据包大小为32字节。m=4,即Sink节点将所要发送的原始数据分成32个批次,每个批次由4个源数据包组成的。Sink节点发送完同一批次的编码包后,停顿T=300毫秒,再进行下一批次数据包的发送。编码系数的选取为q=5,即每个编码包的首系数都取为1,其余系数在0到4之间随机取值。

其余节点接收到编码包后首先进行是否是更新包的判断。当节点收到n=2个更新包后,启动一个计时器,计时器时间满足随机均匀分布[0,Tmax],Tmax=30毫秒。当计时器超时后,节点对收到的更新包进行再编码,编码系数随机在0到4之间选取,生成一个新的编码包。以概率p=0.8广播。当节点能成功解码包后就不再进行再编码和广播了。

将本发明的方法(E-Code)与最典型的概率洪泛(Flooding-p)算法在NS2仿真工具下进行了分析比较。性能比较参数为:数据包的平均传输代价(Average overhead of transmissions),数据包总的传输次数与所有节点成功接收(和解码)的数据包个数总和的比值。结果显示采用网络编码,可比概率洪泛减少数据包的传输次数。不管是网格分布,还是随机分布情况下,当转发概率在0.8以上时,E-Code能达到100%的解码率后,数据包平均传输代价在0.8~1区间有个极小值点,再增大转发概率,数据包平均传输代价反而有所增加。

将本发明的方法与AdapCode算法进行性能比较:I-Hong等人提出的用于传感器网络sink节点广播算法AdapCode,其核心思想是Sink节点直接发送若干个源数据包,普通节点都是收到了足够数量的编码包并成功解码成源数据包后,再进行编码,向下一节点转发。普通节点根据邻居节点的数目动态确定编码编码源数据包的个数和发送编码包的个数。与AdapCode不同的是,本发明的方法是在Sink节点就进行编码,中间节点对已编码包进行再编码后转发。

本实验采用TINYOS2.0所支持的TOSSIM仿真平台。性能比较参数为:1)数据包的平均传输代价(Average overhead of transmissions),数据包总的传输次数与所有节点成功接收(和解码)的数据包个数总和的比值;2)平均时延(Average delay),网络中所有节点收到所有数据包的平均时间。在100个节点网格均匀分布(10×10的网格)情况下,把E-Code算法与AdapCode算法进行性能比较。Sink节点总共发128个源数据包,每个数据包大小为2KB,E-Code取由实验一得到的最好参数值,m=4,n=2,p=0.8,T=300ms。

图6为不同节点间距下的平均数据包的传输代价,E-Code的要优于AdapCode,原因是AdapCode当节点出现不能解码情况时,引入NACK机制来重发一定数量的编码包,增加了额外的数据包的发送与接收数量。

图7为不同节点间距下的平均时延。虽然E-Code和AdapCode都采用了网络编码,但由于它们实现网络编码的方式不同,即AdapCode为Sink节点直接发送若干个源数据包,中间节点都是收到了足够数量的编码包并成功解码成源数据包后,再进行编码,向下一节点转发;E-Code是在Sink节点就进行编码,中间节点对已编码包进行再编码后转发,因此对于接收节点来说,E-Code能更快地收到足够多的数据包来解码,导致比AdapCode更小的平均时延。

对于本发明的编码和解码过程,举个简单的实例:

传感器网络由一个汇聚节点和三个普通节点组成。拓扑结果如图4:

汇聚节点总共需要发8个源数据包。汇聚节点将所要发送的原始数据分成2个批次,每个批次由4(m=4)个源数据包组成。第1批次的源数据包x1,x2,x3,x4编码成新的4个数据包y1,y2,y3,y4广播出去。编码系数的选取为q=5,即每个编码包的首系数都取为1,其余系数在0到4之间随机取值。即其中y1=x1+2x2+3x3+4x4,y2=x1+3x2+2x3+3x4

普通节点1收到y1和y2(n=2)进行再编码成y’1(第2次编码,随机选取同上,假如2个编码系数为1、2,【当然还可以再取几组编码系数,这样就可以与前文的系数矩阵对应。】),即y’1=y1+2y2=2x1+8x2+7x3+10x4,用编码系数[2,8,7,10]作为编码后的新系数向量放在已编码数据包的首部(其实这样的话y’1和y1包本身没有本质的区别了,只不过是y’1经过了2次编码),并以概率p=0.5向普通节点2和3转发。

普通节点2也可对收到的y’1和y1进行再编码(第3次编码),编码方法同上。

普通节点1、2、3只要收到了4个更新包(这4个包要求线性独立,即线性不相关)就可以成功解码并停止向其他节点转发包,假如节点3收到了y1,y3,y’1,y’4就可以成功解码。

汇聚节点停顿T=300毫秒,再进行下一批次数据包的发送。第2批次的源数据包x5,x6,x7,x8编码成新的4个数据包广播出去。其过程同上。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号