一种无线传感器网络的高可靠传输方法

文档序号:7801038阅读:148来源:国知局
一种无线传感器网络的高可靠传输方法
【专利摘要】本发明公开了一种无线传感器网络的高可靠传输方法,首先对加入无线传感器网络的节点进行初始化,发送节点建立接收列表和邻居列表;发送节点发送数据,当接收节点反馈的剩余缓存空间为零时,取消对接收节点的发送,发送节点立刻休眠直到下一周期唤醒;如果下次唤醒后接收节点反馈的剩余缓存空间仍然为零,则开启定时器,保持唤醒侦听信道最长一个周期:在这个侦听周期内寻找合适的父节点进行数据分组的转发,完成传输后切换回原来状态。本发明提出的数据传输方法,特别适用于突发流量负载场景,在低流量负载场景下依然具有较好的性能表现。
【专利说明】一种无线传感器网络的高可靠传输方法
【技术领域】
[0001]本发明涉及一种无线传感器网络的高可靠传输方法,属于无线传感器网络中高可靠传输MAC层协议设计,用于解决传输丢包问题。
【背景技术】
[0002]无线传感器网络(Wireless Sensor Networks, WSN)是由部署在监测区域内大量的微型传感器节点通过无线电通信形成的一个多跳自组织网络系统,其目的是协作地感知、采集和处理网络覆盖区域内被监测对象的信息,并且发送给观察者。随着无线传感器网络理论和技术的不断成熟,其应用也由最初的军事领域扩张到环境监测、交通管理、医疗健康、工商服务、反恐抗灾等诸多领域。当面向洪水监控、森林防火等特定应用时,由于某一区域突发事件的产生,网络呈现出一种突发高负载状态。多个节点会在监测到这一事件后向网关节点传输大量数据包。无线传感器网络考虑到经济成本,节点片上资源往往非常有限,短时间内的高负载传输会导致接收端的中继节点缓存空间溢出,造成数据分组的丢失,降低网络性能。因此,在高负载场景下有效利用节点缓存,尽可能提升传输的可靠性至关重要。
[0003]MAC协议处于无线传感器网络协议栈的底层部分,决定了无线信道的使用方式,对无线传感网络性能有极大影响。其主要负责信道接入、控制节点的数据传输对无线共享信道的占用,以及通过一组规则和过程来更有效、有序和公平使用共享信道以保证网络的整体性能,因此MAC协议是无线传感器网络中最重要的技术之一。
[0004]传输丢包是无线传感网络应用中经常存在的问题。发生丢包的原因很多,例如网络拥塞、接收分组的缓存区太小以及无线信号的同频干扰。针对上述问题,人们提出了多种MAC 协议解决方案。例如 IEEE802.11 的 MAC 协议采用 CSMA/CA (Carrier Sense MultipleAccess with Collision Avoidance)的无线MAC协议,在发送数据巾贞之前先对信道进行预约,通过侦听信道避免碰撞来减少丢包,大多数MAC协议都是广泛采用重传机制来解决传输丢包问题,许多协议在数据帧发送结束后如果没有收到ACK确认帧,数据帧将被重传,然而接收节点缓存溢出后依然会对收到的分组回复ACK确认帧,这种类型的丢包发送节点无法获知导致溢出丢包是不会被重传发送的。

【发明内容】

[0005]发明目的:为了克服现有技术中存在的不足,本发明提供一种无线传感器网络的高可靠传输方法,针对突发事件的无线传感网络应用场景,进行高可靠传输的MAC协议设计与实现;本发明能够实现利用有限的缓存资源尽可能降低网络丢包率,同时有效利用邻居节点,均衡网络负载,延长网络寿命,最终使网络性能得到较大的提升。
[0006]技术方案:为实现上述目的,本发明采用的技术方案为:
[0007]—种无线传感器网络的高可靠传输方法,采用接收端缓存反馈机制以及父节点自适应切换的动态转发机制,根据接收端缓存空间的大小来决定是否继续发送分组,避免了接收端溢出的丢包问题,同时根据网络负载情况动态转发数据分组,有效的利用空闲邻居节点,均衡网络负载,延长网络寿命。具体为:首先对加入无线传感器网络的节点进行初始化,发送节点建立接收列表和邻居列表;发送节点发送数据,当接收节点反馈的剩余缓存空间为零时,取消对接收节点的发送,发送节点立刻休眠直到下一周期唤醒;如果下次唤醒后接收节点反馈的剩余缓存空间仍然为零,则开启定时器,保持唤醒侦听信道最长一个周期:在这个侦听周期内寻找合适的父节点进行数据分组的转发,完成传输后切换回原来状态。
[0008]上述方法具体包括如下步骤:
[0009]步骤1、发送节点有数据需要发送,查询接收列表,如果接收节点在发送节点的接收列表中,进入步骤1-1 ;如果接收节点不在发送节点的接收列表中,进入步骤1-2 ;
[0010]步骤1-1、发送节点预测接收节点醒来的时间,在接收节点醒来前唤醒侦听信道,进入步骤2 ;
[0011]步骤1-2、发送节点立刻唤醒侦听信道,进入步骤2 ;
[0012]步骤2、接收节点唤醒,并发送信标帧,进入步骤3 ;
[0013]步骤3、若发送节点接收到非满信标帧,则进入步骤3-1 ;若发送节点接收到溢出信标帧,则进入步骤3-2 ;若发送节点收到其他类型分组,则进入步骤3-3 ;
[0014]步骤3-1、此时表明接收节点已经唤醒等待,且可以接收数据,发送节点可以发送数据帧;发送节点查询接收列表并发送数据帧:如果接收节点不在接收列表中,则在发送的数据帧中添加请求标识位;如果接收节点在接收列表中,则直接发送数据帧;进入步骤
4;
[0015]步骤3-2、发送节点立刻休眠,返回步骤1,等待下一周期唤醒;
[0016]步骤3-3、发送节点对于发给自己的数据分组则接收,并进入步骤4 ;发送节点对于串音收到的数据分组则丢弃;
[0017]步骤4、接收节点收到数据帧,根据数据帧是否含有请求标识位和缓存队列剩余空间回复ACK帧:若数据帧含有请求标识位,则进入步骤4-1 ;若数据帧不含请求标识位,则进入步骤4-2 ;若接收节点检测到了碰撞,则进入步骤4-3 ;
[0018]步骤4-1、接收节点添加自身调度信息和缓存剩余空间到ACK帧,发送ACK帧,进入步骤5 ;
[0019]步骤4-2、接收节点添加缓存剩余空间到ACK巾贞,发送ACK巾贞,进入步骤5 ;
[0020]步骤4-3、使用二进制指数退避方法,接收节点发送带有竞争窗口的信标帧,返回步骤3 ;
[0021]步骤5、发送节点收到ACK帧并对ACK帧中携带的接收节点缓存空间进行判断:若接收节点缓存不满则进入步骤5-1,若接收节点缓存溢出则进入步骤5-2 ;
[0022]步骤5-1、发送节点继续传输,直到自己没有数据或者接收节点没有剩余空间,当接收节点没有剩余空间时,发送节点休眠,返回步骤1,等待下一周期唤醒;
[0023]步骤5-2、发送节点休眠等待一下周期唤醒,如果唤醒后接收到溢出信标帧则进入步骤6 ;
[0024]步骤6、设定MAC层状态为SUB_FATHER,开启定时器,设置侦听信道最大时长为一个周期,进入步骤7;
[0025]步骤7、保持唤醒,侦听信道:若在该周期内侦听到信标帧则进入步骤7-1,若在该周期内没有侦听到合适的信标帧则进入步骤7-2 ;
[0026]步骤7-1、当信标帧发出节点距离汇聚节点的最短跳数小于本节点距离汇聚节点的最短跳数,且信标帧发出节点的剩余缓存空间不为零,进入步骤8 ;否则,返回步骤7 ;
[0027]步骤7-2、立刻休眠,MAC层退出SUB_FATHER状态,返回步骤1,等待下一周期唤醒;
[0028]步骤8、取消定时器,选定信标发出节点作为新的父节点,动态转发,传输完毕切换回原来父节点并使MAC层退出SUB_FATHER状态。
[0029]具体的,所述步骤I中,发送节点采用线性同余法预测接收节点醒来时间,具体为:
[0030]Xn+1=(aXn+c)mod m
[0031]其中,m是系数,m>0 ;a是乘数,0〈a〈m ;c是增量,0〈c〈m ;Xn是当前的种子,0〈Xn〈m ;每个Xn产生的Xn+1可以用于伪随机数,成为一个新的种子。因此,只要发送节点能够知道m、a、c和Xn的值,那么发送节点就可以推算出接收节点未来的唤醒时间。
[0032]有益效果:本发明提供的无线传感器网络的高可靠传输方法,具有如下优点:1、能够根据接收节点缓存的情况动态调整后续传输,保证分组不在接收端溢出丢失;2、充分利用邻居节点缓解接收节点缓存压力,动态转发数据分组,均衡网络负载,延长网络寿命;
3、适用于密集的、高负载的WSN网络,也同样适用于稀疏的、低负载网络。
【专利附图】

【附图说明】
[0033]图1是本发明整体流程图;
[0034]图2是ACK帧格式示意图;
[0035]图3是预测唤醒MAC示意图;
[0036]图4是步骤3的流程图;
[0037]图5是步骤4的流程图;
[0038]图6是步骤5、6的流程图;
[0039]图7是仿真实验拓扑图;
[0040]图8是分组传输率的对比图。
【具体实施方式】
[0041]下面结合附图对本发明作更进一步的说明。
[0042]一种无线传感器网络的高可靠传输方法,首先对加入无线传感器网络的节点进行初始化,发送节点建立接收列表和邻居列表;发送节点发送数据,当接收节点反馈的剩余缓存空间为零时,取消对接收节点的发送,发送节点立刻休眠直到下一周期唤醒;如果下次唤醒后接收节点反馈的剩余缓存空间仍然为零,则开启定时器,保持唤醒侦听信道最长一个周期:在这个侦听周期内寻找合适的父节点进行数据分组的转发,完成传输后切换回原来状态。如图1所示,该方法具体包括如下步骤:
[0043]步骤1、发送节点有数据需要发送,查询接收列表,如果接收节点在发送节点的接收列表中,进入步骤1-1 ;如果接收节点不在发送节点的接收列表中,进入步骤1-2 ;
[0044]步骤1-1、发送节点预测接收节点醒来的时间,在接收节点醒来前唤醒侦听信道,进入步骤2 ;
[0045]步骤1-2、发送节点立刻唤醒侦听信道,进入步骤2 ;
[0046]步骤2、接收节点唤醒,并发送信标帧,进入步骤3 ;
[0047]步骤3、若发送节点接收到非满信标帧,则进入步骤3-1 ;若发送节点接收到溢出信标帧,则进入步骤3-2 ;若发送节点收到其他类型分组,则进入步骤3-3 ;
[0048]步骤3-1、此时表明接收节点已经唤醒等待,且可以接收数据,发送节点可以发送数据帧;发送节点查询接收列表并发送数据帧:如果接收节点不在接收列表中,则在发送的数据帧中添加请求标识位;如果接收节点在接收列表中,则直接发送数据帧;进入步骤
4;
[0049]步骤3-2、发送节点立刻休眠,返回步骤1,等待下一周期唤醒;
[0050]步骤3-3、发送节点对于发给自己的数据分组则接收,并进入步骤4 ;发送节点对于串音收到的数据分组则丢弃;
[0051]步骤4、接收节点收到数据帧,根据数据帧是否含有请求标识位和缓存队列剩余空间回复ACK帧:若数据帧含有请求标识位,则进入步骤4-1 ;若数据帧不含请求标识位,则进入步骤4-2 ;若接收节点检测到了碰撞,则进入步骤4-3 ;
[0052]步骤4-1、接收节点添加自身调度信息和缓存剩余空间到ACK巾贞,发送ACK巾贞,进入步骤5 ;
[0053]步骤4-2、接收节点添加缓存剩余空间到ACK巾贞,发送ACK巾贞,进入步骤5 ;
[0054]步骤4-3、使用二进制指数退避方法,接收节点发送带有竞争窗口的信标帧,返回步骤3 ;
[0055]步骤5、发送节点收到ACK帧并对ACK帧中携带的接收节点缓存空间进行判断:若接收节点缓存不满则进入步骤5-1,若接收节点缓存溢出则进入步骤5-2 ;
[0056]步骤5-1、发送节点继续传输,直到自己没有数据或者接收节点没有剩余空间,当接收节点没有剩余空间时,发送节点休眠,返回步骤1,等待下一周期唤醒;
[0057]步骤5-2、发送节点休眠等待一下周期唤醒,如果唤醒后接收到溢出信标帧则进入步骤6 ;
[0058]步骤6、设定MAC层状态为SUB_FATHER,开启定时器,设置侦听信道最大时长为一个周期,进入步骤7;
[0059]步骤7、保持唤醒,侦听信道:若在该周期内侦听到信标帧则进入步骤7-1,若在该周期内没有侦听到合适的信标帧则进入步骤7-2 ;
[0060]步骤7-1、当信标帧发出节点距离汇聚节点的最短跳数小于本节点距离汇聚节点的最短跳数,且信标帧发出节点的剩余缓存空间不为零,进入步骤8 ;否则,返回步骤7 ;
[0061]步骤7-2、立刻休眠,MAC层退出SUB_FATHER状态,返回步骤1,等待下一周期唤醒;
[0062]步骤8、取消定时器,选定信标发出节点作为新的父节点,动态转发,传输完毕切换回原来父节点并使MAC层退出SUB_FATHER状态。
[0063]具体的,所述步骤I中,发送节点采用线性同余法预测接收节点醒来时间,具体为:
[0064]Xn+1=(aXn+c)mod m[0065]其中,m是系数,m>0 ;a是乘数,0〈a〈m ;c是增量,0〈c〈m ;Xn是当前的种子,0〈Xn〈m ;每个Xn产生的Xn+1可以用于伪随机数,成为一个新的种子。因此,只要发送节点能够知道m、
a、c和Xn的值,那么发送节点就可以推算出接收节点未来的唤醒时间。
[0066]下面就本发明的具体实现加以说明。
[0067]在网络初始化后,发送节点有数据帧需要发送时检查自己的接收列表中,如果接收节点不在自己的接收列表中,发送节点立刻唤醒等待接收节点的信标帧;如果接收节点在自己的接收列表中,发送节点预测接收节点醒来的时间,在接收节点醒来前唤醒侦听信道,在发送节点成功收到接收节点的信标帧之后进行数据帧的传输。发送节点在发送数据帧之前会查询接收节点是否在自己的接收列表中,如果不在则在数据帧中添加请求标识位,要求接收节点提供调度信息。
[0068]接收节点收到数据帧之后会检测数据帧是否含有请求标识位,对于含有请求标识位的数据帧,接收节点在回复的ACK确认帧中携带调度信息,ACK帧格式如图2所示。此后,发送节点可以预测到接收节点醒来的时间,提前醒来,进行分组的发送,如图3所示,大 ,其核心机制是利用伪随机数算法,如公式(I)所示:
[0069]Xn+1=(aXn+c)mod m(I)
[0070]其中,m是系数,m>0 ;a是乘数,0〈a〈m ;c是增量,0〈c〈m ;Xn是当前的种子,0〈Xn〈m ;每个Xn产生的Xn+1可以用于伪随机数,成为一个新的种子。因此,只要发送节点能够知道m、
a、c和Xn的值,那么发送节点就可以推算出接收节点未来的唤醒时间。在本发明实验中取a=21,c=7,m=750o
[0071]发送节点如果没有收到回复的ACK帧,一段时间后会重传数据帧,重传的上限为5次,当重传计数器超过5次时,这个数据帧会被丢弃。如果收到ACK帧,发送节点解析ACK帧,查看接收节点缓存空间是否剩余,如果接收节点仍然有缓存空间,发送节点会一直对它发送数据帧直到接收节点缓存空间为零。此时,发送节点立刻休眠,等到下一周期唤醒传输。
[0072]下一周期发送节点预测唤醒等待接收节点的信标帧,如果此时信标帧中显示接收节点的缓存空间依然为零,发送节点打开定时器保持唤醒,侦听信道最长一个周期,并设定MAC层的状态为SUB_FATHER,在这个周期内侦听选取第一个合适的邻居节点作为新的转发父节点,选取条件必须满足如下两点:
[0073]首先,新的父节点距离汇聚节点的最短跳数必须小于发送节点距离汇聚节点的最短跳数,为了避免路由回路,我们取消了同跳传输,减少了筛选范围;
[0074]其次,新转发父节点缓存剩余空间不能为零。
[0075]在这个侦听周期内如果能找到满足这两个条件的信标帧的发送者作为新的父节点,发送节点将取消定时器,将接收节点的地址改为新的父节点的地址,并将数据分组转发给这个节点,完成传输后切换回原来的状态;如果信标帧不完全满足条件,则继续侦听;如果在这个周期内发送节点没有发现合适的转发节点,发送节点定时器超时休眠,继续等到下一周期唤醒,MAC层退出SUB_FATHER状态。
[0076]下面进行实验测试,对比本发明方案与传统技术方案的性能:
[0077]实验平台:NS2网络仿真模拟器。
[0078]实验场景:11个节点星型分布在距离汇聚节点一跳范围内,汇聚节点在中间。[0079]网络负载:根据发送节点数量和产生数据间隔动态调整。
[0080]图7为实验拓扑。图8为实验结果图,其中横坐标表示数据发送间隔,纵坐标表示分组传输率,三角点、圆点、方点分别表示一条、两条、三条数据流。从图8中我们可以看出随着负载的加大,由于采用了接收端缓存反馈和动态转发机制,本发明方案的优势十分明显,而在低负载下本发明依然保持良好的性能。
[0081]以上所述仅是本发明的优选实施方式,应当指出:对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种无线传感器网络的高可靠传输方法,其特征在于:首先对加入无线传感器网络的节点进行初始化,发送节点建立接收列表和邻居列表;发送节点发送数据,当接收节点反馈的剩余缓存空间为零时,取消对接收节点的发送,发送节点立刻休眠直到下一周期唤醒;如果下次唤醒后接收节点反馈的剩余缓存空间仍然为零,则开启定时器,保持唤醒侦听信道最长一个周期:在这个侦听周期内寻找合适的父节点进行数据分组的转发,完成传输后切换回原来状态。
2.根据权利要求1所述的无线传感器网络的高可靠传输方法,其特征在于:包括如下步骤: 步骤1、发送节点有数据需要发送,查询接收列表,如果接收节点在发送节点的接收列表中,进入步骤1-1 ;如果接收节点不在发送节点的接收列表中,进入步骤1-2 ; 步骤1-1、发送节点预测接收节点醒来的时间,在接收节点醒来前唤醒侦听信道,进入步骤2 ; 步骤1-2、发送节点立刻唤醒侦听信道,进入步骤2 ; 步骤2、接收节点唤醒,并发送信标帧,进入步骤3 ; 步骤3、若发送节点接收到非满信标帧,则进入步骤3-1 ;若发送节点接收到溢出信标帧,则进入步骤3-2 ;若发送节点收到其他类型分组,则进入步骤3-3 ; 步骤3-1、发送节点查询接收列表并发送数据帧:如果接收节点不在接收列表中,则在发送的数据帧中添加请求标识位;如果接收节点在接收列表中,则直接发送数据帧;进入步骤4 ; 步骤3-2、发送节点立刻休眠,返回步骤1,等待下一周期唤醒; 步骤3-3、发送节点对于发给自己的数据分组则接收,并进入步骤4 ;发送节点对于串音收到的数据分组则丢弃; 步骤4、接收节点收到数据帧,根据数据帧是否含有请求标识位和缓存队列剩余空间回复ACK帧:若数据帧含有请求标识位,则进入步骤4-1 ;若数据帧不含请求标识位,则进入步骤4-2 ;若接收节点检测到了碰撞,则进入步骤4-3 ; 步骤4-1、接收节点添加自身调度信息和缓存剩余空间到ACK帧,发送ACK帧,进入步骤5; 步骤4-2、接收节点添加缓存剩余空间到ACK帧,发送ACK帧,进入步骤5 ; 步骤4-3、使用二进制指数退避方法,接收节点发送带有竞争窗口的信标帧,返回步骤3; 步骤5、发送节点收到ACK帧并对ACK帧中携带的接收节点缓存空间进行判断:若接收节点缓存不满则进入步骤5-1,若接收节点缓存溢出则进入步骤5-2 ; 步骤5-1、发送节点继续传输,直到自己没有数据或者接收节点没有剩余空间,当接收节点没有剩余空间时,发送节点休眠,返回步骤1,等待下一周期唤醒; 步骤5-2、发送节点休眠等待一下周期唤醒,如果唤醒后接收到溢出信标帧则进入步骤6; 步骤6、设定MAC层状态为SUB_FATHER,开启定时器,设置侦听信道最大时长为一个周期,进入步骤7 ; 步骤7、保持唤醒,侦听信道:若在该周期内侦听到信标帧则进入步骤7-1,若在该周期内没有侦听到合适的信标帧则进入步骤7-2 ; 步骤7-1、当信标帧发出节点距离汇聚节点的最短跳数小于本节点距离汇聚节点的最短跳数,且信标帧发出节点的剩余缓存空间不为零,进入步骤8 ;否则,返回步骤7 ; 步骤7-2、立 刻休眠,MAC层退出SUB_FATHER状态,返回步骤1,等待下一周期唤醒;步骤8、取消定时器,选定信标发出节点作为新的父节点,动态转发,传输完毕切换回原来状态并使MAC层退出SUB_FATHER状态。
3.根据权利要求1所述的无线传感器网络的高可靠传输方法,其特征在于:所述步骤I中,发送节点采用线性同余法预测接收节点醒来时间,具体为:
Xn+1= (aXn+c) mo dm 其中,m是系数,m>0 ;a是乘数,0<a<m ;c是增量,0<c<m ;Xn是当前的种子,0〈Xn〈m ;每个Xn产生的Xn+1可以用于伪随机数,成为一个新的种子。
【文档编号】H04L12/803GK103929284SQ201410141466
【公开日】2014年7月16日 申请日期:2014年4月9日 优先权日:2014年4月9日
【发明者】张萌, 张泰平, 张乐, 刘昊 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1