帧格式

编辑 锁定 讨论999
 
帧格式,是指根据不同协议规定的帧的格式。通常由“帧头+数据信息”两部分组成。
目前的帧格式主要有以太网帧格式、数据帧格式、802.3帧格式、MAC帧格式。
中文名称
帧格式
英文名称
frame format
定  义
根据不同协议规定的帧的格式。通常由“帧头+数据信息”两部分组成。
应用学科
通信科技(一级学科),通信原理与基本技术(二级学科)
 
中文名
帧格式
外文名
frame format
定    义
根据不同协议规定的帧的格式
应用学科
通信科技,通信原理与基本技术

帧格式帧格式的概念

编辑
帧格式,是指根据不同协议规定的帧的格式。通常由“帧头+数据信息”两部分组成。
目前的帧格式主要有以太网帧格式、数据帧格式、802.3帧格式、MAC帧格式。

帧格式以太网帧格式

目前,有四种不同格式的以太网帧在使用,它们分别是:
1、Ethernet II即DIX 2.0:Xerox与DEC、Intel在1982年制定的以太网标准帧格式。Cisco名称为:ARPA。
2、Ethernet 802.3 raw:Novell在1983年公布的专用以太网标准帧格式。Cisco名称为:Novell-Ether。
3、Ethernet 802.3 SAP:IEEE在1985年公布的Ethernet 802.3的SAP版本以太网帧格式。Cisco名称为:SAP。
4、Ethernet 802.3 SNAP:IEEE在1985年公布的Ethernet 802.3的SNAP版本以太网帧格式。Cisco名称为:SNAP。
EthernetII帧格式:
在Ethernet 802.3 raw类型以太网帧中,原来Ethernet II类型以太网帧中的类型字段被"总长度"字段所取代,它指明其后数据域的长度,其取值范围为:46-1500。 接下来的2个字节是固定不变的16进制数0xFFFF,它标识此帧为Novell以太类型数据帧。
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帧格式:
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字节,即网络适配器厂商代码。 [1] 

帧格式数据帧格式

LLC子层协议规范PDU格式:
1个字节 1个字节 1个或者2个字节 N个字节
DSAP SSAP    控制字段    LLC数据   
DSAP:目的服务访问点,全1 为全局地址,全0为空地址
SSAP:源服务访问点
以太网的帧格式:
前导字符 目的MAC地址 源MAC地址 类型 IP头部 TCP头部 数据 帧校验
IEEE802.3的帧格式:
前导字符 目的MAC地址 源MAC地址 长度 DSAP SSAP 数据 帧校验
1、两种帧格式前导字符都是 10101011作为帧开始的信号,表示一帧的开始。最后两位是11,表示下面的字段是目的地址。
2、当目的地址出现多址时,表示该帧被一组站同时接收,称为“组播”(Multicast)。目的地址出现全地址时,表示该帧被局域网上所有站同时接收,称为“广播”(Broadcast),通常以DA的最高位来判断地址的类型,若第一字节最低位为“0”则表示单址,第一字节最低位为“1”则表示组播。
3、以太网帧格式“类型”用来说明后续数据的类型,IEEE802.3的帧格式“长度”用来说明后续数据(除了帧校验字段)的字节长度。
令牌环网的MAC帧格式:
SD    AC    FC    目的地址 源地址 数据 FCS    ED    FS   
SD:帧首定界符
AC: 访问控制,AC字段的编码为PPPTMRRR,3P表示优先级,3位R表示预约优先级,T是令牌位(T=0表示此帧是令牌帧,T=1表示此帧是数据帧),M是监控位;
FC:帧控制,定义帧的类型。
FCS:帧校验序列。
ED:帧尾定界符。
FS:帧状态字段。
令牌总线的MAC帧格式:
前导码 帧起始定界符SD FC    目的地址 源地址 数据 FCS    ED   
FDDI(光纤分布式数据接口)的MAC帧格式:
前导码 帧起始定界符SD FC 目的地址 源地址 数据 FCS ED FS   
前导码:接收时钟的同步。
帧起始定界符:表示帧的开始,在帧的数据字段中不会出现。
FC:帧控制字段,表示帧发送的类别。
ED:帧结束定界符,表示帧的结束,在帧的数据字段中不会出现。
FCS:帧校验序列。
FS:帧状态字段,用于返回地址识别、数据差错及数据复制等状态。
Radius报文的数据部分由三元组组成:
属性编号(1字节) 整个属性的长度(1字节) 属性值(0到多字节)
X.25 LAPB帧格式:
标志F 地址字段A 控制字段C 信息字段I 校验序列FCS 标志F

帧格式IEEE802.3帧的结构

前导码(Preamble):由0、1间隔代码组成,可以通知目标站作好接收准备。   IEEE 802.3帧的前导码占用7个字节,紧随其后的是长度为1个字节的帧首定界符(SOF)。以太网帧把SOF包含在了前导码当中,因此,前导码的长度扩大为8个字节。
帧首定界符(SOF:Start-of-Frame Delimiter):IEEE 802.3帧中的定界字节,以两个连续的代码1结尾,表示一帧实际开始。
目标和源地址(DA、SA):表示发送和接收帧的工作站的地址,各占据6个字节。其中,目标地址可以是单址,也可以是多点传送或广播地址。
类型(以太网):占用2个字节,指定接收数据的高层协议。
长度L(IEEE 802.3):表示紧随其后的以字节为单位的数据段的长度。
数据L(以太网):在经过物理层和逻辑链路层的处理之后,包含在帧中的数据将被传递给在类型段中指定的高层协议。虽然以太网版本2中并没有明确作出补齐规定,但是以太网帧中数据段的长度最小应当不低于46个字节。
数据(IEEE 802.3:LLCPDU逻辑链路层协议数据单元):IEEE 802.3帧在数据段中对接收数据的上层协议进行规定。如果数据段长度过小,使帧的总长度无法达到64个字节的最小值,那么相应软件将会自动填充数据段,以确保整个帧的长度不低于64个字节。
LLCPDU——它的范围处在46字节至1500字节之间。 最小LLCPDU长度46字节是一个限制,目的是要求局域网上所有的站点都能检测到该帧,即保证网络工作正常。如果LLCPDU小于46个字节,则发送站的MAC子层会自动填充“0”代码补齐。
802.3一个帧的长度计算公式:
DA+SA+L+LLCPDU+FCS=6+6+2+(46~1500)+4=64~1518
即当LLCPDU为46个字节时,帧最小,帧长为64字节;当LLCPDU为1500字节时,帧最大,帧长为1518字节。
帧校验序列(FCS:Frame Check Sequence):
该序列包含长度为4个字节的循环冗余校验值(CRC),由发送设备计算产生,在接收方被重新计算以确定帧在传送过程中是否被损坏。

帧格式MAC帧格式

一般802.11MAC帧帧格式
  
Frame control Duration /ID Address1 Address2 Address3 Seq- ctl Address4 Frame body FCS
  
RTS帧格式:
请求发送帧(RTS)有20个字节长,它包含有帧控制域、帧交换所需时间长度(duration)/关联号(ID)域、两个地址域和帧校验域。发送这个帧的一个目的是将完成帧交换所需时间长度(duration)信息告知其邻近的STA,也就是能收到RTS的STA就用收到的信息更新其NAV,从而防止了这些STA在告知的时间内发送信息,也就避免了冲突的发生。下图定义了RTS的格式:
RTS帧中的RA标明的是一个无线媒体上的STA,该STA为即将发送的数据帧或者管理帧的接收者,而且在RTS帧中的RA必须是某个STA的MAC地址。TA标明的是传送RTS帧的STA,它被由RTS中的RA标识的STA用来发送RTS的响应帧。在该帧中传送的时间长度(duration)信息是完成一个4步骤帧交换(RTS、CTS、DATA、ACK)所需要的时间,它由这些时间构成:传送1个CTS的时间、传送1个数据或者管理帧的时间、传送1个对数据或者管理帧应答的时间、以及在CTS和数据或者管理帧之间的帧间间隙(SIFS)和在数据或者管理帧和ACK之间的帧间间隙(SIFS)时间(一共3个SIFS)。时间长度(duration)是以微秒为单位的。如果计算的时间值不是整数,则取大于该值的最小整数。
CTS帧格式:
允许发送帧(CTS)有14个字节长,它包含有帧控制域、帧交换所需时间长度(duration)/关联号(ID)域、1个地址域和帧校验域。发送这个帧的一个目的是将完成帧交换所需时间长度(duration)信息告知其邻近的STA,也就是能收到CTS的STA就用收到的信息更新其NAV,从而防止了这些STA在告知的时间内发送信息,也就避免了冲突的发生。下图定义了CTS的格式:
CTS中的RA标识的是接收该CTS的某个STA的MAC地址,在CTS中RA必须是某个STA的MAC地址。而RA的值是从接收到的RTS帧中的TA复制过来的,而此CTS就是作为接收到的RTS的响应帧。在该帧中传送的时间长度(duration)信息是完成一个4步骤帧交换(RTS、CTS、DATA、ACK)所需要的时间,它由这些时间构成:传送1个数据或者管理帧的时间、传送1个对数据或者管理帧应答的时间、以及在数据或者管理帧和ACK之间的帧间间隙(SIFS)时间,也就是将收到的RTS帧中的时间长度(duration)减去传送CTS时间和1个SIFS时间。时间长度(duration)是以微秒为单位的。如果计算的时间值不是整数,则取大于该值的最小整数。
ACK帧格式:
确认(ACK)帧有14字节长,它包含有帧控制域、帧交换所需时间长度(duration)/关联号(ID)域、1个地址域和帧校验域。使用这个帧有两个目的,一是对刚正确接收到的数据、管理帧、PS-Poll帧的确认。这也就告诉了ACK的接收者或者是刚收到的数据、管理帧、PS-Poll帧的发送者已经正确接收了,那么也就不需要重传刚收到的数据、管理帧、PS-Poll帧。ACK帧的第二个目的是在段突发传送过程中,它可以将时间长度(duration)通知给段接收者的邻近STA,这种情况下ACK就扮演了CTS的角色。
ACK帧的RA标识的是某个接收该帧的STA的MAC地址,而且在ACK中的RA必须是某个STA的MAC地址,RA是从刚接收到的数据帧,管理帧或者PS-Poll控制帧中的第2地址域复制过来的。如果接收到的数据帧或者管理帧中的帧控制域的More Fragment位被置为0,则长度域的值置为0。如果接收到的数据帧或者管理帧中的帧控制域的More Fragment位被置为1,则长度域的值置将接收到的数据帧或者管理帧的长度域的值减去传送1个ACK帧的时间和1个SIFS得到。如果计算出的该值不是整数,则取大于该值的最小整数。
Beacon帧格式:
信标帧Beacon是相当重要的维护机制,主要用来宣告某个网络的存在。定期发送的信标,可让移动工作站得知该网络的存在,从而调整加入该网络所必要的参数。在基础型网络里,接入点必须负责发送 Beacon帧。Beacon帧所及范围即为基本服务区域。在基础型网络里,所有沟通都必须通过接入点,因此工作站不能距离太远,占则便无法接收到信标。信标并不全会用到所有位。选择性位只有在用到时才一会出现。 [2] 

帧格式帧格式分析与应用

编辑
IEEE 802.3又叫做具有CSMA~CD(载波监听多路访问/冲突检测)的网络。CSMA/CD是IEEE802.3采用的媒体接入控制技术,或称为介质访问控制技术。因此,IEEE 802.3是以“以太网”为技术原型,本质特点是采用CSMA/CD的介质访问控制技术。
IEEE 802.3协议标准系列中,数据链路层包括逻辑链路控制(LLC)子层和媒体访问控制(MAC)子层。其中MAC位于LLC和物理层之间,它使LLC适应于不同的媒体访问技术和物理媒体。MAC单独作为一个子层,就不会因为媒体访问方法改变而影响较高层次的协议。MAC由数据拆装和媒体访问管理两个模块组成,完成数据帧的封装、解封、发送和接收功能。
Ethernet上发送的的数据是按一定格式进行的,并将此数据格式称为帧。帧是一系列标准化的数据位,是以太网系统的核心部件,以太网站点采用发送信息帧的方式进行通信,帧是网络通信的基本单元,节点间发送任何信息,都要将内容放在帧的有效部分当中,通过一个或多个帧进行传送。节点之间可靠的帧传输不仅是相互通信的保障,通过帧的传输还可以实现对网络的控制等各种功能。帧结构的目的是提供一种封装来承载数据。帧的基本结构是由原始的DEC.Intel.Xerox(DIX)以太网标准定义的,最后由IEEE 802.3X提出官方标准。

帧格式基本帧结构

从1998编辑版开始,802.3标准对MAC帧的结构作了重大的变化,增添了扩展帧,基本的帧格式也有了意义重大的变化。
前导码:
处于mac帧开始处的字段为前导码字段,由7个字节组成。其功能是使接收器建立比特同步。编码形式为多个“1”或“0”交替构成的二进制序列,最后一比特为“0”。在这种编码形式下,经过曼彻斯特编码后为一周期性方波。
帧首定界符(sfd):
帧首定界符(sfd)是man帧的第2个字段,其编码形式为“10101011”序列,长度刚好为一个字节。该字段的功能是指示一帧的开始。
目的地址字段(da)和源点地址(sa):
目的地址字段(da)为第3个字段,长度为6个字节。该字段用来指出帧要发住的工作站。源点地址(sa)处于终点地址字段之后,其长度也为6个字节。该字段功能是指示发送该帧的工作站地址。每个地址字段如图4所示。
a)每个地址字段都是48比特长度。尽管IEEE802指定可用16位或者48位比特地址,但IEEE802.3的实现没有使用16位比特地址。因此16位比特地址特别地被这个标准排除了。 b)第一位(LSB)将用于目的地址字段作为地址类型标志位用于识别目的地址是单地址还是组地址。如果这位是0,标识单地址;如果是1,标识组地址,组地址则可以是0个,1个,多个或者全部连接在LAN上的网络站。源地址字段中第一位保留或设置为0。
c)第二位将用于区别局部或全局可管理地址。对全局可管理(U)地址,这一位设为0。如果一个地址是局部可管理的,这一位设为1。注意的是,对广播地址而言,这一位仍然是l。 d)地址中字节位序。以太网同大多数数据通信系统一样,传输一个字节的顺序是从最低有效位到最高有效。一般二进制数字最低位写在最左边,而最高位写在最右边,这被称为小端形式或正规形式。一个字节可以写成两个十六进制数字,第一个数字(最左边)是最高位数字,第二个(最右边)是最低位数字。例如,6字节域:08.OO.60.01.ZC.4A 将按以下顺序从左向右串行发送:00010000—00000000—00000110一10000000—00110100—
01010010
长度/类型字段:
长度/类型字段为第5个字段,其长度为2个字节,长度/类型字段具有两种意义中的一种。如果这个字段的值小于1518,那么这个字段就是长度字段,并定义后面的数据字段的长度。但是如果这个字段的值大于1518,它就定义使用因特网服务的上层协议。 长度域:0800H 表示数据为IP包,0806H 表示数据为ARP包,814CH是SNMP包,8137H为IPX/SPX包,(小于0600H的值是用于IEEE802的,表示数据包的长度。
2.5 MAC客户数据字段
MAC客户数据字段是帧要载携的用户数据,该数据有46-1500字节长,由llc子层提供或接收。
其中,DSAP(1字节)表示目的服务访问点,指出MAC帧的数据应上交给哪一个协议,
SSAP(1字节)表示源服务访问点,指出该MAC帧是从哪一个协议发送过来的,另外还有1或2字节的控制字段。此三部分构成LLC帧的首部三个字段。
2.6 填充(pad)字段
填充(pad)字段紧接的MAC客户数据字段之后,包含一个n字节序列,它们可以是任意值,允许所有数据对传输的帧是透明的。当MAC客户数据字段的长度小于46字节时,则应加以填充(内容不限),这样,整个MAC帧(包含14字节首都和四字节尾部)的最小长度是64字节或512bit。数据字段的长度不能超过标准指定的最大值1500字节。
2.7 帧检验序列(fcs)
帧检验序列(fcs)处于帧的最后,其长度为32比特,用于检验帧在传输过程中有无差错。FCS是在传输之前,在DA、SA、长度/类型和数据+填充字段上生成的。将传输的FCS值与新的FCS值比较,而新值是在接收该帧时计算得到的。这提供对DA、SA、长度/类型、数据+填充及帧校验序列(FCS)字段的差错检测。目前,采用使用CRC-32计算产生。

帧格式无效的MAC帧格式

802.3标准规定凡出现下列情况之—的即为无效的MAC帧:
(1)MAC客户数据字段的长度与长度字段的值不—致;
(2)帧的长度不是整数个字节;
(3)当收到的帧检验序列FCS查出有差错。
(4)收到的帧的MAC客户数据字段的长度不在46~1500字节之间。
对于检查出的无效MAC帧就简单地丢弃,以太网不负责重传丢失的帧。为什么长度不够的帧就是无效帧呢?
这是因为,CSMA/CD协议的一个要点就是当发送站正在发送时,若检测到碰撞则立即中止发送,然后推后一段时间后再发送。如果所发送的帧太短,还没有来得及检测到碰撞就已经发送完了.那么就无法进行碰撞检测.因而就会使CSMA/CD协议变得没有意义。因此,所发送的帧的最短长度应当要保证在发送完毕之前,必须能够检测到可能最晚来到的碰撞信号。这段时间就是以太网的两倍端到端往返时延。在802.3标准中,这段时间取为51.2us, 对于10M Bit/s速率的以太网,这段时间可以发送512bit。这样就得出了MAC帧的最短长度为512bit,或64字节。在接收端,凡长度不够64字节的帧就都认为是应当弃的无效帧。
MAC子层的标准还规定了帧间最小间隙为9.6us,相当于96bit的发送时间。这就是说,一个站在检没到总线开始空闲后,还要等待9.6us才能发送数据,这样做是为了使刚刚收到数据帧的站接收缓存来路及清理做好接收下一帧的准备。 [3]