什么是 IPv6?和 IPv4 有什么区别?


面试考察点

  1. 基础概念掌握度:面试官不仅仅是想知道 IPv6 是什么,更是想确认你是否理解 IP 协议在整个网络体系中的定位,以及为什么要从 IPv4 演进到 IPv6。

  2. 对比分析能力:考察你能否从地址空间、头部格式、安全性、配置方式等多个维度系统性地对比两种协议,而不是只记住 "IPv6 地址更长" 这种表面结论。

  3. 技术趋势意识:看看你是否关注 IPv6 的实际落地情况(国内推进力度很大),以及在实际项目中是否接触过 IPv6 相关的适配工作。

核心答案

IPv6(Internet Protocol version 6)是 IETF 设计的下一代互联网协议,最核心的目的就是解决 IPv4 地址耗尽的问题。IPv4 地址只有 32 位,理论上限约 43 亿个,早就不够用了。IPv6 把地址长度直接拉到 128 位,地址数量达到了 2 的 128 次方——这个数大到什么程度呢?地球上每一粒沙子都能分配一个 IPv6 地址,还绰绰有余。

两者最关键的区别,一张表看明白:

对比维度IPv4IPv6
地址长度32 位(4 字节)128 位(16 字节)
地址表示点分十进制,如 192.168.1.1冒号分隔十六进制,如 2001:0db8::1
地址数量约 43 亿(2³²)约 3.4×10³⁸(2¹²⁸)
头部复杂度可变长度,含校验和固定 40 字节,简化了头部
配置方式手动或 DHCP自动配置(SLAAC)
安全性IPsec 可选IPsec 内置,原生支持
广播支持广播(Broadcast)取消广播,用组播替代
分片处理路由器和发送端都可以分片只有发送端可以分片,路由器不分片
NAT 需求严重依赖 NAT地址充足,理论上不需要 NAT

深度解析

一、地址表示法的差异

IPv4 我们都很熟悉了,4 个十进制数用点号分隔,每个数 0-255,比如 192.168.1.1

IPv6 的表示规则完全不同,它用冒号分隔 8 组十六进制数:

完整格式:2001:0db8:0000:0000:0000:ff00:0042:8329
压缩格式:2001:db8::ff00:42:8329

压缩规则很简单:

  • 每组前导的零可以省略(0db8db8
  • 连续的全零组可以用 :: 替代(但一个地址中 :: 只能出现一次

我之前面试的时候,面试官就问过 "::1 代表什么?"——这就是 IPv6 的本地回环地址,相当于 IPv4 的 127.0.0.1

几个特殊的 IPv6 地址要记一下:

特殊地址IPv6 表示对应 IPv4
本地回环::1127.0.0.1
未指定地址::(全零)0.0.0.0
IPv4 映射地址::ffff:192.168.1.1无直接对应

二、头部格式对比

这个是面试官特别喜欢深挖的点。IPv6 的头部设计比 IPv4 精简了不少:

上面对比了两者的头部结构,IPv6 做了几个关键简化:

  • 去掉校验和:IPv4 每经过一个路由器都要重新计算头部校验和(因为 TTL 变了),IPv6 直接去掉了这个字段,把校验交给上层协议(TCP/UDP),路由器转发效率更高。

  • 去掉分片相关字段:IPv6 把分片信息移到了扩展头部,路由器不再需要处理分片,转发逻辑更简洁。

  • 固定头部长度:IPv6 基本头部固定 40 字节,路由器解析起来更快。如果需要额外功能,通过 "下一头部"(Next Header)字段链接扩展头部,类似链表的结构。

说实话,这个设计确实优雅。路由器只需要处理固定格式的基本头部,扩展头部是端到端的,中间设备不用管。

三、为什么 IPv4 地址会耗尽?

这事儿说起来有点戏剧性。1981 年 IPv4 协议定型的时候,43 亿个地址看着简直是天文数字。但互联网的爆发远超预期:

  • NAT 技术只是续命,不是根治方案。通过 NAT,一个公网 IP 可以让内网几十上百台设备共享,但这破坏了端到端通信模型,P2P 应用、VoIP、游戏联机都深受其害。
  • CIDR(无类别域间路由)提高了地址利用率,但总量不变。
  • 2011 年 IANA 把最后的 IPv4 地址块分配完毕,2019 年欧洲 RIPE NCC 也宣布耗尽。

国内推进 IPv6 的力度非常大,2017 年两办就印发了《推进互联网协议第六版(IPv6)规模部署行动计划》,现在各大运营商、云厂商、主流 App 都已经支持 IPv6 了。所以面试中问到这块,能结合实际落地情况聊两句,绝对是加分项。

四、IPv6 的自动配置(SLAAC)

IPv4 需要 DHCP 服务器来分配地址,或者手动配置。IPv6 原生支持无状态地址自动配置(SLAAC,Stateless Address Autoconfiguration),设备可以自己生成全球唯一地址,不需要 DHCP 服务器。

流程大致是这样的:

  1. 路由器定期发送 Router Advertisement(RA) 消息,里面包含网络前缀
  2. 设备收到网络前缀后,把自己的 MAC 地址(或随机生成的标识符)拼上去,组成完整的 128 位地址
  3. 重复地址检测(DAD),确认没有冲突后开始使用

这块当年坑过我一把——早期 SLAAC 直接用 MAC 地址生成接口标识符,这意味着设备的 MAC 地址会暴露在公网地址里,存在隐私追踪风险。后来 RFC 4941 引入了临时地址机制,用随机生成的标识符替代 MAC 地址,这个问题才解决。

面试高频追问

  1. IPv6 取消了广播,那怎么实现一对多通信?

    用组播(Multicast)替代。IPv6 把广播的功能全部用组播来实现,比如原来的广播地址 255.255.255.255 对应 IPv6 的 ff02::1(所有节点组播组)。组播比广播更精准,只有加入了特定组播组的设备才会处理消息,减少了不必要的 CPU 中断。

  2. 双栈(Dual Stack)是什么?

    IPv4 和 IPv6 共存的过渡方案。设备同时配置 IPv4 和 IPv6 两套协议栈,根据目标地址自动选择用哪个。目前绝大多数服务器和客户端都是双栈运行的。

  3. IPv6 还需要 NAT 吗?

    理论上不需要,地址够用。但实际部署中有些场景还是会用 NAT66(IPv6 到 IPv6 的地址转换),主要出于网络拓扑隐藏、多出口策略等管理需求,而不是因为地址不够。

常见面试变体

  • "IPv4 和 IPv6 的头部有什么区别?IPv6 做了哪些简化?"
  • "为什么 IPv6 取消了头部校验和?"
  • "IPv6 是如何实现自动配置地址的?"
  • "IPv4 到 IPv6 的过渡方案有哪些?"

记忆口诀

IPv4 vs IPv632 变 128 地址海量,头定四十转发更快,IPsec 内置安全上阶,自动配置无需 DHCP 来。

四个关键词:地址更大、头部更简、安全更强、配置更省

总结

IPv6 最大的价值就是把地址空间从 32 位扩展到 128 位,从根本上解决了 IPv4 地址枯竭的问题。同时在头部设计、安全性、自动配置等方面都做了优化。面试中抓住 地址空间、头部简化、SLAAC、IPsec 内置 这几个核心差异点,配上双栈过渡的实际落地情况,基本就能让面试官满意了。