轉載請注明出處:http://blog.csdn.net/Righthek 謝謝!
對於低頭黨來說,在使用WIFI功能時,常常性的操作是打開手機上的WIFI設備,搜索到心目中的熱點,輸入password,聯網成功,各種低頭上網。。。
這個看似簡單的過程。背后卻是隱藏着大量的無線通信技術。用幾個專業術語來表示這個過程。各自是:掃描(Scanning)、認證(Authentication)、關聯(Association)。以下用一張圖來表示這個過程。
圖1 WIFI接入網絡過程
如今讓我們來分析一下這個過程的工作原理。
相對移動電子產品來說,WIFI的功耗會比較大。因此,上層應用程序都會有一個開關,用於打開和關閉WIFI功能。個人覺得,最好的電源管理設計是上層應用程序的開關可操作WIFI硬件模塊的電源的通斷。當用戶在手機上點擊打開WIFI時,WIFI模塊通電執行起來,當然也會對應載入WIFI的驅動程序。
打開完畢后,我們能夠看到手機上顯示搜索到附近的WIFI熱點。這個搜索過程的工作原理是如何的呢?用一個無線通信專業術語來表示:掃描(Scanning)。
掃描的目的是什么?就是要找到一個無線網絡。然后增加到該網絡中。
要增加一個無線網絡,那么我們須要找到它的網絡名稱,即SSID。這個SSID事實上是接入點(Access Point)回應工作站掃描時所帶的參數。還有其他的網絡參數,包含BSSID(可理解為接入點的MAC地址)、信號強度、加密和認證方式等。
掃描類型分兩種,一種是主動掃描(active scanning)。還有一種是被動掃描(passivescanning)。
1、 主動掃描(activescanning)
我們先來說說主動掃描。即我們的手機(工作站STA)以主動的方式。在每一個信道上發出Probe Request幀,請求某個特定無線網絡予以回應。主動掃描是主動尋找網絡,而不是靜候無線網絡聲明本身的存在。使用主動掃描的工作站將會以例如以下的程序掃描信道表所列的頻道:
(1)跳至某個信道。然后等候來幀指示(indicationof an incoming frame)或者等到ProbeDelay定時器超時。假設在這個信道收到幀。就證明該信道實用戶在使用。因此能夠加以探測。
而ProbeDelay定時器可用來防止某個閑置信道讓整個過程停止,由於工作站不會一直等待幀的到來。
(2)利用主要的DCF訪問過程取得媒介使用權,然后送出一個Probe Request幀。
(3)至少等候一段最短的信道時間(即MinChannelTime)。
a.假設媒介並不忙碌。表示沒有網絡存在,因此能夠跳至下個信道。
b.假設在MinChannelTime這段期間媒介很忙碌。就繼續等候一段時間,直到最長的信道時間(即MaxChannelTime)超時,然后處理不論什么的Probe Response幀。
大家可能會發現當手機進行WIFI熱點搜索時,有時時間會比較長,原因是你處在的區域存在多個接入點(AP),當手機發出Probe Request幀時。多個接入點(AP)通過競爭窗體(congestionwindow)回應Probe Response幀,而這個競爭過程受限於最長的信道時間(即MaxChannelTime)。
當無線網絡收到搜尋其所屬的擴展服務集(ESS)的Probe Request時。就會發出Probe Response幀。
若要找到附近全部的無線網絡,那么Probe Request幀可使用broadcastSSID,如此一來,該區全部的802.11無線網絡都會以Probe Response加以回應。
2、 被動掃描(passivescanning)
如今大部分移動電子產品都是採用被動掃描(passive scanning)的方式。原因是掃描過程中不須要傳送不論什么信號。能夠省電。在被動掃描中,工作站會在信道列表(channel list)所列的各個信道之間不斷切換。並靜候Beacon幀的到來。所收到的不論什么幀都會被暫存起來,以便取出傳送這些幀的BSS 的相關數據。
在被動掃描的過程中。工作站會在信道間不斷切換,而且會記錄來自所收到的不論什么Beacon的信息。Beacon在設計上是為了讓工作站知道增加某個基本服務集(Basic Service Set,簡稱 BSS)所須要的參數以便進行通信。在下圖中。通過監聽來自前三個接入點的Beacon幀。移動式工作站以被動掃描找出該區全部BSS。假設該工作站並未收到來自第四個接入點的Beacon,就會匯報眼下僅僅發現的三個BSS。
圖2 被動掃描
轉載請注明出處:http://blog.csdn.net/Righthek 謝謝!