• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Ay's Blog@CNSSUESTC

            [導入]Wireless Fundamental(2) -- 802.11 MAC頭格式解析(updating)

             

            作者:__ay 

             


            在上一篇中,簡要概述了無線網絡的通信機制,那么在下來就得開始介紹一下無線網絡的通信細節(jié)了。說到這里,以后所說的內容會有《802.11 無線網絡權威指南 第二版影印版》這本書內容的影子,還有內容中會加上通過wireshark抓包的分析以及IEEE關于wlan 80211協(xié)議的說明文檔。雖然說這本書雖然講得好,但是很多數(shù)據(jù)包細節(jié)上的問題還是需要我們親手去做實驗去驗證的,一向認為學習不能僅僅看書,親手去驗證一些你認為疑惑的地方可能會比做幾道課后題的效果要好得多得多 ^_^


            1 MAC802.11數(shù)據(jù)幀格式

            首先要說明的是mac802.11的幀格式很特別,它與TCP/IP這一類協(xié)議不同,它的長度是可變的。不同功能的數(shù)據(jù)幀長度會不一樣。這一特性說明mac802.11數(shù)據(jù)幀顯得更加靈活,然而,也會更加復雜。mac 802.11的數(shù)據(jù)幀長度不定主要是由于以下幾點決定的


            1.1 mac地址數(shù)目不定,根據(jù)幀類型不同,mac 802.11的mac地址數(shù)會不一樣。比如說 ACK幀僅有一個mac地址,而數(shù)據(jù)幀有3個mac地址,在WDS模式(下面要提到)下,幀頭竟然有4個mac地址。


            1.2 802.11的管理幀所攜帶的信息長度不定,在管理幀中,不僅僅只有一些類似于mac地址,分片標志之類的這些信息,而且另外還會包括一些其它的信息,這些信息有關于安全設置的,有關于物理通信的,比如說我們的SSID名稱就是通過管理幀獲得的。AP會根據(jù)不同的情況發(fā)送包含有不同信息的管理幀。管理幀的細節(jié)問題我們會在后面的文章中討論,這里暫時跳過。


            1.3 加密(wep,wpa等)信息,QOS(quality of service)信息,若有加密的數(shù)據(jù)幀格式和沒有加密的數(shù)據(jù)幀格式還不一樣,加密數(shù)據(jù)幀格式還多了個加密頭,用于解密用。然則QOS也是同樣道理。


            竟然mac 802.11數(shù)據(jù)幀那么復雜,我們就先從通用的格式開始說吧



            幀控制(2 bytes):

            用于指示數(shù)據(jù)幀的類型,是否分片等等信息,說白了,這個字段就是記錄了mac 802.11的屬性。

                *Protocol version:表明版本類型,現(xiàn)在所有幀里面這個字段都是0x00

                *Type:指明數(shù)據(jù)幀類型,是管理幀,數(shù)據(jù)幀還是控制幀

                *Subtype:指明數(shù)據(jù)幀的子類型,因為就算是控制幀,控制幀還分RTS幀,CTS幀,ACK幀等等,通過這個域判斷出該數(shù)據(jù)幀的具體類型

                *To DS/From DS:這兩個數(shù)據(jù)幀表明數(shù)據(jù)包的發(fā)送方向,分四種可能情況討論

                    **若數(shù)據(jù)包To DS為0,F(xiàn)rom DS為0,表明該數(shù)據(jù)包在網絡主機間傳輸

             

                    **若數(shù)據(jù)包To DS為0,F(xiàn)rom DS為1,表明該數(shù)據(jù)幀來自AP

                    **若數(shù)據(jù)包To DS為1,F(xiàn)rom DS為0,表明該數(shù)據(jù)幀發(fā)送往AP

                    **若數(shù)據(jù)包To DS為1,F(xiàn)rom DS為1,表明該數(shù)據(jù)幀是從AP發(fā)送自AP的,也就是說這個是個WDS(Wireless Distribution System)數(shù)據(jù)幀,至于什么是WDS,可以參考下這里的介紹 #傳送門

                *Moreflag:分片標志,若數(shù)據(jù)幀被分片了,那么這個標志為1,否則為0

                *Retry:表明是否是重發(fā)的幀,若是為1,不是為0

                *PowerManage:當網絡主機處于省電模式時,該標志為1,否則為0.

                *Moredata:當AP緩存了處于省電模式下的網絡主機的數(shù)據(jù)包時,AP給該省電模式下的網絡主機的數(shù)據(jù)幀中該位為1,否則為0

                *Wep:加密標志,若為1表示數(shù)據(jù)內容加密,否則為0

                *Order 這個表示用于PCF模式下,這里不予討論


            生存周期/Associate ID (2 bytes):

            先前不是講過虛擬載波監(jiān)聽的一個機制么,他的Network Allocation Vector(NAV)就存在這里,這里叫duration,即生存周期。當然不是所有時候這個字段存放的NAV值。在特定類型數(shù)據(jù)幀中,它也可能表示Associate ID。一旦有主機關聯(lián)到AP了,AP都會為主機分配一個Associate ID。比如在網絡主機通知AP自己要進入省電模式(power saving)的時候,網絡主機發(fā)給AP的通知數(shù)據(jù)幀里面,這個域就表示的是Associate ID而不是NAV了。當然還可以通過最高位來判斷這個域的含義:

                *在15bit為0的時候,該域表示duration

                *在15bit為1,14bit為1的時候,表示Associate ID。


            序列控制(2 bytes:4 bits/12 bits):這個域分2部分,一個是分片序列號和標識幀列號。分片序列號就是記錄分片序號的。比如一個幀A被分片成a1,a2,a3,那么a1,a2,a3這三個分片幀的分片序列分別是0,1,2。這個和IP分段原理一樣的,該域占4個比特位。剩下的12個比特位就用于標識幀的序號,這個跟IP頭里面的序列號一樣。


            MAC地址 1-4 

            這四個地址在不同幀中有不同含義。這些以后會討論。

            以后我們可能會碰到以下類型的mac地址

            RA(receiver address):無線網絡中,該數(shù)據(jù)幀的接收者

            TA(transmitter address):無線網絡中,該數(shù)據(jù)幀的發(fā)送者

            BSSID(Basic Service Set ID):在infrastructure BBS中,BSSID就是AP的mac地址。但是在IBBS中,它是一個隨機即生成的46位二進制序列,還有最高兩位分別是Universal/Local標志位和Individual/Group標志位。IBBS的BSSID中,Universal/Local標志位為1,表示本地MAC,Individual/Group標志位為0,表示是個人MAC。也就是說在IBBS中,BSSID地址應該類如 10xxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx(x表示隨機數(shù)要么0要么1, 2進制表示

            DA(destine address):該幀的目的mac地址

            SA(source address):該幀的源mac地址

            這里的DA和SA含義和普通以太網中的含義一樣,在無線網絡中可能我們需要通過AP把數(shù)據(jù)發(fā)送到其它網絡內的某臺主機中。但是有的人會奇怪,直接在RA中填這臺主機的mac地址不就久好了么。但是請注意RA的含義,說的是無線網絡中的接收者,不是網絡中的接收者,也就是說這臺目的主機不再無線網絡范圍內。在這種情況下我們的RA只是一個中轉,所以需要多出一個DA字段來指明該幀的最終目的地,當然,如果有了DA那必須有SA,因為若目的主機要回應的話,SA字段是必不可少的。(假設沒有SA字段,那么目的主機回應的數(shù)據(jù)包就只能發(fā)送到源主機所屬的AP上了~)


            最典型的一個例子就是在WDS模式下,數(shù)據(jù)幀會有4個地址,RA,TA表示接收端和發(fā)送端,這兩個地址用于無線傳輸?shù)臅r候。還有2個地址是DA和SA,分別跟以太網中一樣表示源地址和目的地址。WDS幀的格式如下圖:


            打個比方說,AP1有主機A,AP2有主機B。如果A要和B同學,那么A會首先發(fā)送數(shù)據(jù)幀給AP1,然后AP1發(fā)送幀給AP2 。這個時候幀里面會有4個地址,分別是RA=mac(AP2),TA=mac(AP1),DA=mac(B),SA=mac(A)。


            posted on 2011-03-05 16:55 __ay 閱讀(641) 評論(0)  編輯 收藏 引用 所屬分類: SecurityOthers

            亚洲AV无码久久精品狠狠爱浪潮| 亚洲国产精品成人久久蜜臀 | 久久香综合精品久久伊人| 久久久亚洲欧洲日产国码是AV | 国产成人精品白浆久久69| 久久精品国产99久久久| 国产精品免费久久久久影院| 99久久综合国产精品二区| 四虎影视久久久免费| 久久99国产综合精品免费| 久久国产精品免费| 人妻无码中文久久久久专区| 狠狠色伊人久久精品综合网| 久久热这里只有精品在线观看| 久久久久无码精品国产不卡| 久久国产一片免费观看| 精品综合久久久久久888蜜芽| 国产精品99久久精品爆乳| 伊人久久大香线蕉综合影院首页| 国内精品伊人久久久久| 久久人人爽人人人人片av| 精品久久综合1区2区3区激情| 久久综合鬼色88久久精品综合自在自线噜噜 | 久久精品国产半推半就| 久久亚洲私人国产精品vA| 精品人妻伦九区久久AAA片69| 欧洲国产伦久久久久久久| 91精品国产高清久久久久久io | 精品无码久久久久久久久久| 久久青青草原精品国产| 97精品伊人久久大香线蕉| 久久久亚洲精品蜜桃臀| 久久久噜噜噜www成人网| 久久精品国产亚洲AV嫖农村妇女| 日韩欧美亚洲国产精品字幕久久久 | 久久久久无码专区亚洲av| 久久91亚洲人成电影网站| 亚洲AV日韩精品久久久久久| 久久无码国产专区精品| 伊人久久无码精品中文字幕| 久久亚洲精品无码播放|