T-MAC(TimeoutMAC)协议是针对S-MAC协议的侦听/睡眠周期固定不变、不能适应网络负载的变化而变化的问题提出来的。T-MAC协议主要思想是:在保持周期长度不变的情况下,根据网络负载的变化动态的调整侦听时长,减少节点空闲侦听的时间,节省节点的能量。
T-MAC原理
T-MAC协议与S-MAC协议的不同点在于:S-MAC在没有数据收发的情况下,射频处于活动状态时一直保持监听的状态,而T-MAC协议的节点仅监听信道TA时间,没有检测到数据传输就立即进入睡眠状态,这样会很大程度上缩短节点空闲侦听时间。T-MAC协议遵循了S-MAC数据传输采用4次握手机制RTS/CTS/DATA/ACK,期间内增加一个TA (TimeActive)时间。节点周期性醒来先监听信道TA时间,在该时间内如果没有以下事件则提前进入睡眠:
- 节点收到数据
- 数据传输冲突
- 数据确认或发送完成
- 邻居节点数据完成交换
TA时间的长短决定了每个周期最小的空闲侦听时间,其取值是否适当很大程度上影响T-MAC协议性能,TA时间需要满足的条件为:TA>C+R+T, C是竞争信道的时间,R是发送RTS分组的时间,T是RTS分组结束到发出CTS分组幵始的时间。T-MAC的睡眠调度如下图所示,当以上几种激活事件没有发生的时间超过TA时间,就进入睡眠状态,这样射频的活跃状态可根据网络负载的变化而变化了。