以太帧封装.docx
- 文档编号:7928289
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:9
- 大小:91.06KB
以太帧封装.docx
《以太帧封装.docx》由会员分享,可在线阅读,更多相关《以太帧封装.docx(9页珍藏版)》请在冰豆网上搜索。
以太帧封装
以太网的帧结构分两种:
第一种是Ethernet_II的帧结构,第二种是IEEE802.3的帧结构。
EthernetII和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节的类型,而后者定义的是2字节的长度;所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式了。
一、前序字段
前序字段由8个(EthernetII)或7个(IEEE802.3)字节的交替出现的1和0组成,设置该字段的目的是指示帧的开始并便于网络中的所有接收器均能与到达帧同步,另外,该字段本身(在EthernetII中)或与帧起始定界符一起(在IEEE802.3中)能保证各帧之间用于错误检测和恢复操作的时间间隔不小于9.6毫秒。
二、帧起始定界符字段
该字段仅在IEEE802.3标准中有效,它可以被看作前序字段的延续。
实际上,该字段的组成方式继续使用前序字段中的格式,这个一个字节的字段的前6个比特位置由交替出现的1和0构成。
该字段的最后两个比特位置是11,这两位中断了同步模式并提醒接收后面跟随的是帧数据。
当控制器将接收帧送入其缓冲器时,前序字段和帧起始定界符字段均被去除。
类似地当控制器发送帧时,它将这两个字段(如果传输的是IEEE802.3帧)或一个前序字段(如果传输的是真正的以太网帧)作为前缀加入帧中。
三、目的地址字段
目的地址字段确定帧的接收者。
两个字节的源地址和目的地址可用于IEEE802.3网络,而6个字节的源地址和目的地址字段既可用于EthernetII网络又可用于IEEE802.3网络。
用户可以选择两字节或六字节的目的地址字段,但对IEEE802.3设备来说,局域网中的所有工作站必须使用同样的地址结构。
目前,几乎所有的802.3网络使用6字节寻址,帧结构中包含两字节字段选项主要是用于使用16比特地址字段的早期的局域网。
四、源地址字段
源地址字段标识发送帧的工作站。
和目前地址字段类似,源地址字段的长度可以是两个或六个字节。
只有IEEE802.3标准支持两字节源地址并要求使用的目的地址。
EthernetII和IEEE802.3标准均支持六个字节的源地址字段。
当使用六个字节的源地址字段时,前三个字节表示由IEEE分配给厂商的地址,将烧录在每一块网络接口卡的ROM中。
而制造商通常为其每一网络接口卡分配后字节。
五、类型字段
两字节的类型字段仅用于EthernetII帧。
该字段用于标识数据字段中包含的高层协议,也就是说,该字段告诉接收设备如何解释数据字段。
在以太网中,多种协议可以在局域网中同时共存,例如:
类型字段取值为十六进制0800的帧将被识别为IP协议帧,而类型字段取值为十六进制8137的帧将被识别为IPX和SPX传输协议帧。
因此,在EthernetII的类型字段中设置相应的十六进制值提供了在局域网中支持多协议传输的机制。
(1)IP协议帧该字段为0x0800
(2)ARP协议帧该字段为0x0806
(3)RARP协议帧该字段为0x0835
(4)IPX和SPX协议帧该字段为0x8137
在IEEE802.3标准中类型字段被替换为长度字段,因而EthernetII帧和IEEE802.3帧之间不能兼容。
六、长度字段
用于IEEE802.3的两字节长度字段定义了数据字段包含的字节数。
不论是在EthernetII还是IEEE802.3标准中,从前序到FCS字段的帧长度最小必须是64字节。
最小帧长度保证有足够的传输时间用于以太网网络接口卡精确地检测冲突,这一最小时间是根据网络的最大电缆长度和帧沿电缆长度传播所要求的时间确定的。
基于最小帧长为64字节和使用六字节地址字段的要求,意味着每个数据字段的最小长度为46字节。
唯一的例外是吉比特以太网。
在1000Mbit/s的工作速率下,原来的802.3标准不可能提供足够的帧持续时间使电缆长度达到100米。
这是因为在1000Mbit/s的数据率下,一个工作站在发现网段另一端出现的任何冲突之前已经处在帧传输过程中的可能性很高。
为解决这一问题,设计了将以太网最小帧长扩展为512字节的负载扩展方法。
对除了吉比特以太网之外的所有以太网版本,如果传输数据少于46个字节,应将数据字段填充至46字节。
不过,填充字符的个数不包括在长度字段值中。
同时支持以太网和IEEE802.3帧格式的网络接口卡通过这一字段的值区分这两种帧。
也就是说,因为数据字段的最大长度为1500字节,所以超过十六进制数05DC的值说明它不是长度字段(IEEE802.3).而是类型字段(EthernetII)。
七、数据字段
如前所述,数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段:
如果填入该该字段的信息少于46字节,该字段的其余部分也必须进行填充。
数据字段的最大长度为1500字节。
八、校验序列字段
既可用于EthernetII又可用于IEE802.3标准的帧校验序列字段提供了一种错误检测机制,每一个发送器均计算一个包括了地址字段、类型/长度字段和数据字段的循环冗余校验(CRC)码。
发送器于是将计算出的CRC填入四字节的FCS字段。
虽然IEEE802.3标准必然要取代EthernetII,但由于二者的相似以及EthernetII作为IEEE802.3的基础这一事实,我们将这两者均看作以太网。
以太网帧结构的变种格式
以太网帧结构的变种,仅涉及到IEEE802.3帧。
下图描述了IEEE802.3帧数据部分的结构,这个结构就是IEEE802.2定义的LLC(逻辑链路控制),LLC用来识别信息包中所承载的协议。
LLC报头包含DSAP(destinationserviceaccesspoint,目的服务访问点)、SSAP(sourceserviceaccesspoint,源服务访问点)和控制字段。
当DSAP和SSAP取特定值:
0xff和0xaa时,会分别产生两个变种:
Netware-以太网帧和以太网-SNAP帧;其他的取值均为纯802.3帧。
一、Netware-以太网帧
Netware-以太网帧对IEEE802.3的数据字段进行了专门分隔以便传输NetWare类型的数据。
实际使用的帧类型是在系统设置时通过将NetWare与特定类型的帧绑写而定义的。
下图显示了Netware-以太网帧格式。
图中的IPX=0xffff,也就是说,以太网帧中的DSAP=SSAP=0xff时,802.3帧就变成了Netware-以太网帧,用来承载NetWare类型的数据。
由于不再有LLC字段,所以这种帧通常称为简化802.3。
对那些使用或考虑使用NetWare的人,在涉及帧类型时应该小心:
Novell使用术语以太网-802.3,因此如果将NetWare设置为以太网-802.2帧,网络实际上是符合以太网-802.3标准的,也就是说,有LLC结构的。
二、以太网-SNAP帧
以太网-SNAP帧与Netware-以太网帧不同,可以用于传输多种协议。
因为在以太网-SNAP帧中包含以太网类型字段,故AppleTalkPhaseII、NetWare及TCP/IP协议均能传输。
因此,SNAP可以被看作一种扩展,它允许厂商创建自己的以太网传输协议。
以太网-SNAP标准由IEEE802.1委员会制定以保证IEEE802.3局域网和以太网之间的互操作性。
下图显示了以太网-SNAP帧格式。
尽管这种帧格式是基于IEEE802.3帧格式的,但它并不使用DSAP和SSAP信箱机制和控制字段。
相反,在这些字段中使用特定的值表示该帧是SNAP帧。
十六进制值AA被放置在DSAP和SSAP字段,而十六进制值03被放置在控制字段,这指明传输的是SNAP帧。
将十六进制值03放置在控制字段表明使用无编码格式,这是SNAP帧支持的唯一一种格式。
机构代码字段指明在后续的以太网类型字段中放置的是由哪一个机构分配的值。
在机构代码字段中的十六进制值00-00-00指明施乐公司分配了以太网类型字段的值。
通过使用以太网-SNAP帧,可以按与原始的以太网帧类似的方式获得支持多协议的能力,原始以太网设置类型字段的目的与此相同。
帧判定
接收工作站可以通过判断以太帧的字段正确解释帧中承载的数据。
为此,应首先检查跟在源地址之后的两个字节的值。
如果该值大于1500,则必定是EthernetII帧;否则该帧或者是纯IEEE802.3帧,或者是这种帧的变种。
此时,必须检查更多的字节。
如果下面的两个字节取值十六进制FF:
FF,则该帧是NetWare-以太网,这是因为在IPX头结构中前两个字节的校验和字段取值十六进制FF:
FF;如果这两个字节取值为十六进制AA:
AA,则表示是以太网-SANP帧;此外,这两个字节的任何其它取值均指示该帧纯802.3帧。
Ethernet地址
为了标识以太网上的每台主机,需要给每台主机上的网络适配器(网络接口卡)分配一个唯一的通信地址,即Ethernet地址或称为网卡的物理地址、MAC地址。
IEEE负责为网络适配器制造厂商分配Ethernet地址块,各厂商为自己生产的每块网络适配器分配一个唯一的Ethernet地址。
因为在每块网络适配器出厂时,其Ethernet地址就已被烧录到网络适配器中。
所以,有时我们也将此地址称为烧录地址(Burned-In-Address,BIA)。
Ethernet地址长度为48比特,共6个字节,如图1所示。
其中,前3字节为IEEE分配给厂商的厂商代码,后3字节为网络适配器编号。
图1Ethernet地址
以太网帧格式
目前,有四种不同格式的以太网帧在使用,它们分别是:
●EthernetII即DIX2.0:
Xerox与DEC、Intel在1982年制定的以太网标准帧格式。
Cisco名称为:
ARPA。
●Ethernet802.3raw:
Novell在1983年公布的专用以太网标准帧格式。
Cisco名称为:
Novell-Ether。
●Ethernet802.3SAP:
IEEE在1985年公布的Ethernet802.3的SAP版本以太网帧格式。
Cisco名称为:
SAP。
●Ethernet802.3SNAP:
IEEE在1985年公布的Ethernet802.3的SNAP版本以太网帧格式。
Cisco名称为:
SNAP。
在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,如图3所示。
其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。
前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。
图3以太网帧前导字符
除此之外,不同格式的以太网帧的各字段定义都不相同,彼此也不兼容。
EthernetII帧格式
如图4所示,是EthernetII类型以太网帧格式。
图4EthernetII帧格式
EthernetII类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4)。
其中前12字节分别标识出发送数据帧的源节点MAC地址和接收数据帧的目标节点MAC地址。
(注:
ISL封装后可达1548字节,802.1Q封装后可达1522字节)
接下来的2个字节标识出以太网帧所携带的上层数据类型,如16进制数0x0800代表IP协议数据,16进制数0x809B代表AppleTalk协议数据,16进制数0x8138代表Novell类型协议数据等。
在不定长的数据字段后是4个字节的帧校验序列(Frame.CheckSequence,FCS),采用32位CRC循环冗余校验对从"目标MAC地址"字段到"数据"字段的数据进行校验。
Ethernet802.3raw帧格式
如图5所示,是Ethernet802.3raw类型以太网帧格式。
图5Ethernet802.3raw帧格式
在Ethernet802.3raw类型以太网帧中,原来EthernetII类型以太网帧中的类型字段被"总长度"字段所取代,它指明其后数据域的长度,其取值范围为:
46-1500。
接下来的2个字节是固定不变的16进制数0xFFFF,它标识此帧为Novell以太类型数据帧。
六、Ethernet802.3SAP帧格式
如图6所示,是Ethernet802.3SAP类型以太网帧格式。
图6Ethernet802.3SAP帧格式
从图中可以看出,在Ethernet802.3SAP帧中,将原Ethernet802.3raw帧中2个字节的0xFFFF变为各1个字节的DSAP和SSAP,同时增加了1个字节的"控制"字段,构成了802.2逻辑链路控制(LLC)的首部。
LLC提供了无连接(LLC类型1)和面向连接(LLC类型2)的网络服务。
LLC1是应用于以太网中,而LLC2应用在IBMSNA网络环境中。
新增的802.2LLC首部包括两个服务访问点:
源服务访问点(SSAP)和目标服务访问点(DSAP)。
它们用于标识以太网帧所携带的上层数据类型,如16进制数0x06代表IP协议数据,16进制数0xE0代表Novell类型协议数据,16进制数0xF0代表IBMNetBIOS类型协议数据等。
至于1个字节的"控制"字段,则基本不使用(一般被设为0x03,指明采用无连接服务的802.2无编号数据格式)。
Ethernet802.3SNAP帧格式
如图7所示,是Ethernet802.3SNAP类型以太网帧格式。
图7Ethernet802.3SNAP帧格式
Ethernet802.3SNAP类型以太网帧格式和Ethernet802.3SAP类型以太网帧格式的主要区别在于:
●2个字节的DSAP和SSAP字段内容被固定下来,其值为16进制数0xAA。
●1个字节的"控制"字段内容被固定下来,其值为16进制数0x03。
●增加了SNAP字段,由下面两项组成:
◆新增了3个字节的组织唯一标识符(OrganizationallyUniqueIdentifier,OUIID)字段,其值通常等于MAC地址的前3字节,即网络适配器厂商代码。
EtherType:
以太网类型字段及值
EtherType是以太帧里的一个字段,用来指明应用于帧数据字段的协议。
根据IEEE802.3,Length/EtherType字段是两个八字节的字段,含义两者取一,这取决于其数值。
在量化评估中,字段中的第一个八位字节是最重要的。
而当字段值大于等于十进制值1536(即十六进制为0600)时,EtherType字段表示为MAC客户机协议(EtherType解释)的种类。
该字段的长度和EtherType详解是互斥的。
该类字段值取自IEEEEtherType字段寄存器。
EtherType字段是个极限空间,因此其分配是有限的。
只有开发新的数据传输协议的人员需要使用EtherType字段,而不管他们实际上是否真正生产任何设备。
IEEERACEtherType字段批准权威机构负责检查和批准EtherType字段。
知名协议已经分配了EtherType值,下面表格中列出了EtherType字段中常用值及其对应的协议:
Ethertype(十六进制)
协议
0x0000-0x05DC
IEEE802.3长度
0x0101–0x01FF
实验
0x0600
XEROXNSIDP
0x06600x0661
DLOG
0x0800
网际协议(IP)
0x0801
X.75Internet
0x0802
NBSInternet
0x0803
ECMAInternet
0x0804
Chaosnet
0x0805
X.25Level3
0x0806
地址解析协议(ARP:
AddressResolutionProtocol)
0x0808
帧中继ARP(FrameRelayARP)[RFC1701]
0x6559
原始帧中继(RawFrameRelay)[RFC1701]
0x8035
动态DARP(DRARP:
DynamicRARP)
反向地址解析协议(RARP:
ReverseAddressResolutionProtocol)
0x8037
NovellNetwareIPX
0x809B
EtherTalk
0x80D5
IBMSNAServicesoverEthernet
0x80F3
AppleTalk地址解析协议(AARP:
AppleTalkAddressResolutionProtocol)
0x8100
以太网自动保护开关(EAPS:
EthernetAutomaticProtectionSwitching)
0x8137
因特网包交换(IPX:
InternetPacketExchange)
0x814C
简单网络管理协议(SNMP:
SimpleNetworkManagementProtocol)
0x86DD
网际协议v6(IPv6,InternetProtocolversion6)
0x880B
点对点协议(PPP:
Point-to-PointProtocol)
0x880C
通用交换管理协议(GSMP:
GeneralSwitchManagementProtocol)
0x8847
多协议标签交换(单播)MPLS:
Multi-ProtocolLabelSwitching
0x8848
多协议标签交换(组播)(MPLS,Multi-ProtocolLabelSwitching
0x8863
以太网上的PPP(发现阶段)(PPPoE:
PPPOverEthernet
0x8864
以太网上的PPP(PPP会话阶段)(PPPoE,PPPOverEthernet
0x88BB
轻量级访问点协议(LWAPP:
LightWeightAccessPointProtocol)
0x88CC
链接层发现协议(LLDP:
LinkLayerDiscoveryProtocol)
0x8E88
局域网上的EAP(EAPOL:
EAPoverLAN)
0x9000
配置测试协议(Loopback)
0x9100
VLAN标签协议标识符(VLANTagProtocolIdentifier)
0x9200
VLAN标签协议标识符(VLANTagProtocolIdentifier)
0xFFFF
保留
EtherType:
以太网类型字段及值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 以太 封装