您的位置:首页 > 大数据 > 物联网

物联网组网与通信技术——Ad Hoc 网络的MAC协议

2020-07-12 17:14 274 查看

一、Ad Hoc 接入协议的分类
⭐按照信道接入时握手协议的发起者可划分:
(1)发方主动的信道接入协议: 由发送节点主动发起信道预约,大多数的信道接入协议属于此类,如MACA、MACAW等。
(2)收方主动的信道接入协议: 由接收者发起信道预约,接收节点主动向发送节点发送RTR(ready to receive)控制报文,发送节点如果有数据就直接发送。这种协议试图通过减少控制报文的个数、降低握手开销来提高网络的吞吐量。如MACA-BI(MACA by Invitation)、RIMA(Receiver-initiated Mutiple-Access).
⭐按照信道协议使用的信道数目,可划分为:
(1)基于单信道的信道接入协议:
所有的控制报文和数据报文在同一个信道上发送和接收。受传播时延、隐终端和节点移动性等因素的影响,单信道的ad hoc 网络有可能发生控制报文之间、控制报文和数据报文、数据报文之间的冲突。一般来看,数据报文往往比控制报文长的多,数据报文的冲突会严重影响信道的利用率。所以单信道接入协议的主要目标之一就是通过使用控制报文尽量减少甚至消除数据报文的冲突,即设计合理的冲突避免策略。
典型的有:MACA、MACAW、IEEE 802.11DCF、FAMA
(2)基于双信道的信道接入协议:
有两个共享信道:控制信道和数据信道。由于使用两个信道,控制报文就不会与数据报文产生冲突。双信道在解决隐藏终端和暴露终端问题上具有独特的优势,通过适当的控制机制,可以完全消除隐藏终端和暴露终端的影响
典型的有:BAPU、DBTMA等。
(3)基于多信道的信道接入协议
在使用多信道的情况下,接入控制更加灵活。可以使用其中一个作为公共控制信道,也可以让控制报文和数据报文在一个信道上混合传送。多信道MAC协议主要关注的问题是:信道分配和接入控制。信道分配负责为不同的通信节点分配相应的信道,消除数据报文的冲突,使尽量多的节点可以同时通信。接入控制负责确定节点接入信道的时机、冲突的避免和解决等。
典型的有HRMA、mutiple-channel CSMA、DCA、MMAC。
二、Ad Hoc 单信道接入协议
❤❤❤ MACA(Mutiple Access Collision Avoidance)
&&MACA是第一个使用RTS-CTS控制报文握手来解决ad hoc网络隐藏终端和暴露终端问题的信道接入协议。
( 隐终端问题解决: 没有听到RTS能听到CTS的是隐终端。 隐终端的问题能解决,会延迟发送。
暴露终端问题解决: 听到RTS没听到CTS的是暴露终端。只要能收到CTS,此问题就能解决。)
&&源于CSMA/CA(载波监听/冲突避免)
在CSMA/CA接入协议中,发送者和接收者在发送数据前首先使用RTS-CTS控制报文握手,目的是通知接收者做好接收准备。
&&CSMA/CA在无线自组织网络ad hoc中是存在问题的:
隐藏终端的存在:节点检测不到载波并不意味着信道空闲可以发送数据;暴露终端的存在:节点检测到载波并不意味着信道忙而不能发送数据。即载波监听的结果不一定有用,在无线网络中不能发挥作用。所以MACA不使用载波监听,CSMA/CA去掉CS就成了MACA。
&& MACA思想:
发送者发送数据前先向接收者发送RTS控制报文,RTS帧中包含将要发送的分组的长度。接收者收到RTS后,回送CTS报文,并将长度消息捎回;收到CTS后,发送者开始发送数据。//////收到RTS的其他节点在一段时间内不能发送任何消息,以保证发送者能够接收并相应CTS分组。听到CTS的节点,知道在它的通信范围内有站要接收每种长度的分组,通过实施退避算法延迟发送来避免冲突。//////发送站只有在收到对方回送的CTS后才能发送数据,如果没有收到CTS,则认为RTS因为冲突被破坏,然后执行二进制指数退避算法BEB,延迟重发RTS。
关键在于利用RTS和CTS来阻塞邻居节点。

&&优点:
(1)提高了无线信道的利用率
普通的CSMA发生冲突时,各方都需要重传数据,会降低无线信道的利用率。如果数据本身很短,没必要发送RTS消息,可以在链路层设置RTS发送门限,只有数据长度大于该门限,才发送RTS帧。
(2)部分解决了暴露终端的问题。
&&缺点:
(1)不能解决控制分组之间(RTS-CTS)的冲突问题
(2)不具备链路层确认机制(没有ACK分组)。当冲突发生时需要上层超时重发,效率很低。
(3)由于采用二进制指数退避算法,如果某站的退避计数器值较大,那么在后续的竞争中失败的可能性也较大,从而使得退避值进一步增大,造成饿死现象(不公平)。
❤ ❤❤MACAW(MACA for Wireless LAN)
&&MACAW是第一个专门针对无线环境设计的MAC层协议,该方案采用了新的退避算法,以便更适合无线信道的环境。///在原来MACA的基础上,增加了确认数据包,用RTS-CTS-Ds-Data-ACK实现媒质的冲突检测。仿真证明MACAW将获得更大的吞吐量以及在高负荷下的资源分配更平均。
&&针对MACA的缺点,MACAW改进如下:
(1)退避计数器值拷贝实现公平。
在发送数据分组时,分组头部包含本站的退避计数器的值,收到分组的站可以将此值作为自己的退避计数器的值继续使用。这种方法能够在一定程度上防止饿死现象,但不能充分了解网络的拥塞状态,从而增加了分组冲突。
(2)退避算法的改进。MILD乘性递增线性递减替代BEB
(3)消息交互的改进
由于在会话机制中增加了DS分组和ACK分组,所以逐跳传输的可靠性增加了,但传输一个分组所需要的附加业务量也增加了。
&&MACAW主要缺点:
一次通信控制信息交互次数太多,如果考虑无线设备发送和接收的转换时间,这种方法的效率就很低了。以增加协议开销为代价。

&&思想:
DS(Data Sending)报文用于邻居节点确认RTS-CTS握手成功。
发送节点和接收节点使用RTS-CTS握手成功后,发送节点先发送一个DS控制报文,然后向接收节点发送数据报文。///听到DS报文的节点就会确认自己要延迟发送数据。///如果节点听到RTS报文而没有听到DS报文,说明RTS-CTS发生冲突,握手没有成功,它就不需要再去延迟发送,从而提高吞吐量。
ACK报文用于实现报文数据的链路层确认。
❤❤❤ 802.11 DCF
&&802.11 MAC支持两种操作模式:单点协调功能(PCF)和分布协调功能(DCF)。IEEE 802.11 DCF采用CSMA/CA机制
&&工作原理:准备传送分则数据的移动站包括AP首先检测信道是否繁忙,如果信道在DIFS时序间隔内为空闲状态,那么移动站将开始准备传送数据分组。否则,移动站将继续检测信道。具体步骤:如果信道在DIFS时序间隔内空闲,那么移动站:a)开始将信道时间分为多个时隙单元;b)生成以时隙为单位的随机退避间隔(random backoff interval) ;c)继续检测信道,在信道仍保持空闲的每个时隙中,退避间隔值减1.当间隔为0时,移动站将开始传送分组数据。
&&在介质上传送的帧与帧之间总会有一段空闲时间,DCF将其分为四种成为帧隙(InterFrame Space - IFS)的不同长度的时间槽。

&& 退避机制的优点:
在退避期间,如果在一个时隙中检测到信道繁忙,那么退避间隔将保持不变(冻结),并且只当检测到在DIFS间隔及其下一时隙内信道持续空闲,才重新开始减少退避间隔值。当退避间隔为0时,将再次传送分组数据。退避机制有助于避免冲突。
&&了解内容:
(1)DCF的退避机制具有指数特征
(2)对于每个成功接收的分组数据,802.11规范要求向发送方发送ACK消息。
(3)CSMA/CA的基础是载波监听,802.11根据WLAN的特点提出了两种载波监听检测方法,以检测信道是否繁忙。一种是物理层的载波检测CS,从接收射频或天线信号检测信号能量或根基接收信号的质量来估计信道的忙闲状态;另一种是虚拟CS的方式,通过MAC抱头或RTS/CTS的NAV来实现。(NAV的含义是网络分配向量,NAV基于MAC帧的时长字段,其值指出当前在信道中传输信息的站还需要继续占用信道的持续时间。当NAV的值为0时,由虚拟载波检测机制指示出信道为空闲状态。)
❤❤❤ FAMA(Floor acquisition mutiple access)
&&中心思想: 允许一次RTS-CTS成功握手可以连续发送多个数据报文////“统治的CTS”,增加CTS的长度,任何在CTS的信号范围内,并同时发送RTS的节点,将至少监听到长CTS分组的一部分,这些节点将推迟对信道的争用,更好地消除隐终端的影响
❤❤❤ MACAW-BI
&&是基于MACA的收方主动的信道接入协议,只有接到RTR邀请的节点才能发送数据。
&&设计思路:考虑到收发节点间的往返时间(包括收发转换时间、传播时延)对网络吞吐量的影响,往返时间成为信道设计的重要因素。MACA-BI以RTR报文替代CTS报文,MACA-BI(RTR-Data)为双向握手,MACA(RTS-CTS-Data)为三向握手,MACAW(RTS-CTS-DS-Data-ACK)为五向握手,减少了握手次数,从而在告诉、短距离的ad hoc网络中提高了吞吐量。
❤❤❤ MARCH(mutiple access with reduced handshake)
&&减少握手次数的多址接入是一种旨在利用全向天线的广播性来减少握手次数的信道接入协议。它仅在路由的第一跳使用RTS-CTS握手,在其他路由段仅使用CTS报文实现握手。

三、ad hoc 双信道接入协议
❤❤❤ DBTMA(dual busy tone mutiple access)
&&背景:
以前的几种方法假设所有的相关节点都能听到RTS/CTS消息,但在高速移动的大型ad hoc网络中这种假设有时并不成立,当网络负载很高时CTS发生冲突的概率很大。为了解决这些问题,提出了双忙音多址接入协议DBTMA。
DBTMA是在CSMA和RTS/CTS会话机制的基础上,综合了两者的优点来提高系统性能。它除了使用控制信道上的RTS/CTS分组外,还使用了控制信道上的两个忙音来标识信道状态。
DBTMA算法:
&&一个发送站首先要监听信道上是否有BTr信号(冲突是在接收节点处产生的,所以先要看是否有节点在接收,如果有节点在接收的话再去发送是会产生冲突的)以确定是否有其他站在接收数据,如果没有听BTr信号,它可以发送RTS分组,并在发送RTS时继续监听BTr,如果在此期间听到BTr信号(自己是隐藏发送终端),即使收到了CTS信号也要延迟发送,从而解决了隐终端的问题。
&&当接收站收到RTS时,要监听BTt信号来看是否有节点在发送数据,如果没有听到BTt信号将响应CTS分组,并且发送BTr信号,否则它将保持沉默(自己是暴露接收终端),从而解决了暴露终端的问题。
关键:所有听到BTr信号的其他站必须延迟发送,所有收到BTt信号的站不能接收数据。


&&summary:
RTS/CTS报文交互只是用来探测接收节点能否接收报文,而不再担负着预约信道的作用。信道接入完全依赖于对两个忙音信号的检测。DBTMA实现了数据报文的无冲突,付出的代价是增加了两个外带忙音,忙音的发送和检测都需要额外硬件的支持。
双信道并不是没有解决报文冲突的能力,而是DBTMA没有发挥双信道的优势,没有充分利用RTS/CTS报文握手具备的能力。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: