互联网协议之间的转换的制作方法

文档序号:16631599发布日期:2019-01-16 06:37阅读:464来源:国知局
互联网协议之间的转换的制作方法

互联网协议(ip)是用于通过网络(例如,互联网)发送和接收分组的通信协议。网络地址转换器(nat)可以提供分组中ip地址在私有ip地址与公共ip地址之间的转换。此外,nat可以支持ip地址在不同版本的ip之间以及在相同版本的ip之间的转换。



技术实现要素:

根据一些可能的实现,一种设备可以从支持互联网协议版本4(ipv4)的第一设备接收包括客户侧转换器(clat)前缀和一个或更多个私有ipv4地址的端口控制协议(pcp)请求。pcp请求可以经由互联网协议版本6(ipv6)网络来接收。该设备可以在clat前缀与一个或多个私有ipv4地址之间建立关联。该设备可以经由ipv6网络从第一设备接收包括一个或多个私有ipv4地址中的私有ipv4地址以及包括clat前缀和私有ipv4地址的第二实例的ipv6地址的分组。私有ipv4地址可以与分组的有效载荷相关联。ipv6地址可以与分组的报头相关联。该设备可以使用clat前缀将私有ipv4地址转换为公共ipv4地址。该设备可以向支持ipv4的第二设备提供包括公共ipv4地址的分组。

根据一些可能的实现,一种方法可以包括由设备从第一设备接收包括客户侧转换器(clat)前缀和一个或多个私有互联网协议版本x(ipvx)地址的端口控制协议(pcp)请求。pcp请求可以经由互联网协议版本y(ipvy)网络来接收,其中x不等于y。该方法可以包括由该设备使用数据结构来存储clat前缀和一个或多个私有ipvx地址。该方法可以包括由该设备从第一设备接收包括一个或多个私有ipvx地址中的私有ipvx地址以及包括clat前缀和私有ipvx地址的第二实例的私有ipvy地址的分组。该设备可以使用应用层网关(alg)。该方法可以包括由该设备使用clat前缀将私有ipvx地址转换为公共ipvx地址。该方法可以包括由该设备向支持ipvx的第二设备提供包括公共ipvx地址的分组。

根据一些可能的实现,一种非暂态计算机可读介质可以存储一个或多个指令,该一个或多个指令在由一个或多个处理器执行时引起一个或多个处理器从第一设备接收包括客户侧转换器(clat)前缀和一个或多个私有互联网协议版本x(ipvx)地址的端口控制协议(pcp)请求。pcp请求可以经由互联网协议版本y(ipvy)网络来接收。该一个或多个指令可以引起一个或多个处理器从第一设备接收包括一个或多个私有ipvx地址中的私有ipvx地址以及包括clat前缀和私有ipvx地址的第二实例的私有ipvy地址的分组。私有ipvx地址可以与分组的有效载荷相关联,并且私有ipvy地址可以与分组的报头相关联。该一个或多个指令可以引起一个或多个处理器使用clat前缀将私有ipvx地址转换为公共ipvx地址。该一个或多个指令可以引起一个或多个处理器向支持ipvx的第二设备提供包括公共ipvx地址的分组。

根据一些可能的实现,一种设备,包括:一个或多个处理器,用于:从支持互联网协议版本4(ipv4)的第一设备接收端口控制协议(pcp)请求,所述端口控制协议(pcp)请求包括客户侧转换器(clat)前缀和一个或多个私有ipv4地址,所述pcp请求经由互联网协议版本6(ipv6)网络而被接收;在所述clat前缀与所述一个或多个私有ipv4地址之间建立关联;经由所述ipv6网络从所述第一设备接收分组,所述分组包括所述一个或多个私有ipv4地址中的私有ipv4地址以及ipv6地址,所述ipv6地址包括所述clat前缀和所述私有ipv4地址的第二实例,所述私有ipv4地址与所述分组的有效载荷相关联,以及所述ipv6地址与所述分组的报头相关联;使用所述clat前缀将所述私有ipv4地址转换为公共ipv4地址;以及向支持ipv4的第二设备提供包括所述公共ipv4地址的所述分组。

根据一些可能的实现,所述设备使用应用层网关(alg)。

根据一些可能的实现,所述一个或多个处理器当在所述clat前缀与所述一个或多个私有ipv4地址之间建立所述关联时用于:在与pcp报头相关联的选项部分中标识所述clat前缀和所述一个或多个私有ipv4地址,以及使用数据结构将所述clat前缀与所述一个或多个私有ipv4地址相关联。

根据一些可能的实现,所述一个或多个处理器在将所述私有ipv4地址转换为所述公用ipv4地址时用于:从所述ipv6地址中去除所述clat前缀,基于去除所述clat前缀来标识所述私有ipv4地址的所述第二实例,向所述私有ipv4地址的所述第二实例指派公共ipv4地址,更新数据结构以将所述私有ipv4地址的所述第二实例与指派的所述公共ipv4地址相关联,搜索所述分组的所述有效载荷以标识所述私有ipv4地址,以及用指派的所述公共ipv4地址替换被包括在所述有效载荷中的所述私有ipv4地址。

根据一些可能的实现,所述一个或多个处理器还用于:将所述分组从ipv6分组转换为ipv4分组;以及其中所述一个或多个处理器在向所述第二设备提供所述分组时用于:向所述第二设备提供所述ipv4分组。

根据一些可能的实现,所述分组是第一分组,并且其中所述一个或多个处理器还用于:从所述第二设备接收包括所述公共ipv4地址的第二分组,所述第二分组与所述第二设备使用所述公共ipv4地址建立的连接相关联;使用所述clat前缀将所述公共ipv4地址转换为所述私有ipv4地址;以及向所述第一设备提供所述第二分组。

根据一些可能的实现,所述一个或多个处理器在将所述公共ipv4地址转换为所述私有ipv4地址时用于:搜索所述第二分组的所述有效载荷以标识所述公共ipv4地址,针对匹配的公共ipv4地址使用标识的所述公共ipv4地址搜索所述数据结构,以及基于搜索所述数据结构来标识与所述匹配的公共ipv4地址相关联的所述私有ipv4地址。

根据一些可能的实现,一种方法,包括:由设备从第一设备接收端口控制协议(pcp)请求,所述端口控制协议(pcp)请求包括客户侧转换器(clat)前缀和一个或多个私有互联网协议版本x(ipvx)地址,所述pcp请求经由互联网协议版本y(ipvy)网络而被接收,其中x不等于y;由所述设备使用数据结构来存储所述clat前缀和所述一个或多个私有ipvx地址;由所述设备从所述第一设备接收分组,所述分组包括所述一个或多个私有ipvx地址中的私有ipvx地址以及私有ipvy地址,所述私有ipvy地址包括所述clat前缀和所述私有ipvx地址的第二实例,所述设备使用应用层网关(alg);由所述设备使用所述clat前缀将所述私有ipvx地址转换为公共ipvx地址;以及由所述设备向支持ipvx的第二设备提供包括所述公共ipvx地址的所述分组。

根据一些可能的实现,所述分组在所述分组的有效载荷中包括所述私有ipvx地址,并且其中所述分组在所述分组的报头中包括所述私有ipvy地址。

根据一些可能的实现,所述一个或多个私有ipvx地址与一组设备相关联,所述一组设备与和所述第一设备相同的网络相关联。

根据一些可能的实现,存储所述clat前缀和所述一个或多个私有ipvx地址包括:处理所述pcp请求的报头以标识所述clat前缀和所述一个或多个私有ipvx地址,以及使用所述数据结构来在所述clat前缀与所述一个或多个私有ipvx地址之间建立关联。

根据一些可能的实现,将所述私有ipvx地址转换为所述公共ipvx地址包括:通过从所述私有ipvy地址中去除所述clat前缀来标识所述私有ipvx地址的所述第二实例,向所述私有ipvx地址的所述第二实例指派公共ipvx地址,更新所述数据结构以将所述私有ipvx地址的所述第二实例与指派的所述公共ipvx地址相关联,搜索所述分组的所述有效载荷以标识所述私有ipvx地址,以及用指派的所述公共ipvx地址替换被包括在所述有效载荷中的所述私有ipvx地址。

根据一些可能的实现,所述分组是第一分组,其中所述方法还包括:从所述第二设备接收包括所述公共ipvx地址的第二分组,所述公共ipvx地址与所述第二分组的有效载荷相关联,以及所述第二分组与所述第二设备使用所述公共ipvx地址建立的连接相关联;使用所述clat前缀将所述公共ipvx地址转换为所述私有ipvx地址;以及向所述第一设备提供所述第二分组。

根据一些可能的实现,向所述第一设备提供所述第二分组包括:将所述第二分组从ipvx分组转换为ipvy分组,以及向所述第一设备提供所述ipvy分组。

根据一些可能的实现,一种存储指令的非暂态计算机可读介质,所述指令包括:在由一个或多个处理器执行时引起所述一个或多个处理器进行以下操作的一个或多个指令:从第一设备接收端口控制协议(pcp)请求,所述端口控制协议(pcp)请求包括客户侧转换器(clat)前缀和一个或多个私有互联网协议版本x(ipvx)地址,所述pcp请求经由互联网协议版本y(ipvy)网络而被接收;从所述第一设备接收分组,所述分组包括所述一个或多个私有ipvx地址中的私有ipvx地址以及私有ipvy地址,所述私有ipvy地址包括所述clat前缀和所述私有ipvx地址的第二实例,所述私有ipvx地址与所述分组的有效载荷相关联,以及所述私有ipvy地址与所述分组的报头相关联;使用所述clat前缀将所述私有ipvx地址转换为公共ipvx地址;以及向支持ipvx的第二设备提供包括所述公共ipvx地址的所述分组。

根据一些可能的实现,由所述第一设备托管的应用支持ipvx。

根据一些可能的实现,所述一个或多个私有ipvx地址与和所述第一设备一起位于网络上的一组设备相关联。

根据一些可能的实现,所述一个或多个指令在由所述一个或多个处理器执行时还引起所述一个或多个处理器:处理所述pcp请求以标识所述clat前缀和所述一个或多个私有ipvx地址;以及使用数据结构存储所述clat前缀和所述一个或多个私有ipvx地址。

根据一些可能的实现,引起所述一个或多个处理器将所述私有ipvx地址转换为所述公共ipvx地址的所述一个或多个指令引起所述一个或多个处理器:从所述私有ipvy地址获取所述私有ipvx地址的所述第二实例,向所述私有ipvx地址的所述第二实例指派公共ipvx地址,以及用指派的所述公共ipvx地址替换被包括在所述有效载荷中的所述私有ipvx地址。

根据一些可能的实现,所述分组是第一分组,其中所述一个或多个指令在由所述一个或多个处理器执行时还引起所述一个或多个处理器:从所述第二设备接收包括所述公共ipvx地址的第二分组,所述公共ipvx地址与所述第二分组的有效载荷相关联,并且所述第二分组与所述第二设备使用所述公共ipvx地址建立的连接相关联;使用所述clat前缀将所述公共ipvx地址转换为所述私有ipvx地址;将所述第二分组从ipvx分组转换为ipvy分组;以及向所述第一设备提供所述ipvy分组。

附图说明

图1a至1c是本文中描述的示例实现的概览的图;

图2是其中可以实现本文中描述的系统和/或方法的示例环境的图;

图3是图2的一个或多个设备的示例组件的图;以及

图4是用于经由互联网协议版本6(ipv6)网络在支持互联网协议版本4(ipv4)的第一设备与支持ipv4的第二设备之间发送和接收分组的示例过程的流程图。

具体实施方式

示例实现的以下详细描述参考附图。不同附图中的相同附图标记可以标识相同或相似的元素。

一些设备和/或应用可以支持ipv4。其他设备和/或应用可以支持ipv6。通过在ip数据报报头中的网络地址信息在网络设备之间被路由的同时修改网络地址信息,nat可以用于将地址空间(例如,ipv4、ipv6等)映射到另一地址空间(例如,ipv6、ipv4等)。

通过使用核心设备处的有状态协议转换和边缘设备处的无状态协议转换,464xlat架构在ipv6网络上提供有限的ipv4连接。例如,由第一设备托管的应用可以支持ipv4,并且可能需要通过ipv6网络向也支持ipv4的第二设备发送ipv4分组。在这种情况下,第一设备可以使用客户侧转换器(clat)来执行ipv4地址到ipv6地址的无状态转换。

在无状态转换中,clat可以将ipv4分组转换为ipv6分组。例如,通过向ipv4地址附加clat前缀,clat可以将分组的报头中包括的私有ipv4地址转换为ipv6地址。另外,第一设备可以向与ipv6网络相关联的网络设备提供ipv6分组。在这种情况下,网络设备可以使用提供商侧转换器(plat)将ipv6分组转换为ipv4分组,并且可以将ipv6地址转换为公共ipv4地址而不使用clat前缀。此外,网络设备可以向第二设备提供ipv4分组。

然而,如果使用应用层网关(alg),则ipv4分组的有效载荷可以包括需要转换但是不能使用464xlat的clat读取的私有ipv4地址。在这种情况下,clat可以执行被包括在ipv4分组的报头中的ipv4地址的无状态转换,但是无法转换被包括在ipv4分组的有效载荷中的私有ipv4地址。这样,当plat接收到ipv6分组时,当ipv6分组不具有对应的clat前缀时,plat无法标识存储在分组的报头中的ipv6地址中包括的私有ipv4地址。在没有标识私有ipv4地址的方法的情况下,plat无法转换为公共ipv4地址。此外,当有数百万甚至数十亿的与互联网服务提供商(isp)网络相关联的clat前缀时,手动配置clat前缀可能是困难的。

本文中描述的一些实现提供了一种网络设备,其托管用于当私有ipv4地址被包括在分组的有效载荷中时将私有ipv4地址转换为公共ipv4地址(反之亦然)的plat。例如,假定支持ipv4的第一设备向ipv6网络的网络设备提供端口控制协议(pcp)请求。在这种情况下,pcp请求可以包括clat前缀和一个或多个私有ipv4地址。

另外,网络设备可以接收第一分组,第一分组在第一分组的有效载荷中包括一个或多个私有ipv4地址中的私有ipv4地址。在这种情况下,网络设备可以使用在pcp请求期间获取的clat前缀将私有ipv4地址转换为公共ipv4地址。此外,网络设备可以向第二设备提供包括公共ipv4地址的第一分组。可以使用网络设备作为中介使用类似的过程从第二设备向第一设备发送第二分组,其中每个设备执行反向转换,如本文中进一步描述的。

以这种方式,支持ipv4的第一设备可以使用ipv6网络作为中介向支持ipv4并且使用alg的第二设备发送和接收分组。此外,通过使用pcp请求获取clat前缀,该网络设备相对于具有手动配置的clat前缀的网络设备节省了处理资源。此外,在pcp请求期间自动指派clat前缀提高了可扩展性,并且节省了网络资源,否则这些资源可能用于手动配置与isp相关联的数十万、数百万甚至数十亿的clat前缀。

在接下来的描述中,将在从ipv4到ipv6的转换(反之亦然)的上下文中描述实现。实际上,这些实现中的一个或多个可以同样适用于从第一版本的ip(通常称为ipvx)到第二版本的ip(通常称为ipvy)(其中x≠y)的转换,其中第一版本的ip不同于第二版本的ip(即,更高版本或更早版本的ip)。

图1a至1c是本文中描述的示例实现100的概览的图。示例实现100可以包括用户设备、网络设备和ipv4应用服务器。网络设备可以被包括在ipv6网络(例如,能够支持ipv4和/或ipv6的网络)中并且可以托管plat。用户设备可以托管ipv4应用和clat(例如,clat可以作为守护进程运行)。

如图1a和附图标记105所示,用户设备可以配置pcp请求以包括clat前缀和一个或多个私有ipv4地址。例如,用户设备可以配置pcp请求以在pcp请求的报头中包括clat前缀(例如,2001:db8:bbbb::/96)和私有ipv4地址(例如,198.51.100.1)。如图所示,clat前缀和私有ipv4地址可以使用报头的pcp选项部分来存储。

如附图标记110所示,网络设备可以从用户设备接收pcp请求。在这种情况下,并且如附图标记115所示,网络设备可以在clat前缀与私有ip地址之间建立关联。例如,网络设备可以使用诸如nat映射表等数据结构来存储clat前缀和私有ip地址。如附图标记120所示,网络设备可以向用户设备提供pcp响应。pcp响应可以向用户设备指示网络设备已经接收到pcp请求。

以这种方式,网络设备使用数据结构来将clat前缀与私有ipv4地址相关联,并且可以在执行nat时使用数据结构,如本文中进一步描述的。

如图1b和附图标记125所示,用户设备的clat可以从由用户设备托管的ipv4应用接收分组(例如,ipv4分组)。分组可以在分组的有效载荷内包括私有ipv4地址。另外,分组的报头可以包括私有ipv4地址的第二实例。如附图标记130所示,clat可以使用无状态转换将分组从ipv4分组转换为ipv6分组。在这种情况下,clat可以将clat前缀附加到私有ipv4地址的第二实例,以将私有ipv4地址的第二实例转换为ipv6地址。但是,无状态转换不会转换被包括在分组的有效载荷中的私有ipv4地址。

如附图标记135所示,clat可以向网络设备提供ipv6分组。例如,网络设备可以提供ipv6分组,ipv6分组包括有效载荷中的私有ipv4地址(例如,198.51.100.1)和嵌入在被包括在报头中的ipv6地址中的私有ipv4地址的第二实例(例如,2001:db8:bbbb::198.51.100.1)。

如附图标记140所示,网络设备可以将被包括在有效载荷中的私有ipv4地址转换为公共ipv4地址。例如,网络设备可以通过从ipv6地址中去除clat前缀来标识被包括在ipv6地址中的私有ipv4地址的第二实例。此外,网络设备可以向所标识的私有ipv4地址的第二实例指派公共ipv4地址,并且可以更新nat映射表以存储所标识的私有ipv4地址的第二实例与所指派的公共ipv4地址之间的关联。

另外,网络设备可以搜索ipv6分组的有效载荷以标识任何私有ipv4地址(例如,198.51.100.1),并且可以针对匹配的私有ipv4地址搜索nat映射表。在这种情况下,网络设备可以用与匹配的私有ipv4地址相关联的公共ipv4地址(例如,113.1.1.2)替换被包括在有效载荷中的所标识的私有ipv4地址(例如,198.51.100.1)。

另外,网络设备可以将分组从ipv6分组转换为ipv4分组。例如,网络设备可以将分组转换为ipv4分组以允许分组由ipv4应用服务器处理。在这种情况下,ipv4分组的有效载荷可以包括公共ipv4地址。

这样,网络设备可以将被包括在分组的有效载荷中的私有ip地址转换为公共ip地址。

如图1c和附图标记145所示,网络设备可以向ipv4应用服务器提供分组(例如,ipv4分组)。在这种情况下,分组的有效载荷可以包括公共ipv4地址(例如,113.1.1.2)。如附图标记150所示,网络设备可以从ipv4应用服务器接收应答分组。例如,ipv4应用服务器可以基于被包括在ipv4分组的有效载荷中的公共ipv4地址来发起连接。在这种情况下,ipv4应用服务器可以向网络设备提供应答分组。在一些情况下,应答分组的有效载荷可以包括公共ipv4地址。

如附图标记155所示,网络设备可以将公共ipv4地址转换为私有ipv4地址。例如,网络设备可以以与上述相同的方式(例如,使用将公共ipv4地址、clat和私有ipv4地址相关联的nat映射表)将公共ipv4地址转换为私有ipv4地址。另外,网络设备可以以与上述相同的方式将应答分组从ipv4分组转换为ipv6分组。

如附图标记160所示,网络设备可以向用户设备提供应答分组(例如,ipv6分组)。在这种情况下,应答分组的有效载荷可以包括私有ipv4地址(例如,198.51.100.1)。如附图标记165所示,用户设备可以使用clat将应答分组从ipv6分组转换为ipv4分组。如附图标记170所示,clat可以向ipv4应用提供应答分组。

以这种方式,在alg上下文中的分组传输可以在ipv4到ipv6到ipv4场景中发生。

如上所述,图1a至1c仅作为示例提供。其他示例是可能的并且可以不同于关于图1a至1c描述的示例。例如,在一些实现中,设备(例如,路由器、网关、边缘设备等)可以托管clat,并且可以与一个或多个附加设备(例如,膝上型计算机、台式计算机、移动电话等)一起被包括在本地网络中。在这种情况下,附加设备可以向该设备提供业务(例如,分组),并且该设备可以使用ipv6网络作为中介向ipv4服务器设备提供业务。

图2是其中可以实现本文中描述的系统和/或方法的示例环境200的图。如图2所示,环境200可以包括一个或多个对等设备210、一个或多个网络设备220-1至220-n(n≥1)(下文中统称为“网络设备220”,并且单独称为“网络设备220”)、一个或多个ipv4服务器设备230和/或网络240。环境200的设备可以经由有线连接、无线连接或有线和无线连接的组合来互连。

对等设备210包括能够接收和/或提供网络业务的一个或多个设备。例如,对等设备210可以包括业务传送设备,诸如路由器、网关、交换机、防火墙、集线器、网桥、反向代理、服务器(例如,代理服务器、执行虚拟机的服务器等)、负载平衡器或类似类型的设备。另外地或替代地,对等设备210可以包括作为网络业务的源或目的地的端点设备。例如,对等设备210可以包括计算机或类似类型的设备。

在一些实现中,对等设备210可以从其他对等设备210接收网络业务和/或可以向其他对等设备210提供网络业务。例如,第一对等设备210可以向托管clat的第二对等设备210提供网络业务(例如,ipv4分组)。在这种情况下,第二对等设备210可以经由ipv6网络向网络设备220提供网络业务。另外,第二对等设备210可以从网络设备220接收网络业务(例如,应答ipv4分组),并且可以向第一对等设备210提供网络业务。在一些实现中,对等设备210可以托管支持ipv4的应用,并且可以向网络设备220提供网络业务(例如,与应用相关联的ipv4分组)和/或从网络设备220接收网络业务。

网络设备220包括能够在对等设备(例如,对等设备210)和/或业务传送设备(例如,其他网络设备220)之间处理,转发和/或传送业务的一个或多个设备(例如,一个或多个业务传送设备)。例如,网络设备220可以包括路由器,诸如标签交换路由器(lsr)、标签边缘路由器(ler)、入口路由器、出口路由器、提供商路由器(例如,提供商边缘路由器、提供商核心路由器等)、虚拟路由器等。另外地或替代地,网络设备220可以包括网关、交换机、防火墙、集线器、网桥、反向代理、服务器(例如,代理服务器、云服务器、数据中心服务器等)、负载平衡器或另一类型的业务传送设备。在一些实现中,网络设备220可以是在诸如机箱等壳体内实现的物理设备。在实现中,网络设备220可以是由云计算环境或数据中心的一个或多个计算机设备实现的虚拟设备。

ipv4服务器设备230包括能够接收和/或提供网络业务的一个或多个设备。例如,ipv4服务器设备230可以包括服务器设备(例如,主机服务器、web服务器、应用服务器、数据中心服务器、云计算环境的服务器等)或类似设备。在一些实现中,ipv4服务器设备230可以经由ipv6网络从网络设备220接收网络业务和/或向网络设备220提供网络业务。

网络240包括一个或多个有线和/或无线网络。例如,网络240可以包括蜂窝网络(例如,第五代(5g)网络、诸如长期演进(lte)网络等第四代(4g)网络、第三代(3g)网络、码分多址(cdma)网络等)、公共陆地移动网络(plmn)、局域网(lan)、广域网(wan)、城域网(man)、电话网络(例如,公共交换电话网络(pstn))、私有网络、自组织网络、内联网、互联网、基于光纤的网络、云计算网络等、和/或这些或其他类型的网络的组合。

图2所示的设备和网络的数目和布置作为示例提供。实际上,可以存在与图2所示的那些相比更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或者不同地布置的设备和/或网络。此外,图2所示的两个或更多个设备可以在单个设备内实现,或者图2所示的单个设备可以实现为多个分布式设备。另外地或替代地,环境200的一组设备(例如,一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一个或多个功能。

图3是设备300的示例组件的图。设备300可以对应于对等设备210、网络设备220和/或ipv4服务器设备230。在一些实现中,对等设备210、网络设备220、和/或ipv4服务器设备230可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3所示,设备300可以包括一个或多个输入组件305-1至305-b(b≥1)(下文中统称为输入组件305,并且单独称为输入组件305)、切换组件310、一个或多个输出组件315-1至315-c(c≥1)(下文中统称为输出组件315,并且单独称为输出组件315)和控制器320。

输入组件305可以是用于物理链路的附接点,并且可以是用于诸如分组等传入业务的入口点。输入组件305可以诸如通过执行数据链路层封装或解封装来处理传入业务。在一些实现中,输入组件305可以发送和/或接收分组。在一些实现中,输入组件305可以包括输入线路卡,输入线路卡包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个接口卡(ifc)、分组转发组件、线路卡控制器组件、输入端口、处理器、存储器和/或输入队列。在一些实现中,设备300可以包括一个或多个输入组件305。

切换组件310可以将输入组件305与输出组件315互连。在一些实现中,切换组件310可以经由一个或多个交叉开关,经由总线和/或使用共享存储器来实现。共享存储器可以用作临时缓冲器以在分组被最终调度以递送到输出组件315之前存储来自输入组件305的分组。在一些实现中,切换组件310可以使得输入组件305、输出组件315和/或控制器320能够通信。

输出组件315可以存储分组并且可以调度分组用于在输出物理链路上传输。输出组件315可以支持数据链路层封装或解封装、和/或各种更高级别的协议。在一些实现中,输出组件315可以发送分组和/或接收分组。在一些实现中,输出组件315可以包括输出线路卡,输出线路卡包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个ifc、分组转发组件、线路卡控制器组件、输出端口、处理器、存储器和/或输出队列。在一些实现中,设备300可以包括一个或多个输出组件315。在一些实现中,输入组件305和输出组件315可以由相同的一组组件来实现(例如,并且输入/输出组件可以是输入组件305和输出组件315的组合)。

控制器320包括以下形式的处理器:中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)、微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)和/或其他类型的处理器。处理器以硬件、固件或软件和硬件的组合来实现。在一些实现中,控制器320可以包括可以被编程为执行功能的一个或多个处理器。

在一些实现中,控制器320可以包括存储用于由控制器320使用的信息和/或指令的随机存取存储器(ram)、只读存储器(rom)和/或另一类型的动态或静态存储设备(例如,闪存、磁存储器、光存储器等)。

在一些实现中,控制器320可以与连接到设备300的其他设备、网络和/或系统通信以交换关于网络拓扑的信息。控制器320可以基于网络拓扑信息来创建nat映射表,基于nat映射表来创建转发表,并且将转发表转发给输入组件305和/或输出组件315。输入组件305和/或输出组件315可以使用转发表来执行传入和/或传出分组的路线查找。

控制器320可以执行本文中描述的一个或多个过程。响应于执行由非暂态计算机可读介质存储的软件指令,控制器320可以执行这些过程。计算机可读介质在本文中被定义为非暂态存储器设备。存储器设备包括在单个物理存储设备内的存储器空间或跨多个物理存储设备分布的存储器空间。

软件指令可以经由通信接口从另一计算机可读介质或者从另一设备读入与控制器320相关联的存储器和/或存储组件。当被执行时,存储在与控制器320相关联的存储器和/或存储组件中的软件指令可以引起控制器320执行本文中描述的一个或多个过程。另外地或替代地,可以使用硬连线电路来代替软件指令或与软件指令相结合来执行本文中描述的一个或多个过程。因此,本文中描述的实现不限于硬件电路和软件的任何特定组合。

图3中所示的组件的数目和布置作为示例提供。实际上,设备300可以包括与图3所示的那些相比更多的组件、更少的组件、不同的组件或者不同地布置的组件。另外地或替代地,设备300的一组组件(例如,一个或多个组件)可以执行被描述为由设备300的另一组组件执行的一个或多个功能。

图4是用于经由互联网协议版本6(ipv6)网络在支持互联网协议版本4(ipv4)的第一设备与支持ipv4的第二设备之间发送和接收分组的示例过程400的流程图。在一些实现中,图4的一个或多个过程框可以由网络设备220执行。在一些实现中,图4的一个或多个过程框可以由独立于或包括网络设备220的另一设备或一组设备来执行,诸如对等设备210和/或ipv4服务器设备230。

如图4所示,过程400可以包括从设备接收包括客户侧转换器(clat)前缀和一个或多个私有互联网协议版本4(ipv4)地址的端口控制协议(pcp)请求(框410)。例如,网络设备220可以从对等设备210接收pcp请求,pcp请求在pcp请求的报头中包括clat前缀和一个或多个私有ipv4地址。当执行不同版本的ip之间(例如,ipv4到ipv6、ipv6到ipv4等)的转换时,clat前缀可以用作clat和/或提供商侧转换器(plat)可以使用的密钥。另外,在接收到pcp请求之后,网络设备220可以使用数据结构(例如,nat映射表、转发表等)来存储clat前缀和一个或多个私有ipv4地址。

在一些实现中,对等设备210可以配置pcp请求以包括clat前缀和一个或多个私有ipv4地址。例如,对等设备210可以配置pcp请求的报头以在报头的选项部分中包括clat前缀和一个或多个私有ipv4地址。选项部分可以包括被保留用于执行附加功能(例如,通常没有被包括在pcp请求中的功能)的一组位。在这种情况下,可以使用选项部分(例如,map操作码、peer操作码、announce操作码等)来扩展pcp报头内的pcp操作码。

作为示例,假定使用ipv4的应用被托管在对等设备210上并且对等设备210托管clat。在这种情况下,对等设备210可以通过在pcp报头的选项部分中包括clat前缀和私有ipv4地址来配置pcp请求。

作为另一示例,假定一个或多个第一对等设备210(例如,工作站、膝上型计算机、移动设备等)正在使用第二对等设备210(例如,路由器、网关、调制解调器等)访问互联网。进一步假定,一个或多个第一对等设备210与一个或多个私有ipv4地址相关联,并且第二对等设备210托管clat。在这种情况下,第二对等设备210可以通过在pcp报头的选项部分中包括clat前缀和一个或多个私有ipv4地址来配置pcp请求。

在一些实现中,网络设备220可以处理pcp请求以标识clat前缀和一个或多个私有ipv4地址。例如,网络设备220可以处理pcp请求的报头以标识包括在pcp报头的选项部分中的clat前缀和一个或多个私有ipv4地址。

在一些实现中,网络设备220可以存储clat前缀和一个或多个私有ipv4地址。例如,网络设备220可以使用诸如链接列表、数组、树、哈希表等数据结构来存储clat前缀和一个或多个私有ipv4地址。在一些情况下,网络设备220可以分别存储clat前缀和一个或多个私有ipv4地址。在其他情况下,网络设备220可以将clat前缀连结到一个或多个私有ipv4地址中的每个,并且可以存储该连结值。以这种方式,网络设备220能够在clat前缀与一个或多个私有ipv4地址之间建立关联。

在一些实现中,网络设备220可以向对等设备210提供pcp响应。例如,网络设备220可以提供指示接收到pcp请求的pcp响应。在这种情况下,托管clat的设备接收指示在对等设备210与网络设备220之间建立了连接并且对等设备210可以开始向网络设备220发送分组的确认。

以这种方式,网络设备220可以使用clat前缀和一个或多个私有ipv4地址来转换可以被包括在通过ipv6网络传输的后续分组的有效载荷中的私有ipv4地址,如本文中进一步描述的。

如图4进一步所示,过程400可以包括从设备接收包括一个或多个私有ipv4地址中的私有ipv4地址的第一分组,私有ipv4地址被包括在第一分组的有效载荷中(框420)。例如,网络设备220可以从对等设备210接收第一分组,第一分组在分组的有效载荷中包括私有ipv4地址并且在分组的报头中包括私有ipv4地址的第二实例。在一些情况下,分组的有效载荷可以包括一组私有ipv4地址,并且该组私有ipv4地址中只有一个私有ipv4地址可以具有被包括在分组的报头中的第二实例。

在一些实现中,在网络设备220接收第一分组之前,对等设备210可以将第一分组从ipv4分组转换为ipv6分组。例如,对等设备210的clat可以执行分组的无状态转换以将第一分组从ipv4分组转换为ipv6分组。在这种情况下,通过将clat前缀附加到私有ipv4地址的第二实例,clat可以将私有ipv4地址的第二实例转换为ipv6地址。此外,clat可能无法转换被包括在第一分组的有效载荷中的私有ipv4地址。

在一些实现中,网络设备220可以从对等设备210接收ipv6分组。例如,网络设备220可以经由ipv6网络接收ipv6分组,ipv6分组在ipv6分组的有效载荷中包括私有ipv4地址。作为示例,假定对等设备210托管ipv4应用和clat。进一步假定,对等设备210向网络设备220提供分组。在这种情况下,网络设备220可以支持alg(例如,以管理文件传输协议(ftp)、会话发起协议(sip)等),并且可以接收分组(例如,作为ipv6分组),该分组在分组的有效载荷中包括私有ipv4地址。

以这种方式,网络设备220能够接收第一分组,第一分组在第一分组的有效载荷中包括私有ipv4地址,并且网络设备220可以执行一个或多个动作以将私有ipv4地址转换为公共ipv4地址。

如图4进一步所示,过程400可以包括将私有ipv4地址转换为公共ipv4地址(框430)。例如,网络设备220可以从ipv6地址标识私有ipv4地址的第二实例,并且可以利用nat将被包括在有效载荷中的私有ipv4地址转换为公共ipv4地址,如下面详细描述的。

在一些实现中,网络设备220可以标识被包括在ipv6地址中的私有ipv4地址的第二实例。例如,网络设备220可以通过从ipv6地址中去除clat前缀来标识私有ipv4地址的第二实例。在这种情况下,网络设备220可以使用ip地址选择算法来向私有ipv4地址的第二实例指派公共ipv4地址,ip地址选择算法诸如选择最高可用公共ipv4地址、最低可用公共ipv4地址、随机公共ipv4地址(例如,使用随机数发生器)等的算法。另外,网络设备220可以更新nat映射表以存储ipv6地址以及私有ipv4地址的第二实例与所指派的公共ipv4地址之间的关联。

另外,网络设备220可以搜索ipv6分组的有效载荷以标识私有ipv4地址,并且可以针对匹配的私有ipv4地址(例如,私有ipv4地址的第二实例)搜索nat映射表。如果匹配被定位,则网络设备220可以使用nat映射表来标识与私有ipv4地址的第二实例相关联的所指派的公共ipv4地址,并且可以用所指派的公共ipv4地址替换分组的有效载荷中的私有ipv4地址。

另外,网络设备220可以将第一分组从ipv6分组转换为ipv4分组。例如,网络设备220可以将第一分组转换为ipv4分组以允许第一分组由ipv4服务器设备230处理。在这种情况下,第一分组可以被转换为ipv4分组,并且可以在第一分组的有效载荷中包括所选择的公共ipv4地址。

以这种方式,网络设备220可以将被包括在有效载荷中的私有ipv4地址转换为公共ipv4地址。

如图4进一步所示,过程400可以包括向服务器设备提供包括公共ipv4地址的第一分组以从服务器设备接收第二分组(框440)。例如,网络设备220可以向ipv4服务器设备230提供包括公共ipv4地址的第一分组,其可以引起ipv4服务器设备230提供第二分组(例如,应答分组)。在这种情况下,ipv4服务器设备230可以基于被包括在分组的有效载荷中的公共ipv4地址来发起连接。在一些情况下,公共ipv4地址可以被包括在第二分组的有效载荷中。

以这种方式,在分组的有效载荷中包括私有ipv4地址的第一分组可以经由ipv6网络从支持ipv4的第一设备传输到支持ipv4的第二设备,即使处理第一分组的传输的一个或多个设备使用alg。此外,如本文中进一步描述的,可以使用ipv6网络从第二设备向第一设备提供第二分组(例如,应答分组)。

如图4进一步所示,过程400可以包括将被包括在第二分组中的公共ipv4地址转换为私有ipv4地址(框450)。例如,网络设备220可以使用nat来将第二分组(例如,ipv4分组)的有效载荷中的公共ipv4地址转换为私有ipv4地址。

在一些实现中,网络设备220可以将公共ipv4地址转换为私有ipv4地址。例如,网络设备220可以搜索第二分组的有效载荷以标识公共ipv4地址,并且可以使用公共ipv4地址来针对匹配的公共ipv4地址搜索nat映射表。在这种情况下,网络设备220可以标识与公共ipv4地址相关联的私有ipv4地址,并且可以用所标识的私有ipv4地址替换公共ipv4地址。

另外,网络设备220可以将第二分组从ipv4分组转换为ipv6分组。例如,网络设备220可以将第二分组转换为ipv6分组以允许第二分组经由ipv6网络被提供给对等设备210。在这种情况下,第二分组可以被转换为ipv6分组,并且可以在第二分组的有效载荷中包括私有ipv4地址。

以这种方式,网络设备220可以将公共ipv4地址转换为私有ipv4地址。

如图4进一步所示,过程400可以包括向设备提供第二分组(框460)。例如,网络设备220可以向对等设备210提供第二分组,并且对等设备210(例如,对等设备210的clat)可以转换第二分组并且向支持ipv4的一个或多个应用和/或设备提供第二分组。

在一些实现中,对等设备210可以将第二分组从ipv6分组转换为ipv4分组。例如,对等设备210可以以本文中其他地方描述的方式将第二分组转换为ipv4分组。以这种方式,对等设备210能够将第二分组转换为ipv4分组以允许第二分组被传输到支持ipv4的应用和/或设备。

在一些实现中,对等设备210的clat可以向由支持ipv4的对等设备210托管的应用提供第二分组。在一些实现中,对等设备210的clat可以向支持ipv4的一个或多个附加对等设备210提供第二分组。

以这种方式,使用ipv6网络作为中介,支持ipv4的设备和/或应用也能够从ipv4服务器设备230接收应答分组,即使当与设备和/或应用相关联的私有ipv4地址被包括在初始分组的有效载荷中时。

虽然图4示出了过程400的示例框,但是在一些实现中,过程400可以包括与图4所描绘的那些相比的更多的框、更少的框、不同的框或不同地布置的框。另外地或替代地,过程400的两个或更多个框可以并行执行。

以这种方式,使用ipv6网络作为中介,支持ipv4的对等设备210可以向ipv4服务器设备230发送和接收分组。另外,通过使用pcp请求来获取clat前缀,网络设备220相对于具有手动配置的clat前缀的网络设备节省了处理资源。此外,在pcp请求期间自动指派clat前缀提高了可扩展性,并且节省了网络资源,否则这些资源可以用于手动配置与isp相关联的数十万、数百万甚至数十亿的clat前缀。

前述公开内容提供了说明和描述,但是并非旨在穷尽或将实现限制于所公开的精确形式。修改和变化鉴于上述公开内容是可能的,或者可以从实现的实践中获取。

如本文中使用的,术语组件旨在被广义地解释为硬件、固件和/或硬件和软件的组合。

显而易见的是,本文中描述的系统和/或方法可以以不同形式的硬件、固件或者硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不是对实现的限制。因此,本文中描述系统和/或方法的操作和行为,而没有参考具体的软件代码,应当理解,软件和硬件可以被设计为基于本文中的描述来实现系统和/或方法。

尽管特征的特定组合在权利要求中列举和/或在说明书中公开,但是这些组合不意图限制可能实现的公开内容。实际上,这些特征中的很多特征可以以未在权利要求中具体记载和/或在说明书中公开的方式组合。尽管下面列出的每个从属权利要求可以仅直接依赖于一项权利要求,但是可能的实现的公开内容包括每个从属权利要求与权利要求组中的每个其他权利要求的组合。

除非明确地如此描述,否则本文中使用的任何元素、动作或指令都不应当被解释为是关键或必要的。而且,如本文中使用的,冠词“一个(a)”和“一个(an)”旨在包括一个或多个项目,并且可以与“一个或多个”可互换地使用。此外,如本文中使用的,术语“组”旨在包括一个或多个项目(例如,相关项目、不相关项目、相关项目和不相关项目的组合等),并且可以与“一个或多个”可互换地使用。如果预期只有一个项目,则使用术语“一个(one)”或类似的语言。而且,如本文中使用的,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在是开放式术语。此外,除非另有明确说明,否则短语“基于”旨在表示“至少部分基于”。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1