WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

liwen01發表於2024-09-28

liwen01 2024.09.22

前言

前面介紹了 WiFi 的工作原理和 WiFi 的接入過程,這裡將透過分析 WiFi 具體資料包結構,讓你對 WiFi 工作原理和接入過程有一個更進一步的瞭解。

前面文章可以透過下面連線檢視:

WiFi基礎(四):WiFi工作原理及WiFi接入過程

(一) 802.11 幀WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

802.11 無線 WiFi 有 資料幀,管理幀、控制幀 三種型別幀。

這些幀由 9 個部分組成:Frame Control,Duration ID,Address1,Address2,Address3,Seq-ctl,Address4,Frame Body,FCS

需要注意的是,有些組成部分在有些幀裡並不是必須的。

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

九個部分的功能簡介如下:

  • 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 (幀控制)

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

(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:需要嚴格順序處理

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

上面 802.11 Beacon frame 幀,版本號為 0;幀型別為 00 為管理幀;子型別為1000 為Beacon 幀。

(2) Duration/ID (持續時間/識別符號)

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

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 值。

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

上面的 CTS 幀,Duration 為 134 ms,表示該傳輸會持續134 ms,在這期間同通道的其它裝置需要保持安靜。

(3)Sequence Control (序列控制)

Sequence Control 欄位用於管理幀的序列化和片段化。這個欄位有助於確保資料幀能夠按正確的順序組裝,並檢測和處理重傳的幀。

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

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,表示第二個片段,依此類推。

幀重傳: 如果幀在傳輸過程中丟失或被接收端判斷為錯誤,傳送端會重傳該幀。重傳幀的序列號與原幀相同,但片段號可能發生變化,具體取決於傳輸的片段。

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

檢視上面的資料幀,被分開了多個資料幀,當前 Sequence Number 為 1144 。

(二) 無線空口包

WiFi 是透過無線電報在空中進行資料互動,所以稱為空中介面包(Air Interface Packet),也簡稱為空口包。它包含了無線 WiFi 網中傳輸的所有資訊。

(1) 空口包 capture

在有線網中,我們一般使用 Wireshark 來抓取網路卡的所有資料,但是在無線 WiFi 中,無線口空包資料一般使用 Omnipeek 來抓取。

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

Omnipeek 需要搭配一個資料分析網路卡來使用,可以在不建立連結的前提下,直接抓取到 802.11 無線資料,一般用於研究開發 WiFi 協議、分析無線連線過程、監控無線網路等。

關於 Omnipeek 的使用,網上介紹比較多,我這裡就簡單概括一下使用方法。

  • 安裝 Omnipeek 軟體和驅動
  • 設定 Omnipeek 需要抓取的頻段(通道)
  • 如果 AP 是加密的的,需要設定密碼

透過上面方式就可以抓取到某個通道的所有無線訊號,具體使用與 Wireshark 類似。抓取到的資料幀如下:

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

(三) 管理幀

管理幀有: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 幀。

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

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幀的結構

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

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 幀

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

(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 幀的結構

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

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 幀

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

(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 幀的結構

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

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 幀

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

(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
WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

(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

WiFi基礎(五):802.11幀結構與WiFi控制幀、管理幀、資料幀

注意,在 PS-Poll 幀中,Duration 欄位通常用來表示裝置 ID,以幫助 AP 識別是哪臺裝置正在輪詢幀。所以上面截圖的這個 Duration 實際是解析錯了,它不是表示時間,而是表示 ID。

結尾

上面內容主要是對 WiFi 的部分控制幀和管理幀做了簡單的介紹,如有錯誤,歡迎評論區提示指出,不勝感激。

下一篇將介紹 WiFi 漫遊與路由器的串並聯、 Mash、AC+AP 組網相關知識

------------------End------------------
如需獲取更多內容
請關注 liwen01 公眾號

相關文章