设计重点:
节省能量
避免能量浪费
可扩展性
适应动态拓扑
网络效率
一般MAC协议追求:吞吐量、公平性、带宽利用率…
传感器节点的能耗分析
组成模块的能耗
无线通信模块的状态划分
可能造成网络能量浪费的主要原因:
冲突 Collisions
串音 Overhearing
空闲监听 Idle listening
控制消息开销 Protocol overhead
信道共享方式:
点对点
只有两个节点共享无线信道。在单信道时,两个节点可以通过半双工方式实现共享,
在双信道时,可实现全双工通信。
点对多点
一般用于有固定基础设施控制的无线信道,例如蜂窝移动系统的无线信道。这时,
终端在中心站的控制下共享一个或多个无线信道。
多点共享
是指多个终端共享一个无线信道。例如对讲机。一个终端发送信号,所有的终端都
可以听到,即相当于一个全互连的网络。也称为一跳共享无线信道。
多跳共享广播信道:
节点通信范围有限
覆盖范围内的节点(称为邻居)才能够接收到
覆盖范围以外的节点感知不到任何通信的存在
优势
发送节点覆盖范围以外的节点不受发送节点的影响,大大提高频率的空间复用度
多跳共享对协议的影响
报文冲突与节点所处的地理位置相关
局部事件VS全局事件
带来隐藏终端、暴露终端等一系列的问题
隐发送终端 控制报文握手:
当A要向B发送数据时,先发送一个控制报文RTS
B接收到RTS后,以CTS控制报文回应
A收到CTS后才开始向B发送报文
如果A未收到CTS,A认为发生了冲突,延迟重发RTS;隐发送终端C听到B发送的CTS,
知道有节点(A)要向B发送报文,C延迟发送,解决了隐发送终端问题。
隐接收终端:
当C听到B发送的CTS控制报文而延迟发送
若D向C发送RTS控制报文请求发送数据
因C不能发送任何信息,所以D无法判断是RTS控制报文发生冲突,还是C没有开机,
还是C是隐终端,只能认为RTS报文冲突,就重新向C发送RTS。
单信道时,隐接收终端问题无法用握手机制解决。
MAC协议分类
竞争型MAC协议:
主要思想
按需使用信道。
当节点需要发送数据时,通过竞争方式使用无线信道;如果发送的数据产生了冲突,
就按照某种策略重发数据,直到数据发送成功或者放弃发送
典型代表
CSMA/CA(Carrier Sense, Multiple Access with collision avoidance)
S-MAC、T-MAC、B-MAC、P-MAC、Sift……
IEEE 802.11 MAC
两种访问控制方式
分布式协调(Distributed coordination function, DCF)
基本访问控制方式
CSMA/CA
随机避退
主动确认
点协调(Point coordination function, PCF)
可选的访问控制方式
基于优先级
接入点(Access point, AP) 协调数据收发
轮询
CSMA/CD的主要思想:
1.送出数据前,监听媒体状态,若无人使用媒体,维持一段时间后,再等待一段随机
的时间后依然没有人使用,立即送出数据。由於每个设备采用的随机时间不同,所
以可以减少冲突的机会。
2.送出数据前,先送一段小小的请求传送报文(RTS) 给目标端,等待目标端回应
CTS报文后,才开始传送。 利用RTS-CTS握手(handshake)程序,确保接下来传
送资料时,不会发生碰撞。
媒体监测方法:
一种是基于物理层的载波检测CS,从接收射频或天线信号检测信号能量或根据接收信号
的质量来估计信道的忙闲状态;
另一种是虚拟载波监听CS方式,通过MAC报头或RTS/CTS中的NAV来实现。
只要其中之一指示信道正在被使用,信道就被认为已处于忙状态。 见下图:
DIFS>PIFS>SIFS
确定退避时间(random backoff interval)
退避时间=Random()* aslottime
aSlottime,是1个时槽时间,包括发射启动时间、媒体传播时间、检测信道的响应时间等。
Random() 是[0,CW]内均匀分布的伪随机整数。CW是指当前的竞争窗口,CWmin和CWmax是CW取值的上下限,由物理层决定。
S-MAC 协议
基本思想:
采用周期性的休眠/侦听方法减少空闲侦听带来的能量损耗;
当有节点收发数据时,与此无关的邻居节点进入休眠减少冲突与串音带来的能量损耗;
采用消息传递机制,减少控制消息带来的能量损耗;
采用自适应的侦听机制,减少消息传输延迟
时间同步维护:
时钟漂移 → 同步错误
为了避免该错误的发生,使用 “相对时间戳”
发送节点记录从发送完数据包到进入睡眠所需等待的时间Ts
接收节点接收数据包所用的时间Tr
Ts-Tr就是接收节点需要调整的时间
重传的问题
什么是“消息(Message)”?
是具有密切的内部联系的数据的集合,只有得到完整的数据才可以在网络内部进行数据处理、聚合
长消息 ->重传的代价高
短消息 ->传输的代价高
消息传递机制
思想
将长的信息包分成若干个短的信息段DATA;
使用一个RTS/CTS控制分组占用信道;
每个DATA都有ACK保障传输成功;
任一DATA未收到应答,则立刻重传
优点
降低重传代价
减少竞争延迟
特点
周期性的休眠/唤醒,降低idle时间
串音避免
消息传递
自适应侦听
缺点
调度周期是固定的,不适应网络流量变化
簇边界节点能量消耗快——GSA
仅减少1跳传输延迟——FPA
T-MAC协议
动态调整调度周期中的活跃时间长度
在TA时间内没有发生激活事件则进入睡眠
TA选择:
TA 决定了每个周期的最短空闲侦听时间。
TA的取值约束:
TA > C+R+T
C – 竞争信道的时间;
R – 发送RTS包所需的时间;
T – 转换时间;
TA = 1.5 * (C+R+T);
优点
提高了吞吐率、减少延时
缺点
额外的通信开销
降低能量效率
满缓冲区优先策略:
B-MAC
B-MAC 的目标:
低功耗的操作
有效的冲突避免
简单实现
高效率的信道利用率
可以扩展
B-MAC 使用了一个自适应的前导侦听(preamble sampling)模式减少占空比,从而让idle listening时间小
节点可以自定义休眠唤醒间隔
通过一个足够长的前导码提醒接收者.
发送端利用空闲信道评估算法进行竞争
优点
无需同步
RTS/CTS (可选)
接口非常简单
缺点
发送延迟很长
在网络流量大的时候性能很差
可能有隐藏终端的问题
低功耗侦听(Low power listening ,LPL)
Goal: 让侦听的代价最小
节点周期性的醒来,检查新道上是否有其他节点的发送请求(前导码)
如检测到前导码,节点进入接收状态
发送者使用一个很长的前导码来提醒接收者
在数据接收完成后或者超时,收发方再次进入周期休眠模式
传感器网络通信类型:

Sift MAC协议
空间和时间相关性
并非每个节点都要报告事件
感知事件的节点密度随时间变化
常规窗口竞争协议
在[1,CW]时间长度窗口内,等概率选择发送时槽
冲突时就倍增时间窗口大小CW,等概率选取发送时间
可能引起的问题
多个节点同时闲忙,竞争频繁,调整CW值需要的时间长;
如果CW初始值比较大,而同时检测一个事件的节点数目较少时,报告的延迟较大;
所有活动节点都有机会发送数据,消耗的能量高
设计目标
N个节点同时监测到一个事件,希望在最短时间内有R个节点(R<=N)无冲突发送事件消息
核心思想:
采用固定长度的竞争窗口CW,节点不是等概率的从发送窗口选择时槽,而是在不同时槽选择发送数据的概率
如果节点有消息需要发送,
假设目前参与竞争的节点数 N,竞争时间窗口[1,CW]中的时槽。
如果第一个时槽节点本身没有发送消息,也没有其他节点发送消息,则节点减小假想的竞争发送节点数,
并增加在第二个时槽中发送信息的概率;
该过程在每一个是槽内进行。
实现简单
固定竞争窗口大小、
用递增的非均匀概率分布选择时槽的机制
提高事件响应的实时性、带宽利用率
适合冗余、竞争、空间相关的应用场景
没有充分考虑能量效率
对于接收节点的空闲状态考虑较少
适用于分簇网络
竞争型MAC协议
算法简单
可扩展性好
拓扑变化自适应
流量变化自适应
规模变化自适应
从发送数据的节点考虑问题
能量Vs传输延迟,应用相关,需要折衷
分配型MAC协议
竞争型缺点:
冲突
降低能量效率
降低带宽利用率
解决方案
采用某种方式将信道划分为子信道
用调度表(schedule), 对子信道动态/静态分配
用分配避免了冲突、串音、空闲侦听
多路访问:
频分多址Frequency Division Multiple Access, FDMA
将可用频段划分为许多子频段,并将这些子频段分给不同的节点,每个节点可以在其专有的子频段发送数据。
时分多址Time Division Multiple Access, TDMA
将时间轴分为固定长度的时间帧(也称超帧),每个时间帧分为固定数量的时隙。
每个节点在此时隙中周期性的收发数据。
码分多址Code Division Multiple Access, CDMA
节点通过一个比所需要的频带宽得多的频带发射信号,使用不同的编码来区分其传输
。接收机必须知道发射机所用的码。
基于TDMA的MAC协议
流量自适应的介质访问协议: