用過NetXray之類的抓包軟件的人,可能經常會被一些 不同的Frame Header搞糊涂,為何用的Frame的Header
是這樣的,而另外的又不一樣。這是因為在Ethernet 中存在幾種不同的幀格式,下面我就簡單介紹一下幾種
不同的幀格式及他們的差異。
一。Ethernet幀格式的發展
1980 DEC,Intel,Xerox制訂了Ethernet I的標準
1982 DEC,Intel,Xerox又制訂了Ehternet II的標準
1982 IEEE開始研究Ethernet的國際標準802.3
1983 迫不及待的Novell基于IEEE的802.3的原始版開發了專用的Ethernet幀格式
1985 IEEE推出IEEE 802.3規范
后來為解決EthernetII與802.3幀格式的兼容問題推出折衷的Ethernet SNAP格式
(其中早期的Ethernet I已經完全被其他幀格式取代了所以現在Ethernet只能見到后面幾種Ethernet的幀格式現在大部分的網絡設備都支持這幾種Ethernet的幀格式如:cisco的路由器再設定Ethernet接口時可以指定不同的以太網的幀格式:arpa,sap,snap,novell-ether)
二.各種不同的幀格式
下面介紹一下各個幀格式
- Ethernet II
就是DIX以太網聯盟推出的,它由6個字節的目的MAC地址,6個字節的源MAC地址,2個字節的類型域(用于標示封裝在這個Frame、里面數據的類型)以上為Frame Header,接下來是46--1500 字節的數據,和4字節的幀校驗) - Novell Ethernet
它的幀頭與Ethernet有所不同其中EthernetII幀頭中的類型域變成了長度域,后面接著的兩個字節為0xFFFF
用于標示這個幀是Novell Ether類型的Frame 由于前面的0xFFFF站掉了兩個字節所以數據域縮小為44-1498個字節,幀校驗不變。 - IEEE 802.3/802.2
802.3的Frame Header和Ethernet II的幀頭有所不同EthernetII類型域變成了長度域。其中又引入802.2協議(LLC)在802.3幀頭后面添加了一個LLC首部,由 DSAP(Destination Service Access Point)
1 byte,SSAP(Source SAP),一個控制域--1 byte!
SAP用于標示幀的上層協議 - Ethernet SNAP
SNAP Frame與802.3/802.2 Frame的最大區別是增加了一個5 Bytes的SNAP ID其中前面3個byte通常與源mac地址的前三個bytes相同為廠商代碼!有時也可設為0,后2 bytes 與Ethernet II的類型域相同。。。
三.如何區分不同的幀格式
Ethernet中存在這四種Frame那些網絡設備又是如何識別的呢? 如何區分EthernetII與其他三種格式的Frame 如果幀頭跟隨source mac地址的2 bytes的值大于1500 則此Frame為EthernetII格式的。
接著比較緊接著的兩bytes如果為0xFFFF則為Novell Ether 類型的Frame
如果為0xAAAA則為Ethernet SNAP格式的Frame ,如果都不是則為Ethernet 802.3/802.2格式的幀