您當前的位置:首頁 > 繪畫

802.11協議精讀5:隱藏終端和暴露終端

作者:由 徐方鑫 發表于 繪畫時間:2016-04-24

序言

在無線通訊中,有兩個典型的問題,即隱藏終端和暴露終端問題。在802。11中,這些問題也是存在,同時也衍生出了一些新型別的隱藏和暴露終端問題。在前面描述DCF模式中,我們已經談論了的隱藏終端問題。

實際上,隱藏終端和暴露終端都是由於CSMA/CA中所採用的LBT機制所引起。隱藏終端是由於監聽到的通道空閒而不是真的空閒,故引發衝突。而暴露終端是由於監聽到的通道忙而不是真的忙,故其可以傳輸而不傳輸。

在這裡,綜合之前的論述,我們對一般性的隱藏終端和暴露終端做一個簡單的整理。

隱藏終端問題

802.11協議精讀5:隱藏終端和暴露終端

隱藏終端問題可以簡單定義為:

節點之間無法互相監聽對方。但當其不可以同時傳輸時,其同時傳輸,從而導致衝突發生。隱藏終端在單個AP(或者單個Receiver)時就有可能發生。

我們基於以上拓撲討論基本的隱藏終端問題,在該拓撲中,STA 1與STA 2為兩個節點,這兩個節點都是關聯在AP身上。圖中藍色虛線代表STA 1的傳送範圍,綠色虛線代表STA 2的傳送範圍。

由於圖中STA 1與STA 2傳送範圍無法互相覆蓋,即無法透過物理載波監聽的方法,探測對方是否有傳送資料。從而STA 1與STA 2可能會誤以為通道空閒,從而同時傳送,繼而造成衝突。

802.11協議精讀5:隱藏終端和暴露終端

如上圖所述,根據DCF中CSMA/CA的工作機制,STA 1與STA 2在等待DIFS之後,分別選取一個隨機數進行Backoff。STA 2由於隨機數選擇較少,從而首先倒數至0,併發送資料。當STA 2傳送資料後,由於STA 1監聽不到STA 2已經佔用通道,其依舊誤以為通道是空閒的,從而繼續進行backoff。當STA 1的隨機回退計數值倒數至0時,STA 1也會發送資料。

由於STA 1與STA 2的同時傳送,即AP接收時存在重疊區域,即也是發生了衝突,最終這一輪傳輸失敗。當這一輪傳輸失敗之後,STA 1與STA 2採用BEB演算法重新選擇隨機數進行回退,但後續過程中兩者依舊無法互相監聽,所以很容易再次出現同時傳輸的現象。在隱藏終端的情況下,網路是近似癱瘓的,換言之,STA 1與STA 2的吞吐量都趨近於0。

PS:除了RTS/CTS模式是在協議層面解決隱藏終端問題,實際情況下還有很多解決隱藏終端的問題,比如增加客戶端功率,消除中間的障礙物,將造成隱藏終端問題的節點或者AP移動個位置之類的,實在不行的話,那麼控制下原始AP的功率,再新增入一個新的接入點也行,不過最後個方法需要小心一些,因為搞不好會引起下面所述的暴露終端問題。

暴露終端問題

暴露終端問題可以簡單定義為:

節點之間能夠互相監聽對方。但其可以同時傳輸時,其不傳輸,從而造成浪費。暴露終端在多個AP(或者多個Receiver)時才有可能發生。

802.11協議精讀5:隱藏終端和暴露終端

我們基於以上拓撲討論基本的隱藏終端問題,在該拓撲中,STA 1與STA 2為兩個節點,其中STA 1關聯在AP1上,STA 2關聯在AP2上。圖中藍色虛線代表STA 1的傳送範圍,綠色虛線代表STA 2的傳送範圍。

圖中AP1處於STA 1的覆蓋範圍內,而不再STA 2的覆蓋範圍內。AP2處於STA 2的覆蓋範圍,而不在STA 1的覆蓋範圍內。換言之,AP1只能接受到STA 1的資料,AP2也只能接收到STA 2的資料。當STA 1與STA 2同時傳送時,接受節點AP1或者AP2處均不會發生衝突,故其是可以同時傳輸的。但是由於這樣的拓撲特殊性以及DCF中CSMA/CA的工作機制,造成STA 1與STA 2無法同時傳輸,該問題則是暴露終端問題。

在CSMA/CA中,接入是遵守LBT(Listen Before Talk)機制的。我們在DCF的介紹中所述,每一個節點在接入通道之前需要進行backoff。在該過程內,若通道空閒,則每經過1個slot,隨機倒數計數器進行一次倒數。若通道非空閒,則節點不會對隨機倒數計數器進行倒數,並對其進行懸掛。只有當其倒數至0時,才可以發起傳輸。其中通道空閒與否是透過載波監聽機制進行判斷的,而在DCF中,存在物理載波監聽和虛擬載波監聽兩種模式,這兩種監聽方式都有可能引起暴露終端問題,以下我們分兩種情況進行討論。(有關DCF的接入過程,詳細內容請查閱之前的文件)

物理載波監聽引起的暴露終端

802.11協議精讀5:隱藏終端和暴露終端

如上圖所示,由於STA 1與STA 2可以互相監聽。由於STA 2選擇了較小的隨機數進行倒數,從而其最先倒數至0,並進行傳送。當STA 2首先發送資料包給STA 2後,STA 1監聽通道為忙狀態,從而無法傳送資訊。故根據拓撲而言,STA 1是可以傳資料給AP1的,但是由於監聽STA 2正在傳輸,導致通道忙,故STA1懸掛隨機倒數計數器,無法繼續倒數,從而無法傳輸。

這裡實際上我們還可以更深入瞭解一下,實際上STA1為什麼需要在別人傳輸的時候,懸掛自己的隨機倒數計數器。在CSMA/CD中,實際上是沒有懸掛過程的,只有在CSMA/CA中才存在。在CSMA/CD中,若通道忙,節點就不停的去監聽通道,一旦發現空閒就傳輸。而在CSMA/CA中,節點在中間實際上不是監聽通道,而是接收資料。其主要原因在於,STA 1在檢測到STA 2正在傳輸造成通道忙時,其立刻開始接收該STA 2的資料,因為STA 1不知道該資料是否是發給自己的。只有當完整接收資料,CRC校驗通過後,STA 1才可以檢查幀MAC頭部所對應的目的BSSID地址,看是否是自己的資料包,若不是才可以丟包。換言之,CSMA/CA中,懸掛實際上是為了接收,從而導致的現象是懸掛而已。

虛擬載波監聽引起的暴露終端

802.11協議精讀5:隱藏終端和暴露終端

如上圖所示,在暴露終端場景中,若STA 2不僅選擇了較小的隨機數進行優先倒數,並且其傳送的資料包是RTS資料包。當STA 1識別到該RTS資料包後,其就會被設定為NAV狀態,無法在後面的過程主動競爭通道,進而無法傳輸。與之前描述用RTS/CTS解決隱藏終端問題時不同,在解決隱藏終端問題中,NAV是由AP所反饋的CTS幀所進行保護。而這裡由於STA 1與STA 2能夠互相監聽,換言之,在暴露終端情況下,STA 1的NAV是被STA 2所傳送的RTS幀進行保護的。在STA 1被NAV保護後,其也無法傳輸,最終導致暴露終端問題。

本文為原創文章,如需轉載須註明出處和原文連結。

802.11協議精讀5:隱藏終端和暴露終端

歡迎大家關注我們的微信公眾號:無線技術大講堂,請搜尋公眾號(must_wireless)。

標簽: STA  終端  監聽  通道  傳輸