IPV4
IPv4 报头中的重要字段包括以下:
- 版本 - 包含一个 4 位二进制值 0100,用于标识这是 IPv4 数据包。
- 差分服务或区分服务 (DS) - 以前称为服务类型 (ToS) 字段,DS 字段是一个 8 位字段,用于确定每个数据包的优先级。DiffServ 字段的六个最高有效位是区分服务代码点 (DSCP)位,而后两位是显式拥塞通知 (ECN) 位。
- 报头校验和 - 这用于检测 IPv4 报头中的损坏。
- 生存时间 (TTL) - TTL包含一个 8 位二进制值,用于限制数据包的生命周期。IPv4 数据包的源设备设置初始 TTL 值。当数据包每被路由器处理一次,数值就减少一。如果 TTL 字段的值减为零,则路由器将丢弃该数据包并向源 IP 地址发送互联网控制消息协议 (ICMP) 超时消息。由于路由器减少每个数据包的 TTL,因此路由器也必须重新计算报头校验和。
- 协议 - 该字段用于标识下一级协议。此 8 位二进制值表示数据包包含的数据负载类型,使网络层将数据传送到相应的上层协议。常用的值包括 ICMP (1)、TCP (6) 和 UDP (17)。
- 源 IPv4 地址 - 包含表示数据包源 IPv4 地址的 32 位二进制值。源 IPv4 地址始终为单播地址。
- 目的 IPv4 地址 - 包含 32 位二进制值,表示数据包的目的 IPv4 地址。目的 IPv4 地址为单播、组播或广播地址。
IPV6
- 流量类别流标签下一报头负载长度跳数限制目的 IP 地址源 IP 地址40 字节
IPv6 数据包报头中的字段包括以下:S
- 版本 - 此字段包含一个 4 位二进制值 0110,用于标识这是 IPv6 数据包。
- 流量类别 - 此 8 位字段相当于IPv4 区分服务 (DS)字段。
- 流标签 - 此 20 位字段建议所有含相同流标签的数据包接受相同类型的路由器处理。
- 负载长度 - 此 16 位字段表示 IPv6 数据包的数据部分或负载的长度。这不包括 IPv6 报头的长度,它是固定的 40 字节报头。
- 下一报头 - 此 8 位字段相当于“IPv4 协议”字段。它表示数据包传送的数据负载类型,使网络层将数据传送到相应的上层协议。
- 跳数限制 - 此 8 位字段取代 IPv4 的 TTL 字段。每个转发数据包的路由器均会使此数值减一。当跳数达到 0 时,会丢弃此数据包,并且会向发送主机转发 ICMPv6 超时消息。这表明包没有到达目的地,因为超出了跳数限制。与 IPv4 不同,IPv6 不包括 IPv6 报头校验和,因为此功能同时在下层和上层执行。这意味着校验和不需要在每个路由器降低跳数限制字段时重新计算,这也提高了网络性能。
- 源 IPv6 地址 - 此 128 位字段用于标识发送主机的 IPv6 地址。
- 目的 IPv6 地址 - 此 128 位字段用于标识接收主机的 IPv6 地址。
TCP
源端口 | 一个16位字段, 用于通过端口号标识源应用程序。 |
目的端口 | 一个16位字段, 用于通过端口号标识目的应用 程序。 |
序列号 | 一个32位字段, 用于数据重组。 |
确认号 | 一个32位的字段, 用于指示已接收到数据, 并且期望从源 接收下一个字节。 |
报头长度 | 一个4位字段, 称为“数据偏移”, 表示 TCP数据段报头的长度。 |
保留 | 一个6位字段, 保留供将来使用。 |
控制位 | 一个6位字段, 包括位代码或标志, 指示 TCP段的目的和功能。 |
窗口大小 | 一个16位字段, 用于指示一次可以接受的 字节数。 |
校验和 | 一个16位字段, 用于数据段报头和数据的错误检查。 |
紧急 | 一个 16 位字段, 用于指示包含的数据是否紧急。 |
UDP
UDP 报头字段 | 描述 |
源端口 | 一个16位字段,用于通过端口号标识源应用程序。 |
目的端口 | 一个16位字段,用于通过端口号标识目的应用 程序。 |
长度 | 一个16位字段,指示UDP数据报报头的长度。 |
校验和 | 一个16位字段,用于数据报报头和数据的错误检查。 |