Ipv4 和Ipv6 互通技术与双协议栈工作方式研究

2010-08-15 00:49陈立秋
中国新技术新产品 2010年1期
关键词:双栈数据包应用程序

陈立秋

(杭州师范大学钱江学院 计算机科学与技术,浙江 杭州 310012)

1 引言

即使一些网络或联网世界的其余部分己升级为IPv6,在很长时间内,IPv4 仍将存在。到那时,升级系统将需要保持与IPv4 系统的互操作能力。随着时间的推移,互操作的负担将由早期的实现者承担转为由传统系统的维护者来承担。任何情况下,同时支持IPv4 和IPv6 的系统都是必要的。

2 双协议栈工作机理与应用模型

2.1 双协议栈工作机理

IPv4 和IPv6 协议是功能非常相同的处于网络层的协议,对于两个协议来说,其都是基于相同的平台。对比计算机网络中的TCP/IP 体系结构来看。如果网络中一台计算机能支持IPv6协议又同时兼容IPv4 协议,那么该主机就可以既能与支持IPv4 协议的主机通信,又能与支持IPv6 协议的主机进行通信,双协议栈技术的工作机理就在于此。

2.2 双协议栈技术应用模型

2.2.1 Limited Dual Stack Model

在这种模型下,服务器和路由器仍然是双栈的,而不是服务器的主机只需要支持IPv6 协议。

2.2.2 Dual Stack Model

Dual Stack Model 模型下,网络中的任意节点都必须是双栈的,因此,就不存在IPv6 和IPv4 之间的通信问题,这种方法不能解决IPv4地址资源不足的问题。

对于目前的网络环境来说,实现完全的双协议栈网络不需特殊配置,业务开展非常方便,对于IPv6 的试验应用和业务也很有利,是目前开展IPv6网络试验的重点之一。但是,完全双协议栈的网络结构的投入很大,特别是目前的接入网设备大部分仅仅支持IPv4 协议栈,而这些设备的升级很可能需要完全替换,投资压力很大。为了顺利进行试验,可考虑有限的双协议栈网络结构,部分新增用户仅支持IPv6。在解决过渡问题时,科学的选择双协议栈技术应用模型,有利于保证IPv4/IPv6 的平稳过渡。针对以上两种模型的特点,以及综合考虑校园网的网络规模、应用特点,我们最终选择了Limited Dual Stack Model 作为解决过渡问题的基本模型,实现了应用技术与实现代价的有效均衡。

3 Ipv4 和Ipv6 互通技术

3.1 BIS(Bump-In-the-Stack)

BIS 机制允许在IPv4 节点运行的不支持IPv6 的应用程序能够与纯IPv6 节点进行通信,要求在IPv4 协议栈中插入三个特殊的扩展模块:域名解析模块、地址映射模块和报头翻译模块。其基本思想是当IPv4 应用程序与纯IPv6 节点通信时,将节点的IPv6 地址映射成一个备用IPv4 地址池中的IPv4 地址。可以认为BIS 是NAT-PT 在主机节点IP 协议栈的特例实现。

3.2 TRT(Transport Relay Translator)

TRT 机制和NAT-PT 类似,但它是在传输层将一个IPv4 的TCP 或UDP 连接与一个IPv6的TCP 或UDP 连接联系起来,也就是说是在传输层实现协议转换,而不是在网络层。TRT 机制的每个连接都是真正的IPv4 或IPv6 连接,因此可以避免IP 分组分片和ICMP 报文转换带来的问题,但对一些存在内嵌地址信息的高层协议(如FTP),同样需要和应用层的网关协作来完成协议转换。

3.3 DSTM(Dual Stack Transition Mechanism)

DSTM 机制用于实现支持双协议栈但没有分配全球唯一IPv4 地址的节点与纯IPv4 节点的相互通信。其基本思想是当支持双协议栈的节点需要IPv4 地址时,可以通过与DSTM 服务器进行基于IPv6 的通信 (可采用扩展的DHCPv6)临时得到一个IPv4 地址并反映到DNS 中。对于没有IPv4 内部路由体系的情况,支持双协议栈的节点使用IPv6 路由体系,IPv4的数据报将会被封装到IPv6 数据报中在节点内传输。

3.4 ALG(Application Level Gateway)

ALG 机制是应用层网关,在IPv4 中就已经广泛应用,典型的有HTTP 协议的代理。显然,当一个ALG 同时支持IPv4 和IPv6 协议栈时,就可以作为IPv4 和IPv6 的协议转换网关。ALG提供的每个服务都是单独的IPv4 和IPv6 连接,可以完全避免在IP 层进行IP 头标转换带来的一些问题,但ALG 机制要求对每个应用编写单独的ALG 代理,而且代理必须同时支持IPv4 和IPv6 两种协议,因此缺乏灵活性。

4 双协议栈工作方式分析

4.1 双协议栈节点

IPv6 节点,具备IPv6 协议通信的同时,具备完全的IPv4 协议通信,我们称之为“IPv4/IPv6节点”,即双协议栈节点,简称双栈节点。该节点既可以是主机节点也可以是路由器或其它通信节点。这里应该明确,双栈节点是为解决IPv6节点在IPv4网络环境中通信(或为保留IPv4 协议功能)的问题,因而以节点具备IPv6 协议通信作为先决条件。根据双栈节点是否用于隧道协议通信,分为以下三类:(1)纯双栈节点,不具备隧道协议功能 (2)双栈节点,只具备配置隧道功能 (3)双栈节点,具有配置隧道、自动隧道功能。

当节点为纯双栈节点时,对其分配的IPv4,IPv6 地址没有特别的要求,符合各自的网络规定即可;当节点具有自动隧道功能的时候,应该为其分配IPv4 兼容的IPv6 地址。

4.2 接收数据包

双栈节点与其它类型的多栈节点的工作方式相同。链路层接收到数据段,拆开并检查包头。如果IPv4/IPv6 头中的第一个字段,即IP 数据包的版本代码是4,则该数据包就由IPv4 协议栈来进行相关操作;相应的,版本代码如果是6,则交给IPv6 协议栈处理。如果建立了自动隧道机制,则采用相应的技术将数据包重新整合为IPv6 数据包,由IPv6 栈来处理。

4.3 发送数据包

由于双栈主机同时支持IPv4 和IPv6 两种协议,所以当其在网络中通信的时候需要根据情况确定使用其中的一种协议栈进行通信,这就需要制定双协议栈的工作方式。在网络通信过程中,目的地址是作为路由选择的主要参数,因而,根据应用程序所使用的目的地址的协议类型对双协议栈的工作方式作出如下规定。

若应用程序使用的目的地址为IPv4 地址,则使用IPv4 协议;假设节点A 与节点B 通信,A为双栈节点,节点B 支持IPv4 协议。则双栈节点A 工作方式,使用IPv4 协议与节点B 通信。

若目的地址为IPv6 地址,且为本地在线网络,则使用IPv6 协议。IPv6 使用邻居发现机制确定是否为本地在线网络。

若应用程序使用的目的地址为IPv4 兼容的IPv6 地址,并且非本地在线网络,则使用IPv4 协议,此时的IPv6 将封装在IPv4 中。

若应用程序使用域名作为目标地址,则先从域名(DNS)服务器得到相应的IPv4/IPv6 地址,然后根据地址情况进行相应的处理。

随着IPv6网络规模的不断扩大,这些工作方式必将不断相应的得到修改和有效补充。

[1]张鸿.IPv6 时代的域名系统.CNNIC 研究开发部.2002.

[2]杜根远,邱颖豫.基于隧道技术的IPv6 迁移策略.中国有线电视,2004.

猜你喜欢
双栈数据包应用程序
删除Win10中自带的应用程序
SmartSniff
IPv4到IPv6演进技术及策略探讨
视觉注意的数据包优先级排序策略研究
IPv4和IPv6双栈计费流程分析
移动IPV6在改进数据包发送路径模型下性能分析
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序