IPv4报头

17 Mar 2025 | 6 分钟阅读
ipv4 Headers

Internet Protocol version 4(简称 IPv4)是一种基本的通信协议,它使得网络设备之间的数据传输更加容易。IPv4 头部是 IPv4 通信的核心组成部分,它封装了路由和传输的关键信息。IPv4 头部包含许多字段,例如源 IP 地址和目标 IP 地址、协议版本、生存时间(TTL)和校验和。这些字段对于将数据包引导通过路由器网络,以确保数据包能够正确路由并传输到其预期的目的地至关重要。IPv4 头部作为数据包结构的关键组成部分,就像一张地图,指引着可靠高效的数据传输,从而促进了全球互联网的顺畅运行。

IPv4 头部包含了指导数据包跨网络传输的信息蓝图。IPv4 头部由多个字段组成,其中包含路由和传输所需的重要信息。源 IP 地址和目标 IP 地址是其关键部分,分别指定了数据传输的起点和终点。此外,生存时间(TTL)字段通过限制数据包的寿命来防止无限循环,而协议版本字段则标识了当前使用的 Internet 协议的版本。校验和则用于验证在传输过程中数据是否被篡改,从而确保了头部的完整性。通过提供这些必需的参数,IPv4 头部能够引导数据包在复杂的网络基础设施中导航,保证了连接到全球互联网的设备之间进行准确、高效且安全的通信。

IPv4报头

ipv4 Headers

IPv4 头部是 Internet Protocol version 4 (IPv4) 系列中的一个重要组成部分,它描述了通过 IP 网络发送的数据包的格式。IPv4 头部由多个字段组成,每个字段都有其独特的功能,有助于数据传输和路由。

IPv4 头部字段

下面将详细介绍 IPv4 头部字段

  1. 版本 (4 位)
  2. 头部长度1 (4 位)
  3. 服务类型 (8 位)
  4. 总长度 (16 位)
  5. 标识 (16 位)
  6. 标志 (3 位)
  7. 片偏移 (13 位)
  8. 生存时间 (TTL, 8 位)
  9. 协议 (8 位)
  10. 头部校验和 (16 位)
  11. 源 IP 地址 (32 位)
  12. 目标 IP 地址 (32 位)
  13. 可变长度选项
  14. 填充 (可变长度)

1. 版本 (4 位): 表示 IP 协议的版本;IPv4 由二进制数 0100 表示。

2. 头部长度 (4 位): 指示 IPv4 头部由多少个 32 位字组成。此字段对于确定数据负载的起始位置至关重要。如果存在额外字段(如选项和填充),则会在最小值(5,表示 20 字节的头部长度)的基础上增加额外的 32 位字。

3. 服务类型 (8 位): 该字段最初用于质量服务(QoS)设置和显式拥塞通知(ECN)标记,现常用于区分服务代码点(DSCP)和显式拥塞通知(ECN)。显式拥塞通知(ECN)和区分服务代码点(DSCP)标记,最初是为质量服务(QoS)设置而设计的,现在经常包含在此字段中。ECN 允许路由器向端点通知拥塞,而 DSCP 则确定数据包的优先级和服务类别。

4. 总长度 (16 位): 指示 IPv4 数据包的总大小,包括头部和数据负载。

5. 标识 (16 位): 对分片数据包的每个分片分配一个唯一的标识符,以便在目标端进行重新组装。

6. 标志 (3 位): 包含三个标志:“保留”、“不分片 (DF)”和“更多分片 (MF)”。这些标志用于数据包的重新组装和分片过程。

7. 片偏移 (13 位): 指示数据分片在原始数据包中的位置,以便正确重新组装。

8. 生存时间 (TTL, 8 位): 指示数据包在被丢弃之前可以经过的路由器的最大数量。每经过一个路由器,TTL 减一,以避免无限循环。

9. 协议 (8 位): 指示数据负载中使用的协议(例如 TCP),例如 TCP、UDP 或 ICMP。

10. 头部校验和 (16 位): 通过验证头部的内容来验证其完整性,防止在传输过程中发生数据损坏。

11. 源 IP 地址 (32 位): 源 IP 地址(32 位)指定了发送方的 IP 地址。

12. 目标 IP 地址 (32 位): 目标 IP 地址(32 位)指示了目标接收方的 IP 地址。

13. 可变长度选项: 这是一个可选且很少使用的字段,可以包含多个因素,例如记录路由、时间戳等。

14. 填充 (可变长度): 当存在可选字段时,填充(可变长度)用于确保头部在 32 位边界上结束。

总而言之,IPv4 头部是一个有组织的字段集合,它提供了在 IP 网络上传输数据包所需的数据,用于数据包的传输和路由。每个字段都在保证数据包的完整性、正确的管理以及在网络中的高效传输方面发挥着独特的作用。

示例

为了演示头部字段的工作原理,让我们来看一个实际的 IPv4 数据包示例

ipv4 Headers

为了请求一个网页,您的计算机(源 IP:192.168.1.2)需要联系一个 Web 服务器(目标 IP:203.0.113.5)。您的计算机使用 TCP 作为传输协议,以确保可靠的通信。

  1. 版本 (4 位): 将版本设置为 0100,表示 IPv4。
  2. 头部长度 (4 位): 如果没有可选字段,头部长度为 5(5 * 32 位 = 20 字节)。
  3. 服务类型 (8 位): 此字段指示数据包所需的质量服务,并可能包含 DSCP 和 ECN 值。
  4. 总长度 (16 位): 此字段指示数据包的总大小,包括头部和数据负载。例如,如果总长度为 1000 字节,则头部为 20 字节,数据负载为 980 字节。
  5. 标识 (16 位): 此数据包的唯一标识号,如果数据包在传输过程中被分片,可以使用它来重新组装。
  6. 标志 (3 位): 在这种情况下,计算机可能已设置了“不分片 (DF)”标志,表示它不希望在传输过程中被分片。
  7. 片偏移 (13 位): 如果数据包被分片,此字段指示该分片在原始数据包中的位置。
  8. 生存时间 (TTL - 8 位): 应将其设置为 64 或其他默认值。数据包在穿越路由器时,TTL 在每个路由器跳数都会减一。
  9. 协议 (8 位): 将 TCP 设置为 6,表示数据负载中包含 TCP 段。
  10. 头部校验和 (16 位): 根据头部内容计算得出,以确保其在传输过程中的完整性。
  11. 源 IP 地址 (32 位): 发送计算机的 IP 地址 192.168.1.2 应设置为源 IP 地址(32 位)。
  12. 目标 IP 地址 (32 位): Web 服务器的 IP 地址 203.0.113.5 应作为目标 IP 地址(32 位)输入。
  13. 可变长度选项: 这些选项很少使用,但如果使用,它们可能包含额外数据,例如时间戳。
  14. 填充 (可变长度): 如果需要将头部对齐到 32 位边界,则会添加填充(可变长度)。

这个例子通过展示一个特定的通信场景下 IPv4 头部字段如何被填充,突出了 IPv4 头部字段在实现 IP 网络设备之间可靠数据传输方面的功能。

结论

总之,我们已经介绍了 IPv4 头部的主要特征,它是 Internet Protocol version 4 (IPv4) 套件的重要组成部分。IPv4 头部中的各个字段都具有独特的功能,有助于在网络上传输数据包的路由和传输。这些字段包括用于跳数限制的生存时间、用于标识负载协议的协议、用于头部完整性验证的校验和、用于路由的源/目标 IP 地址、用于协议识别和结构的版本和头部长度、用于质量服务标记的服务类型、用于数据包大小的总长度、用于分片数据包重组的标识、用于分片控制的标志、用于正确重组的片偏移等等。

每个字段对于确保数据包在互联网上的正确运行、完整性和高效传输都至关重要。IPv4 头部设计解决了重要的网络问题,如服务质量、错误检测和分片,有助于确保可靠和一致的通信,这构成了世界网络基础设施的基石。网络管理员、工程师以及任何参与计算机网络配置、维护和故障排除的人员都必须理解 IPv4 头部细节。