日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

802.11 MAC层帧解析

發(fā)布時間:2025/4/5 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 802.11 MAC层帧解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
注1:本文STA為station簡稱,AP為access piont簡稱。

? ? 注2:本文屬于個人理解,存在錯誤望見諒和指正。


1.MAC幀格式

對應的數據結構如下:

  • typedef?struct?_rtw_ieee80211_hdr_qos?{
  • __le16?frame_ctl;
  • __le16?duration_id;
  • u8?addr1[ETH_ALEN];
  • u8?addr2[ETH_ALEN];
  • u8?addr3[ETH_ALEN];
  • u16?seq_ctl;
  • u8?addr4[ETH_ALEN];
  • }?rtw_ieee80211_hdr_qos,*prtw_ieee80211_hdr_qos;
  • 1.1 地址格式 ?

    ? ? addr1:接收地址(所有包都包含它)

    ? ? addr2:傳輸地址(除ACK和CTS包外的其他包都包含它)

    ? ? addr3:只用于管理包和數據包。

    ? ? addr4:無線分布系統(tǒng)模式下,FROM DS和TO DS都被置位時使用。

    ? ? 下圖中,占兩個字節(jié)的Frame control ,其To DS和From Ds決定了這四個地址的使用。

    ? ? Frame control對應的地址如下: (Little?ENDIAN)

  • typedef?struct?_frame_contrl{
  • unsigned?char?version:2;
  • unsigned?char?type:2;??????//00?管理幀?01控制幀?10數據幀?11保留
  • unsigned?char?subtype:4;???//0000?0001?Association?request/response;???0010?0011?reassociation?request/response
  • ??//0100?0101?probe?requset/response;?????????0110-0111?reserved
  • ??//1000?Beacon; 1001?Announcement?traffic?indication?message(ATIM)
  • ??//1010?Disassociation?????????????????????????1011?Authentication
  • ??//1100?Deauthentication 1101-1111?Reserved
  • //unsigned?char?ToDS:1;
  • unsigned?char?FromDS:2;/*?來自DS*/
  • unsigned?char?MoreFrag:1;/*更多分段*/
  • unsigned?char?Retry:1;?/*重傳*/
  • unsigned?char?PwrMgt:1;/*電源管理*/
  • unsigned?char?MoreData:1;/*更多數據*/
  • unsigned?char?WEP:1;/*受保護幀*/
  • unsigned?char?Rsvd:1;/*順序*/
  • }frame_contrl,*pfram_contrl;
  • ? ? 地址對應表如下:

    ????DS是分布式系統(tǒng)的簡稱,我們用它以區(qū)分不同類型幀中關于地址的解析方式。

    ??? ? ? To DS=0,From DS=0:表示Station之間的AD Hoc類似的通信,或者控制偵、管理偵。

    ????????To DS=0,From DS=1:Station接收的偵。

    ????????To DS=1,From DS = 0:Station發(fā)送的偵。

    ????????To DS=1,From DS = 1:無線橋接器上的數據偵。

    ? ? ?各地址的解釋:

    ????????SRC:源地址(SA),和以太網中的一樣,就是發(fā)幀的最初地址,在以太網和wifi中幀格式轉換的時候,互相可以直接復制。

    ????????DST:目的地址(DA),和以太網中的一樣,就是最終接受數據幀的地址,在以太網和wifi中幀格式轉換的時候,互相可以直接復制。

    ????????TX:也就是Transmiter(TA),表示無線網絡中目前實際發(fā)送幀者的地址(可能是最初發(fā)幀的人,也可能是轉發(fā)時候的路由)。

    ????????RX:也就是Receiver(RA),表示無線網絡中,目前實際接收幀者的地址(可能是最終的接收者,也可能是接收幀以便轉發(fā)給接收者的ap)。

    ? ? 注:無線網絡中的Station想要通信,必須經過AP來進行轉發(fā)。其實,TxRx是無線網絡中的發(fā)和收,也就是Radio;而SrcDst是真正的發(fā)送源和接收者


    2 幀類型

    ? ? 幀類型由frame control的type兩位決定,目前有三種類型的幀:

    ? ??00,管理幀。IEEE80211_TYPE_MGMT 用于執(zhí)行管理操作,如關聯、身份驗證,掃描等。

    ? ??01,控制幀。IEEE80211_TYPE_CTL 通常與數據包相關。如:PS-poll包用于從AP緩沖區(qū)取回數據包;另一個例子,STA若想數據傳輸,首先會發(fā)送RTS的控制數據包,如果介質空閑,目標客戶端將發(fā)回一個名為允許發(fā)送(CTS)的控制數據包。

    ? ??10,數據幀。IEEE80211_TYPE_DATA 原始數據包。注:空數據包是特殊的數據幀,其用于電源管理。

    ? ??11,保留

    2.1 SubType

    2.1.1 管理幀 type 00

    ? ? 下表為管理幀的subType對應的類型(即type為00時,subType的取值)

    ????

    TypeSubTypeFrameType
    000000
    Association request (連接請求)
    00
    0001Association response (連接響應)
    00
    0010Reassociation request(重連接請求)
    00
    0011Reassociation response(重連接聯響應)
    00
    0100Probe request(探測請求)
    00
    0101Probe response(探測響應)
    00
    1000
    Beacon(信標,被動掃描時AP 發(fā)出,notify)
    00
    1001ATIM(通知傳輸指示消息)
    00
    1010Disassociation(解除連接,notify)
    00
    1011Authentication(身份驗證)
    00
    1100Deauthentication(解除認證,notify)
    00
    1101~1111
    Reserved(保留,未使用)


    2.1.1.1(Beacon(信標)幀) ?subtype 1000

    ?

    ? ? 抓包顯示的結果:

    ?

    ?

    ? ? 由于Beacon是廣播包,因此DA為FF:FF:FF:FF:FF:FF。

    ? ? 作用:向STA廣播AP的存在。也就是我們平時能夠搜到AP的原因,其包含了AP的相關信息。

    ?

    2.1.1.2?(Probe Request(探測請求)幀)?subtype 0100

    ????抓包顯示的結果:

    ? ? 作用:STA廣播發(fā)出,與AP建立關聯的必然步驟,后面會具體說明。

    2.1.1.3 (Probe Response(探測響應)幀)?subtype?0101


    ? ? 作用:STA請求探測幀后,AP的相對應的回應幀。

    ?

    2.1.1.4 (ATIM幀) ?subtype ?1001

    2.1.1.5 (Disassociation(解除關聯)與Deauthentication(解除認證)幀) subtype 1010

    2.1.1.6 (Association Request(關聯請求)幀)?subtype 0000

    2.1.1.7 (Reassociation Request(重新關聯請求)幀) subtype 0010

    ????????????????????????????????????????????? ??

    2.1.1.8 (Authentication(身份認證)幀) subtype 1011

    ?

    2.1.2 數據幀 type 10

    TypeSubtypeFrametype
    100000Data(數據)
    10
    0001Data+CF-ACK
    10
    0010Data+CF-Poll
    10
    0011Data+CF-ACK+CF-Poll
    10
    0100Null data(無數據:未傳送數據)
    10
    0101CF-ACK(未傳送數據)
    10
    0110CF-Poll(未傳送數據)
    10
    0111Data+CF-ACK+CF-Poll
    10
    1000Qos Data
    10
    1001Qos Data + CF-ACK
    10
    1010Qos Data + CF-Poll
    10
    1011Qos Data + CF-ACK+ CF-Poll
    10
    1100QoS Null(未傳送數據)
    10
    1101QoS CF-ACK(未傳送數據)
    10
    1110QoS CF-Poll(未傳送數據)
    10
    1111QoS CF-ACK+ CF-Poll(未傳送數據)
    ???

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    2.1.2.1 IBSS subtype ?(0000 Data,0100NULL)

    ?

    ?

    ?

    2.1.2.2 ?From AP ?subtype如圖所示

    ?

    2.1.2.3?To AP?

    2.1.2.4?WDS幀 subtype null

    ?

    2.1.3 控制幀 type 01

    ? ? 主要用于數據傳輸前的控制,相關過程請看4.0 RTS/CTS。

    ?

    TypeSubtypeFrametype
    011010Power Save(PS)- Poll(省電-輪詢)
    01
    1011RTS(請求發(fā)送,即:?Request To Send ,預約信道,幀長20字節(jié))
    01
    1100CTS(清除發(fā)送,即:Clear To Send ,同意預約,幀長14字節(jié))
    01
    1101ACK(確認)
    01
    1110CF-End(無競爭周期結束)
    01
    1111CF-End(無競爭周期結束)+CF-ACK(無競爭周期確認)

    2.1.3.1 RTS幀 subtype 1011

    ?

    2.1.3.2?CTS幀 ?subtype 1100

    ?

    ?

    2.1.3.3 ACK幀 subtype 1101

    2.1.3.4?PS-Poll幀 ?subtype ?1010


    ? ? 作用:當sta從省電模式中蘇醒,便發(fā)送一個PS-poll給基站。

    ?

    ?


    3. Radiotap Header(monitor信息)

    ? ? 在monitor模式時,內核在MAC幀前面提供額外的信息。稱為Radiotap Header,其包含的信息有MAC時間戳,SSI信號強度,頻道頻率等。

    ????對應的數據結構如下:

  • typedef?struct?_ieee80211_radiotap_header?{
  • u8?it_version; /*?Version?0.?Only?increases
  • ?*?for?drastic?changes,
  • ?*?introduction?of?compatible
  • ?*?new?fields?does?not?count.
  • ?*/
  • u8?it_pad;
  • __le16?it_len; /*?length?of?the?whole
  • ?*?header?in?bytes,?including
  • ?*?it_version,?it_pad,
  • ?*?it_len,?and?data?fields.
  • ?*/
  • __le32?it_present; /*?A?bitmap?telling?which
  • ?*?fields?are?present.?Set?bit?31
  • ?*?(0x80000000)?to?extend?the
  • ?*?bitmap?by?another?32?bits.
  • ?*?Additional?extensions?are?made
  • ?*?by?setting?bit?31.
  • ?*/
  • }ieee80211_radiotap_header,*pieee80211_radiotap_header;
  • ? ? 這里的it_len表明了radiotap_header的長度,按上面抓到的包,這里的值為26。

    ? ? 因此,在monitor模式得到的RAW包,我們首先要偏移it_len個字節(jié),以此得到MAC頭


    4.?RTS/CTS 幀 (數據發(fā)送原子性)

    ? ? 這兩個幀出現的原因是 無線收發(fā)器(STA)通常無法同時收發(fā)數據。使用這兩個幀可以讓STA處于收或發(fā)狀態(tài)。

    ? ? 這樣比較好理解,正是因為如此,當STA開始發(fā)送RTS,說明STA發(fā)數據;AP開始發(fā)送RTS,說明RTS接收數據。

    ????當其他STA收到RTS時,將延后數據包的發(fā)送。而具體延遲多久,由正在傳輸的MAC頭中的持續(xù)時間決定(Duration ID)。如:

    ????RTS(Request-to-Send):請求發(fā)送數據

    ????CTS(Clear-to-Send):清空傳送區(qū)域

    ? ? 兩個幀的過程如圖:

    ? ? ①為 STA ?②為AP?

    ????抓的兩個包來看下,下面是STA作為請求方

    ? ? 下面是STA作為接收方:

    ? ?上圖的223.252.199.6(00:36:76:54:b4:a2)是ap,172.21.11.2(a4:d1:d2:60:bb:0d)是STA,其Qos數據數據如下:

    ? ? RTS和CTS幀會延長幀傳輸過程,RTS,CTS,數據幀,以及ACK視為同一原子操作的一部分。

    ????用戶可以通過調整RTS閾值,來控制RTS/CTS交換過程。只要大于此閾值,RTS/CTS交換過程就會進行,小于該閾值就會直接傳送幀。

    ????對應的SOCK字段如下:

  • #define?SIOCSIWRTS 0x8B22 /*?set?RTS/CTS?threshold?(bytes)?*/
  • #define?SIOCGIWRTS 0x8B23 /*?get?RTS/CTS?threshold?(bytes)?*/
  • ????

    5. WIFI建立關聯過程

    ? ? 建立連接認證的過程主要由管理幀負責。

    序號SubType說明
    11000Beacon,STA接受AP信標幀,感知到AP,獲取SSID及AP參數
    20100STA主動發(fā)送Probe探測請求
    30101AP應答STA Prob Response
    41011STA發(fā)送Authentication請求認證
    5
    AP應答Authentication請求,指示STA認證成功或失敗
    60000STA發(fā)送Association請求
    70001AP應答Association Response

    ????以上是連接過程,當需要斷開連接時,STA發(fā)送Disassociation

    5.1 wifi攻擊原理

    ? ? 從連接的過程我們可以發(fā)現,我們可以采取強制斷開連接,使得STA重新進行連接。以此獲得認證數據包。

    ? ? 因此,可以利用Disassociation包或Deanthentication包實現。


    6. 加密算法

    ? ? 安全認證主要由802.11i規(guī)范。以下是幾種加密算法。具體的連接過程將在下篇中說明。

    ? ? 1)WEP,Wire Equivalent Private ??https://en.wikipedia.org/wiki/Wired_Equivalent_Privacy?

    ? ? 2)CCMP, CTR with CBC-MAC protocol 基于AES加密?https://en.wikipedia.org/wiki/CCMP

    ? ? 3)WPA , Wi-Fi Protected Access?https://en.wikipedia.org/wiki/WPA?

    ? ? 4)TKIP,Temporal Key Integrity Protocal?https://en.wikipedia.org/wiki/Temporal_Key_Integrity_Protocol?

    ? ? 5)WPA2 ,Wi-Fi Protected Access 2 ?https://en.wikipedia.org/wiki/Wi-Fi_Protected_Access

    ?

    ?


    ?

    ?

    ?

    ?

    本文參考《802.11無線網絡 權威指南》

    http://www.cnblogs.com/rainbowzc/p/5410876.html?

    http://blog.csdn.net/robertsong2004/article/details/42805803?

    http://blog.chinaunix.net/uid-9525959-id-3326047.html

    總結

    以上是生活随笔為你收集整理的802.11 MAC层帧解析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。