计算机网络: IPv6 简述

IPv6 作为替代 IPv4 的协议,目前正在全球高速普及,它以近乎无穷的 IP 地址数和简单高效的结构被全球各大互联网企业推广。

##IPv6 来源 开发 IPv6 的起因是因为 IPv4 不够用了,我们知道 IPv4 的 IP 地址长度为 32bit,因此最多有 2^32 种,而且在 2011 年的时候 IPv4 已经被分配完了。目前已经无法申请获得新的 IPv4 的地址了,基于此原因,IPv6 应运而生。

IPv6 与 IPv4

下面是一些 IPv6 与 IPv4 的对比。

描述 IPv4 IPv6
地址长度 32位 128位
地址数 2^10 2^128
IP 报头 20~60可变长度 40固定长度
分片/重组 由发送方(主机或路由器)对其分段,以适应要传输的下一链路 只能在源节点进行分段,且只能在目标节点完成重新装配。

从上面的对比可以看出,IPv6 占用的空间更大,其可用数目也更多,而且它固定长度的报头和分片重组策略能加快数据包的处理。

IPv4 迁移到 IPv6

虽然 IPv6 有诸多好处,但是目前整个互联网基本上是基于 IPv4 的,而且 IP 就像房子的基石一样,稍有不慎整栋大楼就会崩塌,所以目前 IPv6 的推广主要以下面两种形式展开。

双栈

这是目前最常用方法,使用该方法的 IPv6 结点还具有完整的 IPv4 实现,在于 IPv4 结点互操作时,使用 IPv4 数据报,与 IPv6 结点则使用 IPv6数据报。因此它同时具有 IPv6 和 IPv4 两种地址。 需要注意的是,如果发送方或接收方中任意一个(包括传输路径上的)仅支持 IPv4,则必须使用 IPv4 数据报。如下图,从 A 发往 F 只能用 IPv6,其原因是 IPv6 在转换成 IPv4 时一些特定字段会丢失。

隧道

这是前几年常用的方法。 但是建隧道这个方法解决了上面双栈面临的问题。假定两个 IPv6 结点中间经过 IPv4 路由器,如上图的 B 和 E,则把中间的 IPv4 路由器的集合当成隧道。在隧道发送端的 IPv6 结点可将整个 IPv6 数据报放到一个 IPv4 数据报的数据字段中。隧道接收端的 IPv6 结点最终收到该 IPv4 数据报,在确定了数据报中含有 IPv6 数据报后,从中取出 IPv6 数据报,再为该 IPv6 数据报提供路由,如下如所示: