802.11n PHY-MAC層幀結構解析
- 資料轉換過程
- MPDU(MAC幀)結構
-
-
- 1. 幀控制結構(Frame Control):
- 2. 持續時間/辨別(Duration/ID)
- 3. 位址域
- 4. 序列控制(Sequence Control)
- 5. 幀主體(Frame Body)
- 6. 幀檢驗序列(FCS)
-
- PPDU(PHY幀)結構
-
-
- 1. Non-HT
- 2. HT-Mixed
- 3. HT-Grennfield
- 4. L-STF
- 5. L-LTF
- 6. L-SIG
- 7. HT-SIG
- 8. HT-GF-STF
- 9. HT-LTF1
- 10. HT-LTFs
-
最近因為業務問題學習了一下802.11n幀結構的有關知識,盡管随着802.11ac、ax時代的到來,802.11n已經走向了終結,但作為史上使用時間最長的WiFi協定,其仍然具有重大的意義。
資料轉換過程
- 802.11協定對資料鍊路層和實體層進行定義。
- 資料鍊路層分為:邏輯鍊路控制層(Logical Link Control,LLC)和媒介通路控制層(Media Access Control,MAC)
- 當來自Layer3(網絡層)的資料進入資料鍊路層時,首先會經過LLC,添加一些資訊形成MSDU(MAC Service Data Unit),這是一種802.3格式的幀。(注意:所有來自上層的資料包都會被封裝為802.11資料幀,是以由MSDU轉化的都是資料幀類型)
- MSDU進入MAC層,會被添加上MAC頭部資訊和尾部FCS校驗資訊,并被無限網卡驅動轉化成MAC協定資料單元MPDU(MAC Protocol Data Unit),這就是平常我們抓包抓到得MAC幀。
- 而除了資料幀之外的控制幀和管理幀,是直接在MAC子層生産為MSDU的?
- 實體層也分為兩層:實體層彙聚過程層(Physical Layer Convergence Procedure,PLCP)和實體媒體依賴層(Physical Medium Dependent,PMD)
- 當MPDU進入到實體層後,名字會變成PSDU(PLCP Service Data Unit),和MPDU是同一個東西。
- PLCP收到PSDU後,會在PSDU前加一個前導同步碼和PHY頭部形成PHY層協定資料單元(PPDU)。
- 然後,PPDU會被移交給PMD層,根據不同的算法調制成一串比特流進行發送。
- 所有過程如下圖所示。
MPDU(MAC幀)結構
如圖,一個完整的MPDU包括以下字段:幀控制、持續時間、位址域(Address1、2、3、4)、序列控制、幀主體(MSDU)、循環備援校驗。以上機關為位元組(8bit)。
1. 幀控制結構(Frame Control):
1)協定版本(Protocol Version):通常為0,沒有新版本。
2)幀類型(Type):管理幀00(用于STA、AP協商)、控制幀01(用于信道控制)、資料幀10(資料的載體)
3)幀子類型(SubType):用于表示子類型。
Type | Subtype | Info |
---|---|---|
00 | 0000 | Association Request(關聯請求) |
00 | 0001 | Association Response(關聯應答) |
00 | 0010 | Reassociation Request(重新關聯請求) |
00 | 0011 | Reassociation Response(重新關聯應答) |
00 | 0100 | Probe Requset(探測請求) |
00 | 0101 | Probe Response(探測應答) |
00 | 1000 | Beacon(信标,被動掃描AP發出) |
00 | 0110 | Timing Advertisement |
00 | 1001 | ATIM(通知傳輸訓示) |
00 | 1010 | Disassociation(解除關聯) |
00 | 1011 | Authentication(鍊路驗證) |
00 | 1100 | Deauthentication(解除鍊路身份驗證) |
00 | 1101 | Action(功能幀,802.11h加入) |
00 | 1110 | Action-No-Ack(無需确認的功能幀) |
01 | 0100 | Beamforming Report Poll(波束成形輪詢報告,802.11ac新增) |
01 | 0101 | VHT NDP Announcement(空資料包通告,802.11ac新增) |
01 | 0111 | Control Wrapper(控制封裝) |
01 | 1000 | Block Ack Request(塊确認請求) |
01 | 1001 | Block Ack(塊确認) |
01 | 1010 | PS-Poll(省電輪詢) |
01 | 1011 | RTS(請求發送) |
01 | 1100 | CTS(允許發送) |
01 | 1101 | ACK(确認) |
01 | 1110 | CF-End(無競争周期結束) |
01 | 1111 | CF-End+CF-Ack(無競争周期确認,确認正确接收到幀) |
10 | 0000 | Data(标準資料幀,無需确認) |
10 | 0001 | Data+CF-Ack(無競争周期确認,确認之前收到的所有幀) |
10 | 0010 | Data+CF-Poll(無競争周期輪詢,STA賦予AP緩存幀權利) |
10 | 0011 | Data+CF-Ack+CF-Poll |
10 | 0100 | Null Data(no data) |
10 | 0101 | CF-Ack(no data) |
10 | 0110 | CF-Poll(no data) |
10 | 0111 | Data+CF-Ack+CF-Poll(no data) |
10 | 1000 | QoS Data |
10 | 1001 | QoS Data+CF-Ack |
10 | 1010 | QoS Data+CF-Poll |
10 | 1011 | QoS Data+CF-ACK+CF-Poll |
10 | 1100 | Qos Null(no dataa) |
10 | 1101 | QoS CF-Ack |
10 | 1110 | QoS CF-Poll |
10 | 1111 | QoS CF-Ack+CF-Poll |
4)To DS:表明是否是BSS(基本服務集)向DS(分布式系統)發送的幀,也就是Station->AP。
5)From DS:表明是否是DS向BSS發送的幀,也就是AP->Station。
6)More Fragment:用于被分段的幀,是否還有剩餘的片段。
7) 重傳域(Retry):是否是重傳幀。
8) 電源管理(Power Management):此幀過後是否進入省電模式,AP發出的幀必為0。
9)More Data:AP是否有緩存的幀需要發送給休眠中的Station。
10)幀保護(Protected Frame):是否開啟了鍊路認證,隻有WEP啟用。
11) Order:被分段的幀是否嚴格按序傳送。
2. 持續時間/辨別(Duration/ID)
用來表明該幀及其确認幀需要占用信道的時間。
3. 位址域
總體來說有四類位址:SA(源位址)、DA(目的位址)、TA(發送位址)、RA(接收位址),不同的網絡類型,占用的Address1、2、3、4有所不同。通常來說1是接收機、2是發射機、3用于接收過濾。(這裡待查證)
4. 序列控制(Sequence Control)
用于重組幀片段以及丢棄重複幀。
5. 幀主體(Frame Body)
包含上層資料。
6. 幀檢驗序列(FCS)
對幀進行完整性檢驗,通過則傳送給上層協定;失敗丢棄。
PPDU(PHY幀)結構
802.11n中定義了三種PHY幀格式:Non-HT格式(傳統模式)、HT-Mixed格式(混合模式)、HT-Greenfield(綠地模式)。
1. Non-HT
該模式下的幀完全符合802.11a和802.11g格式,所有802.11n産品都必須支援這種格式,但此模式下的802.11n性能最差、速度最慢且無法使用40MHz的信道,。
2. HT-Mixed
該模式下的幀同時包含有Non-HT域和HT域,Non-HT域能夠被802.11a和802.11g識别,是以能夠相容a/g協定,所有産品都必須支援這種格式,其速率明顯高于傳統模式,但相比綠地模式還是付出了明顯的吞吐量的代價。
3. HT-Grennfield
該模式下的幀隻含有HT域,是以不能相容802.11a和802.11g,隻能被802.11n裝置識别,對此格式的支援是可選的,是速度最快、性能最高的模式。
4. L-STF
遺留的短訓練字段(Legacy-Short Training Field),BPSK調制,無信道編碼,不加擾,時長為8μs,20MHz下使用子載波[-24,-20,…,20,24]共24個OFDM符号訓練,40MHz下使用[-58,2]和[2,58]。主要功能是幀同步和粗頻率同步
5. L-LTF
遺留的長訓練字段(Leagacy-Long Training Field),BPSK調制,無信道編碼,不加擾,時長為8μs,20MHz下使用[-26,1]和[1,26],40MHz下使用[-58,2]和[2,58]。主要功能是細頻率同步和信道估計。
6. L-SIG
信号位,其結構包含Rate(編碼與調制方式)、Reserved、Length(資料位的長度)、Parity(用于奇偶校驗)、Tail(用于FEC解碼)
7. HT-SIG
高吞吐量信号序列(High-Throughput-Greenfiled),和L-SIG類似,包含了關鍵的編碼和調制參數(傳輸速率、幀長等等),用于解釋HT資料區。該域包含SIG1和SIG2兩個部分。
8. HT-GF-STF
高吞吐量綠地模式的短訓練序列(HT-Short-Training-Field)。
9. HT-LTF1
第一個高吞吐綠地模式的長訓練序列(HT-Long TF),時長為8μs,是其他HT-LTFs的兩倍,由時長為1.6μs的長CP(cyclic prefix)和兩個完全重複的3.2μs的長訓練符号組成,和HT-GF-STF一起用于頻率、時間同步。
10. HT-LTFs
高吞吐量綠地模式的長訓練序列,包含資料HT-LTF(DATA HT-LTF)和擴充HT-LTF(Extension HT-LTF)兩類。其中DLTF用于接收端進行信道評估,以準确地對資料區進行解調;ELTF用于探測幀,對信道更多分量進行評估。