TCP/IP之以太网帧格式

===================================================================================================================
常用以太网帧格式目前分为3种:
    1. ethernet-II 即DIX2.0,当前以太网的事实标准,大多数TCP/IP都用这种格式
        字段                    字段长度(字节)
        ---------------------------------------
        前导码(preamble)      8
        目的MAC                 6
        源MAC                   6
        协议类型                2
        数据/填充(注[1])      46~1500
        帧校验序列(FCS)       4

    2. IEEE-802.3 + 802.2-LLC 目前交换机之间的BPDU(桥协议数据单元)包使用这种格式
        字段                    字段长度(字节)
        ---------------------------------------
        前导码(preamble)      7
        帧起始符(SFD)         1
        目的MAC                 6
        源MAC                   6
        数据长度                2
        LLC头(注[2])          3
        数据/填充(注[1])      46~1500
        帧校验序列(FCS)       4

    3. IEEE-802.3 + 802.2-SNAP 目前802.1q等采用这种格式
        字段                    字段长度(字节)
        ---------------------------------------
        前导码(preamble)      7
        帧起始符(SFD)         1
        目的MAC                 6
        源MAC                   6
        数据长度                2
        扩展的LLC头(注[3])    8
        数据/填充(注[1])      46~1500
        帧校验序列(FCS)       4

    注[1]: 如果数据长度小于46字节,则要求填充
    注[2]: LLC头由DSAP、SSAP、Control字段组成,DSAP和SSAP两个服务访问点各占1各字节,但其中只有6bit用于标识上层协议
    注[3]: 扩展的LLC头就是在原来的LLC头基础上新添加了一个2字节的协议类型域(必须同时将DSAP和SSAP的值置为0xAAAA),从而可以标识更多的上层协议
           另外还添加了一个3字节的OUI字段用于代表不同的组织
    为了保持兼容,IEEE没有分配0x0600(十进制1536)以下的数为协议类型代码,由于数据字段的最大值为1500字节,
    所以很容易从源地址之后的2个字节来判断是那种类型的帧:
        如果值超过0x0600则为类型字段,意味着是DIX帧;
        如果值小于0x0600则为长度字段,意味着是IEEE帧
    最后在1997年,IEEE-802.3经过IEEE802.3X标准的补充,支持这个字段作为类型字段和长度字段两种解释,确立了"两者都是IEEE 802.3格式"的定论。
    自此,所有以太网帧都可以统称为802.3帧.

几种常用的协议类型:
    IPv4:       0x0800
    ARP:        0x0806
    PPPoE:      0x8864
    802.1q tag: 0x8100
    IPv6:       0x86DD
    802.1x:     0x888E
===================================================================================================================
        
ARP协议帧格式:
    字段                字段长度(字节)    含义
    -----------------------------------------------------------
    硬件类型            2                   以太网固定0x0001
    协议类型            2                   和DIX类型字段相同
    硬件地址长度        1                   硬件地址一般就是MAC,所以长度固定为6
    协议长度            1                   协议一般就是IP,所以长度固定为4
    操作码              2                   用来表示这个ARP报文的类型:arp请求-1 arp响应-2 rarp请求-3 rarp响应-4
    源MAC               6                   源mac地址
    源IP                4                   源ip地址
    目的MAC             6                   目的mac地址
    目的IP              4                   目的ip地址
====================================================================================================================

IEEE 802.1q协议帧格式:
    字段                    字段长度            含义
    ----------------------------------------------------------
    前导码(preamble)      7                   同802.3
    帧起始符(SFD)         1                   同802.3
    目的MAC                 6                   同802.3
    源MAC                   6                   同802.3
    802.1q标签  -tpid       2                   tag protocol id, 固定值0x8100
                -tci        2                   tag control info, 又可以细分为priority(3bit)、 cfi(1bit)、vid(12bit)
    数据长度/协议类型       2                   同802.3
    数据/填充               42~1500             同802.3
    帧校验序列(FCS)       4                   同802.3

IEEE 802.1q协议帧和标准以太网帧区别:
    802.1q协议帧属于802.3标准以太网帧的扩展,在标准以太网帧的源MAC和type/len之间插入了4字节的标签头字段,因此,
    802.1q最大帧长由以太网帧标准的1518字节增加到1522字节。



你可能感兴趣的:(TCP/IP协议,以太网)