Ethernet Frame Formats:
Ethernet (a.k.a. Ethernet II)
+---------+---------+---------+----------
| Dst | Src | Type | Data...
+---------+---------+---------+----------
<-- 6 --> <-- 6 --> <-- 2 --> <-46-1500->
Type 0x80 0x00 = TCP/IP
Type 0x06 0x00 = XNS
Type 0x81 0x37 = Novell NetWare
802.3
+---------+---------+---------+----------
| Dst | Src | Length | Data...
+---------+---------+---------+----------
<-- 6 --> <-- 6 --> <-- 2 --> <-46-1500->
802.2 (802.3 with 802.2 header)
+---------+---------+---------+-------+-------+-------+----------
| Dst | Src | Length | DSAP | SSAP |Control| Data...
+---------+---------+---------+-------+-------+-------+----------
<- 1 -> <- 1 -> <- 1 -> <-43-1497->
SNAP (802.3 with 802.2 and SNAP headers)
+---------+---------+---------+-------+-------+-------+-----------+---------+-----------
| Dst | Src | Length | 0xAA | 0xAA | 0x03 | Org Code | Type | Data...
+---------+---------+---------+-------+-------+-------+-----------+---------+-----------
<-- 3 --> <-- 2 --> <-38-1492->
Ethernet中存在這四種Frame的格式,如果不能很好的區分他們,那么肯定會造成網絡的混亂,
現實中網絡設備可以很好的識別它們,那么網絡設備又是如何識別的呢?
(1) 如何區分EthernetII與其他格式的幀
如果幀頭跟隨source mac地址的2 bytes的值大于1500則此Frame為EthernetII格式的。否則就是其他格式的幀。
(2)其他幀格式的區別
接著比較緊接著的兩bytes如果為0xFFFF則為Novell Ethernet 類型的Frame
如果為0xAAAA則為Ethernet SNAP格式的Frame ,如果都不是則為Ethernet
802.3/802.2格式的幀