1.6.2 双协议栈技术
双协议栈(DualStack)是目前在运营商进行 IPv6改造中的一种主流技术,指在一台设备上同时启用 IPv4协议栈和 IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和 IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了 IPv4地址和 IPv6地址,并很可能分别连接了 IPv4网络和 IPv6网络。如果这台设备是一个计算机,那么它将同时拥有 IPv4地址和 IPv6地址,并具备同时处理这两个协议地址的功能。采用双协议栈是使 IPv6 节点保持与纯 IPv4节点兼容最直接的方式,针对的对象是通信端节点(包括主机、路由器)。这种方式对IPv4和 IPv6提供了完全的兼容,但是对于 IP地址耗尽的问题帮助有限, 是一种 IPv4到 IPv6的过渡技术。由于需要双路由基础设施,这种方式反而增加了网络的复杂度。
在网络运行双协议栈的时候,作为网络中的主机或路由器设备在接收数据包和发送数据包的工作方式如下。
1. 接收数据包
双栈节点与其他类型的多栈节点的工作方式相同。链路层接收到数据段,拆开并检查包头。如果IPv4/IPv6包头中的第一个字段,即IP数据包的版本号是 4,该数据包就由 IPv4的协议栈来处理;如果版本号是6,则由 IPv6的协议栈处理;如果建立了自动隧道机制,则采用相应的技术将数据包重新整合为 IPv6数据包,由IPv6的协议栈来处理。
2. 发送数据包
由于双栈主机同时支持IPv4和 IPv6两种协议,所以当其在网络中通信时需要根据情况确定使用其中一种协议栈进行通信,这就需要制定双协议栈的工作方式。 在网络通信过程中,目的地址作为路由选择的主要参数,因而根据应用程序所使用 的目的地址的协议类型对双协议栈的工作方式做出以下约定。
(1) 若应用程序使用的目的地址为 IPv4地址,则使用 IPv4协议。
(2) 若应用程序使用的目的地址为IPv6地址,且为本地在线网络,则使用 IPv6协议。
(3) 若应用程序使用的目的地址为 IPv4兼容的IPv6地址,且非本地在线网络,则使用 IPv4协议,此时的 IPv6将封装在 IPv4中。
(4) 若应用程序使用的目的地址是非 IPv4兼容的IPv6地址,且非本地在线网络,则使用IPv6协议,类似约定(2)。
(5) 若应用程序使用域名作为目标地址,则先从域名服务器得到相应的 IPv4/IPv6地址,然后根据地址情况进行相应的处理。
以上(1)~(5)是双协议栈的工作方式,随着 IPv6网络规模的不断扩大,这些工作方式必将做相应的修改和补充,这将取决于过渡的进程与 IPv6 网络的不断演进。