( 1) 若应用程序使用的目的地址为IPv4地址, 则使用IPv4协议;
假设节点A与节点B通信, A为双栈节点, 节点B支持IPv4协议( 目的地址为IPv4地址) 。则双栈节点A工作方式:
使用IPv4协议与节点B通信。
完备性证明: 节点A有两种选择, 使用IPv4协议或者IPv6协议与主机B通信。根据给定条件, A, B节点均支持
IPv4协议, 所以选择IPv4协议可以保证通信正常进行, 故约定是充分的。如果使用IPv6协议进行通信, 因为不能确定B是否为双栈节点( 给定条件仅是目的地址为IPv4地址) , 所以当B节点不支持IPv6协议时不能保证通信正常进行, 故约定是必要的。至此可以认为约定( 1) 是完备的。
( 2) 若目的地址为IPv6地址, 且为本地在线网络, 则使用IPv6协议。
( 3) 若应用程序使用的目的地址为IPv4兼容的IPv6地址, 并且非本地在线网络, 则使用IPv4协议, 此时的IPv6将
封装在IPv4中。IPv4兼容的IPv6地址, 是IPv6协议规范中提供的特殊地址。这类地址高阶96位均为0, 低价32位包含IPv4地址。IPv4兼容地址被节点用于通过IPv4路由器以隧道方式传送IPv6包,这些节点既理解IPv4又理解IPv6。能够自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6双栈节点将使用这些地址。根据IPv6协议地址规范以及( 3) 假定的条件, 可以确定目的节点B同样是一个双栈节点, 而结合IPv4/IPv6过渡时期网络的基本状况, 节点A与节点B的通信将跨越IPv4网络,所以使用IPv4协议是可行的。当然, 也可以使用IPv6协议进行通信, 但在过渡初期, ( 3) 的约定将优于使用IPv6协议通信。
( 4) 若应用程序使用的目的地址是非IPv4兼容的IPv6地址, 非本地在线网络, 则使用IPv6协议。类似约定( 2) , 使用IPv6协议能够保证通信正常进行,而如果是跨越纯IPv4网络的通信, 将采用隧道等机制实现通信; 而如果通过本地网络, 则无须隧道机制即可完成通信。
( 5) 若应用程序使用域名作为目标地址, 则先从域名服务器得到相应的IPv4/IPv6地址, 然后根据地址情况进行相应的处理。
以上( 1) 至( 5) 是双协议栈的工作方式, 随着IPv6网络规模的不断扩大, 这些工作方式必将做相应的修改和补充,这将取决于过渡的进程与IPv6网络的不断演进。