上期我們談到802.11a使用ISM(Industrial, Scientific and Medical radio band,工業、科學以及醫療無線頻段)的5GHz頻段,可惜的是各國政府對於這個頻段的使用頻率分歧度較大,在加上能夠傳輸和接收5GHz頻段的硬體設備比較貴,同時也因5GHz頻段的頻率範圍大,前端的天線和收發器的製作較為困難。
802.11b的出場正是為了解決802.11a產品價格過高,市場推廣不利的問題。但2.4GHz同時會被家中既有電器干擾,如微波爐或是無線電話。但當時的時空背景主要以降低價格為考量,干擾問題於是被擺在較後面的順位。802.11b繼承了802.11的DSSS直接序列展頻,以及DBPSK差分2相移鍵(2相位差調變)和DQPSK差分4相移鍵(4相位差調變),所以理論傳輸速率也是1Mbps和2Mbps。不過802.11的FHSS跳頻展頻和GFSK高斯頻移鍵控(高絲頻率偏移調變)已不存在於802.11b之中。如果802.11b只是將FHSS和GFSK廢掉,那這個新規格也不用推出了,802.11b新導入了CCK(Complementary Code Keying,互補碼調變、互補碼移鍵)。
CCK互補碼調變主要取代掉DSSS中的巴克碼編碼方式,後端調變依然使用DQPSK,原本802.11採用DBPSK調變,11個chip只能代表實際資料1bit(改採DQPSK則是11個chip代表2bit),現在只需8個chip即可代表8bit,速度從802.11的1Mbps(DBPSK)和2Mbps(DQPSK)躍升為11Mbps;若是無線環境比較差的情況下,802.11b的CCK還允許8個chip代表4bit,速度降為一半5.5Mbps。
CCK的編碼方式較為複雜,首先給定1串8bit的資料C={d0, d1, d2, d3, d4, d5, d6, d7},則會編碼為C={e^j(Φ1+Φ2+Φ3+Φ4), e^j(Φ1+Φ3+Φ4), e^j(Φ1+Φ2+Φ4) , -e^j(Φ1+Φ4), ej(Φ1+Φ2+Φ3), e^j(Φ1+Φ3), -e^j(Φ1+Φ2), e^jΦ1}。Φ1、Φ2、Φ3、Φ4的值由資料C分成4組決定。其中Φ1的值會因為此符號位於奇數或偶數而有差別,兩者相差180度。
假設此符號為第偶數個,則當(d0, d1)=(0, 0)時、Φ=0;(d0, d1)=(0, 1)、Φ=π/2;(d0, d1)=(1, 1)、Φ=π;(d0, d1)=(1, 0 )、Φ=3π/2,確定角度之後再代回公式即可算出。之後的d2~d7則是兩兩一組,依照QPSK的方式得出相位值(注意此處不是格雷碼編碼),[di, d(i+1)]為(0, 0)時、Φ=0;[di, d(i+1)]為(0, 1)、Φ=π/2;[di, d(i+1)]為(1, 0)、Φ=π;[di, d(i+1)]為(1, 1)、Φ=3π/2。詳細DQPSK和PQSK的轉換請見附表。
假設現今有串8bit的資料為C={1, 1, 0, 0, 1, 0, 0, 1},根據附表轉換為Φ1=3π/2、Φ2=0、Φ3=π、Φ4=π/2。代換回公式即為C={e^j(3π/2+0+π+π/2), e^j(3π/2+π+π/2), e^j(3π/2+0+π/2), -e^j(3π/2+π/2), e^j(3π/2+0+π), e^j(3π/2+π), -e^j(3π/2+0), e^j(3π/2)}={e^j(3π), e^j(3π), e^j(2π), -e^j(2π), e^j(5π/2), e^j(5π/2), -e^j(3π/2), e^j(3π/2)}。再根據尤拉公式e^jθ=cosθ+jsinθ進行運算,變成C={cos(3π)+jsin(3π), cos(3π)+jsin(3π), cos(2π)+jsin(2π), -cos(2π)-jsin(2π), cos(5π/2)+jsin(5π/2), cos(5π/2)+jsin(5π/2), -cos(3π/2)-jsin(3π/2), cos(3π/2)+jsin(3π/2)}={-1, -1, j, -j, j, j,1, -1 },最終{1, 1, 0, 0, 1, 0, 0, 1}經過CCK之後就會變成{-1, -1, 1, -1, j, j, j, -j }。
由於CCK將資料編碼成複數chip,所以同時需要I、Q通道表示1個chip、如果編碼出來為1,則I、Q分別傳送0、0;若為j,則I、Q為0、1;若為-1,則I、Q為1、0;若為-j,則I、Q為-1、-1。
802.11b引入的CCK有2種速率,11Mbps和5.5Mbps,如果今天空間中的雜訊實在太多,符號錯誤率超過8%,則會改採5.5Mbps的速率。兩者編碼的步驟大致上相符,只不過輸入的8bit資料變成4bit,所以在算式的地方有些小小變更。假設C={d0, d1, d2, d3},d0和d1依然拿來選擇Φ1的角度,其餘Φ2、Φ3、Φ4的角度則是變成Φ2=(d2×π)+π/2、Φ3=0、Φ4=(d3×π)。
在解調方面,由於將每8bit分成4組相位,而4組相位又分別有4種不同的值,所以總共會產生4^4=256種可能性。最普通的解法是將收到CCK編碼和256組CCK編碼之中,每個chip的共軛複數相乘後相加,於是得到256組複數。在這256組複數中,再找出值(I^2+Q^2)最大的那組,其對應的8bit資料就是傳送端傳來的資料。
這其中還有些變通的辦法減少解調端的運算負荷量,例如Φ1在每個CCK碼之中都有,便可把Φ1提出來變成C=e^jΦ1{e^j(Φ2+Φ3+Φ4), e^j(Φ3+Φ4), e^j(Φ2+Φ4) , -e^jΦ4, e^j(Φ2+Φ3), e^j(Φ3), -e^jΦ2, 1},運算量就可以從4^4變為4^3,除了這個之外,還有其他更為快速的算法,在此就不一一列出。
CCK所使用的算式C={e^j(Φ1+Φ2+Φ3+Φ4), e^j(Φ1+Φ3+Φ4), e^j(Φ1+Φ2+Φ4) , -e^j(Φ1+Φ4), e^j(Φ1+Φ2+Φ3), e^j(Φ1+Φ3), -e^j(Φ1+Φ2), e^jΦ1}看起來相當奇怪,但其實是Walsh/Hadamard矩陣的變化,如果把相位和其所出現的位置畫成表格,就很容易看出來。
敏感的人應該已經察覺,相位的出現有其規律性,Φ1每個位置都出現,Φ2則是隔1格位置出現,Φ3是將2格分成1組,隔1組出現,Φ4則是4格1組,隔組出現,這種巧合正好是8階Walsh/Hadamard矩陣的其中4列。Walsh/Hadamard矩陣很重要的一點就是每列相互正交,兩兩內積為0。
▲1個8階的Hadamard矩陣。
802.11b的後期還有個小插曲,就是在IEEE 802.11g未出現之前,就已有無線晶片廠商各自擁護自己的增強規格,像是CCK22、CCK33,或是導入802.11a的OFDM都有人做。不過最後在802.11g正式規範當中,把802.11a和802.11b做整合,802.11b的速率1、2、5.5、11Mbps原封不動搬到802.11g之中,再把802.11a的6、9、12、18、24、36、48、54Mbps抓進來,並把5GHz的運作頻段改為2.4GHz。如此一來,就可以結合802.11b採用2.4GHz,傳輸距離比較長,以及802.11a使用OFDM速度快的優點。
可惜事情不是憨人想的這麼簡單,由於802.11g同時相容802.11b,如果今天802.11g的無線網路中,進來了某個只支援802.11b的用戶端,那麼所有802.11g的用戶必須轉為使用802.11b的模式。主要的原因在於802.11b用戶端看不懂OFDM調變,會認為目前空間中沒有訊號在傳輸,就把訊號打出來,影響到其他使用OFDM的用戶,使得整體無線網路交通打結。
在802.11 b/g混合使用的無線網路中,如果原本沒有802.11b的終端裝置加入,大家就用802.11g的速率來溝通。現在若是有802.11b的裝置加入,則AP會發出通告,向所有連線終端裝置表示現在有802.11b裝置加入,請大家使用保護模式。所謂保護模式,其實也就是之前我們所談過的RTS/CTS機制,由於802.11b看不懂802.11g的東西,所以802.11g的設備在傳送資料之前,都必須以802.11b的速率發送1筆含有時間間隔的RTS訊息,所以當802.11b的裝置收到這筆RTS時,會回覆1筆CTS的訊息,同時了解時間間隔。
在這時間間隔中,發出RTS的802.11g裝置即可以802.11g的速率和其他節點溝通,在此同時,由於802.11b裝置已經收到含有1段時間的RTS訊息,802.11b裝置就明白在此時間之中都不可以傳送資料,無論通道是否忙碌。RTS/CTS機制可宣告1段時間讓802.11b裝置進入安靜狀態,就不會因為看不懂802.11g的高速速率,而發出訊框和802.11g的訊框相互衝突。
802.11g和802.11n之間的交接期可說是相當混亂,先有Broadcom和Atheros分別自行提出的Afterburner和Super G技術,前者最高連線速度可達125Mbps,後者則是108Mbps,但是由於2家在市場上是競爭關係,彼此技術並不相容,需要無線基地台和無線網卡皆支援此技術,才可享受更為快速的無線網路。
在802.11n正式版尚未出爐的情況下,就有廠商依據IEEE 802.11n draft草案規格自行製作產品,可惜當時還是你彈鋼琴我敲木魚的情況,大多數情況下僅有同1家廠商的晶片才可跑出最佳速度。
這種亂七八糟你說我唱的詭異相容性,在Wi-Fi聯盟針對802.11n draft 2.0產品進行認證測試之後才好得多,之後的draft 3.0和正式版出來之後就比較少人關心了,因為產品之間的互通性大致上已經沒有問題了。802.11n使用相當多的技術來改善傳輸速率,但在調變時依然採用PSK和QAM,以下將一一說明。
Block Acknowledgement
原先802.11無線傳輸標準中,當接收方每收到1個訊框時,接收方就要回應1個ACK給傳送方,如此一來,當某個訊框無法正確到達目的地時,傳送方立刻就會知道並重新傳送1次。
802.11n則是稍微犧牲了一些即時性,現在數個由傳送方送來的訊框,可由1個Block ACK全部確認,Block ACK包含了64 x 16bit的bitmap,內部放入之前數個由傳送方傳送而來的訊框成功與否的資訊,成功設定為1,失敗設定為0,傳回發送方之後,即可對比找出失敗的訊框重送。由於無線網路很難做到全雙工,一旦空間中塞滿了許多的ACK,傳送方便無法傳送訊息;Block ACK主要就是將多個ACK整合在一起,相對來說提升通道的利用率。
回應的資料能夠包裝在一起,傳送的資料當然也可以打包在一起。在802.11n中,有2種方式將較短的資料包在一起變成較長的資料,分別為A-MSDU和A-MPDU。
A-MSDU主要是將已經經過網路層的資料(MSDU),打上表頭之後稱為MSDU subframe,將許多MSDU subframe包在一起,就是1串A-MSDU,之後再將這串A-MSDU包上媒體層表頭和尾部的FCS偵錯。將多個MSDU subframe包在一起,就可去掉數個媒體層表頭和FCS所占去的空間。
媒體層包完的東西稱做MPDU,在進入實體層時把多個MPDU包在一起就是A-MPDU技術,除了減少實體層表頭之外,由於此層在網路階層中為最後1層,接下來傳輸時須進行無線網路通道資源的競爭,如果把5個MPDU包在一起,原先需經歷5次的資源競爭瞬間變為1次,同樣也可提升通道資源利用效率。
▲A-MSDU和A-MSPU聚合的示意圖。
在802.11n之前,每傳送2個符文(symbol,無線網路中傳送1次資料的最小單位)之間,必須有800ns的保護區間,目的是希望降低多重路徑干擾下,符文與符文之間的相互干擾。
802.11n有個選配的400ns保護區間,目的同樣也是提升通道資源利用率,但在複雜環境下則有可能增加符文與符文之間的干擾,反而讓實際傳輸速率降低。如果在最好的狀況下,保護區間由800ns變為400ns,大約可帶來11%的速度提升。
802.11a和802.11g皆使用OFDM,將載波切成48個彼此正交的子載波進行傳輸,抵禦多重路徑干擾,802.11n則是採用52個子載波,速度快上8.3%。此外,802.11n也將編碼率從802.11g的3/4拉高至5/6,意即在傳輸的資料中,實際的資料佔去5/6,提供錯誤更正的資料占去1/6。
802.11n於調變部分同時使用BPSK、QPSK、16-QAM、64-QAM技術,配合上不同的編碼率,產生6.5~65Mbps的連線速率。若是加上前述Short Guard Interval,則是7.2~72.2Mbps。
802.11n有個選配選項,可將相鄰的20MHz頻段整合成1個40MHz的頻段進行傳輸,傳輸量因而加倍,若是搭配Short Guard Interval一同服用,頻寬增為15~150Mbps。至於為何不是72.2 x 2=144.4Mbps,是由於結合2個20MHz的頻段,原先用來隔離各個20MHz的保護區間就可捨去,因此使用40MHz之後,子載波並非52 x 2=104個,而是108個。
另外,由於2.4GHz頻段塞車日益嚴重,802.11n也重新帶入了802.11a所在的5GHz頻段,但由於各國對於5~5.8GHz這個頻段開放程度不一,有時會有產品不相容的事情發生。
過往無線傳輸視多重路徑干擾為大敵,同一訊號經由許多物體反射後到達目的地,很容易因為些微時間差造成訊號變化,無法解讀出原始訊號為何?但在802.11n中卻將這種多重路徑變為優點,在空間中放置多組天線,並同時利用多組天線傳輸和接收,由於多組天線可辨識出不同的訊號流,因此在不增加頻寬的情況下,大幅增進傳輸速度。1支天線收發最快為150Mbps、2支天線最快為300Mbps、3支天線最快為450Mbps,而802.11n最高可使用4T4R、600Mbps,但目前市面上並無這種規格的商品可供選擇。
多天線收發除了能將資料分配到不同的天線上同時傳輸,增加頻寬之外,多天線還可進行波束成型(Transmit Beamforming、Beamforming)的功能,藉由多組天線傳輸同一組資料,各天線傳輸資料時會有些微的時間差,造成電磁波在部分空間因為相位相同、振幅增加,因此可鎖定接收方的位置將訊號集中。此功能為選配,如果使用者在無線產品包裝盒上看到類似訊號集中的文字敘述,那麼八九不離十就是此功能。
由於行動裝置受限於體積、電池容量等因素,並不見得擁有這麼多組的天線與收發模組,但是無線基地台大多數時間擁有多組天線,於是便可利用多組天線,傳輸同一組但不同編碼的資料,對於接收方來說,可提升接收品質,讓傳輸錯誤比例下降。
802.11n無線基地台允許和較舊的802.11 a/b/g設備相互溝通,為此訂下了3種模式:Non-HT(Legacy)、HT Mixed、HT(Greenfield)。Non-HT(Legacy)不採用802.11n相關的標準,也就是運作模式退回到802.11 a/b/g;HT Mixed模式就如同之前802.11g相容802.11b的運作方式,首先會以大家都看得懂的速率傳送RTS/CTS,之後才會以較高速率傳送資料,就算是只支援較低速率的裝置,也因遵照RTS傳來的時間間隔,不會誤認目前無線傳輸通道沒有人正在使用,丟出訊框造成碰撞。
HT(High Throughtput)模式,也稱作Greenfield模式,此模式假設無線基地台以及附近無線裝置均支援802.11n,沒有採用其他標準的無線裝置存在,因此全程採用802.11n標準相互溝通。在這模式下,使用老舊標準的無線裝置並無法和無線基地台溝通,也無法得知目前傳輸頻道正在使用中,所以使用此模式必須非常小心。一般來說802.11n無線基地台皆會支援Non-HT(Legacy)、HT Mixed模式,Greenfield則是看各家廠商列為選配。
如同802.11n,802.11ac同樣在草案階段就有晶片廠商搶先推出產品,Broadcom在此戰搶奪先機,市面上第一批出貨的802.11ac draft產品全部採用Broadcom晶片,第二批才有Qualcomm Atheros、Ralink、Realtek、Intel……等晶片。
在802.11ac規格部分,運作頻率強制鎖定5GHz頻帶,因為擁擠和導入80MHz頻寬的關係,2.4GHz被拋棄無法使用;160MHz頻寬列為選配,可由連續或是不連續的2個80MHz頻寬組合而成(目前市面上的802.11ac產品僅支援80MHz)。MIMO多天線收發則是選配最多8支(目前市面上最多3支),且導入選配的Multi-user MIMO,不同天線可和不同的裝置同時進行溝通(目前市面上皆無支援此技術)。標準調變一樣為64-QAM和5/6編碼率,選配調變方式多出256-QAM,最高5/6編碼率;原先在802.11n列為選配的波束成型,在802.11ac則是列為標配。
目前802.11ac最新的版本為draft 5.0,多台802.11ac draft無線路由器所使用的Broadcom BCM4360為draft 2.0版,Wi-Fi也早在今年6月就開始802.11ac的認證測試,預計今年底或是明年初,IEEE就會發布正式版的規格。