发明内容
本发明所要解决的技术问题是提供用于无线传感器网络的服务感知SQ-MAC协议的实现方法,通过自适应退避机制、伪调度机制、虚拟多队列公平调度机制使MAC协议在具有区分服务功能的同时,实现了低碰撞、低功耗和自适应的优点。
本发明为解决上述技术问题所采用的技术方案是:用于无线传感器网络的服务感知SQ-MAC协议的实现方法,采用周期工作机制,一个周期包括同步阶段、分配阶段和数据阶段;
在同步阶段,节点利用同步帧的交换形成虚拟簇,在网络初始化完成后,通过节点定期广播自己的同步帧,维持同一虚拟簇的时间同步;
在分配阶段,需要发送数据的节点与对应的目的节点通过交换对应的RTSn/CTSn完成时隙分配,其中使用的时隙数S由用户根据网络的节点密度进行设定,而分配阶段的时间长度与时隙数S成正比;在网络空载的情况下,协议预定了节点在网络无碰撞并且信道环境良好的理想情况下从竞争信道到成功发送RTSn所需的最长时间:T hall ,不需要发送数据的节点如果侦听到信道持续T hall 空闲,转入睡眠。
在数据阶段,协议将数据阶段分割成一系列大小相同的时隙,即数据阶段的时间长度等于时隙数S与时隙长度T st 的乘积;预约时隙成功的节点在对应的时隙唤醒进行数据交换;协议预定了一个控制帧等待时间:T wc ,为节点在理想情况下发送RTS/CTS控制帧所需的时间,若时隙预约失败,源节点在发送RTS后和目的节点在唤醒后需要对信道保持T wc 时间的空闲侦听,如果信道持续空闲,节点转入睡眠。
本发明所述的SQ-MAC协议采用伪调度机制、自适应退避机制和虚拟多队列公平调度机制进行管理。
本发明所述的伪调度机制为节点在分配阶段通过交换RTSn/CTSn完成时隙分配,每组相关节点拥有单独的时隙,从而实现在数据阶段的理论上的无碰撞通信。
本发明所述的自适应退避机制为节点根据业务和通信环境的不同在信道竞争过程中对竞争窗口(ContentionWindow,CW)进行调整;
所述的节点使用的调整过的竞争窗口进行信道竞争发送RTSn。
所述的虚拟多队列公平调度机制分为多队列机制和公平调度机制两部分;
所述的多队列机制为节点使用多数据队列的结构管理进入队列的数据包;
所述的公平调度机制数据为队列进行数据包的调度。
本发明所述的RTSn/CTSn为协议在分配阶段为实现时隙分配而定义的控制帧,包含节点所选时隙的信息。
本发明的有益效果是:本发明所述的SQ-MAC协议的实现方法在时隙分配的过程中通过伪调度机制实现无碰撞通信并且为高优先级业务提供更多的时隙用于数据传递;在信道竞争过程中采用自适应退避机制为高优先级业务提供较低的竞争窗口;在数据调度的过程中使用虚拟多队列公平调度机制保障高优先级业务的服务质量要求;从而使高优先级业务数据占用的更多的网络资源。
具体实施方式
如图所示,用于无线传感器网络的服务感知SQ-MAC协议的实现方法,采用周期工作机制,一个周期包括同步阶段、分配阶段和数据阶段;
在同步阶段,节点利用同步帧的交换形成虚拟簇,在网络初始化完成后,通过节点定期广播自己的同步帧,维持同一虚拟簇的时间同步;
在分配阶段,需要发送数据的节点与对应的目的节点通过交换对应的RTSn/CTSn完成时隙分配,其中使用的时隙数S由用户根据网络的节点密度进行设定,而分配阶段的时间长度与时隙数S成正比;在网络空载的情况下,协议预定了节点在网络无碰撞并且信道环境良好的理想情况下从竞争信道到成功发送RTSn所需的最长时间:Thall,不需要发送数据的节点如果侦听到信道持续Thall空闲,转入睡眠。
在数据阶段,协议将数据阶段分割成一系列大小相同的时隙,即数据阶段的时间长度等于时隙数S与时隙长度Tst的乘积;预约时隙成功的节点在对应的时隙唤醒进行数据交换;协议预定了一个控制帧等待时间:Twc,为节点在理想情况下发送RTS/CTS控制帧所需的时间,若时隙预约失败,源节点在发送RTS后和目的节点在唤醒后需要对信道保持Twc时间的空闲侦听,如果信道持续空闲,节点转入睡眠。
进一步,所述的RTSn/CTSn为协议在分配阶段为实现时隙分配而定义的控制帧,包含节点所选时隙的信息。
所述的SQ-MAC协议采用伪调度机制、自适应退避机制和虚拟多队列公平调度机制进行管理。
进一步,所述的伪调度机制为节点在分配阶段通过交换RTSn/CTSn完成时隙分配,每组相关节点拥有单独的时隙,从而实现在数据阶段的理论上的无碰撞通信。
进一步,所述的自适应退避机制为节点根据业务和通信环境的不同在信道竞争过程中对竞争窗口(ContentionWindow,CW)进行调整;
进一步,所述的节点使用的调整过的竞争窗口进行信道竞争发送RTSn。
进一步,所述的虚拟多队列公平调度机制分为多队列机制和公平调度机制两部分;
进一步,所述的多队列机制为节点使用多数据队列的结构管理进入队列的数据包;
进一步,所述的公平调度机制数据为队列进行数据包的调度。
由于高优先级的流媒体业务(以下用RT表示)对服务质量的要求较高,如果高优先级的流媒体业务拥有更多的时隙就会获得更多的发送机会,它的延迟、递送率等性能指标也会随之上升,本发明将数据阶段的时隙分为如图3所示的两部分:第一部分的时隙只分配给高优先级的流媒体业务使用,而在第二部分时隙高优先级的流媒体业务与低优先级的非实时业务(以下用NRT表示)都可以使用,也就是说高优先级的流媒体业务最多可以使用S个时隙,而低优先级的非实时业务最多只能使用C(S>C)个时隙,SQ-MAC协议根据应用的相关要求对不同业务类型占用时隙的比例进行划分。
伪调度机制简要工作过程如下所示,在分配阶段,需要发送数据的节点首先根据业务类型初始化时隙数X(业务类型对应的第一个可用时隙),这样节点的可预约时隙范围为[X,S],在侦听到其他节点的RTSn/CTSn后根据记录的信息进行判断:
1、检查控制帧记录的源节点和目的节点是否为自己的目的节点,如果是放弃本次时隙分配;
2、检查控制帧记录的目的节点是否为自己当前所属虚拟簇的节点,如果是就将控制帧记录的时隙数从当前可预约时隙中删除,如果当前可预约时隙数为0,节点放弃本次时隙预约。
节点成功接入信道后,将预约当前可预约时隙中最小的时隙,如果接收到目的地址为自己的RTSn,就发送对应的CTSn。
进一步,自适应退避机制为节点根据业务和通信环境的不同在信道竞争过程中对竞争窗口(ContentionWindow,CW)进行调整。
对采用CSMA/CA机制的竞争类MAC协议而言,源节点在竞争信道时需要使用CW进行随机退避,也就是说,节点接入信道的概率受到随机退避时CW大小的影响,节点的CW越小,节点越容易接入信道。SQ-MAC通过为不同优先级的业务设定不同大小的CW实现区分服务,此外,WSN的业务应用一般具有突发性,这就要求MAC协议要具有较好的动态适应能力,为此本发明针对高优先级的流媒体业务和低优先级的非实时的业务类型提出相对应的自适应CW算法。考虑到分配阶段的时间长度有限,节点在随机退避期间,如果侦听到其他节点发送的RTSn/CTSn,并不重置自己的退避计时器,而是暂时冻结退避计时器,经过伪调度机制分析后,如果需要继续竞争信道且分配阶段未结束,则在信道空闲后,恢复退避计时器。
算法1:竞争窗口(即CW)自适应算法伪代码:
1:CWcur=[CWmax+CWmin/2]
2:ObservetheresultofRTSnsend
3:IfRTSnSuccess
CWmod=int[rand[RTdown,1]]*(CWmin-CWcur)]
CWmod=int[rand[0,NRTdown]]*(CWmin-CWcur)]
4:IfRTSnFail
CWmod=int[rand[0,RTup]]*(CWmax-CWcur)]
CWmod=int[rand[NRTup,1]]*(CWmax-CWcur)]
5:CWcur=CWcur+CWmod
其中Cwcur为CW的当前值,Cwmin为CW的最小值,Cwmax为CW的最大值,节点根据每次在分配阶段RTSn的发送结果对CWcur进行动态调整,其中RTdown>NRTdown,RTup<NRTup,也就是说针对高优先级RT业务的CW增长的慢,减少的快,而针对低优先级NRT业务的CW增长的快,减少的慢,发送RT业务的节点始终拥有相对较高的概率接入信道。
进一步,虚拟多队列公平调度机制分为多队列机制和公平调度机制两部分。
协议将不同的业务类型划分为不同的优先级,我们可以选择将所有的业务放在同一个数据队列或者为每个业务提供单独的数据队列。如果使用如图4所示的单队列会出现队列过长的现象,节点需要消耗多余的资源进行管理。针对单队列调度的缺点,SQ-MAC协议采用如图5所示的虚拟多队列机制进行数据包管理,此外,协议使用先入先出队列规则,不需要进行数据包的检索。
在数据包调度过程中,节点如果每次都选取高优先级业务,会严重影响低优先级业务的延时和递送率,为此SQ-MAC根据数据包进入队列的时间,提出了一种公平数据调度机制。节点根据数据包的权重大小确定下一个发送的数据包。
算法2:数据队列权重算法伪代码
1:Recordthetimeofthedatapacketintothequeue(IT)
2:Weight=DW*IT
3:Checktheweightoffirstpacketineachqueue
4:Sendtheminimumweightofpacket
其中IT为数据进入队列时的时间,DW为协议为不同业务设定的队列变量,DW(RT)<DW(NRT),所以该算法既保障RT业务优先级的同时,避免NRT业务出现过度延迟的现象。
SQ-MAC协议性能理论分析
下面通过数学模型分析SQ-MAC递送率、时延、能耗等主要性能指标,在理论上分析该协议的性能。
递送率
在分配阶段SQ-MAC通过竞争接入信道进行时隙分配,从而实现在数据阶段的无碰撞数据交换,因此本节通过研究节点在发送RTSn/CTSn控制帧进行时隙预约时的退避过程,从而分析协议的递送率。
假设网络内w个传感器节点,信道条件理想,并且网络处于饱和状态(每个节点的队列中都有待发送的数据包)。论文假定时间t为单个退避时隙的时间长度,使用随机变量表示在t时刻CW尺寸大小,b(t)表示在t时刻CW的当前值,从而构建二维离散时间Markov链。其余参数定义如下所示:
k:CW的当前值;
c:CW随机变化后的尺寸大小,为一个不确定数;
a:CW发生随机变化的次数,为一个不确定数;
m:CW的最大值,m=CWmax;
n:CW的最小值,n=CWmin。
定义控制帧失败概率P:节点发送控制帧失败的概率,由于假定信道条件良好,所以接入信道发送失败的原因主要是因为分组碰撞,本文默认为一个常量。本节对节点的随机退避机制进行建模,如图11所示。在这个Markov链中,节点的状态由整数对定义,描述为如下:
控制帧发送前:
(1)
表示从状态到状态的转移概率,式(1)表示退避计时器在每个时刻t开始的时候减1。
控制帧发送后:
(2)
(3)
(4)
(5)
式(2)表示控制帧发送成功,c随机减少,k的值等概率的从选取。式(3)表示控制帧发送失败,c随机增加,k的值等概率的从选取。式(4)表示控制帧发送失败,但c已经到达最大值,k的值等概率的从选取。式(5)表示控制帧发送成功,但c已经到达最小值,k的值等概率的从选取。
由马尔科夫链的各态遍历性可知的平稳分布就是极限分布,所以定义极限分布:
(6)
为的平稳分布,则满足以下性质:
(7)
(8)
,(9)d为CW发生随机变化的次数,为一个不确定数。
根据马尔科夫链的正则性,可得的表达式:
(10)
将Markov归一化,所有的由和P表示,所以与P的关系式:
(11)
定义控制帧发送成功概率q:在网络稳定的状态下节点在随机选取的退避时隙发送控制帧的概率,理论上q等于节点在各个退避阶段的退避计时器递减为0并成功发送控制帧的概率之和。
(12)
这样的话,如果该网络内有w个节点,节点发送控制帧失败的概率等于在当前时隙剩余(w/m)-1个节点中至少有一个节点发送控制帧的概率,即控制帧发送失败的概率P为:
(13)
数据包的传输过程就是由节点间的转发完成的,所以数据包的递送率由单个节点发送数据包的递送率决定。节点在分配阶段完成时隙分配后,在数据阶段理论上实现无碰撞数据交换,所以节点发送数据的递送率由节点发送RTSn/CTSn控制帧的递送率q决定。对不同业务类型而言,由于RTdown>NRTdown,RTup<NRTup,即在CW增长过程中RT业务的d要大于NRT业务的d,而在CW减少过程中RT业务的d要小于NRT业务的d,所以P RT <P NRT ,即RT业务的递送率要大于NRT业务的递送率。
时延
本文假定在数据阶段实现无碰撞,数据包端到端时延就等于从数据包成功进入源节点数据队列到目的节点成功接收数据包之间的时间。
对RT业务而言,时延表达式如式(14)所示,其中,为RT业务的队列延迟;z为RTSn控制帧重传上限;T sync 为节点在同步阶段所需的时间;为工作周期时间长度;T st 为时隙时间长度。
(14)
对RT业务而言,时延表达式如式(15)所示,其中,为NRT业务的队列延迟。
(15)
由于协议采用了优先级队列,所以节点在进行数据调度时,RT业务与NRT业务相比,更容易被发送,即,此外根据伪调度机制的分析,得知。对比式(14)与式(15),发现不同优先级业务的时延也不相同,即。
能耗
节点最主要的无关能耗是空闲侦听,因此本节通过分析节点侦听时间来评估SQ-MAC的能耗。
在网络理想的情况下,对SA-MAC协议进行分析,其侦听时间如式(16)所示,其中,为节点在分配阶段所消耗的时间,包括侦听,退避和接收发送RTSn/CTSn的时间。
(16)
在网络空载的情况下,,因此节点的侦听时间为:
(17)
在网络饱和的情况下,发送单个数据包节点需要进行空闲侦听的总时间为:
(18)
分析得知,对不同优先级业务类型而言,能耗也不相同,在网络空载的情况下,由于节点只进行T hall 时间的空闲侦听,所以。在网络饱和的情况下,由于,所以。