一.beacon幀主要結構
二.MAC header
1.Version:版本號,目前為止802.11只有一個版本,所以協議編號為0
2.Type:定義802.11幀類型,802.11幀分為管理幀(00),控制幀(01),數據幀(10)
3.Subtype:定義幀的子類型,如管理幀中又分為很多類型的幀:具體見附表一
4. Frame Control Flags幀控制字段
注意:這部分在omnipeek中解析出來的順序與實際幀中的排序不同,實際中應該是上圖中從下至上排列的,我們這里暫時按照omnipeek的來解釋
(1).Order(排序字段):長度為1比特。當在一個non-QoS數據幀中置為1時,表示該數據幀采用strictly ordered service class 傳輸一個MSDU或其片段
(2).受保護幀字段:長度為1比特。置為1時,表示幀體字段(Frame Body Field)字段已經被加密封裝算法所加密。且該字段只有在數據幀以及“認證”管理幀中被置為1
(3).更多數據字段:長度為1比特。只有在當數據類型幀直接從一個CF-Pollable站點發送到響應一個CF-Poll的pc,該字段才會被置為1表示該STA只有有一個額外的緩沖MSDU用於響應隨后的CF-Poll傳輸。就是用於省電模式下的字段。一般其他幀置為0.
(4).功耗管理字段:1比特。該字段用於表示STA的功率管理模式。置為1表示運行為PS模式,0表示STA運行為active模式。在AP傳輸的幀中,該字段被一般設為0
(5).重試字段:1比特。該字段用於表示在任何一個幀重傳的數據或管理幀中被設為1,對與其他幀設置為0。接受STA使用該字段來消除重復的幀。
(6).更多分段字段:1比特。該字段在所有當前MSDU, MPDU后以及分片的數據或管理幀中被設置為1。而含有完整MSDU,MPDU以及含有一個MSDU或A-MSDU的最后一分片的MPDU中被設置為0.
(7).from DS字段:置為1表示該幀是DS(分布式系統)向BSS發送的幀
(8).to DS字段:置為1表明該幀是BSS向DS發送的幀
5. Duration字段:16比特。根據不同的幀類型和子類型,幀是否在競爭自由期(CFP)內傳輸,以及發送STA的QOS功能,該字段的內容也不相同。beacon幀中一般置為0
6. Destination:目的地址
7. Sourse:源地址
8. BSSID:基本服務集標識,長度為48比特。該字段唯一確定每一個BSS。在一個基礎結構的BSS中,該字段為目前BSS的AP中的STA使用的mac地址。
9. Sequence number:序列號字段,長度為12比特。用以表示A-MSDU或MPDU的序列號
10. Fragment number:分段號字段,4比特。表示一個MSDU或MPDU的每個分段的標號。分段號在MSDU或M-MPDU的第一個或唯一的分段中設置為0.
三.802.11 Management – Beacon
一個802.11ac協議的beacon幀主體部分含有以下的內容,之所以選擇最新的ac的幀(左圖)和n2.4g的幀(右圖),因為ac和n也是在b g n a基礎上擴加的,所以ac幀里也包含以前協議的內容,為了方便學習,我也會在介紹各個部分的時候講清這個部分最早是出現在哪個協議中的。
左圖ac右圖n2.4g
1. Timestamp(時戳)位:8比特,可用來同步BSS 中的工作站BSS 的主計時器會定期發送目前已作用的微秒數。當計數器到達最大值時,便會從頭開始計數。(對一個長度64bit、可計數超過580,000 年的計數器而言,很難會遇到有從頭開始計數的一天。
2. Beacon Interval: 2比特。AP每隔一段時間就會發出一個Beacon(信標)信號用來宣布802.11網絡的存在。此字段用來設定Beacon信號之間相隔多少時間單位。時間單位通常縮寫為TU,代表1024微秒(microsecond),相當於1毫秒(millisecond)。Beacon通常會被設定為100個時間單位,相當於每100毫秒,也就是0.1秒傳送一次Beacon信號。
3. Capability Info:長度 16個bit的Capability Information 性能信息位,發送Beacon信號的時候,它被用來通知各方,該網絡具備哪種性能。Capability information 位也可以使用在 Probe Request 與Probe Response 幀。在本位中,每個 bit各自代表一個旗標,對應到網絡所具備的某種特殊功能。工作站會使用這些公告數據來判斷自己是否支持該 BSS 所有的功能。沒有實現性能公告中所有功能的工作站,就無法加入該 BSS 。
DSSS-OFDM:此bit若設定為 1,代表使用 802.11g 的DSSS-OFDM 幀構建(frame construction)選項。
Short Slot Time :此bit若設定為 1,代表使用 802.11所支持的較短的時槽
short Preamble (短同步信號):802.11b 規格新增此位的目的,是為了支持高速直接序列擴頻物理層( high-rate DSSS PHY)。將之設定為 1,代表此網絡目前使用短同步信號(short preamble ),0 代表不使用此選項,並且在該 BSS 中禁止使用短同步信號。802.11g 規定使用短同步信號,因此在依循 802.11g 標准所建置的網絡中,此位必然設定為 1 。
4. SSID:該字段出現Beacon, probe requests, probe responses,association request & re-association requests. 幀中。Element ID為0則為ssid。SSID的長度介於0至32字節之間
5. Supported Rates:該字段出現在 Beacons, Probe Req, Probe Res, Association Req, Association Res, Reassociation Req and Reassociation Response.幀中。是802.11網絡可以使用 Supported Rates(所支持的凍率)信息元素指定其所支持的速率。當移動工作站試圖加入網絡,會先檢視該網絡所使用的數據速率。有些速率是強制性的,每部工作站都必須支持,有些則是選擇性的。每個速率用七個低效bit來代表,最高效 bit則是用來表示該數據速率是否為強制性。如果是強制性速率,最高效 bit為1 ;非強制性速率則為 0 。
802.11a中是 6.9.12.18.24.36.48.54Mbps;
802.11b中是 1.2.5.5.11Mbps
802.11g中是 1.2.5.5.11. 6.9.12.18Mbps
802.11n 2.4g是1.2.5.5.11. 6.9.12.18Mbps;5G是:6.9.12.18.24.36.48.54Mbps;
802.11ac是6.9.12.18.24.36.48.54Mbps;
6. DSPS(Direct Sequence Parameter Set):直接序列參數集合。802.11直接序列(Direct-sequence)網絡只有一個參數:網絡所使用的信道數。
7. TIM(Traffic Indication Map)數據待傳信息:基站會為處於休睡狀態的工作站暫存幀。每隔一段時間基站就會嘗試傳遞這些暫存幀給休眠中的工作站。如此安排的理由是,啟動發送器比啟動接收器所耗費的電力還要多。802.11的設計者預見未來將會有以電池供電的移動工作站;定期發送暫存幀給工作站的這個決定,主要是為了延長設備的電池使用時間。將 TIM(數據待傳指示信息)信息元素送到網絡上,指示有哪些工作站需要接收待傳數據,只是此過程的一部分。
DTIM Count(DTIM計數):此位的長度為一個字節,代表下一個DTIM(數據待傳指示傳遞信息)幀發送前,即將發送的Beacon幀數。DTIM幀用來表示所暫存的廣播與組播幀即將被發送。並非所有Beacon幀均為 DTIM幀。
DTIM Period(DTIM期閑):此位的長度為一個字節,代表兩個DTIM幀之間的 Beacon interval數。0 值目前保留未用。DTIM會由此期間倒數至0。
Bitmap Control(bit對映控制)與 Partial Virtual Bitmap(部分虛擬bit對映)
8. Country(國家)802. 11 規格書原本是針對主要工業化國家現有的管制規定所設計。為了避免每新增一個國家就得重新修訂規格,因此在規格書中加入新的規定,讓網絡能夠提供管制規范給新加入的工作站。這一機制的核心,就是 Country 信息元素
Country String(國家字串,三個字節) :由三個字符所構成的 ASCII 字串,代表工作站的使用國家。前兩個字符即 ISO 國碼(例如US代表美國)。有些國家對室內與室外有不同的管制規定,第三個字符即是用來區別兩者。如果室內外的管制規定相同,第三個字符則為空白。如果只想指定室內或室外管制規定,可以分別將第三個字符設為I或O。
First Channel Number (第一信道編號,一個字節):第一信道編號即是符合功率限制的最低信道。
Number of Channels(信道數,一個字節):符合功率限制的頻段大小,是由信道數來指定。
Maximum Transmit Power(最大傳輸功率,一個字節):最大傳輸功率,以dBm為單位。
注意:5g與2.4g由於PHY層的不同,所以這個字段里表示的也不同,此處我截得是2.4g的圖,5g的表示的信道比較多,可以自己抓包看
9. ERP擴展物理層:802.11g 定義了擴展速率物理層(extended rate PHY,簡稱ERP)。為了兼容早期產品,另外定義了ERP信息元素。所以這個字段只會在802.11g 802.11n(2.4g)里才會有,同理下面Extended Supported Rates也是只有這兩個才會有
Non-ERP present (無 ERP信息) 當比較老舊、非802.11g 的工作站與網絡連接,就會設定此 bit。如果監測到相鄰網絡無法使用 802.11g,也會設定此bit。
Use Protection(使用防護機制) 當網絡中出現無法以802.11g 數據速率運作的工作站,此防護 bit就會被設定為1 。如此一來就可以兼容比較老舊的工作站
Barker Preamble Mode(Barker 同步信號模式)
10. Extended Supported Rates(擴展支持速率):主要在802.11g與802.11n(2.4g)中,速率有24.36.48.54
11. Element ID =70為未來保留;未使用(Reserved; unused)
12. HT Capability Info:高吞吐量功能信息:802.11n的mac層給802.11的mac層加入了高吞吐量單元。所有新加的802.11n功能都是通過管理幀中的HT單元才得以實現
13. HT Operation info:高吞吐量操作信息,主要表示一些802.11n的信息
14. Overlapping BSS Scan Parameters(重疊BSS掃描參數):是當BSS(基本服務集)中的AP使用重疊BSS掃描參數參數來指示BSS成員在執行OBSS掃描操作時使用的值。這部分只在802.11n與ac 20MHz帶寬時才會出現,與20MHZ/40MHZ信道共存有關。
15. Extended Capabilities(擴展功能)
16. VHT Capabilities:802.11ac中加入的字段,用於管理ac的功能。並且在802.11n開啟turbo qam后也會有這個字段
17. VHT Operation:802.11ac中操作信息
18. VHT Transmit Power Envelope:發射功率包絡,只有在802.11ac才有。使AP能夠限制每個可用信道帶寬傳送發射功率。就是設置限制20或40或80MHz等帶寬的發射功率
19. WMM:Wi-Fi多媒體,WMM是一種無線QoS協議,是802.11e協議的一個子集。用於保證高優先級的報文有優先的發送權利,從而保證語音、視頻等應用在無線網絡中有更好的質量。
20. Vendor Specific 特定供應商:這個字段與下一個WPS字段為同一個Element ID,所以這兩個字段同屬於WPS功能字段,跟WPS(WSC)有關。而omnipeek的解析出來的報文可能有顯示錯誤。可以嘗試wireshark解析。有關的協議為802.11u。這個是廠商自定的OUI
22. WPS:當路由上開啟WPS功能時,會在beacon幀中宣告這個字段
21. Mobility Domain information:支持802.11r的AP,如果開啟802.11r,則在beacon幀中會包含MDIE(Mobility domain)。其中MD ID(圖中Identifier)用於表示移動域,具有相同MD ID的AP才能夠進行漫游;FT Capability字段Fast BSS Transition over DS位表示快速漫游的類型,置1為over_the_DS,置0為over_the_Air
22. RSN(固安網絡):用於指示站點的認證密碼,加密密碼和其他RSN能力的RSN信息元素。
前部分是密碼鎖集合選項(cipher suite selector) 長度為四個字節,由廠商的 OUl (Group cipher OUI)以及代表密碼鎖的編號(Group cipher type)所組成。802.11i所使用的 OUI 為00-OF-AC,為 802.11工作小組所擁有。Group cipher type=2 為TKIP,Group cipher type=4 為CCMP
Pairwgse Cipher Suites (count+list) 〔成對密碼鎖集合(計數+列表)〕
Authentication and Key Management (AKM) suites (count +list) 〔身份認證與密鑰管理集合(計數+列表)〕開啟漫游后有兩個OUI
RSN Capabilities(RSN性能) 此位的長度為兩個字節用來描述發送端的能力,其后的 bit保留未用,必須設定為 0。其中比較主要的就是Pre-authentication(事先身份認證) 基站可以設定此bit,代表它可以和網絡中其他基站進行事先身份認證,以便安全地轉移連接事宜。否則,此 bit會被設定為 0 。