无线传感网络MAC协议:R-MAC
摘要: 为了满足无线传感器网络对能量的要求,人们提出了占空比MAC协议.虽然现有的占空比MAC协议,如S-MAC是节能的,但是它们造成了显著的端到端延迟问题,并在解决流量争用问题中有较差的性能。在本文中,我们提出了一种新的占空比MAC协议RMAC(路由增强MAC协议),利用交叉层路由信息方法在不牺牲能量效率的同时来避免这些问题。在RMAC中,一个设置控制帧可以跨越多个跳点,并沿着这条路线调度对即将到来的数据包传送。沿着这些跳的每个中间中继节点在预定的时间休眠和智能唤醒数据包,以便它的上游节点可以发送数据包给它,它可以立即转发数据包给它的下游节点。当无线介质争用发生时,RMAC通过在一个周期内通过多个跃点发送数据包,将竞争流量从繁忙的区域转移出去,帮助快速减少区域内的竞争。
R-MAC概要: 为了减少duty-cycle MAC协议的端到端交付延迟,该协议应该能够在一个操作周期内转发数据包多个跳。RMAC的设计基于这样一个事实:为了实现这一点,数据转发路径上的节点只有在实际发送或接收数据包时才需要唤醒。因此,RMAC沿着数据转发路径发送一个小的控制帧,以允许沿着路径的所有节点学习何时被唤醒,以便从直接的上游节点接收数据包并将其转发给直接的下游节点。
如Fig2图所示,RMAC中传感器节点的运行周期可分为三个阶段: SYNC, DATA, 和SLEEP。当一个数据包被发送到距离它有多个跳的目的节点时,在DaTA周期内发送一个控制帧来发起与下游节点的通信。RMAC不是在两个节点之间使用一对RTS和CTS帧,而是使用一系列名为PIONs(先锋帧),跨越多个跳跃。一个节点发送一个PION介子以确认从其上游节点接收到一个PION介子,并同时请求从下游节点进行通信。在SLEEP期间,节点进入睡眠状态,除了那些有通信任务的节点(由PIONs设置)。
R-MAC原理:
- Pioneer Control Frame (PION):当节点有数据要发送时,节点在数据周期开始时发起请求。在contention window(CW)监听一段时间,如果信道为空,在等待DIFS时间向A节点传输PION包。PION包包括RTS中所有的字段,并且还包括当前数据流的最终地址和PION包经过的跳数。当A接收到S的PION时,如果A不是这个数据流的最终目的地,那么A从它自己的网络层获得这个目的地的下一跳地址。A等待SIFS时间段发送PION包;A会将PION包发送给S作为回应,还会发送给B,通知B在某个时刻醒来。当S接收到PION包时,不会立刻发送数据给A,而是等到SLEEP周期发送数据。在DATA周期是用来发送和接收PION包,建立数据通信连接。
- Data Transmission :在Fig3中,当节点S接收到节点A发来的PION确认包后,它会等到在SLEEP周期中发送数据;节点A被唤醒接收数据,之后返回ACK包确认。S节点接收ACK包后进行休眠。依次类推,直到数据包传送到最终目的地址。
- 当SLEEP周期开始时,节点S和A立即开始发送/接收它们的数据帧,DATA周期内参与PION介子传输的多跳路径上的其他节点进入休眠状态,以节省能量。每个节点随后会在正确的时间醒来,从上游节点接收数据帧并将其发送到下游节点。例如,节点B可以在SLEEP周期开始时进入睡眠状态,但当A准备将数据帧转发给B时,它会在预定的时间苏醒。
- 节点被唤醒的时间计算公式,假设一个节点是PION介子传输过程中的第i跳,则被唤醒的时间Twakeup (i)应该为: