invisprints
Jul 23, 2017 · 3 min read

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

IPv6 来源

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

IPv6 与 IPv4

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

描述 IPv4 IPv6 地址长度 32位 128位 地址数 210 2128 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 数据报提供路由,如下如所示:

invisprints

Written by

已迁移到语雀平台https://www.yuque.com/u174839/ip259g,偶尔发些墙内不能发的文章

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade