当前位置: 首页 > news >正文

MAC包头、IP包头 、UDP包头中的长度含义是啥?三者之间有啥区别?

以太网帧、IP包及TCP与UDP的报文格式
下面用通俗+技术的方式详细解释:


1. MAC包头(以太网帧头)中的长度

  • 字段名称:EtherType/Length
  • 位置:以太网帧头的第13、14字节
  • 含义
    • 如果值小于等于1500(0x05DC),表示数据部分的长度(即MAC帧中数据字段的字节数,不包括MAC头和FCS)。
    • 如果值大于等于1536(0x0600),表示上层协议类型(如0x0800表示IPv4,0x0806表示ARP),此时不表示长度。
  • 注意:现代以太网大多用“类型”模式(即大于1536),很少用“长度”模式。

2. IP包头中的长度

  • 字段名称:Total Length(总长度)
  • 位置:IP头的第3、4字节(16位)
  • 含义
    • 表示整个IP数据包的总长度,包括IP头和IP数据部分(如UDP、TCP等)。
    • 单位:字节
  • 举例:如果IP头20字节,UDP数据28字节,则Total Length=48。

3. UDP包头中的长度

  • 字段名称:Length
  • 位置:UDP头的第5、6字节(16位)
  • 含义
    • 表示整个UDP报文的长度,包括UDP头(8字节)和UDP数据部分。
    • 单位:字节
  • 举例:UDP头8字节,数据20字节,则Length=28。

4. 三者的区别与联系

包头类型长度字段含义计量范围典型值
MAC头数据字段长度或上层协议类型MAC帧数据部分46~1500字节
IP头IP包总长度(含头和数据)IP头+IP数据20~65535字节
UDP头UDP包总长度(含头和数据)UDP头+UDP数据8~65535字节
  • MAC长度:只管以太网帧的数据部分,不关心IP/UDP头。
  • IP长度:从IP头开始到IP包结束,包含IP头和所有上层数据(如UDP/TCP)。
  • UDP长度:从UDP头开始到UDP数据结束,包含UDP头和UDP数据。

层级关系(外层包住内层):

MAC帧头 | IP包头 | UDP包头 | UDP数据
  • MAC头的“长度”只管IP包(及其后面所有内容)的长度。
  • IP头的“总长度”包含UDP头和UDP数据。
  • UDP头的“长度”只包含UDP头和UDP数据。

5. 举例说明

假设你有一个UDP数据包,UDP数据为20字节:

  • UDP头长度 = 8 字节
  • UDP包总长度 = 8 + 20 = 28 字节
  • IP头长度 = 20 字节
  • IP包总长度 = 20 + 28 = 48 字节
  • MAC帧头长度 = 14 字节(不计入长度字段)
  • MAC帧数据长度 = 48 字节(即IP包总长度)

总结

  • MAC头长度:以太网帧数据部分长度(或类型)
  • IP头长度:IP包(含头和数据)总长度
  • UDP头长度:UDP包(含头和数据)总长度
  • 区别:每一层的“长度”只关心本层及其上层的数据,不包括下层头部
http://www.xdnf.cn/news/1177021.html

相关文章:

  • 【SpringAI实战】提示词工程实现哄哄模拟器
  • 中小企业安全落地:低成本漏洞管理与攻击防御方案
  • SpringCache
  • 双紫擒龙紫紫红黄安装使用攻略,2025通达信指标源码,擒龙追踪源码公式学习
  • 遨游三防平板|国产芯片鸿蒙系统单北斗三防平板,安全高效
  • 算法调试技巧
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——4. 前后端联动:打通QML与C++的任督二脉
  • 【基础】go基础学习笔记
  • 极客大挑战2019-HTTP
  • 基于Odoo的微信小程序全栈开发探索分析
  • 探索复杂列表开发:从基础到高级的全面指南
  • SSE与Websocket有什么区别?
  • 如何在 conda 中删除环境
  • rust-结构体使用示例
  • Elasticsearch 的聚合(Aggregations)操作详解
  • 使用phpstudy极简快速安装mysql
  • Java 大视界 -- Java 大数据在智能家居能源管理与节能优化中的深度应用(361)
  • API安全监测工具:数字经济的免疫哨兵
  • 五、Vue项目开发流程
  • LeetCode 2563.统计公平数对的数目
  • Effective Python 第16条:用get处理字典缺失键,避免in与KeyError的陷阱
  • 【低空经济之无人集群】
  • runc源码解读(一)——runc create
  • C++右值引用与移动语义详解
  • QML 模型
  • git更新内核补丁完整指南
  • Android LiveData 全面解析:原理、使用与最佳实践
  • 【智能协同云图库】智能协同云图库第六弹:空间模块开发
  • 飞腾D3000麒麟信安系统下配置intel I210 MAC
  • Spring AI - 函数调用演示:AI算术运算助手