• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Ay's Blog@CNSSUESTC

            [導(dǎo)入]Wireless Fundamental(1) -- 802.11MAC入門科普篇

            作者:__ay 

            參考書目是 《802.11 無線網(wǎng)絡(luò)權(quán)威指南 第二版影印版》  中文版翻譯的太惡心了。


            在無線網(wǎng)絡(luò)通信中,MAC層的工作細(xì)節(jié)和有線網(wǎng)絡(luò)差的實(shí)在是太大了……

            這里僅僅談?wù)摕o線MAC層的通信機(jī)制,MAC以上的有線無線都一樣~~


            1. 神馬是RTS/CTS??


            那么說起無線網(wǎng)路,我們其實(shí)最最首先考慮通信的可靠性問題,要知道有線網(wǎng)絡(luò)的傳輸環(huán)境比無線網(wǎng)絡(luò)封閉多了,但是其可靠性也比無線網(wǎng)絡(luò)高多了,最最起碼有線網(wǎng)絡(luò)不要考慮可能的微波,手機(jī)信號等因素的干擾。正是由于考慮到其它電子設(shè)備比如手機(jī),微波爐等有發(fā)射微波功能電子產(chǎn)品,我們空氣中的無線信號受到的干擾遠(yuǎn)遠(yuǎn)比有線信號的要強(qiáng)的多。所以在無線通信時,要考慮到可能的干擾性,所以需要對每一個發(fā)送出去的幀進(jìn)行確認(rèn)。過程就如下圖所示。

             

            但是,出現(xiàn)一個問題一個棘手的問題。就是說如何處理所謂的隱藏節(jié)點(diǎn)的問題,那啥是隱藏節(jié)點(diǎn)咧?


            在上一個圖中我們可以yy一種特殊情況: 2號機(jī)可以接收到1號和3號的信號,但是1號機(jī)無法發(fā)現(xiàn)3號機(jī)。

            那么在1,3號同時發(fā)送幀給2號機(jī)的時候,2號機(jī)沒法回應(yīng)這2個幀,因?yàn)閹瑳_突了。在無線網(wǎng)絡(luò)里,所有主機(jī)都公用一個空氣媒介,也就是說在一個主機(jī)發(fā)送數(shù)據(jù)的時候其它主機(jī)必須保持沉默。那么上述這種情況顯然違背了這個規(guī)則,造成的結(jié)果就是2號機(jī)根本沒法收到數(shù)據(jù)。

            所以這里就又引出一個以太網(wǎng)類似的另一個問題:沖突避免

            那么對于這種情況我們則需要有個協(xié)調(diào)機(jī)制,協(xié)調(diào)誰先發(fā),誰后發(fā)

            這就引出了2個功能幀 

            RTS: Request to Send

            CTS: Clear to Send

            在1號機(jī)傳送數(shù)據(jù)之前,首先發(fā)送一個RTS幀給2號機(jī),那么所有接收到RST幀的機(jī)器則會保持沉默

            但是3號機(jī)收不到丫~~

            所以2號機(jī)會回應(yīng)1號機(jī)一個CTS幀,3號機(jī)收到CTS,則保持沉默(這樣所以可能干擾到1/2號機(jī)通信的主機(jī)都沉默了),然后整個無線網(wǎng)絡(luò)媒介就可以被空出來給1號機(jī)用來傳送數(shù)據(jù)幀給2號機(jī)了

            這就是RTS/CTS機(jī)制 發(fā)送過程大致如下


            但是對于這個機(jī)制的使用會消耗額外的計(jì)算資源,那么有一個折中的做法就是設(shè)置一個RTS的閥值,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)包長度超過這個閥值的時候就啟用RTS/CTS機(jī)制,否則保持自由發(fā)送模式。(我發(fā)現(xiàn)老外很喜歡中庸之道~)。當(dāng)然這個機(jī)制可能有些人說無法保證沒有沖突,應(yīng)為可能1,3主機(jī)可能同時發(fā)送2個RTS包給2號機(jī)。這里會有個沖突回避問題,原理和以太網(wǎng)類似,都是遇到發(fā)送沖突,那么就隨機(jī)選擇回避。這個就是下面要討論的一個問題了。


            2 WLAN的沖突回避


            無線網(wǎng)絡(luò)通信另一個主要的問題就是協(xié)調(diào)問題,就是如何協(xié)調(diào)區(qū)域內(nèi)的各個主機(jī)進(jìn)行通信,當(dāng)然RTS/CTS是一種解決機(jī)制,但是這只是個小部分,到底如何讓無線區(qū)域內(nèi)的主機(jī)“流暢”的通信,就得涉及到一系列沖突回避策略等問題上了。

            首先說一下協(xié)調(diào)模式:

            在以太網(wǎng)中用的是CSMA/DA的方法,所有主機(jī)自由發(fā)送報文,若沖突了退避一段時間在發(fā)就是了。

            而在無線網(wǎng)中則有3種協(xié)調(diào)模式

            DCF (Distribution Coordination Function)

            區(qū)域內(nèi)的主機(jī)傳輸,但是跟以太網(wǎng)的沖突避免一樣,在檢測到?jīng)_突后則進(jìn)行退避。不過需要提的是有時候DCF會采用RTS/CTS機(jī)制來減少沖突。這個機(jī)制自由性比較強(qiáng)。

            PCF (Point Coordination Function)

            這個機(jī)制依賴于ACCESS POINTS,既需要通過一臺指定的無線主機(jī)來協(xié)調(diào)通信。所以這個機(jī)制可以為主機(jī)提供無競爭服務(wù),因?yàn)锳P可以指定誰先發(fā)數(shù)據(jù)誰后發(fā)數(shù)據(jù),沒有傳輸沖突,真和諧,就是開銷要高一些。 

            HCF (Hybird Coordination Function)

            這個機(jī)制是以上兩個機(jī)制的折中,一方面提供一個盡力而為的服務(wù),但是又對于通信的步驟要求又不如PCF那么嚴(yán)格。這個模式通過維護(hù)多個服務(wù)隊(duì)列,然后再決定為怎樣的主機(jī)提供怎樣的服務(wù)。


             

            我們以后的討論情景是基于DCF下的。特別在DCF過程中,他的退避算法和以太網(wǎng)的算法很相似。也是隨即退避,隨著發(fā)送失敗的次數(shù)增加,退避時間的選擇范圍會進(jìn)行指數(shù)增長。當(dāng)檢測到信道空閑后,要發(fā)送數(shù)據(jù)的主機(jī)需要等待DIFS時間間隔后然后進(jìn)入競爭狀態(tài)下,所謂的競爭狀態(tài)就是說所有主機(jī)會在自己的競爭窗口中隨即選擇一個等待時間,這個等待時間過后則開始發(fā)送數(shù)據(jù)。

            首先來說幾個定義:

            1.時隙(原文是slot,我們暫且稱之為時隙吧):這個是退避時間的最小單位,在以太網(wǎng)中退避時間單位是毫秒還是微秒來著我忘了,這個時隙就是無線網(wǎng)絡(luò)中的時間單位,這個時隙是根據(jù)情況而定的。在高速網(wǎng)絡(luò)(網(wǎng)卡處理性能越好)中時隙會越短。時隙可能是2微秒,也可能是4毫秒,反正是在不同網(wǎng)絡(luò)中時隙可能不同,這個可以看成退避時間的最小單位。

            2.競爭窗口,就是在發(fā)送失敗后選擇退避時間的集合。比如說初始的窗口大小是0-31 slots。這就表明在主機(jī)需要在0-31 slots里面隨即抽取出一個值來進(jìn)行等待。打個比方我們的slot設(shè)為2微秒,那么在上一次傳輸數(shù)據(jù)完畢后經(jīng)過DIFS(下面會介紹到)間隙,我們在自己的競爭窗口(范圍:0-31 slots)隨即選取到了24這個值,那么我們需要等待的時間就是24 slots == 24*2 微秒 == 48 微秒。當(dāng)然競爭窗口的大小會隨著發(fā)送失敗的次數(shù)而增加,因?yàn)榘l(fā)送失敗次數(shù)越多表示網(wǎng)絡(luò)負(fù)載越大,那么所有無線網(wǎng)主機(jī)在檢測到自己發(fā)送失敗了以后都要將自己的競爭窗口乘以2,然后再繼續(xù)等待發(fā)送。不過當(dāng)失敗次數(shù)達(dá)到閥值的時候競爭窗口大小就不會增加了。當(dāng)發(fā)送成功以后競爭窗口就會恢復(fù)初始值。

            有圖有真相,貼個圖繼續(xù)分析:

            看到初始窗口范圍是0-31,隨著重傳次數(shù)增加,窗口也是呈指數(shù)增長。當(dāng)增長到閥值1024大小時就停止增長了,接下來如果還是重傳失敗的話就一直隨機(jī)在0-1023 slots中挑出一個值來進(jìn)行等待。


             

            3 時序

            再者就是時序問題了,簡單來說就是如何規(guī)定無線主機(jī)什么時候該做什么。那首先先得說一下無線網(wǎng)絡(luò)監(jiān)聽機(jī)制,這個和有線網(wǎng)絡(luò)里面不太一樣。有線網(wǎng)絡(luò)里面若物理信道有數(shù)據(jù)傳輸?shù)脑捠强隙梢员O(jiān)聽的到的,但無線網(wǎng)絡(luò)里面卻不一定。就拿之前那個隱藏節(jié)點(diǎn)的例子來說,3號機(jī)可能無法通過監(jiān)聽物理信道來得知一二號機(jī)正在傳輸。所以無線網(wǎng)絡(luò)通信中,要確定信道是否被占用,引入了虛擬載波監(jiān)聽。


            注:載波監(jiān)聽和虛擬載波監(jiān)聽是同時在運(yùn)行的,只有當(dāng)這兩個模塊顯示空閑時才表示信道空閑,若其中的一個模塊顯示信道繁忙都表示信道正在被占用。


            關(guān)于虛擬載波監(jiān)聽的原理,那么得先介紹一個叫Network Allocation Vector(NAV)這個變量。這個變量會附在無線數(shù)據(jù)包內(nèi)的。準(zhǔn)備發(fā)送數(shù)據(jù)的主機(jī)通過NAV這個值通知其它沉默的主機(jī)信道要被占用多長時間來用于傳輸數(shù)據(jù)。每個主機(jī)都會維護(hù)一個自己的NAV值,然而這個NAV值每隔1微秒會遞減1,直到遞減為0的時候就表示虛擬載波監(jiān)聽的信道空閑。


            說白了NAV就是個定時器,但是是個動態(tài)定時器,當(dāng)主機(jī)沉默時會不斷的收到來自無線網(wǎng)絡(luò)中的含有NAV值的數(shù)據(jù)包,只有當(dāng)數(shù)據(jù)包中的NAV值大于自己的NAV值時,主機(jī)才會更新自己的NAV值。

            比如說 1號主機(jī)的NAV值是100,那么收到一個A包,它的NAV值是99,那么1號主機(jī)的NAV值就還是100不變。過了10微秒,1號主機(jī)又收到一個B包,它的NAV值還是99,但是這個時候1號主機(jī)的NAV值是90了(每隔1微秒會遞減1的嘛),所以1號主機(jī)會把自己的NAV值更新為99。直到這個NAV值遞減到0才說明信道可用。


            接下來又回到時序問題上,在每幀發(fā)送結(jié)束后(這里指的是所有主機(jī),特別是沉默的主機(jī),當(dāng)沉默主機(jī)檢測到NAV值是0就表示傳送完畢了)都會有個等待間隙。但這等待間隙類型分4種:

            SIFS (short interframe space)

            該類型時間間隔最短,這個類型的時間間隔主要用于高優(yōu)先級別的操作。要發(fā)送RTS,CTS,ACK或者是被分片的幀(假設(shè)一個幀被分成了3塊,第一部分傳送完畢,等待SIFS間隔繼續(xù)發(fā)送第二塊,而其他要發(fā)送完整幀的主機(jī)則需要等待DIFS間隔,這樣就能夠確保這被分片的幀能夠一次性發(fā)送完畢,也就是被分片的幀享受更高的傳輸優(yōu)先級)的時候。


            PIFS (PCF interframe space)

            PIFS時間間隔其次,在傳輸PCF相關(guān)的管理幀的時候采用這類型的時間間隔。這種情況就是一般我們用路由器,路由器的管理幀只要等待PIFS就可以發(fā)送了。


            DIFS (DCF interframe space)

            DIFS時間間隔最長,所有主機(jī)要傳輸數(shù)據(jù)的話必須在上一次傳輸完畢后統(tǒng)一等待DIFS時隙后才能嘗試發(fā)送。當(dāng)然,這里說的是嘗試發(fā)送,因?yàn)楹竺孢€得進(jìn)入一個競爭間隔。


            EIFS (extended interframe space)

            這類幀的時間間隔不確定,在傳輸錯誤的時候才會用到。


            所以除去EIFS,他們仨的時間關(guān)系就是  SIFS<PIFS<DIFS,SIFS等待時間最短,DIFS最長,PIFS居中

            。可以發(fā)現(xiàn),時間越短,發(fā)送成功率越高,這也就說明優(yōu)先級越高。顯而易見,RTS/CTS幀,也叫控制幀的發(fā)送間隔都是SIFS,因?yàn)檫@類幀的優(yōu)先級要高于平常的數(shù)據(jù)傳輸。所以當(dāng)你要發(fā)送RTS之類的幀時就采用SIFS時間間隔,這樣就能夠保證RTS幀能夠更快比使用其它時間間隔的幀發(fā)送出去,其它幀接收到RTS報文后就開始保持沉默將不試圖發(fā)送幀了。

            整個過程串起來就如下圖所示:


            先分析上面的那個時間軸,RTS發(fā)送出去,收到CTS。然后間隔SIFS就開始發(fā)送數(shù)據(jù)了,這里的幀是分片的,分片的幀需要一次性傳輸完,所以每個幀的等待發(fā)送時間是SIFS。里面還可以看到ACK的回復(fù)時間也是需要等待SIFS的,因?yàn)檫@幾個類型的幀對保證數(shù)據(jù)傳輸非常重要,所以享有更高的發(fā)送優(yōu)先級,在這種情況下,其它的無線主機(jī)發(fā)送數(shù)據(jù)干擾這次傳輸是不可能的,因?yàn)樗麄冃枰却鼶IFS時間間隔。在他們等待沒完的時候RTS,CTS,ACK,分片幀的傳輸早都開始傳輸了,這些主機(jī)接收到數(shù)據(jù)傳輸信息后只能進(jìn)入沉默。


            那么下面的那個時間軸就更清晰了,這個時間軸其實(shí)可以看成是其它沉默無線主機(jī)NAV值的情況。

            在剛發(fā)送第一個RTS幀的時候,其它主機(jī)收到了RTS幀中附帶的NAV值,等到0號幀傳送結(jié)束后各個主機(jī)開始等待DISF時間準(zhǔn)備傳輸,但是這個時候發(fā)送主機(jī)由于在發(fā)送分片幀,所以只要等待SIFS時間就發(fā)送了,結(jié)果是其它主機(jī)的DISF時間還沒等待完就收到了1號幀給他們的NAV值,然后再一號幀傳送的這段時間他們又得只能沉默。這個時間軸上面部分表示SENDER通告給其它主機(jī)的NAV值的有效期,下面表示Reveiver通告給其它主機(jī)的NAV值有效期。


            4 無線主機(jī)發(fā)送過程

            綜合上面的所有概念,下面貼個圖來全盤分析下單個無線主機(jī)發(fā)送數(shù)據(jù)包的過程



            1. 前面的busy段表示主機(jī)A監(jiān)聽到網(wǎng)絡(luò)數(shù)據(jù)繁忙(這里主機(jī)A判斷信號方面可能是NAV值沒遞減到0,也可能是物理載波監(jiān)聽那塊檢測到有數(shù)據(jù)傳送,還可能是2者兼有)

            2. OK,busy段結(jié)束后進(jìn)入等待階段,當(dāng)然這里要發(fā)送數(shù)據(jù)而且不用RTS/CTS機(jī)制的話,那么等待時間應(yīng)該是DIFS間隔的


            3. 進(jìn)入競爭發(fā)送階段,所有主機(jī)在自己窗口中隨機(jī)選一個時間來等待


            4. 假設(shè)主機(jī)A隨機(jī)到的等待時間最短,那么他就開始發(fā)送數(shù)據(jù)了,其它主機(jī)發(fā)現(xiàn)有數(shù)據(jù)傳輸了則會進(jìn)入沉默狀態(tài),等待下一次數(shù)據(jù)傳輸完畢后進(jìn)行競爭。


            5 重傳

            剛才說到了分片,那么連帶重傳一起說了吧


            先說說為什么要分片,什么時候分片的問題

            在無線網(wǎng)絡(luò)通信中,要知道傳輸時受到的干擾是多種多樣的,也就是說無線網(wǎng)絡(luò)在MAC層的穩(wěn)定性是遠(yuǎn)遠(yuǎn)不如以太網(wǎng)般穩(wěn)定的。所以在長數(shù)據(jù)幀傳輸?shù)臅r候很容易中間被中斷。為了提高穩(wěn)定性,就把這個幀分片,然后再傳輸,顯然短幀傳輸成功率要高于長幀。這樣設(shè)計(jì)的目的是為了提高無線MAC層的可靠性。這個就跟你拿IE下一個1G的東西(一次性傳長幀)和拿迅雷下同樣一個1G的東西道理是一樣的,顯然拿迅雷下更穩(wěn)定些,因?yàn)橛袛帱c(diǎn)續(xù)傳。那么分片傳輸充其量就是把以前的普通IE下載升級優(yōu)化成了斷點(diǎn)續(xù)傳罷了。


            當(dāng)數(shù)據(jù)包到指定的分片閥值的時候就對數(shù)據(jù)包進(jìn)行分片,同一個幀被分片的部分也會帶有一樣的幀序號,也會有自己的分片編號,也會有個表示為表示這個幀是不是分片幀。這個跟IP分片設(shè)計(jì)原則是一樣的,這個就不具體說了。


            再者就是重傳問題了,神馬時候重傳?

            以上篇幅提到過,只有在收到ACK確認(rèn)后主機(jī)才會認(rèn)為自己發(fā)送幀是成功的。同樣,RTS只有在收到CTS后才認(rèn)為自己的RTS發(fā)送成功了。

            所以這里涉及到一個問題就是發(fā)送失敗如何處理?重傳?對~是重傳,但是一直發(fā)送失敗呢?所以對于每個幀都有個重傳計(jì)數(shù)器(注:競爭窗口大小就是根據(jù)這個重傳計(jì)數(shù)器來決定的),失敗一次就遞增一,但失敗到指定的上限的時候就放棄發(fā)送該幀然后向上層協(xié)議報告。

            然而重傳計(jì)數(shù)器有2個,分別是長幀重傳計(jì)數(shù)器和短幀重傳計(jì)數(shù)器。某幀當(dāng)長度大于指定閥值的時候,該幀發(fā)送失敗則長幀重傳計(jì)數(shù)器遞增1,反之亦然。這個閥值是可以設(shè)定的,重傳上限也可以設(shè)定。這么設(shè)計(jì)是因?yàn)殚L幀會占用更多資源(內(nèi)存空間,傳輸時間等)以便讓管理員通過調(diào)整閥值和各個計(jì)數(shù)器的重傳上限來優(yōu)化無線網(wǎng)絡(luò)。那么我們來YY一下(純屬YY……我比較沒做過網(wǎng)絡(luò)優(yōu)化這方面的經(jīng)驗(yàn),只是假設(shè)下可能的場景~),比如說我希望用來傳輸300字節(jié)一下的幀的時間多一些,那么我就設(shè)定閥值為300,然后長幀重傳計(jì)數(shù)器的上限設(shè)置低一些,短幀重傳計(jì)數(shù)器上限設(shè)置高一些。


            重傳計(jì)數(shù)器要清零很簡單,有幾種情況

            1 RTS幀發(fā)送出去若收到CTS幀則清零重傳技術(shù)器(當(dāng)然這個只可能發(fā)生在短幀計(jì)數(shù)器情況下,因?yàn)镽TS數(shù)據(jù)幀一般情況下不屬于長幀……當(dāng)然你要把閥值設(shè)成RTS幀大小我也沒話說~)

            2 幀數(shù)據(jù)發(fā)送出去,收到ACK確認(rèn)

            3 收到廣播或者多播幀(why?書里面這么寫的,但沒寫為什么,這里的多播和廣播幀是不是值通告NAV值的廣播幀咧?如果是這樣,那么就說得通了。待高手解釋~)

            OK,這一篇結(jié)束





            posted on 2011-02-05 18:20 __ay 閱讀(437) 評論(0)  編輯 收藏 引用 所屬分類: Others

            日韩精品无码久久一区二区三| 国产精品青草久久久久福利99 | 久久人妻无码中文字幕| 亚洲人成无码网站久久99热国产| 久久这里只有精品18| 美女写真久久影院| 精品久久人人爽天天玩人人妻| 久久青青草原亚洲av无码app| 狠狠色丁香久久综合五月| 精品久久久久成人码免费动漫| 91精品国产综合久久四虎久久无码一级| 思思久久精品在热线热| 久久久免费精品re6| 久久亚洲2019中文字幕| 久久综合丁香激情久久| 人妻无码精品久久亚瑟影视 | 日韩精品久久久久久久电影蜜臀 | 久久91精品国产91久久户| 久久久久亚洲AV成人网| 久久电影网2021| 久久夜色精品国产亚洲| 91久久国产视频| 久久精品国产精品亚洲毛片| 午夜精品久久久久9999高清| 99久久免费国产精品热| 久久久精品人妻一区二区三区蜜桃 | 久久国产一区二区| 久久综合九色综合网站| 亚洲国产婷婷香蕉久久久久久| 久久精品国产精品青草| 久久久国产乱子伦精品作者| 久久精品免费全国观看国产| 久久免费观看视频| 久久精品国产亚洲欧美| 久久国产免费观看精品3| 三级三级久久三级久久| 日产精品久久久久久久| 久久无码一区二区三区少妇 | 久久99国产精品久久久| 狠狠色婷婷综合天天久久丁香| 日本人妻丰满熟妇久久久久久|