通过上面所捕获的帧,相信大家对网络的分层应该会有一个比较深的理解。我所展开的是数据链路层的包头。
对照上面的帧格式,我们可以看到,有目的地址,有源地址,有类型,从IP开始就属于
信息字段了。姨,不对呀,怎么没有前导和SFD?当然,这是用来同步的,对协议分析没有意 义,包括FCS,所以去掉了(*8*不是我想的,sniffer捕完后就去掉了的别打我)。
可是,不对啊?没错,眼尖的朋友发现了,哈,都是以太网第二版的帧,看上面字段
“Ethertype=0800(ip)”.这是怎么回事?不是说现在都是802。3的,至少也是802。2的嘛?怎么
其实这个问题我当时也糊了,而且很多人也都不是特别的清楚,后来跟我们老师沟通后这么认为:打包成何种帧一般是由操作系统决定的,在微软的OS里边,其默认都会打包成以太网第二版的(可以改),这并不是说网络环境变成10M了,因为现在这个以太网第二版应该也是支持100M的,而在netware 环境里面,通常都默认是802。2或802。3,具体2还是3,就要看netware版本了,一般来讲,运行低于Netware 3.12版本的网络的缺省帧类型是802。3。
Ok.咱就说到这了,当然不敢说完全正确,只希望能让大家共同交流,所以欢迎大家能够指出我所不对的地方,共同进步。
用过NetXray之类的抓包软件的人,可能经常会被一些
不同的Frame Header搞糊涂,为何用的Frame的Header
是这样的,而另外的又不一样。这是因为在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格式的帧
|