一种无线传感器网络信道接入和批量数据传输方法

文档序号:7851356阅读:125来源:国知局
专利名称:一种无线传感器网络信道接入和批量数据传输方法
技术领域
本发明涉及无线网络领域,特别涉及无线传感器网络设计领域,具体给出无线传感器网络信道接入和批量数据传输方法。
背景技术
在无线传感器网络系统应用中,节点采集到数据后通常通过中继节点进行转发将数据包传递到汇聚节点,并通过汇聚节点将数据发送到后台进行监控。后台控制端可以通过网络发送命令给节点进行远程的控制和操作,实现随时随地感知和控制物理世界。无线传感器网络应用领域比较广泛,节点可布设在森林农田、厂矿工地以及港口物流、交通系统、电力系统等众多环境。在很多的应用场合,由于环境条件的限制,节点需要电池供电且电池容量较小,但是应用系统往往需要节点持续工作数月到数年,所以能量效率是无线传感器网络设计考虑的重点。在传感器网络具体的应用中,一方面要保持网络本身良好的通信性能,另外一方面更要考虑节点低能耗的要求,在追求低能耗和高通信性能之间很大程
在目前无线传感器网络系统中信道接入方法是其中最重要的技术之一,是影响网络总体性能的关键因素,当多个节点进行数据通信的时候,需要比较有效的方法来协调节点的数据通信行为以达到较高的网络通信性能和较低的能耗。当节点需要从感知范围内将信息通过多跳方式传给汇聚节点的时候,由于多跳传输中存在隐藏终端和暴露终端、节点移动、链路中断等一系列更加复杂的问题,导致网络性能严重下降,加上节点对能耗的要求比较敏感,给这类网络的设计带来较大的挑战。目前的解决方案中一般使节点采用周期性的侦听和睡眠调度以降低能耗,即节点在没有数据发送的时候进入睡眠状态以减小能耗,并定期唤醒以检测可能发给自己的数据,一旦有数据发给自己则保持唤醒状态进行数据通f目。目前具有代表性的周期性侦听睡眠的信道接入机制是叶伟提出的S-MAC协议,它最早由参考文献“An Energy-Efficient MAC Protocol for Wireless SensorNetworks”(W. Ye, J. Heidemann, and D. Estrin, IEEE INF0C0M, June 2002)提出。S-MAC协议中节点按照周期性方式运行,协议的一个周期分为侦听期和睡眠期两个部分,其中的侦听期又分为同步阶段和数据阶段,侦听时间和整个周期长度的比率为占空比,协议运行过程中周期长度和占空比均固定。节点在侦听期间唤醒进行数据通信,在睡眠期间进入睡眠状态以降低功耗。另外还有基于接收方发起的RI-MAC协议,由参考文献“RMAC: Arouting-enhanced duty-cycle mac protocol for wireless sensor networks,, (S. Du,A. K. Saha, and D. B. Johnson, IEEE INF0C0M, May 2007)提出。当发送节点有数据需要发送的时候,需要等待接收方唤醒并发送一个邀请包给发送节点发起本次传输,很大程度上能减小控制包的开销和降低能耗。但是在实际的无线传感器网络应用中,往往存在许多难点问题需要解决1)节点需要通过进入睡眠状态来降低能耗,但是节点处于睡眠状态以后无法收发数据包,导致数据传输失败并不断引发重传,降低了网络的通信效率;2)网络中的数据流经常发生变化,当网络数据流量变大的时候,如果节点处于睡眠无法发送数据会导致网络拥塞加剧,如果节点不能及时发送数据则数据包将丢失,在多跳环境下引起严重的网络性能下降;3)在接收节点唤醒的时候往往有多个发送节点积累了数据包,如果每次只有一个发送节点进行数据通信,则会使得其他发送节点堆积的数据无法及时发送出去,将会导致数据传输延迟和吞吐率等方面的性能恶化。这些存在的问题导致严重影响了无线传感器网络各个行业的广泛应用。

发明内容
本发明的目的是为解决上述现有技术中存在的问题,提供一种无线传感器网络信道接入和批量数据传输方法,使得网络中的拥塞严重的节点能有更多 的机会获得数据包发送权,很大程度上缓解网络拥塞和数据丢包的问题。同时通过优化设计的快速传输方式能够使节点能尽快发送已经堆积在缓冲区中的数据包,较大程度上提升了网络的运行效率,其步骤如下
1.通常情况下网络中的节点按照一定的周期长度周期性地进行侦听和睡眠以节约能量,在没有数据需要发送的时候节点进入睡眠状态以降低能耗,并在一个周期结束后主动唤醒以接收可能发送给自己的数据包;网络中节点之间的侦听和睡眠调度相互独立,唤醒和睡眠过程并不需要保持一致,减少由于维持同步造成的额外开销;节点在睡眠结束后主动唤醒,通过查询本地缓冲区中的数据包数目估计当前拥塞程度,并以此作为本次数据发送调节的依据;
2.发送节点通过竞争信道获得前导包发送权后,构建一个前导包并通过重复发送前导包给接收节点以建立本次数据通信过程,由于此时接收节点可能处于睡眠状态,发送节点需要等待接收节点唤醒后回复确认包;为使得其他节点在这个过程中能够有机会赢得发送权;前导包之间的时间间隔随机选择并服从均匀分布,并至少能够容纳一个前导包传输的时间加上前导包在信道上的传输延迟,最大不能超过周期长度的一半;在具体设计中,前导包的平均时间间隔和拥塞程度成比例,拥塞越严重的节点发送的前导包的平均时间间隔越短,拥塞越轻的节点发送的前导包的平均时间间隔越长,使得拥塞严重的节点发送前导包的机会更多,从而成功发送数据的概率也越大,这样能够有效缓解网络中拥塞问题,提高网络传输性能;
3.接收节点唤醒并收到前导包后会回复第一类型确认包ACKl给发送节点以建立本次连接,其中ACKl除了携带发送节点和接收节点的地址信息外,还附加了接收节点当前可用缓冲区信息,使得发送节点发送的批量数据包数目不会超过接收节点当前可用的缓冲区大小而引起丢包。发送节点收到ACKl包后,根据自身的已经缓存的数据包数目情况和接收节点可用的缓冲区情况合理计算本次数据包发送的数目以优化传输,并一次发送多个数据包给接收节点,最大限度地提高传输效率和降低能耗,接收节点收到数据包后,回复第二类型的确认包ACK2确认本次数据通信,这个第二类型确认包ACK2中也包含本次未成功接收到的数据包序号,使得发送节点能够获知未正确接收的数据包信息并进行进一步处理。进一步地,步骤2中前导包之间的时间间隔随机选择方法具体为令节点上的最大的缓冲区容量大小为Qmax,相邻两个前导包允许的最大时间间隔为Tmax,允许的最小时间间隔为Tmin,本次测量的数据包队列长度为Qcur,则本次选择的最大前导包时间间隔Tcur 由以下公式确定 Tcur= ((Tmin-Tmax)/Qmax) X Qcur+Tmax;节点会在[Tmin, Tcur]之间随机选择一个值tcur作为本次的前导包时间间隔,当前的前导包发送完毕后,等待tcur时间再继续下一次前导包的发送,在这个时间间隔内如果邻居节点中有拥塞更加严重的节点,则此节点有可能在这个时间间隔内发送前导包,从而能够有机会抢占当前发送前导包的节点并进行数据包发送,从而能够缓解拥塞并保持网络中的数据和流量平衡;节点每次发送完毕一个前导包后,再次按照相同的方法计算下一个前导包时间间隔,并进行下一次前导包的发送,直到收到接收节点的ACKl或者本周期结束为止。进一步地,步骤3中合理计算本次数据包发送的数目的方法具体为令网络所有节点都设置同样大小的缓冲区,接收节点在收到前导包后解析发送节点的地址信息,然后接收节点查询自身当前数据缓冲区中数据包数目,令当前数据包缓冲区中的数目为Qlft,则当前可用的缓冲区大小为Nrcv=Qmax-Qlft,接收节点通过第一 类型确认包ACKl将当前可用的缓冲区大小Nrcv发送给发送节点;令当前发送节点的缓冲区中数据包数目为Nsnd,根据系统最大允许的传输时间计算的数据包数目为Nlmt,则发送节点本次发送的数据包数目Nbst为这三者中的最小值,即Nbst=min {Nrcv, Nsnd, Nlmt}。进一步地,前导包之间的时间间隔最小为发送一个前导包的时间加上前导包在信道上传输的延迟时间,如果前导包的长度为Lp,当前的前导包的传输速度为kp,前导包在信道上传输的延迟为S,则这个最小时间间隔可表示为Tmin=Lp/kp+S ;前导包之间的最大时间间隔设置为周期长度的一半,即TmaX=Tcyc/2,这里的Tcyc为一个周期的长度。进一步地,根据系统最大允许的传输时间计算的数据包数目方法为令k为数据包和确认包的传输速度,Ldata为数据包长度,Lack为确认包长度,tsifs为两个连续的数据包间隔,则(Ldata/k+tsifs) XNlmt+Lack/k=Tmax,由此得到 Nlmt= (kXTmax-Lack)/(Ldata+kXtsifs)。


图I为本发明中的一个基本的无线传感器网络拓扑图。图2为本发明中前导包发送的过程示意图。图3为本发明中批量数据传输方法示意图。
具体实施例方式下面将结合附图和具体实施实例对本发明的技术方案进行进一步说明。一个简单的无线传感器网络组网拓扑如图I所示,节点A和节点B通过中继节点C发送数据包到节点D,形成了一个简单的汇聚传输的网络,其中DATA和ACK为相应的数据包和确认包。为节约能耗,图中的4个节点均周期性进行睡眠和唤醒调度,并且相互之间的睡眠唤醒调度过程不需要定期进行同步和校正。在网络运行过程中的某一时刻,假设节点A和节点B均有数据在缓冲区中堆积需要发送出去,则节点A在唤醒状态时候发送前导包给节点C,等待节点C回复确认包后进行正式的数据包传输。由于节点A发送前导包的时候节点C可能处于睡眠状态而无法回复确认包,则节点A将连续发送前导包直到收到节点C唤醒后回复的确认包或者本周期结束为止。在没有收到节点C回复的确认包前,节点A需要重复发送前导包给节点C。此时由于节点B也有数据包需要发送,则节点B也开始尝试发送前导包给节点C以等待相应的确认包。令当前的节点A和节点B的缓冲区中的数据包数目分别为Na和Nb且Na〈Nb,则为防止节点上的数据包由于缓冲区满而丢包导致网络性能下降,在本方法设计中需要让拥塞严重的节点B能有更多的机会发送数据包以减轻数据包堆积问题和平衡网络数据负荷。前导包的平均时间间隔和拥塞程度 成比例,拥塞越严重的节点发送的前导包的时间平均间隔越短,拥塞越轻的节点发送的前导包的时间平均间隔越长,使得拥塞严重的节点发送前导包的机会更多,从而成功发送数据包的概率也越大。图2为本例中节点A和节点B同时向节点C发送前导包的场景,其中PP为前导包,DATA为数据包,Al为第一类型的ACK包,A2为第二类型的ACK包。节点A和节点B向节点C发送前导包时,每次发送完一个前导包,需要根据当前的状态计算下一次前导包发送的时间,前导包的时间间隔并不是固定的长度,而是在一定的范围内随机选择。节点A和节点B的相邻前导包的间隔时间分别为Backoffl和Backoff2,前导包之间的时间间隔随机选择并服从均勻分布。当Na〈Nb的时候,Backoffl的平均值大于Backoff2的平均值。当节点A在发送前导包的过程中,收到了来自节点B的前导包,并且从前导包中的信息获知节点B的数据缓冲区中待发送的数据包数目大于节点A,则节点A放弃当前的前导包发送使得节点B能够赢得信道进行数据传输,从而能让拥塞更加严重的节点B能够有更多机会发送数据包从而有效缓解网络的拥塞,提高网络运行效率。为使得节点A在发送数据包的时候,能够正确接收和解析来自其它节点的前导包,则前导包的时间间隔最小需要能够容纳一个前导包传输的时间和前导包在信道上的传输延迟,同时为防止前导包过长而影响自身数据的发送,前导包的最大时间间隔设置为周期长度的一半。在进行前导包发送时候,节点A和节点B的前导包时间间隔随机选择方法为令节点上的最大的缓冲区容量大小为Qmax,相邻两个前导包允许的最大时间间隔为Tmax,允许的最小时间间隔为Tmin,本次测量的数据包队列长度为Qcur,则本次的选择的最大前导包时间间隔Tcur由以下公式确定Tcur= ((Tmin-Tmax)/Qmax) XQcur+Tmax;当前的前导包发送完毕后,节点从
时间区间内随机选择一个时间tcur做为本次前导包时间间隔,节点等待tcur时间后发送下一个前导包;节点每次发送完毕一个前导包后,再次按照相同的方法计算下一个前导包时间间隔,并进行下一次前导包的发送,直到收到接收节点的ACKl包或者本周期结束为止。如果拥塞更加严重的节点B抑制了节点A的前导包发送,节点B将按照计算的时间间隔重复发送前导包,如果节点C唤醒后接收到节点B的前导包,则节点C通过检测当前缓冲区中的数据包数目和节点本身的缓冲区最大容量,计算当前可用的缓冲区空间。具体方法为令当前数据包缓冲区中的数目Qlft,数据包缓冲区最大容量为Qmax,则当前可用的缓冲区大小为Nrcv=Qmax-Qlft,接收节点回复一个第一类型确认包ACKl包给节点B,这个ACKl包中包含接收节点当前可用的缓冲区大小Nrcv。发送节点收到这个ACKl包后,检测自身当前缓冲区中包数目Nsnd,考虑到根据系统最大允许的延迟时间计算的允许发送的数据包数目为Nlmt,则发送节点本次发送的数据包数目Nbst为这三者中的最小值,即Nbst=min{Nrcv, Nsnd, Nlmt}。发送节点B在获取到足够的信息后,开始通过批量传输的方式连续发送Nbst个数据包给节点C,如图3所示。每个数据包之间的时间间隔大小为数据包传输的延迟时间Tsifs,当最后一个数据包发送完毕后,接收节点C最后通过回复一个确认包ACK2确认本次数据传输。这个确认包ACK2中包含了本次未成功接收到的数据包的序号,用以通知节点B 进行下一步处理。节点B收到ACK2后,获知未成功发送的数据包序号,并将接收节点C未收到的数据包调度到缓冲区队列的首部用于下次数据发送。通过这样的方式能够快速发送当前拥塞节点上的数据,有效提高了传输的效率和网络的性能。
权利要求
1.一种无线传感器网络信道接入和批量数据传输方法,其特征在于包括以下步骤 1)网络中的节点周期性地进行侦听和睡眠以节约能量,节点之间的侦听和睡眠调度相互独立;节点每次唤醒后如果需要发送数据,首先检测当前缓冲区中的数据包数目用于估计当前拥塞程度,数据包数目越大则拥塞越严重,并以此作为本次数据发送和调节的依据; 2)发送节点竞争信道获得前导包发送权后,通过重复发送一个前导包给接收节点,以等待接收节点唤醒后进行回复;前导包之间的时间间隔在一定范围内随机选择并服从均匀分布,前导包的平均时间间隔和拥塞程度成比例,拥塞越严重的节点发送前导包的平均时间间隔越短,使得拥塞严重的节点能有更多机会赢得信道发送数据包; 3)接收节点唤醒并收到前导包后会回复第一类型确认包ACKl给发送节点建立本次连接,其中ACKl携带接收节点当前可用缓冲区信息;发送节点收到ACKl后,计算本次需要发送的数据包数目,并按照优化计算的数据包数目批量传输多个数据包给接收节点,接收节点通过回复第二类型ACK2包进行确认完成本次数据通信。
2.根据权利I所述的无线传感器网络信道接入和批量数据传输方法,其特征在于所述前导包之间的时间间隔在一定范围内随机选择并服从均匀分布具体为令节点的最大缓冲区容量为Qmax,前导包允许的最大时间间隔为Tmax,允许的最小时间间隔为Tmin,本次测量的数据包队列长度为Qcur,则本次选择的最大前导包时间间隔Tcur由以下公式确定Tcur= ((Tmin-Tmax)/Qmax) XQcur+Tmax,节点会在[Tmin, Tcur]之间随机选择一个值作为本次的前导包时间间隔;节点每次发送完毕前导包后,再次按照相同的方法计算下一个前导包时间间隔,并继续进行前导包的发送,直到收到接收节点回复的第二类型ACK2包或者本周期结束为止。
3.根据权利I所述的无线传感器网络信道接入和批量数据传输方法,其特征在于计算本次需要发送的数据包数目方法为令网络所有节点都设置同样大小的数据包缓冲区,接收节点查询到当前数据包缓冲区中的数据包数目为Qlft,则当前可用的缓冲区空间为Nrcv=Qmax-Qlft ;令当前发送节点的缓冲区中数据包数目为Nsnd;根据系统最大允许的传输时间计算的数据包数目为Nlmt,则本次发送的数据包数目Nbst为这三者中的最小值,即 Nbst=min {Nrcv, Nsnd, Nlmt}。
4.根据权利I所述的无线传感器网络信道接入和批量数据传输方法,其特征在于所述的前导包之间的时间间隔最小为发送一个前导包的发送时间加上数据包在信道上传输的延迟时间,前导包之间的时间间隔最大为周期长度的一半。
5.根据权利3所述的无线传感器网络信道接入和批量数据传输方法,其特征在于根据系统最大允许的传输时间计算的数据包数目具体为令Tmax为系统最大允许延迟时间,k为数据包和确认包的传输速度,Ldata为数据包长度,Lack为确认包ACK2的长度,tsifs为两个连续的数据包间隔,则(Ldata/k+tsifs) XNlmt+Lack/k=Tmax,故Nlmt= (kXTmax-Lack)/(Ldata+kXtsifs)。
全文摘要
本发明公开了一种无线传感器网络信道接入和批量数据传输方法,通过测量节点缓冲区中数据包的数目估计当前的拥塞程度,并根据拥塞程度设置前导包的时间间隔,使得拥塞越严重的节点其前导包的平均时间间隔设置越小,在进行前导包发送的时候有更多机会赢得发送权;在获得发送权后,发送节点通过控制包交互获取接收节点当前的缓冲区信息,并计算本次批量数据传输优化的数据包数目,一次发送多个数据包给接收节点。该方法能够平衡数据包在网络节点之间的分布,缓解和解决拥塞引起的丢包和网络性能下降问题从而能够有效提高网络传输效率。
文档编号H04W52/02GK102685780SQ20121015173
公开日2012年9月19日 申请日期2012年5月16日 优先权日2012年5月16日
发明者姚国良, 邹志烽 申请人:姚国良
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1