原文地址:
http://hi.baidu.com/wudengyong/blog/item/0c8388451591df34879473c1.html
目前,有四種不同格式的以太網幀在使用,它們分別是:
●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 以太網幀前導字符
除此之外,不同格式的以太網幀的各字段定義都不相同,彼此也不兼容。
3.1 Ethernet II幀格式
如圖4所示,是Ethernet II類型以太網幀格式。

圖4 Ethernet II幀格式
Ethernet II類型以太網幀的最小長度為64字節(6+6+2+46+4),最大長度為1518字節(6+6
Ethernet II類型以太網幀的最小長度為64字節(6+6+2+46+4),最大長度為1518字節(6+6
+2+1500+4)。其中前12字節分別標識出發送數據幀的源節點MAC地址和接收數據幀的目標節點MAC地
址。
接下來的2個字節標識出以太網幀所攜帶的上層數據類型,如16進制數0x0800代表IP協議數據,16進制數0x809B代表AppleTalk協議數據,16進制數0x8138代表Novell類型協議數據等。
接下來的2個字節標識出以太網幀所攜帶的上層數據類型,如16進制數0x0800代表IP協議數據,16進制數0x809B代表AppleTalk協議數據,16進制數0x8138代表Novell類型協議數據等。
區分兩種幀
根據源地址段后的前兩個字節的類型不同。
如果值大於1500(0x05DC),說明是以太網類型字段,EthernetII幀格式。值小於等於1500,說明是長度字段,IEEE802.3幀格式。因為類型字段值最小的是0x0600。而長度最大為1500。
根據源地址段后的前兩個字節的類型不同。
如果值大於1500(0x05DC),說明是以太網類型字段,EthernetII幀格式。值小於等於1500,說明是長度字段,IEEE802.3幀格式。因為類型字段值最小的是0x0600。而長度最大為1500。
在不定長的數據字段后是4個字節的幀校驗序列(Frame Check Sequence,FCS),采用32位CRC循環冗余校驗對從"目標MAC地址"字段到"數據"字段的數據進行校驗。
3.2 Ethernet 802.3 raw幀格式
如圖5所示,是Ethernet 802.3 raw類型以太網幀格式。

圖5 Ethernet 802.3 raw幀格式
在Ethernet 802.3 raw類型以太網幀中,原來Ethernet II類型以太網幀中的類型字段被"總長度"
在Ethernet 802.3 raw類型以太網幀中,原來Ethernet II類型以太網幀中的類型字段被"總長度"
字段所取代,它指明其后數據域的長度,其取值范圍為:46-1500。
接下來的2個字節是固定不變的16進制數0xFFFF,它標識此幀為Novell以太類型數據幀。
3.3 Ethernet 802.3 SAP幀格式
如圖6所示,是Ethernet 802. 3 SAP類型以太網幀格式。
接下來的2個字節是固定不變的16進制數0xFFFF,它標識此幀為Novell以太類型數據幀。
3.3 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無編號數據格式)。
3.4 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字節,即網絡適配器廠商代碼。
◆2個字節的"類型"字段用來標識以太網幀所攜帶的上層數據類型。