一种多信道混合方式的无线传感器网络MAC协议
扫描二维码
随时随地手机看文章
引言
随着人们对周围信息的需求不断增大,无线传感器网络会被应用到各种环境之中。无线传感器网络所承载的信息也会也来越多,对网络的实时性及带宽会要求更高。由于无线传感器网络中的节点是由电池供电,能量有限,为了维持节点较长的生命周期,很多MAC协议忽视了网络对实时性及带宽的需求。事实上,必须重新考虑协议的设计,使网络既能保持较长的生命周期,又能减少延迟,兼顾实时性和吞吐量。
1相关工作
目前的无线传感器网络MAC协议按信道类型分为单信道与多信道。单信道类型的MAC协议的所有节点都在一个信道上,节点要监听信道的状态,在信道空闲时传输数据。而多信道则将一个频段分为多个小的信道,节点可以有选择地选择其中的一个或多个进行数据接收与传送。这样就可以在一个时间片槽内传输多路信息,提高了网络的带宽与吞吐率。显然,多信道的协议设计更能满足网络对数据传输量的需要。
无线传感器网络的MAC协议的信道访问策略主要有基于竞争的方式、基于调度的方式以及混合的方式。竞争方式的协议简单,利于实现,不需要全局网络信息,拓展性良好,但节点需要监听信道的状态,长时间的无用的监听浪费了节点的能量。基于调度的方式可以分时槽地进行数据传输,减少了无用的监听及数据的冲突,节省了能量,但基于调度式的方法实现复杂,需要时间同步,拓展性不好。而混合了两种方式的混合协议可以吸取它们双方的优点,再通过适当的组合方式尽量减小它们的弱点对网络性能的影响。
在无线传感器网络领域,S-MAC协议是最为经典的基于竞争方式的MAC协议。S-MAC协议采用了睡眠周期的方式来节省能量,极大地提高了网络节点的生存周期。之后的T-MAC协议在S-MAC协议的基础上调整了睡眠周期的时间长度,使睡眠周期随着网络状态可变,提高了节点的能量利用^adjustE0E1E2E3Sleep效率。EM-MAC是一种多信道的基于调度方式的MAC协议,它采用接收端初始化与提前唤醒的调度方式,节省了能量。ZMAC是一种结合CSMA与TDMA方式的混合协议。在网络低负载时,采用CSMA的方式,提高信道利用率,减少时延。在高负载时,采用TDMA的方式,减少对信道的过度竞争产生的冲突与拥塞。IEEE802.15.4定义的MAC协议也是一种典型的混合方式的MAC协议,它在超帧的状态下将工作周期分为两个阶段,即信道竞争接入阶段(ContentionAccessPeriod)和信道非竞争阶段(ContentionFreePeriod)。这种帧格式的方法较为灵活。
2协议设计
2.1帧结构
本协议借鉴IEEE802.15.4的超帧格式,将超帧分为三个阶段,分别为信标阶段(Beacon)、活跃阶段(Active)和睡眠阶段(Sleep)。在信标阶段,汇聚节点广播信标数据包。在活跃阶段里,又分为两个周期,为竞争访问周期(ContentionAccessPeriod,CAP)和调度访问周期(ScheduledAccessPeriod,SAP)。在竞争访问周期,采用带冲突避免的载波监听多路访问(CSMA/CA)的方式接入信道。在调度访问周期,采用时分多路访问(TDMA)的方式接入。超帧结构示意图如图1所示。
图1超帧结构示意图
信标帧在超帧的最前端,标志着超帧的起始界限。本协议的信标帧除了包括自身的基本信息,如地址(Add)、类型(Type)、长度(Len)和校验信息(CRC)外,还携带了多样的控制信息(ControlMessages),减少了节点发送数据包的数量,降低了数据冲突的概率,节省了能量。信标帧包含了竞争访问周期分配长度(CAPAssignList)和调度访问周期分配长度(SAPAssignList)及上次传输给汇聚节点的帧的确认信息(ACKMessages)。另外,信标帧还包含对活跃阶段和睡眠阶段的时间长度的动态调整信息列表(AdjustMessagesList)。信标帧的结构示意图如图2所示。
2.2节点活跃与睡眠阶段的动态调整
无线传感器网络中的节点能量有限,所以采用工作与睡眠交替进行的方式来节省能量。在活跃阶段,节点感应实时信息,并将感应信息发送给汇聚节点,同时节点也可以接收汇聚节点或其他节点发来的信息并进行转发。而在睡眠阶段,节点则进入到低功耗状态,不接收和发送信息。但是,在很多情况下固定地分配这两种状态的时长会影响节点发送数据的实时性,导致一些重要信息的延迟,因而需要进行动态的调整。
图2信标帧的结构示意图
在本协议中,用Tmm代表活跃阶段的时长,T;ct,ve代表下一个工作周期活跃阶段的时长,E。、E1、E,、E3分别代表感知事件。设置两个参数Adjust和TPlan,分别代表两个时间变量。初始时,设定Tplan=0.3Tactive»Tadjust=0.2Tplan°对活跃和睡眠阶段的动态调整如图3所示,在7Pian之外有感知事件E。、E1发生,但在TPlan之内没有感知事件发生。说明感知事件发送得较早,那么应当可以减小激活周期,节省能量,则在下一次的工作周期中T,active=Tactive-Tadjust°在^plan之内有感知事件E2发生并且在Adjust之内没有感知事件发生,则说明感知事件正好在活跃周期内,下一次工作周期不做调整。在Adjust之内有感知事件E3发生,说明活跃周期过短,有可能会错过一些感知事件,则Tactive=Tlctive+Tadjust,T,active=Tactive+Tldjust°同时也要对下一周期的Adjust进行调整,保证感知事件的信息及时感应并发送出去,所以,下一周期要满足如下条件:
ust_^active—Tplan
^plan^active
按照这个比例调整,下一周期就会适当调大Tadjust,不会错过在活跃阶段边缘的感知事件,保证网络的实时性。
2.3信道状态估计算法
本协议中,在发送数据前要对信道状态有基本的估计。节点应尽量在信道状态较好的信道上进行收发数据,保证信息的及时到达,减少重传,达到节省能量与降低网络时延的目的。在节点内存中,通常可以通过维护一个信道状态表来确定信道状态。信道状态分为两类:好与坏。设置变量checknumber初始值为1,最大值为3。如果节点经一个信道连续发送两次信息都丢失,则checknumber减1:若连续发送成功5次,则加1。checknumber大于等于2,则信道状态为好。checknumber小于等于0,则信道状态为不好。如果checknumber为1,则采用马尔科夫链的方式预测下一个信道状态的好坏。
马尔科夫链是数学中具有马尔科夫性质的随机过程。在给定当前信息的情况下,过去(即当期以前的历史状态)对于预测将来(即当期以后的未来状态)是无关的。这里设定信道状态转换概率为Pv,i表示当前状态,j表示下一周期的信道状态。x(t)表示在t时刻的信道状态,那么信道状态概率可以记为:pi]=p{x(t)=i\x(t+\)=j}
这样,根据信道的状态空间E={0,1}(0代表信道状态好,1代表信道状态坏),就可以得到马氏链的一步转移矩阵:
PPooPoiP=IP10P111
前一周期信道状态好,下一周期的信道状态转移概率为P0j=P{x(t)=0|x(t+1)=]}。前一周期信道状态坏,下一周期的信道状态转移概率为P1j=P{x(t)=1|x(t+1)=]}。这样就可以选择较大的信道状态转移概率来对信道状态进行判断,并更新矩阵的概率。
2.4多信道调度
在调度访问周期,由于每个节点有多个信道,所以要让两个想要相互通信的节点在同一时刻的同一个信道上相遇,为此可以采用调度表的方式。首先在协议的初始化时期,所有节点在第一个信道采用竞争访问的方式进行收发信息。节点会采用将注册信息发送给邻居节点,然后再转发给汇聚节点。当邻居节点收到要转发的注册信息时,会发送收到信息的确认信息,那么节点就记住给它发送确认信息的节点的标示,找出自己的邻居节点。然后此节点向所有的邻居节点广播自己的信道调度表。信道调度表有五项元素组成,分别是信道序号(Chan)、时槽序号(Time)、信道状态(Status)、节点标识号(NodelD)和表标识号(TablelD)。在每一时刻的信道上,只允许两个节点正在通信,所以在信道序号与时槽序号交叉的单元中最多可以存放两个节点标识号。信道调度表如表1所列,在Time1时槽,Chan1信道上,节点1和节点2进行通信。
邻居节点根据自己的调度表在空闲的时槽随机选择时槽及信道,并更新自己的调度表,然后将信道调度表发回源节点。如果在这一时槽及这一时槽的信道都为空闲,则节点返回成功信息,然后就可以按调度表通信。若在这一过程中有其他节点先抢占了信道或时槽,则节点再次发送更新的调度表,直至完成,则可以进入调度访问周期进行通信。
表1信道调度表
TableID |
Chan1 |
Chan2 |
Chan3 , |
Chan16 |
Time1 |
1/2 |
Null |
Null |
Null |
Time2 |
Null |
2/6 |
Null |
Null |
Time20 |
Null |
Null |
Null |
1/3 |
status |
0 |
0 |
1 |
0 |
3仿真与实现
本文在NS-2平台下,进行了对本协议的仿真实验。同时在实现MCHMAC协议之后,还对ZMAC和单信道IEEE802.15.4MAC协议,从吞吐量和传输时延这两方面进行了比较分析。
3.1仿真参数设置
本实验在300mX300m的实验场景进行,选取节点数50,节点间最大通信半径15m。通信频段在2.4GHz,包大小在100~300b。路由协议均采用AODV协议,数据流生成工具选择生成CBR流。
3.2性能分析
网络吞吐量是网络性能的一个重要参数,是指在不丢包的情况下单位时间内节点可以接收的数据量,单位是b/s。一方面,由于MCHMAC采用多信道,做到了数据的并发,提高了网络的吞吐量。另一方面,信道调度算法降低了数据包的冲突率,减少了重传等事件发生的概率,所以相对来说提高了网络的吞吐量。另外,本协议在信标帧中携带收到确认信息,减少发送确认帧的时间,进而提高了网络中有效信息的吞吐量。为了计算网络的吞吐量,本文在NS-2当中分析Trace文件时,使用以下方式计算吞吐量:
TB(n)-TB(m)RT(n)-RT(m)
RT(n)是指第i个包的接收时间,TB(n)代表第n个分组被目的节点接收时已经传输的数据总量。公式表示计算从第m个分组到第n个分组的吞吐量,若m=1,则代表从第一个包开始计算,即计算网络的平均吞吐量。本文中通过增加发包速率来分析网络的吞吐量。在低发包速率下,网络的吞吐量差距不大,但随着发包率的增加,MCHMAC协议的吞吐量明显优于其他协议。具体仿真结果如图4所示。
网络传输时延也可以叫做端到端时延,它是网络性能的重要指标之一。本文中以分组发送和到达之间的时间间隔来计算传输时延,计算公式为:
D(i)=RT(i)-ST(i)
式中,D(i)表示第i个分组的传输时延,RT(i)表示第i个分组的接收时间,ST(i)表示第i个分组的发送时间。在文中,要分析网络的平均传输时延,平均传输时延D的计算公式为:
帧发送速率越大,网络的平均时延越大。MCHMAC协议的时延起伏较小,具体仿真结果如图5所示。
4结语
本文提出了一种多信道混合方式的MAC协议一一MCHMAC,釆用了动态调整活跃和睡眠周期,保证了网络的实时性,节省了能量。协议釆用了基于竞争和调度相结合的方式,并结合信道状态估计算法和信道调度表选择最优信道传输信息,增大了网络的吞吐量,降低了平均传输时延。
20211022_6172db7f4447b__一种多信道混合方式的无线传感器网络MAC协议