浅谈Ad-Hoc网络中的单信道接入协议
2016-09-08潘星宇陈凤玲郑州华航科技股份有限公司郑州电力高等专科学校
潘星宇陈凤玲/ .郑州华航科技股份有限公司.郑州电力高等专科学校
浅谈Ad-Hoc网络中的单信道接入协议
潘星宇1陈凤玲2/ 1.郑州华航科技股份有限公司2.郑州电力高等专科学校
单信道接入协议是Ad-Hoc网络中的一类重要M AC层协议。通过分析具有代表性的M ACA协议及其改进协议,对比它们的优缺点和不同之处,对协议的后续改进方向提出了建议。
M ACA;M ACAW;M ACA-BI;M ACA-PR
引言
单信道接入协议是基于这样一个模型:即只有一个共享信道,所有的控制报文和数据报文都在一个信道上发送和接收。单信道的Ad-Hoc网络有可能在控制报文之间、控制报文和数据报文以及数据报文之间发生冲突。一般来讲数据报文要比控制报文长得多,所以数据报文更容易发生冲突,从而影响信道的利用率。如何通过控制报文减少甚至消除数据报文的冲突,设计出合理的冲突避免策略,是单信道接入协议的主要目标之一。
经典的基于单信道的Ad-Hoc接入协议有MACA协议以及它的三种改进协议MACAW、MACAW-BI、MACA-PR。
0. MACA协议
多路访问冲突避免(multiple access collision avoidance)简称MACA,它起源于CSMA/CA(载波监听多路访问/冲突避免)协议。CSMA/CA基于以下思想:多个节点同时监听载波信道,若信道闲,则发送数据;反之,就进行退避直到信道闲为止。然而由于“隐藏终端”的存在,即使监听到信道闲也未必能成功发送数据;另外由于“暴露终端”的存在,即使监听到信道忙也未必不能发送数据。所以CSMA/CA的CS常常是无效的,所以去掉载波监听即CA,该协议就演变成了MACA。
MACA的主要思想就是通过控制报文避免数据报文的冲突。当发送节点向接收节点发送RTS控制报文时,接收节点会向相邻的节点发送CTS控制报文,从而相邻的节点将被阻塞一段时间,这样当发送节点向接收节点发送数据时,接收节点附近的相邻节点就不会向接收节点发送数据,从而不会产生数据报文的冲突。
然而以上只是在理想情况下,实际中大多数情况下,仍会产生报文冲突,如图1所示:
图 1 MACA协议报文冲突示意图
当接收节点A向其邻近节点B发送CTS报文时,若正好D也向B发送RTS报文,此时就会产生控制报文之间的冲突;D由于产生了冲突退避了一段时间之后,再向B发送RTS报文成功,此时B需要向邻近节点A发送CTS报文,而C正好也要向A发送数据报文,这样就会产生数据报文和控制报文的冲突。
节点之间一旦发生冲突,就要进行退避。MACA协议采用的退避算法为二进制指数退避算法即BEB算法。其核心计算公式如下所示:
当冲突产生时,冲突计数器COUNTER值翻倍并与计数器上限值MAX比较,取较小的那个值作为新的计数器的值开始退避计数;反之,若数据发送成功,则计数器的值直接取计数器下限值MIN。
BEB算法具有明显两个缺点:第一,一次交互成功的节点计数器的值就归于最小值,不能反映信道的争用情况;第二,带来不公平现象,交互成功的节点计数器的值小,而失败的节点计数器的值大,在后续的竞争中,前者获胜的概率更大。
由以上可以得出MACA的缺点如下:
(1)不具备链路确认机制即ACK应答,这势必要加重传输层的负担;
(2)退避算法具有明显的缺陷;
(3)不能解决控制报文之间的冲突;
(4)仅部分解决了“隐藏终端”的问题,完全没有解决“暴露终端”的问题。
当然,MACA也有其优点:
(1)提高了信道利用率,由于采用了RTS-CTS控制报文分组,一般控制报文比数据报文短得多,这样冲突的时间和概率都比不采用控制报文时大大降低了;
(2)部分解决了“隐藏终端”的问题。
1. MACAW协议
由于MACA协议的优点可以继承,而缺点需要改进,就产生了MACA的改进协议,在这些改进协议中,MACAW协议是最接近MACA协议的。
MACAW,MACA同MACA协议,而W则是为了无线传输(for wireless)的意思。MACAW协议针对MACA协议改进了其控制报文分组和退避算法两个方面。
在控制报文分组方面,加入了DS-ACK报文,如图2所示:
图 2 MACAW协议流程图
其中,D是A的“隐藏终端”,C是A的“暴露终端”。对比图1,MACAW在“隐藏终端”方面并没有作出改进。当A向B发送数据时,先发送RTS报文,之后B向相邻节点发送CTS报文,A在发送数据报文之前,还要发送一组DS报文,之后发送数据报文,当数据报文接收成功后,B还要回传ACK应答。
DS报文用于解决“暴露终端”的问题,当C收到A的RTS报文之后,它会处于阻塞中,若之后未收到DS报文,证明A的RTS-CTS报文交换失败,此时D就无需等待,可以发送数据;反之若D在收到A的RTS报文之后又收到了DS报文,则D就必须继续处于阻塞状态一段时间后,才能够向A发送数据。实际上DS报文就是“暴露终端”用于确认自己身份的控制报文。
MACAW协议针对MACA的BEB算法作出了改进,它采用倍数增线性减算法即MILD。其核心计算公式如下所示:
对比BEB算法,交换失败后,节点计数器COUNTER不再固定翻倍,而是乘以一个系数α,若α值选取适合,则冲突后计数器的值不会急剧增加;同时,交互失败后,计数器的值也不会固定变为最小值,而是减去一个可调的值β,若β值选取合适,则各节点后续竞争获胜几率几乎相等,实现了公平接入。
由以上可以看出MACAW的优点如下:
(1)加入DS报文,一定程度上解决了“暴露终端”的问题;
(2)加入ACK应答机制,使链路层具有错误重传机制,降低了传输层的负担;
(3)改进了退避算法,很大程度上提升了信道竞争的公平性;
(4)相比MACA协议,系统的吞吐量显著提升。
然而MACAW仍有以下两个缺点:
(1)控制报文过于复杂,交互次数多,开销大;
(2)仍然只是部分解决了“暴露终端”和“隐藏终端”的问题。
2 .MACA-BI协议
MACA-BI是四个协议中唯一一个接收节点主动的协议。BI即通过邀请的意思。它的流程如图3所示:
图 3 MACA-BI流程图与MACA对比
作为一个接收节点主动的协议,MACA-BI协议不使用RTSCTS控制报文,而是接收节点向发送节点发送一个RTR(准备好接收了)报文,之后发送节点再向接收节点发送数据。
MACA-BI适用于业务模式可以预测的Ad-Hoc网络中,其优点在于减少了控制报文的交互次数,提高了系统的吞吐量,但缺点是对于突发性的性业务,MACA-BI协议就相当于MACA协议。
3. MACA-PR协议
MACA-PR协议的PR是捎带预约的意思。该协议中,节点发送数据前,需要等待预约表中有空闲的窗口(即时隙),只有当有空闲的窗口时才会去监听信道是否空闲,空闲时发送数据。并且每一个节点都负责一个预约表,该表记录该节点传输范围内的任何发送和接收窗口。
所以,MACA-PR实际上是一个基于时分复用的协议。
图 4 MACA-PR协议流程图
MACA-PR协议中,发送节点与接收节点之间首先也会建立RTS-CTS控制报文分组,之后就靠PKT-ACK分组来进行数据的传输,每两个PKT之间间隔一定的时间,只有当N次未收到ACK应答时,才重新建立RTS-CTS分组。同时,每个分组中都会捎带下一个分组的预约信息。
MACA-PR协议中,当预约表稳定时,数据发送不会产生冲突,也不会有“隐藏终端”和“暴露终端”的问题,因为每个节点都会在规定的窗口时间内发送数据。但是当节点发生移动或者预约表没有及时更新时会出现暂时的冲突。
MACA-PR协议优点是预约表稳定时,可以完全避免冲突和解决“隐藏终端”及“暴露终端”的问题,缺点是,路由表的维护增加了节点的能量开销,同时由于Ad-Hoc网络的移动性特点,预约表总是处于暂时稳定的状态,需要时时更新。
4.总结
MACA协议及其三种改进协议的对比如表1所示:
表 1 MACA及其改进协议对比
通过以上分析,MACA协议及其改进协议有有一些共同的问题:
(1)控制报文要尽可能的优化;
(2)退避算法要保证公平性;
(3)尽量提高信道利用率;
(4)由于节点大多使用电池,要降低能耗;
(5)“隐藏终端”和“暴露终端”的问题。
这些也是MACA协议后续改进协议应该考虑的问题及研究的方向。
[1]吴亚平,MACA-PR协议浅析.
[2]杜成,MACA协议的研究.
[3]杨春等,无线传感器网络经典MAC协议验证与分析.
[4]董学润,移动Ad hoc 网络的单信道媒体接入协议.
[5]何俊,移动自组织网络中的MAC协议分析比较.
[6]EEFOCUS,Ad hoc几种接入协议.