IPv4 首部是 IP 协议中数据包(IP 数据报)的组成部分,在网络层处理。首部字段包含信息,以帮助将 IP 数据包从源地址路由到目标地址。以下是关于 IPv4 首部概述,以及各个字段的偏移量。
IP首部由13个必选字段和一个可选字段(Options)字段组成,本概述解释在不含Options内容下,个字段的数据及偏移量。
的根据1 Byte=8 bit的计算公式,结合IP首部结构图,其各字段说明如下:
id | 字段 | 长度 | 位偏移 | 偏移量 | 字段说明 |
---|---|---|---|---|---|
1 | 版本(Version | 4 | 0~3 | 0 | IP 协议的版本,对于 IPv4 来说,值为 0100对于 IPv6 来说,值为 0110 |
2 | 首部长度IHL(Internet Header Length) | 4 | 4~7 | 0 | 首部长度,以 4 字节为单位。最小值为 5(表示 20 字节,没有选项字段),最大值为 15(表示 60 字节,包含选项字段) |
3 | 服务类型(Type of Service) | 8 | 8~15 | 1 | 用于描述数据包的服务类型,例如优先级、服务质量等。如果不涉及特殊类型,因此将其设为 0。示例值:00000000 |
4 | 总长度(Total Length) | 16 | 16~31 | 2~3 | 此字段表示 IP 首部和有效载荷的总长度,以字节为单位。假设 TCP 首部长度为 20 字节,有效载荷长度为100 字节。那么,总长度 = 20 (IP 首部) + 20 (TCP 首部) + 100 (有效载荷长度)=140,然后转成16位二进制数。- 示例值:0000 0000 1000 1100 |
5 | 标识(Identification) | 16 | 32~47 | 4~5 | 此字段主要用于分片和重组数据包的过程。标识值应保持唯一,在此示例中,我们假设为 0 |
6 | 标志(Flags | 3 | 48~50 | 6~7 | 此字段包含如不分片(DF)等标志。在此示例中,我们假定 DF 为 1,禁止分片 |
7 | 片偏移(Fragment Offset | 13 | 51~63 | 6~7 | 片偏移表示此数据包片相对于原始数据报的字节位置,乘以 8。假如没有分片,片偏移为 0。- 示例值:0000000000000 |
8 | 生存时间(Time to Live, TTL) | 8 | 64~71 | 8 | 此字段可防止数据包在网络中无限传播。TTL是一个递减值,每经过一个路由器减一,减至零时丢弃数据包。假设 TTL 为 200。- 示例值:11001000 |
9 | 协议(Protocol | 8 | 72~79 | 9 | 此字段指示封装在 IP 数据包中的上层协议 |
10 | 首部校验和(Header Checksum) | 16 | 80~95 | 10~11 | 首部校验和主要用于检查 IPv4 首部在传输过程中是否发生错误。当接收端计算得到的校验和就与首部中的校验和不匹配,接收端可以检测到错误并丢弃该数据包,以确保数据的正确性。 |
11 | 源 IP 地址(Source IP address) | 32 | 96~127 | 12~15 | 数据包发送者的 IPv4 地址 |
12 | 目标 IP 地址(Destination IP address) | 32 | 128~159 | 16~19 | 数据包的最终接收者的 IPv4 地址 |
以从10.0.0.1使用TCP协议请求10.0.0.2为例 类型:普通类型 选项字段:无 片偏移:0 TCP首部和负载总长度:120 标识:0 标志:DF=1,不分片 TTL:200
IP首部各字段值如下:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。