1、 无线传感器网络的MAC协议MAC协议概述无线传感器网络的MAC层协议层协议决定了如何使用无线如何使用无线信道进行通信信道进行通信,以确保不同节点不同节点在同一时间进行消息收发时不会造成碰撞不会造成碰撞。降低能耗:降低能耗:MAC协议应在保持正常通信的前提下尽量降低设备的忙闲比。可扩展性:可扩展性:MAC协议必须能够适应无线传感器网络拓扑结构的动态变化。错误处理错误处理:MAC协议必须避免那些已知的和可能出现的错误情况,以保证通信的可靠。CSMA机制CSMA机制(虚拟载波监听)虚拟载波监听虚拟载波监听n源站将还需占用信道的时间在 MAC 帧头字段“持续时间”中指示给所有其他站,其他站会在这段时
2、间都停止发送数据。n“虚拟”是指其他站未真正监听信道,而是检测源站发送帧中的“持续时间”才不发送数据。n 当一个站检测到正在信道中传送的 MAC 帧首部的“持续时间”字段时,就调整自己的网络分配向量 NAV(Network Allocation Vector)。nNAV 指出了必须经过多少时间才能完成数据帧的这次传输,才能使信道转入到空闲状态。CSMA机制CSMA机制的原则先听后讲先听后讲信道空闲则发送边听边讲边听边讲发送信号时不断检测信道是否碰撞碰撞即停碰撞即停信道发生碰撞,则停止发送退避重传退避重传多次碰撞,多次碰撞,放弃发送放弃发送最多重传16次CSMA机制CSMA机制中的三种IFSSI
3、FS(Short IFS):最短帧间隔,优先级最高,用于需要立即响应的服务,如ACK帧、CTS帧等。PIFS(PCF IFS):点协调模式下节点使用的帧间隔,用来获得在无竞争周期启动时访问信道的优先权。DIFS(DCF IFS):分布式协调模式下节点使用的帧间隔,用以发送数据帧和管理帧。CSMA机制MAC层“隐藏节点”效应如只使用 CSMA机制,侦听到信道“闲”可能结果不正确,由于:1.隐蔽站问题-发送方侦听不到:A,C 不能互相听到,中间有障碍物、信号衰减,A、C 于是都发给 B,B 处此时会产生冲突。2.信号强度衰减问题-C 在发送,由于信号传输衰减,传到 A 处时,A 听不到,A 以为听
4、到信道闲,也发,接收站 B 处此时产生冲突。隐终端是指是指在接收者的通信范围内而在发送者通信范围外的终端在接收者的通信范围内而在发送者通信范围外的终端。LocationSignal strengthABCCSMA/CA:CSMA with Collision Avoidance 冲突避免冲突避免:增加增加 RTS-CTS 交互交互nCSMA/CA:信道预约发送站:发出短的 RTS帧(request to send)预约信道接收站:应答短的 CTS帧(clear to send)同意预约nCTS 为发送站保留信道,起了通知其它(可能隐蔽的)站点的效果n避免了隐蔽站点造成的冲突 MAC层CSMA/
5、CA机制CSMA机制MAC层CSMA/CA机制CSMA机制数个节点进入退避阶段,如选择的退避时间一致,有可能会发生数个节点进入退避阶段,如选择的退避时间一致,有可能会发生碰撞,碰撞,CSMA采用二进制指数退避机制规避再次碰撞。采用二进制指数退避机制规避再次碰撞。确定基本退避时间(基数),一般定为2T,即一个竞争窗口定义K为重传次数,K=min重传次数,10从集合0,1,2,2k-1中,随机取出一个数R,令退避时间为t=R2T如数据帧在重传16次后仍无法成功发送,则认为传输失败并报告给高层协议MAC层能耗来源射频模块处于活动状态会消耗大量的能源。这是节点能量消耗的最主要来源,射频收发器处于接收模
6、式时消耗的能量比其处于待命模式多两个数量级。为避免冲突,节点也需要不断的侦听信道,查询信道是否被占用。空闲侦听的代价也是很大的。空闲侦听(Idlelistening)碰撞冲突(Collision)MAC层能耗来源两个以上节点在同时向一个节点发送数据帧,目的点发生数据冲突,信号相互干扰,数据帧被破坏,源节点需重新发送。发送和接收错误数据的能量被损耗,造成了能量浪费和信息延迟。利用RTSCTS握手机制可解决冲突问题,但带来额外的协议开销。串扰(Overhearing)MAC层能耗来源节点是以广播的形式发送消息的,广播范围内的节点就可能接收到发向其他节点的数据包,造成串音干扰。当节点密度很大或者需要
7、传输的数据很多的时候,串扰消耗的能量也是很可观的。为尽量避免这种情况,节点应该在无数据收发时关闭其接收器。控制信息开销(Control packet overhead)MAC层能耗来源MAC层协议需要节点间交换控制信息,造成能量损耗,MAC的报头和控制包(如RTSCTSACK)非有效数据,消耗的能量对用户来说是无效的。当数据帧较小时,协议开销很大。节点确认其邻居节点所处状态(是否存活等),进行同步等,也需发送或接收一些消息,要消耗能量。节能策略MAC层能耗来源尽量让传感器节点处于睡眠状态减少碰撞减少控制消息的能量开销减少接收到无需接收的数据分组基于竞争的MAC层协议S-MAC协议被同步节点被同
8、步节点:节点在决定自身调度计划前接受到其他节点的调度计划,将收到的计划作为自身的调度计划。同步者同步者:侦听过了既定时间段后,未收到其他调度计划,即将自身的调度计划广播出去。在簇状拓扑结构时,簇内节点的调度计划是一致的。边界节点边界节点:节点在设置了自身调度计划后,又收到一份不同的调度计划,则会同时采纳两种调度计划。边界节点多见于桥接两个不同簇的节点,会按照两个簇的唤醒时间进行睡眠管理。基于竞争的MAC层协议S-MAC协议基于竞争的MAC层协议有“自适应侦听”机制的S-MAC协议节点A、B确立通信关系时,节点C通过B的CTS帧内duration(持续时间)字段得知信道通信结束时间。在节点A、B
9、传输结束时,C立即唤醒自己,与B建立通信关系。两跳外的节点不参与其中。优点:提高通信效率。缺点:所有接收到RTS和CTS帧的节点,都会被唤醒,增加了能耗和串音的几率;缺乏多跳感知能力。基于竞争的MAC层协议有“消息传递”机制的S-MAC协议无需在每个数据帧传送的过程中都发送RTS、CTS管理帧当有突发大量数据传输时,在第一个数据帧发送RTS-CTS管理帧,目的节点对每个数据帧逐个确认。源节点和目的节点发送的每个帧都包含消息的剩余时间域。基于竞争的MAC层协议S-MAC协议周期性侦听/睡眠的工作方式(能量)一致性的睡眠调度机制(空闲侦听)流量自适应的侦听机制(减少延迟)消息分割和突发传递(控制消
10、息和消息延迟)基本思想基本思想S-MAC协议的优势协议的优势扩展性好载荷不大的情况下,能耗较少串音避免适应上层协议的分簇机制S-MAC协议的不足协议的不足忙闲比固定,无法适应载荷的动态变化节点休眠带来时延,不适合实时性要求高的网络网络复杂、规模大的网络,能耗较大基于竞争的MAC层协议T-MAC协议T-MAC(Timeout MAC)协议协议,实际上是S-MAC协议的一种改进。S-MAC协议的周期长度受限于延迟要求和缓存大小,而侦听时间主要依赖于消息速率。为保证消息的可靠传输,节点的周期活动时间必须适应最高的通信负载,造成网络负载较小时,节点空闲侦听时间的相对增加。对以上不足的改进,提出了T-M
11、AC协议:在保持周期侦听长度不变的情况下,根据通信流量动态调整节点活动时间通信流量动态调整节点活动时间,用突发方式发送消息,减少空闲侦听时间减少空闲侦听时间。其主要特点是引入了一个引入了一个TA时隙时隙。基于竞争的MAC层协议T-MAC协议在节点活动周期内(SYNC、DATA),如果在一个给定的时间段TA内没有发生特定事件没有发生特定事件(定时器超时、接收到数据、发现无线信道、监听RTS/CTS,确认邻居节点完成数据传输等),则节点提前结束活动节点提前结束活动进入睡眠状态进入睡眠状态。ActiveActiveActiveSleepSleepS-MACActiveActiveActiveSlee
12、pSleepTATATAT-MAC基于竞争的MAC层协议T-MAC协议早睡问题早睡问题节点A获得发送数据到节点B的机会,节点A发送RTS节点B,节点B应答CTS。节点C收到B发出的CTS而转入睡眠状态,在B接收完数据后醒来,以接收B发送给它的数据。D可能不知道A和B的通信存在,在AB通信结束后已经进入睡眠状态,节点C只有等到下一个周期才能传输数据到节点D。基于竞争的MAC层协议T-MAC协议解决早睡问题的方法之一解决早睡问题的方法之一FRTS(Future Request To Send)节点C监听到B发送给A的CTS时,立即向D发送FRTS,告知D所需等待时间,D睡眠后醒来与C通信。A在发送
13、DS占用信道,DS与FRTS长度相同无有效信息,DS发送后,A开始发送数据。FRTS机制提高了网络吞吐量,增大了数据量和碰撞概率基于竞争的MAC层协议T-MAC协议解决早睡问题的方法之二解决早睡问题的方法之二满缓冲区优满缓冲区优先先(Full Buffer Priority,FBP)节点C的TA时间即将结束时,收到B发来的RTS。节点C对B的RTS不做CTS回应,而是向目标节点D发出RTS。节点C与D开展通信。避免了D的早睡问题。控制了网络流量,但增加了碰撞的可能性。基于竞争的MAC层协议DMAC协议DMAC(Dynamic SMAC)基于SMAC和TMAC思想,采用预先分配方采用预先分配方法
14、法来避免睡眠延迟,在信道分配方面引入一种交错呼醒机制交错呼醒机制。假设网络中的节点保持静止,且每个路由节点有足够的存活时间,保持网络在较长时间内路径不发生变化假设数据有传感器节点向唯一的Sink单向传输假设各节点间保持时间同步在一条多跳传输路径上,各节点交替唤醒,如同锁链一样环环相扣,保证数据在树状结构上持续传输,不被睡眠所中断每个间隔分为接收、发送和睡眠三个周期每个节点的调度具有不同的偏移,下层节点的发送时间对应于上层节点的接收时间基于竞争的MAC层协议DMAC协议DMAC协议基本机制基于竞争的MAC层协议DMAC协议自适应忙闲比机制自适应忙闲比机制如果节点在一个发送周期内有多个数据包要发送
15、,就需要该节点和树状路径上的上层节点一起加大发送周期占空比通过在MAC层数据帧的帧头加入一个标记(more data flag),以较小的控制开销发送占空比更新请求。在ACK帧中加入同样的标记位节点提高忙闲比的条件:节点将相关标志位置1,或收到了该标志位置1的ACK帧,传输路径上的节点依次提高忙闲比,增加了网络的数据传输量。基于竞争的MAC层协议DMAC协议数据预测机制数据预测机制在数据采集树中,越靠近上层的节点,汇聚的数据越多,对树的底层节点适合的占空比不一定适合中间节点如果一个节点(父节点)在接收状态下接收到一个数据包,该节点预测子节点仍有数据等待发送。在发送周期结束后再等待3个周期,节点
16、重新切换到接收状态在前一周期竞争信道失败的子节点侦听到父节点的ACK帧,知道父节点将在3后醒来,据此调整自身调度计划,在3后唤醒自己与父节点建立通信基于竞争的MAC层协议DMAC协议MTS(More To Send)帧机制帧机制必要性:虽然自适应占空比机制和数据预测机制考虑了冲突避免,数据采集树中不同分枝节点仍有冲突的可能MTS帧只包含目的地址和MTS标志位。标志位为1时称为MTS请求,标志位为0时称为MTS清除发送或接收到MTS请求的节点每隔3个周期就唤醒一次,只有MTS请求已经被清除时,节点才回到原来的忙闲比方式基于竞争的MAC层协议B-MAC协议S-MAC协议采用忙闲比模式忙闲比模式,忙
17、闲比模式在能耗方面主要问题:1、节点需要定期发送消息,如SMAC中的SYNC数据包;2、节点在侦听期间需要开启接收机等待可能到来的数据包。B-MAC协议基于两种机制:低功耗侦听(Low Power Listening,LPL)的休眠/唤醒调度机制,也称前同步码采样机制空闲信道评估(Clear Channel Assessment,CCA)机制基于竞争的MAC层协议B-MAC协议LPL机制B-MAC协议中,网络中的所有节点不需要同时被唤醒不需要同时被唤醒,每个节点可以自行制定自己的休眠和唤醒时间调度表自行制定自己的休眠和唤醒时间调度表,不需要跟其他节点保持同步。一个节点要发送数据有两种方法,一种
18、是唤醒它的目标汇聚节点,另一种是等待目标汇聚节点自己醒来。LPL的主要思想是在发送数据包前发送一个前导序列(在发送数据包前发送一个前导序列(Premble)来唤醒目标接收机,这样可以减少固定占空比协议中的来唤醒目标接收机,这样可以减少固定占空比协议中的“侦听功侦听功耗耗”。基于竞争的MAC层协议B-MAC协议LPL机制LPL机制的工作流程机制的工作流程假设每个节点的睡眠时间均为Tp ,Tp 时间后节点醒来,在Ta 时间内侦听信道活动,令前导序列的时长为Tp +Ta (即Tw)。节点A向节点B发送数据时,A首先发送前导序列。B醒来后侦听到前导序列,判断出自己是目标节点,进入工作状态接收数据。其他
19、节点如也侦听到前导序列,但发现自己并非目标节点,返回睡眠状态。基于竞争的MAC层协议B-MAC协议LPL机制LPL机制的能耗情况机制的能耗情况每个数据帧前都发送前导序列,如数据量大,则发送前导序列能耗较大。数据量小时,前导序列少,节点免去多次侦听的过程,能耗较少。LPL机制的机制的Tw 的取值的取值如Tw 取值过大,会造成传输过程较大的时延。如Tw 取值过小,节点在频繁的唤醒-睡眠过程中会增大能耗。Tw 的取值应根据网络流量负载的具体情况确定。基于竞争的MAC层协议B-MAC协议CCA机制LPL机制的问题机制的问题节点侦听完前导序列发现自己不是目的节点,造成能耗。节点侦听前导序列失败,造成能耗
20、和延迟。源节点错误判断信道状态发送前导序列,导致传输碰撞CCA机制机制为解决LPL机制的问题。动态本底噪声评估。信号侦测。基于竞争的MAC层协议B-MAC协议CCA机制CCA机制的工作原理机制的工作原理在一次传输结束后,节点立即对信道采样更新本底噪声估计值。在下次传输数据前,对信道进行多次采样。发现异常,则信道空闲,可发送数据。未发现异常,则信道忙碌,进行退避。传输采取信道样本 更新噪声基准采样确定是否存在异常需要传输数据发现异常未发现异常信道空闲传输数据信道忙碌采取退避噪声基准估计信号检测基于竞争的MAC层协议B-MAC协议优点优点提供一个有效的载波侦听机制,大部分错误可以被检测;噪声基准评
21、估机制使MAC协议能够适应周边环境;轻量级协议,占用空间较小;灵活多变,为上层用户提供各种接口,方便再次开发。缺点缺点未解决隐终端问题,在高密度高流量的网络中信道不能充分利用同步前导码过长,在流量负载较高时产生较大开销;CCA机制引入了额外的复杂性,也在一定程度上增加了接入时延。基于竞争的MAC层协议X-MAC协议B-MAC协议节点接收前导序列消耗能量和造成时延X-MAC是针对B-MAC协议的改进和优化。将较长的前导序列分成若干连续短序列,在这些前导序列之间有段空隙,节点在空隙处处于监听状态。目的节点只需接收一个短前导序列即可确认,向源节点发送ACK帧后,源节点停止发送剩余前导序列。数据传输后
22、,目的节点不立即睡眠,保持侦听,以便接受其他节点数据。多节点对一节点请求发送时,最先发送前导序列的节点获得优先权,其他节点等待下次竞争机会。CSMA加入冲突避免 CSMA/CA SMAC侦听/休眠机制同步异步LPL算法BMAC DSMAC根据流量动态改变占空比XMAC引入闪频前导减少前导码长度加入TA间隔减少空闲侦听T-MAC同步异步基于竞争的MAC协议基于竞争的MAC层协议基于保留时隙的MAC层协议TDMA技术节点通信基于超级帧节点通信基于超级帧(Superframe),超级帧包括预留时段预留时段(节点间通过特点机制决定各自时隙)和数据时段数据时段(多个时隙,每个时隙内特点节点可以进行通信)
23、。优势优势无需竞争信道,无碰撞问题。控制信息少,消耗能量小。节点在空闲时隙进入睡眠,节能。劣势劣势节点需同步,时隙和帧长度固定,对网络规模变化适应性差。流量低时,信道利用率低。基于保留时隙的MAC层协议TRAMA协议n每个时间帧分为随机访问和调度访问两部分,随机访问包含多个信令时隙,调度访问时隙包含多个传输时隙 n节点交换两跳内邻居信息和分配信息n流量自适应的分布式选举算法选择在每个时隙上的发送节点和接收节点 邻居协议邻居协议(NP)节点启动后处于随机接入时隙,此时节点为接收状态。通过在随机访问中交换控制信息,NP协议实现邻居信息的交互。控制信息中携带了增加的邻居的更新,如果没有更新,控制信息
24、作为通知邻居自己存在的信标。节点之间的时钟同步信息也是在随机访问中发送 每个节点发送关于自己下一跳邻居的增加更新,可以用来保持邻居之间的连通性。如果节点在一段时间内都没有再收到某个邻居的信标,则该邻居失效。基于保留时隙的MAC层协议TRAMA协议基于保留时隙的MAC层协议TRAMA协议调度交换协议调度交换协议(SEP)建立和维护发送者和接收者选择时需要的调度信息,包括调度信息生成和调度的信息交换与维护。根据高层应用产生数据的速率计算出一个调度间隔,确定可调度的时隙数,生成调度信息。节点通过分配帧广播调度信息。节点根据接收到的广播维护下一跳邻居的调度信息。基于保留时隙的MAC层协议TRAMA协议
25、自适应选举算法自适应选举算法(AEA)确定节点当前时隙应处于发送、接收还是睡眠状态。得到节点行为的预测。每个节点在本地计算自己和邻居节点在当前时隙的AEA算法输出并决定自己的行为。差错控制传输能量控制调节天线消耗的能量控制节点有效通信距离增加传输能量会增大能耗配合前向纠错机制减少传输错误率,提高能量利用效率提高信噪比可以降低数据传输错误率定定 位位ARQ功能功能:室外远距离条件下,无线信道的衰落现象非常显著。在链路层加入了ARQ机制,减少到达网路层的信息差错,可大大提高系统的业务吞吐量。ARQ类型类型 SAW(Stop-and-wait):发送端每发一个数据包就停下来,等待接收端):发送端每发
26、一个数据包就停下来,等待接收端的确认信息的确认信息。若正确,返回确认(ACK)信号,否则返回不确认(NACK)信号。发送端收到ACK后发新包,否则重发上一包。等待确认期间,信道是空的,不发送数据。由于物理层采用物理层采用OFDMAOFDMA调制方式,则可以很好的克服停等调制方式,则可以很好的克服停等协议信道利用率低的缺陷协议信道利用率低的缺陷。特点:实现简单,信令开销小,收端所需的缓存较低。ARQ机制差错控制定定 位位 GBN(Go-Back-N):):发送端发完一个包后,不停下来等确认信息,而是连续发送若干个包。接收端将每个数据包相应的ACK或 NACK信息和包的分组号反馈回发送端,当接收到
27、一个当接收到一个NACK信号时,发送端就重新发送包括错信号时,发送端就重新发送包括错误数据的误数据的N 个数据包。个数据包。特点:相比SAW增大了系统的吞吐量,但信令开销大。SR(Selective Repeat):只重传出现差错的数据包,):只重传出现差错的数据包,在收端需要相当容量的缓存空间来存储已经成功译码但还没能按序输出的分组。同时收端在组合数据包前必须知道序列号,序列号要和数据分别编码,而且序列号需要更可靠的编码以克服任何时候出现在数据里的错误,增加了对信令的要求。特点:信道利用率高,所需缓存空间和信令开销大。ARQ机制差错控制前向纠错前向纠错(FEC)FEC是一种增加信号可信度的方法利用传输冗余信息的方法,当传输中出现错误时,允许接收器再建数据FEC主要包括卷积内编码和RS外编码根据使用的信号调制方式,确定FEC中两种编码比率差错控制前向纠错差错控制混合式自动重传请求(HARQ)HARQHARQ是融合ARQ和FEC的差错控制机制在ARQ中引入FEC自动纠正经常性出现的问题,减少重传次数。提高能量利用率,降低时延HARQ-1第一次发送简单编码数据帧,出错后丢弃,发送FEC编码数据帧HARQ-2重传时只传冗余码,接收方不丢弃出错数据,将出错数据与冗余码合译,恢复正确数据