1 提筆
自己從事WiFi行業多年,說來慚愧,竟然沒有靜下心來給個總結。最近由於工作關係,又再次涉及WiFi相關內容,故而花了些時間總結出此文檔。分享給同學們,同時也算是給自己一個交代。一杯敬明天,一杯敬過往?哈!
當然,還是那句話,如有不準確之處,還望各位同學批評指正。
2 802.11家族演進史
IEEE 802.11是現今無線局域網通用的標準,它是由電氣和電子工程師協會(IEEE)所定義的無線網絡通信的標準。從1997最初版發展到現在,歷經20多年,儼然已是一個龐大的協議家族。從命名上就可以看出:a一直到z,單字母用完,aa一直到目前的ax,雙字母繼續發展。所以個人認為802.11是迄今為止局域網領域最為複雜的數據鏈路層協議,沒有之一。
如此龐大的協議家族,每個都可以拿出來細談,本文主要集中在802.11a/b/g/n上,也就是重要的幾個milestone,WiFi5(11ac)和WiFi6(11ax)會後續另論。
協議重要的幾個版本演進史:
圖表 1 802.11版本演進
那大家可能會問,發展的幕後推手是什麼呢?答案是速度。對,就是為了滿足人類不斷對速度的追求。這算不算是一種慾望呢?哈!不扯淡,看圖,看看速度是怎麼變快的。
圖表 2 802.11物理層技術演進
上面這張圖很重要,下面很大篇幅其實都是來解釋這張圖。
對了,有個小概念澄清下。雖然經常將Wi-Fi與802.11混為一談,但兩者並不等同。1999年工業界成立了Wi-Fi聯盟,致力解決匹配802.11標準的產品的生產和設備兼容性問題。
3 802.11abgn物理層
我的經驗是,要學習掌握某一數據通信協議,先找出其OSI模型,然後從底層(物理層)向上層層剝離。對於802.11來說,就2層:物理層和MAC層。
3.1 最初的802.11(July 1997)
主要提供三種物理層:紅外技術,跳頻擴頻和直接序列擴頻
- 紅外技術,沒有實際使用,不在討論範圍內
- FHSS+GFSK,得到1Mbps和2Mbps速率
- DSSS+BPSK/QPSK,得到1Mbps和2Mbps速率
3.1.1 FHSS和GFSK
何為FHSS跳頻擴頻呢?看如下圖:
圖表3 跳頻
跳頻為啥得到1Mbps和2Mbps數據速率呢?原因是GFSK調製解調技術。GFSK是調頻,也就是說依靠不同頻率的載波來傳遞二進制1和0。分為二階式和4階式:
- 1M的符號symbol率(每秒傳輸1M個symbol),採用二階GFSK調製,每個symbol攜帶一個bit信息,對應就是1Mbps
- 採用四階GFSK,每個symbol可以攜帶2個bit信息,對應就是2Mbps
圖表4 二階式GFSK
圖表5 二階式GFSK頻域圖
圖表6 四階式GFSK
圖表7 四階式GFSK頻域圖
3.1.2 DSSS和BPSK/QPSK
802.11最初版也定義了另外一種物理層DSSS,速率也可以達到1Mbps和2Mbps。同時定義了2.4G頻段的頻道分佈。如圖:
圖表8 2.4GHz頻譜圖
那麼何為DSSS直接序列擴頻?如下圖:
圖表9 Barker碼擴頻原理1
圖表10 Barker碼擴頻原理2
可以看出,DSSS就是利用擴頻碼(圖中是11位的Barker碼)承載要傳輸的二進制信息。這樣做的目的其實就是把窄帶信號分佈在較寬的頻帶上,提高抗干擾能力。
編碼好了,那就開始載波調製,空中傳輸了。DSSS採用PSK調相技術,即用載波的不同相位來傳輸二進制0和1. 具體又分為BPSK和QPSK。如下圖:
圖表11 BPSK
圖表12 QPSK
可以看出,同樣的載波,同樣的週期裡BPSK能攜帶1bit信息,QPSK能攜帶2bit信息。
那麼 ==速率=符號速率x 單個符號編碼位數/擴頻碼位數==
符號率固定為11M。
單個符號編碼位數,BPSK=1,QPSK=2。
Barker碼為11位。
至此,==BPSK 速率=11x1/11=1Mbps== ==QPSK 速率=11x2/11=2Mbps==
3.2 802.11b物理層
提供4種物理層:
- DSSS+BPSK/QPSK+Barker,沒有變化,繼續提供1Mbps和2Mbps物理層
- DSSS+QPSK+4-Bits CCK,引進5.5Mbps物理層
- DSSS+QPSK+8-Bits CCK,引進11Mbps物理層
可以看出,新增了5.5Mbps和11Mbps物理層。那怎麼實現的呢?這就要談到CCK擴頻,區別於Barker 11位擴頻,CCK採用8位擴頻,配合QPSK調製,可以做到每個symbol攜帶4bit和8bit信息。
Again, 依然是這個公式:速率=符號速率x 單個符號編碼位數/擴頻碼位數
不難得出,==4 bit CCK對應的速率=11MHz x 4 bit / 8 = 5.5Mbps== ==8 bit CCK對應的速率=11MHz x 8 bit / 8 = 11Mbps==
3.3 802.11a物理層
工作在5GHz,速率最高達到54Mbps,劃重點:
- 開闢了新的頻段5G
- 採用了OFDM
- 更高階的QAM編碼
我們來一一介紹。首先是頻譜發生了變化。如下圖:
圖表13 802.11a頻譜與頻道
OFDM,正交頻分複用。基本原理:
將信號分割為N個子信號,然後用N個子信號分別調製N個相互正交的子載波。OFDM 物理層將每個頻寬20MHz 的頻道劃分52個子載波。其中有4 個子載波充當導波(pilot carrier),用以監控路徑偏移與 ICI。至於其餘 48 個子載波則是用來傳遞數據。子載波之問彼此相距0.3125MHz ,頻道編號從-26 至 26。這就好比同樣寬的馬路,以前是單車道,現在變成了48個車道,馬路沒變,但通行能力增大了。
圖表14 頻域中的正交性
QAM,正交幅度調製。也就是同時利用了載波的振幅和相位來傳遞信息。如下圖:
圖表15 16 QAM和64 QAM
可以看出,16 QAM可以做到每個符號symbol攜帶4位二進制信息;64 QAM可以攜帶6位二進制信息。
至此,我們來算筆賬,看看11a速率的組成和由來。
==物理層速率Mbps=子載波數x調製階數x編碼效率/OFDM符號發送間隔==
圖表16 802.11a速率表
==舉個栗子,對應調製方式16-QAM,編碼效率為1/2。速率怎麼算呢?在802.11a中,數據子載波是48個,16QAM調製對應的每個symbol可以攜帶4位信息,R=1/2是編碼率(為了能抗干擾增加糾錯能力,就要增加冗餘度,即1/2可以理解為1個bit用2個bit來傳輸),一個OFDM symbol的傳輸時間是4us(可以理解為每秒傳輸0.25M個OFDM symbol)。即48x4x(1/2)x0.25M=24Mbps。==
講到這兒,歇會兒,喝口水,讓我們在54Mbps的速率上躺會兒。
3.4 802.11g物理層
與11a的技術相同,區別是工作在2.4GHz頻段。==故最高速率也是54Mbps==。
但有一點要注意,11b也工作在2.4G頻段,那11g就要兼容11b(CCK DSSS)。 如何做到呢?方法有二:
- 類似隱藏節點的解決辦法 RTS/CTS機制
- CTS to Self機制
關於這兩點,涉及到MAC層,在此先記住就行了,後面MAC章節會講到。
3.5 802.11n物理層
革命尚未成功,同志還需努力,讓我們繼續攀升速率。802.11n關鍵技術:
- MIMO
- 40MHz信道
- Short Guard Interval
- OFDM改進
- 編碼率的改進
啥?這麼多新名詞!淡定,讓我們一個個來講。
MIMO,多輸入多輸出。**MIMO是802.11n物理層的核心,指的是一個系統採用多個天線進行無線信號的收發。它是當今無線最熱門的技術,無論是3G、IEEE 802.16e WIMAX,還是802.11n,都把MIMO列入射頻的關鍵技術。MIMO主要有以下典型作用:
- 提高吞吐量
通過多條通道,併發傳遞多條空間流,可以成倍提高系統吞吐。如圖17.
- 提高無線鏈路的健壯性和改善SNR
通過多條通道,無線信號通過多條路徑從發射端到達接收端多個接收天線。由於經過多條路徑傳播,每條路徑一般不會同時衰減嚴重,採用某種算法把這些多個信號進行綜合計算,可以改善接收端的SNR。需要注意的是,這裡是同一條流在多個路徑上傳遞了多份,並不能夠提高吞吐。如圖18.
圖表17 併發2條空間流
圖表18 MIMO利用多徑傳輸數據
OFDM 改進。OFDM在802.11a/g時代已經成熟使用,到了802.11n時代,它將MIMO支持的子載體從52個提高到56個。需要注意的是,無論802.11a/g,還是802.11n,它們都使用了4個子載體作為pilot子載體,而這些子載體並不用於數據的傳遞。所以802.11n MIMO將物理速率從傳統的 ==54Mbps提高到了58.5 Mbps(即54*52/48)==。
編碼率的改進
按照無線通信的基本原理,為了使信息適合在無線信道這樣不可靠的媒介中傳遞,發射端將把信息進行編碼並攜帶冗餘信息,以提高系統的糾錯能力,使接收端能夠恢復原始信息。802.11n所採用的QAM-64的編碼機制可以將編碼率(有效信息和整個編碼的比率)從3/4 提高到5/6。所以,對於一條空間流,在MIMO-OFDM基礎之上,==物理速率從58.5提高到了65Mbps(即58.5乘5/6除以3/4)==。
Short Guard Interval
由於多徑效應的影響,信息符號(Information Symbol)將通過多條路徑傳遞,可能會發生彼此碰撞,導致ISI干擾。為此,802.11a/g標準要求在發送信息符號時,必須保證在信息符號之間存在800 ns的時間間隔,這個間隔被稱為Guard Interval (GI)。802.11n仍然使用缺省使用800 ns GI。當多徑效應不是很嚴重時,用戶可以將該間隔配置為400ns,即每個OFDM符號連續時間從4us縮短為3.6u。對於一條空間流,可以將吞吐提高近10%,即從 ==65Mbps提高到72.2 Mbps==。對於多徑效應較明顯的環境,不建議使用Short Guard Interval (GI)。
圖表19 SGI減小幀間距
40MHz 信道
這個比較好理解,對於無線技術,提高所用頻譜的寬度,可以最為直接地提高吞吐。就好比馬路拓寬了,車輛同行能力自然提高。傳統的802.11a/g使用的頻寬是20MHz,而802.11n支持將相鄰兩個頻道綁定為40MHz來使用,所以可以最直接地提高吞吐。
圖表20 40MHz信道
需要注意的是:對於一條空間流,並不是僅僅將吞吐從72.2 Mbps提高到144.4(即72.2×2 )Mbps。對於20MHz頻寬,為了減少相鄰信道的干擾,在其兩側預留了一小部分的帶寬邊界。而通過40MHz綁定技術,這些預留的帶寬也可以用來通訊,可以將子載體從104(52×2)提高到108。按照 ==72.2x2x108/104進行計算,所得到的吞吐能力達到了150Mbps==。
總之,11n的速率就是這樣一步步提上來的。彙總如下圖:
圖表21 11n速率攀升圖
同樣,那我們總結下11n的速率如何計算。
==速率=子載波數目子載波攜帶的數據位碼率/每個OFDM符號持續時間*空間流數==
圖表22 802.11n MCS速率表
==舉個栗子,MCS 31,600Mbps怎麼算出來的。套用上面公式,子載波數目為108,子載波攜帶的數據位為6(64QAM攜帶6位信息),編碼率為5/6,每個OFDM符號持續時間3.6us,MIMO空間流為4. (108 x 6 x (5/6)/3.6) x 4 = 600Mbps==。
4 802.11 MAC層
802.11 MAC層協議涉及的東西特別多,在這我就主要介紹以下幾點,以求能讓大家瞭解MAC層基本的工作原理:
- DCF/PCF
- CSMA/CA工作機制
- RTS/CTS解決隱藏節點的問題
- 802.11 MAC層幀格式
DCF(Distributed Coordination Function):廣泛使用的模式,主流模式,也就是AP和Station的通信模式。
圖表23 DCF通信模式
PCF(Point Coordination Function): 很少應用,也就是Station和Station直接wifi連接進行通信。
圖表24 PCF通信模式
CSMA/CA:
何為CSMA/CA?見下圖:
圖表25 CSMA/CA解決的問題
CSMA/CA工作原理:
圖表26 CSMA/CA工作機制
RTS/CTS解決隱藏節點的問題:
何為隱藏節點呢?見下圖:
圖表27 隱藏節點問題
解決辦法:
圖表28 RTS/CTS機制解決隱藏節點問題
802.11 MAC幀格式:
圖表29 802.11幀格式
繼續分解Type和Sub Type字段:
圖表30 Type和Sub Type字段分解
圖表31 802.11 Frame Control字段分解
圖表32 802.11 Duration字段解釋
802.11幀有4個地址,如何應用呢?且聽我分解:
圖表33 802.11幀尋址機制
圖表34 802.11幀Sequence和FCS字段
講到這裡,是不是感覺自己的腦力算力不夠了呢?:) 沒關係,那我們就舉個栗子,講一個完整的802.11通信過程。
5 完整的一個802.11WPA/WPA2-PSK通信過程
假如你有一個AP,一個Station,AP上配了一個SSID,啟用了WPA2-PSK加密。這時候你在Station上點擊連接無線名字為SSID的網絡。之後發生了什麼呢?如下:
圖表35 STA連接AP
圖表36 4次握手
圖表37 四次握手續
圖表38 上網衝浪
Over,是不是感覺很high?很high就對了,快樂工作,認真生活!!!
6 End
WiFi還在繼續,因為人類對速度的追求是沒有止境的,11ac已經達到1Gbps,11ax還在標準化中,有望到達11Gbps。。。
關於11ac和11ax,且聽下回分解。。。
歡迎同學們批評指正,隨時拍磚!
原文作者:LG
點擊查看原文