IP 数据报格式详解

时间:2022-07-22
本文章向大家介绍IP 数据报格式详解,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

本文将图文并茂的为您讲述 IP 报文的各个字段的含义。

格式总览

✅ 一个 IP 数据报由首部数据两部分组成。

首部

  • ⌛ 首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。
  • ⏳ 在首部的固定部分的后面是一些可选字段,其长度是可变的。

IP 数据报首部的固定部分中的各字段

  • ? 版本——占 4 位,指 IP 协议的版本。目前的 IP 协议版本号为 4 (即 IPv4)。
  • ? 首部长度——占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是 60 字节。
  • ? 区分服务——占 8 位,用来获得更好的服务。在旧标准中叫做服务类型,但实际上一直未被使用过。
  • ? 总长度——占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。
  • ? 标识(identification) ——占 16 位,它是一个计数器,用来产生 IP 数据报的标识。
  • ? 标志(flag) ——占 3 位,目前只有前两位有意义。
    • ✅ 标志字段的最低位是 MF (More Fragment)。MF = 1 表示后面“还有分片”。MF = 0 表示最后一个分片。
    • ✅ 标志字段中间的一位是 DF (Don’t Fragment) 。只有当 DF = 0 时才允许分片。
  • ? 片偏移—— 占13 位,指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。

IP 数据报的分片很重要,面试常考,务必记住。

❔ 给出一数据报的总长度为 3820 字节,其数据部分的长度为 3800 字节(使用固定首部),需要分片为长度不超过 1420 字节的数据报片。

  • 1️⃣ 因固定首部长度为 20 字节,因此每个数据报片的数据部分长度不能超过 1400 字节。
  • 2️⃣ 于是分为 3 个数据报片,其数据部分的长度分别为 1400、1400 和 1000 字节。
  • 3️⃣ 原始数据报首部被复制为各数据报片的首部,但必须修改有关字段的值(如标志字段)。
  • ? 生存时间——占8 位,记为 TTL (Time To Live),指示数据报在网络中可通过的路由器数的最大值。
  • ? 协议——占8 位,指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给那个处理过程。

IP 协议支持多种协议,IP 数据报可以封装多种协议 PDU。

  • ? 首部检验和——占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。

IP 数据报首部检验和的计算采用 16 位二进制反码求和算法

  • ? 源地址和目的地址都各占 4 字节

IP 数据报首部的可变部分

IP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。