以太網幀格式詳解

轉載自http://blog.sina.com.cn/s/blog_5ce2ac4d0100jzf0.html

具體總體的封裝請參考本博客TCP/IP中的IP封裝一章,一下使具體詳解:因爲以太包的類型不同,格式也不盡相同:但大體上格式統一

以太網幀格式詳解

Etherne II
報頭8    目標地址6    源地址6    以太類型2    有效負載46-1500    幀檢驗序列4

報頭:8個字節,前7個0,1交替的字節(10101010)用來同步接收站,一個1010101011字節指出幀的開始位置。報頭提供接收器同步和幀定界服務。
目標地址:6個字節,單播、多播或者廣播。單播地址也叫個人、物理、硬件或MAC地址。廣播地址全爲1,0xFF FF FF FF。
源地址:6個字節。指出發送節點的單點廣播地址。
以太類型:2個字節,用來指出以太網幀內所含的上層協議。即幀格式的協議標識符。對於IP報文來說,該字段值是0x0800。對於ARP信息來說,以太類型字段的值是0x0806。
有效負載:由一個上層協議的協議數據單元PDU構成。可以發送的最大有效負載是1500字節。由於以太網的衝突檢測特性,有效負載至少是46個字節。如果上層協議數據單元長度少於46個字節,必須增補到46個字節。
幀檢驗序列:4個字節。驗證比特完整性。

IEEE 802.3
根據IEEE802.2 和802.3標準創建的,由一個IEEE802.3報頭和報尾以及一個802.2LLC報頭組成。
報頭7    起始限定符1    目標地址6(2)    源地址6(2)    長度2    DSAP1    SSAP1    控件2    有效負載3    幀檢驗序列4
-----------802.3報頭--------------§---802.2報頭----§              §-802.3報尾-§

IEEE802.3報頭和報尾
報頭:7個字節,同步接收站。位序列10101010
起始限定符:1個字節,幀開始位置的位序列10101011。
報頭+起始限定符=Ethernet II的報頭
目標地址:同Ethernet II。也可以爲2個字節,很少用。
源地址:同Ethernet II。也可以爲2個字節,很少用。
長度:2個字節。
幀檢驗序列:4個字節。

IEEE802.2 LLC報頭
DSAP:1個字節,指出幀的目標節點的上層協議。Destination Service Access Point
SSAP:1個字節,指出幀的源節點的上層協議。Source Service Access Point
DSAP和SSAP相當於IEEE802.3幀格式的協議標識符。爲IP定義的DSAP和SSAP字段值是0x06。但一般使用SNAP報頭。
控件:1-2個字節。取決於封裝的是LLC數據報(Type1 LLC)還是LLC通話的一部分(Type2 LLC)。
Type1 LLC:1個字節的控件字段,是一種無連接,不可靠的LLC數據報。無編號信息,UI幀,0x03。
Type2 LLC:2個字節的控件字段,是一種面向連接,可靠的LLC對話。
對IP和ARP,從不使用可靠的LLC服務。所以,都只用Type1 LLC,控件字段設爲0x03。


區分兩種幀
根據源地址段後的前兩個字節的類型不同。
如果值大於1500(0x05DC),說明是以太網類型字段,EthernetII幀格式。值小於等於1500,說明是長度字段,IEEE802.3幀格式。因爲類型字段值最小的是0x0600。而長度最大爲1500。

IEEE802.3 SNAP
雖然爲IP定義的SAP是0x06,但業內並不使用該值。RFC1042規定在IEEE802.3, 802.4, 802.5網絡上發送的IP數據報和ARP幀必須使用SNAP(Sub Network Access Prototol)封裝格式。

報頭7   起始限定符1   目標地址6   源地址6   長度2   DSAP1   SSAP1    控件1    組織代碼3    以太類型2    IP數據報    幀檢驗序列
----IEEE802.3報頭-----------§IEEE8023 LLC報頭---§--SNAP報頭----§            §802.3報尾§
                                                                          0x0A       0x0A      0x03      0x00-00-00     0x08-00     (38-1492字節)

Ethernet地址
        爲了標識以太網上的每臺主機,需要給每臺主機上的網絡適配器(網絡接口卡)分配一個唯一的通信地址,即Ethernet地址或稱爲網卡的物理地址、MAC地址。
        IEEE負責爲網絡適配器製造廠商分配Ethernet地址塊,各廠商爲自己生產的每塊網絡適配器分配一個唯一的Ethernet地址。因爲在每塊網絡適配器出廠時,其Ethernet地址就已被燒錄到網絡適配器中。所以,有時我們也將此地址稱爲燒錄地址(Burned-In-Address,BIA)。
        Ethernet地址長度爲48比特,共6個字節,如圖1所示。其中,前3字節爲IEEE分配給廠商的廠商代碼,後3字節爲網絡適配器編號。

以太網幀格式詳解
圖1  Ethernet地址


 

以太網幀格式
        目前,有四種不同格式的以太網幀在使用,它們分別是:
        ●Ethernet II即DIX 2.0:Xerox與DEC、Intel在1982年制定的以太網標準幀格式。Cisco名稱爲:ARPA。
        ●Ethernet 802.3 raw:Novell在1983年公佈的專用以太網標準幀格式。Cisco名稱爲:Novell-Ether。
        ●Ethernet 802.3 SAP:IEEE在1985年公佈的Ethernet 802.3的SAP版本以太網幀格式。Cisco名稱爲:SAP。
        ●Ethernet 802.3 SNAP:IEEE在1985年公佈的Ethernet 802.3的SNAP版本以太網幀格式。Cisco名稱爲:SNAP。
        在每種格式的以太網幀的開始處都有64比特(8字節)的前導字符,如圖3所示。其中,前7個字節稱爲前同步碼(Preamble),內容是16進制數0xAA,最後1字節爲幀起始標誌符0xAB,它標識着以太網幀的開始。前導字符的作用是使接收節點進行同步並做好接收數據幀的準備。

以太網幀格式詳解
圖3  以太網幀前導字符

        除此之外,不同格式的以太網幀的各字段定義都不相同,彼此也不兼容。

Ethernet II幀格式
        如圖4所示,是Ethernet II類型以太網幀格式。

來源:(http://blog.sina.com.cn/s/blog_52f2688e0100cii7.html) - 以太網幀格式詳解_月明星稀_新浪博客

以太網幀格式詳解
圖4  Ethernet II幀格式

        Ethernet II類型以太網幀的最小長度爲64字節(6+6+2+46+4),最大長度爲1518字節(6+6+2+1500+4)。其中前12字節分別標識出發送數據幀的源節點MAC地址和接收數據幀的目標節點MAC地址。(注:ISL封裝後可達1548字節,802.1Q封裝後可達1522字節)
        接下來的2個字節標識出以太網幀所攜帶的上層數據類型,如16進制數0x0800代表IP協議數據,16進制數0x809B代表AppleTalk協議數據,16進制數0x8138代表Novell類型協議數據等。
        在不定長的數據字段後是4個字節的幀校驗序列(Frame. Check Sequence,FCS),採用32位CRC循環冗餘校驗對從"目標MAC地址"字段到"數據"字段的數據進行校驗。

Ethernet 802.3 raw幀格式
        如圖5所示,是Ethernet 802.3 raw類型以太網幀格式。

以太網幀格式詳解
圖5  Ethernet 802.3 raw幀格式

        在Ethernet 802.3 raw類型以太網幀中,原來Ethernet II類型以太網幀中的類型字段被"總長度"字段所取代,它指明其後數據域的長度,其取值範圍爲:46-1500。
        接下來的2個字節是固定不變的16進制數0xFFFF,它標識此幀爲Novell以太類型數據幀。六、Ethernet 802.3 SAP幀格式
       
如圖6所示,是Ethernet 802. 3 SAP類型以太網幀格式。

以太網幀格式詳解
圖6  Ethernet 802. 3 SAP幀格式

        從圖中可以看出,在Ethernet 802.3 SAP幀中,將原Ethernet 802.3 raw幀中2個字節的0xFFFF變爲各1個字節的DSAP和SSAP,同時增加了1個字節的"控制"字段,構成了802.2邏輯鏈路控制(LLC)的首部。LLC提供了無連接(LLC類型1)和面向連接(LLC類型2)的網絡服務。LLC1是應用於以太網中,而LLC2應用在IBM SNA網絡環境中。
        新增的802.2 LLC首部包括兩個服務訪問點:源服務訪問點(SSAP)和目標服務訪問點(DSAP)。它們用於標識以太網幀所攜帶的上層數據類型,如16進制數0x06代表IP協議數據,16進制數0xE0代表Novell類型協議數據,16進制數0xF0代表IBM NetBIOS類型協議數據等。
        至於1個字節的"控制"字段,則基本不使用(一般被設爲0x03,指明採用無連接服務的802.2無編號數據格式)。

Ethernet 802.3 SNAP幀格式
       
如圖7所示,是Ethernet 802. 3 SNAP類型以太網幀格式。

以太網幀格式詳解
圖7  Ethernet 802. 3 SNAP幀格式

        Ethernet 802. 3 SNAP類型以太網幀格式和Ethernet 802. 3 SAP類型以太網幀格式的主要區別在於:
        ●2個字節的DSAP和SSAP字段內容被固定下來,其值爲16進制數0xAA。
        ●1個字節的"控制"字段內容被固定下來,其值爲16進制數0x03。
        ●增加了SNAP字段,由下面兩項組成:
          ◆新增了3個字節的組織唯一標識符(Organizationally Unique Identifier,OUI ID)字段,其值通常等於MAC地址的前3字節,即網絡適配器廠商代碼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章