3. IEEE 802.3
前面提到过以太网和IEEE 802.3的区别下面我们来看看IEEE802.3具体格式
IEEE802.3是发布的RFC标准由802.3的头和尾以及802.2的LLC头部组成。
因为增加了LLC头部的3或者4个字节,有效载荷会减少3或者4个字节。控制字段为1或者2字节。
字段说明:
帧初始同步 7字节长,每字节由10101010组成,使接收端同步
开始分隔符 1字节长 由10101011组成,指示帧开始
这2个字段正好和以太网的帧初始同步字段相同。
目的地址 和以太网II基本相同,不同的是该地址还支持2字节的地址
源地址 和以太网II基本相同,不同的是该地址还支持2字节的地址
长度 2字节长,指示从LLC头开始字节到有效载荷的最后一个字节的字节数,不包括IEEE 802.3的头和FCS字段 ,最小是46 (0x002E)最大是1500(0x05DC)
帧校验序列(FCS) 4字节 和以太网一样
IEEE802.2 LLC的头
DSAP 目的服务访问字段,1字节长,指明帧的目的上层协议类型
ASAP 源服务访问字段,1字节长,指明帧的源上层协议类型
控制 1字节或者2字节,确定的长度要看被封装的LLC数据类型,是LLC数据报(类型1)1字节,LLC对话的一部分(类型2)2字节。
类型1 表明是无连接的,不可靠的LLC数据报,控制字段用0x03指明
类型2 表明是面向连接可靠的LLC会话。
注意:如何区分IEEE 802.3的帧和以太网II的帧?
两种格式的帧源地址后字段含义不同,IEEE 802.3 是长度,长度范围是在区间[46,1500],十六进制[0x002E,0x05DC],以太网II是以太网类型,值最小位0x0600XNS(Xerox的网络系统)协议,大于1500.
4. IEEE 802.3 SNAP
虽然IEEE 802.3是标准,但没有被业界采用。以太网II已成事实标准。于是IEEE 802.3扩展产生 IEEE 802.3 SNAP 来兼容以太网网头部协议,在IEEE 802.2 LLC 头部后插入了SNAP头部
为了标识SNAP帧,DSAP和SSAP在LLC头都被设置成SNAP定义的值0xAA,所有SNAP的封装没有使用可靠的LLC服务,所以控制设置成0x03
SNAP头部字段说明
组织代码 3字节长,指明维护接下来2字节意义的组织,对IP和 ARP,该字段被设置为0x00-00-00
如果组织代码为0x00-00-00,接下来2字节就是以太网类型IP 0x0800 ARP 0x0806
因为增加了LLC头部的3字节和SNAP头部的5字节所以有效载荷比以太网II少8个字节
抓包截图
在Windows server 2003 和XP中默认使用以太网II来封装的,对于接收这2中格式都可以,但默认情况下仅会用以太网II封装的帧响应,如果需要更改默认配置可以修改下列注册表键值
ArpUseEtherSNAP
Location:HKEY_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Data Type:REG_DWORD
Valid range:0-1
Default value:0
Present by default:No
该
键值决定在发送IP或ARP是否使用IEEE 802.3
SNAP,1表示用,0表示不用。默认是0,表示IP或ARP用以太网II发送。不论怎么设置2中类型的帧都能接收。如果设为1,用IEEE 802.3
SNAP封装请求帧,如果对端不能识别则无法通信。但当以下2种情况之一出现时会转换到以太网II封装,用IEEE 802.3
SNAP封装的ARP请求帧得到以太网II响应或者收到用以太网II封装的ARP请求。