IPv6
一、 IPv5 哪里去了?
本来预计 ST-2 会成为 IPv5,后来 ST-2 被舍弃了。
二、和IPv4的区别
- 扩大的地址容量
IP 地址从 32 bit 增加到 128 bit。
进入了任播地址 (anycast address),可以把数据报交付给一组主机中的任意一个。 - 简化高效的 40 字节首部
许多 IPv4 字段被舍弃或作为选项。定长的首部运行更快处理 IP 数据报。
- 分片/重新组装
IPv6 不允许中间路由器进行分片和组装。这种操作只能在源与目的地上执行。可以大大加快网络中的 IP 转发速度。 - 首部校验和
去掉了,因为运输层和数据链路层协议执行了校验操作。此外,快速处理IP分组是关注的重点。 - 选项
选项字段的功能由“下一个首部”实现。
- 分片/重新组装
- 流标签与优先级
利于 QoS 实现。
三、从 IPv4 到 IPv6 的迁移
双栈 (dual-stack)
使用该方法的 IPv6 节点还具有完整的 IPv4 实现,具有 IPv6 和 IPv4 两种 IP 地址。这样的节点被称为 IPv6/IPV4 节点,具有发送和接收 IPv4 和 IPv6 两种数据报的能力。
可以通过 DNS 来判定一个阶段是否是 IPv6 使能的或仅 IPv4 使能的。如果要解析的节点名字是 IPv6 使能的,那么 DNS 返回一个 IPv6 地址;否则,返回一个 IPv4 地址。如果发出 DNS 请求的节点是仅 IPv4 使能的,那么 DNS 只返回一个 IPv4 地址。
在双栈方法中,如果发送方或接收方任意一个仅为 IPv4 使能的,则必须使用 IPv4 数据报。本质上,两个 IPv6 使能的节点不应互相发送 IPv4 数据报。
如上图,A 和 B 之间可以交换 IPv6 数据报,B 和 C 之间则必须通过 IPv4 数据报交流。
在执行 IPv6 到 IPv4 的转换时,有些 IPv6 特有的字段的信息将会丢失。建隧道 (tunneling)
假定两个 IPv6 节点要使用 IPv6 数据报进行交互,但是它们是经由中间 IPv4 路由器互联的。我们将两台 IPv6 路由器之间的中间 IPv4 路由器集合称为一个隧道。借助隧道,在隧道发送端的 IPv6 节点 (B),可将整个 IPv6 数据报放到一个 IPv4 数据报的载荷中。

四、教训
要改变网络层协议是及其困难的。
下起雨,也要勇敢前行