(整理)以太⽹帧格式
EthernetⅡ/ETHERNET 802.3 IEEE802.2.SAP/SNAP的区别
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上的封装格式;
Ethernet_II中所包含的字段:
在每种格式的以太⽹帧的开始处都有64⽐特(8字节)的前导字符,如图所⽰。其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太⽹帧的开始。前导字符的作⽤是使接收节点进⾏同步并做好接收数据帧的准备。
——PR:同步位,⽤于收发双⽅的时钟同步,同时也指明了传输的速率(10M和100M的时钟频率不⼀样,所以100M⽹卡可以兼容10M⽹卡),是56位的⼆进制数
——SD: 分隔位,表⽰下⾯跟着的是真正的数据,⽽不是同步时钟,为8位的10101011,跟同步位不同的是最后2位是11⽽不是10.——DA:⽬的地址,以太⽹的地址为48位(6个字节)⼆进制地址,表明该帧传输给哪个⽹卡.如果为FFFFFFFFFFFF,则是⼴播地址,⼴播地址的数据可以被任何⽹
卡接收到.
——SA:源地址,48位,表明该帧的数据是哪个⽹卡发的,即发送端的⽹卡地址,
同样是6个字节.
----TYPE:类型字段,表明该帧的数据是什么类型的数据,不同的协议的类型字段不同。如:0800H 表⽰数据为IP
包,0806H 表⽰数据为ARP包,814CH是SNMP 包,8137H为IPX/SPX包,(⼩于0600H的值是⽤于IEEE802的,表⽰数据包的长度。)
----DATA:数据段,该段数据不能超过1500字节。因为以太⽹规定整个传输包的最⼤长度不能超过1514字节。(14字节为DA,SA,TYPE)
----PAD:填充位。由于以太⽹帧传输的数据包最⼩不能⼩于60字节, 除去(DA,SA,TYPE 14字节),
还必须传输46字节的数据,当数据段的数据不⾜46字节时,后⾯补(当然也可以补其它值)
----FCS:32位数据校验位.为32位的CRC校验,该校验由⽹卡⾃动计算,⾃动⽣成,⾃动校验,⾃动在数据段后⾯填⼊.对于数据的校
验算法,我们⽆需了解.
----事实上,PR,SD,PAD,FCS这⼏个数据段我们不⽤理它 ,它是由⽹卡⾃动产⽣的,我们要理的是DA,SA,TYPE,DATA四个段的内容.
----所有数据位的传输由低位开始(但传输的位流是⽤曼彻斯特编码的)
----以太⽹的冲突退避算法就不介绍了,它是由硬件⾃动执⾏的.
DA+SA+TYPE+DATA+PAD最⼩为60字节,最⼤为1514字节.
----以太⽹卡可以接收三种地址的数据,⼀个是⼴播地位,⼀个是多播地址(我们⽤不上),⼀个是它⾃已的地址.但⽹卡也可以设置为接收任何数据包(⽤于⽹络分析和监控).
----任何两个⽹卡的物理地址都是不⼀样的,是世界上唯⼀的,⽹卡地址由专门机构分配.不同⼚家使⽤不
同地址段,同⼀⼚家的任何两个⽹卡的地址也是唯⼀的.根据⽹卡的地址段(⽹卡地址的前三个字节),可以知道⽹卡的⽣产⼚家.有些⽹卡的地址也可以由⽤户去设定,但⼀般不需要.
Ethernet_II的主要特点是通过类型域标识了封装在帧⾥的数据包所采⽤的协议,类型域是⼀个有效的指针,通过它,数据链路层就可以承载多个上层(⽹络层)协议。但是,Ethernet_II的缺点是没有标识帧长度的字段。
3.RAW 802.3:(NOVELL Ethernet 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⼀种协议;
原始的802.3帧是早期的Novell NetWare⽹络的默认封装。它使⽤802.3的帧类型,但没有LLC域。同Ethernet_II的区别:将类型域改为长度域,其取值范围为:46-1500。解决了原先存在的问题。但是由于缺省了类型域,因此不能区分不同的上层协议。
接下来的2个字节是固定不变的16进制数0xFFFF,它标识此帧为Novell以太类型数据帧。
4.IEEE 802.3/802.2 LLC:这是IEEE 正式的802.3标准,它由Ethernet V2发展⽽来。它将Ethernet V2帧头的协议类型字段替换为帧长度字段(取值为
0000-05dc;⼗进制的1500 );并加⼊802.2 LLC头⽤以标志上层协议,LLC头中包含DSAP,SSAP以及Crontrol字段;
为了区别802.3数据帧中所封装的数据类型, IEEE引⼊了802.2SAP和SNAP的标准。它们⼯作在数据链路层的LLC(逻辑链路控制)⼦层。通过在802.3帧的数据字段中划分出被称为服务访问点(SAP)的新区域来解决识别上层协议的问题,这就是802.2SAP。LLC标准包括两个服务访问点,源服务访问点(SSAP)和⽬标服务访问点(DSAP)。每个SAP只有1字节长,⽽其中仅保留了6⽐特⽤于标识上层协议,所能标识的协议数有限。因此,⼜开发出另外⼀种解决⽅案,在802.2SAP的基础上⼜新添加了⼀个2字节长的类型域(同时将SAP的值置为AA),使其可以标识更多的上层协议类型,这就是802.2SNAP。
802.2SAP
常见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]
在Ethernet 802.3 SAP帧中,将原Ethernet 802.3 raw帧中2个字节的0xFFFF 变为各1个字节的DSAP和SSAP,同时增加了1个字节的"控制"字段,构成了802.2逻辑链路控制(LLC)的⾸部。LLC提供了⽆连
接(LLC类型1)和⾯向连接(LLC 类型2)的⽹络服务。LLC1是应⽤于以太⽹中,⽽LLC2应⽤在IBM SNA⽹络环境中。
5.IEEE 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
>>>>>>>>>>> ⼀、Ethernet地址
为了标识以太⽹上的每台主机,需要给每台主机上的⽹络适配器(⽹络接⼝卡)分配⼀个唯⼀的通信地址,即Ethernet地址或称为⽹卡的物理地址、MAC地址。
IEEE负责为⽹络适配器制造⼚商分配Ethernet地址块,各⼚商为⾃⼰⽣产的每块⽹络适配器分配⼀个唯⼀的Ethernet地址。因为在每块⽹络适配器出⼚时,其Ethernet地址就已被烧录到⽹络适配器中。所以,有时我们也将此地址称为烧录地址(Burned-In-Address,BIA)。
Ethernet地址长度为48⽐特,共6个字节,如图1所⽰。其中,前3字节为IEEE分配给⼚商的⼚商代码,后3字节为⽹络适配器编号。
图1Ethernet地址
⼆、CSMA/CD
在ISO的OSI参考模型中,数据链路层的功能相对简单。它只负责将数据从⼀个节点可靠地传输到相邻节点。但在局域⽹中,多个节点共享传输介质,必须有某种机制来决定下⼀个时刻,哪个设备占⽤传输介质传送数据。因此,局域⽹的数据链路层要有介质访问控制的功能。为此,⼀般将数据链路层⼜划分成两个⼦层:
●逻辑链路控制LLC(Logic Line Control)⼦层
●介质访问控制MAC(Media Access Control)⼦层
图2LLC和MAC⼦层
如图2所⽰。其中,LLC⼦层负责向其上层提供服务;MAC⼦层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC⼦层的存在屏蔽了不同物理链路种类的差异性。
在MAC⼦层的诸多功能中,⾮常重要的⼀项功能是仲裁介质的使⽤权,即规定站点何时可以使⽤通信介质。
实际上,局域⽹技术中是采⽤具有冲突检测的载波侦听多路访问(Carrier Sense Multiple Access / Collision
Detection,CSMA/CD)这种介质访问⽅法的。
在这种介质访问⽅法中规定:在发送数据之前,⼀个节点必须⾸先侦听⽹线上的载波,如果在9.6微秒的时间之内没有检测到载波(说明通信介质空闲),节点才可以发送⼀帧数据。
如果两个节点同时检测到介质空闲并同时发送出⼀帧数据,则会导致数据帧的冲突,双⽅的数据帧均被破坏。⼀⽅⾯,检测到冲突的节点会发送"冲突增强"信号(32⽐特的"1")通知介质上的每个节点发⽣了冲突。另⼀⽅⾯,发⽣冲突的节点在再次发送⾃⼰的数据帧之前会各⾃等待⼀段随机的时间。
随着以太⽹上节点数量的增加,冲突的数量也随之增加,⽽整个⽹段的有效带宽将随之减少。三、以太
⽹帧格式
⽬前,有四种不同格式的以太⽹帧在使⽤,它们分别是:
●Ethernet II即DIX 2.0:Xerox与DEC、Intel在1982年制定的以太⽹标准帧格式。Cisco名称为:ARPA。
●Ethernet 802.3 raw:Novell在1983年公布的专⽤以太⽹标准帧格式。Cisco名称为:Novell-Eth er。
其中两个主要的协议●Ethernet 802.3 SAP:IEEE在1985年公布的Ethernet 802.3的SAP版本以太⽹帧格式。Cisco 名称为:SAP。
●Ethernet 802.3 SNAP:IEEE在1985年公布的Ethernet 802.3的SNAP版本以太⽹帧格式。Ci sco名称为:SNAP。
在每种格式的以太⽹帧的开始处都有64⽐特(8字节)的前导字符,如图3所⽰。其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太⽹帧的开始。前导字符的作⽤是使接收节点进⾏同步并做好接收数据帧的准备。
图3以太⽹帧前导字符
除此之外,不同格式的以太⽹帧的各字段定义都不相同,彼此也不兼容。
四、Ethernet II帧格式
如图4所⽰,是Ethernet II类型以太⽹帧格式。
图4Ethernet II帧格式
Ethernet II类型以太⽹帧的最⼩长度为64字节(6+6+2+46+4),最⼤长度为1518字节(6+6+2+1500+4)。其中前12字节分别标识出发送数据帧的源节点MAC地址和接收数据帧的⽬标节点MA
C地址。(注:ISL封装后可达1548字节,802.1Q封装后可达1522字节)
接下来的2个字节标识出以太⽹帧所携带的上层数据类型,如16进制数0x0800代表IP协议数据,16进制数0x809B代表AppleTalk协议数据,16进制数0x8138代表Novell类型协议数据等。
在不定长的数据字段后是4个字节的帧校验序列(Frame. Check Sequence,FCS),采⽤32位C RC循环冗余校验对从"⽬标MAC地址"字段到"数据"字段的数据进⾏校验。
五、Ethernet 802.3 raw帧格式
如图5所⽰,是Ethernet 802.3 raw类型以太⽹帧格式。
图5Ethernet 802.3 raw帧格式
在Ethernet 802.3 raw类型以太⽹帧中,原来Ethernet II类型以太⽹帧中的类型字段被"总长度"字段所取代,它指明其后数据域的长度,其取值范围为:46-1500。
接下来的2个字节是固定不变的16进制数0xFFFF,它标识此帧为Novell以太类型数据帧。
六、Ethernet 802.3 SAP帧格式
如图6所⽰,是Ethernet 802. 3 SAP类型以太⽹帧格式。
图6Ethernet 802. 3 SAP帧格式
从图中可以看出,在Ethernet 802.3 SAP帧中,将原Ethernet 802.3 raw帧中2个字节的0xFFFF 变为各1个字节的DSAP和SSAP,同时增加了1个字节的"控制"字段,构成了802.2逻辑链路控制(LL C)的⾸部。LLC提供了⽆连接(LLC类型1)和⾯向连接(LLC类型2)的⽹络服务。LLC1是应⽤于以太⽹中,⽽LLC2应⽤在IBM SNA⽹络环境中。
新增的802.2 LLC⾸部包括两个服务访问点:源服务访问点(SSAP)和⽬标服务访问点(DSAP)。它们⽤于标识以太⽹帧所携带的上层数据类型,如16进制数0x06代表IP协议数据,16进制数0xE0代表Novell类型协议数据,16进制数0xF0代表IBM NetBIOS类型协议数据等。
⾄于1个字节的"控制"字段,则基本不使⽤(⼀般被设为0x03,指明采⽤⽆连接服务的802.2⽆编号数据格式)。
七、Ethernet 802.3 SNAP帧格式
如图7所⽰,是Ethernet 802. 3 SNAP类型以太⽹帧格式。
图7Ethernet 802. 3 SNAP帧格式
Ethernet 802. 3 SNAP类型以太⽹帧格式和Ethernet 802. 3 SAP类型以太⽹帧格式的主要区别在于:
●2个字节的DSAP和SSAP字段内容被固定下来,其值为16进制数0xAA。
●1个字节的"控制"字段内容被固定下来,其值为16进制数0x03。
●增加了SNAP字段,由下⾯两项组成:
◆新增了3个字节的组织唯⼀标识符(Organizationally Unique Identifier,OUI ID)字段,其值通常等于MAC地址的前3字节,即⽹络适配器⼚商代码。
◆2个字节的"类型"字段⽤来标识以太⽹帧所携带的上层数据类型。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论