《一种无线传感器网络多流竞争场景下的数据传输方法.pdf》由会员分享,可在线阅读,更多相关《一种无线传感器网络多流竞争场景下的数据传输方法.pdf(14页完整版)》请在专利查询网上搜索。
1、10申请公布号CN104092523A43申请公布日20141008CN104092523A21申请号201410370854922申请日20140730H04L1/18200601H04L1/00200601H04W84/1820090171申请人东南大学地址214135江苏省无锡市新区菱湖大道99号72发明人刘昊张泰平张萌蒋富龙74专利代理机构江苏永衡昭辉律师事务所32250代理人王斌54发明名称一种无线传感器网络多流竞争场景下的数据传输方法57摘要本发明公开了一种多流竞争场景下的无线传感网络数据传输方法。其采用数据量感知的自适应唤醒机制以及接收节点发放令牌机制,根据接收节点回复的ACK帧。
2、指定下一次发送节点的ID号,减少了网络退避延时;同时根据ACK帧中携带的数据量来设定竞争节点休眠时长,解决了竞争节点长时间唤醒问题,降低竞争节点的能耗,延长网络寿命。本发明提出的数据传输方法,特别适用于多流高负载传输场景,在低流量负载场景下依然具有较好的性能表现。51INTCL权利要求书2页说明书6页附图5页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书6页附图5页10申请公布号CN104092523ACN104092523A1/2页21一种无线传感器网络多流竞争场景下的数据传输方法,分为三个步骤,其特征在于步骤A、对加入网络的节点进行初始化,发送节点建立接收列表和邻居列。
3、表,当接收节点检测到碰撞时,接收节点发送一个带有竞争窗的信标帧,发送节点收到信标帧后做随机退避,竞争到信道的节点发送数据帧,在此数据帧中携带此刻缓存队列中的数据量;步骤B、接收节点收到数据帧后,回复ACK确认帧,在ACK帧中指定下一次发送节点的ID号和发送节点的数据量;步骤C、对于收到ACK帧带有的ID号是自己的发送节点不必做竞争退避,立刻发送数据帧,其余未竞争到信道的节点收到ACK帧后根据数据量开启定时器并休眠,等定时器超时后唤醒进行数据的传输。2如权利要求1所述的无线传感器网络多流竞争传输的优化方法,其中所述步骤A具体为步骤1到步骤3,具体如下步骤1、发送节点有数据需要发送,查询接收列表,。
4、如果接收节点在发送节点的接收列表中,进入步骤11;如果接收节点不在发送节点的接收列表中,进入步骤12;步骤11、发送节点预测接收节点醒来的时间,在接收节点醒来前唤醒侦听信道,进入步骤2;步骤12、发送节点立刻唤醒侦听信道,进入步骤2;步骤2、接收节点唤醒,并发送信标帧,进入步骤3;步骤3、当发送节点接收到不含竞争窗的信标帧,进入步骤31;当发送节点接收到含有竞争窗的信标帧,进入步骤32;当发送节点收到ACK确认帧,进入步骤33;当发送节点收到数据分组时进入步骤34;步骤31、此时表明接收端未检测到碰撞,发送节点经过DIFS时长后发送数据帧,数据帧中携带此时队列中的数据量,查询接收列表,如果接收。
5、节点不在列表中,需要在发送的数据帧中添加请求标识位,进入步骤4;步骤32、此时表示接收端检测到碰撞,发送节点经过DIFS加随机退避时长后发送数据帧,数据帧中携带此时队列中的数据量,进入步骤4;步骤33、进入步骤5;步骤34、发送节点对于发给自己的数据分组则接收,并进入步骤4;发送节点对于串音收到的数据分组则丢弃;其中所述步骤B具体如下步骤4、接收节点收到数据帧,根据数据帧是否含有请求标识位回复ACK帧,数据帧含有请求标识位,进入步骤41;数据帧不含请求标识位,进入步骤42;当接收节点检测到了碰撞进入步骤43;步骤41、添加自身调度信息、发送节点的数据量和发送节点的ID号到ACK帧,如果此时发送。
6、节点的数据量为0,则不添加发送节点的ID号,发送ACK帧,进入步骤5;步骤42、添加发送节点的数据量和发送节点的ID号到ACK帧,如果此时发送节点的数据量为0,则不添加发送节点的ID号,发送ACK帧,进入步骤5;步骤43、使用二进制指数退避方法,接收节点发送带有竞争窗口的信标帧,返回步骤权利要求书CN104092523A2/2页33;其中所述步骤C具体为步骤5到步骤6,具体如下步骤5、当发送节点收到含有ID号的ACK帧,进入步骤51;当发送节点收到不含ID号的ACK帧进入步骤52;步骤51、当ACK帧中的ID号是自己则无需退避继续传输;当ACK帧中的ID号不是自己,则解析ACK帧中携带的数据量。
7、,设定定时器并休眠,进入步骤6;步骤52、当ACK帧发送给自己且发送节点有数据待发送,做CCA检测,通过CCA检测后发送数据;当ACK帧不发送自己,将ACK帧转变成信标帧并广播;步骤6、等待定时器超时后唤醒侦听信道,如果发送节点收到不含ID号的ACK帧,竞争信道,准备数据传输;如果发送节点仍收到带有ID号的ACK帧,返回步骤5。3根据权利要求2所述无线传感器网络多流竞争场景下的数据传输方法,其中所述设定的定时器时长为ACK帧中所携带的数据量的个数乘以单个数据包单跳范围内完成一次传输所消耗的时间。权利要求书CN104092523A1/6页4一种无线传感器网络多流竞争场景下的数据传输方法技术领域0。
8、001本发明涉及一种无线传感器网络中优化多流竞争传输的MAC层方法设计,尤其涉及解决低功耗竞争问题的MAC层方法设计。背景技术0002无线传感器网络WIRELESSSENSORNETWORKS,WSN是由部署在监测区域内大量的微型传感器节点通过无线电通信形成的一个多跳自组织网络系统,其目的是协作地感知、采集和处理网络覆盖区域内被监测对象的信息,并且发送给观察者。随着无线传感器网络理论和技术的不断成熟,其应用也由最初的军事领域扩张到环境监测、交通管理、医疗健康、工商服务、反恐抗灾等诸多领域。无线传感器网络的各个节点是由电池供电,由于节点数目庞大和地理位置严峻,电池的频繁更换是不现实的,因此降低各。
9、个节点的能耗是无线传感网络设计的主要目标。当面向洪水监控、森林防火等特定应用时,由于某一区域突发事件的产生,网络呈现出一种突发高负载状态。多个节点会在监测到这一事件后向网关节点传输大量数据包,越靠近网关节点处,节点竞争越激烈。在传统的无线传感器网络中,未竞争到信道的节点会一直唤醒等待直到竞争到信道的节点完成传输后放弃信道,所有有数据传输任务的节点会再一次竞争信道。当网络中存在多条竞争流时,这种竞争机制会使得未竞争到信道的节点持续唤醒较长时间,造成节点功耗急剧上升,降低网络性能。因此,在多流竞争场景下尽可能减少竞争节点的唤醒等待时间,降低节点的功耗至关重要。0003MAC层处于无线传感器网络协议。
10、栈的底层部分,决定了无线信道的使用方式,对无线传感网络性能有极大影响。其主要负责信道接入、控制节点的数据传输对无线共享信道的占用,以及通过一组规则和过程来更有效、有序和公平使用共享信道以保证网络的整体性能,针对特定场景设计适合的MAC协议是解决数据传输问题的有效方法,因此MAC协议是无线传感器网络中最重要的技术之一。0004多流竞争是无线传感网络应用中经常存在的问题。针对上述问题,人们提出了多种MAC协议解决方案。在基于TDMA的MAC协议中,不同的用户按照预先分配好的顺序占用信道的办法来共享同一频带,每个用户占用一个周期性重复的时隙。这种接入方式,由于TDMA的发射被时隙化,就要求接收机与每。
11、个数据分组保持同步,因此系统需要较高的同步开销。0005在基于CSMA的MAC协议中,通常使用二进制指数退避策略解决多流竞争产生的碰撞问题,即当碰撞发生后,每个节点为了降低再次碰撞的概率,等待一个随机时间后再次发送数据。这种方法虽然没有控制开销,但是随着网络中数据流增加,数据包碰撞概率越来越大,消耗能量的同时增加了数据传输延时,使网络性能迅速降低。发明内容0006鉴于上述问题,本发明将针对多流竞争的无线传感网络应用场景,进行低功耗传输的MAC协议设计与实现。本发明的能够避免每次数据帧传输完毕后的重新信道竞争和未说明书CN104092523A2/6页5竞争到信道节点的持续唤醒等待问题,同时能避免。
12、隐藏节点竞争产生的碰撞,降低网络节点的功耗,提升网络性能。0007技术方案为实现上述目的,本发明采取以下技术方案00081、一种无线传感器网络多流竞争场景下的数据传输方法,采用数据量感知的自适应唤醒机制以及接收节点发放令牌机制。根据接收节点回复的ACK帧指定下一次发送节点的ID号,避免了指定发送节点的随机退避,减少了网络延时,同时根据ACK帧中携带的数据量来设定竞争节点休眠的时长,解决了竞争节点长时间唤醒问题,降低竞争节点的能耗,延长网络寿命。具体为首先对加入网络的节点进行初始化,发送节点建立接收列表和邻居列表,当接收节点检测到碰撞时,接收节点发送一个带有竞争窗的信标帧,发送节点收到信标帧后做。
13、随机退避,竞争到信道的节点发送数据帧,在此数据帧中携带此刻缓存队列中的数据量。接收节点收到数据帧后,回复ACK确认帧,在ACK帧中指定下一次发送节点的ID号和发送节点的数据量。对于收到ACK帧带有的ID号是自己的发送节点不必做竞争退避,立刻发送数据帧,其余未竞争到信道的节点收到ACK帧后根据数据量开启定时器并休眠,等定时器超时后唤醒进行数据的传输。0009上述方法具体包括如下步骤0010一种无线传感器网络多流竞争场景下的数据传输方法,分为三个步骤,其特征在于0011步骤A、对加入网络的节点进行初始化,发送节点建立接收列表和邻居列表,当接收节点检测到碰撞时,接收节点发送一个带有竞争窗的信标帧,发。
14、送节点收到信标帧后做随机退避,竞争到信道的节点发送数据帧,在此数据帧中携带此刻缓存队列中的数据量;0012步骤B、接收节点收到数据帧后,回复ACK确认帧,在ACK帧中指定下一次发送节点的ID号和发送节点的数据量;0013步骤C、对于收到ACK帧带有的ID号是自己的发送节点不必做竞争退避,立刻发送数据帧,其余未竞争到信道的节点收到ACK帧后根据数据量开启定时器并休眠,等定时器超时后唤醒进行数据的传输。0014其中,所述步骤A具体为步骤1到步骤3,具体如下0015步骤1、发送节点有数据需要发送,查询接收列表,如果接收节点在发送节点的接收列表中,进入步骤11;如果接收节点不在发送节点的接收列表中,进。
15、入步骤12;0016步骤11、发送节点预测接收节点醒来的时间,在接收节点醒来前唤醒侦听信道,进入步骤2;0017步骤12、发送节点立刻唤醒侦听信道,进入步骤2;0018步骤2、接收节点唤醒,并发送信标帧,进入步骤3;0019步骤3、当发送节点接收到不含竞争窗的信标帧,进入步骤31;当发送节点接收到含有竞争窗的信标帧,进入步骤32;当发送节点收到ACK确认帧,进入步骤33;当发送节点收到数据分组时进入步骤34;0020步骤31、此时表明接收端未检测到碰撞,发送节点经过DIFS时长后发送数据帧,数据帧中携带此时队列中的数据量。查询接收列表,如果接收节点不在列表中,需要在发送的数据帧中添加请求标识位。
16、,进入步骤4;0021步骤32、此时表示接收端检测到碰撞,发送节点经过DIFS加随机退避时长后发说明书CN104092523A3/6页6送数据帧,数据帧中携带此时队列中的数据量,进入步骤4;0022步骤33、进入步骤5;0023步骤34、发送节点对于发给自己的数据分组则接收,并进入步骤4;发送节点对于串音收到的数据分组则丢弃;0024其中所述步骤B具体如下0025步骤4、接收节点收到数据帧,根据数据帧是否含有请求标识位回复ACK帧。数据帧含有请求标识位,进入步骤41;数据帧不含请求标识位,进入步骤42;当接收节点检测到了碰撞进入步骤43;0026步骤41、添加自身调度信息、发送节点的数据量和发。
17、送节点的ID号到ACK帧,如果此时发送节点的数据量为0,则不添加发送节点的ID号,发送ACK帧,进入步骤5;0027步骤42、添加发送节点的数据量和发送节点的ID号到ACK帧,如果此时发送节点的数据量为0,则不添加发送节点的ID号,发送ACK帧,进入步骤5;0028步骤43、使用二进制指数退避方法,接收节点发送带有竞争窗口的信标帧,返回步骤3;0029其中所述步骤C具体为步骤5到步骤6,具体如下0030步骤5、当发送节点收到含有ID号的ACK帧,进入步骤51;当发送节点收到不含ID号的ACK帧进入步骤52;0031步骤51、当ACK帧中的ID号是自己则无需退避继续传输;当ACK帧中的ID号不是。
18、自己,则解析ACK帧中携带的数据量,设定定时器并休眠,进入步骤6;0032步骤52、当ACK帧发送给自己且发送节点有数据待发送,做CCA检测,通过CCA检测后发送数据;当ACK帧不发送自己,将ACK帧转变成信标帧并广播;0033步骤6、等待定时器超时后唤醒侦听信道,如果发送节点收到不含ID号的ACK帧,竞争信道,准备数据传输;如果发送节点仍收到带有ID号的ACK帧,返回步骤5。0034所述设定的定时器时长为ACK帧中所携带的数据量的个数乘以单个数据包单跳范围内完成一次传输所消耗的时间。0035具体的,所述步骤1中,发送节点采用线性同余法预测接收节点醒来时间,具体为0036XN1AXNCMODM。
19、0037其中,M是系数,M0;A是乘数,0AM;C是增量,0CM;XN是当前的种子,0XNM;每个XN产生的XN1可以用于伪随机数,成为一个新的种子。因此,只要发送节点能够知道M、A、C和XN的值,那么发送节点就可以推算出接收节点未来的唤醒时间。0038所述步骤5中,设定的定时器时长为ACK帧中所携带的数据量的个数乘以单个数据包单跳范围内完成一次传输所消耗的时间。0039有益效果本发明提供的无线传感器网络多流竞争场景下的数据传输方法,具有如下优点1、通过接收节点发放令牌,避免了获得令牌的发送节点的随机退避时间,减少了网络传输延时;2、计算获得信道的发送节点持续传输占用信道的时长,未竞争到信道的。
20、节点休眠,在竞争到信道节点发送结束后唤醒,节省节点能耗,延长网络寿命;3、在ACK帧中携带ID号能够解决隐藏终端产生的碰撞问题;4、适用于多流的、高负载的WSN网络,也同样适用于稀疏的、低负载网络。说明书CN104092523A4/6页7附图说明0040图1是本发明方法整体流程图0041图2是ACK帧格式示意图0042图3是预测唤醒MAC示意图0043图4是数据量感知的自适应唤醒示意图0044图5是步骤3的流程图0045图6是步骤4的流程图0046图7是步骤5的流程图具体实施方式0047下面结合附图对本发明的进行详细的描述。0048一种无线传感器网络多流竞争场景下的数据传输方法,首先对加入网络。
21、的节点进行初始化,发送节点建立接收列表和邻居列表,当接收节点检测到碰撞时,接收节点发送一个带有竞争窗的信标帧,发送节点收到信标帧后做随机退避,竞争到信道的节点发送数据帧,在此数据帧中携带此刻缓存队列中的数据量。接收节点收到数据帧后,回复ACK确认帧,在ACK帧中指定下一次发送节点的ID号和发送节点的数据量。对于收到ACK帧带有的ID号是自己的发送节点不必做竞争退避,立刻发送数据帧,其余未竞争到信道的节点收到ACK帧后根据数据量开启定时器并休眠,等定时器超时后唤醒进行数据的传输。如图1所示,该方法具体包括如下步骤0049步骤1、发送节点有数据需要发送,查询接收列表,如果接收节点在发送节点的接收列。
22、表中,进入步骤11;如果接收节点不在发送节点的接收列表中,进入步骤12;0050步骤11、发送节点预测接收节点醒来的时间,在接收节点醒来前唤醒侦听信道,进入步骤2;0051步骤12、发送节点立刻唤醒侦听信道,进入步骤2;0052步骤2,接收节点唤醒,并发送信标帧,进入步骤3;0053步骤3、当发送节点接收到不含竞争窗的信标帧,进入步骤31;当发送节点接收到含有竞争窗的信标帧,进入步骤32;当发送节点收到ACK确认帧,进入步骤33;当发送节点收到数据分组时进入步骤34;0054步骤31、此时表明接收端未检测到碰撞,发送节点经过DIFS时长后发送数据帧,数据帧中携带此时队列中的数据量。查询接收列表。
23、,如果接收节点不在列表中,需要在发送的数据帧中添加请求标识位,进入步骤4;0055步骤32、此时表示接收端检测到碰撞,发送节点经过DIFS加随机退避时长后发送数据帧,数据帧中携带此时队列中的数据量,进入步骤4;0056步骤33、进入步骤5;0057步骤34、发送节点对于发给自己的数据分组则接收,并进入步骤4;发送节点对于串音收到的数据分组则丢弃;0058步骤4、接收节点收到数据帧,根据数据帧是否含有请求标识位回复ACK帧。数据帧含有请求标识位,进入步骤41;数据帧不含请求标识位,进入步骤42;当接收节点检测说明书CN104092523A5/6页8到了碰撞,进入步骤43;0059步骤41、添加自。
24、身调度信息、发送节点的数据量和发送节点的ID号到ACK帧,如果此时发送节点的数据量为0,则不添加发送节点的ID号,发送ACK帧,进入步骤5;0060步骤42、添加发送节点的数据量和发送节点的ID号到ACK帧,如果此时发送节点的数据量为0,则不添加发送节点的ID号,发送ACK帧,进入步骤5;0061步骤43、使用二进制指数退避方法,接收节点发送带有竞争窗口的信标帧,返回步骤3;0062步骤5、当发送节点收到含有ID号的ACK帧,进入步骤51;当发送节点收到不含ID号的ACK帧进入步骤52;0063步骤51、当ACK帧中的ID号是自己则无需退避继续传输;当ACK帧中的ID号不是自己,则解析ACK帧。
25、中携带的数据量,设定定时器并休眠,进入步骤6;0064步骤52、当ACK帧发送给自己且发送节点有数据待发送,做CCA检测,通过CCA检测后发送数据;当ACK帧不发送自己,将ACK帧转变成信标帧并广播;0065步骤6、等待定时器超时后唤醒侦听信道,如果发送节点收到不含ID号的ACK帧,竞争信道,准备数据传输;如果发送节点仍收到带有ID号的ACK帧,返回步骤5。0066具体的,所述步骤1中,发送节点采用线性同余法预测接收节点醒来时间,具体为0067XN1AXNCMODM0068其中,M是系数,M0;A是乘数,0AM;C是增量,0CM;XN是当前的种子,0XNM;每个XN产生的XN1可以用于伪随机数。
26、,成为一个新的种子。因此,只要发送节点能够知道M、A、C和XN的值,那么发送节点就可以推算出接收节点未来的唤醒时间。0069所述步骤5中,设定的定时器时长为ACK帧中所携带的数据量的个数乘以单个数据包单跳范围内完成一次传输所消耗的时间。0070下面就本发明的具体加以说明。0071在网络初始化后,发送节点有数据帧需要发送时检查自己的接收列表中,如果接收节点不在自己的接收列表中,发送节点立刻唤醒等待接收节点的信标帧;如果接收节点在自己的接收列表中,发送节点预测接收节点醒来的时间,在接收节点醒来前唤醒侦听信道,在发送节点成功收到接收节点的信标帧之后进行数据帧的传输。发送节点在发送数据帧之前会查询接收。
27、节点是否在自己的接收列表中,如果不在则在数据帧中添加请求标识位,要求接收节点提供调度信息,此外发送节点还在数据帧中添加当前缓存队列中的数据量。0072接收节点收到数据帧之后会检测数据帧是否含有请求标识位,对于含有请求标识位的数据帧,接收节点在回复的ACK确认帧中携带调度信息;接收节点同时在ACK帧中添加数据帧中携带的数据量和发送数据帧节点的ID号,当解析出数据量为零时,则不在ACK帧中添加发送节点的ID号,收到这样ACK帧的发送节点会重新竞争信道,ACK帧格式如图2所示。此后,发送节点可以预测到接收节点醒来的时间,提前醒来,进行分组的发送,如图3所示,大大减少了发送节点侦听时间,其核心机制是利。
28、用伪随机数算法,如公式1所示0073XN1AXNCMODM00741说明书CN104092523A6/6页90075其中,M是系数,M0;A是乘数,0AM;C是增量,0CM;XN是当前的种子,0XNM;每个XN产生的XN1可以用于伪随机数,成为一个新的种子。因此,只要发送节点能够知道M、A、C和XN的值,那么发送节点就可以推算出接收节点未来的唤醒时间。在本发明实验中取A21,C7,M750。0076发送节点如果没有收到回复的ACK帧,一段时间后会重传数据帧,重传的上限为5次,当重传计数器超过5次时,这个数据帧会被丢弃。如果收到带有ID号的ACK帧且ID号就是自己,则发送节点不需做随机退避,在D。
29、IFS时长后发送数据帧。如果发送节点收到不含有ID号的ACK帧,则发送节点需要在DIFS加随机退避时长后竞争信道发送数据帧。如图4所示,如果发送节点收到带有ID号的ACK帧但ID号并不是自己,发送节点解析ACK帧中携带的数据量,开启定时器并立刻休眠,根据数据量设定定时器的超时时间,在定时器超时后唤醒检测信道,进行数据的传输。未竞争到信道的发送节点不必一直唤醒等待信道,竞争到信道的节点由于获得带有自己ID号的令牌无需做随机退避。0077由于发送节点缓存队列中的数据是动态更新的,而竞争节点收到第一个ACK帧后休眠,并不知道后续发送节点的缓存情况。因此在本发明中,我们在ACK帧中指定发送节点的ID号。
30、。当竞争节点唤醒后,如果发送节点缓存队列中新增数据帧而并没有传输完毕,由于ID号是自己的发送节点不需要随机退避,因此该节点可以继续占用信道,而其余唤醒的竞争节点则继续根据新的数据量设定再一次休眠的时长。此外,在基于CSMA传统无线传感器网络的异步MAC协议中并没有考虑隐藏终端问题,在ACK帧中发放令牌指定发送节点的ID号,隐藏节点收到带有ID号不是自己的ACK帧根据ACK帧中的数据量设定休眠时长,能够有效避免隐藏节点产生的碰撞问题,节省节点能耗。0078以上所述仅是本发明的优选实施方式,应当指出对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。说明书CN104092523A1/5页10图1说明书附图CN104092523A102/5页11图2图3图4说明书附图CN104092523A113/5页12图5说明书附图CN104092523A124/5页13图6说明书附图CN104092523A135/5页14图7说明书附图CN104092523A14。