无线传感器网络的MAC层协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
无线传感器网络的MAC层协议
作者:孙智博
来源:《科技风》2016年第12期
摘要:无线传感网络正在兴起,它具备成本低廉、能量损耗低等特点。通常用延迟,数据包传递速率(PDR),能量消耗来衡量无线传感器网络的性能。按照分配信道的方法划分协议,可将MAC层的协议划分为竞争型访问,预留型访问和混合型的路由协议。MAC协议对于无线传感器网络来说,如果设计合适,可以提高无线传感网络的性能。
关键词:无线传感器网络;MAC层协议
一、WSANs的MAC层协议简介
按照分配信道的方法划分协议,可将MAC层的协议划分为以下三种:竞争型访问协议,一般是所有节点共享一个信道,允许节点访问介质的限制很少,并且可以结合其他协议来减少信道中碰撞次数,比如DCF协议。而预留型访问协议通过明确地调度数据包来防止竞争。TDMA被认为是最适合的。混合型的路由协议是结合以上两种方式。一些WSAN MAC协议是基于TDMA。
TDMA机制就是为每个无线传感器网络节点分配独立的用于数据收发的时隙,而节点在其他空闲时隙内转入睡眠节能状态。相比随机竞争接入机制,时分复用方式本身就更能节省能量,是实现信道分配的简单成熟机制,因为无线电波的工作时间缩短,而且没有任何竞争带来的开销和冲突。基于TDMA机制的MAC协议具有如下优点:
1)无竞争机制的冲突重传问题。
2)数据传输不需额外的控制信息。
3)节点在空闲时隙能够及时进入睡眠阶段。
混合型协议可以获得更好的性能,保持竞争期远小于数据传输期,从而减少碰撞,延迟和能源浪费。ATMA算法优于传统的SMAC, TMAC和ADV-MAC算法。
在许多协议中,将一个帧划分为2个部分,Contention Window (CW)和Data Window。CW的大小决定了MAC算法的效率。已经很多人研究CW大小自适应问题,特别是在IEEE 802.11和IEEE 802.15.4协议中。
二、算法介绍
首先,参考文献做出以下假设:
1)将节点随机放置在一个矩形无障碍区域,节点间相互独立且静止。
2)节点能够感知到信道以及分辨一个空闲信道,一个进展中的单包传输的信道和发生碰撞的信道(两个或更多的同时传输的数据包)之间的区别。
3)时间离散化且所有节点同步操作。
4)采用了两个简单的流量模型,一是随机流量模型,每个节点在每段时间以概率p步生成一个数据包;二是突发流量模型,每个发射节点周期性的突发产生出一定量的数据包。然后,用延迟,数据包传递速率(PDR),能量消耗三个指标来评价算法。
(一)ATMA算法
ATMA将CW分为更小的微时隙,比ADV包的持续时间更小。每个节点若要发送数据包时,就选择一个微时隙编号,并且开启一个倒计时的计时器。当此计数器计数完毕,该节点开始发送ADV包,如果接收方接收这个数据包,立即发送ACK包。如果有冲突,或者网络中的数据包损坏,那么不发送ACK包。如果,计数器冻结,那么意味着某些节点可能没有机会在一帧中发射数据包,即使它选择了一个有效的微时隙编号。如果发生这种情况,就认为该节点被冻结了。如果一个节点发生冲突碰撞或者是被冻结,那么它将在下一帧中重新发送ADV 包。而AD-ATMA算法优于ATMA,它消耗更少的能量,更加精细地处理冻结节点。
(二)AD-ATMA算法
AD-ATMA算法将CW分为两个部分,第一部分叫做Selection Window,和ATMA中的CW具有相同结构。第二部分叫做Surplus Window,它可以使冻结节点发送ADV包并且不发送除此以外的其他包。直观地说,减少Selection Window增加了碰撞冲突的概率,增加Surplus Window增加冻结节点成功发送ADV数据包的概率。
当冻结节点发射ADV包带来的好处大于碰撞引起的额外延迟(由于发送更多的数据包)时,拥有Surplus Window是个不错的选择。当发射节点数量很少时,只有很少量的冻结节点,所以只需要很少量的Surplus Window就足够了。当发射节点数量很大时,Selection Window数量减少会增加碰撞冲突的概率,并且可能超出少量冻结节点所带来的收益。当发射节点数量适中时,将CW割裂为两部分有着不错的效果。
假设每个节点每一帧内都有数据包要发送,并且有固定的帧数。随机部署节点,并且每个节点都有固定数量的邻域节点和固定大小的Selection Window。所有节点都运行Ad-ATMA算法,且在固定的帧内发送数据包。测量了发送单个ADV包的微时隙数量和碰撞冲突的微时隙数量。
Ad-ATMA在每个节点内以分布式运行。节点在每一帧中监听整个CW。文献提出的算法步骤如下:
1)在每个帧的开始,每个发射节点计算邻域节点数量的期望值,在Selection Window中选择一个随机微时隙n,一个计数为n的计时器开始倒计时并且监听整个信道。
2)只要一个节点检测到一个微时隙正在使用,就冻结其计时器,直到通道不被占用。
3)当计时器计数完毕后,就发送一个ADV包。如果接收节点接收到了ADV包,就立即返回一个ACK包来确认收到。发射节点收到ACK包后就开始发射另一个ADV包,这样单跳邻域内的发射和接收节点就知道即将进行下一次数据传输。如果节点要发射第二个ADV包,开始第二个计数器即可。
4)如果计时器没有计数完毕,但该帧结束了,或者当计数器计数完毕后,微时隙数量过少,节点就尝试在下一帧发送ADV包。
5)成功预留数据时隙的节点就在数据时隙发送包。不发送或是接收数据包的节点在整个数据时隙期间都是保持睡眠状态。
最后对这两种算法分别在单跳和多跳网络环境中进行模拟仿真,最后发现Ad-ATMA的三项性能明显优于ATMA。
参考文献:
Hossain M K,Datta S,Edmonds J.Ad-ATMA: An Efficient MAC protocol for Wireless Sensor and Ad Hoc Networks [J].Procedia Computer Science,2015,52(1):484-491.