TCP/IP之以太网帧格式

TCP/IP之以太网帧格式常用以太网帧格式目前分为 3 种 nbsp nbsp nbsp 1 ethernet II 即 DIX2 0 当前以太网的事实标准 大多数 TCP IP 都用这种格式 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 字段

===================================================================================================================

常用以太网帧格式目前分为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字节。

























































































版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232834.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号