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

发布于:2025-07-25 ⋅ 阅读:(15) ⋅ 点赞:(0)

以太网帧、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包(含头和数据)总长度
  • 区别:每一层的“长度”只关心本层及其上层的数据,不包括下层头部

网站公告

今日签到

点亮在社区的每一天
去签到