IEEE802帧和EthernetII帧的封装格式对比

下图是《TCP/IP详解,卷1:协议》里的一幅图,其要说明的是IEEE802帧和EthernetII帧的封装格式对比。

历史上曾经出现过五种类型的以太网帧封装格式,可以参考本博转载并整理过的一篇博文《以太网的帧》。

该图至少说明了以下问题:
1. 如何区分802帧和EthernetII帧。
    《详解》里有一句话:幸运的是, 802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。
从图中可以看出802帧和EthernetII帧在13-14字节处是不同的,802帧此2字节内容是长度,EthernetII帧此处表示封装的数据类型。
EthernetII帧的类型字段取值如下:
IPv4:       0x0800
ARP:        0x0806
RARP:       0x0835
PPPoE:      0x8864
802.1Q tag: 0x8100
IPV6:       0x86DD
MPLS Label: 0x8847
可以看到,EthernetII帧这个字段的值最小也是0x0800即2048,而802帧此字段表示长度,取值为46-1500,因此从这个字段可以区分出是802帧还是EthernetII帧。

2. 802帧、EthernetII帧数据部分的最小长度和最大长度。
    《详解》里有一句话:802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分必须至少为38字节,而对于以太网,则要求最少要有46字节。为了保证这一点,必须在不足的空间插入填充(pad)字节。
    从图中可以看出802帧长度字段后面是可变长度部分:从46字节到1500字节。如果按最小长度46字节,则出去802.2LLC的3字节和802.2SNAP的5字节,留给数据部分的长度正好是38字节。同理可得出数据部分的最大长度为1500-8=1492字节。
    EthernetII帧由于类型后面没有LLC和SNAP,因此其数据长度为最小46字节最大1500字节。
    对于ARP及RARP数据包,由于其长度固定为28字节,因此需要在后面加上PAD部分18个字节,才能补满EthernetII包规定的46字节。这在抓包后可以很清楚地看到。
简单总结:
帧类型        最小有效负载  最大有效负载
802帧         38            1492
EthernetII帧  46            1500

3. 以太网帧的最小长度和最大长度。
    802帧和EthernetII帧,以及另外的两种以太网帧,其最小长度和最大长度都相同:最小64字节,最大1518字节。
##################################################################
Ethernet II以太网帧格式:


目标MAC   源MAC   类型    数据          FCS
6字节     6字节   2字节   46-1500字节   4字节


最小6+6+2+46+4 = 64,最大6+6+2+1500+4 = 1518。
##################################################################
Ethernet 802.3 SAP帧格式:


目标MAC   源MAC   总长    DSAP    SSAP    控制   数据         FCS
6字节     6字节   2字节   1字节   1字节   1字节  43-1497字节  4字节


最小:6+6+2+1+1+1+43+4 = 64,最大:6+6+2+1+1+1+1497+4 = 1518。
##################################################################
 
 

你可能感兴趣的:(IEEE802帧和EthernetII帧的封装格式对比)