802.11 無線 WiFi 有 數據幀,管理幀、控制幀 三種類型幀。這些幀由 9 個部分組成:Frame Control,Duration ID,Address1,Address2,Address3,Seq-ctl,Address4,Frame Body,FCS。需要註意的是,有些組成部分在有些幀... ...
liwen01 2024.09.22
前言
前面介紹了 WiFi 的工作原理和 WiFi 的接入過程,這裡將通過分析 WiFi 具體數據包結構,讓你對 WiFi 工作原理和接入過程有一個更進一步的瞭解。
前面文章可以通過下麵連接查看:
(一) 802.11 幀
802.11 無線 WiFi 有 數據幀,管理幀、控制幀 三種類型幀。
這些幀由 9 個部分組成:Frame Control,Duration ID,Address1,Address2,Address3,Seq-ctl,Address4,Frame Body,FCS。
需要註意的是,有些組成部分在有些幀里並不是必須的。
九個部分的功能簡介如下:
- Frame Control (幀控制):Frame Control欄位位於幀的開頭,用於定義幀的類型、子類型、協議版本、幀方向、以及一些控制標誌。
- Duration/ID (持續時間/標識符):該欄位用於指定網路中其他節點的NAV (網路分配向量)計時器,用於控制介質訪問。
- Address1 (地址1):常表示幀的接收者 MAC 地址。在To DS 為 1 的情況下,表示目標 AP 的地址
- Address2 (地址2):通常表示幀的發送者 MAC 地址。
- Address3 (地址3):根據幀類型的不同,這個欄位可以表示不同的地址
- Sequence Control (序列控制):該欄位用於幀的序列控制和片段管理
- Address4 (地址4):無線分散式系統) 或中繼的情況下使用。通常用於表示源或目標地址。
- Frame Body (幀體):包含實際的數據負載或管理信息。根據幀的類型和子類型,該欄位的內容和長度可以不同。
- FCS (Frame Check Sequence,幀校驗序列):用於幀的錯誤檢測。通常是一個 32 位的 CRC 校驗碼,用於驗證幀的完整性。
(1) Frame Control (幀控制)
(a) Protocol Version (協議版本) [第0-1位]
指定協議的版本號。當前的 802.11 標準使用版本號 00,即 0。
(b) Type (幀類型) [第2-3位] :
定義幀的主要類型。
- 00:管理幀 (Management Frame)
- 01:控制幀 (Control Frame)
- 10:數據幀 (Data Frame)
- 11:保留
(c) Subtype (子類型) [第4-7位]
定義幀的子類型,不同的主類型有不同的子類型
對於管理幀:
- 0000:Association Request
- 0001:Association Response
- 1000:Beacon
對於控制幀:
- 1101:ACK
- 1011:RTS (Request to Send)
- 1101:CTS (Clear to Send)
對於數據幀:
- 0000:數據幀 (無數據類型區分)
- 1000:QoS 數據幀
(d) To DS (發送到分散式系統) [第8位]
指示該幀是否發送到分散式系統 (即無線接入點AP)
取值:
- 0:幀不是發送到 DS (通常是 STA 發送給 AP 的幀)
- 1:幀是發送到 DS (通常是 AP 發送給 STA 的幀)
(e) From DS (來自分散式系統) [第9位]
指示該幀是否來自分散式系統。
取值:
0:幀不是來自 DS (通常是 AP 發送給 STA 的幀) 1:幀是來自 DS (通常是 STA 發送給 AP 的幀)
(f) More Fragments (更多片段) [第10位]
指示當前幀是否有更多的片段。如果一個數據幀被分片發送,那麼除最後一個片段外,所有片段的此位都置為1。
取值: 0:這是最後一個片段; 1:後續還有片段
(g) Retry (重傳) [第11位]
指示當前幀是否為重傳幀。如果之前發送的幀沒有被正確確認,幀會被重傳,此位會置為1。
取值: 0:首次發送; 1:重傳幀
(h) Power Management (電源管理) [第12位]
指示站點的電源管理狀態。
取值:0:站點處於活動模式; 1:站點處於省電模式
(i) More Data (更多數據) [第13位]
由AP設置,用於指示站點是否有更多的數據幀等待接收。
取值: 0:沒有更多數據;1:有更多數據
(j) Protected Frame (保護幀) [第14位]
指示幀的內容是否加密,使用的是 WEP、TKIP、CCMP 等加密協議。
取值:0:幀未加密; 1:幀已加密
(k) Order (順序) [第15位]
指示該幀是否以嚴格順序處理,通常用於 QoS 數據幀。
取值:0:不需要嚴格順序處理; 1:需要嚴格順序處理
上面 802.11 Beacon frame 幀,版本號為 0;幀類型為 00 為管理幀;子類型為1000 為Beacon 幀。
(2) Duration/ID (持續時間/標識符)
Duration/ID 欄位的功能因幀的類型和上下文而異,主要有以下兩種主要用途:網路分配向量 (NAV)持續時間 和 AID (Association ID)
(a) 網路分配向量 (NAV)持續時間
對於大多數數據幀和管理幀,Duration/ID欄位表示剩餘的幀傳輸時間。它告訴網路中的其他設備該幀將占用通信介質多長時間,從而更新它們的網路分配向量 (NAV)。NAV是一個計時器,指示設備在特定時間內不應訪問通信介質,避免衝突。
單位:微秒 (µs)
數據幀: Duration/ID 欄位表示從當前幀開始,到ACK幀結束所需的時間。這包括數據幀傳輸時間、SIFS (短幀間隙)時間和ACK傳輸時間。
RTS/CTS幀 在RTS (Request to Send) 和 CTS (Clear to Send) 幀中,Duration/ID 欄位表示整個傳輸會話的剩餘時間,包括數據幀和相應的ACK幀傳輸。
(b) AID (Association ID)
在某些幀 (如 Power Save Poll 幀)中,Duration/ID 欄位包含的是站點的 Association ID (AID),這是一個由接入點 (AP) 分配給每個關聯站點的唯一標識符。當欄位被用於此目的時,欄位的高兩位通常設置為 11 以表示 AID,而剩餘的14位表示實際的 AID 值。
上面的 CTS 幀,Duration 為 134 ms,表示該傳輸會持續134 ms,在這期間同通道的其它設備需要保持安靜。
(3)Sequence Control (序列控制)
Sequence Control 欄位用於管理幀的序列化和片段化。這個欄位有助於確保數據幀能夠按正確的順序組裝,並檢測和處理重傳的幀。
Sequence Control 欄位分為兩個部分: Fragment Number (片段號):4位 和 Sequence Number (序列號):12位
(a) Fragment Number (片段號) [4位]
片段號用於標識幀的分片部分。由於無線傳輸可能會受到干擾,大型幀在傳輸前可能會被分割成多個小片段,每個片段都有唯一的片段號
取值範圍:0 到 15 (即2^4 - 1)
Fragment Number 的主要功能
片段管理: 當一個幀被分片時,片段號用於標識每個片段的順序,以便接收端正確重組原始幀。
重傳管理:在某些情況下,如果一個片段由於傳輸錯誤而丟失,只有丟失的片段需要重傳,而不是整個幀。片段號幫助識別需要重傳的具體片段。
(b) Sequence Number (序列號) [12位]
序列號用於標識發送方發出的幀的順序,以便接收方能夠檢測丟失的幀並正確重組數據。
取值範圍:0 到 4095 (即2^12 - 1)
Sequence Number 主要功能:
幀順序管理:序列號幫助接收端按正確的順序排列接收到的幀。如果接收到的幀序列號不連續,說明有幀丟失或需要重傳。
重傳檢測:當幀重傳時,序列號保持不變,但片段號可能變化。接收方通過序列號識別重傳的幀,並決定是否丟棄或處理該幀
(c) 工作原理
分片傳輸: 當一個大數據幀被分片時,所有片段使用相同的序列號,但片段號遞增。例如,假設序列號為100,片段號為 0,表示第一個片段;片段號為 1,表示第二個片段,依此類推。
幀重傳: 如果幀在傳輸過程中丟失或被接收端判斷為錯誤,發送端會重傳該幀。重傳幀的序列號與原幀相同,但片段號可能發生變化,具體取決於傳輸的片段。
查看上面的數據幀,被分開了多個數據幀,當前 Sequence Number 為 1144 。
(二) 無線空口包
WiFi 是通過無線電報在空中進行數據交互,所以稱為空中介面包(Air Interface Packet),也簡稱為空口包。它包含了無線 WiFi 網中傳輸的所有信息。
(1) 空口包 capture
在有線網中,我們一般使用 Wireshark 來抓取網卡的所有數據,但是在無線 WiFi 中,無線口空包數據一般使用 Omnipeek 來抓取。
Omnipeek 需要搭配一個數據分析網卡來使用,可以在不建立鏈接的前提下,直接抓取到 802.11 無線數據,一般用於研究開發 WiFi 協議、分析無線連接過程、監控無線網路等。
關於 Omnipeek 的使用,網上介紹比較多,我這裡就簡單概括一下使用方法。
- 安裝 Omnipeek 軟體和驅動
- 設置 Omnipeek 需要抓取的頻段(通道)
- 如果 AP 是加密的的,需要設置密碼
通過上面方式就可以抓取到某個通道的所有無線信號,具體使用與 Wireshark 類似。抓取到的數據幀如下:
(三) 管理幀
管理幀有:Beacon 信標幀、Probe Request 檢測請求幀、Probe Response 檢測應答幀、Authentication 認證幀、De-Authentication 解除認證幀、Association Request 連接請求幀、Re-Association Request 重新連接請求、Association Response 連接應答幀
這裡我們主要介紹:Beacon 信標幀、Association Request 連接請求幀 和 Association Response 連接應答幀。
(1) Beacon 幀
Beacon 的 Subtype 為1000,所以整個幀類型為:001000b,也就是 0x08。
使用過濾條件為:wlan.fc.type_subtype == 0x08
可以刷選出所有的 beacon 幀。
Beacon 由無線接入點 (AP)定期廣播,用於宣佈無線網路的存在,並向附近的客戶端設備提供必要的網路信息,以便它們能夠加入和管理連接。
(a) Beacon幀的功能:
網路發現:Beacon 幀包含了無線網路的SSID (Service Set Identifier),幫助客戶端設備發現和識別無線網路。
同步:Beacon 幀攜帶時間戳,客戶端設備通過接收 Beacon 幀可以同步其時鐘與AP的時鐘,這對於協調設備的定時和節能至關重要。
傳遞網路配置信息:Beacon 幀包含網路的配置信息,如支持的速率、加密方法、通道信息等,幫助客戶端設備配置和優化其連接。
信號廣播:Beacon 幀還幫助客戶端設備確定信號強度,從而選擇合適的 AP 進行連接。
(b) Beacon幀的工作原理
定期廣播: AP按照設定的 Beacon 間隔 (通常為100 TU,即102.4毫秒)定期發送Beacon幀,以宣佈其存在和提供網路信息。
客戶端掃描: 無線客戶端設備定期掃描通道,接收不同 AP 發送的 Beacon 幀,通過這些幀中的信息來選擇合適的 A P進行連接。
網路加入和管理: 客戶端設備一旦選擇了合適的 AP,便通過 Beacon 幀中的信息來配置連接參數,例如通道、速率、加密方法等。
節能管理: 當設備進入節能模式時,它會依賴 Beacon 幀中的 TIM 欄位來判斷何時需要喚醒接收數據,減少不必要的能耗。
(c) Beacon幀的結構
Frame Control (幀控制):類型欄位為管理幀,子類型欄位為Beacon
Duration/ID (持續時間/ID) 表示幀傳輸需要的時間,Beacon 幀一般設為 0,表明沒有後續操作需要保留介質。
Address 1 (Destination Address,目的地址) :通常設置為廣播地址 (FF:FF:FF:FF:FF),因為Beacon幀是廣播幀,面向所有設備。
Address 2 (Source Address,源地址):AP的MAC地址,標識發送Beacon幀的無線接入點。
Address 3 (BSSID,基本服務集標識符): 網路的BSSID,通常與Address 2相同,除非是中繼的場景。
Sequence Control (序列控制): 包含序列號和片段號,用於管理幀的順序和重組。
Frame Body (幀主體) :Beacon幀的主要內容,包含網路的配置信息和時間同步信息。以下是Frame Body中的關鍵欄位:
- Timestamp (時間戳):用於同步客戶端設備的時鐘。
- Beacon Interval (信標間隔):AP發送Beacon幀的時間間隔,單位為TU (Time Unit,1TU = 1024微秒)。
- Capability Information (能力信息):描述AP支持的功能,如是否啟用加密、是否為基礎設施模式等。
- SSID (服務集標識符):網路的名稱,幫助客戶端識別網路。
- Supported Rates (支持的速率):AP支持的數據速率列表。
- DS Parameter Set (DS參數集):指示使用的通道號。
- Traffic Indication Map (TIM,流量指示圖):用於指示AP暫存的數據包,尤其在節能模式下,告訴客戶端何時需要喚醒以接收數據。
- **Country Information (國家信息):包括地區、通道等限制信息 (可選)。
- RSN Information (RSN信息):如果網路啟用了加密 (如WPA/WPA2),此欄位包含安全信息。
(2)Association Request 幀
Association Request 幀是802.11無線WiFi網中用於建立客戶端設備(例如筆記本電腦、智能手機等)與無線接入點 (AP) 之間連接的管理幀之一。
這個幀由客戶端設備在選擇了一個 AP 後發出,表示它希望加入這個無線網路。
使用參數 wlan.fc.type_subtype == 0x00
可以過濾出所有的 Association Request 幀
(a) Association Request 幀的功能
加入網路:客戶端設備使用 Association Reques t幀請求加入一個 AP 管理的無線網路。
傳遞客戶端能力:幀中包含了客戶端設備的能力信息,例如支持的速率、加密方法、QoS 功能等。
獲取網路資源:通過關聯請求,客戶端能夠獲取到網路分配的資源,例如 IP 地址、網路許可權等
(b) Association Request 幀的工作原理
掃描與發現: 客戶端設備通過主動或被動掃描(如發送探測請求幀或接收信標幀)發現可用的 AP。
發送關聯請求: 在選擇目標 AP 後,客戶端設備發送 Association Request 幀給AP,請求加入網路。
AP處理請求: AP 收到請求後,會檢查客戶端設備的能力和配置是否與網路相容,並確定是否允許其加入。
發送關聯響應:如果 AP 同意請求,它將返回一個 Association Response 幀,指示關聯的成功與否,並分配一個關聯 ID (AID)。如果不成功,AP 會給出拒絕原因。
建立連接: 關聯成功後,客戶端設備和AP之間的連接建立,客戶端設備可以開始數據傳輸。
(c) Association Request 幀的結構
Frame Control (幀控制) :類型欄位為管理幀 (00)子類型欄位為 Association Request (0000)。
Duration/ID (持續時間/ID):指定傳輸此幀所需的時間,或包含關聯ID。
Address 1 (目的地址) 目標 AP 的 MAC 地址 (即接收地址)。
Address 2 (源地址) 發送 Association Request 的客戶端設備的 MAC 地址。
Address 3 (BSSID,基本服務集標識符) 目標網路的 BSSID,通常與 Address 1 相同。
Sequence Control (序列控制) :包含幀的序列號和片段號,用於管理幀的順序和重組。
Frame Body (幀主體) Association Request 幀的核心部分,包含客戶端設備的能力和配置參數。幀主體包含以下子欄位:
-
Capability Information (能力信息) 描述客戶端設備的能力,如是否支持加密、短前導碼、QoS、功率管理等功能。
-
Listen Interval (偵聽間隔) 客戶端設備與 A P通信時的間隔,表示客戶端設備多長時間偵聽一次信標幀。值越小,客戶端越頻繁地檢查 AP 發送的信標,消耗的功率越大。
-
SSID (服務集標識符) 客戶端設備請求加入的無線網路的 SSID (網路名稱)。如果客戶端設備明確指定要加入哪個網路,就會包含這個欄位。
-
Supported Rates (支持的速率) 客戶端設備支持的數據傳輸速率列表。AP 會根據這個列表判斷是否可以支持客戶端的請求,並選擇最佳傳輸速率。
-
Extended Supported Rates (擴展支持速率) 如果客戶端設備支持的速率超過了 8 個,則會使用這個欄位來傳遞更多速率信息。
-
RSN Information (RSN信息) 如果網路啟用了 WPA/WPA2 加密,客戶端會在這個欄位中發送其支持的安全功能和加密方法。
-
Power Capability (功率能力) 客戶端設備的最小和最大傳輸功率,通常在需要節能或具有特定功率要求的設備中使用。
-
Supported Channels (支持的通道) 客戶端設備支持的通道範圍,用於 AP 選擇適當的通道進行通信。
-
Vendor Specific (廠商特定) 一些廠商特有的擴展欄位,允許客戶端和 AP 傳遞特定於設備的附加信息。
(3) Association Response 幀
Association Response 由無線接入點 (AP) 在收到客戶端設備 (例如筆記本電腦、智能手機等) 發送的 Association Request 幀後,作為響應發出。
這個幀的作用是通知客戶端設備其關聯請求是否成功,併在成功的情況下分配一個關聯 ID (AID) ,允許其加入網路。
使用參數 wlan.fc.type_subtype == 0x01
可以過濾所有的 Association Response 幀
(a) Association Response 幀的功能
確認關聯請求:AP 通過 Association Response 幀確認客戶端設備的關聯請求。
提供關聯狀態:該幀告知客戶端設備其關聯請求的結果 (成功或失敗) ,如果失敗,還會提供失敗的原因。
分配資源:如果關聯成功,AP會為客戶端設備分配一個關聯 ID (AID) ,並可能提供其他必要的網路參數。
(b) Association Response 幀的工作原理
接收關聯請求: AP 首先接收到來自客戶端設備的 Association Request 幀。
處理請求: AP 根據自身的能力、當前網路狀態、客戶端設備的能力信息等因素,決定是否允許客戶端設備加入網路。
生成關聯響應: AP生成一個 Association Response 幀,其中包含關聯請求的結果和相關信息。
發送關聯響應: AP 將 Association Response 幀發送回客戶端設備。
關聯成功:如果請求成功,客戶端設備將接收到 AID ,並可以開始正常的數據傳輸。
關聯失敗:如果請求失敗,客戶端設備會接收到一個錯誤狀態碼,告知失敗的原因,並可能需要重新發送關聯請求或進行其他處理。
建立連接:如果關聯成功,AP 和客戶端設備之間的連接正式建立,客戶端可以進行數據傳輸和進一步的網路交互
(c) Association Response 幀的結構
Frame Control (幀控制) 類型欄位為管理幀 (00) 子類型欄位為 Association Response (0001) 。
Duration/ID (持續時間/ID) 指定傳輸此幀所需的時間,或包含關聯 ID。
Address 1 (目的地址) 發送關聯請求的客戶端設備的 MAC 地址 (即接收地址) 。
Address 2 (源地址) AP的MAC地址,表示發送該響應幀的設備。
Address 3 (BSSID,基本服務集標識符) 網路的 BSSID,通常與 Address 2 相同。
Sequence Control (序列控制) 包含幀的序列號和片段號,用於管理幀的順序和重組。
Frame Body (幀主體) Association Response 幀的核心部分,包含關聯結果和配置參數。以下是 Frame Body 中的關鍵字
-
Capability Information (能力信息) 描述 AP 的能力,如支持的加密方法、短前導碼、QoS、功率管理等功能。這個欄位的內容與 Association Request 幀中的 Capability Information 欄位相似,但由 AP 決定。
-
Status Code (狀態碼) 指示關聯請求的處理結果。常見的狀態碼包括:0 (成功) :關聯請求成功。1-65535 (失敗原因) :如資源不足、AP 不支持客戶端請求的功能、認證失敗等。
-
Association ID (AID,關聯ID) 如果關聯成功,AP 為客戶端設備分配一個唯一的關聯 ID (AID) 。AID 是一個用於標識客戶端設備的短標識符,在 AP 和客戶端之間進行通信時很常用,尤其是在節能模式下。
-
Supported Rates (支持的速率) AP 支持的數據傳輸速率列表,通常包含在響應幀中以確認客戶端設備和 AP 之間的速率匹配。
-
HT Capabilities (高吞吐量能力,可選) 如果 AP 支持802.11n 或更高標準 (如802.11ac) ,可能會包含這個欄位來描述 AP 的高吞吐量能力。
(四)控制幀
控制幀包括:ACK(應答)、RTS(請求發送)、 CTS(允許發送)、PS-Poll省電模式-輪詢幀。
由於這些幀都不帶實體部分,所以相對是比較簡單的。
(1) ACK 幀
ACK幀 (Acknowledgement Frame) 用於確認接收到的數據幀或管理幀。
這是確保可靠數據傳輸的重要機制,尤其在無線網路中,因為無線通道易受干擾和數據丟失的影響。ACK幀由接收方發送給發送方,表示已成功接收到數據,無需重傳。
(a) ACK 幀的功能
確認接收:當設備成功接收到數據幀或管理幀後,發送 ACK 幀以告知發送方幀已被接收。
減少重傳 :通過及時確認接收,ACK 幀幫助減少不必要的重傳,優化網路效率。
保障可靠性:ACK 機制是 802.11 協議提供可靠數據傳輸的重要部分,確保發送方知道數據是否成功到達。
(b) ACK幀的工作原理
發送數據幀: 設備 A 向設備 B 發送數據幀 (如 Data 幀) 。
接收並處理數據幀: 設備 B 接收到數據幀,並檢查數據的完整性 (通過 FCS 欄位) 。
發送ACK幀: 如果數據幀無誤,設備 B 在一個短的時隙 (稱為SIFS,Short Interframe Space) 後,向設備 A 發送 ACK 幀。
確認接收: 設備 A 接收到 ACK 幀後,知道設備 B 已成功接收到數據幀,因此可以繼續發送下一個數據幀。如果沒有收到 ACK 幀,設備 A 會在規定的重傳次數內重發數據幀。
(c) ACK 幀的結構
類型欄位為控制幀 (01),子類型欄位為ACK (1101),通過 wlan.fc.type_subtype == 0x1d
可以篩選出 ACK 幀
(2) RTS 與 CTS 幀
RTS 幀 (Request to Send Frame) 與 CTS 幀 (Clear to Send Frame) 用於解決無線通信中可能發生的通道爭用和隱藏節點問題。
RTS 幀通過請求通道占用權,確保發送方可以獨占通道進行數據傳輸,從而減少數據幀的碰撞。
(a) RTS/CTS 幀的功能
避免碰撞:在多個設備共用同一無線通道的環境下,RTS 幀幫助協調設備之間的通信,減少同時發送數據導致的幀碰撞。
解決隱藏節點問題:當兩個設備無法直接彼此通信,但都能與 AP 通信時,RTS 幀有助於確保這些設備不會同時發送數據,從而避免通道爭用。
控制通道訪問:通過RTS/CTS (Clear to Send) 機制,設備可以請求短暫占用通道的許可權,確保其數據傳輸不會受到其他設備的干擾。
(b) RTS/CTS 機制的工作原理
RTS幀與CTS幀 (Clear to Send) 共同工作,形成RTS/CTS機制。這是802.11協議中一種用於解決通道爭用和碰撞的問題的協議。其工作步驟如下:
發送 RTS 幀:設備 A 準備發送一個較大的數據幀時,首先向設備 B 發送 RTS 幀,請求占用通道的許可。RTS 幀中包括目的地址 (設備B) 和通道占用時間。
接收 CTS 幀:如果設備B接收到 RTS 幀,並且通道空閑,它會在一個短暫的 SIFS (Short Interframe Space) 後,向設備 A 發送 CTS 幀。CTS 幀中包括允許占用通道的時間。
其他設備等待:在設備 A 和設備 B 進行 RTS/CTS 交換的過程中,其他設備 (能夠聽到 CTS 幀的設備) 會進入等待狀態 (NAV,網路分配向量) ,不占用通道,直至數據傳輸完成。
發送數據幀:收到 CTS 幀後,設備 A 確認通道已被分配給它,開始向設備 B 發送數據幀。
ACK確認:設備 B 成功接收到數據幀後,發送 ACK 幀確認數據的接收。
(c) RTS/CTS 幀的重要性
解決隱藏節點問題:在無線網路中,隱藏節點是指兩個無法彼此直接通信的設備,但它們可以與同一個 AP 通信。RTS/CTS 機制通過要求所有設備在發送數據前先進行 RTS/CTS 交換,確保沒有隱藏節點干擾數據傳輸。
減少碰撞概率:通過 RTS/CTS 機制,設備在傳輸大型數據幀前先進行握手,確保通道已被預留。這樣,大大減少了因為碰撞而重傳數據的需求,提高了網路效率。
優化通道使用:雖然 RTS/CTS 機制本身會增加一些控制幀的開銷,但在高流量或高幹擾環境中,它能有效地減少碰撞,從而提高整體網路的吞吐量和效率
(d) RTS/CTS 幀結構
- RTS 類型欄位為控制幀 (01),子類型欄位為RTS (1011),整合類型為 0x1b
- CTS 類型欄位為控制幀 (01),子類型欄位為CTS (1100),整合類型為 0x1c
(3) PS-Poll 幀
PS-Poll幀 (Power Save Poll Frame) 用於設備在省電模式下與接入點 (AP) 通信時,輪詢接收緩存的幀。
它的主要目的是幫助處於省電模式的設備高效管理電源,同時確保不會錯過重要的數據幀。
(a) PS-Poll 幀的功能
省電模式下的幀獲取:當設備處於省電模式時,它會定期進入活動狀態,通過發送PS-Poll 幀請求 AP 發送緩存的數據幀。
優化電池使用: 通過減少設備的活動時間,PS-Poll 幀幫助設備在儘可能少消耗電能的情況下獲取數據。
通道效率: PS-Poll 幀確保只有在設備準備好接收數據時,AP 才會發送緩存的幀,從而提高了通道的使用效率。
(b) PS-Poll 幀的工作原理
PS-Poll 幀的工作流程涉及設備和AP之間的交互,確保省電模式下的設備能夠有效接收數據幀。具體步驟如下:
設備進入省電模式:設備定期進入省電模式,關閉大部分的無線功能以節省電能。
AP 緩存數據幀:當 AP 有數據幀需要發送給處於省電模式的設備時,它會緩存這些幀,併在 Beacon 幀中設置標誌,表明有數據幀等待發送。
設備輪詢 AP:設備周期性地喚醒,併發送 PS-Poll 幀給 AP,詢問是否有數據幀待接收。
AP響應PS-Poll 幀:收到 PS-Poll 幀後,AP 會根據緩存情況,立即發送數據幀。如果有多幀需要發送,AP 會繼續緩存剩餘的幀,直到設備再次發送 PS-Poll 幀。
設備接收數據幀:設備接收到 AP 發送的幀後,如果 AP 指示還有更多幀待接收,設備可以選擇繼續輪詢或返回省電模式。
(c) PS-Poll 幀的重要性
延長電池壽命:PS-Poll 幀的使用使得設備能夠最大限度地減少無線功能的開啟時間,從而有效延長電池壽命。
通道占用優化:PS-Poll 機制確保AP只在設備請求時發送數據幀,避免了不必要的通道占用,從而提高了網路效率。
適用於移動設備:在移動設備 (如智能手機和筆記本電腦)中,PS-Poll 幀機制尤其重要,因為這些設備依賴電池供電,電量管理對用戶體驗至關重要。
(d) PS-Poll 幀結構
類型欄位為控制幀 (01),子類型欄位為 PS-Poll (1010),整合類型為:0x1a
註意,在 PS-Poll 幀中,Duration 欄位通常用來表示設備 ID,以幫助 AP 識別是哪台設備正在輪詢幀。所以上面截圖的這個 Duration 實際是解析錯了,它不是表示時間,而是表示 ID。
結尾
上面內容主要是對 WiFi 的部分控制幀和管理幀做了簡單的介紹,如有錯誤,歡迎評論區提示指出,不勝感激。
下一篇將介紹 WiFi 漫游與路由器的串並聯、 Mash、AC+AP 組網相關知識