S-MAC协议
发布时间:2012/3/28 19:11:30 访问次数:7091
S-MAC协议是在IEEE 802.11协议的SC9636-006基础上针对传感器网络节省能量的需求设计的。为了降低由于碰撞重传、串音、空闲侦听和控制消息可能造成的能量消耗,S-MAC协议采用以下机制。
①S-MAC协议引入了周期性侦听/睡眠的低占空比机制,通过控制节点的睡眠降低能量消耗。
②S-MAC协议沿用IEEE 802.11的RTS/CTS机制降低碰撞几率。
③通过网络分配矢量避免串音现象。
④将长消息分割为若干段消息并集中突发传送,减少协议控制消息的开销。
⑤S-MAC协议将时间分为若干帧,每帧包括同步阶段、活动阶段和睡眠阶段。在同步阶段,节点广播一个同步分组SYNC,包含本节点的调度信息(节点何时睡眠)。在活动阶段,节点参照邻居的调度信息与邻居进行通信,并发送(或转发)在睡眠阶段发送队列内积存的数据分组。在睡眠阶段,节点关闭无线收发器,以节省能量。S-MAC协议的基本机制如图2-2所示。
S-MAC协议实现简单,减少了空闲监听时间,避免了传输碰撞和串音现象,减少了协议控制开销,节省了能量开销。但由于周期性睡眠的原因,S-MAC协议数据的延迟较大,在不同的网络员载下,尤其是负载波动剧烈的情况下算法的效率将降低。
S-MAC协议实现的关键技术如下。
(1)数据包的嵌套结构
在S-MAC协议中,上一层数据包包含了下一层数据包的内容。数据包传送到哪一层,那一层只需要处理属于它的部分。
(2)堆栈结构和功能
在S-MAC协议堆栈内,当MAC层接收到上层传送过来的数据包后,它就开始载波侦听。如果结果显示MAC层空闲,它就会把数据传到物理层;如果MAC层忙,它将会进入睡眠状态,直到下一个可用时间的到来,再重新发送。当MAC层在收到物理层传送过来的数据包后,先通过循环冗余校验(CRC)表示没有错误,MAC层就会将数据包传向上层。
(3)选择和维护调度表
在开始周期性侦听和睡眠之前,每个节点都需要选择睡眠调度机制并与邻居节点一致。如何选择和保持调度机制分为以下3种情况。
①节点在侦听时间内,如果它没有侦听到其他节点的睡眠调度机制,则立即选择一个睡眠调度机制。
②当节点在选择和宣布自己的调度机制之前,收到了邻居节点广播的睡眠调度机制,它将采用邻居节点的睡眠调度机制。
③当节点在选择和广播自已的睡眠调度机制之后,收到几种不同的睡眠调度机制时,就要分以下两种情况考虑:当节点没有邻居节点时,它会舍弃自己当前的睡眠调度机制,采用刚接收到的睡眠调度机制;当节点有一个或更多邻居节点时,它将同时采用不同的调度机制。
(4)时间同步
在S-MAC协议中,节点与邻居节点需要保持时间同步来同时侦听和睡眠。S-MAC协议采用的是相对而不是绝对的时间戳,同时使侦听时间远大于时钟误差和漂移,来减少同步误差,并且节点会根据收到的邻居节点的数据包来更新自己的时间,从而与邻居节点保持时间同步。
(5)带冲突避免的载波侦听多路访问
带冲突避免的载波侦听多路访问( CSMA/CA)的基本机制是在接收者和发送者之间建立一个握手机制来传输数据。
握手机制是:由发送端发送一个请求发送( RTS)包给它的接收者,接收者在收到以后就回复一个准备接收(CTS)包,发送端在收到CTS包后,开始发送数据包,RTS与CTS之间的握手是为了使发送端和接收端的邻居节点知道它们正在进行数据传输,从而减少传输碰撞。
(6)网络分配矢量
在S-MAC协议中,每个节点都保持了一个网络分配矢量(NAV)来表示邻居节点的活动时间,S-MAC协议中在每个数据包中都包含了一个持续时间指示值,持续时间指示值表示目前这个通信需要持续的时间。邻居节点收到发送者或接收者发往其他节点的数据包时,就可以知道它需要睡眠多久,即用数据包中的持续时间更新NAV昀值,当NAV的值不为零时,节点应该进入睡眠状态来避免串音。当NAV变为零时,它就马上醒来,准备进行通信。
与IEEE 802.11 MAC相比,S-MAC协议尽量延长其他节点的休眠时间,降低了碰撞概率,减少了空闲侦听所消耗的能源;通过流量自适应的侦听机制,减少消息在网络中的传输延迟;采用带内信令来减少重传和避免监听不必要的数据;通过消息分割和突发传递机制来和带内数据处理来减少控制消息的开销和消息的传递延迟。因而S-MAC协议具有很好的节能特性,这对无线传感网络的需求和特点来说是合理的,但是由于S-MAC中占空比固定不变,因此它不能很好地适应网络流量的变化,而且协议的实现非常复杂,需要占用大量的存储空间。这个对于资源受限的传感器节点尤为突出。
S-MAC协议是在IEEE 802.11协议的SC9636-006基础上针对传感器网络节省能量的需求设计的。为了降低由于碰撞重传、串音、空闲侦听和控制消息可能造成的能量消耗,S-MAC协议采用以下机制。
①S-MAC协议引入了周期性侦听/睡眠的低占空比机制,通过控制节点的睡眠降低能量消耗。
②S-MAC协议沿用IEEE 802.11的RTS/CTS机制降低碰撞几率。
③通过网络分配矢量避免串音现象。
④将长消息分割为若干段消息并集中突发传送,减少协议控制消息的开销。
⑤S-MAC协议将时间分为若干帧,每帧包括同步阶段、活动阶段和睡眠阶段。在同步阶段,节点广播一个同步分组SYNC,包含本节点的调度信息(节点何时睡眠)。在活动阶段,节点参照邻居的调度信息与邻居进行通信,并发送(或转发)在睡眠阶段发送队列内积存的数据分组。在睡眠阶段,节点关闭无线收发器,以节省能量。S-MAC协议的基本机制如图2-2所示。
S-MAC协议实现简单,减少了空闲监听时间,避免了传输碰撞和串音现象,减少了协议控制开销,节省了能量开销。但由于周期性睡眠的原因,S-MAC协议数据的延迟较大,在不同的网络员载下,尤其是负载波动剧烈的情况下算法的效率将降低。
S-MAC协议实现的关键技术如下。
(1)数据包的嵌套结构
在S-MAC协议中,上一层数据包包含了下一层数据包的内容。数据包传送到哪一层,那一层只需要处理属于它的部分。
(2)堆栈结构和功能
在S-MAC协议堆栈内,当MAC层接收到上层传送过来的数据包后,它就开始载波侦听。如果结果显示MAC层空闲,它就会把数据传到物理层;如果MAC层忙,它将会进入睡眠状态,直到下一个可用时间的到来,再重新发送。当MAC层在收到物理层传送过来的数据包后,先通过循环冗余校验(CRC)表示没有错误,MAC层就会将数据包传向上层。
(3)选择和维护调度表
在开始周期性侦听和睡眠之前,每个节点都需要选择睡眠调度机制并与邻居节点一致。如何选择和保持调度机制分为以下3种情况。
①节点在侦听时间内,如果它没有侦听到其他节点的睡眠调度机制,则立即选择一个睡眠调度机制。
②当节点在选择和宣布自己的调度机制之前,收到了邻居节点广播的睡眠调度机制,它将采用邻居节点的睡眠调度机制。
③当节点在选择和广播自已的睡眠调度机制之后,收到几种不同的睡眠调度机制时,就要分以下两种情况考虑:当节点没有邻居节点时,它会舍弃自己当前的睡眠调度机制,采用刚接收到的睡眠调度机制;当节点有一个或更多邻居节点时,它将同时采用不同的调度机制。
(4)时间同步
在S-MAC协议中,节点与邻居节点需要保持时间同步来同时侦听和睡眠。S-MAC协议采用的是相对而不是绝对的时间戳,同时使侦听时间远大于时钟误差和漂移,来减少同步误差,并且节点会根据收到的邻居节点的数据包来更新自己的时间,从而与邻居节点保持时间同步。
(5)带冲突避免的载波侦听多路访问
带冲突避免的载波侦听多路访问( CSMA/CA)的基本机制是在接收者和发送者之间建立一个握手机制来传输数据。
握手机制是:由发送端发送一个请求发送( RTS)包给它的接收者,接收者在收到以后就回复一个准备接收(CTS)包,发送端在收到CTS包后,开始发送数据包,RTS与CTS之间的握手是为了使发送端和接收端的邻居节点知道它们正在进行数据传输,从而减少传输碰撞。
(6)网络分配矢量
在S-MAC协议中,每个节点都保持了一个网络分配矢量(NAV)来表示邻居节点的活动时间,S-MAC协议中在每个数据包中都包含了一个持续时间指示值,持续时间指示值表示目前这个通信需要持续的时间。邻居节点收到发送者或接收者发往其他节点的数据包时,就可以知道它需要睡眠多久,即用数据包中的持续时间更新NAV昀值,当NAV的值不为零时,节点应该进入睡眠状态来避免串音。当NAV变为零时,它就马上醒来,准备进行通信。
与IEEE 802.11 MAC相比,S-MAC协议尽量延长其他节点的休眠时间,降低了碰撞概率,减少了空闲侦听所消耗的能源;通过流量自适应的侦听机制,减少消息在网络中的传输延迟;采用带内信令来减少重传和避免监听不必要的数据;通过消息分割和突发传递机制来和带内数据处理来减少控制消息的开销和消息的传递延迟。因而S-MAC协议具有很好的节能特性,这对无线传感网络的需求和特点来说是合理的,但是由于S-MAC中占空比固定不变,因此它不能很好地适应网络流量的变化,而且协议的实现非常复杂,需要占用大量的存储空间。这个对于资源受限的传感器节点尤为突出。
上一篇:T-MAC协议