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

IP报文格式

IPv4 头部结构(共 20 字节,不含可选字段)

IPv4 Header Structure

1. 版本(Version)
  • 长度:4 比特

  • 作用:标识 IP 协议版本(IPv4 值为 4,IPv6 值为 6)。

  • 示例0100(表示 IPv4)。

2. 头部长度(IHL, Internet Header Length)
  • 长度:4 比特

  • 作用:表示 IP 头部的长度(以 4 字节为单位)。

    • 最小值为 5(即 20 字节,无可选字段)。

    • 最大值为 15(即 60 字节,含可选字段)。

  • 示例0101(表示头部长度为 20 字节)。

3. 服务类型(ToS, Type of Service)
  • 长度:8 比特

  • 作用:定义数据包的优先级和服务质量(QoS)参数,现多用于 DSCP(差分服务代码点) 和 ECN(显式拥塞通知)

    • DSCP(6 比特):区分流量类别(如语音、视频)。

    • ECN(2 比特):标记网络拥塞状态。

  • 示例00000000(默认无特殊服务)。

4. 总长度(Total Length)
  • 长度:16 比特

  • 作用:表示整个 IP 数据包的长度(头部 + 数据),单位是字节。

    • 最大值为 65535 字节(受 MTU 限制)。

  • 示例00 50(表示包总长度为 80 字节)。

5. 标识(Identification)
  • 长度:16 比特

  • 作用:唯一标识一个数据包,用于分片重组。

    • 同一数据包的所有分片共享相同的标识值。

  • 示例0x1234(随机生成的 ID)。

6. 标志(Flags)
  • 长度:3 比特

  • 作用:控制分片行为:

    • Bit 0:保留位(必须为 0)。

    • Bit 1(DF, Don't Fragment)

      • 1:禁止分片(如 ICMP 探测包)。

      • 0:允许分片。

    • Bit 2(MF, More Fragments)

      • 1:表示后续还有分片。

      • 0:表示最后一个分片。

  • 示例010(DF=1,禁止分片)。

7. 片偏移(Fragment Offset)
  • 长度:13 比特

  • 作用:指示当前分片在原始数据包中的位置(以 8 字节为单位)。

    • 用于接收方按顺序重组分片。

  • 示例0(表示第一个分片)。

8. 生存时间(TTL, Time To Live)
  • 长度:8 比特

  • 作用:防止数据包无限循环,每经过一个路由器减 1,归零时丢弃。

    • 常见初始值:64(Linux)或 128(Windows)。

  • 示例40(剩余跳数)。

9. 协议(Protocol)
  • 长度:8 比特

  • 作用:标识上层协议类型(传输层协议)。

    • 常见值:

      • 1:ICMP

      • 6:TCP

      • 17:UDP

  • 示例06(表示 TCP)。

10. 头部校验和(Header Checksum)
  • 长度:16 比特

  • 作用:校验 IP 头部的完整性(不包括数据部分)。

    • 每经过一个路由器需重新计算。

  • 示例0x7a3d(校验和计算结果)。

11. 源 IP 地址(Source Address)
  • 长度:32 比特(4 字节)

  • 作用:发送方的 IPv4 地址。

  • 示例192.168.1.1 → C0 A8 01 01

12. 目标 IP 地址(Destination Address)
  • 长度:32 比特(4 字节)

  • 作用:接收方的 IPv4 地址。

  • 示例8.8.8.8 → 08 08 08 08

13. 可选字段(Options)
  • 长度:可变(最多 40 字节)

  • 作用:扩展功能(如记录路由、时间戳等),现代网络较少使用。

  • 填充(Padding):确保头部长度是 4 字节的倍数。


关键注意事项

  1. 分片机制

    • 当数据包超过 MTU(如以太网默认 1500 字节)时,路由器根据 DF 标志决定是否分片。

    • 分片后,只有第一个分片包含传输层头部(如 TCP/UDP 端口号)。

  2. 校验和范围

    • 仅校验 IP 头部,传输层(如 TCP/UDP)有独立的校验和。

  3. IPv6 差异

    • IPv6 头部更简洁(固定 40 字节),删除了分片、校验和等字段。


示例抓包分析(Wireshark)

复制

Internet Protocol Version 4, Src: 192.168.1.1, Dst: 8.8.8.8
    0100 .... = Version: 4
    .... 0101 = Header Length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
    Total Length: 84
    Identification: 0x1234
    Flags: 0x40 (Don't Fragment)
    Fragment Offset: 0
    Time to Live: 64
    Protocol: TCP (6)
    Header Checksum: 0x7a3d [correct]
    Source Address: 192.168.1.1
    Destination Address: 8.8.8.8

通过理解 IP 头部字段,可以深入分析网络流量、排查路由问题或优化 QoS 策略。

相关文章:

  • 国科云:浅谈DNS在IPv6改造过程中的重要性
  • flask开发中设置Flask SQLAlchemy 的 db.Column 只存储非负整数(即 0 或正整数)
  • 内存泄漏排查方法
  • 视频字幕python自动提取
  • Redis + Caffeine多级缓存电商场景深度解析
  • 北斗导航 | 改进最小二乘残差法的接收机自主完好性监测算法原理,公式,应用,研究综述,matlab代码
  • 在java中使用Redis
  • C 语言输入输出详解
  • 从零构建大语言模型全栈开发指南:第三部分:训练与优化技术-3.2.3预训练任务设计:掩码语言建模(MLM)与下一句预测(NSP)
  • 伊利工业旅游4.0,近距离感受高品质的魅力
  • Navicat连接postgresql时出现“datlastsysoid does not exist”报错的问题
  • Ruoyi-vue前后端分离系统部署
  • 如何在linux中部署dns服务 主备dns (详细全过程)
  • vue中使用threejs的加载纹理没有效果
  • 安卓-关于setOnTouchListener和setOnClickListener冲突的问题
  • 2025_0327_生活记录
  • vue配置.eslintrc、.prettierrc详解
  • 如何让 AI 搜索为您的企业可见性战略助力飞升!
  • 外贸独立站相关知识扫盲
  • 网路传输层UDP/TCP
  • 深圳整站/百度站长平台如何添加网站
  • 手机网站制作套餐/建个网站需要多少钱
  • 揭阳市建设发展总公司网站/百度seo报价
  • 方维o2o 2.9蓝色团购网站程序源码模板/cps推广联盟
  • 福州高端品牌网站建设/网站开发费用
  • 眉山网站建设公司/培训网站模板