首先说明一下,
Ethernet
和
802.3
并不是一回事,虽然我们经常混用这两个术语;
历史上以太网帧格式有五种
:
1. Ethernet V1 :
这是最原始的一种格式,是由
Xerox
PARC
提出的
3Mbps CSMA/CD
以太网标准的封装格式,后来在
1980
年由
DEC
,
Intel
和
Xerox
标准化形成
Ethernet
V1
标准;
2.
Ethernet
V2(ARPA)
:
这是最常见的一种以太网帧格式,也是今天以太网的事实标准,由
DEC
,
Intel
和
Xerox
在
1982
年公布其标准,主要
更改了
Ethernet
V1
的电气特性和物理接口,在帧格式上并无变化;
Ethernet V2
出现后迅速取代
Ethernet
V1
成为以太网事实标准;
Ethernet V2
帧头结构为
6bytes
的源地址
+6bytes
的目标地址
+2Bytes
的协
议类型字段
+
数据。
常见协议类型如下:
0800
IP
0806 ARP
8137 Novell IPX
809b Apple
Talk
如果协议类型字段取值为
0000-05dc(
十进制的
0-1500)
,则该帧就不是
Ethernet
V2(ARPA)
类
型了,而是下面讲到的三种
802.3
帧类型之一;
Ethernet
可以支持
TCP/IP
,
Novell IPX/SPX
,
Apple Talk Phase
I
等协议;
RFC
894
定义了
IP
报文在
Ethernet V2
上的封装格式;
3.
RAW 802.3
:
这是
1983
年
Novell
发布其划时代的
Netware/86
网络套件时采用的私有以太网帧格式,该格式以当时尚未正式发
布的
802.3
标准为基础;但是当两年以后
IEEE
正式发布
802.3
标准时情况发生了变化
—IEEE
在
802.3
帧头中又
加入了
802.2 LLC(Logical
Link Control)
头,这使得
Novell
的
RAW 802.3
格式跟正式的
IEEE
802.3
标准互不兼容;可以看到在
Novell
的
RAW 802.3
帧结构中并没有标志协议类型的字段,而只有
Length
字段
(2bytes,
取值为
0000-05dc
,即十进制的
0-1500)
,因为
RAW
802.3
帧只支持
IPX/SPX
一
种协议;
4.
802.3/802.2
LLC
:(LLC+MAC)
这是
IEEE
正式的
802.3
标准,它由
Ethernet
V2
发展而来。它将
Ethernet V2
帧头的协议类型字段替换为帧长度字段
(
取值为
0000-05dc;
十进制的
1500
)
;并加入
802.2 LLC
头用以标志上层协议,
LLC
头中包含
DSAP
,
SSAP
以及
Crontrol
字段;
常见
SAP
值:
0
:
Null LSAP[IEEE]
4
:
SNA Path
Control[IEEE]
6
:
DOD IP[79,JBP]
AA
:
SNAP[IEEE]
FE
:
ISO DIS
8473[52,JXJ]
FF
:
Global DSAP[IEEE]
SAP
值用以标志上层应用,但是每个
SAP
字段只有
8bits
长,而且其中仅保留了
6
比特用于标识上层协议,因此所能标识的
协议数有限
(
不超过
32
种
)
;并且
IEEE
拒绝为某些重要的协议比如
ARP
协议定义
SAP
值
(
奇怪的是同时他们却定义了
IP
的
SAP
值
)
;因此
802.3/802.2 LLC
的使用有很大局限性;
5.
802.3/802.2 SNAP
:
这是 IEEE 为保证在 802.2 LLC 上支持更多的上层协议同时更好的支持 IP 协议而发布的标准,与 802.3/802.2 LLC 一样 802.3/802.2 SNAP 也带有 LLC 头,但是扩展了 LLC 属性,新添加了一个 2Bytes 的协议类型域( 同时将 SAP 的值置为 AA ),从而使其可以标识更多的上层协议类型;另外添加了一个 3Bytes 的 OUI 字段用于代表不同的 组织, RFC 1042 定义了 IP 报文在 802.2 网络中的封装方法和 ARP 协议在 802.2 SANP 中的实现;
今天的实际环境中大多数
TCP/IP
设备都使用
Ethernet V2
格式的帧。这是因为第一种大规模使用的
TCP/IP
系统
(4.2/3 BSD UNIX)
的出现时间介于
RFC
894
和
RFC
1042
之间,它为了避免不能和别的主机互操作的风险而采用了
RFC 894
的实现;也由于大家都抱着这种想法,所以
802. 3
标准并没有如预期那样得到普及;
CISCO
设备的
Ethernet
Interface
默认封装格式是
ARPA(Ethernet V2)
不同厂商对这几种帧格式通常有不同的叫法,比如:
Frame
Type----------------------------------Novell/
----------------------------Cisco
Ethernet Version 2
:
-----------------------Ethernet_II/---
-----------------arpa
802.3------------------------------------------ Raw
:
Ethernet_802.3/
novell_ether
IEEE
802.3/802.2
:
-------------------------Ethernet_802.2/--------
--------
sap
IEEE 802.3/802.2
SNAP
:
------------------ETHERNET_SNAP/--------------
snap