幀類型
802.11幀主要有三種類型:

管理幀
它的主要作用是維護接入點和無線客戶端之間的通信,管理幀框架擁有以下子類型:
-
Authentication
-
De-authentication
-
Association Request
-
Association Response
-
Reassociation Request
-
Reassociation Response
-
Disassociation
-
Beacon
-
Probe Request
-
Probe Response
控制幀
控制幀是負責客戶端和接入點的數據交換,類型為:
- Request to Send (RTS)
- Clear to Send (CTS)
- Acknowledgement (ACK)
數據幀
攜帶傳輸的數據的幀,類型主要有:
- DHCP
- TCP
- HTTP
- EAPOL-Key
- 802.11 Flag
- 等等
802.11 幀格式
802.11幀的最大長度2346個字節,結果如下:

802.11幀—Frame Control
在802.11幀的開頭,占2個字節共8bit位。
所有幀的開頭均是長度兩個元組的Frame Control位,如下圖所示:Frame Control位包含以下bit位。

-
Protocol(協議版本)
上圖中,協議版本的值為0,因為這是目前唯一的版本,未來可能會出其他新的版本。 -
Type:
管理幀的Type值為00。
控制幀的Type值為01。
數據幀的Type值為10。 -
Subtype(子類型):
此位代表發送幀的子類型。


-
To DS 與From DS
分別表示無線鏈路向無線工作站(如AP)發送的幀和無線工作站向無線鏈路發送的幀。 -
More Fragments(更多片段)
用於說明長幀被分段的情況,是否還有其它的幀。若較上層的封包經過MAC 分段處理,最后一個片段除外,其他片段均會將此bit 設定為1。 -
Retry(重試)
有時候可能需要重傳幀。任何重傳的幀會將此bit 設定為1,以協助接收端剔除重復的幀。 -
Power Management(電源管理)
此bit 用來指示、完成當前的幀交換過程后,發送端的電源管理狀態。
為1表示STA處於Power_save模式,為0表示STA處於active模式。 -
More Data(尚有數據)
More Data bit 只用於管理數據幀,在控制幀中此bit 必然為0。 -
Protected Frame(受保護幀)
為1表示幀體部分包含加密處理過的數據,為0則表示沒有進行加密處理。

-
Order(次序)
幀與幀片段可依序傳送,不過發送端與接收端的MAC必須付出額外的代價,對幀片段進行嚴格編號。一旦進行“嚴格依序”傳送,此bit被設定為1。
Duration/ID 位
在802.11幀第2位,占2個字節,共8bit位。
Duration(持續時間)位用來記載網絡分配矢量NAV得值。
訪問介質時間限制是由NAV所指定。

當第15 個bit被設定為0時,Duration/ID位就會被用來設定NAV。此數值代表目前所進行的傳輸預計使用介質多少微秒。
工作站必須監視所收到的任何幀頭,並據以更新NAV。
任何超出預計使用介質時間的數值均會更新NAV,同時阻止其他工作站訪問介質
802.11幀—Address
地址字段包含不同類型的MAC地址,地址的類型取決於幀類型。

舉例:

- Address 1
代表幀接收端的地址。
在某些情況下,接收端即為目的地,但不然如此。
目的地是負責處理幀中網絡層封包的工作站。 而接收端是負責將無線電解碼為802.11 幀的工作站。
如果Address 1 被設為廣播或組播地址,則必須同時檢查BSSID(基本服務組合識別碼)。工作站只會應答來自同一個基本服務組合(basic service set,簡稱BSS)的廣播或組播信息;至於來自其他不同BSS 者則加以忽略。 - Address 2
發送端的地址,用來發送應答信息。
在某些情況下,發送端即為源地址,但不然如此。
源地址是指產生幀中網絡層協議封包的工作站;而發送端則是負責將幀發送至無線鏈路。 - Address 3
Address 3 位則是供基站與傳輸系統過濾之用,不過該位的用法,取決於所使用的網絡類型。 - Address 4
Address 4 一般不使用,只有在WDS(無線分布系統)中才會使用。
802.11幀—Seq-Ctl(順序控制位)

此位占16bit位,用來重組幀片段以及丟棄重復幀。它由4個bit的fragment number(片段編碼)位以及12個bit的sequence number(順序編號)位所組成。
-
fragment number(片段編號)在上層封包被切割處理時使用,第一個片段的編號為0。其后每個片段依序累加1,方便幀進行重組。所有幀片段都會具有相同的順序編號,如果是重傳幀,則順序編號不會有任何改變。
-
sequence number(順序編號)位的作用,相當於已傳幀的計數器取4096 的模(modulo)。此計數器由0 起算,MAC 每處理一個上層封包就會累加1。
如果發生重傳,則順序編號不變,便於進行幀處理,丟棄重復幀。
主要是將我們發送的幀進行編號,對重新傳輸的幀進行刷選,保證幀的正確性。
802.11幀—Frame Body(幀主體)
Frame Body 稱為數據位,負責在工作站之間傳輸上層數據(payload)。
802.11幀最多可以傳輸2312個bit組的上層數據

Frame Body包含了SSID、Channel、TX、RX等信息

802.11幀—FCS(幀檢驗序列)
802.11幀以FCS作為結束,FCS讓工作站得以檢查所收到的幀的完整性。
在以太網上,如果幀的FCS有誤,則隨即予以丟棄,否則就會傳送給上層協議處理。在802.11網絡上,通過完整性檢驗的幀還需接收端送出應答。
例如,接收無誤的數據幀必須得到正面應答,否則就必須重傳。
對於未能通過FCS檢驗的幀,802.11並未提供負面應答機制;在重傳之前,工作站就必須等候應答超時。
幀類型細分
管理幀
管理幀的主體所包含的固定位與信息元素是用來運送信息。管理幀有好幾種分別負責鏈路
層各種維護功能。
Beacon(信標)幀

- Beacon 幀是相當重要的維護機制,主要用來宣告某個網絡的存在。
- 定期發送的信標,可讓移動工作站得知該網絡的存在,從而調整加入該網絡所必要的參數。
- 在基礎型網絡里,基站必須負責發送 Beacon 幀。 Beacon 幀所及范圍即為基本服務區域。在基礎型網絡里,所有溝通都必須通過基站,因此工作站不能距離太遠,占則便無法接收到信標。
檢測要求(probe request)幀

- 移動工作站將會利用 Probe Request(檢測要求)幀,掃描所在區域內目前有哪些 802.11
網絡 - Probe Request 幀包含兩個位: SSID 以及 Supported Rates(移動工作站所支持的速率)。
收到 Probe Request 幀的工作站會據此判定對方能否加入網絡。為了相處愉快,移動工作站必
須支持網絡所要求的所有數據速率,並以 SSID 表明所欲加入的網絡。 SSID 可設定為特定網絡
的 SSID,或設定為任何相容網絡的 SSID。允許網卡加入任何網絡的驅動程式,將會在 Probe
Requests 中使用 broadcast SSID(廣播形式的服務集合識別碼)。
檢測應答(probe response)幀

- 如果 Probe Request 幀所探查的網絡與之相容,該網絡就會以 Probe Response 幀應答。
送出最后一個 Beacon 幀的工作站,必須負責應答所收到的檢測信息。在基礎型網絡里,負責應
答的工作站即為基站。在 IBSS 當中,工作站會彼此輪流發送 Beacon 信號。發送 Beacon 信號
的工作站必須負責發送 Probe Response 幀, 直到下一個 Beacon 被發送出來。 Probe Response
幀的格式如圖 4-53 所示。 其中某些位彼此互斥; 此規則同樣適用於 Probe Response 以及 Beacon幀 - Probe Response 幀中包含了 Beacon 幀的所有參數,移動工作站可據以調整切入網絡所需
要的參數· Probe Response 幀可以剔除 TIM 元素,因為此時工作站尚未建立連接,因此不必知
道哪些連接在基站中有暫存幀
IBSS的數據待傳指示通知信息(ATIM)幀

HISS 中沒有基站,因此無法仰賴基站暫存幀。 IBSS 中的工作站如果為處於休眠狀態的接
收者暫存幀,就會在遞送期間送出一個 ATIM 幀,通知對方有信息待陣,如圖 4-54 所示。
解除連接和解除認證(Disassociation 與 Deauthentication)
- Disassociation(解除連接)幀用來終結一段連接關系。
- 而 Deauthentication(解除認證)幀則用來終結一段認證關系。
- 兩者均包含一固定位, Reason Code(原因代碼),如圖 4-55 所示。當然, Frame Control 位彼此不同,因為不同類型的管理幀擁有不同的次類型。 802.11 改版並不需要改變這一格式,但幾次修訂均加入了新的原因代碼。

連接要求( Association Request)
一旦移動工作站找到相容網絡並且通過身份認證,便會發送 Association Request(連接要
求)幀,試圖加入網絡。 Association Request 幀的格式如圖 4 一 56 所示。

- Capability Information(性能信息)位用來指出移動工作站所欲加入的網絡類型。在接受連
接要求之前,基站會驗證 Capability Information、 SSID 以及( Extended) Supported Rated
等位是否符合網絡參數。此外,基站也會記錄工作站所使用的 Listen Interval(聆聽間隔;即移
動工作站每隔多久聆聽一次 Beacon 幀,以監視 TIM 信息)。支持頻譜管理的工作站具備 power
(功率)與 channel(信道)性能信息元素,支持安全防護的工作站則具備 RSN 信息元素。
重新連接( Reassociation Request)

- 位於相同擴展服務區域,但在不同基本服務區域之間游走的移動工作站,若要再次使用傳
輸系統, 必須與網絡重新連接。 如果工作站暫時離開基站所涵蓋的范圍, 之后要重新加入的時候,也必須重新連接。如圖 4-57 所示。 - association Request(連接要求)與 Reassociation Request(重新連接要求)之間的差別
在於,后者包含移動工作站目前所連接之基站的地址。擁有這項信息可讓新舊基站彼此聯系,以
及交接連接數據。交接項目包括先前連接之基站所暫存的幀。
連接應答與重新連接應答( Association Response 與 Reassociation Response)

- 當移動工作站試圖連接基站時,基站會回覆一個 Association Response(連接應答)或
Reassociation Response(重新連接應答)幀,如圖小 58 所示。兩者之間的差別,在於 Frame
Control 位所記載的 subtype 位。 所有位均屬必要。 在應答的過程中, 基站會指定一個 Association ID(連接識別碼),至於指定的方式則因實作而異。
認證( Authentication)

- 802.11 網絡發展初期,工作站是使用共享密鑰以及圖 4-59 所示的 Authentication 幀進行身
份認證。到了 802.11i,共享密鑰身份認證雖然仍保留在標准當中,但卻無法與新的安全機制相
容。如果工作站使用共享密鑰身份認證,將不允許使用較為牢靠的安全性協議 - 不同的身份認證算法可以同時存在。 Authentication Algorithm Number(身份認證演算法編
號)位用於選擇演算法。整個認證程序可能包含好幾個步驟(與所使用的算法有關),因此認證
的過程中每個幀都有其序號。 Status Code 與 Challenge Text 的用法因算法而異
Action
- 802.11h 加入了 Action 幀的支持,用來觸發測量動作。這些幀將於 8.8 節<頻譜管理>詳加
描述
控制幀
控制幀主要在協助數據幀的傳遞。它們可用來監督無線介質的訪問(但非介質本身),以
及提供 MAC 層次的可靠性。
RTS(請求發送)
RTS 幀可用來取得介質的控制權,以便傳輸「大型」幀。至於多大稱之大型:是由網卡驅
動程式中的 RTS threshold(門限)來定義。介質訪問權只能保留給單點傳播( unicast)幀使用,而廣播( broadcast)與組播( multicast)幀只須發送便是了。 RTS 幀的格式如圖 4-13 所示。就和所有控制幀一樣, RTS 幀只包含標頭。幀主體中並未包含任何數據,標頭之后即為 FCS(幀檢查碼)。

RTS 的 MAC 標頭由四個位構成:
- Frame Control(幀控制)
Frame Control 位並沒有任何特殊之處。幀的 subtype(次類型)位設定為 1011,代表 RTS
幀。除此之外,它與其他的控制幀具備相同位。(在 802.11 規格書中,最高效 bit 乃是最后一
個 bit,因此在 subtype 位中,第 7 個 bit 代表最高效 bit。) - Duration(持續時間)
RTS 幀會試圖預定介質使用權,供幀交換程序使用,因此 RTS 幀發送者必須計算 RTS 幀結束后還需要多少時間。圖 4-14 說明了整個交換過程,總共需要三個 SIFS、一個 CTS、最后的 ACK,加上發送第一個幀或幀片段所需要的時間。( fragmentation burst〔片段宣泄期〕會使用后續的幀片段來更新 Duration 位。)傳輸所需要的微秒數經過計算后會置於 Duration 位。假使計算的結果不是整數,就會被修正為下一個整數微秒。

Address 1 位; Receiver Address(接收端地址)
接收大型幀的工作站的地址。
Address -2 位: Transmitter Address(發送端地址)
RTS 幀的發送端的地址。
CTS(允許發送)
CTS 幀有兩種目的,其格式如圖 4-15 所示。起初, CTS 幀僅用於應答 RTS 幀,如果之前
沒有 RTS 出現,就不會產生 CTS。后來, CTS 幀被 802. 11g 防護機制用來避免干擾較舊的工作站。此防護機制和 802.11g 的其他數據

CTS 幀的 MAC 標頭由三個位構成:
- Frame Control(幀控制)
幀的 subtype(次類型)位被設定為 1100,代表 CTS 幀。 - Duration(持續時間)
用來應答 RTS 時, CTS 幀的發送端會以 RTS 幀的 duration 值作為持續時間的計算基准。
RTS 會為整個 RTS-CTS-frame-ACK 交換過程預留介質使用時間。不過當 CTS 幀被發送出后,
只剩下其他未幀或幀片段及其回應待傳。CTS 幀發送端會將 RTS 幀的 duration 值減去發送 CTS
幀及其后短幀間隔所需的時間,然后將計算結果置於 CTS 的 Duration 位。圖 4-16 顯示了 CTS
duration 與 RTS diratopm 的關系。

- Address 1 位: Receiver Address(接收端地址)
CTS 幀的接收端即為之前 RTS 幀的發送端,因此 MAC 會將 RTS 幀的發送端地址復制到
CTS 幀的接收端地址。 802.118 防護作業所使用的 CTS 幀會被發送給發出 RTS 的工作站,而
且只用來設定 NAV。
ACK(應答)
ACK 幀(圖 4-17)就是 MAC 以及任何數據傳輸(包括一般傳輸 RTS/CTS 交換之前的幀、
幀片段)所需要的正面應答( positive acknowledgment)。服務質量擴展功能放寬了個別數據幀必須各自得到應答的要求。

ACK 幀的 MAC 標頭由三個位構成:
- Frame Control(幀控制)
幀的 subtype(次類型)位被設定為 1101,代表 ACK 幀。 - Duration(持續時間)
依照 ACK 信號在整個幀交換過程中位居何處, duration 的值可以有兩種設定方式。在完整
的數據幀及一連串幀片段的最后一個片段中, duration 會被設定為 0。數據發送端會將 Frame
Control(幀控制)位中的 More Fragments(尚有片段) bit 設定為 0,表示數據傳輸已經結束。
如果 More Fragments bit 為 0,表示整個傳輸已經完成,沒有必要再延長對無線信道的控制權,
因此會將 duration 設定為 0。
如果 More Fragments bit 為 1, 表示尚有幀片段仍在發送中。 此時 Duration 位的用法和 CTS
幀中的 Duration 位相同。發送 ACK 以及短幀間隔所需要的時間,將由最近幀片段所記載的
duration 中減去。如果不是最后一個 ACK 幀, duration 的計算方式類似 CTS duration 的計算方
式。事實上, 802.11 的規格書將 ACK 幀中的 duration 設定稱為虛擬 CTS。 - Address 1 位: Receiver Address(接收端地址)
接收端地址是由所要應答的發送端幀復制而來。技術上而言,它是由所要應答 幀的
Address 2 位復制而來。應答主要是針對數據幀、管理幀以及 PS-Poll 幀。

PS-Poll(省電模式一輪詢)
當一部移動工作站從省電模式中蘇醒, 便會發送一個 PS-Poll 幀給基站, 以取得任何暫存幀。PS-Poll 幀的格式如圖 4-19 所示。

PS-Poll 幀的 MAC 標頭由四個位構成:
- Frame Control(幀控制)
幀的 subtype(次類型)位被設定為 1010,代表 PS-Poll 幀。 - AID(連接識別碼)
PS-Poll 幀將會以 MAC 標頭的第三與第四 bit 來代表連接識別碼(association ID)。連接
識別碼是基站所指定的一個數值, 用以區別各個連接。 將此識別碼置入幀, 可讓基站找出為其(移動工作站)所暫存的幀。 - Address 1 位: BSSID
此位包含發送端目前所在 BSS 的 BSSID,此 BSS 建立自目前所連接的 AP。 - Address 2 位: Transmitter Address(發送端地址)
此為 PS-Poll 幀之發送端的 MAC 地址
在 PS-Poll 幀中並未包含 duration 信息,因此無法更新 NAV。不過,所有收到 Ps-Poll 幀
的工作站,都會以短幀間隔加上發送 ACK 信號所需要的時間來更新 NAV。此一自動調整機制使
得基站在發送 ACK 信號時,比較不會與移動基站發生碰撞。
【 連接識別碼(AID)在 PS-Poll 幀中,Duration/ID 位是連接識別碼,而非虛擬載波偵測
功能所使用的數值。當移動工作站與基站連接時,基站會從 1-2,007 范圍內指派一個值來做為連接識別碼(AID)】
幀的狀態和等級
所能發送的幀類型,依連接狀態與身份認證狀態而有所不同。工作站可能已經認證或未經認證,也可能己經連接或尚未連接。這兩個變數的組合有三種可能狀態,結果構成了 802.11 的網絡發展層級:
- 初始狀態;未經認證且尚未連接
- 已經認證但尚未連接
- 已經認證且已經連接
每種狀態分別對應到 802.11 連接的發展階段。一開始,移動工作站處於狀態 1,只有進入狀態 3 才可以通過傳輸系統發送數據。(IBSS 不包含基站,也無須進行連接,因此只會停留在狀態 2。) 802.11 幀傳輸的整體狀態圖,如圖 4-60 所示。

幀可以被划分為三種等級。在狀態 1 可以傳遞第 1 級幀;在狀態 2 可以發送第 1 與 2 級幀;
在狀態 3 則可以傳遞第 1、 2 與多級幀。
第 1 級幀
第 1 級幀可以在任何狀態中傳遞,它讓 802.11 的工作站得以進行基本作業。 在 IBSS 當中,控制幀主要用來依循 CSMA/CA 規則,以及發送幀。工作站也會使用第 1 級幀來找尋基礎型網絡,並與之進行身份認證。表 4-11 列出了屬於第 1 級的各種幀。

第 2 級幀
工作站只有在經過身份認證之后,方能夠發送第 2 級幀,而且第 2 級幀只能使用於狀態 2與狀態 3。 2 級幀主要用來管理連接。線或重新連接成功后,工作站就會進入狀態 3;如果連接失敗,則工作站依然處於狀態 2。工作站收到未經認證的作站所傳來的第 2 級幀時,就會應答一 個 Deauthentication(解除認證)幀,將對方推回狀態 1。表 4-12 列出了所有的第 2 級幀。

第 3 級幀
第 3 級幀的使用時機,是在工作站認證成功並與基站連接之后“一旦工作站進入狀態 3,就
可以使用傳輸系統服務,也可以和基站范圍以外的對象進行通訊。在狀態 3,工作站還可以利用PS-Poll 幀享受基站所提供的省電服務。表列出了不同類型的第 3 級幀。

如 果 所 收 到 的 幀 , 來 自 一 部 已 經 驗 證 但 尚 未 連 接 的 工 作 站 , 基 站 就 會 應 答 一 個Disassociation(解除連接)幀,迫使工作站回到狀態 2。如果發出幀的工作站尚未經過驗證,則基站會應答一個 Deauthentication(解除認證)幀,迫使工作站回到狀態 1。
原文地址:https://www.cnblogs.com/rougungun/p/14340489.html 轉載請注明出處,做個合格的程序猿,非常感謝!
