無線報文的簡單分析

 

 

 

                                                      無線報文的簡單分析

                              作者:楊孝衛
摘要:
     本文檔在《無線關聯的交互過程》基礎上做簡單的報文分析。瞭解無線關聯過程中的一些相關報文分析。
關鍵字:ClientAP


 

802.11幀分爲三個部分:幀頭(Mac header)、幀實體(body)、FCS域。分爲MAC header、Frame Body和FCS。MAC header由4個字段構成,分別爲:Frame Control、Duration ID、Address、Seq ctl。一般情況是Address僅只有目的地址、源地址和BSSID。
一、Frame Control(幀控制)
所有幀的開頭均是長爲兩個字節的Frame Control(幀控制)字段,Frame Control字段包括以下子字段:Protocol、Type、Subtype、To DS、From DS、More fragments、More fragments、Retry、Power management、More data、Protected Frame。
下面分別來介紹每個字段:
 

Protocol字段
Protocol(協議版本)字段由兩位構成,用顯示該幀所使用的MAC版本。目前802.11 MAC只有一個版本,它的協議編號爲0。
 

 

 

TypeSubtype字段
Type(類型)與Subtype(子類型)字段用來指定使用的幀類型。爲了提升可靠性,802.11 MAC內置了一些管理功能。如RTS/CTS操作與ACK(確認,acknowledgment)。802.11無線局域網的封包分爲三種:管理幀、控制幀和數據幀。
Type與Subtype字段的值與名稱:

Management frame(管理幀:Type=00)a
0000
Association request(關聯請求)
0001
Association response(關聯響應)
0010
Reassociation request(重新關聯請求)
0011
Reassociation response(重新關聯響應)
0100
Probe request(探測請求)
0101
Probe response(探測響應)
1000
Beacon(信標)
1001
ATIM(通知傳輸指示消息)
1010
Disassociation(取消關聯)
1011
Authentication(身份驗證)
1100
Deauthentication(解除身份驗證)
1101~1111
Reserved(保留,未使用)
Control frame(控制幀:Type=01)b
1010
Power Save(PS)- Poll(省電-輪詢)
1011
RTS(請求發送)
1100
CTS(清除發送)
1101
ACK(確認)
1110
CF-End(無競爭週期結束)
1111
CF-End(無競爭週期結束)+CF-ACK(無競爭週期確認)
Data frame(數據幀:Type=10)c
0000
Data(數據)
0001
Data+CF-ACK
0010
Data+CF-Poll
0011
Data+CF-ACK+CF-Poll
0100
Null data(無數據:未傳送數據)
0101
CF-ACK(未傳送數據)
0110
CF-Poll(未傳送數據)
0111
Data+CF-ACK+CF-Poll
1000
Qos Data c
1000~1111
Reserved(保留,未使用)
1001
Qos Data + CF-ACK c
1010
Qos Data + CF-Poll c
1011
Qos Data + CF-ACK+ CF-Poll  c
1100
QoS Null(未傳送數據)c
1101
QoS CF-ACK(未傳送數據)c
1110
QoS CF-Poll(未傳送數據)c
1111
QoS CF-ACK+ CF-Poll(未傳送數據)c
注:
a: 管理幀的Subtype值0110~0111與1101~1111目前並未使用。
b:控制幀的Subtype值0000~1001目前並未使用。
實例如下:
To DSFrom DS
這兩個位用來指示幀的目的地是否爲分佈式系統(distribution system)。在基礎結構型網絡裏,每個幀都會設定其中一個DS位。
To DS與From DS位所代表的意義

 
To DS=0
To DS=1
From DS=0
所有管理與控制幀。IBSS裏的數據幀(非基礎結構型數據幀)
基礎結構型網絡裏無線工作站所傳送的數據幀
From DS=1
基礎結構型網絡裏無線工作站所收到的數據幀
無線橋接器上的數據幀
實例如下:
 

 

 

 

 

More fragments
此位的功能類似IP的“more fragments“位。若較上層的封包經過MAC分段處理,除了最後一個片段,其他片段均會將此位設定爲1。大型的數據幀以及某些管理幀可能需要加以分段,除此之外的其他幀則會將此位設定爲0。
Retry
有時候可能需要重傳幀。任何重傳的幀會將此位設定爲1以協助接收端剔除重複的幀。
Power management
此位用來指出發送端在完成當前的原子幀交換之後是否進入省電(power-save)模式,1代表工作站即時入省電模式,而0則代表工作站會一直保持在清醒狀態。
More data
爲了服務處於省電模式中的工作站,接入點會將這些從分佈式系統接收來的幀加以緩存。接入點如果設定此位,即代表至少有一個幀等待給休眠中的工作站。
Protected Frame
相對於固定式網絡,無線傳送本質上就比較容易被攔截。如果幀受到鏈路層安全協議的保護,則此位會被設定爲1,而且該幀會略有不同。之前的Protected Frame位被稱爲WEP位。
Order
幀與幀片段可依次傳送,不過發送端與接收端的MAC必須付出額外的代價。一旦進行嚴格依序(strict ordering)傳送,則此位會被設定爲1,否則這個位必然爲0。
下圖爲以上的對所列出的控制幀對應的位:
 

Duration/ID(持續時間)
指一個原子操作的一個過程所需的時間,單位爲微秒。RTS幀會試圖預約媒介使用權,供幀交換過程使用,因此RTS幀傳送者必須計算RTS幀結束後還需要多少時間用於幀交換。在下圖交互過程中,總共需要3個SIFS週期、1個CTS持續時間、最後的ACK加上傳送第一個幀或幀片段所需要的時間。其單位爲微秒。
 

 

 

Address字段
     一個802.11幀最多包含4個地址(Address)字段。因隨着幀類型的不同,這些字段的作用也有所差異。Address 1代表接收端,Address 2代表發送端,Address 3代表被接收端拿 來過濾的地址。地址本身的長度有48位。如果傳送給實際媒介的第一個位爲0,則該地址爲單播(unicast),如果第一位爲1,則該地址爲組播(multicast),如果所有的位均爲1,則該地址爲廣播(broadcast)。
二、管理幀的結構
802.11管理幀的基本結構如下圖所示(圖3),所有管理幀的MAC標頭都一樣,與幀的子類型無關。管理幀會使用信息元素(帶有數字卷標的數據塊)來與其它系統交換信息。
 

Frame Control前面已經講過
計算持續時間
管理幀使用Duration(持續時間)字段的方式。
(1)           無競爭週期內所傳送的任何幀均會將持續時間設爲32768。
(2)           基於競爭的訪問週期內利用DCF所傳送的幀會通過Duration字段防止別人訪問媒介,以確保原子幀交換(atomic frame exchanges)得以完成。
a、 如果是廣播或組播幀(目的地址爲組地址),則持續時間會設定爲0。廣播與組播幀無需得到確認,因此NAV無需防止別人訪問媒介。
b、 如果不是最終片段,則持續時間會設爲3個SIFS加上下一個片段及其確認所需要的微秒數。
c、 最終幀片段的持續時間會設定爲一個響應加上一個SIFS所需要的時間。
幀主體
管理幀十分靈活。幀主體(frame body)中的大部分數據如果使用長度固定的字段,就稱爲固定字段(fixed field);如果字段長度不定,就稱爲信息元素(information element)。所謂信息元素,是指長度不定的數據塊(data block)。每個數據塊均會標註類型編號和大小,各信息元素的數據字段元素都有特定的解釋方式。
長度固定的管理幀組件
在管理幀中,可能出現的長度固定的字段有10種。長度固定的字段一般簡稱爲字段(field),以便與長度不定的信息元素有所區別。字段本身並無標頭可與幀主體的其它部分進行區別。因爲長充與次序固定,所以不需要以字段元標頭來界定。
Authentication Algorithm Number字段
Authentication Algorithm Number(身份驗證算法編號)字段佔用了2個字節,此字段代表關聯發生之前,802.11層(802.11-level)的最初認證過程所使用的認證類型。此字段容許的值範圍如下表。目前只定義了兩種值,其它保留給未來版本使用。

意義
0
開放系統身份驗證(Open System authentication)
1
共享密鑰身份驗證(Shared Key authentication)
2~65535
保留
 

如上圖所知,Authentication Algorithm的值爲0爲Open System。
Authentication Transacition Sequence Number字段
身份驗證過程分好幾個步驟,其中包含接入點所發出來的質詢(challenge)以及試圖關聯的移動式工作站所做出的響應。此字段由兩個字節構成,用以追蹤身份驗證的進度。此字段值介於1到65535之間,其值不可爲0。在Shared key中1表示請求,2表示響應,3表示再請求,4表示響應。
Beacon interval字段
每隔一段時間就會發出一個Beacon(信標)信號用來宣佈802.11網絡的存在。Beacon幀中除了包含BSS參數的信息,也包含接入點緩存幀的信息,因此移動式工作站要仔細聆聽Beacon信號。此幀長度爲16位,用來設定Beacon信號之間相隔多少時間單位。時間單位通常縮寫爲TU,代表1024微秒(microsecond),相當於1毫秒(millisecond)。Beacon通常會被設定爲100個時間單位,相當於每100毫秒,也就是0.1秒傳送一次Beacon信號。
Capability Information字段
長度爲16位的Capability Information(性能信息)字段,傳送Beacon信號的時候,它被用來通告網絡具備何種性能。此字段應用於Beacon幀、Probe Response幀和Association幀。
ESS/IBSS(擴展服務集/獨立基本服務集)
協調者所傳送的 Beacon 幀及 Probe Response 幀中,ESS = 1, IBSS = 0。屬於 IBSS 的工作站所傳送的 Beacon 幀及Probe Response 幀中,ESS = 0, IBSS = 1。工作站爲了偵測 ESSs 而傳送的 Probe 幀中,ESS =1。工作站爲了偵測 IBSSs 而傳送的 Probe 幀中,IBSS =1。工作站如果想同時偵測所有存在的ESSs及IBSSs, 則可同時設定ESS =1, IBSS=1。
Privacy(保密性)
如果Privacy位設定爲1,代表需要使用WEP以維持機密性。
Short Preamble(短前導碼)
802.11b規範新增此字段是爲了支持高速直接序列擴頻物理層(high-rate DSSS PHY)。將之設定爲1,代表此網絡目前使用短前導碼(short preamble),0代表不使用此項。
PBCC(封包二進制迴旋碼)
802.11b規範新增此字段是爲了支持高速直接序列擴頻物理層(high-rate DSSS PHY)。將之設置爲1代表目前使用封包二進制迴旋碼(packet binary convolution coding)調製機制。0代表不使用此項。
Channel Agility(機動信道轉換)
802.11b規範新增此字段是爲了支持高速直接序列擴頻物理層(high-rate DSSS PHY)。將之設置爲1,代表此網絡使用機動信道轉換(Channel Agility)選項。0代表不使用此項。
 

Short Slot Time (802.11g)
   此位若設定爲1,代表使用802.11所支持的較短時隙。
Listen interval(聆聽間隔)字段
此字段存在於Association Request幀中。此字段是表示該工作站每隔多少個Beacon間隔會醒來一次。工作站休眠時間越多,AP暫存的資料量越大,反之亦然,如果休眠時間越長還會錯失AP所發出的廣播信息。如下圖所示:
 

Association ID(關聯標識符)字段
  該字段存在於Association Response幀中。該字段長度爲16位。
 

Reason Code(原因代碼)字段
該字段存在於Deauthentication(解除身份驗證)或Disassociation(取消關聯)幀作爲響應。其字段長度爲16位。該字段表示爲對方的做法有誤。如圖所示:

 

三、實例報文分析
1、AP與站點都配置爲WPA的情況下:
a、 首先查看AP發出的Beacon幀中,Privacy字段值爲1表示爲啓用加密,則說明AP爲加密模式。再查看Authentication幀中的Authentication Algorithm字段的值爲Open System,則說明並非Shared加密模式,而是Open加密或WPA加密。
b、 查看站點向AP發起的Association Request幀中的Privacy字段,此字段的值爲1則表示啓用加密(說明AP與站點的加密方式一致)。如下圖所示:
 
c、查看Vendor Specific字段中的值爲WPA,unicast cipher suite: TKIP , auth key management suite 1:PSK等。再查看EAPOL Key幀的交互(六個EAPOL Key)。
2、             AP與站點都配置爲shared key
a、 與上面一樣,首先查看Beacon幀中的privacy字段,再查看Authentication幀中的Authentication Algorithm字段的值爲shared key。
b、 查看四個Authentication幀,第一個爲認證請求幀,第二個幀中,會有一個challenge text字段。第三個幀中,會有一個WEP parameters字段,第四個字段爲交互成功的幀。查看Authentication SEQ字段,根據其值便知在哪一個交互中,如果值爲4則表示爲Authentication Success。如下圖所示:
 

 

  
3、             AP配置爲none模式,站點配置爲sharedkey模式:
a、 與上面一樣,首先查看Beacon幀中的privacy字段,其值應爲0,再查看Authentication幀中的Authentication Algorithm字段的值爲shared key,再查看;Status code。由此看出AP與站點的配置不一致。
 
b、 查看四個Authentication幀,第一個爲認證請求幀,第二個幀主體狀態碼提示出錯信息。如下圖所示:表示AP與站點的認證不一致。
以上內容對我們分析AP與站點連接時出現異常時非常有用,分析在哪裏出現問題了。
 

 

 

參考文檔:《802.11 無線網絡》
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章