
WIFI基本知識整理
- 分類:技術專題
- 作者:
- 來源:
- 發佈時間:2018-02-01 00:00
- 訪問量:
WIFI基本知識整理
一、基本概述
============================
1、有線和無線網絡
目前有線網絡中最著名的是以太網(Ethenet),但是無線網絡WLAN是一個很有前景的發展領域,雖然可能不會完全取代以太網,但是它正擁有越來越多的用戶,無線網絡中最有前景的是Wifi。本文介紹無線網絡相關內容。
無線網絡相比有線網絡,還是有許多的缺點的:
(*)通信雙方因為是通過無線進行通信,所以通信之前需要建立連接;而有線網絡就直接用線纜連接,不用這個過程了。
(*)通信雙方通信方式是半雙工的通信方式;而有線網絡可以是全雙工。
(*)通信時在網絡層以下出錯的概率非常高,所以幀的重傳概率很大,需要在網絡層之下的協議添加重傳的機制(不能只依賴上面TCP/IP的延時等待重傳等開銷來保證);而有線網絡出錯概率非常小,無需在網絡層有如此復雜的機制。
(*)數據是在無線環境下進行的,所以抓包非常容易,存在安全隱患。
(*)因為收發無線信號,所以功耗較大,對電池來說是一個考驗。
(*)相對有線網絡吞吐量低,這一點正在逐步改善,802.11n協議可以達到600Mbps的吞吐量。
2、協議
Ethenet和Wifi採用的協議都屬於IEEE 802協議集。其中,Ethenet以802.3協議做為其網絡層以下的協議;而Wifi以802.11做為其網絡層以下的協議。無論是有線網絡,還是無線網絡,其網絡層以上的部分,基本一樣。
這裡主要關注的是Wifi網絡中相關的內容。 Wifi的802.11協議包含許多子部分。其中按照時間順序發展,主要有:
(1)802.11a,1999年9月制定,工作在5gHZ的頻率範圍(頻段寬度325MHZ),最大傳輸速率54mbps,但當時不是很流行,所以使用的不多。
(2)802.11b,1999年9月制定,時間比802.11a稍晚,工作在2.4g的頻率範圍(頻段寬度83.5MHZ),最大傳輸速率11mbps。
(3)802.11g,2003年6月制定,工作在2.4gHZ頻率範圍(頻段寬度83.5MHZ),最大傳輸速率54mbps。
(4)802.11n,2009年才被IEEE批准,在2.4gHZ和5gHZ均可工作,最大的傳輸速率為600mbps。
這些協議均為無線網絡的通信所需的基本協議,最新發展的,一般要比最初的有所改善。
另外值得注意的是,802.11n在MAC層上進行了一些重要的改進,所以導致網絡性能有了很大的提升例如:
(*)因為傳輸速率在很大的程度上取決於Channel(信道)的ChannelWidth有多寬,而802.11n中採用了一種技術,可以在傳輸數據的時候將兩個信道合併為一個,再進行傳輸,極大地提高了傳輸速率(這又稱HT-40,high through)。
(*)802.11n的MIMO(多輸入輸出)特性,使得兩對天線可以在同時同Channel上傳輸數據,而兩者卻能夠不相互干擾(採用了OFDM特殊的調製技術)
3、術語
講述之前,我們需要對無線網絡中一些常用的術語有所了解。這裡先列出一些,後面描述中出現的新的術語,將會在描述中解釋。
(*)LAN:即局域網,是路由和主機組成的內部局域網,一般為有線網絡。
(*)WAN:即廣域網,是外部一個更大的局域網。
(*)WLAN(Wireless LAN,即無線局域網):前面我們說過LAN是局域網,其實大多數指的是有線網絡中的局域網,無線網絡中的局域網,一般用WLAN。
(*)AP(Access point的簡稱,即訪問點,接入點):是一個無線網絡中的特殊節點,通過這個節點,無線網絡中的其它類型節點可以和無線網絡外部以及內部進行通信。這裡,AP和無線路由都在一台設備上(即Cisco E3000)。
(*)Station(工作站):表示連接到無線網絡中的設備,這些設備通過AP,可以和內部其它設備或者無線網絡外部通信。
(*)Assosiate:連接。如果一個Station想要加入到無線網絡中,需要和這個無線網絡中的AP關聯(即Assosiate)。
(*)SSID:用來標識一個無線網絡,後面會詳細介紹,我們這裡只需了解,每個無線網絡都有它自己的SSID。
(*)BSSID:用來標識一個BSS,其格式和MAC地址一樣,是48位的地址格式。一般來說,它就是所處的無線接入點的MAC地址。某種程度來說,它的作用和SSID類似,但是SSID是網絡的名字,是給人看的,BSSID是給機器看的,BSSID類似MAC地址。
(*)BSS(Basic Service Set):由一組相互通信的工作站組成,是802.11無線網絡的基本組件。主要有兩種類型的IBSS和基礎結構型網絡。 IBSS又叫ADHOC,組網是臨時的,通信方式為Station<->Station,這裡不關注這種組網方式;我們關注的基礎結構形網絡,其通信方式是Station<->AP<->Station ,也就是所有無線網絡中的設備要想通信,都得經過AP。在無線網絡的基礎形網絡中,最重要的兩類設備:AP和Station。
(*)DS(Distributed System):即分佈式系統。分佈式系統屬於802.11邏輯組件,負責將幀轉發至目的地址,802.11並未規定其技術細節,大多數商業產品以橋接引擎合分步式系統媒介共同構成分佈式系統。分步式系統是接入點之間轉發幀的骨幹網絡,一般是以太網。其實,骨幹網絡並不是分步系統的全部,而是其媒介。主要有三點:骨幹網(例如以太網)、橋接器(具有有線無線兩個網絡接口的接入點包含它)、屬於骨幹網上的接入點所管轄的基礎性網絡的station通信(和外界或者BSS內部的station)必須經過DS、而外部路由只知道station的mac地址,所以也需要通過分佈式系統才能知道station的具體位置並且正確送到。分步式系統中的接入點之間必須相互傳遞與之關聯的工作站的信息,這樣整個分步式系統才能知道哪個station和哪個ap關聯,保證分步式系統正常工作(即轉達給正確的station)。分步式系統也可以是使用無線媒介(WDS),不一定一定是以太網。總之,分步式系統骨幹網絡(例如以太網)做為媒介,連接各個接入點,每個接入點與其內的station可構成BSS,各個接入點中的橋接控制器有到達骨幹網絡和其內部BSS無線網的接口(類似兩個MAC地址),station通信需要通過分佈式系統。
二、實踐基礎
============================
1、一些參數
(*)MAC
MAC(即Medium/MediaAccess Control, 介質訪問控制),是數據鏈路層的一部分。 MAC地址是燒錄在NetworkInterfaceCard(即網卡,簡稱NIC)裡的,它也叫硬件地址,是由48位(即bit,一字節為8位,即1byte=8bits)16進制的數字組成。其中0-23位叫做組織唯一標誌符(organizationally unique,簡稱OUI),是識別LAN(局域網)節點的標識(在有些抓包工具抓包的時候會將前三個字節映射成某種組織名稱的字符,也可以選擇不顯示這種映射)。 24-47位是由廠家自己分配。
(*)SSID
表示一個子網的名字,無線路由通過這個名字可以為其它設備標識這個無線路由的子網。設備進行掃描的時候,就會將相應SSID掃描到,然後就能夠選擇相應的SSID連接到相應的無線網絡(當然不掃描,理論上也可以直接指定自己事先已經知道的ssid進行連接)。 SSID可以和其它的重複,這樣掃描的時候會看到兩個同樣SSID的無線網絡,其實這一般用於將一個無線網絡擴大的情況(畢竟無線路由器無線信號的覆蓋範圍是有線的):當想要擴大一個無線網絡(即SSID固定)的範圍的時候,可以給多個路由設置相同的SSID來達到這個目的。 (這也是漫遊的原理,漫遊的時候,我們可以在遠方或者本地都能夠打電話,也就是訪問移動通信網絡)。
SSID和BSSID不一定一一對應,一個BSSID在不同的Channel上面可能會對應到多個SSID,但是它們在一個Channel是一一對應的;另外,漫遊的時候,雖然SSID不變,但是BSSID一定是會變化的。我們經常可以看到實際數據包中的AP的MAC地址和BSSID只差幾位,其實實際設備的MAC地址可能只有一個,和BSSID沒什麼對應關係。在一個包含了路由功能和AP功能的無線路由器(Fat AP)上面,很可能是:路由器有兩個MAC地址,一個用於外網(WAN),一個用於內網(WLAN和LAN),一般路由器上面或者配置路由器的網頁上面只標註外網的MAC地址;內網的MAC地址和外網MAC地址一般只有幾位不同(甚至連續,也有些相差很多的例外)。
(*)Band(頻率範圍)
一般ap可以支持5g或2.4g兩個頻率範圍段的無線信號。如果兩者同時可以設置,而不是互斥那麼,這個路由器還能夠同時支持兩種頻段(頻段即Band),這相當於這個ap可建立兩個無線網絡,它們採用不同的頻段(這類似收音機在長波範圍內收音和短波範圍內收音)。
(*)Channel(信道)
Channel是對頻段的進一步劃分(將5G或者2.4G的頻段範圍再劃分為幾個小的頻段,每個頻段稱作一個Channel),有”5.18GHZ“,“Auto(DFS)”等等,處於不同傳輸信道上面的數據,如果信道覆蓋範圍沒有重疊,那麼不會相互干擾。對於信道的使用,在國際上有所規定。其中有些信道是無需授權即可直接使用的(究竟是那個頻段的那個信道,依照各個國家而不同),無需授權使用的意思是,傳輸數據的時候(無論以哪種無線方式),可以讓設備收發的功率導致傳輸時的數據進入該信道的頻率並在該信道所在頻段寬度內進行傳輸;授權的使用的意思是,不允許傳輸時使用授權信道進行,否則會違反規定,並且干擾該信道上其他數據的傳輸。另外,除了wifi,微波、紅外線、藍牙(使用802.15協議)的工作頻段也都有在2.4gHZ範圍內的,所以,它們傳輸的時候會對wifi傳輸造成乾擾,因為兩者在不同的協議下進行通信,所以互相將對方傳輸的信號識別為噪聲。有時候配置AP的時候,Channel中有一個類似“Auto”的選項值,這表示打開AP的時候,AP自己Scan周圍的環境,選擇一個乾擾最小的Channel來進行通信,當選擇好了一個Channel的時候,一般就不會改變了。
(*)Channel Width(信道寬度)
這裡的Channel Width是信道的帶寬,有”20M HZ“、”40M HZ“等,它表示一個Channel片段的寬度(假設5g的頻段寬度總共為100M,平均劃分為互不干擾的10個Channel,那麼每個Channel的Channel Width就為100M/10=10M,實際Channel並不一定是完全不重疊的)。這個參數可能依賴於一些其它的選項,例如不是802.11N的協議,就可能不會有40M HZ的Channel Width(N模式有一個特點就是可以把兩個Channel合併,通過提高ChannelWidth來提高吞吐量)。例如選擇了"20M HZ"這個Channel Width之後,後面再選擇一個“5.18GHZ”的Channel,則表示以5.18GHZ為中心的前"10M HZ"以及其後面的"10M HZ"頻帶範圍被佔用。
至此可知,配置無線AP的時候,如果屋子裡面有很多的AP(也就是無線路由接入點)的話,仔細設置它們的Channel Width和Channel可以保證它們相互之間的干擾(類似收音機裡面的串台)盡可能小。當然,如果相互干擾了,那麼Net Mode所指定的協議也會有相應的處理方式讓他們之間進行協調(例如讓誰先通信誰等一會再通信之類的),但是這樣網絡的性能就不如沒有乾擾的時候好了。
(*)Wireless Security(無線網絡的安全性)
這裡主要涉及WEP、WPA、WPA2和RC4、TKIP、AES。
IEEE 802.11 所製定的是技術性標準 ,W
包(這些數據包由從設備用於與微微網物理信道再次同步)。主設備可從任何一個邏輯傳輸將數據包傳輸至這些間隙中,前提是在每個間隙開始進行傳輸。如果從休眠從設備廣播(PSB)邏輯傳輸傳輸信息,那麼信息將會在信標列間隙中傳輸,並優先於任何其它邏輯傳輸。
拓撲
基本微微網信道可由任何數量的藍牙設備共享,僅受微微網主設備的可用資源限制。微微網中僅有一個設備為主設備,所有其它設備都是微微網的從設備。所有通信都發生於主設備與從設備之間。從設備之間無法在微微網信道中進行直接的通信。但是,微微網僅可支持有限數目的邏輯傳輸。這意味著,儘管理論上,共享信道的藍牙設備不存在數量上限,但可主動與主設備交換數據的藍牙設備的數量有限。
基本微微網信道支持用於一般目的通信的多個物理鏈路、邏輯傳輸、邏輯鏈路和L2CAP信道。
適配微微網信道
適配微微網信道與基本微微網信道存在兩個方面的區別。首先,主設備傳輸所用頻率與前一個主設備傳輸頻率相同。換言之,主設備和隨後的從設備數據包所用頻率不會重算。適配微微網信道與基本微微網信道的第二個不同之處在於,適配類型可少於全部79個頻率。跳頻圖案中會排除出多個頻率,並以“未使用”標記。 79個頻率中的其餘頻率則包括在其中。兩個序列是相同的,除了在基本偽隨機跳頻序列選定一個未使用頻率時,它都會以已使用頻率中選擇的一個備選頻率替代。
因為適配微微網信道使用與基本微微網信道相同的時間和訪問代碼,因此兩個信道通常會實現同步。這就會帶來意料之中的好處,允許基本微微網信道或適配微微網信道的從設備調整與主設備的同步,
適配微微網物理信道的拓撲和支持層級與基本微微網物理信道的相同。
詢問掃描信道
概覽
詢問掃描信道用於發現設備。可被發現的設備會收聽詢問掃描信道的詢問請求,然後會發送對這些請求作出的回應。為發現其它設備,設備會以偽隨機的方式迭代所有可能的詢問掃描信道頻率(跳躍),在每個頻率發送詢問請求及收聽任何回應。
特徵
詢問掃描信道使用較慢的跳頻圖案,使用訪問代碼區分兩台同地協作設備使用不同物理信道臨時佔用相同射頻的情況。
詢問掃描信道使用的訪問代碼來自所有藍牙設備共享的保留詢問訪問代碼集合。一個訪問代碼用於一般詢問,其它大量的訪問保留作受限制詢問。每一台設備都可訪問多個不同的詢問掃描信道。由於所有這些信道都採用相同的跳頻圖形,如果設備能夠同時關聯一個以上的訪問代碼,它可以同時佔用一個以上的詢問掃描信道。
使用一個詢問掃描信道的設備仍然處於被動狀態,直至它在此信道收到另一台藍牙設備的詢問信息。這由適用的詢問訪問代碼判定。詢問掃描設備根據詢問回應程序,向詢問設備發出回應。
為發現其它藍牙設備,設備會藉助這些設備的詢問掃描信道發出詢問請求。由於設備事先對發現的設備並無了解,它無法獲知該詢問掃描信道的準確特徵。
設備會利用詢問掃描信道的跳頻數量較少及跳躍率較慢的特點。詢問設備在每個詢問掃描跳頻發送詢問請求及收聽詢問回應。跳躍率較快,令詢問設備能夠在合理的較短時間段內覆蓋所有詢問掃描頻率。
拓撲
詢問和可被發現設備會簡單交換數據包,以完成詢問功能。在這個交易過程中形成的拓撲是一個簡短短暫的端到端連接。
支持的層級
在詢問設備和可被發現設備交換數據包的過程中,可以認為這兩個設備之間存在臨時的物理鏈路。然而,這個概念無關緊要,因為它並無實際的表現,僅僅由設備之間的短暫交易暗示得知。信道不支持其它的結構層級。
呼叫掃描信道
可連接的設備(準備接受連接的設備)會接入呼叫掃描信道。可連接設備收聽呼叫掃描信道的呼叫請求,並與此設備進入交換序列。為連接其它設備,設備會以偽隨機的方式迭代所有可能的呼叫掃描信道頻率(跳躍),在每個頻率發送呼叫請求及收聽任何回應。
特徵
呼叫掃描信道使用從呼叫設備的藍牙設備地址導出的訪問代碼發現信道中的通信。呼叫掃描信道使用的跳躍率慢於基本和適配微微網信道的跳躍率。跳躍選擇算法採用掃描設備的藍牙設備時鐘作為輸入值。
使用呼叫掃描信道的設備處於被動狀態,直至它收到另一台藍牙設備的呼叫請求。這由適用的呼叫掃描訪問代碼判定。然後,兩個設備將根據呼叫程序建立連接。在成功完成呼叫程序後,兩個設備切換至基本微微網信道,並以呼叫設備作為微微網的主設備。
為連接至另一台藍牙設備,設備使用目標設備的呼叫掃描信道發送呼叫信息。如果呼叫設備不知道目標設備的呼叫掃描信道相位,它就不知道目標設備的當前跳頻。呼叫設備在每個呼叫掃描跳頻發送詢問請求及收聽呼叫回應。跳躍率較快,令呼叫設備能夠在合理的較短時間段內覆蓋所有呼叫掃描頻率。
呼叫設備可能對目標設備的藍牙時鐘有一定的了解(表明兩個設備曾進行詢問交易,或因設備先前參與一個微微網),在這種情況下,它能夠預測目標設備的呼叫掃描信道相位。它可以使用這個信息優化呼叫和呼叫掃描流程的同步,並加快連接的形成。
拓撲
呼叫和可連接設備會簡單交換數據包,以完成呼叫功能。在這個交易過程中形成的拓撲是一個簡短短暫的端到端連接。
支持的層級
在呼叫設備和可連接設備交換數據包的過程中,可以認為這兩個設備之間存在臨時的物理鏈路。然而,這個概念無關緊要,因為它並無實際的表現,僅僅由設備之間的短暫交易暗示得知。信道不支持其它的結構層級。
物理鏈路
物理鏈路指藍牙設備之間的基帶連接。物理鏈路總是與一個物理信道相關聯(但物理信道可支持一個以上的物理鏈路)。
在藍牙技術系統中,物理鏈路是一個虛擬的概念,它在傳送的數據包結構中並無直接的表現。訪問代碼數據包域,以及主藍牙設備的時鐘和地址,都可用於識別物理信道。然而,數據包的其餘部分不能直接識別出物理鏈路。相反,物理鏈路可通過與邏輯傳輸的相關性識別出,因為每個邏輯傳輸僅可在一個物理鏈路上接收。
部分物理鏈路類型的屬性可進行修改。其中一個是鏈路的發射功率。其它物理鏈路類型沒有這些屬性。在擁有可修改屬性的物理鏈路中,LM協議用於調整這些屬性。由於LM協議在較高的層級(邏輯鏈路)獲得支持,適當的物理鏈路可由傳輸LM信令的邏輯鏈路暗示而識別出。
如果傳輸通過多個不同的物理鏈路廣播,那麼可選擇適合於所有物理鏈路的傳輸參數。
基本和適配微微網物理信道支持的鏈路
基本和適配微微網物理信道支持處於活躍或休眠狀態的物理鏈路。物理鏈路為主設備和從設備之間的端到端鏈路。它總是會在微微網中的從設備實現同步時出現。
活躍的物理鏈路
如果主設備和從設備之間存在默認的ACL邏輯傳輸,那麼這兩種設備之間的物理鏈路是活躍的。活躍的物理鏈路本身並無直接的標識,但可通過與一一對應的默認ACL邏輯傳輸ID的關聯性識別出來。
活躍的物理鏈路擁有各個方向的相關無線發射功率屬性。從從設備的發射總是通過主設備的活躍物理鏈路進行,並採用此鏈路從從設備到主設備的發射功率。從主設備的發射可通過單一的活躍物理鏈路(至特定的從設備)或通過多個物理鏈路(至微微網中的一組從設備)進行。在端到端發射的情況下,主設備使用相關物理鏈路的適用發射功率(在端到多端發射的情況下,主設備使用多個被定址設備的適用發射功率)。
活躍的物理鏈路可設置為待機或嗅探模式。這些模式的影響是修改物理鏈路處於活躍狀態的期間,並可傳輸信息。帶有界定調度特徵的邏輯傳輸不會受到這些模式的影響,並會根據他們的預先界定調度行為繼續進行下去。帶有未界定調度特徵的默認ACL邏輯傳輸和其它鏈路會受到活躍的物理鏈路所處模式的影響。
休眠的物理鏈路
當從設備在微微網中實現同步,但並無默認ACL邏輯傳輸時,主設備和從設備之間的物理鏈路處於休眠狀態。這種情況下的從設備也可被稱為處於休眠狀態。信標列用於令連接至微微網物理信道的所有休眠從設備實現定期同步。休眠從設備廣播(PSB)邏輯傳輸用於實現向休眠從設備傳輸LMP信令子集和廣播L2CAP。 PSB邏輯傳輸與信標列存在密切相關。
從設備使用休眠程序袖標(其活躍鏈路更改為休眠鏈路)。主設備不得令擁有任何用戶創建獲物理鏈路支持的邏輯傳輸的從設備進入休眠狀態。這些邏輯傳輸會被首先刪除,任何構建於這些邏輯傳輸的L2CAP信道也會被刪除。廣播邏輯傳輸和默認ACL邏輯傳輸不會被視為由用戶創建,因此不會被明確刪除。當活躍鏈路被休眠鏈路替代時,默認ACL邏輯傳輸會被暗中刪除。這些獲支持的邏輯鏈路和L2CAP信道仍然存在,但處於暫停狀態。當缺乏活躍鏈路時,這些鏈路和L2CAP信道不可能用於傳輸信令或數據。
休眠從設備可使用喚醒程序恢復為活躍狀態。這個程序可由從設備在訪問窗口作出請求,並由主設備啟動。完成喚醒程序後,休眠物理鏈路會變為活躍的物理鏈路,並會重新創建默認ACL邏輯傳輸。在大多數近期休眠程序中被暫停的L2CAP信道與新建默認ACL邏輯傳輸相關聯,並會再次恢復為活躍狀態。
休眠鏈路不支持無線電能控制,因為從休眠從設備到微微網主設備之間並無反饋路徑可用於從設備接收信號強度的信號或主設備測量接收到來自從設備的信號強度。休眠鏈路的發射按名義功率進行。
休眠鏈路使用與相關活躍鏈路相同的物理信道。如果主設備管理的微微網包含使用基本微微網物理信道的休眠從設備及使用適配微微網物理信道的休眠從設備,那麼住設備必須為每一個物理信道創建休眠從設備廣播邏輯傳輸(和相關傳輸)。
休眠從設備可利用休眠從設備廣播邏輯傳輸的閒置期間節省電能,或可在與其休眠的微微網無關的其它物理信道上進行活動。
掃描物理信道支持的鏈路
如為詢問掃描和呼叫掃面信道,物理鏈路存在的時間相對較短,且無法以任何方式控製或修改。這些物理鏈路類型不再進一步詳細闡述。
邏輯鏈路和邏輯傳輸
多個邏輯鏈路可用於支持不同的應用數據傳輸需求。各邏輯鏈路與邏輯傳輸相關聯,每個邏輯傳輸都有多個特徵。這些特徵包括流量控制、確認/重複機制、序列編號及調度行為。邏輯傳輸可運載不同類型的邏輯鏈路(取決於邏輯傳輸的類型)。部分藍牙1.1版邏輯鏈路在相同的邏輯傳輸進行多路傳輸。活躍的物理鏈路可在基本或適配微微網物理信道上傳輸邏輯傳輸。
邏輯傳輸標識和實時(鏈路控制)信令以數據包報頭運載,對於部分邏輯鏈路而言,標識會以有效負載報頭運載。不需要單一間隙回應時間的控制信令採用LMP協議運載。
下表載列所有邏輯傳輸類型,獲支持的邏輯鏈路類型,可支持這些邏輯傳輸和邏輯鏈路的物理鏈路和物理信道類型及邏輯傳輸用途的簡單說明。