802.11幀的最大長度2346個字節,基本結構如下圖:
Frame Control
所有幀的開頭均是長度兩個元組的Frame Control 幀控制位
* Protocol 協議版本:協議版本值為0,因為這是目前唯一的版本,未來可能會給出其他新的版本。
* Type 類型:用以區分幀類型
* Subtype 子類型:此位代表發送幀的子類型,例如請求發送幀RTS的Type=01,Subtype=1011
* To DS與From DS:分別表示無線鏈路向無線工作站發送的幀和無線工作站向無線鏈路發送的幀
* More Fragments 更多片段:用於說明長幀被分段的情況,是否還有其他幀。若較長層的封包經過MAC分段處理,最后一個片段除外,其他片段均會將此設定為1.
* Retry 重試:有時候可能需要重傳幀。任何重傳的幀會將此bit設定為1,以協助接收端剔除重復的幀。
* Power Management 電源管理:表示完成當前幀交換過程后,發送端的電源管理狀態。1表示STA處於Power_save模式,0表示STA處於active模式
* More Data 尚有數據:用於管理數據幀,在控制幀中此bit必然為0.
* Protected Frame 受保護幀:為1表示幀體部分包含加密處理過的數據,為0則表示沒有進行加密處理。
* Order 次序:幀與幀片段可依序傳送,不過發送端與接收端的MAC必須付出額外代價,對幀片段進行嚴格編號。一旦進行性嚴格依序傳送,此bit被設定為1.
Duration/ID
Duration持續時間:用來記載網絡分配矢量NAV的值。訪問介質的時間限制是由NAV所指定。
當第15個bit被設定為0時,Duration/ID位就會被用來設定NAV
此數值代表目前所進行的傳輸預計使用介質多少微秒。工作站必須監視所收到的任何幀頭,並據以更新NAV。任何超出預計使用介質時間的數值均會更新NAV,同時阻止其他工作站訪問介質。
Address
地址字段包含不同類型的MAC地址,地址的類型取決於發送幀的類型。
Address 1 代表幀接收端的地址。在某些情況下,接收端即為目的地
* 目的地是指負責處理幀中網絡層封包的工作站,而接收端則是負責將無線電解碼為802.11幀的工作站
* 如果Address1被設為廣播或組播地址,則必須同時檢查BSSID。工作站只會應答來自同一個BSS的廣播或組播地址,至於來自其他不同BSS的則忽略
Address 2 發送端地址,用來發送應答信息。某些情況下,發送端即為源地址,但不全如此。
源地址是指產生幀中網絡層協議封包的工作站,而發送端則是負責將幀發送至無線鏈路
Address 3 是供基站與傳輸系統過濾之用,不過該位的用法,取決於所使用的網絡類型
Address 4 一般不使用,只有在WDS無線傳輸系統中才會使用
順序控制位
此位長度16bit,用來重組幀片段以及丟棄重復幀。它由4個bit的fragment number(片段編號)位以及12bit的sequence number(順序編號)組成。
順序編號:相當於已傳幀的計數器取4096的摸。此計數器由0起算,MAC每處理一個上層封包就會累加1.如果發生重傳,則順序編號不變,便於進行幀處理,丟棄重復幀。主要是將我們發送的幀進行編號,對重新傳輸的幀進行刷選,保證幀的正確性。
片段編號:在上層封包被切割處理時使用,第一個片段編號為0,其后每個片段依序累加1,方便幀進行重都組。所有幀片段都會具有相同的順序編號,如果是重傳幀,則順序編號不會有任何改變。
幀主體
Frame Body幀主體位,亦稱為數據位,負責在工作站間傳送上層數據,802.11幀最多可傳送2312個bit組的上層數據。
幀檢驗序列
Frame Check sequence簡稱FCS,FCS讓工作站得以檢查所收到的幀的完整性。
當幀送至無線界面時,會先計算FCS,然后再由RF或IR鏈路傳送出去。接收端隨后會為所收到的幀計算FCS,然后與記錄在幀中的FCS做比較。802.11網絡中,通過完整性檢驗的幀還需接收端送出應答,例如:接收無誤的數據幀必須得到正面應答,否則就必須重傳。對於未能通過FCS的幀,802.11並未提供負面應答機制;在重傳之前,工作站就必須等候應答超時。
802.11幀類型
Type類型與Sub Type子類型用來指示所使用的幀類型。
Type用以區分幀類型:
管理幀的Type值為:00
控制幀的Type值為:01
數據幀的Type值為:10
幀類型11保留,尚未使用
Sub Type指各幀類型中詳細使用幀類型。
數據幀
數據幀會將上層協議的數據置於幀主體加以傳遞,會用到哪些位,取決於該數據幀所屬的類型。
* Frame Control幀控制:每個幀控制bit都可能影響到MAC標頭其他位的解讀方式。值得注意的是地址位,它們的意義將因ToDS及FromDSbit的值而異。
DS Distribution system分布式系統是接入點間轉發幀的骨干網絡,因此通常稱為骨干網絡,一般可理解為以太網
SA源地址,DA目的地址,RA接收端,TA發送端
以下4中情況分別對應上表中情況
上圖中,源端和發送端都是終端,目的端和接收端都是AP,信號從終端發出,希望關聯AP,BSSID用以過濾非此BSS的STA連接
上圖中源端和發送端都是終端,接收端是AP,信號是從無線鏈路向AP發送,所以To Ds為1,發送的目的端為與AP相連的交換機
上圖源端是與AP相連的交換機,發送端是AP,信號從AP向無線鏈路發送,所以From DS 為1,目的端和接收端為STA
上圖為WDS模型,上表中第4列只在這種模型中會有,即四個地址位都被使用,WDS模型既有無線鏈路向AP發送信號,又有AP向無線鏈路發送信號,故ToDS和From DS均為1
控制幀
控制幀均使用相同的Frame Control位
Type:控制幀的類型標識碼為01,所有控制幀均使用此標識碼
To Ds和From DS:控制幀負責處理無線介質的訪問,因此只能夠由無線工作站產生,傳輸系統並不會接收控制幀,因此這兩個必然為0.
More Fragments:控制幀不可分割,必然為0
Retry:必然為0
More Data:此位只用於管理數據幀,在控制幀中必然為0
Protected Frame:控制幀不會經過加密,故此bit必然為0
Order:控制幀是基本幀交換程序的組成要件,因此必須依序發送那個,所以必然為0
控制幀-PS-Poll
當客戶端從省電模式中蘇醒,便會發送一個PS-Poll幀給AP,以取得任何暫存幀。PS-Poll幀的格式如下
Frame Control:幀的sub type設定為1010,代表PS-Poll幀
AID連接識別碼:PS-Poll幀將會以MAC標頭的第三與第四bit來代表連接識別碼association ID。連接識別碼是基站所指定的一個數值,用以區別各個連接。將此識別碼置入幀,可以讓AP找出為其客戶端所暫存的幀
BSSID:包含發送端目前所在BSS的BSSID
Transmitter Address發送端地址:此為PS-Poll幀之發送端的地址。
控制幀-RTS
當AP向某個客戶端發送數據的時候,AP會向客戶端發送一個RTS報文,這樣在AP覆蓋范圍內的所有設備在收到RTS后都會在指定的時間內不發送數據。RTS幀可用來取得介質的控制權,以便傳輸幀。RTS幀格式如下:
Frame Control:幀的subtype設定為1011,代表RTS幀
Duration持續時間:RTS會試圖預定介質使用權,供幀交換程序使用,因此RTS幀發送者必須計算RTS幀結束后還需要多少時間。傳輸所需要的微秒數經過計算后會置於Duration位。假如計算的結果不是整數,就會被修正為下一個整數微秒。
Receiver Address:接收端地址,接收RTS幀的工作站地址
Transmitter Address:發送端地址,RTS幀的發送端地址。
例如:
控制幀-CTS
CTS允許發送,目的客戶端收到RTS后,發送一個CTS報文,這樣在該客戶端覆蓋范圍內的所有設備都會在指定的時間內不發送數據。CTS會令附近的工作站保持沉默,從而獲取介質的控制權。其格式如下:
Frame Control:幀的subtype設定為1100,代表CTS幀
Duration持續時間:用來應答RTS時,CTS幀的發送端會以RTS幀的duration值作為持續時間的計算基准。RTS會為整個RTS-CTS-Frame-ACK交換過程預留介質使用時間。
Receiver Address:接收端地址,CTS幀的接收端即為RTS幀的發送端
控制幀-ACK
應答ACK:每個發送的單播報文,接收者在成功接收到報文后,都要發送一個應答ACK進行確認。
Frame Control:幀的subtype設定為1101,代表ACK幀
Duration持續時間:依照ACK信號在整個幀交換過程中位居何處,在完整的數據幀及一連串幀片段的最后一個片段中,duration會被設定為0
Receiver Address:由所要應答的發送端幀復制而來
管理幀
管理幀目的是通過幀的使用,為網絡提供相對簡單的服務
* Beacon幀(信標幀)
Beacon幀主要來聲明網絡的存在。定期傳送的信標可以讓移動式工作站得知該網絡的存在,從而調整加入該網絡所必須的參數。
基礎結構網絡中,接入點負責傳送Beacon幀
* Probe Request、Probe Response幀
工作站通過Probe Request幀來掃描所在區域內的802.11網絡
若Probe Request幀探查的網絡與之兼容,該網絡就回復Probe Response幀給予響應
* Authentication幀、Deauthentication
工作站通過共享密鑰以及Authentication幀進行身份驗證
Deauthentication解除身份驗證幀則用來終結認證關系
* Association Request幀
一旦工作站找到兼容網絡並且通過身份驗證,便會發送Association Request關聯請求幀試圖加入網絡
* Disassociation幀
取消關聯幀用關聯來終結一段關聯關系
* Reassociation Request幀
位於相同ESS中,當在不同的BSS之間移動的工作站若要再次使用分布式系統DS,必須與網絡重新關聯,區別於關聯請求幀的是:它包含工作站當前所關聯的接入點地址
* Association Response幀與Ressociation Response幀
當工作站試圖連接接入點時,接入點會回復一個Association response幀或Reassociation response幀,響應過程中,接入點會指定一個Association ID(關聯標識符)