IP报文格式

打印 上一主题 下一主题

主题 1627|帖子 1627|积分 4881

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




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 字节的倍数。

关键注意事项


  • 分片机制

    • 当数据包超过 MTU(如以太网默认 1500 字节)时,路由器根据 DF 标记决定是否分片。
    • 分片后,只有第一个分片包含传输层头部(如 TCP/UDP 端口号)。

  • 校验和范围

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

  • IPv6 差异

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


示例抓包分析(Wireshark)

复制
  1. Internet Protocol Version 4, Src: 192.168.1.1, Dst: 8.8.8.8
  2.     0100 .... = Version: 4
  3.     .... 0101 = Header Length: 20 bytes
  4.     Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)
  5.     Total Length: 84
  6.     Identification: 0x1234
  7.     Flags: 0x40 (Don't Fragment)
  8.     Fragment Offset: 0
  9.     Time to Live: 64
  10.     Protocol: TCP (6)
  11.     Header Checksum: 0x7a3d [correct]
  12.     Source Address: 192.168.1.1
  13.     Destination Address: 8.8.8.8
复制代码
通过理解 IP 头部字段,可以深入分析网络流量、排查路由问题或优化 QoS 计谋。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

涛声依旧在

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表