一种在大量多跳无线节点下的自适应退避方法与流程

文档序号:14993891发布日期:2018-07-20 23:10阅读:264来源:国知局

本发明涉及无线通信技术领域,具体是一种在大量多跳无线节点下的自适应退避方法。



背景技术:

随着通信技术的快速发展,无线通信得到了极大的推动。由于无线通信无需大量繁复的布线,而且拥有不受环境约束、成本低廉、灵活快速等诸多优点,所以无线通信方式在工业上得到了越来越多的重视。

目前主要的无线通信模式一般分为两种,一种是同步模式,另一种是异步模式。在同步模式中,典型的技术就是时分多址(tdma)技术,主机通过广播给每个节点分配一个指定的时隙,然后相应的节点只在这个固定的时隙上发送数据,所以各个节点之间互不影响,但是这个模式相对比较固定,无法应对那些当外界环境突然发生变化,节点检测到异常需立即上报的情况。相对的,在异步模式下,节点不需要设计精确的同步时钟,发送数据不必经过主机的同意,当节点检测到异常变化时立即做出反应,但是各个节点发送数据可能产生碰撞,需要采取随机竞争的方式,解决这一问题目前主流的方式是采用载波侦听多路访问和二进制指数回退算法(beb)。

随着无线传感网的发展,考虑到如下一种应用场景:有大量无线传感节点,按照优先级分为高、中、低三个等级,其中高优先级的节点用于处理如告警类的信息,具有时延敏感特性,中优先级的节点处理普通的信息,低优先级的节点处理时延不敏感的信息,各个节点通过多跳队列的方式,即一个节点只转发一个子节点信息,将数据一路传送到主机节点。针对上述场景,一方面,由于有大量的节点,传统的竞争方式无法很好的降低发送数据的碰撞概率,另一方面,对三种不同优先级的节点采用相同的退避算法,无法体现节点的优先级,有失公平性。



技术实现要素:

针对现有技术存在的缺陷,本发明的目的是提供一种在大量多跳无线节点下的自适应退避方法,在有大量的无线传感节点的情况下,实现多跳节点与主机快速通信,降低大量节点发送数据时的碰撞概率,使得节点能够按照自身优先级高低来发送数据,并自适应的调整发送概率和退避窗口大小。

本发明为了实现上述目的,其所采用的技术方案按如下所述:

一种在大量多跳无线节点下的自适应退避方法,具体步骤如下:

1)根据节点自身的用处,按照优先级高、中、低,将节点分为三组;

2)在转发节点中,根据其多跳子节点中各优先级节点的数量进行分组,若其中高优先级节点数最多,则此分组为高优先级分组,同理得到中优先级分组和低优先级分组;

3)在节点准备发送分组数据之前,节点本身以发送概率pi决定是否发送,若节点发送高优先级分组,则pi=r(ph,1);若节点发送中优先级分组,则pi=r(pm,1);若节点发送低优先级分组,则pi=r(pl,1),其中r()表示产生随机数,ph,pm,pl分别代表高、中、低优先级节点发送概率取值范围的初始最小值,且ph>pm>pl;

4)假设退避窗口的取值范围为(0,bmax),若当前节点发送的为高优先级分组,则当前节点的退避时隙b=bhk×(1-fh×nh/(nh+nm+nl))×e-k+1,其中bhk=r(0,bmax/4);若当前节点发送的为中优先级分组,则当前节点的退避时隙b=bmk×(1-fm×nm/(nh+nm+nl))/k,其中bmk=r(bmax/4,3bmax/4);若当前节点发送的为低优先级分组,则当前节点的退避时隙b=blk×(1-fl×nl/(nh+nm+nl))/(k1/2),其中blk=r(bmax/4,bmax);其中fh、fm、fl分别表示优先级系数,nh、nm、nl分别表示高、中、低三个优先级分组的节点个数,bhk、bmk、blk分别表示高、中、低三个优先级分组在第k次发送时的基础退避时隙,k次分组重传的次数。

所述步骤3)中,若不允许发送,则ph,pm,pl分别等于前一次所取到的随机数pi,再以此作为下一次发送概率取值范围的下限,继续取随机数pi+1,来获取更大的发送概率;若允许发送,则将ph,pm,pl分别置为初始最小值,然后根据节点所属分组的优先级高低,分别执行不同的退避策略。

所述步骤4)中,若节点前一轮竞争失败,则对于不同优先级的分组,分别令bhk,bmk,blk的退避窗口的下限等于各自当前的bk,即节点在下一次准备重发时,分别使bhk=r(bh(k-1),bmax/4),bmk=r(bm(k-1),3bmax/4),blk=r(bl(k-1),bmax),然后重复步骤4)的过程,计算出相应的退避时间。

所述步骤4)中,若节点前一轮竞争成功,则在下一次有分组数据将要发送的时候,需要减小当前退避时隙,对于不同优先级的分组,分别使bhk=r(0,bh(k-1)),bmk=r(bmax/4,bm(k-1)),blk=r(bmax/4,bl(k-1)),然后重复步骤4)的过程,计算出相应的退避时间。

所述步骤4)中,若节点竞争成功,则此节点首先广播自己的id及握手信息,若有其他节点此时处于空闲状态,并收到了此节点的广播,则回复给此节点自己的id及检测到的rssi值;此节点从收到的空闲节点信息中选取rssi值最大的节点作为父节点,然后广播此次通信需要的时间t及父节点id;其中父节点收到带有自己id的信息后,对信息进行接收处理,其他处于退避状态的节点收到广播后,则根据其他节点发出的传输时间信息t以及本节点的优先级,计算睡眠时间ts,ts=t/(n/nh+nm+nl),其中n∈{nh,nm,nl},若本分组为高优先级,则n=nh,其他同理,随后节点进入睡眠。

本发明由于采用了如上的技术方案,与现有的技术相比,本发明有如下几个优点:

本发明中,采取三个优先级的分组方案,基本能够覆盖所有节点的类型,细化了节点的类型后,对不同类型的分组采取各自相应的措施,保证了每个节点传输数据的公平性。

本发明中,在节点准备发送分组前,设置一个发送概率p,在有大量节点的情况下,通过此发送概率限制节点的发送,降低了节点的总体竞争基数,从而降低了碰撞的概率,而且发送概率会随着发送的成功或失败自适应调整。

本发明中,高优先级分组设置退避窗口为(0,bmax/4),中、低优先级分组分别设置为(bmax/4,3bmax/4)和(bmax/4,bmax),这样就保证了高优先级分组能够得到较短的退避时间从而优先发送,中低优先级滞后发送。若中优先级分组产生的初始退避时隙比低优先组大,在少量重传后,经过计算,会使中优先级的分组生成更小的退避时隙,从而保证网络的公平性。

本发明中,若重传的次数越多,则会得到越短的退避时隙,保证节点数据的发送。

本发明中,同种优先级分组之间,若当前优先级分组中,相应优先级的节点数越多,即会得到越短的退避时隙。

本发明中,一方面,由于节点的碰撞概率降低,导致重传次数减少,能够降低节点的能耗;另一方面,某一节点成功发送后,其他节点能够根据发送分组的时间与自身分组特性设定自身的睡眠时间,从而降低了节点能耗。

附图说明

图1为本发明所述方法的总体流程图。

图2为本发明所述方法的发送概率自适应调整示意图。

图3为本发明所述方法传输过程示意图。

具体实施方式

下面结合附图,对本发明的具体实施例做进一步阐述。

一种在大量多跳无线节点下的自适应退避方法,其流程步骤如图1所示,具体步骤如下:

(1)节点从睡眠中醒来,判断节点自身是否有数据要发送,若没有数据要发送,则按原来的睡眠周期继续进行睡眠,若有数据需要发送,则侦听信道是否忙。若信道忙,则继续睡眠;若侦听到信道空闲,则节点准备发起竞争。

(2)将每个节点分为高、中、低三个优先级,随后节点根据自身数据队列,计算子节点队列中三种优先级节点的个数,按照不同优先级节点的比重,将传输的分组分为高、中、低三个优先级,在数据帧头中,用2比特标志位进行区分,若子节点中高优先级节点数最多,则此分组为高优先级分组,用00表示;若子节点中中优先级节点数最多,则此分组为中优先级分组,用01表示;若子节点中低优先级节点数最多,则此分组为低优先级分组,用10表示;11暂为待定。

(3)若节点侦听到信道空闲,则开始执行本方法。根据不同的优先级分组,产生不同的发送概率pi,若节点禁止发送,则直接进入睡眠,下一次产生的发送概率pi+1,如图2所示。若节点允许发送,则节点在执行退避的过程中侦听到了其他节点的发送信息,则根据其他节点发出的传输时间信息t以及本节点的优先级,计算睡眠时间ts,ts=t/(n/nh+nm+nl),其中n∈{nh,nm,nl},若本分组为高优先级,则n=nh,其他同理,随后节点进入睡眠。若没有侦听到其他节点信息,则开始退避发送。

(4)若节点开始退避,那么将退避窗口设置为(wmin,wmax),从中取随机值,作为基础退避时隙bk=r(wmin,wmax)。当节点竞争失败时,将退避窗口变化为(bk,wmax),所以下一次的基础退避时隙bk+1=r(bk,wmax)。当节点竞争成功时,退避时隙的需要减小,则下一次的基础退避时隙bk+1=r(wmin,bk)。然后将基础退避时隙乘以队列长度权值qa,再乘以重传次数权值函数r(k),即得到最终的退避时隙b=bk×qa×r(k)。

(5)若节点发送高优先级分组,则wmin=0,wmax=bmax/4,qa=1-fh×nh/(nh+nm+nl),r(k)=e-k+1;若节点发送中优先级分组,则wmin=bmax/4,wmax=3bmax/4,

qa=1-fm×nm/(nh+nm+nl),r(k)=k;若节点发送低优先级分组,则wmin=bmax/4,wmax=bmax,qa=1-fl×nl/(nh+nm+nl),r(k)=k1/2。从中可以看出,随着优先级的增高,重传次数权值函数r(k)在[1,+∞)上的递减速度逐渐加快,这就保证了节点优先级越高,退避时隙越短。此外,从qa中可以看出,在相同优先级的条件下,与此优先级相同的节点所占的比重越大,能够得到越短的退避时隙。

下面以图3中具体的例子来阐述一下本方法的大致流程:

步骤1:设节点3、4、5、6、7、9有数据需要进行第一次通信,如图3(a)所示。

步骤2:计算每个节点中高、中、低子节点的个数,随后对此分组划分优先级。3节点子队列中有6个高优先级节点,则为高优先级分组;4节点子节点中,有3个高优先级节点,1个中优先级节点,则为高优先级分组;以此类推,5为中优先级分组,6为低优先级分组,7为低优先级分组;9中有2个高优先级节点,2个中优先级节点,1个低优先级节点,若高、中比重相同,则取高优先级,所以为高优先级分组。

步骤3:根据每个节点的优先级分组,各节点产生各自的发送概率。假设按图2所示,每个节点产生的发送概率为p30=0.9,p40=0.8,p50=0.6,p60=0.3,p70=0.4,p90=0.7。每个节点再各自产生一个0到1的随机数与各自的发送概率进行比较,若小于其发送概率,则此节点可以进行竞争。假设节点3、4、5、9满足条件,能够参与竞争。

步骤4:设bmax=128,那么3、4、5、9四个节点产生的初始退避时隙分别为12、18、56、8。那么经过步骤(5)中公式计算,设fh=0.7,fm=0.4,fl=0.2,得到b3=3,b4=8,b5=33,b9=5;所以节点3退避时间最短,赢得竞争最先发送。

步骤5:节点3向周围广播自己的id信息,如图3(b)所示,在节点3的发送范围内,只有节点1、2处于空闲状态,那么节点1、2分别收到节点3的消息后,计算信号的rssi值,并将其与自己的节点号返回给节点3,如图3(c)所示。

步骤6:节点3收到节点1、2的返回信息后,因为节点1离节点3较近,所以收到的rssi值比较大,所以选择节点1为自己的父节点。随后节点3广播此次通信需要的时间t及其父节点id=1。

步骤7:当父节点1收到带有自己id的信息后,准备对随后发送的信息进行接收处理。节点4、9收到广播后,按照广播的通信时间t,结合自己所处的优先级分组,分别设定合适的睡眠时间,然后进行睡眠;节点5由于无法收到节点3广播的通信时间,所以等到退避时间结束后自动进入睡眠;节点6、7由于没有发送权限,所以直接睡眠;空闲节点2收到与自己id不相同的数据,不做任何处理,过程如图3(d)所示。

步骤8:节点3与父节点1之间开始进行通信,每发送一组数据,父节点都回复一个ack,直到分组数据发送完毕,则此轮通信结束,如图3(e)所示。

步骤9:开启新一轮通信,假设节点4、5、6允许发送,其中4、5节点是第二次发起竞争,所以初始退避时隙均比前一次大,且k=2;而节点6是第一次发起竞争,初始退避时隙为相应优先级分组所对应的退避窗口中的随机值,且k=1,那么假设它们的初始退避时隙分别为20、60、80,则经过计算后b4=3,b5=18,b6=64。所以节点4竞争成功,开始发送数据,跳回步骤5继续向下执行,其他过程不变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1