1. 二层MAC地址解析
2. 数据包
	2.1 包大小
	2.2 途中分片
	2.3 关于分片举个栗子
	2.4 报头
3. IPv6地址
	3.1 IPv6地址类型
	3.2 Multicast
	3.3 单播地址 Unicast
	3.4 IPv6 地址的状态
	3.5 IPv6 地址的作用域
	3.6 IPv6地址池
	3.7 IPv6地址分配
4. 其他差异
	4.1 IPSec安全
	4.2 隐私
	4.3 路由聚合
	4.4 QoS 品质服务
	4.5 对移动特性的支持
5. 小结
	5.1 首先的是成本
	5.2 升级意愿
	5.3 IPv6 升级进行时
	5.4 相关链接

 IPv6与IPv4对比, 深入了解IPv6

1. 二层MAC地址解析

  • IPv4 利用 ARP (地址解析协议) 缓存来维护IPv4地址与二层MAC地址的关系列表. 
  • IPv6 使用 NDP (邻居发现协议) 来互连本地设备, 并将它们连接到本地网络的互联网网关。
Windows下使用如下命令, 可以看到2种地址与MAC的对应关系列表. 
 > arp -a
 > netsh interface ipv6 show neighbors
 

2. 数据包

2.1 包大小

  • IPv4 最大包 65535 (2^16-1), 最小MTU:68.
  • IPv6 最大包 4294967295 (2^32-1), 最小MTU:1280.
MTU 最大传输单元 (maximum transmission unit)
IPv6规定最小 MTU 为 1,280 个八位字节,但“强烈建议”主机使用路径 MTU 发现功能,以充分利用大于最小 MTU 的 MTU。
补充, 一些家用路由器默认MTU为1500. 若需要手动设置, 可参考这个数值.
 

2.2 途中分片

  • IPv4 以尽力送达位目的, 中途路由器可以拆包重组后继续传输. 
  • IPv6 与 IPv4 不同,中途路由器不会对大 MTU 的 IPv6 数据包进行分片,这完全由源节点负责。
 

2.3 关于分片举个栗子

就像发送包裹, 途中上飞机, 发现包裹太大, 超过中途路由器的MTU. 
  •  若是 IPv4 就会拆开包裹, 装进几个小盒子里, 重新打包继续发. 你不知道有多少路由器把你的包裹重新打包过. 
  •  而 IPv6, 就会返回ICMPv6消息: 包裹超重, 无法空运. 
    •   原节点收到消息后可以改用陆运, (其他路由途径, 支持足够大MTU); 
    •   或者按照发现的空运标准重新打包, 继续发空运(最短路径路由). 
这么看IPv6数据包不止支持更大的包, 包裹运输也更让人放心.
 

2.4 报头

  • IPv4 可变长度报头(20~60字节)。扩展功能使用扩展选项支援, 但总报头限制在60字节以内, 扩展能力有限. 
  • IPv6 固定长度报头(40字节)。扩展功能使用扩展报头实现, 可以无限扩展. 
IPv6 固定长度的报头, 简化了路由, 提高了效率. 使用扩展报头, 支持无限扩展能力. 
 

3. IPv6地址

一个设备可以有多个接口, 一个接口可以有多个IPv6地址和一个IPv4地址.
IPv6可以使用全0和全1的子网及接口. 
 
注: 
IPv6 任何包含系统的网段都应该保持/64 前缀.
因为/64前缀长度是支持无状态地址自动分配的前提.
虽然这不是强制的, 但这是推荐的也是当前主流的做法. 
 

3.1 IPv6地址类型

IPv6地址 主要由如下3种类型
  • 单播地址 Unicast: 单一目标, 唯一标识. 
  • 任播地址 Anycast: 同类设备共同使用的 单播地址. 只有最近的设备应答. 
  • 多播地址 Multicast: 同类设备共同使用的 多播地址. 多设备都会收到. 
 
未指定地址 Unspecified address (::/128)
表示未获得有效IP. 全0的地址,[::0]. 不能被分配给任何节点,也不能作为目的地址。
在主机初始化且没有取得自己的地址时,未指定地址可以用在IPv6报文的源地址字段, 例如重复地址探测时,NS报文的源地址就是未指定地址。
个人想法: 这个地址是否必要, 功能是否可以用链路本地地址取代.  链路本地地址可以自动生成, 同一个链路不同主机生成相同地址的概率很低, 即使冲突了, 也可以在DAD阶段发现后重新生成. 
 
Anycast
分配给多台设备的单播地址.  发送到任播地址的数据包只传送给配置了该地址的其中一台最近的设备. 主要为DNS和Http服务, 但业界尚未实施过.  
与普通的单播地址很难分辨. DNS等服务在多播地址有应用.  
目测这类地址可能会废弃(若没有更好的使用方式). 
 

3.2 Multicast

用于标识一组接口, 且这些接口通常属于不同设备. 发送给多播地址的数据包会被传送到该多播地址标识的所有设备. 不同作用对应不同范围的局部多播. 包含全部节点的多播(取代IPv4的广播.
IANA分配的多播地址
Windows下查看本机加入的多播地址
 >netsh interface ipv6 show joins
 

3.3 单播地址 Unicast

一个设备可以有多个接口, 一个接口可以有多个IPv6地址和一个IPv4地址.
如下表, 除了回环地址, IPv4同一时间只能有1个地址. 
而IPv6的这些地址可以同时存在, 且全局单播地址还可以有多个. 也可以没有, 只保留链路地址, 内部服务使用. 
单播地址及应用场景范围
                     
                     
                     
      颜色表示作用域 单播地址 Unicast IPv6 说明 相当于 IPv4      
      主机 环回地址
Loopback address
::1/128 始终存在的固定环回地址.
仅限主机内部使用
127.0.0.1/8      
      子网
(2层直达)
链路本地单播地址 (LLA)
Link-local unicast
FE80::/10 2层直达范围.
与IPv4的 (APIPA) 地址 (169.254.0.0/16) 类似
169.254.0.0/16      
      局域网
(可包含子网)
唯一本地单播地址 (ULA)
Unique local unicast
FC00::/7 企业内部(多个部门子网)IP
RFC4193,(2005)取代SLA站点本地地址.
10.0.0.0/8;
172.(16~31).0.0/12;
192.168.0.0/16;
100.(64~127).0.0/10
     
      广域网 全局单播地址 (GUA)
global unicast address
2000::/3 IPv6互联网上全局可路由且可达地址
2000~3FFF开头的地址
公网IP      
. . . . . . . . . . .
 
其中全球单播地址还分为如下2种
  • PA (Provider Aggregatable) 运营商可聚合, 普通用户通常获取到的IP地址
  • PI (Provider Indepedent) 不依赖特定运营商, 类似固定IP, 使用BGP协议联网, 可以自由地选择运营商(ISP}
 

3.4 IPv6 地址的状态

IPv6 主机通常通过与路由器交互并执行无状态 IPv6 地址自动配置来自动配置 IPv6 地址。
自动配置的地址在被(DAD)验证为唯一后,会处于以下一种或多种状态:
  • Valid 有效:已验证唯一性且可以发送和接收单播流量的地址。自动配置的地址具有由路由器分配的有效生命周期。
  • Preferred 首选:可用于新通信的有效地址。自动配置的地址也具有由路由器分配的首选生存期。
  • Deprecated 已弃用:无效的有效地址,无法用于新的通信。现有通信会话仍可使用已弃用的地址。
  • Invalid 无效:节点无法再发送或接收流量的地址。有效生存期到期后,地址将进入无效状态。
  • DAD 重复地址检测 Duplicate Address Detection 
补充: (Deprecated 已弃用)在当前的Windows11系统下,这种状态被翻译为(受到抨击), 备受吐槽. 
SLAAC 自动配置地址状态
           
时间 → 验证 优选 Preferred 废除 Deprecated 无效 Invalid
  DAD 可以创建
新连接
不能创建
新连接
无连接  
. . ← 有效 Valid → . .
 

3.5 IPv6 地址的作用域

Address%zone_ID, 出现在链路本地地址上. Windows系统用数字, Linux和Mac用接口名称.
个人主观吐槽以下, 这个区域ID突出地址以外, 不同的系统规则还不统一. 只是用于限制地址范围. 但地址本身有128位, 
完全可以用64位前缀的末尾子网作为不同区域的划分. 
或者64位接口ID生成规则里, 将末尾16位组为区域码. 
本地使用的 IPv6 地址的区域 ID
与全局地址不同,链路本地地址前缀可以重复使用。
链路本地地址前缀在每个链路上重复使用。
由于这种地址前缀重复使用功能,链路本地地址具有模糊性。
为了指定链路本地地址分配或位于哪个链路上,IPv6 使用了一个称为 zone identifier 区域标识符 (ID)(也称为 scope 范围 ID)的附加标识符。
区域 ID 指定一个区域,该区域是具有指定网络范围的连接部分。
RFC 4007 中指定的用于识别与本地使用地址关联的区域的语法如下:
Address%zone_ID
Address是本地使用的地址,zone_ID是一个表示区域的整数值(Windows), Linux和macOS系统可能是接口名称。
区域 ID 的值是相对于主机定义的。
因此,不同的主机可能会为同一物理区域确定不同的区域 ID 值。
例如,主机 A 可能选择 3 来表示所连接链路的区域,而主机 B 可能选择 4 来表示同一链路。
 
对于基于 Windows 的 IPv6 主机,本地使用地址的区域 ID 定义如下:
 
对于链路本地地址,区域 ID 通常是分配了该地址或将用作链路本地目标发送接口的接口索引。
接口索引是一个从 1 开始的整数,分配给 IPv6 接口,这些接口包括环回接口以及一个或多个隧道接口或 LAN 接口。您可以通过
 > netsh interface ipv6 show interface
命令的显示内容查看接口索引列表。
 

3.6 IPv6地址池

如下表, IPv6地址池数量级, 目前没有汉字或英文能够描述, 只能使用数字表示. 没有那么大的文字单位. 
按照目前建议的主流/64前缀的地址. 任何一个IPv6的子网能够分配的地址数量都是IPv4整个地址池的40亿个地址的40亿倍
由于 IPv6 的子网就有 64 位,攻击者就需要发送不现实的个数的 ping 才能了解网络映射。 全速全双工的 40Gbps 链路,需要 5000 年才能扫描完单个 64 位的子网。 
                  4 000 000 000 IPv4地址池(32bit) 2^32
                  8 000 000 000 世界人口总数约80亿
            18 000 000 000 000 000 000 /64前缀子网地址池(64bit) 2^64
340 000 000 000 000 000 000 000 000 000 000 000 000 IPv6地址池(128bit) 2^128
10^39 10^36 10^33 10^30 10^27 10^24 10^21 10^18 10^15 10^12 10^9 10^6 10^3 10n
      大陆称
      百万 台湾称
      quetta ronna yotta zetta exa peta tera giga mega kilo 英语名称
      Q R Y Z E P T G M K 符号
. . . 2022 2022 1991 1991 1975 1975 1960 1960 1873 1795 启用时间
 

3.7 IPv6地址分配

先说IPv4地址分配, 有限的40亿地址, 分配初期就给美国保留了一半.  脑洞一下, 最初设计一个有限的IPv4地址池, 再自己保留一半, 这样是否有限制其他地区发展互联网的考量.  不过NAT的出现大大削弱了地址不足的窘境. 
IPv6 近乎无限的地址池, 要怎么分?
分配过程大致会按如下层次机构负责
  • 1. IANA 互联网号码分配机构 Internet Assigned Numbers Authority 
    • IANA 负责整个IPv6地址池的划分. 负责为5个RIR分配/8地址块. 
  • 2. RIR 地区性互联网注册机构 (Regional Internet Registries) 
    • RIR 从IANA获得的地址再切块, 分配给各地的(LIR, NIR)等机构… 5个RIR的管理范围如下
      • AfriNIC (African Network Information Center) 非洲网络信息中心
      • ARIN (American Registry for Internet Numbers) 美国互联网号码注册中心
      • APNIC (Asis-Pacific Network Information Center) 亚太地区网络信息中心
      • LACNIC (Latin America and Caribbean Network Information Center) 拉美及加勒比海地区网络信息中心
      • RIPE (R. IP Euro. Network Coordination Center) 欧洲IP资源网络协调中心
  • 3. LIR 本地互联网注册机构, NIR 国家/地区互联网注册机构
    • (LIR, NIR) 这一层次就 划分到具体的国家或地区了. (LIR, NIR)负责将地址分配到各地的 ISP等机构.
  • 4. 各地的ISP等机构在分配给企业或个人
 
截至2025年5月, 统计如下表, 仍然是近乎无限的地址数量... 每个国家或地区都是如此... 
IANA 将地址池切为8块, 其中一块作为全球单播地址使用, 占总池比例: 12.5000%
这1/8再切为许多块, 还有一部分保留中, 已分配数量占总池比例: 7.6200%
RIR 这其中已分配中的一小部分再分配给5个RIR, 占总池比例: 0.2000%
APNIC 其中一个RIR: APNIC 亚太区获得地址数, 占总池比例: 0.0500%
APNIC继续分配给该区域的各个国家及地区, 已分配占总池比例: 0.0033%
China 中国从亚太区获得已分配的近一半地址, 占总池比例: 0.0016%
 
统计数据来源
 

4. 其他差异

4.1 IPSec安全

IPv6 支持 Internet协议安全标准 (IPSec) 的认证和加密,支持端到端的安全。
IPv6的网络安全不像IPv4是可选项,IPv6里的网络安全项是强制性的。
 

4.2 隐私

  • IPv4 用于隐藏地址后八位的 IP 地址掩码
  • IPv6 使用随机临时地址的 IP 隐私扩展
 

4.3 路由聚合

由于IPv4发展初期的分配规划问题,造成许多IPv4地址分配不连续,不能有效聚合路由。 日益庞大的路由表耗用大量内存,对设备成本和转发效率产生影响,这一问题促使设备制造商不断升级其产品,以提高路由寻址和转发性能。
巨大的地址空间使得IPv6可以方便的进行层次化网络部署。 层次化的网络结构可以方便的进行路由聚合,提高了路由转发效率。
 

4.4 QoS 品质服务

  • IPv4 并没有专门的手段对QoS进行支持。
  • Ipv6 新增了流标记域,提供QoS保证。
 

4.5 对移动特性的支持

IPv6协议规定必须支持移动特性。
和移动IPv4相比,移动IPv6使用邻居发现功能可直接实现外地网络的发现并得到转交地址,而不必使用外地代理。
同时,利用路由扩展头和目的地址扩展头移动节点和对等节点之间可以直接通信,解决了移动IPv4的三角路由、源地址过滤问题,移动通信处理效率更高且对应用层透明。
 

5. 小结

  • IPv4 初代互联网协议, 以尽力送达为目的, 对于安全, 隐私, 品质, 管理等因素支持不足. 还有阴谋的地址不足问题. 
  • IPv6 升级版互联网协议, 修补了上面IPv4出现的设计问题, 地址更是增加到近乎无限(目前确实可以这么理解). 
这么多好处, 升级还这么缓慢?
 

5.1 首先的是成本

软件需要升级, 老旧的硬件需要更换. 还需要人设计开发新的软硬件, 制定并实施升级计划.
  • 软件: 主流的操作系统 (Windows, macOS, Linux) 都在约2000年前后支持了IPv6. 
  • 硬件: 对于普通用户主要是家用路由器, 调研数据表明
    • 2013年之前生产销售的家庭无线路由器普遍采用WIFI4标准,受限于架构等特性,无法支持IPv6
    • 2013年至2019年期间的产品,WIFI5标准成为主流,其中高端产品开始集成IPv6协议。 但是由于成本和芯片性能的限制,低端产品未能提供IPv6支持
    • 自2019年起,WIFI6标准的产品逐渐占据市场,此类路由器普遍支持IPv6协议,为用户提供了更高效稳定的网络体验。
 

5.2 升级意愿

  • 一般用户的好处并不明显。 除非有对外提供互联网服务的需要. 
  • 2012年新增了100.64.0.0/10的电信级私有地址池, 企业级的NAT应用使得 ISP 也不急于升级IPv6了.
  • 中小企业的网络服务迁移到电信机房比自己维护服务器划算的多. 也不需要额外申请独立地址. 是IPv4还是IPv6没啥区别. 
  • 大中型企业, 高科技行业不用说, 早都升级了吧. 一些传统大型企业, 大概也和ISP一样,有NAT就不急于升级IPv6.
 
国内4G, 5G基本上都能同时获取IPv4地址和IPv6地址了
家庭宽带的光猫默认路由模式下, 光猫只有链路地址, 没有全球单播IPv6地址.  
需要手动改为桥接模式, 由自己的电脑或路由器拨号, 即可获得全球单播地址了. 
 

5.3 IPv6 升级进行时

注: 如上维基百科里提到中国是目前已知唯一倡导单栈网络的国家. 
It is the only country known to advocate towards a single-stack network and had earlier in May 2021
 
李星:IPv6单栈互联网交换中心的思考(2022)
转载自:微信公众号“下一代互联网创新基地”(id:Cerpark) 
 
推动全球互联网向IPv6单栈演进 清华大学牵头的10项互联网标准获重大奖项2023/12/20
 
中国IPv6发展状况白皮书(2024)
 
IPv6 地址规划与分配(规划参考)
 

5.4 相关链接