读书频道 > 网站 > 网页设计 > 无线传感器网络:原理与实践
3.3.3 混合型与事件驱动的MAC协议
15-07-27    下载编辑
收藏    我要投稿   
本书介绍了无线传感器网络的基本概念、硬件构成、网络协议栈、操作系统、中间件、定位技术、安全策略、数据管理、同步等内容,并给出了典型无线传感器网络的工作机制,通过两个案例进一步说明了无线传感器网络相立即去当当网订购

在无线传感器网络中有很多既不是基于调度也不是基于竞争的MAC协议(如[Ksarvakar08]、[Ngajaweera08]、[Kjamieson03]、[Szhou07]、[Jpolastre04]、[Irhee08])。部分MAC协议采用了将基于竞争和基于调度混合的思想,其他一些协议则是事件驱动的。混合型和事件驱动的MAC协议有Zebra MAC[Irhee08]、Sift MAC[Kjamieson03]、FAMA/TDMA Hybrid MAC[Ngajaweera08]、EZ-MAC[Ksarvakar08]以及A2-MAC[Szhou07]等。

FAMA/TDMA混合型MAC协议将FAMA和TDMA两者结合,为传感器网络中的所有节点提供了介质访问。一开始,网络中的节点通过向基站发送RTS帧竞争获得对介质的访问,第一个成功发送RTS帧的节点获得传输信道的访问权,用于发送数据。在EZ-MAC协议中,数据以低服务访问延迟的形式发送,通过优化的结构序列保持较低的访问阻塞率。它还采用了调度机制。A2-MAC是一个数据收集协议,同时是混合的分时隙CSMA/TDMA协议。接下来将详细介绍几个混合型和事件驱动的MAC协议的例子。

1.Sift MAC [Kjamieson03]

在很多无线传感器网络应用中,传感器节点的目的是监测事件并且向特定节点——基站(base station)报告事件。当事件发生时,所有监测到事件发生的节点会将事件细节报告给基站。由于极有可能有多个邻近节点监测到了事件,它们将共享传输介质。当所有节点同时报告时,就会在传输信道上产生竞争,这样的情况称为空间相关竞争(correlated contention)。然而,由于多个节点同时监测到了相同的事件,它们会向基站报告相似的传感数据,那么就没有必要让所有监测到该事件的节点都向基站报告。只需要事件周边的部分节点向基站报告事件。另一方面,网络中的节点可能会因电池或者其他原因而失效,那么某一地理区域内节点的密度就会变化。因此,就需要能够有效处理空间相关竞争和随时间变化的节点密度的传感器网络MAC协议,94这就是Sift MAC协议的目标[kjamieson03]。

(1)协议设计

与传统的CSMA协议类似,Sift MAC协议使用固定长为32时隙的竞争窗口(contention window)。Sift MAC协议在一个给定的间隔内选择一个时隙的概率不是均匀的。在该协议中,节点在时隙r∈[1,CW](其中CW表示竞争窗口的长度)中竞争发送数据。节点根据假想的节点数N竞争一个特定的时隙,假想的节点数N在每个没有发送发生的时槽后会发生变化。假设节点数开始时定为一个较大的值,表明每个节点相应地赢得信道访问的概率就比较小。如果在第一个时隙内没有节点传输,那么所有节点就减少假想节点数,同时使其在下一时隙能够发送的概率倍增。这个过程会不断重复,确保能够很快地在可能的节点范围中选出胜者,从而避免因冲突导致的长延迟。

例如,如果只有一个节点竞争传输信道,那么它能在竞争窗口中获得一个时隙用于传输数据。在数据传输完后,所有的节点再竞争新的时隙,以及估算假想节点数N的值。

(2)Sift MAC协议中退避概率分布

每个节点采用非均匀的概率函数Pr选择时隙r∈[1,CW]。当没有节点选择一个时隙用于数据传输时,r∈[1,CW]被称为是静默的。类似地,当有多个节点选择了相同的时隙r时,时隙r∈[1,CW]被称为是冲突的。如果有节点获得了时隙,那么称之为成功的。只有在仅一个节点选择了竞争窗口内的一个时隙r时它才能赢得一个时隙,该时隙是该竞争窗口内的第一个非静默时隙。Sift MAC采用了式3.6的非均匀概率函数P r:


 

在式3.6中,α表示(0,1)范围内的分布参数,它会导致Pr的指数增长。这就意味着竞争窗口中靠后的时隙有更高的选中概率。

可以从有CW个阶段的决定过程看出每个节点如何选择时隙。节点从阶段1 开始,先把当前的节点数N估计为N1,然后以相同的概率选择时隙1。95如果没有节点选择时隙1,那么节点就认为估计是错误的,然后将估计值减为N2。之后节点再以一定的概率选择时隙2,如果时隙2还是静默的,那么再将估计值减为N3……持续上述过程,直到之前出现了r-1个静默时隙,那么Nr是N的估计值,如图3-16所示。

图3-165个节点场景下Sift协议运行时间图。灰色部分是包的传输时机。当信道空闲时,节点在传输之前会按照Sift分布规律进行随机退避

由于当前节点数N∈[1,N 1],那么在决定过程中应当一直保持较高的成功概率。因此,需要遵守如下两条性质[Kjamieson03]:

1)当N=N 1时,成功的概率应当很高。

2)成功的概率应当是恒定的。




 

在式3.8中,β是恒定的并且0<β<1。假设没有冲突或者不会有两个节点选择竞争窗口内同一时隙,那么对于节点S


 

这证明了即使N的值从N1变化到1,成功的概率都应该是恒定的。对于性质1,当N=N1时成功的概率应当很高,式3.10也指出了=1,所以如果竞争窗口中所有时隙都是静默的,那么最后一个时隙必须被一个节点选择。因此,α的取值应该使得处于阶段CW的一个节点相信只有一个活动节点。相应地,如果当前活动节点数为1,意味着N=1。

从式3.9可以看出,如果α=β并且1=NCWCW-1N 1,那么α=

(3)协议规范

在Sift MAC协议中,每个节点有以下四种状态:

1)空闲状态:节点等待来自其他节点的数据。

2)竞争状态:节点竞争传输信道,希望得到对介质的访问权。

3)接收状态:节点接收来自其他节点的数据。

4)Ack等待:节点在向某一节点传输完数据后等待该节点的ACK。

节点在不同状态间切换的伪代码如图3-17所示。在图中,函数pickslot()用于根据式3.6的Sift分布选取时隙。指令moveto(state)用于将某节点的状态改变成给出的状态state。指令wait(time)用于等待参数time给定的时间。



 

tslot是最小时间分隔,如果两个节点各自传输数据超过tslot秒,那么相互之间就能听到对方传输的发生。tsifs是始于ACK帧的一段时间延迟,用于将节点的状态从发送分组状态转为准备接收ACK状态。tdifs是在新的数据传输开始时增加的时间延迟。因此,tdirt+slot*tslot是进行完整数据传输和随后的ACK传输所需的时间。tACKtimeout是节点等待接收ACK的时间。

(4)RTS与CTS机制

为了避免冲突,传感器网络中采用Sift MAC协议的所有节点应用RTS/CTS交换模式。与Sift协议的退避分布用于竞争数据包的发送类似,退避分布也能用于竞争RTS帧的发送。因此,仅用“RTS”、“CTS”以及“ACK”替换伪代码中的“frame”就可以实现RTS的竞争。

(5) Sift MAC协议的性能

Sift MAC协议的基本思想是在一个固定大小的竞争窗口中使用一个增量的、非均匀的概率分布,节点随机地选择传输时隙,这与传统的基于竞争的MAC协议类似。Sift MAC协议适用于并非每个节点都需要报告每个监测事件的传感器网络。模拟试验表明,Sift MAC协议在空间相关竞争发生时表现出色,能够很好地适应活动节点数的变化。实验结果表明,当网络中参与同一事件报道的节点数达到512时,Sift MAC协议的报道延迟仅相当于802.11协议的1/7。

2. B-MAC[Jpolastre04]

为了满足无线传感器网络部署和监测的需要,设计了B-MAC协议以实现下述目标:

1)低功耗监听(LPL)。

2)有效避免冲突。

3)实现简单,代码量和RAM占用较小。

4)信道充分利用。

5)可以被网络协议重构。

6)可以容忍无线通信频率及网络拓扑结构的变化。

7)可以扩展到大规模节点中。

B-MAC协议为实现这些目标提供了一些接口,如图3-18所示。为了侦听传输信道,B-MAC协议采用了空闲信道评估(Clear Channel Assessment, CCA)以及数据分组退避机制。


 

(1)协议设计

在B-MAC协议中,在认为传输信道是空闲时会对信号强度进行采样。例如,在当前传输完成或通信模块没有收到任何数据时就认为信道是空闲的。


采样数据放入一个队列中,用衰减因子α对队列的中位数进行指数加权移动平均值计算。中位数用于提高对本底噪声(noise floor)估计值的鲁棒性。对本底噪声进行估计后,开始监听传输信道上接收的信号强度。B-MAC协议检测接收的信号强度中的孤立点(异常值)。例如,如果节点检测到孤立点,那么就可以认定信道是空闲的,这是由于一个有效的数据包不可能存在低于本底噪声的孤立点。相反,如果没有检测到孤立点,那么认定信道正忙。

通过图3-18中的MacControl接口,采用B-MAC协议的节点可以打开或关闭CCA。如果CCA不可用,那么B-MAC协议采用调度协议。当CCA可用时,B-MAC协议采用分组退避机制。在分组退避中,是没有设定初始退避时间的,而是采用事件驱动方式,它会返回退避时间或者忽略该事件。如果事件被忽略,则会设定一个较短的退避时间。在初始退避时间后,运行CCA孤立点算法。如果信道不是空闲的,那么给服务发送一个事件,以便进行阻塞退避定时。

B-MAC协议提供链路层ACK支持。如果需要链路层ACK,那么接收节点发送ACK到源节点。在发送节点收到ACK后,则将发送节点发送消息缓冲区内的应答位置位。B-MAC在周期性的传输信道采样中采用低功耗监听(LPL)机制。每个节点监听信道的传输情况,如果检测到信道上有正在进行的传输,那么它等待传输完成,传输完成后节点转入睡眠状态。如果没有需要接收的数据包,那么定时器将节点转入睡眠状态。两个LPL的间隔尽可能大,从而减少信道的采样时间。

(2)B-MAC性能

B-MAC协议在吞吐量和能耗方面优于S-MAC和T-MAC协议。S-MAC和T-MAC协议的性能取决于占空比。B-MAC提供了灵活的接口,从而实现了超低功耗的运行、有效避免冲突和信道的高利用率,还实现了空闲信道估计。在支持在线重构以及向系统服务提供双向接口的同时,B-MAC还采用可适应前导采样机制来降低占空比,减少空闲监听,实现了低功耗运行。B-MAC可以在超低占空比下运行,不会产生因同步和状态保持而带来的额外开销。实验研究表明,B-MAC协议的传递速率、吞吐量、101延迟以及能耗都优于S-MAC[Jpolastre04]。

3. Z-MAC[Irhee08]

Z-MAC协议是一种混合型协议,它综合了TDMA和CSMA的优点,弥补了两者的不足。Z-MAC采用CSMA作为基本协议,但是会根据竞争程度采用TDMA。Z-MAC协议的开销主要是由开始时的建立过程带来的。在建立过程中,为节点分配用于数据传输的时隙。分配时隙之后,节点在预定的周期(称为“帧”)内使用分配到的时隙传输数据。分得时隙的节点称为该时隙的占有节点,其他节点称为该时隙的非占有节点。对于任何时隙,非占有节点传输数据的优先权低于占有节点。优先权通过竞争窗口的大小确定。如果在某一时间点,该时隙的占有节点没有发送数据,那么非占有节点可以使用该时隙发送数据。当竞争程度较低(流量较低)时,Z-MAC协议的执行与CSMA相似;而当竞争程度较高(流量较高)时,Z-MAC协议的执行与TDMA相似。

(1)Z-MAC的建立过程

在协议开始时,Z-MAC执行建立过程,它包含以下几个步骤:

1)相邻节点寻找。

2)时隙分配。

3)本地帧交换。

4)全局时间同步。

相邻节点寻找

网络中每个节点通过发送ping消息找到一跳相邻节点,ping消息包含一张当前其一跳相邻节点的列表。通过收到的相邻节点的一跳信息表就可以得到两跳内的相邻节点信息。

时隙分配

Z-MAC协议采用分布式RAND(DRAND)算法[Irhee06]为数据传输分配时隙。RAND算法[Rramanathan97]是一种集中式的时隙分配算法,而DRAND算法是RAND算法的分布式实现,DRAND算法循环运行。102如图3-19所示,DRAND有四种状态:IDLE状态、REQUEST状态、RELEASE状态和GRANT状态。开始时,每个节点都处于IDLE状态。在IDLE状态下,节点先“抛硬币”(tosse the coin),这种方法的结果为正面或者反面的概率各为1/2。如果结果为正面,那么进行抽彩(run a lottery),如果未中彩(lose lottery),则继续保持IDLE状态;如果中彩(win lottery),则转入REQUEST状态,同时该节点向其所有一跳相邻节点广播request消息。


 

假设节点B是节点A的一跳相邻节点。如果节点B处于IDLE状态或RELEASE状态时收到来自节点A的REQUEST消息,那么节点B回复一条允许消息并且转入GRANT状态。如果节点B处于REQUEST状态或GRANT状态,那么它回复一条拒绝消息给节点A。如果节点A在规定的时间内没有收到允许消息或拒绝消息,那么它将再次发送请求消息。

本地帧交换

在分配时隙后,每个节点需要确定可以使用时隙发送数据的发送周期,该发送周期被称为时间帧(Time Frame, TF)。在节点确定了发送数据的周期后,节点需要将最大时隙数(Maximum Slot Number, MSN)广播到整个网络中,并且要适应本地时隙的变化。如果网络中有新增的节点,那么DRAND算法会为新增的节点分配新的时隙。MSN的变化同样也需要广播到整个网络中。

在高竞争的情况下,Z-MAC协议需要时钟同步,因此采用了实时传输协议(RTP/RCTP)[Hschulzrinne96]。在RTP/RCTP中,网络中每个节点以一定的速率发送控制信息,限制该速率仅占会话带宽的小部分。在Z-MAC协议中,每个节点将数据发送速率限制在一个预先确定的范围内,该范围由能量和带宽决定。

全局时间同步

本地成帧机制要求节点能在时隙0内完成同步,这需要所有节点在一个预先确定的时间内进行时隙0同步。通过时间同步协议TPSN[SGaneriwal03],所有节点都会同步到时隙0上。在TPSN中,每个节点维护一个16位的寄存器作为晶振触发时钟。TPSN分两步执行:第一步,网络中所有节点构建一个分层的结构,每个节点k属于第i层,第i层的节点可以与i-1层的节点通信。只有一个节点处于第0层,被称为“树根节点”。第二步是同步阶段,属于第i层的节点与第i-1层的节点同步。这样,网络中的每个节点都能够和“树根节点”同步,也就可以同步到时隙0上。在全局时间同步之后,网络中所有节点就实现了本地时间的同步。

(2)Z-MAC协议的传输控制

Z-MAC协议中的每个节点有以下两种工作方式:

1)轻度竞争方式(Low-contention Level,LCL)

2)激烈竞争方式(High-contention Level,HCL)

节点通常一直在LCL方式下工作,直到其收到了两跳相邻节点发送的直接竞争通知(Explicit Contention Notification, ECN)消息后才按照HCL方式工作。


节点在激烈竞争时就会发送一条ECN消息。一旦某节点收到ECN消息,那么它将切换到HCL方式下工作。

直接竞争通知(ECN)消息

ECN消息用于通知当前时隙占有节点的两跳相邻节点在竞争程度激烈时不要成为隐藏终端。在Z-MAC协议中,每个节点需要估计竞争程度,可以采用以下两种方法:

计算ACK包的丢包率

由于两跳的竞争可能会导致冲突,带来数据丢失,因此源节点可以通过计算传输中ACK包的丢包率来衡量竞争的程度。但是,这种方法需要接收者向发送者回复ACK,因而会造成额外的开销并且降低信道利用率。

测量信道的噪声等级

当竞争程度激烈时,传输信道中的噪声等级就会提高。测量传输信道中的噪声水平不需要额外的开销。为了测量传输信道中的噪声,节点需要计算噪声退避数。噪声退避是源节点在发送数据包前采用使用空闲信道评估(CCA)对信道进行检测所花费的退避时间。采用CCA,节点只有在检测到信道是空闲时才能传输数据。当发送节点检测到信道竞争时,它会向竞争节点发送退避消息。如果存在多个竞争节点(即竞争激烈),那么发送节点向其中状态为HCL的竞争节点发送ECN消息。节点j收到其一跳相邻节点i发送的一条ECN消息时,首先检查自己是否为该条消息的目的节点。如果是目的节点,那么节点j向其下一跳相邻节点广播一条ECN消息(这些消息称为两跳ECN消息);如果不是目的节点,那么丢弃该消息。节点在收到两跳相邻节点发出的ECN消息后,将其HCL标志置位。

(3)发送规则

当一个节点需要发送数据时,它首先检查其是否是该时隙的占有节点。如果该节点是时隙的占有节点,那么它检查信道是否空闲。如果节点发现传输信道是空闲的,那么它可以向目的节点发送数据。否则,它将设计一个计时器,等待时间为T0,105在时间到后,执行CCA,如果信道是空闲的,就可以发送数据;如果信道不空闲,它将等待一段随机的时间,再重复上述过程。如果节点处于HCL方式下,并且它不是时隙的占有节点,那么它将传输时间延迟T0,然后在竞争窗口[T0,Tn0]内进行随机退避。完成随机退避后,节点检测信道,如果信道未被占用,那么发送数据;如果信道被占用,那么节点等到信道空闲再重复上述过程。

(4)Z-MAC协议调度的接收

Z-MAC协议是在B-MAC协议[Jpolastre04]上实现的。所以Z-MAC协议也使用低功耗侦听(Low Power Listening,LPL)方式,每个节点维护一个侦听占空比,侦听占空比之间的间隔为检查周期,每次发送数据包之前先发送前导,前导长度等于检查周期。因此,在低占空比下,Z-MAC协议空闲侦听的能耗与B-MAC相近。检查周期是接收调度中重要的因素,这是因为检查周期必须允许一个数据分组的完全传输。因此,时隙的大小必须大于检查周期、T0、Tn0、CCA周期以及传播一个数据分组需要时间的总和。

(5)Z-MAC协议的性能

Z-MAC协议能够根据竞争的程度动态地在CSMA和TDMA之间调整信道访问的方式。协议利用两跳相邻节点的拓扑信息和松散的同步时钟提升了激烈竞争下的MAC协议性能。与TDMA一样,Z-MAC实现了激烈竞争环境下信道的高利用率和低延迟。Z-MAC还有一个重要的特点是能够抵抗同步失败、时隙分配错误以及时变信道状态变化。在最坏情况下,Z-MAC协议的性能退回到CSMA。与B-MAC[Jpolastre04]相比,在信道激烈竞争情况下,Z-MAC协议更有优势,在低竞争状态下与之相当(特别是在能耗方面)。

Sift MAC协议[Kjamieson03]在一跳竞争中展示出了较高的性能,但是在两跳竞争中,它需要依赖RTS/CTS而且开销更高。Z-MAC适用于高数据速率以及两跳竞争激烈的应用中。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站