網路架構大概論快要到最終篇了,就來談談無線網路的最底層,OSI的第一層「實體層」。或許各位讀者會稍微覺得有些怪異,為何筆者會以無線網路做為實體層的討論對象。
其實基本上來說,TCP/IP網路架構的第二∼第三層基本上已經確定了,未來也不會有多大的變化;近幾年較為出名的就是torrent協定的推出,不過也只是個架構在應用層的協定。未來網路就是朝向最頂層的應用服務發展,或是最底層攸關實際資料傳輸速度的規格更新。當然,因應IPv6的誕生,第二∼第三層可能會有新的協定,但IPv4的部分應該就是目前檯面上看到的這些,或是v2、v3的更新版而已。
細節藏在802.11裡
相對於有線網路來說,無線網路是近年規格變動相當快的媒體∕實體層標準,不管是行動通訊由2G、3G、4G不斷往上提升,或是屬於個人網路的IEEE 802.11無線區域網路的規格更新,都比有線網路快多了。當然有線網路也並非停滯不前,光纖、雙絞線都有規格演進版本,但相對於光纖、10GbE規格的企業骨幹有線網路,一般使用者能夠接觸到的802.11n、802.11ac顯得親民許多,也比較值得我們去關心。
無線網路的規格定義在IEEE 802.11一系列白皮書中,也是眾家網路廠商遵循的標準;說來也好玩,802.11剛開始還有定義出以紅外線傳輸資料的規格,只不過從來都沒有產品問世。
最初的802.11
IEEE 802.11最初的版本在1997年6月發布,除了沒人愛的紅外線之外,IEEE 802.11定義了運作頻率設定在2.4GHz。會選擇這個頻率是因為2.4GHz屬於ISM(Industrial, Scientific and Medical radio band,工業、科學以及醫療無線頻段),這個ISM是由ITU(International Telecommunication Union,國際電訊聯盟)於1947年在美國喬治亞州亞特蘭大所發表的頻段。
如同它的名字一樣,這些頻率範圍保留做為工業、科學研究、醫療方面等用途,只要在不干擾他人的情況下,使用這些頻段並不需要像國家提出申請,想用就用毫無限制。話雖如此,各國對於ISM頻段的使用以及開放性還是略有不同,IEEE 802.11採用的2.4GHz,正好是絕大多數國家允許使用的頻段,有助於規格的普及化以及市場推廣。
格雷碼(gray code)
十進位數字轉為二進位時,0、1、2、3、4、5、6、7、8、9分別會轉換成0000、0001、0010、0011、0100、0101、0110、0111、1000、1001。但在通訊世界裡則是採用格雷碼,所以0∼9會被轉換為0000、0001、0011、0010、0110、0111、0101、0100、1100、1101,由於各組之間只有變換1個位元,可以降低傳輸時出錯的機會。
展頻資料變多
802.11在媒體層的部分採用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance),在上期的文末有做敘述,在此就不論述,直接進入實體層的部分。
首先說明展頻(Spread Spectrum)的概念,展頻就是把1組資料量較少的資訊,加以放大並放在1組資料量較多的資訊上,好比把1MB的資料,增肥到10MB的大小,但內部包含的實際資訊卻跟1MB沒有兩樣。這麼做當然對於傳輸速度是有害的,但在無線網路的環境中,有些事比起傳輸量來說更需要克服。
展頻有許多好處,第一就是對抗雜訊,由於生活環境中充滿許多電磁波,甚至是地球或是外太空也都會來尬一角。舉個簡單例子,展頻之後使用11111111代表原始的1、00000000代表原始的0,如果今天好死不死11111111被干擾成10111110,也可以辨識出這其實是代表1。第二就是可以用來隱藏或是加密訊號,通常我們想要傳輸的資料只占據一個相當小頻寬的基頻訊號,利用展頻技術把基頻延伸到大範圍的頻帶上,讓傳輸能量降低成與背景值差不多,避免引起他人注意;此外把這個把原始信號與加密信號經過一翻計算後傳送出去,只有擁有加密信號的人能夠解出原始訊號,其他人看到就只是一些無意義的資料。
而且展頻之後,可同時容許多人在同一頻率中進行通訊,大家的頻寬都是相等的,這就是所謂的CDMA(Code Division Multiple Access,分碼多重存取)。
CDMA
雖然CDMA沒有使用在802.11之中,但由於CDMA的原理相當神奇又有趣,容筆者在此先說明一下。想要使用CDMA,則此網路中的每個節點都必須要有1組編碼,而大家的編碼必須兩兩呈現正交的性質,內積值必須為零。假設現在有2組節點,A的編碼為[1、1]、B為[1、-1],兩者經計算後的內積值為零,符合正交的要求。如果今天A要傳送1,則經過CDMA編碼後變成[1、1];如果要A要傳送0,則是取補數[-1、-1],B的原理也是一樣。
如果今天A點傳送1[1、1]、B傳送0[-1、1],兩者在空氣介質中向量合變成[0、2];某C點想要解出[0、2]的資訊,便把[0、2]和A[1、1]、B[1、-1]作內積,得出2和-2。在大於零等於1、小於零等於0、等於零沒發射訊號的原則下,得知A發出了1、B發出了0。
FHSS
802.11在2.4GHz傳輸頻率中定義的展頻方式有2種,一種是FHSS(Frequency-Hopping Spread Spectrum,跳頻展頻),另一種則為DSSS(Direct-Sequence Spread Spectrum,直接序列展頻)。
首先解釋FHSS跳頻機制,FHSS需要一段較大的頻寬,再將這個頻寬切割成許多較小的頻寬,就可以在這些不同的小頻寬之間不斷切換傳輸,就是FHSS的跳頻機制。在802.11中,使用FHSS展頻使用2.4∼2.4835GHz頻帶,將其以1MHz的方式切出頻道,每個頻道的停留時間為19TU(Time Unit、1TU=1024μs)。事實上使用頻率範圍、切割的頻道數、各頻道駐留時間以各國規定為準,像是美國FCC聯邦通訊委員會就制定出75個以上的頻道數和最大駐留時間為390TU。
▲FHSS跳頻的時間與頻率對應關係示意圖
DSSS
DSSS直接序列展頻顧名思義,直接將欲傳輸的0或是1代換成1串序列碼傳送出去,實際代換的方式為域傳送的資料位元值與虛擬雜訊碼進行XOR運算,而虛擬雜訊碼在此使用巴克碼(Barker code)。
給定1串長度為L的序列Ai,其中L長度大於等於2、Ai€{+1、-1},只要這個序列符合@算式_001.png,就算是巴克碼。巴克碼有些奇怪的特性,如果把巴克碼正負號互換,或是循環移位、順序相反,依然還是保持巴克碼的特性。802.11使用長度為11的巴克碼,數列為+1、+1、+1、-1、-1、-1、+1、-1、-1、+1、-1,但在位元數裡沒有負值,所以換成11100010010這串序列。
當傳送0時,與這串巴克碼進行XOR之後變為11100010010;傳送1時,變為00011101101。接收端將收到的序列再與11100010010進行XOR運算,就會得出原始的0或是1。802.11使用DSSS展頻之後的速率也是1∼2Mbps,但由於使用DSSS的緣故,對於運作頻率上有些限制,在接下來的調變中會提到。
▲DSSS直接序列展頻的傳送/接收流程圖
調變
想要傳遞的資料經過展頻之後,接下來便是要如何把資料放在載波(carrier)上,而把1010111110111011010101⋯⋯這類的二元碼變成實際在介質中傳播,就稱為調變(modulation),無線網路就是變為電磁波傳送,光纖則是以光來傳送。
調變大致上可分為2種,分別為類比調變和數位調變。類比調變的例子就是收音機的調幅(AM)或是調頻(FM),波形雖然有振幅或是頻率上的變化,但波形是連續的,不會發生這個時間點為波谷底點,下個時間點突然變成波峰頂點。而數位調變就會發生這種情形,比較像是由一段段的波形組合起來。若以道路來比喻,類比調變像是連續彎道山路,數位調變則比較像都市裡的十字路口。
▲圖片上方為類比調變,波形連續;下方為數位調變,可以看到波形會有斷崖、不連續的情況。