以太网帧格式
以太网帧格式,即在以太网帧头、帧尾中用于实现以太网功能的域。
中文名:以太网帧格式
IEEE802.3:Original
IEEE802:Revised1997
V1:原始的一种格式
V2(ARPA):更改EthernetV1电气特性物理接口
RAW802.3:跟正式的IEEE802.3标准不兼容
1、基本简介
在以太网的帧头和帧尾中有几个用于实现以太网功能的域,每个域也称为字段,有其特定的名称和目的
DIX(DigitalEquipmentCorporation,Intel,Xerox——数字设备公司,英特尔,施乐)
Preamble 8 |
Destination 6 |
Source 6 |
Type 2 |
DataandPad 46~1500 |
FCS 4 |
IEEE802.3(Original)
Preamble 7 |
SFD 1 |
Destination 6 |
Source 6 |
Length 2 |
DataandPad 46~1500 |
FCS 4 |
IEEE802.3(Revised1997)
Preamble 7 |
SFD 1 |
Destination 6 |
Source 6 |
Length/ Type2 |
DataandPad 46~1500 |
FCS 4 |
2、历史分类
EthernetV1(1980)
这是最原始的一种格式,是由XeroxPARC提出的3MbpsCSMA/CD以太网标准的封装格式,后来在1980年由DEC,Intel和Xerox标准化形成EthernetV1标准.
EthernetV2(ARPA,1982)
由DEC,Intel和Xerox在1982年公布其标准,主要更改了EthernetV1的电气特性和物理接口,在帧格式上并无变化;EthernetV2出现后迅速取代EthernetV1成为以太网事实标准;EthernetV2帧头结构为6bytes的目标地址+6bytes的源地址+2Bytes的协议类型字段+数据。
以太网帧格式
RAW802.3(Novell,1983)
这是1983年Novell发布其划时代的Netware/86网络套件时采用的私有以太网帧格式,该格式以当时尚未正式发布的802.3标准为基础;但是当两年以后IEEE正式发布802.3标准时情况发生了变化—IEEE在802.3帧头中又加入了802.2LLC(LogicalLinkControl)头,这使得Novell的RAW802.3格式跟正式的IEEE802.3标准互不兼容.该格式中将EthernetV2格式中的type字段改为length字段,因为RAW802.3帧只支持IPX/SPX一种协议。
IEEE802.3/802.2LLC(1985)
这是IEEE正式的802.3标准,它由EthernetV2发展而来。它将EthernetV2帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500),如此一来丧失了与EthernetV2的兼容性,并且导致只能封装一种上层服务,即LLC;并加入802.2LLC头用以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段.
IEEE802.3/802.2SNAP(1985)
这是IEEE为保证在802.2LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准,与802.3/802.2LLC一样802.3/802.2SNAP也带有LLC头,但是扩展了LLC属性,新添加了一个2Bytes的协议类型域(同时将SAP的值置为AA),从而使其可以标识更多的上层协议类型;另外添加了一个3Bytes的OUI字段用于代表不同的组织,RFC1042定义了IP报文在802.2网络中的封装方法和ARP协议在802.2SANP中的实现.
802.3以太网帧格式备注:
以太网帧格式多达5种,这是由历史原因造成的。那么实际使用中具体会用哪种呢?事实上,今天的大多数TCP/IP应用都是用EthernetV2帧格式(IEEE802.3-1997改回了对这一格式的兼容),而交换机之间的BPDU(桥协议数据单元)数据包则是IEEE802.3/LLC的帧,VLANTrunk协议如802.1Q和Cisco的CDP(思科发现协议)等则是采用IEEE802.3SNAP的帧。
前导码(7字节)、帧起始定界符(1字节)、目的MAC地址(6字节)、源MAC地址(6字节)、类型/长度(2字节)、数据(46~1500字节)、帧校验序列(4字节)
字段 |
字段长度(字节) |
目的 |
前导码(Preamble) |
7 |
同步 |
帧开始符(SFD) |
1 |
标明下一个字节为目的MAC字段 |
目的MAC地址 |
6 |
指明帧的接受者 |
源MAC地址 |
6 |
指明帧的发送者 |
长度(Length) |
2 |
帧的数据字段的长度(长度或类型) |
类型(Type) |
2 |
帧中数据的协议类型(长度或类型) |
数据和填充(DataandPad)注 |
46~1500 |
高层的数据,通常为3层协议数据单元。对于TCP/IP是IP数据包 |
帧校验序列(FCS) |
4 |
对接收网卡提供判断是否传输错误的一种方法,如果发现错误,丢弃此帧 |
注:如果帧长小于64字节,则要求“填充”,以使这个帧的长度达到64字节。
3、分类区别
在IEEE建立以太网成帧标准时,与DIXv2规范相比,做了略微的修改。如上图1顶上部分,显示了原始DIX的帧结构,中间部分为最初的IEEE帧,IEEE帧在图的下部。
DIX帧与原始802.3的标准有两个不同。DIX不使用SFD,它把前8个字节作为一个整体,用于同步成为前导码。前8个字节在功能上对DIX帧和802.3的标准帧是没有区别的,只是所使用的名称不同。
另一个不同是DIXv2的类型字段和IEEE的长度字段。DIXv2的类型字段指帧中数据字段的内容。施乐设定其占2个字节,称为协议代码,指明某一特定的协议。任何供应商都可向施乐注册,为其协议分配一个代码——协议指任何想通过以太网传输的协议。后来,IEEE接管了协议代码的管理。
在解封装的过程中协议代码非常重要。如:一块网卡收到一个帧,它要将数据从以太帧中解封出来,给接收计算机的正确的软件处理。类型字段指明数据的类型——如,IP分组或其他协议的3层PDU。如果没有类型字段的信息,接收计算机将不会知道要把数据送给哪个软件处理。2字节的IEEE长度字段在帧中所占的位置与DIX类型字段一致。它以字节为单位指明数据的长度。而IEEE完成DIX类型字段任务则要依靠802.3之后的其他协议头。
以太网交换机VLAN配置
有意思的是,IEEE所制定的以太网标准使得DIXv2帧和IEEE帧在一个局域网中不能共存。因此,IEEE允许从现存的DIXv2网卡和网络设备到IEEE的标准设备的迁移。为了让设备可以识别使用的是哪种类型的帧,IEEE没有分配1536以下(十六进制数为0x0600)的数为协议类型代码。数据字段的最大值为1500字节。所以一台设备可以很容易从源地址之后的2个字节来判断是哪种类型的帧,如果值为1536(十进制)或更高则为类型字段,意味着是dixv2帧。如果从源地址之后的2个字节小于1536,则可确定是长度字段,为IEEE802.3帧。
4、参考文献
.WendellOdom,TomKnott著.思科网络技术学院教程CCNA1网络基础.北京:人民邮电出版社,2008,4.
.WadeEdwards,TerryJack,ToddLammle著.CCNP四合一学习指南(中文版).北京:电子工业出版社,2005,7.