一种无线传感器网络节能MAC的实现方法技术领域
本发明涉及无线传感器网络相关技术领域,尤其涉及一种新的无线传
感器网络节能MAC(媒体接入控制)的实现方法。
背景技术
采用节点周期睡眠机制的典型协议SMAC(睡眠媒体接入控制),其
基本思想是:节点周期睡眠以减少空闲监听,苏醒后通过物理/虚拟载波监
听信道,判断信道是否空闲或者是否需要接收数据。具有相同睡眠周期表
的节点形成一个虚拟簇,并由簇头周期性地同步该簇的睡眠时间表,既保
证了相邻节点调度周期同步,又满足可扩展性。为了避免冲突和串音,
SMAC采用与802.11类似的物理/虚拟载波监听以及握手RTS/CTS(请求
发送/Clean To Send清除发送)机制。SMAC成功实现了周期睡眠调度,
明显地减少了空闲监听,能够较好地满足无线传感器网络的节能需求。随
后众多工作在此协议基础上展开,如TMAC(Time-MAC)同样采用了睡
眠机制,不同的是,虽然TMAC中保持了固定的周期长度,但节点监听时
间会根据信道情况进行调整,从而改变睡眠时间的长度;PMAC
(Pipelining-MAC)通过网络流量信息自适应地调整睡眠时间;DMAC
(Data-MAC)针对SMAC中存在的睡眠延迟,提出了数据成树形汇聚的
通信方式,根据树状结构调整节点睡眠时间。
此类方法需要节点周期的进行簇内同步,由同步所带来的额外节点能
耗不能忽略,因此在节能方面具有一定局限性。SMAC协议的占空比固定,
且需要定期更新睡眠时间表,当网络负载较小时,同步所消耗的能量较大。
SMAC的改进版本采用了自适应监听机制将睡眠延迟减少了一半以上,但
周期睡眠造成的传输延迟仍然十分显著。
发明内容
为了解决现有技术中问题,本发明提供了一种无线传感器网络节能
MAC的实现方法,源节点有数据包需要发送时进行载波监听:如果信道
繁忙,则退避一段时间再侦听,如果信道空闲,则源节点向目标节点发送
RTS,目标节点收到RTS,做好接收数据的准备并发送CTS给源节点,源
节点收到CTS后将数据发送至目标节点,目标节点收到数据后返回一个
ACK(接收确认),源节点在收到ACK后,将继续传送数据,并由目标节
点返回ACK,直到数据传送完毕。
作为本发明的进一步改进,节点A,B(为源节点)同时发送RTS竞
争信道,如果A的第二个RTS来的较B早,A争得信道,并随机发送RTS,
直到目标节点给予CTS回复,如果在最大周期时间Tf内,目标节点没有
给CTS回复,源节点则退避一段时间后,重新竞争信道。
作为本发明的进一步改进,随机发送RTS,在时间上有如下边界限制:
Tct<Trts<Tld,其中:Trts为两个RTS帧之前的时间间隔;Tld为目标节点
的监听时间;Tct为目标节点收到RTS后,CTS帧持续时间Tcts与节点收发
转换时间Tta之和,即:Tct=Tcts+Tta。
作为本发明的进一步改进,节点的睡眠周期有如下限制:tld<Td≤Tdr
其中Tdr是最大睡眠周期,tld是固定监听时间。
作为本发明的进一步改进,源节点发送的RTS,目标节点发送的CTS、
ACK中都包含有NAV,其中记录了对传输所需时间的估计,其他无关节
点收到这些帧后即刻进入睡眠并根据NAV来制定新的睡眠表。
本发明的有益效果是:本发明所提出的MAC协议具有随机睡眠机制、
异步接入、随机RTS等特点,避免了同步所带来的能量损耗,减少了由
RTS引起的冲突,延迟比SMAC减少了1/2。DRMAC协议是对现有的带
同步睡眠机制的MAC协议的一种改进,相较于SMAC,DRMAC可以更
好的应用在能量消耗要求小,延迟要求不高的WSN中。
附图说明
图1是本发明DRMAC协议的竞争机制与退避规则;
图2是本发明随机RTS机制竞争信道;
图3是本发明数据发送模式;
图4是本发明能耗参数示意图;
图5是本发明延迟与睡眠周期的关系;
图6仿真中网络拓扑结构图;
图7不同跳数下三种协议能量消耗比较,发包间隔为3s;
图8发包间隔与能量消耗的关系;
图9发包间隔1s时跳数与能量消耗的关系;
图10DRMAC与其他协议不同跳数下的延迟;
图11发包间隔与一跳平均延迟关系。
具体实施方式
下面结合附图对本发明做进一步说明。
DRMAC(双随机媒体介入控制Double Random MAC)协议的竞争机
制以及退避规则:
DRMAC是一种采用双随机模式,介质异步接入的WSN MAC协议。首先,节点
有数据包需要发送时会进行载波监听,在监听一段时间后,如果信道繁忙,则退避一
段时间再监听。如果信道空闲,则向目标节点发送RTS,由于接入方式是异步接入,
源节点并不知道目标节点的睡眠时间表,无法得知该节点的活跃时间,为了让目标节
点能够在活跃时间内收到RTS,源节点需保证在目标节点活跃时间内发送了一个RTS。
如果目标节点收到RTS,它做好接收数据的准备并发送CTS,源节点收到CTS后将数
据发送至目标节点,目标节点收到数据后返回一个ACK,源节点在收到ACK后,
将继续传送数据,并由目标节点返回ACK,直到数据传送完毕,如图1所
示。源节点发送的RTS,目标节点发送的CTS、ACK中都包含有NAV(Network Allocation
Vector),其中记录了对传输所需时间的估计。其他无关节点收到这些帧后即刻进入睡
眠并根据NAV来制定新的睡眠表。
当发送的数据为编码组合包时,包中的MAC接收地址将对应多个接收节点,节点
通过如上所述的方式竞争获得信道,与之不同的是,该节点需等待所有的接收节点均
处于接收状态时,才通过伪广播的形式发送数据包,在这种情况下增加了额外的等待
延迟,在本章后面章节将对增加的延迟进行分析。
异步接入方式有以下几个优点:
1)节省了周期同步的开销。在网络吞吐量较小时(事实上很多情况如此,节点可
能在相当长的时间内都没有工作任务),周期睡眠机制带来的开销相对与网络总开销来
说占的比重将是很大的。
2)吞吐量较大时,异步接入可以更好的避免信道堵塞。采用周期同步的网络,如
果在一个周期内有多个节点需要发送数据,由于周期同步节点的睡眠/活跃时间的一致
性,使得这些节点需要在相同的时间内去竞争信道,这样将导致网络信道的繁忙,也
增大了信道堵塞的概率。
3)节点的监听时间得到缩减。在SMAC中,节点的监听时间需要保证同步更新时间和
接收RTS的时间。而对于异步接入方式如DRMAC,仅仅需要保证能够接收到RTS的
时间。
DRMAC中的随机RTS机制分析:
传统的竞争机制较好的避免了因信道竞争带来的冲突。假设两个节点需要向同一
目标节点发送数据包,则节点在监听与退避后将会对目标节点发送RTS。如果发生了
冲突,则节点根据退避规则退避一段时间后,再次发送RTS,直到其中之一竞争到信
道为止。本文所定义的随机RTS,继承了传统信道竞争退避机制的优点,并且通过重
复发送RTS来获得目标节点的接入权。假设两个节点同时发出RTS帧,并同时进入监
听,由于第一个RTS发生了冲突,节点将发送第二个RTS来竞争信道,如果两个节点
发送RTS的时间间隔相同,则会导致冲突始终存在,介于此,本文采用随机RTS模式,
避免了上述情况的发生。如图2所示:
节点A,B同时发送RTS竞争信道,由于A的第二个RTS来的较B早,A争得信
道,并随机发送RTS,直到目标节点给予CTS回复,如果在最大周期时间Tf内,目标
节点没有给CTS回复,源节点则退避一段时间后,重新竞争信道。
时间上随机产生的RTS有如下边界限制:
Tct<Trts<Tld (5-1)
其中:Trts为两个RTS帧之前的时间间隔;Tld为目标节点的监听时间;Tct为目标节点
收到RTS后,CTS帧持续时间Tcts与节点收发转换时间Tta之和,即:
Tct=Tcts+Tta(5-2)
(5-1)式所规定的边界限制一方面通过Tld上界保证了在一个睡眠周期内,目标节点能够
收到RTS;另一方面通过Tct下界保证发送节点不会因为过度频繁发送RTS而错过接收
CTS。
DRMAC中的随机周期睡眠机制分析:
睡眠周期同步的MAC协议会带来额外的能量开销,主要有以下两点:
(1)需要虚拟簇头在每个睡眠周期都发送同步信号,并且跟随节点需要发送自己
的睡眠时间表,以保证有新的节点加入时能够得到睡眠时间表并与周围节点同步,这
样产生了同步开销。
(2)在某些区域,节点能够收到两个虚拟簇头发布的时间表,这样为了保证两个
区域间能够通信,这些重叠覆盖区域中的节点需要遵循两个睡眠时间表的活跃时间中
保持收发状态,从而导致能量消耗。
采用异步睡眠周期可以避免上述的能量开销,但对于个别的一跳传输过程可能会
增加时延。然而与SMAC中的同步睡眠周期相比,异步睡眠方式能够有效减小全局的
平均时延。本文采用的是异步睡眠机制,即待发送数据的节点并不知道待接收数据节
点的睡眠时间表,每个节点的苏醒时刻是随机的,即在一个节点醒来以后,经过固定
监听时间再次进入睡眠,睡眠时间是在区间(0,(Tdr-tld)]上的随机数。其中Tdr是最大睡
眠周期,tld是固定监听时间,节点的睡眠周期有如下限制:
tld<Td≤Tdr (5-3)
(5-3)式所规定的边界限制一方面通过tld下界保证了在结束一个监听时间后不会立即进
入另一个固定监听时间内;另一方面通过Tdr上界规定了两个监听时间的最大时间间
隔。
SMAC和DRMAC的性能分析:
能耗分析:
在WSN的MAC协议设计中,能量消耗的大小是衡量一个MAC协议是否优秀的
主要因素。本文在背景条件相同的情况下对DRMAC和SMAC的能耗进行了比较,从
理论分析来看,DRMAC协议的能耗较小。
下面的表格是分析时需要考虑的参数,包括环境参数、协议参数、节点能耗参数,
并选择了由Chipcon公司生产的cc2420芯片参数作为参考,为使分析简单化,这里仅
考虑一次点到点通信的能耗。
表5-1能耗分析参数设置
节点能耗参数定义
在环境参数中,这里设置了两个节点,分别负责发送与接收,发送模式为每隔m
秒发送一个数据包,总共发送数量为N个,如图3所示;协议参数中,DRMAC协议
的睡眠周期是随机的,这里给出的Dd值为统计值。由于SMAC需要做周期的同步,在
周期监听时间内需要预留出同步时间,因此DRMAC的周期监听时间要比SMAC短;
在节点能耗参数中,定义了能耗公式中会用到的一些参数,其中监听能耗与睡眠能耗
因为与时间长短有关,这里使用功率来表示。而对于收发控制包、数据包来说,节点
所消耗的能量理论上是固定的,因此这里用能量单位来描述,如图4所示。
1.1.1.1SMAC能耗分析
WSN的MAC协议能耗主要包括监听能耗、睡眠能耗、收发模式的能耗以及监听/
睡眠转换能耗,对于其他一些能耗比如计算能耗,由于本章关注的是MAC协议的能耗
问题,且相对而言较小,在此不予考虑,因此基于WSN的MAC协议能耗可用以下公
式表示:
EMAC=a1·Psl+a2·Pi+a3·Ptran+a4·Prec+a5·Psw(5-4)
其中ai (i=1,2,3,4,5)为时间系数;Ptran为发送功率;Prec为接收功率;Psw为睡眠/监听转
换功率。
SMAC采用固定周期的睡眠机制,每个周期需同步簇内的睡眠周期表。根据表5-1
的参数设置,SMAC的能耗公式如下:
ESMAC=N·Ea+(N-1)·m·Psl+[(N-1)·m-2tn·N]·Pi
+[(N-1)·m/2tl]·Etc+[(N-1)·m/2tl]·Erc (5-5)
+[(N-1)·m/tl]·Ew
其中:ESMAC为节点A和B的总能耗;Ts为SMAC的睡眠周期;tn为完成一次数据传
输所需要的时间。
在式(5-5)中,NEa为节点A和B之间传输N个数据包所消耗的能量,(N-1)·m·Psl
为睡眠能耗,[(N-1)·m-2tn·N]·Pi为节点的监听能耗,Etc、Erc相关的能耗是同步控制
包所产生的,而其他控制包如RTS、CTS所产生的能量消耗已包含在Ea中,Esw为节
点周期性睡眠/监听转换的能量消耗。
1.1.1.2DRMAC能耗分析
DRMAC采用随机周期的睡眠机制,并不需要做周期同步,DRMAC的能耗公式如
下:
E DRMAC = N · E a + m · ( N - 1 ) · ∫ 0 3 t l p ( T d ) · T d · dT d t ld + ∫ 0 3 t l p ( T d ) · T d · dT d · P sl + N · ∫ 0 3 t l p ( T d ) · T d · dT d ∫ T ct t l p ( t randRTS ) · t randRTS · dt randRTS · E tc ]]>(5-6)
+ [ 2 m · ( N - 1 ) · t ld t ld + ∫ 0 3 t l p ( T d ) · T d · dT d - t n · N + N · ∫ 0 3 t l p ( T d ) · T d · dT d ] · P i + 2 ( N - 1 ) · m t ld + ∫ 0 3 t l p ( T d ) · T d · dT d E sw ]]>
其中:EDRMAC为节点A和B的总能耗;Td为DRMAC的睡眠时间,是区间(0,3tl]上的
随机变量,服从均匀分布;tld为DRMAC的监听时间;trandRTS为节点A发送RTS的时
间间隔,是区间[Tct,Tld]内的随机变量,服从均匀分布;Etc是节点A向节点B发送多
余的RTS数据包所造成的。将上式重写如下:
E DRMAC = N · E a + 2 m · ( N - 1 ) · ( T dr - t ld ) T dr + t ld · P sl + N · ( T dr - t ld ) t ld - T ct · E tc ]]>(5-7)
+ [ 4 m · ( N - 1 ) · t ld T dr + t ld - t n · N + N · ( T dr - t ld ) 2 ] · P i + 4 ( N - 1 ) · m T dr + t ld · E sw ]]>
将表5-1中的睡眠周期参数代入上式,可以得到下式:
EDRMAC=N·Ea+1.5(N-1)·m·Psl+[0.5(N-1)·m-tn·N+1.5N·tl]·Pi (5-8)
+3N·tl/(0.5tl-Tct)·Etc+[(N-1)·m/tl]·Esw
从芯片的能耗参数可以看出增大睡眠时间,减少空闲监听时间和收发控制包的次
数,能够有效的节省能量消耗。收发模式下的电流量较大,但由于其持续的时间较短,
因此这并不是影响网络能耗最主要的参数。对于无线传感器网络来说,网络的数据量
相对来说较小,在相同的网络吞吐量下,能量的节约主要是依靠减少空闲监听时间。
从以上两式可以看出,DRMAC增加了睡眠时间,即增加了睡眠能耗,这意味着空闲
监听的时间得到了减少。
以cc2420芯片为例,每隔4秒节点A向节点B发送一个数据包,总共发送数量为
51个,tl为200ms,Tct、tn都为较小量,对能耗结果影响不大,因此这里不予考虑,两
个协议的能耗分别为:
ESMAC=51Ea+200Psl+200Pi+500(Etc+Erc)+1000Esw(8)
EDRMAC=51Ea+300Psl+115.3Pi+306Etc+1000Esw(9)
在以上两式中,DRMAC的监听能耗约为SMAC的57.6%,而在控制包的能耗上节约
了近70%。因此,DRMAC的能量消耗是要比SMAC小。
延迟分析:
数据包通过一个多跳无线网络,每一跳通常会产生如下延迟:
载波监听延迟:节点载波监听时产生的延迟;
传输延迟:与信道的带宽,包的长度和编解码方法有关的时间量;
传播延迟:由节点之间的距离决定;
处理延迟:由接收节点处理收到的数据包所产生的时间,其主要是由节点处理能
力与数据处理算法决定;
包排队延迟:主要由信道任务量是否重决定,在信道繁忙时,排队延迟在总延迟
中所作比重较大。
802.11采用的MAC机制包含以上的延迟,这是竞争协议固有的。本文提出的
DRMAC协议也具有以上的时延,并且有一个附加时延——睡眠时延。
对于信道使用频率很低且没有采用睡眠机制的无线网络,一个数据包传递N跳的
总时延应该为:
D ( N ) = Σ n = 1 N ( t cs , n + t td ) - - - ( 10 ) ]]>
其中:tcs,n为第n跳时载波监听延迟;ttd为传输延迟,其为固定值。
以上网络的N跳延迟的期望为:
E[D(N)]=N(tcs+ttd)(11)
从上式可以看出,对于没有睡眠延迟MAC协议来说,网络多跳延迟是随着N值呈线
形增加的。
1.1.1.3带睡眠机制的MAC协议延迟分析
对于具有睡眠功能的MAC协议来说,不可避免的会引入睡眠延迟ts,因此,第N
跳延迟应该为:
Dn=tcs,n+ttd+ts,n(12)
其中ts,n为第N跳时的睡眠延迟。一个节点在收到数据包后,将做好准备发送。假设节
点的睡眠时间是一致的,如SMAC,那么待发节点需要等待下一个节点处于正常接收
时才能传送数据。
从图5可以清晰地看出各个延迟与睡眠周期的关系。我们分析一下第N跳的时延:
首先,节点A想给另一个节点B发送数据,那么它需要等待节点B的下一次苏醒,这
时产生的时延为Ts,n。然后节点A竞争信道并传输数据,这里产生了时延Tcs,n+Ttd。这
时节点经过RTS-CTS-DATA-ACK收到数据,需要的时间为Tad,在节点B收到数据后,
将重复上述的过程,它需要等待的睡眠时延为Ts,n+1。
因此,第N跳时节点的睡眠延迟应该为:
ts,n=Tf-tcs,n-1-ttd-tad (13)
则有:
Dn=tcs,n+Tf-tcs,n-1-tad(14)
由上式得到总时延为:
D ( N ) = Σ 1 N D n = t s , 1 + t td + t cs , n ]]>(15)
+ ( N - 1 ) · ( T f - t ad ) ]]>
那么N跳带周期睡眠机制的MAC的平均时延为:
E[D(N)]=E[ts,1+ttd+tcs,n+(N-1)·(Tf-tad)]
=Tf/2+ttd+tcs+(N-1)·(Tf-tad)(16)
其中Tf为SMAC的睡眠周期。
1.1.1.4DRMAC随机睡眠机制的延迟分析
由于信道竞争过程在待收节点活跃之前已经完成,所以延迟中将不包括载波监听延迟。
则第N跳得延迟及N跳得总延迟为:
Dn=ts,n+ttd (17)
D ( N ) = Σ 1 N D n = N · ( t td + t s ) - - - ( 18 ) ]]>
由式(18)可以看出,D(N)是随跳跃次数N呈线性增加的函数。它的期
望为:
E[D(N)]=N·(ttd+E[ts]) (19)
ts是睡眠延迟,它在区间(tl,T)上服从均匀分布,则有:
E[D(N)]=N·ttd+(N/2)·(Tdr-tl) (20)
该协议的平均延迟E[D(N)]是N的线性函数,ttd是传输时延,其相对于最大睡眠周期T
来说是一个很小的量,在这里可以忽略不予考虑。相比于SMAC的平均延迟,加权因
子由N减小到了N/2,假设最大睡眠周期Tdr与SMAC睡眠周期Tf相等,由于tad大于
tl,当N足够大的情况下,DRMAC协议的延迟小于SMAC延迟的1/2。
1.2仿真分析
本文使用网络仿真软件NS-2对DRMAC进行仿真试验。仿真参数设置如表2所示。
仿真网络中有8个节点n1-n8,拓扑结构如图6所示,节点的通信范围为250米,范围
内所包含的节点数最少为1个,最多为4个。图中标出了仿真中的传输链路,
n3-n8-n1-n7-n5-n6这条链路根据仿真中跳数的需要进行调整,另一条链路是n4-n8-n2。
两条链路在节点n8处交汇,这种拓扑结构具有一定的普遍性,可以较好地体现协议的
优缺点。下面本文对仿真数据进行具体的分析。
表2NS-2仿真参数
发送功率
24.75mw
接收功率
13.5mw
空闲监听功
13.0mw
睡眠功率
0.015mw
数据包长度
50bytes
路由协议
AODV
传输距离
250m
图7给出了在不同的跳数下三个协议能量消耗情况。从图中可以看出,DRMAC能耗
最小,只有SMAC能耗的70%。由于没有采用睡眠机制,802.11协议的能耗明显大于另
两种协议,但多跳对能量消耗影响并不大,每多一跳,仅仅增加了一次
RTS-CTS-DATA-ACK能耗;而采用睡眠机制的SMAC和DRMAC,随着跳数的增加,能
量消耗相比802.11上升较快,其中SMAC增加了额外的监听开销,而DRMAC由于随机睡
眠时间,使得网络增加了额外的RTS开销。
图8给出了在不同的发包时间间隔下,DRMAC节点能量消耗情况。由于802.11协议
不同跳数对能量消耗影响不大,这里只给出了3跳的曲线,而SMAC与DRMAC分别给出
了1、3、5跳链路的曲线图。从图中可以看出,在发包间隔时间为1秒时,随着链路跳数
的增加,SMAC显然将过多的能量消耗在数据包重发和同步更新上,网络吞吐量下降,
而DRMAC很好地满足此种情况,如图9所示。
SMAC和DRMAC由于采用了睡眠机制,与802.11相比不可避免地增加了延迟。从图
10可以看出,当跳数较少的时候,SMAC与DRMAC的延迟很接近,当跳数为1时,根据
上面的公式,SMAC的延迟为Tf/2+ttd+tcs,DRMAC的延迟为ttd+(Tdr-tl)/2;由于ttd与tl都很
小,所以两者近似相等。在5跳的时候DRMAC与SMAC延迟的比值为0.58,已较为接近
最小理论值0.5。
发包间隔的不同,三个协议体现出来不同的网络延迟。如图11所示,发包间隔为0.3
秒时,两个协议的网络延迟都很大,而如果发包间隔小于0.3的话,比如0.1秒,SMAC
网络延迟将达到4.35秒,DRMAC则为2.52秒,显然这个级别的延迟对于一般的网络是无
法接受的。从0.4秒发包间隔以后,DRMAC延迟在0.2s左右,趋向于稳定,而SMAC由
于周期的睡眠与同步更新机制,导致了网络延迟较大,从图中可以看出,DRMAC较
SMAC在较小的发包间隔下保持了更小的网络延迟。
由于无线传感器网络的特殊应用背景,以往的网络协议无法满足需要,使设计新
的网络协议成为必要。由于WSN对能量消耗的苛刻要求,在设计协议时往往以牺牲延
迟来达到较低的能量消耗。本文所提出的DRMAC协议具有随机睡眠机制、异步接入、
随机RTS等特点,避免了同步所带来的能量损耗,减少了由RTS引起的冲突,延迟比
SMAC减少了近1/2。通过推论的推导与网络仿真试验,证明了DRMAC协议的优势以
及正确性。DRMAC协议是对现有的带同步睡眠机制的MAC协议的一种改进,相较于
SMAC,DRMAC可以更好的应用在能量消耗要求小的WSN中。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定
本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,
在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本
发明的保护范围。