1、DMAC协议在课堂上学习了竞争型的S-MAC协议以及分配型的SMACA协议,课下我通过查阅一些资料又了解到一种MAC协议DMAC协议。SMAC协议和TMAC协议一样,采用周期性的活动、睡眠策略来减少能量消耗,但会出现数据在转发过程中“走走停停”的数据通信停顿问题。例如,通信模块处于睡眠状态的节点,如果检测到事件就必须等到通信模块转换到活动周期才能发送数据:中间节点要转发数据时,下一跳节点可能处于睡眠状态,此时也必须等待它转换到活动周期。这种节点睡眠带来的延迟会随着路径上跳数的增加而成比例增加。传感器网络中一种重要的通信模式是多个传感器节点向一个汇聚节点发送数据。所有传感器节点转发收到的数据,形
2、成一个以汇聚节点为根节点的树型网络结构,称为“数据采集树”。这种数据采集树结构可以减少节点睡眠所带来的数据延迟和能量消耗。DMAC协议就是针对这种“数据采集树”结构提出的,目标是减少网络的能量消耗和减少数据的传输延迟。1. 基本思想DMAC协议的核心思想是采用交错调度机制。下图所示为DMAC协议的交错调度机制示意图。该机制将节点周期划分为接收时间、发送时间和睡眠时间。其中接收时间和发送时间相等,均为一个数据分组的时间。每个节点的调度具有不同的偏移,下层节点的发送时间对应上层节点的接收时间。这样,数据能够连续地从数据源节点传送到汇聚节点,减少在网络中的传输延迟。DMAC协议采用ACK应答机制,发
3、送节点如果没有收到ACK应答,要在下一个发送时间重发,接收节点正确接收到数据后,立刻发送ACK。为了减少发送数据的冲突,每个节点在发送数据之前先退避一个固定时间(Backoff Period,BP),在冲突窗口(Content Window,CW)内随机选择发送等待时间。接收到数据的节点在等待一个短周期(Short Period,SP)后回复一个ACK应答。发送周期和接收周期的长度用表示:式中,DATA为数据包的传输时间,ACK为ACK帧的传输时间。DMAC协议的具体实现是通过自适应占空比机制和数据预测机制来实现的。以下详细介绍自适应占空比机制和数据预测机制2. 关键技术1) 自适应占空比机制
4、DMAC协议中,如果节点在一个发送周期内有多个数据包要发送,就需要该节点和树状路径上的上层节点一起加大发送周期占空比。DMAC协议引入了一种新的机制:自适应占空比机制,使占空比能自适应调整。该机制通过在MAC层数据帧的帧头加入一个标记(More Data Flag),设置为1表示发送节点还有数据需要发送;在ACK分组头中增加同样的标志位,设置为1表示接收节点准备好继续接收数据。当收到下一跳节点发来标志设置为1的数据分组时,节点设置它的数据分组中的标志为1。根据自适应占空比机制的规则,节点决定增加活动周期的条件是:节点发送了标志设置为1的数据分组,或者收到了标志设置为1的ACK分组。自适应占空比
5、机制的优点是,数据在传输路径上逐跳进行预约,从而能够提高网络的数据传输效率。2) 数据预测机制在数据采集树中,越靠近上层的节点,汇聚的数据越多,所以对数据的底层节点适合的占空比不一定适合中间节点。比如节点A和节点B有共同的父节点C,节点A和节点B在每个发送周期都只有一个数据包要发送。如果节点A通过竞争获得了信道,就向节点C发送数据,节点C在接收到数据后向节点A发送一个ACK,随后进入睡眠状态,这样就给节点B的数据带来了睡眠延迟。DMAC协议引入了数据预测机制来解决此问题。如果一个节点在接收状态下接收到一个数据包,该节点预测子节点仍有数据等待发送。在发送周期结束后再等待个周期之后,节点重新切换到
6、接收状态。所有接收到该数据包的节点都执行这样一个操作,增加一个接收周期,在这个增加的接收周期中,节点如果没有接收到数据则直接转入睡眠状态,不会进入发送周期。如果接收到数据,那么在个周期之后再增加一个接收周期。在节点发送周期内,如果节点竞争信道失败,会接收到父节点发给其他节点的ACK,那么节点就知道父节点在个周期后会增加一个接收周期,所以节点在睡眠个周期之后进入发送状态,在这个增加的发送周期内向父节点发送数据。3. 特点DMAC协议具有如下特点:DMAC协议是一种针对树状数据采集网络提出的能量高效、低延迟的MAC协议。DMAC协议根据节点在数据采集树上的深度为节点分配交错的活动/睡眠周期,在占空比方式下避免了数据多跳传输中的睡眠延迟。通过引入自适应占空比机制,DMAC协议能根据网络数据流量动态地调整占空比。