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)
上一篇 2025年9月7日 上午10:01
下一篇 2025年9月7日 上午10:22


相关推荐

  • scrollIntoView 实现「建议收藏」

    scrollIntoView 实现「建议收藏」1.应用场景: 相信大家都曾经遇到过要将屏幕的某一部分滚到到用户视窗里,例如聊天信息的自动滚屏等,这个有不少解决方案: 1.聊天面板的scrolltop=scrollheight2.消息最后加一个element,然后element.scrollIntoView但是如果想要任一容器中间的一个元素,滚到该容器的视窗显示部分…

    2022年6月28日
    32
  • Hunyuan-MT-7B部署教程:基于CSDN镜像的open-webui中文界面定制化配置

    Hunyuan-MT-7B部署教程:基于CSDN镜像的open-webui中文界面定制化配置

    2026年3月13日
    2
  • linux查看日志方法

    linux查看日志方法linux日志查看tail、head、cat、tac、sed、less、echo1、命令格式:tail[必要参数][选择参数][文件]-f循环读取-q不显示处理信息-v显示详细的处理信息-c<数目>显示的字节数-n<行数>显示行数-q,–quiet,–silent从不输出给出文件名的首部-s,–sleep-interval=S与-f合用,表示在每次反复的间隔休眠S秒tail-n…

    2022年6月23日
    34
  • MySQL——事务(Transaction)详解

    MySQL——事务(Transaction)详解该博客详解MySQL中的事务一、事务定义Transaction事务:一个最小的不可再分的工作单元;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成事务只和DML语句有关,或者说DML语句才有事务。这个和业务逻辑有关,业务逻辑不同,DML语句的个数不同…

    2022年5月5日
    46
  • Egret介绍

    Egret介绍关于 EgretEgret 引擎是一个开源免费的游戏框架 用于构建二维游戏 演示程序和其他图形界面交互应用等 Egret 使用 TypeScript 脚本语言开发 当游戏完成最终的打包后 可以将程序转换为 HTML5 游戏 实现跨平台特性 Egret 不仅仅是一个基于 HTML5 技术的游戏引擎 我们的产品线中除了 Egret 引擎还提供了很多辅助游戏开发的工具 准确的来说 Egret 是一套游戏开发的解决方案 你可以使用

    2026年3月20日
    2
  • 实测全球首个龙虾原生模型,它给自己造了一个技能商店,已抢疯。

    实测全球首个龙虾原生模型,它给自己造了一个技能商店,已抢疯。

    2026年3月16日
    3

发表回复

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

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