用过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格式的帧