[生活]以太网帧格式
以太网帧格式详解:
Etherne II
报头8 目标地址6 源地址6 以太类型2 有效负载46,1500 帧检验序列4
报头:8个字节,前7个0,1交替的字节(10101010)用来同步接收站,一个1010101011字节指出帧的开始位置。报头提供接收器同步和帧定界服务。
目标地址:6个字节,单播、多播或者广播。单播地址也叫个人、物理、硬件或MAC地址。广播地址全为1,0xFF FF FF FF。
源地址:6个字节。指出发送节点的单点广播地址。
以太网类型:2个字节,用来指出以太网帧内所含的上层
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
。即帧格式的协议标识符。对于IP报文来说,该字段值是0x0800。对于ARP信息来说,以太类型字段的值是0x0806。
有效负载:由一个上层协议的协议数据单元PDU构成。可以发送的最大有效负载是1500字节。由于以太网的冲突检测特性,有效负载至少是46个字节。如果上层协议数据单元长度少于46个字节,必须增补到46个字节。
帧检验序列:4个字节。验证比特完整性。
IEEE 802.3
根据IEEE802.2 和802.3标准创建的,由一个IEEE802.3报头和报尾以及一个802.2LLC报头组成。
报头7 起始限定符1 目标地址6(2) 源地址6(2) 长度2 DSAP1 SSAP1
控件2 有效负载3 帧检验序列4
,,,,,,,,,,,802.3报头,,,,,,,,,,,,,,?,,,802.2报头,,,,? ?,802.3报尾,?
IEEE802.3报头和报尾
报头:7个字节,同步接收站。位序列10101010
起始限定符:1个字节,帧开始位置的位序列10101011。
报头,起始限定符,Ethernet II的报头
目标地址:同Ethernet II。也可以为2个字节,很少用。
源地址:同Ethernet II。也可以为2个字节,很少用。
长度:2个字节。
帧检验序列:4个字节。
IEEE802.2 LLC报头
DSAP:1个字节,指出帧的目标节点的上层协议。Destination Service
Access Point
SSAP:1个字节,指出帧的源节点的上层协议。Source Service Access Point
DSAP和SSAP相当于IEEE802.3帧格式的协议标识符。为IP定义的DSAP和SSAP字段值是0x06。但一般使用SNAP报头。
控件:1,2个字节。取决于封装的是LLC数据报(Type1 LLC)还是LLC通话的一部分(Type2 LLC)。
Type1 LLC:1个字节的控件字段,是一种无连接,不可靠的LLC数据报。无编号信息,UI帧,0x03。
Type2 LLC:2个字节的控件字段,是一种面向连接,可靠的LLC对话。
对IP和ARP,从不使用可靠的LLC服务。所以,都只用Type1 LLC,控件字段设为0x03。
区分两种帧
根据源地址段后的前两个字节的类型不同。
如果值大于1500(0x05DC),说明是以太网类型字段,EthernetII帧格式。值小于等于1500,说明是长度字段,IEEE802.3帧格式。因为类型字段值最小的是0x0600。而长度最大为1500。
IEEE802.3 SNAP
虽然为IP定义的SAP是0x06,但业内并不使用该值。RFC1042规定在IEEE802.3, 802.4, 802.5网络上发送的IP数据报和ARP帧必须使用SNAP(Sub Network Access Prototol)封装格式。
报头7 起始限定符1 目标地址6 源地址6 长度2 DSAP1 SSAP1 控件1 组织代码3 以太类型2 IP数据报 帧检验序列
,,,,IEEE802.3报头,,,,,,,,,,,?IEEE8023 LLC报头,,,?,,SNAP报头,,,,? ?802.3报尾?
0x0A 0x0A 0x03 0x00-00-00 0x08-00 (38-1492字节)
Ethernet地址
为了标识以太网上的每台主机,需要给每台主机上的网络适配器(网络接口卡)分配一个唯一的通信地址,即Ethernet地址或称为网卡的物理地址、MAC地址。
IEEE负责为网络适配器制造厂商分配Ethernet地址块,各厂商为自己生产的每块网络适配器分配一个唯一的Ethernet地址。因为在每块网络适配器出厂时,其Ethernet地址就已被烧录到网络适配器中。所以,有时我们也将此地址称为烧录地址(Burned-In-Address,BIA)。
Ethernet地址长度为48比特,共6个字节,如图1所示。其中,前3字节为IEEE分配给厂商的厂商代码,后3字节为网络适配器编号。
图1 Ethernet地址
以太网帧格式
目前,有四种不同格式的以太网帧在使用,它们分别是:
?Ethernet II即DIX 2.0:Xerox与DEC、Intel在1982年制定的以太网标准帧格式。Cisco名称为:ARPA。
?Ethernet 802.3 raw:Novell在1983年公布的专用以太网标准帧格式。Cisco名称为:Novell-Ether。
?Ethernet 802.3 SAP:IEEE在1985年公布的Ethernet 802.3的SAP版本以太网帧格式。Cisco名称为:SAP。
?Ethernet 802.3 SNAP:IEEE在1985年公布的Ethernet 802.3的SNAP版本以太网帧格式。Cisco名称为:SNAP。
在每种格式的以太网帧的开始处都有64比特(8字节)的前导字符,如图3所示。其中,前7个字节称为前同步码(Preamble),内容是16进制数0xAA,最后1字节为帧起始标志符0xAB,它标识着以太网帧的开始。前导字符的作用是使接收节点进行同步并做好接收数据帧的准备。
图3 以太网帧前导字符
除此之外,不同格式的以太网帧的各字段定义都不相同,彼此也不兼容。Ethernet II帧格式
如图4所示,是Ethernet II类型以太网帧格式。
图4 Ethernet II帧格式
Ethernet II类型以太网帧的最小长度为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. Check Sequence,FCS),采用32位CRC循环冗余校验对从"目标MAC地址"字段到"数据"字段的数据进行校验。
Ethernet 802.3 raw帧格式
如图5所示,是Ethernet 802.3 raw类型以太网帧格式。
图5 Ethernet 802.3 raw帧格式
在Ethernet 802.3 raw类型以太网帧中,原来Ethernet II类型以太网帧中的类型字段被"总长度"字段所取代,它指明其后数据域的长度,其取值范围为:
46-1500。
接下来的2个字节是固定不变的16进制数0xFFFF,它标识此帧为Novell以太类型数据帧。
六、Ethernet 802.3 SAP帧格式
如图6所示,是Ethernet 802. 3 SAP类型以太网帧格式。
图6 Ethernet 802. 3 SAP帧格式
从图中可以看出,在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网络环境中。
新增的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类型以太网帧格式。
图7 Ethernet 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字节,即网络适配器厂商代码。
查了一下主要的几种成帧格式:
前导码:
由0、1间隔代码组成,可以通知目标站作好接收准备。IEEE 802.3帧的前导码占用7个字节,紧随其后的是长度为1个字节的帧首定界符(SOF)。以太网帧
把SOF包含在了前导码当中,因此,前导码的长度扩大为8个字节。
帧首定界符(SOF):
IEEE 802.3帧中的定界字节,以两个连续的代码1结尾,表示一帧实际开始。
目标和源地址:
表示发送和接收帧的工作站的地址,各占据6个字节。其中,目标地址可以是单址,也可以是多点传送或广播地址。
类型(以太网):
占用2个字节,指定接收数据的高层协议。 长度(IEEE 802.3):
表示紧随其后的以字节为单位的数据段的长度。802.3帧长最大值1518,最小值64。
数据(以太网):
在经过物理层和逻辑链路层的处理之后,包含在帧中的数据将被传递给在类型段中指定的高层协议。虽然以太网版本2中并没有明确作出补齐规定,但是以太网帧中数据段的长度最小应当不低于46个字节。 数据(IEEE 802.3):
IEEE 802.3帧在数据段中对接收数据的上层协议进行规定。如果数据段长度过小,使帧的总长度无法达到64个字节的最小值,那么相应软件将会自动填充数据段,以确保整个帧的长度不低于64个字节。 帧校验序列(FSC):该序列包含长度为4个字节的循环冗余校