liwen01 2024.09.22
前言
前面介紹了 WiFi 的工作原理和 WiFi 的接入過程,這裡將透過分析 WiFi 具體資料包結構,讓你對 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 組網相關知識