Beacon幀為周期間隔發送,雖大部分路由器將其間隔時間默認設置100ms(近似值),但路由器可以將其值配置更大。僅依賴“被動掃描”,WiFi設備在掃描過程中,存在漏掉發現周圍WiFi網絡的情況。因此,為了提高設備發現WiFi網絡的能力,有了基于Probe Request和Probe Response幀的“主動掃描”。本節接下來分析“主動掃描”。
好。下面我們看下“主動掃描”的抓包交互流程。
[場景1]:
- WiFi設備在信道N上,發送Probe Request幀,其目的地址為廣播地址,稱為廣播幀。
- 工作在信道N上的路由器,收到該廣播后,會響應Probe Response幀,其目的地址為單播地址,稱為單播幀。
- WiFi設備收到Probe Response幀后,回復Ack確認,如下圖所示。
[場景2]:
- WiFi設備在信道N上,發送Probe Request幀,其目的地址為單播地址,稱為單播幀。
- 工作在信道N上,路由器的Mac地址為Probe Request幀中的目的地址,收到該Probe Request幀后,回復Ack確認,并回復Probe Response幀。
- WiFi設備收到Probe Response幀后,回復Ack確認。如下圖所示。
通過以上可知,Probe Request幀可以被用作單播或廣播幀進行掃描請求。接下來我們就看“主動掃描”依賴Probe Request和Probe Response幀的格式內容。
Probe Request和Probe Response幀都為管理幀,符合管理幀通用定義格式:802.11 MAC Header + Frame Body + FCS,如下:
- Probe request幀,子類型為4,可作為廣播幀或單播幀。做廣播幀時,Address3為廣播地址;做單播幀時,Address3為BSS對應的BSSID或一個單播接收地址。
- Probe Response幀,子類型為5,作為單播幀響應WiFi設備。
802.11 MAC Header字段與Beacon幀一致,這里不再贅述,可參考【WiFi基礎學習到實在(五)】。
在開始討論Probe Request和Probe Response幀Body內容前,留個問題“WiFi設備每次連接WiFi網絡前,已掃描到該WiFi網絡,為什么還要通過發送Probe Request單播幀,做一次與路由器的交互呢?”
好,接下來我們探討抓包中Probe Request幀的Body內容,如下圖所示。
Probe Request幀Body內容只包含元素(Elements)。作為Probe Request幀,它的主要目的是觸發路由器給其回復Probe Response幀,發送的內容越短,占用信道資源越少,效率越高。因此,Probe Request幀只攜帶一些必要的內容信息。
[1]SSID Element:
表明掃描的目標網絡SSID。如Probe Request為廣播幀,隱藏網絡的網絡名稱與之相同,將會通過Probe Response回應。而網絡名稱不相同的網絡,則不回應。
注:
Probe Request為廣播,SSID Element字段長度為0或不包含SSID List element。則所有非隱藏網絡則收到后,回復Probe Response,隱藏網絡則不回應。
[2]Supported Rate和Extended Supported Rate Element:
表明掃描設備支持的速率集,路由器收到后,選擇其一種支持的速率發送Probe Response幀。
[3]DSPS Element:
表明當前Probe Request幀在那個信道上掃描發送。
[4]HT Capability Element:
表明WiFi設備支持802.11n,是一個HT設備。
注:
- 如Probe Request幀中包含HE Capability Element,則表明WiFi設備支持802.11ax。
- 作為請求幀,Probe Request幀Body可包含請求Element ID,如接收Probe Request幀的設備支持請求ID,則在回復的Probe Response幀Body中應攜帶該Element ID信息。
- 實際WiFi設備使用中,為了盡可能掃描到周圍WiFi網絡,存在在一個信道上發送多個Probe Request幀。
注:協議規范【原文】
In an infrastructure BSS or in an IBSS, STAs receiving Probe Request frames shall respond with a probe response when the SSID in the probe request is the wildcard SSID or matches the specific SSID of the STA or when the specific SSID of the STA is included in the SSID List element.
以上Element詳細解釋可參考【WiFi基礎學習到實戰(六)】。
發送Probe Request幀,觸發接收者回復Probe Response幀,從中獲取當前WiFi網絡的信息能力。
接下來我們分析Probe Response幀的內容,如下圖所示Beacon幀和Probe Response幀的Body內容:
Probe Response幀Body內容分為:字段(Fields)和元素(Elements)。其Body內容和對應路由器發送的Beacon幀一致,Body內容解釋可參考【WiFi基礎學習到實戰(五-六)】。
這里我們分析下Probe Response幀Body內容可能存在與Beacon幀不同點。
- Probe Response幀為單播幀,接收地址為單播地址。做為響應Probe Request幀,其Body可能攜帶Request幀中請求的Element ID信息。
- Beacon幀為廣播幀,其Body中可能不攜帶Probe Request請求的Element ID信息。
Probe Response幀主要是將WiFi網絡的信息能力主動的反饋給請求設備。請求設備通過其Body內容了解當前WiFi網絡的狀態。
到這里,我們對Probe Request和Probe Response幀的探討就結束了,現在回到我們開始的問題“有些WiFi設備連接WiFi網絡前,已掃描到該WiFi網絡,為什么還要通過發送Probe Request單播幀,做一次與路由器的交互呢?”。
答:WiFi設備連接前做Probe Request請求,一是獲取當前WiFi網絡的加密方式,為接下來的認證關聯做準備;二是獲取WiFi網絡的TSF,更新校準本地的TSF。
注:協議規范【原文】
A non-DMG STA’s TSF timer shall be accurate to within ± 100 ppm. A DMG STA’s TSF timer shall be accurate to within ± 20 ppm.
-
路由器
+關注
關注
22文章
3745瀏覽量
114492 -
SSID
+關注
關注
0文章
14瀏覽量
11393 -
FCS
+關注
關注
4文章
32瀏覽量
14498 -
wifi網絡
+關注
關注
0文章
12瀏覽量
7442
發布評論請先 登錄
相關推薦
終端節點為什么無法抓包?
WIZnet芯片通訊時怎么抓包?
若協調器斷電,然后重新上電,抓包捕捉終端發出 orphan notification ,然后就開始發出 Beacon Request信號,怎么改一下能一直發orphan notification入網而不在發Beacon Request???
Packet Sniffer 抓包異常,有時能抓到有時抓不到,有時協調器會回應有時不會回應,請問是怎么回事?
BLE Execute Write Request Callback在哪里?請問我該如何知道合適數據已經全部傳輸完畢?
請問ZigBee如何修改Data Request的發送次數?
ZLL touchlink過程抓包遇到問題的解決辦法?
MCU_Wireshark USB 抓包過濾(抓特定端口地址)
![MCU_Wireshark USB <b class='flag-5'>抓</b><b class='flag-5'>包</b>過濾(<b class='flag-5'>抓</b>特定端口地址)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
SRT協議的工作流程、數據包結構及Wireshark抓包分析
如何抓取app數據包 網絡抓包原理及實現
![如何抓取app數據<b class='flag-5'>包</b> 網絡<b class='flag-5'>抓</b><b class='flag-5'>包</b>原理及實現](https://file1.elecfans.com/web2/M00/90/1F/wKgaomTVj9SAO4-KAAAVM-5rECE277.jpg)
評論