🎯 课程摘要:IPv6 数据报由 40 字节固定长度的基本首部和可变有效载荷组成。基本首部仅含 8 个字段,取消了 IPv4 首部中诸多功能字段(改由扩展首部或新字段承担)。IPv6 定义了 6 种扩展首部,除逐跳选项外路由器均不处理,显著提升转发效率。
- IPv6 数据报由两部分组成:
- 基本首部:长度固定为 40 字节。
- 有效载荷:长度可变,最大不超过 65535 字节;由零个或多个扩展首部及其后面的数据部分构成。
- ⚠️ 重点:所有扩展首部并不属于 IPv6 数据报的首部,它们与后面的数据部分合起来构成有效载荷(又称净负荷)。
- IPv6 取消了 IPv4 首部中不必要的功能,使基本首部字段数量减少到 8 个;但由于地址扩展到 128 比特,基本首部长度反而增大到 40 字节(比 IPv4 固定部分大 20 字节)。
| 字段 | 长度 | 含义 |
|---|
| 版本 | 4 比特 | 表示 IP 协议版本,IPv6 取值为 6 |
| 通信量类 | 8 比特 | 区分不同 IPv6 数据报的类别或优先级(目前正在进行不同通信量类性能的实验) |
| 流标号 | 20 比特 | 标识一个"流",用于资源分配,对实时音视频特别有用;非实时数据流置为 0 |
| 有效载荷长度 | 16 比特 | 指明基本首部后面的有效载荷字节数(含扩展首部和数据),以字节为单位,最大 65535 |
| 下一个首部 | 8 比特 | 相当于 IPv4 的协议字段或可选字段;无扩展首部时指出后面数据是何种 PDU;有扩展首部时标识第一个扩展首部类型 |
| 跳数限制 | 8 比特 | 防止数据报永久兜圈;源点设定(最大 255 跳),每经路由器减 1,为 0 则丢弃;作用同 IPv4 的 TTL |
| 源地址 | 128 比特 | 发送端的 IPv6 地址 |
| 目的地址 | 128 比特 | 接收端的 IPv6 地址 |
- 首部总长度:4 + 8 + 20 + 16 + 8 + 8 + 128 + 128 = 320 比特 = 40 字节(固定)。
- 流:因特网上从特定源点到特定终点(单播或多播)的一系列 IPv6 数据报,如实时音视频数据的传送。
- 流所经过路径上的所有路由器都保证指明的服务质量。
- 所有属于同一个流的 IPv6 数据报都具有同样的流标号。
- ⚠️ 重点:流标号用于资源分配,对实时音视频特别有用;对传统非实时数据无用,置为 0。
- 无扩展首部时:作用同 IPv4 协议字段,值指出基本首部后面数据的协议类型。
- 取值为 6 → 有效载荷是 TCP 报文段。
- 取值为 17 → 有效载荷是 UDP 用户数据报。
- 有扩展首部时:值标识后面第一个扩展首部的类型,各扩展首部中的"下一个首部"字段依次指明其后扩展首部类型,形成链式结构。
| IPv4 首部字段 | IPv6 处理方式 | 说明 |
|---|
| 首部长度字段 | 取消 | IPv6 基本首部固定 40 字节 |
| 区分服务字段 | 取消 | 由通信量类和流标号字段实现其功能 |
| 总长度字段 | 改用有效载荷长度字段 | 首部固定,仅有效载荷可变 |
| 标识、标志、片偏移字段 | 取消 | 功能包含在分片扩展首部中 |
| 生存时间 TTL | 改称跳数限制 | 名称与作用更一致 |
| 协议字段 | 改用下一个首部字段 | 兼具协议字段和选项字段作用 |
| 首部检验和字段 | 取消 | 加快路由器处理速度 |
| 选项字段 | 取消 | 改用扩展首部实现选项功能 |
- IPv4 若在首部使用选项字段,则传送路径中全部路由器都要检查选项,降低处理速度。
- 实际上路径中的路由器对很多选项并不需要检查。
- IPv6 把原 IPv4 首部中的选项都放在扩展首部中,由路径两端的源点和终点主机处理,路径中所有路由器都不处理这些扩展首部(逐跳选项扩展首部除外)。
| 序号 | 扩展首部类型 | 说明 |
|---|
| 1 | 逐跳选项 | 路由器需处理的唯一扩展首部 |
| 2 | 路由选择 | — |
| 3 | 分片 | 承担 IPv4 的标识、标志、片偏移功能 |
| 4 | 鉴别 | — |
| 5 | 封装安全有效载荷(ESP) | — |
| 6 | 目的站选项 | — |
- 每个扩展首部由若干字段组成,长度各不相同。
- 所有扩展首部的第一个字段都是 8 比特的"下一个首部"字段,其值指出该扩展首部后面是何种扩展首部。
- ⚠️ 重点:当使用多个扩展首部时,应按上述 1→6 的先后顺序出现。
- IPv6 数据报 = 40 字节固定基本首部 + 可变有效载荷(扩展首部 + 数据,最大 65535 字节)。
- 基本首部 8 个字段:版本(4b)、通信量类(8b)、流标号(20b)、有效载荷长度(16b)、下一个首部(8b)、跳数限制(8b)、源地址(128b)、目的地址(128b)。
- IPv6 取消首部检验和、首部长度、分片字段、协议字段等,改由扩展首部或新字段承担,加快路由器处理。
- 6 种扩展首部按固定顺序出现,除逐跳选项外路由器均不处理。
- IPv6 基本首部固定为多少字节?包含哪些字段?为何字段数减少但首部反而增大?
- IPv6 取消了首部检验和字段,这样做有什么好处?为什么可以这样取消?
- IPv6 的"流"是什么概念?流标号字段对实时音视频传输有何作用?
- 简述"下一个首部"字段在有无扩展首部两种情况下的不同作用。
- IPv6 为什么要引入扩展首部?列出 RFC 2460 定义的六种扩展首部及其出现顺序。