物聯網組網與通信技術——Ad Hoc 網絡的MAC協議

一、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報文握手具備的能力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章