S-MAC协议

来源:互联网 发布:linux解压tgz文件命令 编辑:程序博客网 时间:2024/05/16 06:25

S-MAC是一种以节能为首要目的的无线传感器网络的MAC层协议。主要思想是使节点周期性地休眠以减少串音侦听和空闲侦听导致的时延,来降低能量的消耗。如果有消息需要发送,通过握手机智竞争通道,在侦听阶段发送。S-MAC协议中节点采用退避机制竞争信道。一个完整的侦听和休眠过程叫一个周期。在每个周期开始时,消息队列非空的节点会从[0,W-1]中随机选择一个退避数,其中,W为竞争窗口的大小,协议中规定竞争窗口的大小不变。选择退避数后,如果信道保持空闲且持续一个时隙的时间,则节点的退避数会在时隙结束后减1。当网络中某节点的退避数首先减少为0时,该节点将发送数据,如果2个或者2个以上的节点同时发送数据,则会造成冲突。而那些未能发送数据的节点会因为侦听到信道状况变为繁忙而取消当前的退避转而进行休眠,等待下一个周期的到来。

主要功能模块:

1.  周期性侦听与休眠机制

每个节点周期性地进入休眠状态,周期长度固定,节点的侦听活动时间也是固定的。节点苏醒后进行侦听,判断是否需要通信。为了便于通信,相邻节点间应尽量维持调度同步,并维护一张时间调度表,记录所有已知相邻节点的侦听与休眠调度信息。允许一个节点采用多个休眠调度,以使采用不同休眠调度的节点可以通过此类节点进行数据转发,能使网络在多跳情况下正常工作。各节点需要周期性地更新它们的休眠时间,防止长期的时钟漂移。

2.  消息冲突与串音避免机制

采用类似于IEEE802.11DCF中的冲突避免机制,还采用RTS/CTS机制解决隐终端问题。为了避免串音,S-MAC协议使节点在接收到发往其他节点的RTS和CTS消息后进入休眠。

3.  长消息传递机制

采用一种称为“消息传递”的机制来高效地传送长数据消息。只使用一个RTS和CTS消息为所有短数据包预约通道,每个数据包分开进行确认。若一个节点在某一发送节点发送的中间被唤醒或一个新节点在发送的中间加入网络,不管该节点是发送节点的相邻还是接收节点的相邻都应立即进入休眠状态。若数据段丢失或出错,发送节点可以延长发送时间。