无线传感网络竞争类MAC 协议研究*

2022-08-23 01:52王智群朱明贺
通信技术 2022年7期
关键词:前导信道竞争

王智群,张 波,朱明贺,周 鑫

(1.湖州师范学院,浙江 湖州 313000;2.湖州学院,浙江 湖州 313000)

0 引言

无线通信技术的快速发展给人们的工作和生活提供了更加快速、便捷且低廉的无线通信服务。无线传感网络(Wireless Sensor Network,WSN)在国内外都是备受关注的研究热点,已经被广泛应用于国防军事[1]、医疗保健[2]、工业过程监测和控制[3]、环境观察监测[4]和智能家居[5]等军事、民用领域。

WSN 通常由部署在特定区域的大量多功能、低功耗、低成本的传感器节点组成。与传统的有线网络相比,WSN 具有价格更便宜、部署速度更快、无须布线、移动性高等优势。WSN 中传感器节点依赖电池供电,节点会利用这些电能进行大量的通信、计算和存储[6],因某些条件因素的限制,传感器节点存在能量约束和能量耗尽而导致节点失效的问题,网络通信性能将会受到影响。因此,为了延长网络的生命周期,控制无线电的网络能耗,解决“频繁通信”问题无疑成了关键[7]。MAC 协议位于无线传感网络体系中的数据链路层,负责调配网络中节点的信道接入,保障网络的高效通信。

本文第1 节简要介绍WSN 中MAC 协议的设计要点及分类;第2 节重点分析经典的竞争类MAC协议及国内外最新的研究进展;第3 节对部分竞争类MAC 协议的运行机制、性能等方面进行研究,并归纳出各协议的不足之处;最后提出竞争类MAC协议未来重点的研究方向。

1 无线传感网络MAC 协议

1.1 无线传感网络MAC 协议的设计要点

WSN 中的节点受能量、计算能力、通信等资源的约束,且各节点需要相互协作才能实现WSN强大的功能。因此,与传统无线网络中的MAC 协议相比,WSN 中的MAC 协议的设计侧重以下几个方面[8]:

(1)能量有效性。WSN 由众多节点组成,这些节点由电池供电,并且可能需要大量布置在复杂的环境当中,所以难以及时对节点的电池进行更换,因此,高效利用能量的MAC 协议对延长WSN 的生命周期有着重要的意义。

(2)可扩展性。当WSN 中的节点失效、加入和移动时,可扩展性好的MAC 协议能够适应这种网络的变化,保持WSN 性能的稳定。

(3)整体综合性能。WSN 中的节点一般最优先考虑能量有效性,但是面对有着不同需求的WSN系统,MAC 协议的设计需要综合考虑信道利用率、延迟、网络吞吐量等多种性能要求,从而达到整体综合性能优化。

1.2 无线传感网络MAC 协议分类

根据信道访问策略的不同,MAC 协议分为3大类,分别为调度类MAC 协议、竞争类MAC 协议和混合类MAC 协议[7,9]。

调度类MAC 协议的核心思想:某种调度算法将信道资源按照时隙、频段和正交码的方式进行划分,节点只能使用被分配的信道资源去通信。

竞争类MAC 协议的核心思想:节点需要通过竞争的方式来获得信道资源,如果该节点竞争失败,则采用退避算法,退避一段时间再次传输,直到传输成功或者重传次数达到上限而放弃传输。

混合类MAC 协议的核心思想:节点根据网络负载情况来选择获得信道的方式,当网络负载低的时候,采用竞争的方式来获取信道,减少了资源浪费;当网络负载高的时候,采用调度的方式来获取信道,减少了节点冲突。

调度类、竞争类和混合类MAC 协议的优缺点总结[8]如表1 所示。

表1 无线传感网络MAC 协议对比

2 WSN 竞争类MAC 协议分析

对于分布式的无线传感网络,在低负载的网络环境下,相较于其他两类协议,竞争类MAC 协议的时钟同步要求低、复杂度低、可扩展性好。根据传感器节点是否需要进行时间同步,竞争类MAC协议又分为同步竞争类MAC 协议和异步竞争类MAC 协议。表2 对一些现有的竞争类MAC 协议按年份进行了划分。从表2 中可以发现,最新的一些协议都是基于经典的协议中所出现的问题,提出新的改进思路,从而获得了能量有效性、可扩展性和整体综合性能的提升。同时,本节也重点对经典的竞争类MAC 协议进行分析研究。

表2 竞争类MAC 协议的研究进展

2.1 同步竞争类MAC 协议

2.1.1 核心思想

网络内的节点采用广播的方式与它的邻居节点交换侦听/睡眠调度表,从而进行同步。节点通过此调度表获得邻居节点信息,从而决定被唤醒和睡眠的时间,如果节点发送时与其他节点冲突,则节点需要通过竞争来获得信道。

2.1.2 经典协议

S-MAC[10]协议采取周期性的工作方式,分为同步、数据和睡眠3 个阶段。在同步阶段,节点发送包含地址信息和下一次睡眠时间的广播数据包,并且具有相同调度的相邻节点会形成虚拟簇,同一虚拟簇中的节点同步唤醒,从而同步时钟。在数据阶段,节点通过竞争获得信道,然后交换请求发送(Request-to-Send,RTS)和清除发送(Clear-to-Send,CTS)帧建立握手,接着传输数据包,同时会把长消息分隔成短的数据帧集中发送。在睡眠阶段,不通信的节点进入睡眠。S-MAC 协议通过虚拟簇减少了同步开销,减少了串听和空闲侦听时间,但是S-MAC 协议的缺陷在于节点的周期性睡眠会导致较高的端到端延迟,因为数据在一个周期中只能传输一段距离,这使得S-MAC 协议在多跳传输时增大了睡眠时延。

T-MAC[11]协议则提出了超时休眠机制,节点首先侦听一段TA时间,TA>C+R+T,C是RTS 争用间隔的长度,R是RTS 数据包的长度,T是RTS 数据包结束和CTS 数据包开始之间的短时间,如果节点在TA时间内没有侦听到任何消息,则该节点不需要等待睡眠阶段到来,可以直接进入睡眠。T-MAC协议虽然比S-MAC 协议在减少空闲侦听方面效果更好,但是过早的睡眠会导致邻居节点想要给该节点发送数据时,该节点早已睡眠,即早睡问题。虽然文献[12]通过中心极限定理动态调整TA时间来改善早睡问题,但是效果不理想。

2.1.3 研究进展

S-MAC 协议节点的周期性睡眠会导致较高的端到端延迟,文献[13]提出了S-MAC 协议的改进型,建立了一个自适应侦听机制,它会在传输末期寻找能侦听到发送过程的邻居节点,并唤醒它们。如果这些唤醒的节点中包含下一跳的接收节点,那么直接发送数据,节约了一半的时间,但是如果没有数据发送,又会造成空闲监听问题。文献[14]在文献[13]的基础上对邻居节点的范围进行了限定,只让在收发节点一跳范围的邻居节点唤醒,其余的节点进行睡眠。LD-MAC[15]协议则使用扩展RTS 帧、CTS 帧和确认帧(Acknowledge Character,ACK)来预约多跳传输的节点,但是扩展帧中的非必要信息增加了控制开销。

为了解决S-MAC 协议和T-MAC 协议中的转发中断问题,D-MAC[16]协议根据传感器节点到汇聚节点是单向的特点,构建了一个数据采集树,利用树的深度及传感器的唤醒和睡眠时间是交错的特点,实现了数据包的连续转发,减少了多跳传输中端到端的延迟,但它更适用于节点移动性低的网络。文献[17]使用载波感知控制数据包,以减少多跳传输中端到端的延迟。

RMAC[18]协议为了解决S-MAC 协议中的睡眠延迟问题,设置了一个帧来转发多跳的距离,这有利于下一跳节点知道上一跳节点通信的时间,从而在多跳传输的场景下,减少了睡眠延迟的时间,但是这个帧被转发得太多也会导致有些跳的节点出现空闲监听问题。PR-MAC 协议也是类似的设计。

上述的同步竞争类MAC 协议都不适合高负载的网络环境,因为会产生较高的延迟。DW-MAC[19]协议则提出了一种低开销调度算法来适应高负载网络,在睡眠周期内,它可以让节点按照自己的需求被唤醒,从而减少延迟。MX-MAC[20]和EM-MAC[21]等协议则提出了多信道传输的方法来减少在高负载环境下的延迟,从而提高网络吞吐量。

S-MAC 协议使用二进制指数退避,但在网络负载变化时,固定竞争窗口(Contention Window,CW)无法适应其变化从而作出调整。Sift[22]协议中的节点利用非平均概率分布于不同的时隙来发送数据,使得冲突减少。FPQoSD[23]协议则是让节点根据网络负载的大小,动态地调整CW 值。PFMAC[24]协议提出节点预测机制,并且根据节点反馈的信息调整CW 值,但是机制太过复杂。DSAMAC[25]协议提出根据传输成功和失败的次数调整CW 值,但是此协议并没有寻找失败的原因,从而导致CW 值调整得不够准确,增加了不稳定因素。

2.2 异步竞争类MAC 协议

2.2.1 核心思想

异步竞争类MAC 协议的核心思想是,节点间无须同步,而是通过发送前导序列和低功耗侦听的方式来进行通信。当发送方要发送数据时,它会发送前导序列,当接收方醒来时侦听到发送方的前导序列后保持唤醒,直到完全接收到数据。

2.2.2 经典协议

B-MAC[26]协议引入低功耗侦听(Low Power Listening,LPL)机制,在发送数据前,发送节点先发送前导序列,该前导序列大于或者等于睡眠周期,从而保证接收节点在唤醒后,能通过低功耗侦听中的空闲信道评测(Clear Channel Assessment,CCA)周期性地检查信道中的活动,从而感知到前导序列,并在前导序列发送完毕和接收节点唤醒的情况下,才能发送和接收数据。与S-MAC 协议对比,B-MAC协议不需要花费能量在节点的时间同步上,缩短了节点唤醒的时间,但是B-MAC 协议的前导序列过长,也不知道接收节点是否唤醒,即使已经唤醒,也要等待前导序列发送完毕,这导致了能量的浪费,同时也出现了串听问题。

X-MAC[27]协议将B-MAC 协议的前导序列分成许多频闪前导,当发送方有数据要发送时,会传输多个携带接收节点标识号(Identity Document,ID)的频闪前导。一个节点醒过来并接收到一个频闪前导,它会查看其中的接收节点ID,如果此节点不是接收节点,它会返回睡眠。如果是接收节点,则发送ACK 帧给发送节点,当发送节点收到接收节点ACK 帧时,则立刻停止发送频闪前导,转而发送数据。X-MAC 协议还提出了根据流量负载来调整占空比的自适应算法。该协议虽然改善了B-MAC 协议所存在的问题,但是缺陷在于接收节点在保持随机退避活跃状态的时间内,若没有其他节点与之通信,操作无效会增加时延,且可能造成串听。

2.2.3 研究进展

异步竞争类MAC 协议采用低功耗侦听[28]或者前导序列采样[29]的方法,节省了节点间同步所花费的时间和能量。

X-MAC 协议改进了B-MAC 协议前导序列过长和窃听问题,但是为了使X-MAC 协议的应用更具有广泛性,提出了CX-MAC[30]协议,它在时序上没有X-MAC 协议那么严格,适合占空比比较大的应用,它是为随机生成的流量而设计的,且不会增加延迟。MF-MAC[31]协议用一些微帧取代了连续的前导,微帧包含的字段为类型、目的地址、序列号和传入数据的散列值。接收节点可以根据微帧中的信息识别输入数据是否有用,但是这依然会产生高延迟的问题。此外,B-MAC+[32]协议、Speck-MAC[33]协议和PP-MAC[34]协议都是对前导序列进行改进后提出的协议。

除改进前导序列外,研究者们也提出了通过获取接收节点唤醒时间的方法,来减少前导序列的发送时间。WiseMAC[35]协议提出了锁时优化机制,接收节点在接收完数据之后,在发送的ACK 帧中添加自己下一次唤醒的时间信息,这样发送节点只需在接收节点醒来前的一小段时间醒来,就可避免发送过长的前导序列。但是WiseMAC 协议只适合网络负载不那么小的情况,否则又会退化到B-MAC协议的效果。PW-MAC[36]协议则设置了一个随机数生成函数来对接收节点的下一次唤醒时间进行预测。HELD-MAC[37]协议和THO-MAC[38]协议也是类似的设计。

考虑到数据在多跳传输过程中的传输延迟,Q-MAC[39]协议构建了一棵数据汇聚树,采用交错唤醒方式,通过汇聚节点向源节点发起查询来进行数据汇聚。L-MAC[40]协议也是类似的设计,但是这一类设计的网络可扩展性较差,能量消耗相对较多。

低功耗探测(Low Power Probing,LPP)[41]协议规定接收者定期发送小数据包,因此也被称为探测器,目的是告诉发送者它已经醒来并准备好接收数据,发送探针后,接收者保证它的无线电会在短时间内打开,以侦听数据包,此时发送者打开其无线电接收器并收听,直到接收到接收者的目的地址。

ContikiMAC[42]协议唤醒技术利用一种价格低廉的空闲信道评测(Clear Channel Assessment,CCA)机制来实现,这种机制使用无线电收发器的接收信号强度指示值(Received Signal Strength Indicator,RSSI)来判断指定信道的状态。同时该技术还利用了快速睡眠机制和琐时优化机制。快速睡眠机制使得节点更早地进入睡眠状态,节省能源。琐时优化机制类似于WiseMAC 协议。类似地通过收敛机制来减少数据传输延迟的协议还有CMAC[43]协议、DPS-MAC[44]协议和MH-MAC[45]协议等。

以上协议都是在低负载网络环境下效果显著,但是面对突发高负载网络环境效果不佳。突发感知高能效自适应MAC(Burst-aware Energy-efficient Adaptive MAC,BEAM)[46]协议针对此问题采用了占空比自适应算法,接收节点的睡眠时间能根据有效负荷大小来进行自适应调节。

上述协议是针对发送节点发起的数据通信,但是也有一些MAC 协议是根据接收节点发起的数据通信。RI-MAC[47]协议中接收节点根据自己的时间表定期睡眠,在低负载的环境下,它会广播一个不带竞争窗口的信标帧,让其他节点知道它已经醒来;在高负载的情况下,它会广播一个带竞争窗口的信标帧,其他节点随机选择一个退避时间,然后退避结束,传输数据。但是这样的协议也会造成发送节点唤醒时间较长,从而增加了通信延时。此外,RIX-MAC[48]协议、FTA-MAC[49]协议和TRIX-MAC[50]协议也都是接收节点所发起的通信协议,其中TRIX-MAC 协议采用树型结构进行数据汇聚。

3 WSN 竞争类MAC 协议归纳对比

基于不同的应用场景,WSN 中竞争类MAC 的设计也多种多样,表3 选取了相对有代表性的竞争类MAC 协议进行对比,对比了能量有效性、可扩展性以及信道利用率、延迟、网络吞吐量。表4 对各协议的主要机制、能量浪费的来源以及主要缺点进行了归纳总结。

表3 竞争类MAC 协议性能比较

表4 竞争类MAC 协议特点比较

通过一系列对比,笔者发现WSN 中有许多不同的竞争类MAC 协议,但是没有一种协议能够成为WSN 的标准MAC 协议,主要原因在于不同的应用场景有不同的功能需求。同时,笔者也发现同步竞争型MAC 协议即使没有数据的收发,相邻的传感器节点也需要周期性地唤醒进入活跃状态,然后交换同步包来校对时钟,这就导致在低流量的网络环境中,传感器节点消耗了大量的能量去校准时钟,导致了同步消息的网络过载,占空比进一步提高。异步竞争类MAC 协议则不需要同步,但是需要考虑低功耗的唤醒接收节点,避免串听和多余的控制开销。

4 结语

近年来,WSN 越来越受市场的青睐,吸引了众多研究者对其进行研究。本文重点研究竞争类MAC 协议。

笔者通过研究近十几年的竞争类MAC 协议的发展进程发现,早期同步竞争类MAC 协议,比如S-MAC 协议和T-MAC 协议等,有着串听和隐藏终端问题,且数据传输是不连续的,只能在一个周期内传输一跳或者两跳,造成了较高的端到端延迟,同时还伴随着高负载时高延迟等问题,这造成了能量的浪费和网络吞吐量的降低。研究者也陆续提出了一些机制来改善这些问题,如D-MAC 协议构建数据采集树,RMAC 协议设置PION 帧来预约多跳,DW-MAC 协议设计低开销调度算法以及DSA-MAC协议自适应调整竞争窗口等,但是效果有待提高。此外,笔者也发现了早期异步竞争类MAC 协议,比如B-MAC 协议,虽然克服了同步节点所带来的开销问题,但是随之产生了前导序列及串听的问题,同时存在多跳传输中延迟过高,固定的占空比也难以适应高低负载环境的变化的问题。针对这些问题,研究者们提出了改进方法,比如X-MAC 协议改进了前导序列,Q-MAC 协议构建了数据汇聚树,ContikiMAC 协议提出了新的收敛机制,BEAM 协议提出了自适应占空比机制,还有设计由接收节点发起的异步竞争类MAC 协议等,这些方法虽然在一定程度上改善了上述问题,但还是有可提升的空间。

整体而言,竞争类MAC 协议复杂度低,可扩展性好,但是在高负载时冲突多,重传次数增加,延迟高。因此,需要提高此类MAC 协议面对突发流量的能力,降低延迟;面对不同的应用场景,比如可穿戴设备,不能只考虑协议的能量有效性,而是应该综合考虑整体性能;需要关注竞争类MAC协议的安全性,通过加密算法,防止协议被攻击,造成网络的瘫痪。因此,竞争类MAC 协议的设计需要在满足网络需求的同时,改进整体性能。

猜你喜欢
前导信道竞争
信号/数据处理数字信道接收机中同时双信道选择与处理方法
小学数学课前导入改进措施分析
基于“三思而行”的数学章前导学课设计——以《数的开方》(导学课)为例
一种无人机数据链信道选择和功率控制方法
感谢竞争
NB—IoT系统物理随机接入信道设计
基于导频的OFDM信道估计技术
儿时不竞争,长大才胜出
竞争
农资店如何在竞争中立于不败之地?