固定 40 字节的基础头
IPv6 基础头长度固定 40 字节,字段比 IPv4 更少:版本、流量类别、流标签、载荷长度、下一头、跳数限制,外加源地址与目的地址各 16 字节。取消头校验和与路由器分片后,中间设备处理开销下降;可选项则全部移入扩展头,按链式结构串联,只有需要该功能的设备才去解析。
基本信息
| 固定长度 | 40 字节,源与目的地址各占 16 字节 |
|---|---|
| 字段数量 | 8 个,比 IPv4 少 |
| 头校验和 | 取消,由上层协议负责校验 |
| 分片 | 仅由源端执行,路由器不再分片 |
| 扩展头 | 逐跳选项、路由、分片、目的选项等按顺序串联 |
| 下一头字段 | 指向紧随其后的头部类型,形成链式解析 |
字段与位数
| 字段 | 位数 | 作用 |
|---|---|---|
| 版本 | 4 | 固定为 6 |
| 流量类别 | 8 | 区分服务等级,作用类似 IPv4 的 TOS |
| 流标签 | 20 | 标识同一业务流,供中间设备识别 |
| 载荷长度 | 16 | 扩展头与数据的总长度 |
| 下一头 | 8 | 指示后续头部类型 |
| 跳数限制 | 8 | 每经一跳减一,减到零丢弃 |
与 IPv4 的直观差异
与 IPv4 的直观差异
IPv4:头长 20 到 60 字节,含校验和,路由器可分片
IPv6:头长固定 40 字节,无校验和,仅源端可分片
IPv4 的协议字段 → IPv6 的下一头字段
IPv4 的 TTL → IPv6 的跳数限制,语义相同
IPv4 的选项 → IPv6 的扩展头,按需串联典型使用场景
- 分析抓包时定位扩展头:按下一头字段逐层解析,缺失扩展头会导致解析偏移错误
- 排查路径 MTU 问题:IPv6 路由器不分片,报文过大时会返回报文过大差错,需确认 MTU 与报文长度
- 理解抓包工具显示的载荷长度:IPv6 的载荷长度不含基础头,常见误读为总长度
- 评估设备性能:固定头长与无校验和让中间设备处理更简单,转发效率更可预测
- 编写流量分类规则:流标签可用于识别同一业务流,配合 ACL 或策略使用
跳数限制与 IPv4 的 TTL 语义相同,只是改了个名字;抓包看到值为 64 或 255 属于常见的初始值设置方式。