7 题型 - IPv6
408 学习笔记:7 题型 - IPv6。保留原有知识内容、公式与图示;有对应原件时提供查看和下载入口。
本页目录
描述:IPv6 题主要考查 128 位地址的冒号十六进制表示、零压缩和 IPv4 混合表示,以及 IPv4/IPv6 基本首部、任播和配套控制协议的差异。
7.1 IPv6 地址结构
IPv6 地址长度为 128 位,按每 16 位一组划分:
$$ 128/16=8 $$
因此一个完整 IPv6 地址包含 8 个十六进制组,每组 4 个十六进制数字:
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
例如:
2001:0db8:0000:0000:0000:ff00:0042:8329
IPv6 前缀仍使用 CIDR 斜线表示,例如:
2001:db8:0:cd30::/60
7.2 IPv6 地址压缩规则
7.2.1 省略组内前导 0
每个 16 位组中的前导 0 可以省略,但不能省略组内末尾的有效 0:
0FFF -> FFF
0042 -> 42
0000 -> 0
7.2.2 用 :: 压缩连续全 0 组
一段连续的全 0 组可以压缩为两个冒号:
2001:0:0:0:0:FFF1:1321:2A21
= 2001::FFF1:1321:2A21
同一个 IPv6 地址中,:: 最多只能出现一次,否则无法唯一判断每处分别补多少个 0 组。
例如错误写法:
2001::abcd::1234
它可能对应多种完整地址:
2001:0000:0000:abcd:0000:0000:0000:1234
2001:0000:0000:0000:abcd:0000:0000:1234
2001:0000:abcd:0000:0000:0000:0000:1234
2001:0000:0000:0000:0000:abcd:0000:1234
所以无法无歧义还原。
7.2.3 展开 :: 的方法
- 数出地址中已经明确写出的十六进制组数。
- 用 $8-$ 已写组数,得到
::应补的全 0 组数。 - 若末尾采用点分十进制 IPv4 地址,则该 32 位部分按两个 16 位组计数。
7.2.4 IPv4 混合表示
IPv6 地址末尾 32 位可以写成 IPv4 点分十进制形式。例如:
::ffff:192.168.1.1
这是一种合法的 IPv4 映射 IPv6 地址表示:前面使用冒号十六进制,末尾 32 位使用点分十进制。
7.3 特殊地址 ::
::
表示 128 位全 0 的未指明地址:
0000:0000:0000:0000:0000:0000:0000:0000
- 未指明地址只有一个。
- 它不能作为正常通信的目的地址。
- 主机尚未配置标准 IPv6 地址时,可在特定初始化过程中把它作为源地址。
不要把 :: 与环回地址 ::1 混淆。
7.4 模拟题一:判断 IPv6 表示是否合法
题目给出:
I. ::
II. 2001::abcd::1234
III. ::ffff:192.168.1.1
IV. 2001:db8:0:cd30::/60
逐项判断:
| 编号 | 判断 | 原因 |
|---|---|---|
| I | 正确 | :: 是 128 位全 0 的未指明地址 |
| II | 错误 | 同一地址使用两次 ::,无法唯一展开 |
| III | 正确 | 合法的 IPv4 混合表示,IPv4 尾部占 32 位 |
| IV | 正确 | IPv6 可以使用 CIDR 前缀长度 /60 |
只有 II 错误。
答案:A,II。
7.5 IPv4 与 IPv6 的关键差异
| 比较项 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32 位 | 128 位 |
| 基本首部长度 | 最小 20 B,可变 | 固定 40 B |
| 首部校验和 | 有 | 基本首部取消首部校验和 |
| 广播 | 支持 | 不使用广播,以多播等机制替代 |
| 多播 | 支持 | 支持 |
| 任播 | IPv4 未将其定义为独立地址类型 | 支持:多个接口可配置同一个任播地址,路由把分组送达其中一个接口 |
| 地址解析 | 独立 ARP | ICMPv6 邻居发现中的邻站询问/通告 |
| 多播成员管理 | 独立 IGMP | ICMPv6 的多播听众发现 MLD |
| 反向地址解析 | RARP | 不再使用 RARP |
取消 IPv6 基本首部校验和,可以避免每个路由器因跳数限制变化而重新计算首部校验和;差错检测仍可由链路层和运输层等机制完成。
任播与多播不同:任播把分组送到共享该地址的多个接口中的一个,具体选中哪个由路由决定;多播则将分组送给相应多播组的接收者。任播不能因为“没有广播”就被误认为多播。
7.6 ICMPv6 整合的功能
在 IPv4 中,与网际层配套的常见协议包括 ICMP、IGMP、ARP 和 RARP。
IPv6 不再设置独立的“ARPv6”和“IGMPv6”:
- ICMPv6 邻站询问 NS 和邻站通告 NA 完成原 ARP 的邻居地址解析功能。
- ICMPv6 多播听众发现 MLD 完成原 IGMP 的多播成员管理功能。
- RARP 被取消,不属于 IPv6 的配套协议。
因此看到“IPv6 配套协议包括 ICMPv6、ARPv6、IGMPv6”的说法,应判错;相关功能已并入 ICMPv6。
7.7 模拟题二:IPv4 与 IPv6 叙述
判断以下四项:
- IPv4 数据报首部固定部分为 20 B,IPv6 基本首部为 40 B。
- IPv6 支持任播。
- IPv6 基本首部取消首部校验和字段。
- 与 IPv6 配套的网际层协议有 ICMPv6、ARPv6、IGMPv6。
分析:
- I 正确:IPv4 固定部分为 20 B,IPv6 基本首部固定为 40 B。
- II 正确:IPv6 支持任播;共享同一任播地址的接口中,由路由选择一个作为送达目标。IPv6 也支持多播,但那不是本题第 II 项的原文。
- III 正确:IPv6 基本首部没有首部校验和。
- IV 错误:不存在题目所说的独立 ARPv6、IGMPv6;其功能由 ICMPv6 的邻居发现和 MLD 承担。
只有 IV 错误。
答案:B,仅 IV。
7.8 解题步骤
- 检查总位数逻辑:IPv6 应还原为 8 个 16 位组。
- 每组前导 0 可以省略,但
::在一个地址里只能出现一次。 - 混合表示中,末尾 IPv4 点分十进制占两个十六进制组。
- 带
/n的写法是合法前缀表示,不要因有斜线而判错。 - 协议对比题记住 IPv6 基本首部 40 B、无首部校验和、支持任播和多播但无广播;读题时不要把“任播”抄成“多播”。
- 看到 ARPv6、IGMPv6 时,联想到 ICMPv6 邻居发现和 MLD,判断其为错误命名。
7.9 易错点
::是合法未指明地址,::1才是环回地址。- 一个地址中只能使用一次
::;多个普通0组可以分别省略前导 0,但不能出现两次零压缩。 ::ffff:192.168.1.1是合法混合表示,不是“冒号与点号不能混用”。- IPv6 仍使用 CIDR 前缀长度,例如
/60。 - IPv6 支持多播,但不支持广播。
- 任播只把分组交给共享任播地址的接口之一,多播则面向多播组接收者;原题第 II 项考的是任播。
- IPv6 基本首部固定 40 B;IPv4 的 20 B 是不含选项的最小/固定部分长度。
- IPv6 没有独立 ARPv6、IGMPv6;相关功能并入 ICMPv6。
相关知识
- 科目导航:计算机网络导航
- 阅读顺序:上一篇:SDN 软件定义网络 · 下一篇:移动 IP
- 关联专题:网络层总纲
7.10 本节复盘
- IPv6 地址为 128 位,分成 8 个 16 位十六进制组。
- 组内前导 0 可省略,连续全 0 组可用一次
::压缩。 2001::abcd::1234因使用两次::而非法;模拟题一答案为 A。::是未指明地址,::ffff:192.168.1.1是合法 IPv4 混合表示,/60是合法前缀。- IPv6 基本首部固定 40 B,取消首部校验和,支持任播与多播但不使用广播;模拟题二原题第 II 项是“支持任播”。
- ICMPv6 的邻居发现替代 ARP 功能,MLD 替代 IGMP 功能,RARP 被取消;模拟题二答案为 B。