802.11 WLAN 定義了三種類型的幀格式,他們分別是:管理幀(Management Frame)、控制幀(Control Frame)和數據幀(Data Frame)。幀頭部中的類型字段中會標識出該幀屬於哪一個字段。這篇博文僅僅介紹管理幀, 後面接下來會繼續介紹控制幀和數據幀。sass
正如上圖所示,在802.11幀格式中,前兩個字節爲Frame Control字段,其中前兩位爲協議版本,由於802.11協議簇目前只有一個版本,因此這兩位一直爲00,接下來兩位爲幀類型,目前有三個值,分別是:00,表示管理幀;01,表示控制幀,和10,表示數據幀。
網絡
在接下來的四個比特,是子類型標識位,下面咱們逐一來介紹管理幀的子類型:ide
0000,Association request:關聯請求幀
認證成功後,STA就會進入關聯階段, 這個交互的目的是爲了加入這個BSS 並獲取一個AID。經過Association Request攜帶的信息,使AP瞭解STA的相關能力信息,這樣 AP就能夠決定如何與該STA進行通訊
3d
0001,Association response:關聯請求回覆幀
當AP收到Association Request後,它會檢查每個802.11參數,並與本身 支持的802.11參數進行匹配,若是出現不匹配的狀況,AP會看當前的差別 是否屬於Bloocking Factor。 若是是的話,AP就會拒絕關聯,不然的話, AP就會標記這個差別,並在回Association Response的時候攜帶本身的 802.11參數。
AP返回一個狀態碼,0表明關聯成功。 併爲STA分配一個AID,它是1~2007(2 字節長,只用到最低的14個Bit,其餘位爲1.)
orm
0010,Reassociation request:再關聯請求幀
該幀只能由STA 發出。 使用場景主要是: 當STA已經關聯到一個ESS並想關 聯到同一個ESS下的另外一個AP上。 也可用於: 當STA短暫離開當前關聯的AP 後,從新關聯此AP。 也可用於:當Authenticator timer過時後,STA 進行認證和從新關聯。已經關聯上某個AP的STA也能夠經過此幀從新協商一 些參數。
blog
0011,Reassociation response:再關聯請求回覆幀
AP使用此幀迴應STA發出的在關聯請求。其格式與Association Response相似。
ci
0100,Probe request:探測請求幀
主要用於主動掃描,查找AP信息。STA也能夠利用Probe Request來發現某個網絡特定的信息。 爲了支持這個 目的,Probe Request能夠包含一個可選的 Request Information信息, 它們能夠 請求一個或多個額外的參數。另外, Probe Request也能夠攜帶一些廠商自定 義的IE信息。
get
0101,Probe response:探測請求回覆幀
主要用於主動掃描,AP回覆特定的查找AP信息請求。其幀內容等同於beacon frame, 只是不包含TIM字段和QoS字段。若是Probe request中包含Request Information 信息,則此幀應包含相應的Request Information 信息。
it
1000,Beacon:信標幀
AP以某個固定的時間間隔發送Beacon幀,並通知下一個Beacon幀發送的時間。 若是當前媒介忙碌,會推遲當前Beacon幀的發送,可是不會影響下一個 Beacon幀的發送,下一個Beacon幀仍然會按照預約的時間進行發送。
beacon幀包含全部AP的屬性,以備STA在關聯以前查驗自身是否符合其要求。
1001,Announcement traffic indication message (ATIM):
此幀只適用於IBSS網絡,用於通知處於power save模式下的其餘STA是否應該轉換睡眠模式到激活狀態來接收緩衝的數據。
1010,Disassociation:解關聯幀:
該幀多是單播幀,也多是多播幀。處於Disassociated狀態的STA仍然是處於Authenticated狀態,它們能夠直接 進行從新關聯。
1011,Authentication:認證幀:
在全部網絡中,STA想要加入某一特定的網絡以前,必須事先完成認證。不一樣於關聯請求和回覆,認證過程只使用一種格式的認證幀。
1100,Deauthentication:解認證幀:
當雙方通訊完成,會發送此幀結束會話。 該幀的格式與Disassociation相似。
1110,Action no ack:
就是不須要ack的Action幀。
管理幀一般標準MAC頭部的大小爲24字節,擁有三個地址域。管理幀老是是MAC層處理,它們不會被傳遞給上層(for app),另外,它們 的To DS和From DS的值老是爲0.