网络分组封装和路由的制作方法

文档序号:12289910阅读:333来源:国知局
网络分组封装和路由的制作方法与工艺

本说明书涉及网络分组封装(network packet encapsulation)和路由。



背景技术:

联网设备之间的通信通常需要诸如互联网协议(IP)地址的网址,以标识跨越网络的数据的发送者和接收者。在诸如IPv4网络的一些网络中,IP地址可能通常由于连接至网络的设备而重叠和/或超出数量。为了提供公共网络服务(诸如网络服务器,其将基于网络的服务提供至多个不同的源网络),解决IP地址中的潜在重叠的一个解决方案是网址转换(NAT)系统。通过将源网络之后的客户端的IP地址转换为能够与服务器设备进行通信的全局地址,NAT系统允许客户端与服务器设备进行通信。NAT设备典型地是单个设备,其需要复杂的内部构件,以支持大量地址转换状态,并同时与对等的NAT设备同步。



技术实现要素:

本说明书描述了涉及封装和路由网络分组的技术。

总的来说,本说明书中描述的主题的一个创新方面可以体现为包括以下动作的方法:从源网络、并在源网络的外部和第二网络内的边缘设备处接收第一网络分组,该第一网络分组包括第一内部报头,该第一内部报头包括:i)第一源地址,其指定包括在该源网络中的用户设备,该第一网络分组源自该用户设备;以及ii)第一目标地址,其指定目标服务器,该第一网络分组寻址到该目标服务器;从多个可路由网络标识符选择用于该源网络的源网络标识符,该源网络标识符与该源地址不同;将该第一网络分组封装在该第一封装分组中,该第一封装分组包括第一外部报头,该第一外部报头包括:i)第一外部源地址,其指定源网络标识符;以及ii)第一外部目标地址,其作为第一目标地址;将该第一封装分组路由至该第二网络内的目标服务器;从该目标服务器接收第二封装分组,该第二封装分组包括第二网络分组,该第二网络分组包括第二外部报头,该第二外部报头包括:i)作为第一目标地址的第二外部源地址,其指定目标服务器,该第二封装分组源自该目标服务器;以及ii)第二目标地址,其指定源网络标识符,该第二封装分组寻址到该源网络标识符;从该第二封装分组提取该第二网络分组,该第二网络分组包括第二内部报头,该第二内部报头包括:i)作为该第一目标地址的第二源地址;以及ii)作为该第一源地址的第二目标地址;以及将该第二网络分组路由至源网络。该方面的其他实施例包括相对应的系统、装置和计算机程序,其配置为执行在计算机存储设备上编码的方法的动作。

这些和其他实施例可以各自可选地包括以下特征中的一个或多个。将第一网络分组封装在第一封装分组内可以包括:使用IP中IP封装(IP in IP encapsulation)来封装第一网络分组。将第一网络分组封装在第一封装分组内可以包括:使用通用路由封装来封装第一网络分组。

第一封装分组的第一外部报头可以包括分组协议字段,并且将第一网络分组封装在第一封装分组内可以包括:指定用于分组协议字段的值,该分组协议字段的值指示第一封装分组封装第一网络分组。

将第一封装分组路由至目标服务器可以包括:将第一封装分组提供至第二网络内的网络负载均衡器。

边缘设备可以是第二网络内的多个边缘设备中的一个,并且所述方法还可以包括:向第二网络广播可达性指示符,其指定边缘设备与源网络通信。

边缘设备可以具有边缘设备标识符,其唯一地标识第二网络内的边缘设备,并且选择用于源网络的源网络标识符可以与边缘设备标识符不同。

源网络可以是与边缘设备通信的多个源网络中的一个,可以为所述多个源网络中的每一个选择源网络标识符,并且用于所述多个源网络中的每一个源网络的源网络标识符可以与选择用于与边缘设备通信的所述多个源网络的每个其他的源网络标识符不同。

边缘设备可以是第二网络内的多个边缘设备中的一个,并且所述方法还可以包括:向第二网络广播可达性指示符,其指定边缘设备与所述多个源网络通信。

本说明书中描述的主题的另一创新方面可以体现为包括以下动作的方法:由数据处理装置从边缘设备接收第一封装分组;基于该第一封装分组中所包括的分组协议字段,确定该第一封装分组封装第一网络分组,并且响应于该确定:标识该第一封装分组的第一外部报头中所包括的第一外部源地址,该第一外部源地址指定源网络,该第一网络分组源自该源网络;将该第一外部源地址记录在网络连接表中;从该第一封装分组提取该第一网络分组,该第一网络分组包括第一内部报头,该第一内部报头包括:i)第一源地址,其指定用户设备,该第一网络分组源自该用户设备;以及ii)第一目标地址,其指定数据处理装置,该第一网络分组寻址到该数据处理装置;处理该第一网络分组;生成第二网络分组,该第二网络分组包括第二内部报头,该第二内部报头包括:i)第二源地址,其作为指定该数据处理装置的第一目标地址的;以及ii)第二目标地址,其作为该第二网络分组所寻址到的第一源地址;从该网络连接表获得第一外部源地址;将该第二网络分组封装在该第二封装分组中,该第二封装分组包括第二网络分组,该第二网络分组包括第二外部报头,该第二外部报头包括:i)第二外部源地址,其作为指定该数据处理装置的第一目标地址;以及ii)外部目标地址,其作为该第二封装分组所寻址到的第一外部源地址;将该第二封装分组路由至由该第一外部源地址指定的源网络。该方面的其他实施例包括相对应的系统、装置和计算机程序,其配置为执行在计算机存储设备上编码的方法的动作。

这些和其他实施例可以各自可选地包括以下特征中的一个或多个。所述方法还可以包括:由数据处理装置从网络设备接收第三网络分组;基于第三网络分组中所包括的分组协议字段,确定第三网络分组没有封装另一网络分组;以及处理第三网络分组。

数据处理装置和边缘设备可以位于第二网络内,该第二网络与第一网络分组所源自的源网络分离。

可以实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。源网络上的用户设备可以以避免网址的冲突且无需电信级NAT设备的基础设施成本的方式,与公共网络上的服务器或其他设备通信。此外,使用多个边缘设备的故障切换(failover)和冗余的支持允许在网络设备丢失连接性的情况下的进行透明故障切换,而无需设备之间的状态同步,从而防止网络通信的中断。

在附图和下文的描述中阐述了本说明书中描述的主题的一个或多个实施例的细节。主题的其他特征、方面和细节将从说明书、附图和权利要求变得显而易见。

附图说明

图1是示例环境的框图,在该示例环境中,网络分组被封装和路由。

图2是用于封装和路由网络分组的示例过程的图示。

图3是示例过程的流程图,在该示例过程中,网络分组被封装和路由。

图4是示例过程的流程图,在该示例过程中,目标设备使用网络分组封装而操作。

图5是示例数据处理装置的框图。

在各图中类似的附图标记和标号指示类似的元件。

具体实施方式

网络设备有助于网络分组从源网络路由至公共服务器设备、以及从公共服务器设备路由至源网络设备。例如,从用户设备接收的网络分组可以被封装并路由至服务器设备,该服务器设备将处理被封装的网络分组,并使用可以被路由回用户设备的另一封装的分组来进行响应。可以使用全局唯一互联网协议地址跨越公共网络执行路由,而不需要有状态的网址转换(NAT)设备。

源网络上的用户设备可以通过发送互联网协议(IP)分组与作为公共网络的一部分的公共服务器设备进行通信。IP分组通常包括报头和有效载荷。报头指定元数据,元数据诸如是源地址、目标地址以及用于路由和传递分组的其他元数据,并且有效载荷包括旨在用于目标设备的数据。源网络通常包括路由设备,该路由设备将接收从连接至该路由设备的用户设备发送的分组,并且该路由设备将分组转发路由至其指定的目标。路由设备还可负责将进入的IP分组路由至适当的目标用户设备。

诸如路由器的边缘设备驻留在公共网络中,该公共网络包括诸如网络服务器的目标设备,并接收源自源网络上的用户设备的网络分组。每个分组的报头包括指定用户设备作为分组的源的源地址、以及指定目标设备作为目标的目标地址。对于每个接收的分组,边缘设备选择用于分组的可路由网络标识符,诸如全局唯一IP地址,并使用例如IP中IP或GRE封装来封装分组。外部分组包括外部报头,其指定可路由网络标识符作为分组的源地址,并且使用相同目标地址来指定分组要寻址到的目标设备。

边缘设备将封装分组路由至目标设备。封装分组可以被直接提供至目标设备,或者其可以在最终到达目标设备之前被提供至第二网络内的一个或多个其他设备,诸如负载均衡器和/或另一路由器。

目标设备接收封装分组,并确定其封装第一网络分组。该确定例如可以基于封装分组的报头中所包括的分组协议字段来完成。基于该确定,所接收的分组封装另一分组,目标设备标识封装分组的源,并在网络连接表中记录源的地址。例如,封装分组的外部报头指定可路由网络标识符作为分组的源地址,所以目标设备将可路由网络标识符记录在其网络连接表中。

目标设备然后从封装分组提取第一网络分组,以用于处理。例如,在移除封装分组的外部报头之后,可以处理内部分组,该内部分组包括分组所源自的用户设备的源地址,这是因为目标设备将处理标准网络分组。

当目标设备对第一网络分组进行响应时,其生成响应分组,该响应分组包括作为用户设备的地址的目标地址、以及作为目标设备的地址的源地址。目标设备然后可以检查网络连接表以找到对应于用户设备的可路由网络标识符,并将响应分组封装在第二封装分组内。第二封装分组包括作为可路由网络标识符的目标地址、以及作为目标设备的地址的源地址。目标设备然后将第二封装分组路由至源网络。

边缘设备从目标设备直接或间接地接收第二封装分组。该边缘设备可以与用于将第一封装分组提供至目标设备的边缘设备相同,或者其可以是不同的边缘设备。边缘设备从第二封装分组提取响应分组,并将响应分组路至由标识符所标识的源网络,该标识符被包括作为第二封装分组的目标。

图1是示例环境100的框图,在示例环境100中封装和路由网络分组。诸如局域网(LAN)、广域网(WAN)、互联网或其组合的计算机网络102连接一个或多个源网络104(例如,私人LAN或WAN)、一个或多个边缘设备106、一个或多个外部边缘设备108、以及一个或多个服务器设备110。在示例环境中,边缘设备106和服务器设备110在诸如第二LAN或WAN的第二网络112内操作,该第二网络112与计算机网络102和(多个)源网络104分离。

源网络104例如包括家庭网络、商用网络、以及云计算网络,其每一个包括用于在源网络的外部进行通信的至少一个网络设备,诸如调制解调器或路由器。家庭网络例如可以包括用户设备,诸如连接至家庭路由器和/或调制解调器设备的桌面型和膝上型个人计算机、平板计算机、和/或智能电话。作为另一示例,商用网络可以包括许多用户设备,诸如经由路由器和/或调制解调器设备在WAN中连接的个人计算机和服务器计算机。云计算网络是另一类型的个人网络,其可以例如包括云计算服务器形式的用户设备,或一个或多个云计算服务器计算机上的虚拟机的实例,在这种情况下,每个云服务器包括或连接至调制解调器和/或路由器,以用于网络通信目的。

源网络104中包括的设备与其他设备进行通信,诸如连接至其他源网络的设备和连接至计算机网络102的设备的。设备与网络之间的通信可以通过在设备之间发送网络分组而执行。网络分组是由分组交换网络为进行传输而被格式化的数据。网络分组包括控制数据,例如,指定关于网络分组的信息的报头,诸如分组的源、目标、分组协议、以及其他类型的信息。网络分组还包括有效负荷数据,例如,旨在用于由接收设备处理的数据。示例网络分组包括使用例如TCP、UDP和/或ICMP分组协议的IPv4网络分组。

边缘设备106和外部边缘设备108从联网设备接收网络分组,并将分组路由至目标网络设备。边缘设备106和外部边缘设备108例如包括网络路由器,该网络路由器基于网络分组报头中所包含的信息来接收和路由网络分组。边缘设备106在第二网络112内,并接收例如从源网络路由器设备发送的网络分组,并将网络分组路由至第二网络112内的服务器设备110。外部边缘设备108不在第二网络112内,并且在一些实现方式中也可以将网络分组路由至服务器设备110。外部边缘设备108也可以将网络分组路由至不包括在第二网络112中的其他设备。

服务器设备110包括服务器计算机,其接收、处理并响应由边缘设备106和外部边缘设备108提供的网络分组。服务器设备例如包括主控网站的网络服务器、提供云存储管理解决方案的云存储服务器、以及被用于处理大量数据的分布式处理系统服务器。许多其他类型的服务器设备110可以被包括在第二网络112中。

许多用户设备、源网络、外部边缘设备、以及第二网络可以存在,并可以使用计算机网络102彼此通信。为了使得能够使用诸如IPv4网络的计算机网络102在设备之间进行通信,使用网络进行通信的每个设备具有例如IP地址的网址,其被用于与其他联网设备通信。每个网络设备的网址标识了网络设备在网络上的位置。网址在数量上是有限的,并且在网址没有被唯一地分配至网络设备的情况下,例如当存在的网络设备比可用网址更多时,网络寻址的冲突可能导致诸如数据丢失和通信中断的问题。本文描述的网络封装和路由技术设计为避免网址的冲突,从而有助于联网设备之间的通信。

作为示例,源网络内的用户设备的IP地址可以由网络路由器分配。源网络内的设备的IP地址在源网络内是唯一的,但是不一定是全局唯一的(例如,相对于连接至互联网的其他设备不是唯一的)。用户设备将网络分组发送至源网络路由器,并且同样具有IP地址的源网络路由器将网络分组转发至由网络分组指定的目标服务器设备,诸如主控网站的网络服务器。网络分组在互联网上所采取的路径变化,并且例如可以包括通过互联网服务提供商设备、域名服务器(DNS)、负载均衡器、以及包括互联网的“骨干”的其他网络设备的路由。在一些实现方式中,源网络路由器可以具有与边缘设备106的直接连接或预定路径,避免网络分组横贯互联网的骨干的需求。例如,与第二网络112关联的云计算网络可以提供有直接连接或预定路径,以连接至第二网络112的边缘设备106。

从源网络路由器发送的网络分组到达边缘设备,其路由进入第二网络112并去往其中一个服务器设备110的网络业务。所接收的网络分组包括报头,其将源网络路由器的IP地址标识为分组的源,并将目标服务器IP地址(例如,其中一个服务器设备110)标识为分组的目标。源地址(例如,私人路由器的IP地址)可以不是唯一的,并且边缘设备选择源网络标识符以唯一地标识源网络,并且在将网络分组转发至目标服务器设备之前,例如使用GRE或IPIP封装,以源网络标识符来标记网络分组。

目标服务器设备接收被标记或封装的网络分组,将其标识为封装的分组,在网络连接表中记录源网络标识符,并提取和处理内部网络分组。当对用户设备进行响应时,服务器设备使用内部源地址(例如用户设备的IP地址)来创建网络分组,作为分组的目标。服务器设备然后使用例如来自连接表的源网络标识符将网络分组封装在第二分组中,作为第二分组的报头中的目标。该分组然后被转发至边缘设备,用于传递至用户设备。

当边缘设备从目标服务器接收封装的分组时,其将源网络标识符标识为由外部报头指定的目标,从内部网络分组移除外部报头,并将内部网络分组转发至由源网络标识符标识的源网络的源网络路由器。源网络路由器然后将网络分组发送至用户设备用于处理。

图2是用于封装和路由网络分组的示例过程200的图示。源网络202包括路由器204和用户设备206。虽然示例源网络包括一个路由器204和三个用户设备206,但是在源网络202中可以包括任何数目的路由器和用户设备,并且可以实现为硬件或软件的路由器204可以被包括在一个或多个用户设备206中。

对于从源网络202发送的进入分组,将网络分组210从源网络202发送至公共网络260的边缘处的边缘设备230。网络分组210源自用户设备206和/或源网络路由器204中的一个,并且其包括有效载荷P1和报头212,报头212指定源地址S1和目标地址D1。例如,S1可以是源网络路由器204的IP地址,而D1可以是网络分组210所寻址到的服务器设备250的IP地址。

存在于公共网络260内的边缘设备230接收网络分组210,并选择用于源网络202的源网络标识符,例如S2。源网络标识符例如可以基于边缘设备230已知唯一的标识符的列表而选择。其可以是另一IP地址,或对于公共网络260唯一的另一类型的标识符。在一些实现方式中,边缘设备230还可以具有唯一地标识公共网络260上的边缘设备230的网络标识符,并且由边缘设备230选择的任何(多个)源网络标识符也与边缘设备230的网络标识符不同。在示例过程200中,标识符S2因此唯一地标识源网络202。

此外,虽然在示例过程200中描绘了仅一个源网络202和一个边缘设备230,但是多个源网络可以连接至边缘设备230,并且在公共网络260中可以使用多个边缘设备,其每一个可以连接至任何数目的其他源网络。每个源网络标识符可以被动态地选择,例如来自基于可用性随时间改变的可用标识符的池。在通信会话期间,用于与第二网络进行通信的源网络标识符和边缘设备可以保持相同;然而,在单独的通信会话期间,相同的源网络可以连接至相同或不同的边缘设备,并且被分配相同的源网络标识符或不同的源网络标识符,以用于该通信会话。

边缘设备230用源网络标识符S2来标记网络分组210。在示例过程200中,边缘设备230封装分组以形成第一封装分组220。多种方法可用于标记网络分组210,诸如通用路由封装(GRE)或互联网协议内的互联网协议(IPIP)封装。第一封装分组220是IPIP封装的示例,在这种情况下,新报头222被附到网络分组210,以创建第一封装分组220。新报头222包括相同目标地址D1,这是因为第一封装分组220仍然去往服务器设备250。新报头222的源地址S2是由边缘设备230选择的源网络标识符。在一些实现方式中,新报头222还包括分组协议字段,其包括指定分组协议的值。该值也可指示新报头222用于封装的分组。

在一些实现方式中,源网络202至边缘设备230互连运行标准路由协议,以通告网络之间的可达性。在一些实现方式中,可以在公共网络的边缘创建静态路由。例如,可以在源网络路由器204和边缘设备230之间建立标准边界网关协议(BGP)会话。边缘设备230然后可以通告或广播源网络标识符,例如,虚拟IP地址,通过其可到达源网络202。源网络路由器204例如可以通过将概要通告至源网络202,而将其连接性通告至源网络202。边缘设备230也可以配置为使得:响应于接收至源网络202的路由,其进而将源网络202的源网络标识符通告到公共网络260的公共骨干240中,使得公共网络260上的其他设备(包括其他边缘设备)知晓源网络标识符、以及通过其可到达源网络的(多个)边缘设备。

在一些实现方式中,还可以实现用于引入冗余和故障切换支持的方法。例如,源网络202可以将可达性指示符广播至边缘设备230。指示符可以是源网络的概要,或可以是另一路由。其可以例如在BGP中实现,该BGP提供用于通告路径的实现方式。边缘设备230将在接收到可达性指示符时,将源网络202通告至公共网络260的公共骨干240中。在该情况下,多个边缘设备可以通告相同源网络标识符,在公共网络260设备或源网络202设备出现故障的情况下提供冗余。

边缘设备230将第一封装分组220路由至服务器设备250。在一些实现方式中,如在示例过程200中,第一封装分组220被转发至构成公共网络260的公共骨干240的一个或多个设备。这些设备例如包括负载均衡器、分组处理引擎、以及路由器,并且它们可以执行任何必要的查找/重封装过程,并最终将第一封装分组220转发至服务器设备250。

服务器设备250基于第一封装分组220的新报头222中所包括的分组协议字段,确定第一封装分组222封装另一分组。基于该确定,服务器设备250在其网络连接表252中记录新报头222的源地址,例如源网络标识符S2。网络连接表252包括由服务器设备使用的数据,诸如IP地址信息、网络标识符、端口、协议等,用于管理与各种网络设备的网络通信。

服务器设备250从第一封装分组220提取第一网络分组210。取决于所使用的封装类型或其他标记方法,可以使用不同的方法来提取第一网络分组。例如当使用IPIP封装时,外部报头(例如新报头222)可以被忽略或丢弃。在提取第一网络分组210之后,服务器设备250将该分组作为标准网络分组对待,其被接收用于例如通过其正常内核管道处理。

当用返回/外发分组响应时,服务器设备250生成包括有效载荷P2和报头272的响应分组270,报头272将响应分组的目标指定为第一网络分组210所源自的用户设备和/或源网络路由器的地址。换言之,第一网络分组的源S1是响应分组270的目标。响应分组270的源D1是服务器设备250的地址。

在生成响应分组270之后,服务器设备250从网络连接表252获得源网络标识符,并且例如通过将响应分组封装在第二封装分组280中,用源网络标识符来标记响应分组。在示例过程200中,第二封装分组280包括外部报头282,其指定源网络标识符S2作为目标,并指定服务器设备250的地址D1作为源。在封装响应分组270之后,服务器设备250将第二封装分组280路由至源网络202,例如通过公共骨干240并通过边缘设备230,或通过公共网络260中所包括的不同边缘设备。

在一些实现方式中,服务器设备250还能够与还没有经历上述路由和封装的设备进行通信。例如,与服务器设备250通信并且没有与公共网络260的边缘设备关联的源网络(例如,使用互联网进行通信的非关联源网络)可以与服务器设备进行通信,而不需要提取和封装网络分组。在该情况下,服务器设备250可以从不在公共网络269内的网络设备接收网络分组;基于网络分组的分组协议字段,来确定网络分组不是封装分组;并且正常地处理网络分组。对于这些网络分组的响应例如不必被封装或通过公共网络260的公共骨干240路由。

边缘设备230(或在一些实现方式中,源网络标识符已经被通告到的另一边缘设备)接收从服务器设备250发送的第二封装分组280。边缘设备230例如通过移除外部报头282,来从第二封装分组280提取响应分组270。边缘设备230然后将响应分组270路由至源网络202。在示例过程200中,源网络路由器204接收响应分组270,并且可以正常地处理分组,例如通过将分组转发至源网络202内的适当的用户设备。

虽然示例过程200描绘了单个源网络、边缘设备和服务器设备,但是上述路由和封装技术可以用于许多其他网络配置。如上所述,公共网络260可以包括许多边缘设备和服务器设备。在一些实现方式中,边缘设备可以直接与服务器设备通信,例如,不用通过公共骨干210路由网络分组。在一些实现方式中,源网络可能需要与公共网络260关联,以有资格使用使用上述方法与公共网络进行通信,例如通过要求源网络是直接连接至公共网络的云计算网络。

图3是示例过程300的流程图,在示例过程300中封装和路由网络分组。示例过程300可以由诸如边缘设备的数据处理装置实现。

从源网络、以及在源网络的外部和第二网络内的边缘设备处接收第一网络分组(302)。第一网络分组包括第一内部报头,并且第一内部报头包括:i)第一源地址,其指定包括在源网络中的用户设备,第一网络分组源自该用户设备;以及ii)第一目标地址,其指定目标服务器,第一网络分组寻址到该目标服务器。例如,边缘设备可以从源网络接收网络协议分组,并且报头指定发送分组的源网络上的用户设备的IP地址,而目标地址指定位于第二网络上的目标服务器设备的IP地址。

从多个可路由网络标识符,选择用于源网络的源网络标识符(304)。源网络标识符与源地址不同。在一些实现方式中,可路由网络标识符仅需要可在第二网络内路由。例如,边缘设备可具有在第二网络上已知唯一的一组字符串,并且这些唯一字符串中的一个可以被选择作为用于源网络的源网络标识符。在一些实现方式中,边缘设备具有边缘设备标识符,其唯一地标识第二网络内的边缘设备,并且选择用于源网络的源网络标识符不同于边缘设备标识符。在使用IP地址作为网络标识符的示例中,源网络标识符可以是对于第二网络唯一的IP地址,例如,与边缘设备的IP地址不同。

在一些实现方式中,源网络是与边缘设备进行通信的多个源网络中的一个。为源网络中的每一个选择源网络标识符,并且每一个源网络标识符与选择用于与边缘设备通信的源网络的每一个其他源网络标识符不同。例如,连接至10个不同的源网络的边缘设备可以具有被分配至它们中的每一个的10个不同的IP地址。IP地址可以唯一地标识第二网络内的相对应源网络。

第一网络分组被封装在第一封装分组内(306)。第一封装分组包括第一外部报头,并且第一外部报头包括:i)第一外部源地址,指定源网络标识符;以及ii)作为第一目标地址的第一外部目标地址。在一些实现方式中,IPIP封装被用于将第一网络分组封装在第一封装分组内。在一些实现方式中,GRE被用于将第一网络分组封装在第一封装分组内。作为示例,可以第一网络分组可以前置有外部报头,该外部报头指定与第一网络分组相同的目标地址,但是包括源网络标识符作为源。

在一些实现方式中,第一封装分组的第一外部报头包括分组协议字段,并且将第一网络分组封装在第一封装分组内包括:指定用于分组协议字段的值,其指示第一封装分组封装第一网络分组。例如,预定的字符串可以被置于外部报头的分组协议字段中,其将向读取报头的设备指示该分组是封装分组。

第一封装分组被路由至第二网络内的目标服务器(308)。在一些实现方式中,用于第二网络的公共骨干(其可包括多个网络设备)可用于将分组从边缘设备路由至目标服务器。例如,第一封装分组可被提供至第二网络内的网络负载均衡器。网络负载均衡器可确定应如何将分组路由至目标服务器。

从目标服务器接收第二封装分组,该第二封装分组包括第二网络分组(310)。第二网络分组包括第二外部报头,并且第二外部报头包括:i)作为第一目标地址的第二外部源地址,其指定第二封装分组所源自的目标服务器;以及ii)第二目标地址,其指定第二封装分组所寻址到的源网络标识符。例如,由第一封装分组所寻址到的目标服务器发送由边缘设备接收的第二封装分组。第二封装分组寻址到源网络标识符,其在第一封装分组的外部报头中被指定为源地址。

从第二封装分组提取第二网络分组(312)。第二网络分组包括第二内部报头,并且第二内部报头包括:i)第二源地址,其作为第一目标地址;以及ii)第二目标地址,其作为第一源地址。例如,内部分组寻址到用户设备,从该用户设备接收原始网络分组。

将第二网络分组路由至源网络(314)。例如,边缘设备将第二网络分组转发至源网络中所包括的路由器,并且路由器将第二网络分组转发至第一网络分组所源自的个人计算机或其他用户设备。

图4是示例过程400的流程图,在示例过程400中,目标设备使用网络分组封装而操作。示例过程400可以由诸如服务器设备的数据处理装置实现。

第一封装分组由数据处理装置从边缘设备接收(402)。在一些实现方式中,边缘设备和数据处理装置是与一个或多个外部网络分离的公共网络的一部分。例如,边缘设备和服务器设备两者可以是连接至诸如互联网和/或源网络的外部网络的LAN的一部分。

基于第一封装分组内所包括的分组协议字段,过程400确定第一封装分组封装第一网络分组(404)。在一些实现方式中,数据处理装置在检查分组协议字段之前可以不知晓所接收的分组封装另一分组。分组协议字段例如可以包括指定所接收的分组是封装分组的值。

响应于第一封装分组封装第一网络分组的确定,标识第一封装分组的第一外部报头中所包括的第一外部源地址(406)。第一外部源地址指定第一网络分组所源自的源网络。

第一外部源地址被记录在网络连接表中(408)。例如,接收第一封装分组的服务器设备将第一外部源地址、以及与建立与源网络(分组源自该源网络)的通信相关的任何其他数据记录在其连接表中。

从第一封装分组提取第一网络分组(410)。第一网络分组包括第一内部报头,并且第一内部报头包括:i)第一源地址,其指定第一网络分组所源自的用户设备;以及ii)第一目标地址,其指定第一网络分组所寻址到的数据处理装置。例如,第一源地址可以是个人计算机和/或源网络的路由器的IP地址,并且第一目标地址可以指定服务器设备的IP地址。

处理第一网络分组(412)。服务器设备可以使用其标准处理方法来处理第一分组。例如,如果分组中包括的有效载荷请求来自服务器设备的内容,则服务器设备可以将所请求的内容定位在例如连接至服务器设备的一个或多个存储设备上,并准备该内容,以发送至进行请求的用户设备。

生成第二网络分组(414)。第二网络分组包括第二内部报头,并且第二内部报头包括:i)作为第一目标地址的第二源地址,其指定数据处理装置;以及ii)第二目标地址,其作为第二网络分组所寻址到的第一源地址。例如,第二源地址可以是服务器设备的IP地址,并且第二目标地址可以是用户设备的IP地址。

从网络连接表获得第一外部源地址(416)。例如,服务器设备可以从例如本地存储体取出响应第一网络分组所需的数据,其包括第一网络分组所源自的源网络的标识符。

将第二网络分组封装在第二封装分组内(418)。第二封装分组包括第二网络分组和第二外部报头,其包括:i)作为第一目标地址的第二外部源地址,其指定数据处理装置;以及ii)外部目标地址,其作为第二封装分组所寻址到的第一外部源地址。例如,服务器设备可以使用IPIP封装,以创建用于第二网络分组的外部报头,并且外部报头指定源网络标识符作为其目标,并指定IP地址服务器设备作为源。

第二封装分组被路由至由第一外部源地址指定的源网络(420)。例如,服务器设备可以将第二封装分组直接或间接地转发至从其接收第一封装分组的边缘设备,并且边缘设备可以移除内部分组并将内部分组转发至适当的源网络。在一些实现方式中,边缘设备和数据处理装置在第二网络内,该第二网络与第一网络分组所源自的源网络分离。

在一些实现方式中,边缘设备是包括服务器设备的第二网络内的多个边缘设备中的一个,并且可达性指示符被广播至第二网络,其指定边缘设备与源网络通信。例如,边缘设备可以例如向第二网络的骨干和/或第二网络中的其他边缘设备通告与边缘设备进行通信的(多个)源网络。边缘设备与源网络之间的通信的线路的通告可以有助于通过第二网络的通信的路由,同时还通过使得其他边缘设备能够接管可能已经故障的边缘设备,来提供边缘设备故障保护。

在一些实现方式中,数据处理装置从网络设备接收第三网络分组。例如,网络设备可以是存在有服务器设备和边缘设备的公共网络的外部的网络路由器。基于第三网络分组中所包括的分组协议字段,可以确定第三网络分组不封装另一网络分组。响应于进行该确定,服务器设备可以例如使用标准网络路由方法来处理第三网络分组。在该实现方式中,例如,服务器设备能够接收被封装的网络分组和标准网络分组,确定接收哪种类型的网络分组,并取决于所接收的网络分组的类型进行适当的响应。

图5是示例数据处理装置500的框图。系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530和540中的每一个可以例如使用系统总线550互连。处理器510能够处理用于在系统500内运行的指令。在一个实现方式中,处理器510是单线程处理器。在另一实现方式中,处理器510是多线程处理器。处理器510能够处理存储在存储器520中或存储设备530上的指令。

存储器520存储系统500内的信息。在一个实现方式中,存储器520是计算机可读介质。在一个实现方式中,存储器520是易失性存储器单元。在另一实现方式中,存储器520是非易失性存储器单元。

存储设备520能够提供用于系统500的大容量存储。在一个实现方式中,存储设备530是计算机可读介质。在各种不同实现方式中,存储设备530例如可以包括硬盘设备、光盘设备或一些其他大容量存储设备。

输入/输出设备540提供用于系统500的输入/输出操作。在一个实现方式中,输入/输出设备540可以包括:一个或多个网络接口设备,例如以太网卡;串行通信设备,例如RS-232端口;和/或无线接口设备,例如802.11卡。在另一实现方式中,输入/输出设备可以包括驱动设备,配置为接收输入数据并将输出数据发送至其他输入/输出设备,例如键盘、打印机和显示设备560。然而,也可使用其他实现方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。

本说明书中描述的主题和操作的实施例可以实现为数字电子电路、或者计算机软件、固件或硬件,包括在本说明书中公开的结构及其结构等效物,或它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即计算机程序指令的一个或多个模块,其被编码在计算机存储介质上,用于由数据处理装置运行或用于控制数据处理装置的操作。

计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是在人工生成的传播信号中编码的计算机程序指令的源或目标。计算机存储介质还可以是或被包括在一个或多个分离的物理组件或介质中(例如,多个CD盘或其他存储设备)。

本说明书中描述的操作可以实现为由数据处理装置对在一个或多个计算机可读存储设备上存储的或从其他源接收的数据执行的操作。

术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,作为示例,其包括可编程处理器、计算机、芯片上系统、或上述中的多个或其组合。装置可包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件外以,该装置还可包括创建用于相关计算机程序的运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和运行环境可以实现各种不同计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,包括汇编或解释语言、声明式或过程化语言,并且可以以任何形式部署,包括作为单机程序或作为模块、组件、子例程、对象或其他适于在计算环境中使用的单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保持其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于相关程序的单个文件中、或多个协调文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一个计算机或多个计算机上运行,该多个计算机位于一个站点,或跨多个站点分布并且由通信网络互连。

本说明书中描述的过程和逻辑流可以由一个或多个可编程处理器执行,该一个或多个可编程处理器运行一个或多个计算机程序,以通过对输入数据操作并生成输出而执行动作。该过程和逻辑流还可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,该专用逻辑电路例如为FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

作为示例,适于计算机程序的运行的处理器包括通用和专用微处理器两者、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或者两者接收指令和数据。计算机的必要元件是用于根据指令来执行动作的处理器、以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,或者计算机将可操作地耦合至一个或多个大容量存储设备以接收数据或传送数据,或者包含以上两种情况,所述大容量存储设备例如是磁盘、磁光盘、或光盘。然而,计算机不必具有这样的设备。此外,计算机可以体现在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或便携式存储设备(例如,通用串行总线(USB)闪速驱动)等等。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括:半导体存储器设备,例如EPROM和EEPROM,以及闪速存储器设备;磁盘,例如,内部硬盘或可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充,或被合并到专用逻辑电路中。

为了提供与用户的交互,本说明书中描述的主题的实施例可以实现在具有显示设备以及键盘和指向设备的计算机上,所述显示设备例如是CRT(阴极射线管)或LCD(液晶显示器)监视器,用于显示信息给用户,所述指向设备例如是鼠标或轨迹球,用户可以通过其提供输入至计算机。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、声觉反馈、或触觉反馈;并且来自用户的输入可以以包括声音、语音或触觉输入的任何形式接收。此外,计算机可以通过发送文档至用户使用的设备并从用户使用的设备接收文档,而与用户进行交互;例如通过响应于从网络浏览器接收的请求,而发送网页至用户的用户设备上的网络浏览器。

本说明书中描述的主题的实施例可以以计算系统实现,其包括后端组件,例如作为数据服务器;或包括中间件组件,例如应用服务器;或者包括前端组件,例如具有图形用户界面或网络浏览器的用户计算机,用户可通过图形用户界面或网络浏览器与本说明书中描述的主题的实现交互;或一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过例如通信网络的数字数据通信的任何形式或介质来互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,互联网)、以及对等网络(例如,自组织对等网络)。

计算系统可以包括用户和服务器。用户和服务器通常彼此远离,并且典型地通过通信网络进行交互。用户和服务器的关系通过计算机程序而得到,该计算机程序在各个计算机上运行并彼此具有用户-服务器关系。在一些实施例中,服务器将数据(例如,HTML页面)发送至用户设备(例如,为了显示数据至与用户设备交互的用户,以及从用户接收用户输入)。可以在服务器处从用户设备接收在用户设备处生成的数据(例如,用户交互的结果)。

虽然本说明书包含许多特定的实施方式细节,但是它们不应被解释为对任何发明或可能要求保护的内容的范围限制,而是被解释为对特定发明的特定实施例的特定特征的描述。在单独的实施例的语境中的本说明书中所描述的特定特征也可以组合在单个实施例中实现。相反,在单个实施例的语境中所描述的各种特征也可以单独地或以任何适当子组合在多个实施例中实现。此外,虽然特征可能在上文描述为在某些组合中起作用、并且甚至在最初如此要求保护,但是在一些情况下,可以从组合中排除来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变型。

类似地,虽然以特定的次序在附图中描绘了操作,但是不应理解为需要以所示的特定次序或顺序化的次序来执行这样的操作,或执行全部图示的操作,以实现期望的结果。在某些环境下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为需要在所有实施例中如此分离,并且应当理解,所描述的程序组件和系统可以总体地集成在一起,在单个软件产品中或封装到多个软件产品中。

因此,已经描述主题的特定实施例。其他实施例在所附权利要求的范围内。在一些情况下,权利要求中陈述的动作可以以不同的次序执行,并且仍然实现期望的结果。此外,附图中描绘的过程不必需要所示的特定次序或顺序化的次序以实现期望结果。在特定实现方式中,多任务和并行处理可能是有利的。

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