一种自适应负载均衡的代码分发方法

文档序号:7996777阅读:179来源:国知局
一种自适应负载均衡的代码分发方法
【专利摘要】本发明公开了一种自适应负载均衡的代码分发方法,本方法的主要思想是利用无线传感器网络冗余链路和广播特性的优势,结合网络编码的特点,在整个分发过程中采用自适应编码策略和分布式节点选择机制。本方法大大提高了代码分发的可靠性,实现负载均衡,并能减少代码分发过程中数据包的传输次数和重传次数,这意味着不仅能减少碰撞冲突所产生的丢包重传,也能节省能量延长网络的寿命。
【专利说明】一种自适应负载均衡的代码分发方法
【【技术领域】】
[0001]本发明涉及到无线传感器网络重编程领域,尤其涉及代码分发机制。
【【背景技术】】
[0002]近年来,无线传感器网络(Wireless Sensor Network, WSN)作为一种新兴的网络形式,自本世纪初开始被广泛研究。无线传感器网络的一个很重要的优势是能够长期在无人监守的情况下执行监测任务。为了适应变化,在传感器节点布置后,节点不可避免地要对已有的应用程序修改或增加新的应用程序,比如修复先前程序的漏洞、变更单一节点甚至是整个传感器网络的执行任务、以及修补安全漏洞。在这种背景下,无线传感器网络重编程技术产生了。无线传感器网络重编程技术主要是无线更新传感器节点程序代码,关注的焦点在于如何将新的程序代码通过Sink节点无线多跳分发到各个传感器节点,并保证所接收到的程序代码镜像文件是完整且准确无误的。
[0003]目前国内外所提出的代码分发协议大致可以分为两类:经典代码分发协议和基于网络编码的代码分发协议。前者传输数据的方式是存储转发,即除了数据的发送和接收以外,不对原始数据做任何处理;而后者发送节点采用不同的编码方式对发送数据进行编码,接收节点需要经过解码操作获得原始数据。基于网络编码思想的代码分发协议,相比传统的经典代码分发协议,减少了代码分发过程的数据量和控制开销,其基本原理如附图=Sink节点A广播2个数据包a和b。如果节点只是简单地转发他们收到的数据包,A、B、C则总共需要发送6个 包(每个2个包)。如果使用网络编码的思想,B、C节点在收到a、b两个包后,选取随机参数,对其进行线性编码,图中的a+b和a+2b,然后分别广播这两个包。节点E、D在接收到这两个包后通过解简单的线性方程就能解出a、b,获得原始数据包。这样一来总共减少了 2个数据包。
[0004]
[0005]
[0006]但这些协议并未针对WSN的动态变化特性做出相应的处理,以及没有针对负载均衡问题提出有效地解决方法。众所周知,无线传感器网络的环境始终是动态变化的:一、节点可能随时断开或失效;二、节点间的链路质量也随着时间在不断变化。一个好的代码分发机制需要良好地适应这种动态变化。已有的基于网络编码的代码分发协议,采用固定的编码方式,在协议中事先规定好了编码策略,在代码分发的过程没有考虑到节点失效或低链路质量的情况,不能较好地适应WSN环境的动态变化,所以在这种情况下可能会增加额外的代价;已有的协议旨在完成代码镜像文件的可靠性传输,而未对传输过程中负载均衡的问题进行深入探究,如果有些节点因为负载过度而导致能耗过快而死亡,不利于整个网络的连通性和覆盖率。

【发明内容】

[0007]有鉴于此,有必要提供一种自适应负载均衡的代码分发方法。[0008]一种自适应负载均衡的代码分发方法,其主要思想是,在整个代码分发过程中采用自适应编码策略和分布式节点选择机制。
[0009]在优选的实施方式中,所述自适应编码策略包括如下步骤:无线传感器网络中各节点接收邻居节点的广播信息;无线传感器网络中各节点更新自身的局部拓扑信息;无线传感器网络中各节点自适应确定编码方案;
[0010]在优选的实施方式中,所述邻居节点的广播信息包括:数据传输信息,即编码数据包(每个编码数据包由若干个原始数据包通过随机线性编码算法生成);请求重传信息,即NACK(Negative Acknowledgement)消息。
[0011]在优选的实施方式中,所述无线传感器网络中各节点接收邻居节点的广播信息的方法是:设定定时器;判断所收到的广播信息是否为节点所需的编码数据包;如果是,则重启定时器;如果不是,则重复判断所收到的广播信息。
[0012]在优选的实施方式中,所述无线传感器网络中各节点更新自身的局部拓扑信息的方法是:节点维护一个“有效邻居节点数S”(有效邻居节点即已经解码成功的邻居节点)来表示节点的局部拓扑信息,S的初始化值为O ;节点每收到一个邻居节点广播的编码数据包,便判断之前是否已从该邻居节点收到过所需的编码数据包,如果未收到过,则需要更新S的值将其增I ;否则不更新。
[0013]在优选的实施方式中,所述无线传感器网络中各节点自适应确定编码方案包括如下步骤:节点解码成功获得M个原始数据包;节点根据“有效邻居节点数S”来确定一个N值;节点对每N个原始数据包采用随机线性编码算法,生成M/N个编码数据包;节点广播得到的M/N个编码数据包。
[0014] 在优选的实施方式中,所述分布式节点选择机制包括如下步骤:某个节点广播NACK消息;邻居节点接收NACK消息;某个满足条件的邻居节点响应该NACK消息,该邻居节点被选择。
[0015]在优选的实施方式中,所述某个节点广播NACK消息包括:设定定时器;判断定时器是否被触发,如果定时器被触发,广播一个NACK消息并重新设定定时器,定时间隔为上一次的2倍;如果定时器没有被触发,则重复判断定时器是否被触发。
[0016]在优选的实施方式中,所述邻居节点接收NACK消息的方法是:每个邻居节点判断是否已经解码成功且含有所请求的信息;如果解码成功且含有所请求的信息才响应该NACK消息;否则忽略该NACK消息,不响应;
[0017]在优选的实施方式中,所述某个满足条件的邻居节点响应该NACK消息,该邻居节点被选择,包括如下步骤:节点随机回避一段时间;在此期间若侦听到其他节点正在响应这个NACK消息,则不响应;若没有侦听到其他邻居节点正在响应这个消息,则发送请求节点所需的息。
[0018]上述代码分发方法,提高了代码分发的可靠性,实现负载均衡,并能减少代码分发过程中数据包的传输次数和重传次数,这意味着不仅能减少碰撞冲突所产生的丢包重传,也能节省能量延长网络的寿命。
【【专利附图】

【附图说明】】
附图是随机线性网络编码的示意图。
【【具体实施方式】】[0019]自适应负载均衡的代码分发方法按如下所述步骤实施:
[0020]I)无线传感器网络中各节点启动一个定时器Timer,设置定时值为timerValue ;并维护一个“有效邻居节点数S”,设置初值为O。
[0021]2)判断定时器是否被触发,如果定时器被触发,则执行步骤11 ;如果定时器没有被触发,则执行步骤3。
[0022]3)接收邻居节点的广播信息,判断所收到的广播信息的类型。如果是节点所需的编码数据包,则执行步骤4 ;如果是一个NACK消息,则执行步骤8。
[0023]4)节点判断之前是否已从该邻居节点收到过所需的编码数据包,如果未收到过,则需要更新S的值将其增I ;否则不更新。
[0024]5)重新启动定时器Timer。
[0025]6)节点判断是否解码成功,如果解码成功,则执行步骤7 ;如果未成功解码,转至步骤3。
[0026]7)节点解码成功后获得M个原始数据包,节点根据“有效邻居节点数S”来确定一个N值,并对每N个原始数据包采用随机线性编码算法,生成M/N个编码数据包,然后广播得到的M/N个编码数据包。
[0027]8)节点在收到邻居节点的NACK消息后,首先判断是否已经解码成功且含有所请求的信息;如果解码成功且含有所请求的信息,则执行步骤9 ;否则,转至步骤10 ;
[0028]9)节点随机回避一段时间,在此期间若侦听到其他节点正在响应这个NACK消息,则执行步骤10 ;若没有侦听到其他邻居节点正在响应这个消息,则发送请求节点所需的信
肩、O
[0029]10)节点忽略该NACK消息,不响应;转至步骤3。
[0030]11)广播一个NACK消息,并重新设定定时器Timer,设置定时值timerValue =2*timerValue ;转至步骤 2。
【权利要求】
1.一种自适应负载均衡的代码分发方法,其特征在于,在整个代码分发过程中采用自适应编码策略和分布式节点选择机制。
2.根据权利要求1所述的方法,其特征在于,所述自适应编码策略包括如下步骤: 无线传感器网络中各节点接收邻居节点的广播信息; 无线传感器网络中各节点更新自身的局部拓扑信息; 无线传感器网络中各节点自适应确定编码方案。
3.根据权利要求2所述的自适应编码策略,其特征在于,所述邻居节点的广播信息包括: 数据传输信息,即编码数据包(一个编码数据包由若干个原始数据包通过随机线性编码算法生成); 请求重传信息,即 NACK(Negative Acknowledgement)消息。
4.根据权利要求2所述的自适应编码策略,其特征在于,所述无线传感器网络中各节点接收邻居节点的广播信息的方法是: 51:设定定时器; 52:判断所收到的广播信息是否为节点所需的编码数据包,如果是,执行S3 ;如果否,执行S2 ; 53:重启定时器。
5.根据权利要求2所述的自适应编码策略,其特征在于,所述无线传感器网络中各节点更新自身的局部拓扑信息的方法是: 节点维护一个“有效邻居节点数S” (有效邻居节点即已经解码成功的邻居节点)来表示节点的局部拓扑信息,S的初始化值为O ;节点每收到一个邻居节点广播的编码包,便判断之前是否已从该邻居节点收到过所需的编码数据包,如果未收到过,则需要更新S的值将其增I;否则不更新。
6.根据权利要求2所述的自适应编码策略,其特征在于,所述无线传感器网络中各节点自适应确定编码方案包括如下步骤: 节点解码成功获得M个原始数据包; 节点根据“有效邻居节点数S”确定对应的N值; 节点对每N个原始数据包采用随机线性编码算法,生成M/N个编码数据包; 节点广播得到的M/N个编码数据包。
7.根据权利要求1所述的方法,其特征在于,所述分布式节点选择机制包括如下步骤: 某个节点广播NACK消息; 邻居节点接收NACK消息; 某个满足条件的邻居节点响应该NACK消息,该邻居节点被选择。
8.根据权利要求7所述分布式节点选择机制,其特征在于,所述某个节点广播NACK消息包括: 51:设定定时器; 52:判断定时器是否被触发,如果是,执行S3 ;如果否,执行S2 ; 53:广播一个NACK消息并重新设定定时器,定时间隔为上一次的2倍。
9.根据权利要求7所述分布式节点选择机制,其特征在于,所述邻居节点接收NACK消息的方法是: 每个邻居节点判断是否已经解码成功且含有所请求的信息;如果解码成功且含有所请求的信息才响应该NACK消息;否则忽略该NACK消息,不响应。
10.根据权利要求7所述分布式节点选择机制,其特征在于,所述某个满足条件的邻居节点响应该NACK消息,该邻居节点被选择,方法是: 节点随机回避一段时间;在此期间若侦听到其他节点正在响应这个NACK消息,则不响应;若没有侦听到其他邻居节点正在响应这个消息,则发送请求节点所需的信息。
11.根据权利要 求4和权利要求8所述的定时器,其必须是相同的定时器。
【文档编号】H04L1/16GK104010328SQ201310061878
【公开日】2014年8月27日 申请日期:2013年2月22日 优先权日:2013年2月22日
【发明者】董楚楚, 于峰崎 申请人:中国科学院深圳先进技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1