一、S-MAC(Sensor-MAC)协议
1、概念:一种用于WSN的低能耗MAC协议。
2、设计考虑因素:
① 能量效率:WSN中的节点难以充电和更换,节点生存时间短。
② 可扩展性和自适应性:WSN中的网络规模、拓扑结构可能发生变化。
③ 其他:公平性、延时、吞吐量、带宽利用率等。
3、设计目标:
① 从所有的能耗源着手尽可能降低能量损耗。
② 在公平性、高信道利用率和低延时之间进行折中设计,以降低能量损耗。
| 主要的能耗源 | 解决方法 |
|---|---|
| 碰撞 :需要重传损坏的分组包 | 使用RTS-CTS机制 |
| 监听 :获取发送给其他节点的分组包 | 当节点无数据发送或接收时,将射频前端关闭 |
| 控制开销 : 收发过程中控制分组包 | 使用消息传递机制 |
| 空闲侦听 : 侦听潜在的流量数据 | 使用周期性侦听和睡眠 |
4、网络假设:
① WSN中的节点以Ad hoc模式部署
② 通信传输以节点间的通信为主,而非以与基站传输为主
③ 节点间协作完成某种应用任务
④ 节点能够实行自配置
5、特征:
① 协调睡眠:以周期性的侦听和睡眠方式实现
- 每个节点都周期性地进入睡眠模式,在此模式下,射频前端关闭,并设置计时器唤醒节点,再次进入侦听模式。(睡眠和侦听的时长依据应用场景而定)
- 邻居节点是同步的,即一起侦听和睡眠,以降低控制开销。(并非所有邻居节点都一起同步)
- 多个邻居节点要与同一个节点通信时,它们需要采用RTS-CTS竞争机制使用媒质资源。
- 节点进行数据传输时,不会进入周期睡眠模式,直到数据传输完毕。
- 每个节点都维持一个调度表,存储所有它已知的邻居节点,调度表的更新通过广播同步包SYNC完成。
- 每个节点之间的时钟飘移可能会导致同步差错,因此侦听周期要远大于预测的时钟飘移值,以维持同步。(时钟飘移:抖动频率小于10HZ)
② 自适应侦听:事件驱动
- 当事件发生时,需要将节点进行模式切换,从low-duty-cycle模式切换到更活跃的模式,以降低延时。
③ 碰撞和监听避免
- 碰撞避免:采用与IEEE 802.11中的RTS-CTS机制类似
- 监听避免:干扰节点在收到RTS或CTS包后,进入睡眠状态。
④ 消息传递
- 消息:是有意义的、相互关联的数据单元
- 面临的问题:长的消息分组包,在重传时代价太大;短的消息分组包,则会导致高的控制开销。(每次传输都要使用RTS、CTS)
- 解决办法:将消息分片,并以突发模式传输,利用MAC层的ACK机制实现分片级的差错恢复。这样就可以降低消息时延和控制开销,但公平性也因此降低。
二、Z-MAC(Zebra-MAC)协议
1、概念:一种用于WSN的混合型MAC协议。(结合了TDMA和CSMA的优势)
2、特征:
① 基本的数据传输以TDMA调度为基础,但节点又可以通过竞争机制在任何时隙内传输数据,从而获取高的信道利用率和低的竞争开销。
② 采取 DRAND(一种分布式的TDMA调度策略) 调度方式,可以使同一干扰区域内的两个节点分配到不同时隙,满足无冲突传输调度的需求。 上图中左侧的是TDMA调度下的时隙分配,右侧的是DRAND调度下的时隙分配,可以看出,在不同的干扰域,节点的传输不会相互影响,但是普通的TDMA调度要使用更多的时隙来进行分配,可能会导致资源的浪费,而DRAND调度则可以高效地分配时隙,能够节约资源并且降低时延。
③ 明确竞争通告(ECN:Explicit Contention Notification):用于通知所有的两跳邻居,不要在此时隙内发送数据。
- 如果一个节点经历高强度竞争(可以通过丢失ACK检测),它将会发送ECN信息。
- 当一个节点接收到ECN消息后,它将设置HCL标志,表示当前处于高竞争级别场景。
- 当一个节点收到单跳节点I的ECN消息后,如果该节点处于节点I的路由路径上,它将转发一个两跳ECN消息,否则将丢弃接收的单跳ECN消息。
(注:图源自中国大学MOOC网中的无线传感网技术课程)