知识点编号:024
难度等级:⭐⭐(掌握)
面试频率:🔥🔥🔥🔥
🎯 一句话总结
IPv4是老款手机(功能有限),IPv6是新款手机(功能强大)!📱
📊 核心区别对比
| 特性 | IPv4 🔙 | IPv6 🔜 |
|---|---|---|
| 地址长度 | 32位 | 128位 |
| 地址数量 | 43亿 | 340万亿亿亿亿 |
| 表示方法 | 十进制+点 | 十六进制+冒号 |
| 示例 | 192.168.1.1 | 2001:db8::1 |
| 头部大小 | 20-60字节 | 40字节(固定) |
| 头部字段 | 12个 | 8个 |
| 分片 | 路由器可以分片 | 只有源节点分片 |
| 校验和 | 有头部校验和 | 无(交给上层) |
| 广播 | 支持 | 不支持(用组播) |
| 配置 | 手动或DHCP | 自动配置(SLAAC) |
| NAT | 需要 | 不需要 |
| IPSec | 可选 | 强制(内置) |
| QoS | 尽力而为 | 内置流标签 |
🔍 详细对比
1. 地址空间 📏
IPv4:
- 32位 = 2^32 = 4,294,967,296(43亿)
- 示例:192.168.1.1
- 现状:地址已耗尽
IPv6:
- 128位 = 2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456
- 示例:2001:0db8:85a3:0000:0000:8a2e:0370:7334
- 现状:地址超级多,够用
比喻:
IPv4:一个小城市的门牌号
IPv6:整个宇宙的坐标系
2. 头部结构 📦
IPv4头部(20-60字节,可变):
+--------+--------+--------+--------+
| 版本 | 头长度 | 服务类型| 总长度 |
+--------+--------+--------+--------+
| 标识 | 标志 | 片偏移 |
+--------+--------+--------+--------+
| TTL | 协议 | 头校验和|
+--------+--------+--------+--------+
| 源IP地址(32位) |
+--------+--------+--------+--------+
| 目标IP地址(32位) |
+--------+--------+--------+--------+
| 选项(可变长度) |
+--------+--------+--------+--------+
问题:
- 字段太多(12个)
- 可变长度(难处理)
- 有校验和(路由器要计算)
IPv6头部(40字节,固定):
+--------+--------+--------+--------+
| 版本(4)| 流量类别(8) | 流标签(20) |
+--------+--------+--------+--------+
| 载荷长度(16) | 下一头部(8) | 跳数限制(8) |
+--------+--------+--------+--------+
| 源IP地址(128位) |
| (16字节) |
+--------+--------+--------+--------+
| 目标IP地址(128位) |
| (16字节) |
+--------+--------+--------+--------+
优点:
- 字段少(8个)
- 固定长度(快速处理)
- 无校验和(提高效率)
- 扩展头部(灵活)
3. 配置方式 ⚙️
IPv4:
方式1:手动配置
- IP:192.168.1.10
- 掩码:255.255.255.0
- 网关:192.168.1.1
- DNS:8.8.8.8
麻烦!😰
方式2:DHCP
- 自动获取IP
- 需要DHCP服务器
IPv6:
方式1:SLAAC(无状态自动配置)
- 自动生成IP地址
- 不需要服务器
- 即插即用!😀
方式2:DHCPv6
- 类似IPv4的DHCP
- 提供更多配置
方式3:手动配置
- 也可以手动配置
优势:IPv6更智能,自动化!
4. NAT需求 🔄
IPv4:
地址不够 → 必须用NAT
内网:192.168.1.x(私有地址)
↓ NAT转换
外网:58.1.2.3(公网地址)
问题:
- 端到端连接困难
- P2P应用复杂
- 需要穿透技术
IPv6:
地址超级多 → 不需要NAT!
每个设备都有公网IPv6地址
直接端到端通信
P2P应用简单!
优势:IPv6恢复了互联网的端到端特性
5. 安全性 🔒
IPv4:
- IPSec可选
- 很多设备不支持
- 安全性较差
IPv6:
- IPSec强制
- 内置加密和认证
- 更安全
示例:
IPv4:明文传输(需要额外配置安全)
IPv6:强制加密(天然安全)
6. 广播 vs 组播 📡
IPv4:
支持广播:255.255.255.255
问题:
- 广播风暴
- 影响所有设备
- 浪费带宽
IPv6:
不支持广播,只有组播
组播地址:ff00::/8
优势:
- 只发给需要的设备
- 减少网络负担
- 更高效
🔄 IPv4到IPv6的过渡
1. 双栈(Dual Stack)
设备同时支持IPv4和IPv6
配置:
IPv4:192.168.1.10
IPv6:2001:db8::1
通信:
- 访问IPv4网站 → 用IPv4
- 访问IPv6网站 → 用IPv6
- 自动选择
优点:兼容性好
缺点:需要双倍资源
2. 隧道(Tunneling)
在IPv4网络中传输IPv6数据包
[IPv6数据] → 封装到IPv4 → IPv4网络 → 解封装 → [IPv6数据]
技术:
- 6to4
- Teredo
- ISATAP
用途:IPv6孤岛之间通信
3. 转换(Translation)
NAT64/DNS64:
IPv6客户端 → NAT64 → IPv4服务器
客户端:只有IPv6
服务器:只有IPv4
中间设备:转换
用途:纯IPv6网络访问IPv4资源
💻 Java代码示例
import java.net.*;
public class IPv4vsIPv6 {
public static void main(String[] args) {
try {
// 获取本地所有地址
InetAddress localHost = InetAddress.getLocalHost();
System.out.println("主机名:" + localHost.getHostName());
// 获取所有IP地址
InetAddress[] addresses = InetAddress.getAllByName(localHost.getHostName());
for (InetAddress addr : addresses) {
if (addr instanceof Inet4Address) {
System.out.println("IPv4地址:" + addr.getHostAddress());
} else if (addr instanceof Inet6Address) {
System.out.println("IPv6地址:" + addr.getHostAddress());
}
}
// 测试连接
testConnection("www.baidu.com");
} catch (Exception e) {
e.printStackTrace();
}
}
static void testConnection(String host) {
try {
InetAddress[] addresses = InetAddress.getAllByName(host);
System.out.println("\n" + host + " 的地址:");
for (InetAddress addr : addresses) {
String type = addr instanceof Inet4Address ? "IPv4" : "IPv6";
System.out.println(type + ": " + addr.getHostAddress());
// 测试连接
boolean reachable = addr.isReachable(3000);
System.out.println(" 可达性:" + (reachable ? "✓" : "✗"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
🐛 常见面试题
Q1:IPv4和IPv6的主要区别是什么?
答案:
1. 地址空间
IPv4:32位,43亿
IPv6:128位,340万亿亿亿亿
2. 头部结构
IPv4:20-60字节,可变,12个字段
IPv6:40字节,固定,8个字段
3. 配置
IPv4:手动或DHCP
IPv6:自动配置(SLAAC)
4. NAT
IPv4:需要NAT
IPv6:不需要NAT
5. 安全
IPv4:IPSec可选
IPv6:IPSec强制
6. 广播
IPv4:支持广播
IPv6:不支持(用组播)
7. 性能
IPv6:头部简化,路由更快
实际影响:
- IPv6地址更多,不需要NAT
- IPv6配置更简单,即插即用
- IPv6更安全,内置加密
- IPv6性能更好,头部固定
Q2:为什么IPv6比IPv4快?
答案:
IPv6更快的原因:
1. 头部固定(40字节)
IPv4:可变长度,路由器要解析
IPv6:固定长度,快速转发
2. 无头部校验和
IPv4:路由器要计算校验和
IPv6:无需计算,直接转发
3. 无分片
IPv4:路由器可以分片,慢
IPv6:只有源节点分片,路由器不分片
4. 扩展头部
IPv4:选项在主头部,必须处理
IPv6:扩展头部,可选处理
5. 流标签
IPv6:内置QoS流标签
快速识别流,优化路由
6. 地址聚合
IPv6:更好的地址聚合
路由表更小,查找更快
实测:
IPv6比IPv4快5%-15%
主要体现在路由处理速度
🎓 总结
IPv4 vs IPv6的关键点:
- 地址:IPv6更多(128位)
- 头部:IPv6更简单(固定40字节)
- 配置:IPv6更智能(自动配置)
- 安全:IPv6更安全(内置IPSec)
- 性能:IPv6更快(无校验和)
记忆口诀:
地址更多六更长 📏
头部固定效率高 ⚡
配置自动更智能 🤖
安全内置更可靠 🔒
不需NAT直连接 🔗
文档创建时间:2025-10-31