页面加载中,请稍候
来源:电子设计工程发布时间:2013-04-097浏览
询问 AI摘要:介质访问控制(MAC)协议是保证网络高效通信的关键网络协议之一。传感器介质访问控制(SMAC)协议是以节能为目的的MAC协议。介绍了SMAC协议工作原理,针对SMAC协议退避机制的缺陷,借鉴二进制指数退避算法,在SMAC协议的基础上引入了一种具有公平性的退避机制。节点根据接入信道的次数动态调整竞争窗口,退避失败时冻结退避计时器,在下个竞争周期继续计时,增加了节点接入信道的公平性,减小了碰撞,增大了吞吐量和信道利用率。仿真结果表明:改进后的SMAC协议在吞吐量,能量消耗和能量利用率方面相对于SMAC协议有显著的提高,起到了节能的效果。
关键词:无线传感器网络;SMAC协议;竞争窗口;退避算法
0 引言
无线传感器网络(Wireless Sensor Networks,WSNs)目前是一个最新的研究领域,它是由大量的节点组成的面向任务的分布式网络。而作为无线传感器网络协议栈重要基础构架的介质访问控制(Medium Access Control,MAC)协议决定着无线信道的使用方式,负责为网络节点分配无线信道资源,直接影响网络整体性能,成为网络协议研究的重中之重。
因为WSNs技术应用的独特性,SMAC协议以尽可能地节约能量,提高能量效率,从而延长整个网络的生存周期。Wei Ye等在2002年提出了传感器介质访问控制(Sensor MAC,SMAC)协议,SMAC协议同IEEE 802.11相比,具有明显的节能效果,但是由于SMAC协议引入了周期性睡眠方式,节点不一定能及时传递数据,使网络的能量利用率、吞吐量下降。本文通过引入动态自适应网络竞争动态改变竞争窗口大小的思想,在减少MAC协议能量消耗的同时,增加网络的吞吐量,增大了能量利用率。
1 SMAC协议简介
SMAC协议是专门为WSN设计的MAC协议。该协议通过综合运用时间安排协议和竞争协议能够达到良好的可扩展能力和碰撞回避能力,为了实现能量效率,尽量降低能量是SMAC协议的主要目标。
1.1 周期性侦听与休眠
SMAC协议使节点周期性地进入休眠状态,从而缩短侦听时间以减少空闲侦听带来的能量损耗。如图1所示,节点通过选择和维护休眠调度表,使相邻节点组成休眠/唤醒自同步的虚拟簇,从而实现信息传输的同步,并降低控制开销。
1.2 碰撞回避
为了避免碰撞以及解决隐含终端问题,SMAC协议采用虚拟载波侦听和物理载波侦听以及RTS/CTS交互机制。每个所发送的分组中都有一个时间域,用于标明剩余的传输时间。一个节点接收到传递给另一个节点的一个分组后,就能够根据该分组中持续时间域的数值而决定自己需要保持多长时间的静默,并将该值记录到一个叫做网络分配矢量(Network Allocation Vector,NAV)的变量中,然后设置相应的定时器。每当启动定时器时,节点递减其NAV,直到NAV等于零为止。节点在开始发送之前首先检查其NAV:若其NAV不等于零,节点判定媒介忙,叫做虚拟载波侦听。物理载波侦听是在物理层实现的,通过侦听信道确定是否有信息在传输。为了避免碰撞,SMAC协议采用随机的载波侦听时间。如果虚拟载波侦听和物理载波侦听都判定媒介空闲,才判定媒介空闲。
2 SMAC协议改进策略
2.1 SMAC协议随机退避原理
在SMAC协议中,为了减小分组传输发生碰撞而造成的能量损耗,节点在发送数据前要随机退避一段时间。在每个周期的开始,消息队列非空的节点就会从[0,CW-1]中随机选择一个退避数。如果信道空闲,每过一个时隙,退避计数器的值就会减1,当退避计数器的值递减为0时,节点就开始发送数据。此时,没有竞争到信道的节点就会停止退避计数器的计时,转入睡眠状态等到下一个周期的到来继续竞争信道。由于SMAC协议采用的是固定竞争窗口CW,这就不能很好的适应信道的变化,降低了信道的利用率,降低了网络的吞吐量。另外,节点每次竞争信道失败或者在退避过程中发现信道忙时,都会重新计算退避值。这就导致有些节点在经过很长的退避计时后由于信道忙竞争信道失败,而重新计算退避值,等到下一个竞争周期时执行新的退避值。这就使得一些节点低概率接入信道,能量消耗不均匀,并导致网络区域性中断不连通,降低了整个网络的生命周期。
2.2 SMAC协议退避算法改进
为了适应信道状态的动态变化和提高节点访问信道的公平性,本文参考了IEEE 802.11 DCF退避机制,针对SMAC的不足点加以改进。并引进了二进制指数退避BEB(Binary Exponential Backoff)算法,它的主要特征如下:
采用较小的初始化窗口CWMin和较大的最大值窗口CWMax。
当节点每次发送失败时,节点就会将其退避窗口CW加倍直到CWMax。
当节点每次发送成功时,节点就会将其退避窗口CW置为最小竞争窗口CWMin。
由于BEB算法针对节点竞争信道失败采用了竞争窗口倍增的思想,使节点快速摆脱竞争区提高节点接入信道几率。当节点发送分组成功时,就会将竞争窗口CW置为CWMin。这样就会使得上一次竞争信道成功的节点永远具有较小的竞争窗口,其接入信道的几率远远大于其他节点。竞争窗口的波动比较大,增加了节点的潜在竞争几率,势必会影响网络的吞吐量。
首先,在新的退避算法中引进3个定值,最小竞争窗口值min CW,最大竞争窗口值max CW,中间门限值mid CW=(minCW+maxCW)/2。
新退避算法的具体描述如下:
(1)信道竞争失败:如果节点在信道竞争过程当中失败,它便会倍增竞争窗口直到最大竞争窗口maxCW,CW=min(maxCW,CW×2)。
(2)信道竞争成功:如果节点成功地完成信道竞争,它便会将竞争窗口置为最优初始竞争窗口initCW,为了提高所有节点接入信道的公平性,初始竞争窗口是通过节点连续占用信道次数动态确定的。节点每次成功占用信道时都会将其信道占用计数器值Count加1,当信道占用计数器值小于信道占用次数阈值thCount时,此时将竞争窗口减半并以min CW为下限,初始竞争窗口initCW=max(minCW,CW/2)。当信道占用计数器值大于信道占用次数阈值th Count时,为了提高其他节点接入信道的几率,节点的初始竞争窗口尽量维持在一合适值范围内。在本算法中竞争窗口先减半再加上2倍信道占用次数值记为temp CW,将temp CW与mid CW比较,如果小于mid CW,此时竞争窗口位于小值区域内。再将temp CW与min CW比较,如果小于min CW则置init CW为min CW,否则置初始竞争窗口为temp CW减1。如果temp CW大于mid CW,则竞争窗口位于大值区域内,此时的初始退避窗口值计算为:
init CW=CW-[CW+(temp CW/mid CW)·CW]/Count
(3)退避过程:当所有处于未休眠状态的节点侦听信道时,节点发现信道空闲了一个时隙,它就会减少一个时隙的退避时间(BT),BTnew= BTold-aSlotTime,当它的退避计数器值为0时,节点会发送数据包。为了提高信道利用率,降低节点因退避而造成的能量浪费。如果节点侦听到信道有连续2minCW+1空闲时隙,则信道每经过一个空闲时隙就使BTnew=BTold/2,如果BTnew
3 理论分析
在一个周期内,影响SMAC协议能量利用率的主要因素有2个:因传输失败而重传数据消耗的能量和连续竞争信道消耗的能量。在高流量和一些遍历性假设的情况下,可以得到如下的能量利用率:
4.2 网络能耗分析
网络总的能量消耗,就是把网络初始时的各个节点的能量累加起来,仿真结束时的各个节点的能量累加起来,能量差就是网络消耗的总能量。由图3可以看出:由于SMAC协议采用的是固定竞争窗口且每次退避时都是重获取窗口的大小,在网络流量较大时,造成数据包碰撞的几率较大,碰撞后数据包重传的几率较大,因而,能量消耗保持在一个相对较大的值。改进后的SMAC协议,由于改进了退避机制,能够适应网络流量的动态变化,减少了数据包的碰撞几率,因而,减少了因重传数据包所消耗的能量。本文的SMAC协议根据节点占用信道的次数动态调整节点的退避窗口,提高了节点接入信道的公平性,一定程度上降低了节点因连续竞争信道所消耗的能量。在整个仿真过程中,改进后的SMAC协议比SMAC协议的总能量消耗平均降低了100 J左右。
4.3 能量效率分析
本文的能量效率采用文献的定义,即每焦耳能量所能发送的数据包,单位为b/J。显而易见,每焦耳能量所能发送的数据包越多,协议就具有越好的节能性。由图4可以看出:在网络流量较大时,SMAC协议由于数据包的重传浪费了大量的能量,导致能量效率较低。改进后的SMAC协议,根据节点占用信道的次数动态调整了退避窗口值,减少了数据包重传所消耗的能量,能量效率相对较高。当分组间隔小于6 s,改进后的SMAC协议比SMAC协议的能量效率平均提高了近55%。当分组间隔大于6 s,由于改进后的SMAC协议较SMAC协议能量消耗较少,能量效率较SMAC协议有所提高。
5 结语
本文研究了SMAC协议,并在此基础上借鉴了二进制指数退避算法,对SMAC协议进行了改进。在改进的SMAC协议中,节点根据接入信道的次数动态调整退避窗口,在退避时能根据信道的状态动态调整退避计时器值。最后,利用NS2仿真软件进行仿真验证,证实了在吞吐量、能量消耗和能量利用率方面,改进后的SMAC协议与SMAC协议相比有所提高。
新闻来源:电子设计工程,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!
2026-06-02
2026-06-13

2026-06-04