802.11协议精读5:隐藏终端和暴露终端
https://zhuanlan.zhihu.com/p/20780796
序言
在無線通信中,有兩個(gè)典型的問題,即隱藏終端和暴露終端問題。在802.11中,這些問題也是存在,同時(shí)也衍生出了一些新類型的隱藏和暴露終端問題。在前面描述DCF模式中,我們已經(jīng)談?wù)摿说碾[藏終端問題。
實(shí)際上,隱藏終端和暴露終端都是由于CSMA/CA中所采用的LBT機(jī)制所引起。隱藏終端是由于監(jiān)聽到的信道空閑而不是真的空閑,故引發(fā)沖突。而暴露終端是由于監(jiān)聽到的信道忙而不是真的忙,故其可以傳輸而不傳輸。
在這里,綜合之前的論述,我們對一般性的隱藏終端和暴露終端做一個(gè)簡單的整理。
隱藏終端問題
隱藏終端問題可以簡單定義為:節(jié)點(diǎn)之間無法互相監(jiān)聽對方。但當(dāng)其不可以同時(shí)傳輸時(shí),其同時(shí)傳輸,從而導(dǎo)致沖突發(fā)生。隱藏終端在單個(gè)AP(或者單個(gè)Receiver)時(shí)就有可能發(fā)生。
我們基于以上拓?fù)溆懻摶镜碾[藏終端問題,在該拓?fù)渲?#xff0c;STA 1與STA 2為兩個(gè)節(jié)點(diǎn),這兩個(gè)節(jié)點(diǎn)都是關(guān)聯(lián)在AP身上。圖中藍(lán)色虛線代表STA 1的發(fā)送范圍,綠色虛線代表STA 2的發(fā)送范圍。
由于圖中STA 1與STA 2發(fā)送范圍無法互相覆蓋,即無法通過物理載波監(jiān)聽的方法,探測對方是否有發(fā)送數(shù)據(jù)。從而STA 1與STA 2可能會誤以為信道空閑,從而同時(shí)發(fā)送,繼而造成沖突。
如上圖所述,根據(jù)DCF中CSMA/CA的工作機(jī)制,STA 1與STA 2在等待DIFS之后,分別選取一個(gè)隨機(jī)數(shù)進(jìn)行Backoff。STA 2由于隨機(jī)數(shù)選擇較少,從而首先倒數(shù)至0,并發(fā)送數(shù)據(jù)。當(dāng)STA 2發(fā)送數(shù)據(jù)后,由于STA 1監(jiān)聽不到STA 2已經(jīng)占用信道,其依舊誤以為信道是空閑的,從而繼續(xù)進(jìn)行backoff。當(dāng)STA 1的隨機(jī)回退計(jì)數(shù)值倒數(shù)至0時(shí),STA 1也會發(fā)送數(shù)據(jù)。
由于STA 1與STA 2的同時(shí)發(fā)送,即AP接收時(shí)存在重疊區(qū)域,即也是發(fā)生了沖突,最終這一輪傳輸失敗。當(dāng)這一輪傳輸失敗之后,STA 1與STA 2采用BEB算法重新選擇隨機(jī)數(shù)進(jìn)行回退,但后續(xù)過程中兩者依舊無法互相監(jiān)聽,所以很容易再次出現(xiàn)同時(shí)傳輸?shù)默F(xiàn)象。在隱藏終端的情況下,網(wǎng)絡(luò)是近似癱瘓的,換言之,STA 1與STA 2的吞吐量都趨近于0。
PS:除了RTS/CTS模式是在協(xié)議層面解決隱藏終端問題,實(shí)際情況下還有很多解決隱藏終端的問題,比如增加客戶端功率,消除中間的障礙物,將造成隱藏終端問題的節(jié)點(diǎn)或者AP移動個(gè)位置之類的,實(shí)在不行的話,那么控制下原始AP的功率,再添加入一個(gè)新的接入點(diǎn)也行,不過最后個(gè)方法需要小心一些,因?yàn)楦悴缓脮鹣旅嫠龅谋┞督K端問題。
暴露終端問題
暴露終端問題可以簡單定義為:節(jié)點(diǎn)之間能夠互相監(jiān)聽對方。但其可以同時(shí)傳輸時(shí),其不傳輸,從而造成浪費(fèi)。暴露終端在多個(gè)AP(或者多個(gè)Receiver)時(shí)才有可能發(fā)生。
我們基于以上拓?fù)溆懻摶镜碾[藏終端問題,在該拓?fù)渲?#xff0c;STA 1與STA 2為兩個(gè)節(jié)點(diǎn),其中STA 1關(guān)聯(lián)在AP1上,STA 2關(guān)聯(lián)在AP2上。圖中藍(lán)色虛線代表STA 1的發(fā)送范圍,綠色虛線代表STA 2的發(fā)送范圍。
圖中AP1處于STA 1的覆蓋范圍內(nèi),而不再STA 2的覆蓋范圍內(nèi)。AP2處于STA 2的覆蓋范圍,而不在STA 1的覆蓋范圍內(nèi)。換言之,AP1只能接受到STA 1的數(shù)據(jù),AP2也只能接收到STA 2的數(shù)據(jù)。當(dāng)STA 1與STA 2同時(shí)發(fā)送時(shí),接受節(jié)點(diǎn)AP1或者AP2處均不會發(fā)生沖突,故其是可以同時(shí)傳輸?shù)摹5怯捎谶@樣的拓?fù)涮厥庑砸约癉CF中CSMA/CA的工作機(jī)制,造成STA 1與STA 2無法同時(shí)傳輸,該問題則是暴露終端問題。
在CSMA/CA中,接入是遵守LBT(Listen Before Talk)機(jī)制的。我們在DCF的介紹中所述,每一個(gè)節(jié)點(diǎn)在接入信道之前需要進(jìn)行backoff。在該過程內(nèi),若信道空閑,則每經(jīng)過1個(gè)slot,隨機(jī)倒數(shù)計(jì)數(shù)器進(jìn)行一次倒數(shù)。若信道非空閑,則節(jié)點(diǎn)不會對隨機(jī)倒數(shù)計(jì)數(shù)器進(jìn)行倒數(shù),并對其進(jìn)行懸掛。只有當(dāng)其倒數(shù)至0時(shí),才可以發(fā)起傳輸。其中信道空閑與否是通過載波監(jiān)聽機(jī)制進(jìn)行判斷的,而在DCF中,存在物理載波監(jiān)聽和虛擬載波監(jiān)聽兩種模式,這兩種監(jiān)聽方式都有可能引起暴露終端問題,以下我們分兩種情況進(jìn)行討論。(有關(guān)DCF的接入過程,詳細(xì)內(nèi)容請查閱之前的文檔)
- 物理載波監(jiān)聽引起的暴露終端
如上圖所示,由于STA 1與STA 2可以互相監(jiān)聽。由于STA 2選擇了較小的隨機(jī)數(shù)進(jìn)行倒數(shù),從而其最先倒數(shù)至0,并進(jìn)行發(fā)送。當(dāng)STA 2首先發(fā)送數(shù)據(jù)包給STA 2后,STA 1監(jiān)聽信道為忙狀態(tài),從而無法發(fā)送信息。故根據(jù)拓?fù)涠?#xff0c;STA 1是可以傳數(shù)據(jù)給AP1的,但是由于監(jiān)聽STA 2正在傳輸,導(dǎo)致信道忙,故STA1懸掛隨機(jī)倒數(shù)計(jì)數(shù)器,無法繼續(xù)倒數(shù),從而無法傳輸。
這里實(shí)際上我們還可以更深入了解一下,實(shí)際上STA1為什么需要在別人傳輸?shù)臅r(shí)候,懸掛自己的隨機(jī)倒數(shù)計(jì)數(shù)器。在CSMA/CD中,實(shí)際上是沒有懸掛過程的,只有在CSMA/CA中才存在。在CSMA/CD中,若信道忙,節(jié)點(diǎn)就不停的去監(jiān)聽信道,一旦發(fā)現(xiàn)空閑就傳輸。而在CSMA/CA中,節(jié)點(diǎn)在中間實(shí)際上不是監(jiān)聽信道,而是接收數(shù)據(jù)。其主要原因在于,STA 1在檢測到STA 2正在傳輸造成信道忙時(shí),其立刻開始接收該STA 2的數(shù)據(jù),因?yàn)镾TA 1不知道該數(shù)據(jù)是否是發(fā)給自己的。只有當(dāng)完整接收數(shù)據(jù),CRC校驗(yàn)通過后,STA 1才可以檢查幀MAC頭部所對應(yīng)的目的BSSID地址,看是否是自己的數(shù)據(jù)包,若不是才可以丟包。換言之,CSMA/CA中,懸掛實(shí)際上是為了接收,從而導(dǎo)致的現(xiàn)象是懸掛而已。
- 虛擬載波監(jiān)聽引起的暴露終端
如上圖所示,在暴露終端場景中,若STA 2不僅選擇了較小的隨機(jī)數(shù)進(jìn)行優(yōu)先倒數(shù),并且其發(fā)送的數(shù)據(jù)包是RTS數(shù)據(jù)包。當(dāng)STA 1識別到該RTS數(shù)據(jù)包后,其就會被設(shè)置為NAV狀態(tài),無法在后面的過程主動競爭信道,進(jìn)而無法傳輸。與之前描述用RTS/CTS解決隱藏終端問題時(shí)不同,在解決隱藏終端問題中,NAV是由AP所反饋的CTS幀所進(jìn)行保護(hù)。而這里由于STA 1與STA 2能夠互相監(jiān)聽,換言之,在暴露終端情況下,STA 1的NAV是被STA 2所發(fā)送的RTS幀進(jìn)行保護(hù)的。在STA 1被NAV保護(hù)后,其也無法傳輸,最終導(dǎo)致暴露終端問題。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的802.11协议精读5:隐藏终端和暴露终端的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 802.11协议精读9:初探节能模式(P
- 下一篇: WPA-PSK 4-way handsh