🎯 课程摘要:IPv6 地址长度为 128 比特,采用冒号十六进制记法,支持左侧零省略和连续零压缩(::,仅能用一次)。IPv6 地址分为单播、多播、任播三种基本类型,以及未指明地址、环回地址、多播地址、本地链路单播地址、全球单播地址等。全球单播地址采用三级结构(全球路由选择前缀 + 子网标识符 + 接口标识符)。
- 每个地址占 128 个比特,地址空间大小为 2¹²⁸,该数值大于 3.4×10³⁸。
- 形象比喻:若整个地球表面(含陆地和水面)都覆盖需要 IPv6 地址的通信设备,则 IPv6 允许每平方米拥有 7×10²³ 个 IPv6 地址。
- 若以每秒分配 100 万个地址的速率分配,需 10¹⁹ 年才能将所有可能地址分配完毕。
- ⚠️ 重点:这样巨大的地址空间,在采用合理编址方法的情况下,在可预见的未来是不会用完的。
- 128 比特每 16 比特分为一组,共 8 组,组之间用冒号分隔。
- 每组中的每 4 个比特转换为一个十六进制数。
- ⚠️ 注意:这种记法不区分大小写。
- 两个冒号间的十六进制数中,最前面的一串零可以省略不写。
- 例如
00FF 可省略为 FF,0000 可省略为 0。
- 一连串连续的零可以用一对冒号
:: 取代。 - ⚠️ 重点:在一个 IPv6 地址中只能使用一次连续零压缩,否则会导致歧义(多次压缩会得到同一个有歧义的地址,无法还原为标准形式)。
- 只使用一次连续零压缩并配合左侧零省略,可得到无歧义的简化结果。
- 冒号十六进制记法可结合点分十进制的后缀,这在 IPv4 向 IPv6 过渡阶段非常有用。
- 地址的前部分采用冒号十六进制表示,后部分采用点分十进制表示,可对冒号十六进制部分进行连续零压缩得到更简化形式。
- CIDR 的斜线表示法在 IPv6 中仍然可用。
- 斜线后面的数值指明网络前缀的比特数(如
/60 表示网络前缀为 60 比特)。 - 可配合左侧零省略和连续零压缩得到更简化表示。
| 类型 | 英文 | 含义 |
|---|
| 单播 | unicast | 传统的点对点通信 |
| 多播 | multicast | 一点对多点的通信,数据报发送到一组计算机中的每一个 |
| 任播 | anycast | IPv6 新增类型;终点是一组计算机,但数据报只交付其中一个,通常是路由算法得出距离最近的一个 |
- ⚠️ 重点:IPv6 没有采用广播的术语,而将广播看作多播的一个特例。
| 地址类型 | 格式特征 | 缩写 | 说明 | 占地址空间比例 |
|---|
| 未指明地址 | 128 比特全 0 | :: | 不能用作目的地址;仅用于还没配置到标准 IPv6 地址的主机作为源地址;仅有一个 | — |
| 环回地址 | 最低比特为 1,其余 127 比特全 0 | ::1 | 作用同 IPv4 环回地址;IPv6 的环回地址只有一个 | — |
| 多播地址 | 最高 8 比特全 1 | FF00::/8 | 功能与 IPv4 多播地址相同 | 1/256 |
| 本地链路单播地址 | 最高 10 比特为 1111111010 | FE80::/10 | 即使网络未连接因特网,仍可用 TCP/IP 协议通信;但不能与因特网上其他主机通信 | 1/1024 |
| 全球单播地址 | — | — | 使用最多的一类地址,采用三级结构 | — |
- 目的:为使路由器可以更快地查找路由,IPv6 全球单播地址采用三级结构。
| 组成部分 | 长度 | 作用 |
|---|
| 全球路由选择前缀 | 48 比特 | 分配给公司和机构,用于因特网中路由器的路由选择;相当于 IPv4 分类地址中的网络号 |
| 子网标识符 | 16 比特 | 用于各公司和机构构建自己的子网 |
| 接口标识符 | 64 比特 | 用于指明主机或路由器的单个网络接口;相当于 IPv4 分类地址中的主机号 |
- ⚠️ 重点:接口标识符有 64 个比特,足以将各种接口的硬件地址直接进行编码,这样就不需要使用地址解析协议 ARP 了。
- IPv6 地址 128 比特,冒号十六进制记法分 8 组;可用左侧零省略和连续零压缩(
:: 只用一次)简化。 - 三种基本类型:单播、多播、任播(任播为 IPv6 新增,广播视为多播特例)。
- 特殊地址:
::(未指明,仅作源地址)、::1(环回)、FF00::/8(多播)、FE80::/10(本地链路单播)。 - 全球单播地址三级结构:48b 全球路由选择前缀 + 16b 子网标识符 + 64b 接口标识符,64 位接口标识符可直接编码硬件地址,无需 ARP。
- IPv6 地址空间有多大?为什么说在可预见的未来不会用完?
- 简述 IPv6 地址的冒号十六进制记法,以及左侧零省略和连续零压缩的规则。连续零压缩为何只能使用一次?
- IPv6 地址有哪三种基本类型?任播与多播有何区别?
- 列出 RFC 4291 对 IPv6 地址的分类,并说明未指明地址和环回地址的用途与限制。
- IPv6 全球单播地址的三级结构是什么?为什么 64 比特的接口标识符使得 ARP 不再需要?