IP协议解析
协议头格式如下:
0-3位:版本号(4位)
明确标识使用的IP协议版本,填4表示IPv4,填6则为IPv6。这是接收设备解析数据包的首要依据。
4-7位:首部长度(4位)
记录IP头部的32位字数量,实际字节数需乘以4。例如数值5对应20字节(5×4),最大允许15代表60字节(15×4)。所有IP头部至少包含基础20字节。
8-15位:服务类型(8位)
前3位曾用于数据优先级(已弃用),中间4位定义服务类型:
- 最小延迟(适合SSH/Telnet)
- 最大吞吐量(适合FTP传输)
- 最高可靠性(关键任务数据)
- 最小成本(低优先级流量)
这些选项互斥,只能选其一。最后1位固定保留为0。
16-31位:总长度(16位)
标明整个IP数据报的总字节数(含头部和数据),最大值65535字节。超过底层网络MTU时触发分片。
16位标识字段
发送方为每个原始数据报分配唯一ID,分片后的所有碎片保持相同标识,便于接收端重组。
3位标志字段
- 第1位:保留未用
- 第2位(DF):置1禁止分片,超MTU直接丢弃
- 第3位(MF):置1表示还有后续分片,末片置0
13位片偏移
标记当前分片在原始数据中的起始位置,实际偏移值=数值×8字节。因此非末片的数据长度需为8的整数倍。
8位生存时间(TTL)
初始值常设为64或128,每经路由器减1,归零则丢弃。防止因路由环路导致数据包永续传输。
8位协议类型
指明上层协议:6对应TCP,17对应UDP,1为ICMP,其他值可查协议号列表。
16位头部校验和
仅校验头部完整性,采用CRC算法。数据部分校验由上层协议(如TCP)负责。
32位源地址 & 32位目的地址
标准IPv4地址格式(如192.168.1.100),分别标识发送方和接收方的网络接口。
可变选项字段(0-40字节)
用于记录路由路径、时间戳等特殊需求,普通通信一般不使用。若存在需确保总头部长度≤60字节。
数据载荷
承载的上层协议内容(如TCP报文或UDP数据报),长度=总长度 - 头部长度,最大可达65535-20=65495字节。