CN117356074A - 使用协商加密算法选择vpn连接以提高吞吐量 - Google Patents

使用协商加密算法选择vpn连接以提高吞吐量 Download PDF

Info

Publication number
CN117356074A
CN117356074A CN202280037099.5A CN202280037099A CN117356074A CN 117356074 A CN117356074 A CN 117356074A CN 202280037099 A CN202280037099 A CN 202280037099A CN 117356074 A CN117356074 A CN 117356074A
Authority
CN
China
Prior art keywords
vpn
encryption algorithm
vpn connection
performance
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280037099.5A
Other languages
English (en)
Inventor
S·桑加潘迪
A·古普塔
V·阿罗拉
A·文卡塔查拉姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/518,382 external-priority patent/US20220385637A1/en
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN117356074A publication Critical patent/CN117356074A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文描述的技术使虚拟专用网(VPN)网关能够基于诸如吞吐量的性能因素,从在网络VPN网关和远程VPN网关之间建立的多个VPN连接中选择VPN连接。系统可以用兆字节每秒(Mbps)来测量吞吐量。更具体地,VPN网关(例如,远程VPN网关或网络VPN网关)可以配置路由偏好来选择基于用于VPN连接的加密算法的性能更高的VPN连接。当VPN连接的性能受到影响时,VPN网关可以更新路由偏好以选择备用VPN连接。

Description

使用协商加密算法选择VPN连接以提高吞吐量
背景技术
虚拟专用网络(VPN)实现了经由另一网络交换数据(通常是互联网协议数据)的各种技术,使用户能够以安全的方式远程访问网络资源。换句话说,这些网络资源可能无法通过公共互联网访问。VPN在信息技术领域经常用于为没有物理连接到组织网络的用户提供对资源的安全访问。在许多情况下,这些用户是远程办公的工作人员或雇员。
传统上,远程VPN客户端或远程VPN网关(例如,在远程或本地网络中配置的一个或多个设备)可以经由网络VPN网关访问网络资源。网络VPN网关是中间系统,其任务是通过公共互联网在网络资源和远程位置(例如,家庭网络,本地网络,企业网络等)之间发送数据业务。因此,远程VPN客户端或远程VPN网关通常包括一个或多个远程设备(例如,本地设备,家庭设备,工作设备等),网络VPN网关由服务(例如,云)提供商配置,以实现对网络资源(例如,虚拟网络,虚拟机,服务器等)的安全访问,这些资源配置在网络VPN网关后面。
网络VPN网关通常由多个VPN服务器实例组成。VPN服务器实例通常负责解密入站数据并且将入站数据传递给网络端的资源(例如,通过虚拟网络和/或在虚拟机上执行的应用程序)。VPN服务器实例还可以对出站数据进行加密,并且将来自网络资源的出站数据发送给远程VPN客户端或远程VPN网关。
通常,在远程VPN网关和网络中的VPN网关之间建立多个VPN连接,称为VPN“隧道”。这些VPN连接被配置为协商使用不同的加密算法。VPN网关通过轮询的方式从多个VPN连接中选择VPN连接。也就是说,VPN网关可以根据顺序选择第一VPN连接,而不考虑所使用的加密算法,以便在远程VPN网关与网络VPN网关之间交换第一数据流。然后,VPN网关根据顺序选择第二VPN连接,而不考虑所使用的加密算法,以便在远程VPN网关与网络VPN网关之间交换第二数据流。这种轮询方式的实现是为了平衡远程VPN网关与网络VPN网关之间建立的VPN连接的负载。但是,通过上述轮询方式选择VPN连接并不能提供最佳的网络性能。
发明内容
本文公开的技术使虚拟专用网(VPN)网关能够基于诸如吞吐量的性能因素,从在网络VPN网关与远程VPN网关之间建立的多个VPN连接中选择VPN连接。系统可以用兆字节每秒(Mbps)来测量吞吐量。更具体地说,VPN网关(例如,远程VPN网关或网络VPN网关)可以配置路由偏好,该路由偏好基于用于VPN连接的加密算法来选择性能更高的VPN连接。
正如本文所讨论的,不同的加密算法对VPN连接提供的吞吐量有不同的影响。网络VPN网关向本网络VPN网关与远程VPN网关之间建立的多个VPN连接分配不同的加密算法。在一个示例中,在网络VPN网关和远程VPN网关之间建立了四个VPN连接——使用高性能的加密算法(例如,GCMAES256~提供约650Mbps的吞吐量)的第一VPN连接,使用与第一VPN连接所使用的算法相比性能较差的加密算法(例如,AES256和SHA256~提供约500Mbps的吞吐量)的第二VPN连接,与第一VPN连接和第二VPN连接使用的加密算法相比,使用性能更差的加密算法(例如,DES3和SHA256-提供约120Mbps的吞吐量)的第三VPN连接,不使用加密(例如,不使用加密算法,因为通过该VPN隧道传输的数据已经被要求加密)的第四VPN连接。查看上面提供的示例,与GCMAES256加密算法相比,AES256和SHA256加密算法以及DES3和SHA256加密算法需要更多的CPU周期,并且这些额外的CPU周期对VPN连接提供的吞吐量有负面影响。
使用之前段的示例,VPN网关可以配置路由偏好,该路由偏好为要交换的数据流选择第一VPN连接,因为它使用的加密算法关于吞吐量提供了最佳性能。在各种示例中,只要第一VPN连接没有过载并且没有出现性能问题,此路由偏好就是有效的。例如,如果延迟测量值高于预先建立的延迟阈值,可能会出现性能问题。在另一示例中,如果分组丢失测量值高于预先设定的分组丢失阈值,则可能出现性能问题。在另一示例中,如果抖动测量高于预先建立的抖动阈值,则可能出现性能问题。延迟、分组丢失和抖动都会影响VPN连接的吞吐量。为此,VPN网关还可以监测和测量吞吐量本身,以确定当吞吐量测量高于预先建立的吞吐量阈值时是否出现性能问题。
如果偏好VPN连接的性能,例如,使用的加密算法从而具有最高吞吐量的VPN连接,由于正在传送的数据业务或其他原因而受到影响,那么VPN网关可以更改路由偏好,将新的数据流路由到使用性能较低的加密算法的其他VPN连接。因此,VPN网关被配置为监测VPN连接的性能,特别是性能最高的VPN连接,以确保继续路由新数据流是可接受的。
为了避免过载情况,可以检查数据流的数据分组(例如,报头)以确定数据分组是否已经加密。如果数据分组已经加密,则其他路由偏好可以将加密的数据流路由到不进行进一步加密的VPN连接。这将进一步提高吞吐量。
本文公开的技术提供了许多改进现有计算设备(例如,服务器)的特征。例如,通过VPN连接传送的数据流的计算效率和吞吐量得到了提高。本文未具体提及的其他技术益处也可以通过公开的主题的实现来实现。
特征和技术优势除通过上述明确描述外,还通过阅读以下详细说明和查看相关附图可以明显看出。提供此总结是为了以简化的形式介绍一些概念,这些概念将在下面的详细描述中进一步描述。本总结不旨在识别权利要求的主题的关键或基本特征,也不旨在作为确定权利要求的主题范围的辅助工具。
附图说明
详细的描述是参照附图描述的。在附图中,附图标记的最左边的数字标识该附图标记首次出现的图。不同附图中的相同附图标记表示相似或相同的项。
图1图示了其中VPN网关可以分配(i)来自跨多个处理核心的单个VPN连接的入站数据分组和(ii)跨多个处理核心的单个VPN连接的出站数据分组示例环境。
图2图示了由VPN网关用于将数据分组路由到处理核心的示例性安全关联表。
图3图示了其中数据分组由VPN网关使用安全关联表路由的示例环境。
图4图示了将出站数据分组路由到多个处理核心中的一个处理核心的示例例程的方面的流程图。
图5图示了将入站数据分组路由到多个处理核心中的一个处理核心的示例例程的方面的流程图。
图6图示了示例环境,其中网络VPN网关可以基于路由偏好进一步提高吞吐量,路由偏好被配置为选择具有最高吞吐量的VPN连接作为用于加密和解密数据流的数据分组的加密算法的结果。
图7图示了示例例程的方面的流程图,该例程使用配置为选择具有最高吞吐量的VPN连接的路由偏好作为用于加密和解密数据流的数据分组的加密算法的结果。
图8图示了基于监测的性能来更新路由偏好的示例例程的方面的流程图。
图9为能够实现本公开的技术的示例计算系统。
具体实施方式
本文介绍使虚拟专用网络(VPN)网关能够基于诸如吞吐量等性能因素从网络VPN网关与远程VPN网关之间建立的多个VPN连接中选择VPN连接的系统。系统可以用兆字节每秒(Mbps)来测量吞吐量。更具体地说,VPN网关(例如,远程VPN网关或网络VPN网关)可以配置路由偏好,该偏好基于用于VPN连接的加密算法来选择性能更高的VPN连接。
本文公开的技术提供了许多改进现有计算设备(例如,服务器)的特征。例如,通过VPN连接传送的数据流的计算效率和吞吐量得到了提高。本文未具体提及的其他技术益处也可以通过公开的主题的实现来实现。
图1图示了示例环境100,其中VPN网关102可以分配(i)在跨多个处理核心的单个VPN连接106上传送的入站数据分组104(例如,ESP数据分组)和(ii)在跨多个处理核心的单个VPN连接106上传送的出站数据分组108(例如,TCP数据分组、UDP数据分组、ICMP数据分组等)。VPN网关102被配置为在各种网络112上与远程设备110建立VPN连接106。
VPN网关102包括VPN服务器实例114,也称为物理:“主机”或“机器”,它是VPN服务器实例组的部分,其任务是解密入站数据(例如,入站数据分组104)并且将入站数据传递给网络端的网络资源116。在一个示例中,这些网络资源116可以包括经由虚拟网络和/或在虚拟机上执行的应用。VPN服务器实例还负责加密源自网络资源116的出站数据(例如,出站数据分组108),并且通过各种VPN连接(例如,VPN连接106)将出站数据发送到远程设备(例如,远程设备110)。然后,远程设备可以解密出站数据分组并且将数据分组路由到远程网络内的目的地。因此,VPN网关102是中间系统,负责保护和发送配置在VPN网关102后面的网络资源116与远程设备之间的数据业务。此外,VPN连接106为多个数据流118(例如,在两个不同端点设备上执行的两个应用之间交换的数据分组)启用数据分组传输。因此,VPN连接106可以备选地称为VPN隧道。
VPN网关102包括分配模块120,其被配置为分配用于加密和解密通过VPN连接106传输的数据的VPN网关资源。例如,分配模块120将虚拟机122分配给VPN连接106。此外,分配模块120被配置为确定可用的处理核心的数目,以加密出站数据分组和/或解密用于单个VPN连接的入站数据分组。如果处理核心没有被使用,或者它的容量等级(例如,50%)低于已知对吞吐量有负面影响的阈值容量等级(例如,95%),则该处理核心在给定时间是可用的。因此,可以将分配模块120配置为监测VPN服务器实例114中处理核心的运行能力,并且使用监测的运行能力将可用的处理核心分配给虚拟机122。
如图1所示,为VPN连接106保护数据传送的虚拟机122包括四个可用处理内核124(1至4)。虽然图1图示了四个可用的处理核心,但是在本公开的上下文中可以理解,可以使用多于或少于四个的处理核心。通常,分配给虚拟机122的处理核都是同一VPN服务器实例114的部分,但是分配的处理核的数目可能不包括VPN服务器实例114的所有处理核(例如,在单个VPN服务器实例114上可以配置多个不同的虚拟机)。
分配模块120配置为将处理核124(1至4)划分为第一(例如,两个或更多个)处理核集124(1),124(2)用于加密出站数据分组108和第二(例如,两个或多个)处理核集124(3),124(4)用于解密入站数据分组104。这使得VPN连接106的定向业务的加密或解密可以在多个处理核心之间进行拆分,从而提高吞吐量。因此,可以将可用处理核心的总数分为两个集,从而可以确定用于加密的处理核心的数目和用于解密的处理核心的数目。在某些示例中,用于加密和解密的数目是相同的。
分配模块120还基于第一集中的多个处理核心为VPN连接106创建多个出站SA,并且将出站SA分配给处理核心(例如,将SA绑定到专用的处理核心)。分配模块120配置为为出站SA中的每个出站SA分配SPI标识符。因此,如图1所示,处理核124(1)与第一出站SA/SPI对126相关联,处理核124(2)与第二出站SA/SPI对128相关联。
继续采用这种方法,分配模块120基于第二组中的多个处理核心为VPN连接106创建多个入站SA,并且将入站SA分配给处理核心。分配模块120配置为给入站SA中的每个入站SA分配SPI标识符。因此,如图1所示,处理核124(3)与第一入站SA/SPI对130相关联,处理核124(4)与第二入站SA/SPI对132相关联。
用于入站和出站数据分组的SA和处理核心的数目可以根据处理核心的可用性和/或其他因素进行配置和/或缩放。在一个示例中,VPN网关102决定使用虚拟机122中所有可用的处理内核来加密和解密通过单个VPN连接106传送的数据分组。在其他示例中,在考虑其他因素时,可以做出使用少于所有可用处理核心的决定。
现在,用于加密和解密的每个可用处理核心124(1至4)都与SA和SPI标识符相关联。SPI标识符是用来标识SA,并且将其与其他SA区分开的值(例如32位的值)。这些关联反映在分配模块120为虚拟机122和VPN连接106创建的安全关联表134的不同表项中。安全关联表134将SA/SPI对映射到它们的专用处理核心,当路由数据分组进行处理时,可以经由安全关联表134引用这些映射。
图2图示VPN网关102的分配模块120用于将数据分组路由到处理核心的示例性安全关联表200(例如,安全关联表134)。安全关联表200包括将第一入站SA 130及其SPI标识符130(来自图1)映射到处理核心124(3)的第一条目202。第一表项202中的SPI标识符130是“0x80808080”。安全关联表200包括第二条目204,该第二条目204将第二入站SA 132及其SPI标识符132(来自图1)映射到处理核心124(4)。第二条目204中的SPI标识符132是“0x60606060”。安全关联表200包括将第一出站SA 126及其SPI标识符126映射到处理核心124(1)的第三项206。第三条目206中的SPI标识符126是“0x90909090”。最后,安全关联表200包括第四条目208,该条目208将第二出站SA 128及其SPI标识符128映射到处理核心124(2)。第三条目206中的SPI标识符128是“0x70707070”。
分配模块120必须确保为出站数据分组做出适当的路由决策,以实现加密目的。如上所述,出站数据分组是来自网络资源116的数据分组,并且在被VPN网关102接收时需要进行加密。该加密过程的部分包括在通过VPN连接106进行传送之前向出站数据分组添加SPI标识符(例如,“0x90909090”或“0x70707070”)。因此,当被VPN网关102接收时,出站数据分组108是尚未具有SPI标识符的类型(例如,TCP数据分组,UDP数据分组,ICMP数据分组)。
为了确保将出站数据分组108路由到正确的处理核心,将分配模块120配置为给出站SA 126,128中的每个出站SA分配业务选择器。业务选择器标识正在被远程设备110使用的目的IP子网的部分,以及正在被网络资源116使用的源IP子网或源IP子网的部分。因此,业务选择器标识源IP子网和目的IP子网之间的映射关系,并且根据这些映射关系选择出出站SA。对于单个源IP子网或源IP子网的部分,通过配置分配模块120,将目的IP子网划分为多个不重叠的部分或IP地址范围,并且将目的IP子网的部分单独分配给单独的出站SA。这些业务选择器被添加到安全关联表200中,并且用于平衡处理核124(1),124(2)之间的出站负载,这些处理核负责为VPN连接106加密出站数据分组。在各种示例中,业务选择器创建大小相等的部分(例如,每个部分包含相同数目的IP地址)。
如图2所示,如果远程设备110的目的IP子网为“0.0.0.0”,则分配模块120可以将第一业务选择器210分配给第一出站SA 126(例如,目的IP子网中被“0.0.0.0/1”覆盖的部分)。类似地,分配模块120可以将第二业务选择器212分配给第二出站SA 128(例如,由“128.0.0.0/1”覆盖的目的IP子网的部分)。业务选择器210,212将目的IP子网划分为两部分,并且将这两部分映射到相同的源IP地址(例如,由生成出站数据分组的网络资源116使用)。
图3图示了示例环境300,其中数据分组由使用图2中的安全关联表200的VPN网关102(例如,分配模块120)路由。当网络资源116向VPN网关102发送数据分组时,会包含指定目的IP地址的报头。如图3所示,第一出站数据分组302包括指定目的IP地址304为“0.0.0.1”的报头。分配模块120被配置为从出站数据分组302获取“0.0.0.1”的目的IP地址304,并且通过将“0.0.0.1”的目的IP地址304与远程设备110的目的IP子网306(例如“0.0.0.0”)的对应部分(例如“0.0.0.0/1”)相关联或匹配来选择出站SA 126。目的IP子网306的这部分(例如,“0.0.0.0/1”)经由分配给出站SA 126的业务选择器210来标识。
类似地,图3图示第二出站数据分组308,其包括特定“129.0.0.1”的目的IP地址310的报头。分配模块120配置为从出站数据分组308获取“129.0.0.1”的目的IP地址310,并通过将“129.0.0.1”的目的IP地址310与远程设备110的目的IP子网306(例如,“0.0.0.0”)的对应部分(例如,“128.0.0.1”)相关联或匹配来选择出站SA 128。目的IP子网306的这部分(例如,“128.0.0.1”)经由分配给出站SA 128的业务选择器212来标识。因此,业务选择器210,212能够为单个VPN连接106有效地选择出站SA(例如,可称为QM SA)。
通过使用安全关联表200,分配模块120可以标识绑定到所选出站SA的处理核心。即,如图3所示,分配模块120基于所选的出站SA 126将出站数据分组302路由到处理核心124(1),基于所选的出站SA 128将出站数据分组308路由到处理核心124(2)。如上所述,这些处理核124(1)和124(2)根据IPsec对通过同一VPN连接106传送到远程设备110的出站数据分组302,308进行加密。由此,SPI标识符“0x90909090”被添加到出站数据分组302,SPI标识符“0x70707070”被添加到308出站数据分组。换言之,出站数据分组从一种类型的数据分组转换为更安全类型的数据分组(例如,ESP数据分组)。
当入站数据分组从远程设备110到达VPN网关102进行解密时,入站数据分组包括一个报头(例如,ESP报头),该报头基于经由在远程设备110上运行的VPN客户端发生的加密来指定SPI标识符。如图3所示,入站数据分组312包含SPI 314报头“0x80808080”,入站数据分组316包含SPI 318报头“0x60606060”。因此,将分配模块120配置为将入站数据分组312,316的报头中的SPI标识符与安全关联表200中的SPI标识符匹配。更具体地说,分配模块120将SPI 314“0x80808080”与安全关联表200中的条目202相匹配,为入站数据分组312选择第一入站SA 130。类似地,分配模块120将SPI 318“0x60606060”与安全关联表200中的条目204相匹配,为入站数据分组316选择第二入站SA 132。
然后,分配模块120可以使用安全关联表200来标识绑定到所选入站SA的处理核心。即,如图3所示,分配模块120基于所选入站SA 130将入站数据分组312路由到处理核心124(3),基于所选入站SA 132将入站数据分组316路由到处理核心124(4)。如上所述,这些处理核心124(3)和124(4)根据IPsec对入站数据分组312,316进行解密,并且将其传递给网络资源116。因此,这些路由包含用于解密目的的SA上下文信息。
在各种示例中,分配模块120可以基于数据分组标识符来创建和缓存流表,以便将具有相同序列的后续数据分组或相同的数据流(例如,相同的目的和源IP地址/端口)与相同的SA关联并以正确的顺序路由到相同的处理核心。这样,使用安全关联表200的查找操作只需要在接收到序列中的第一数据分组时发生(例如,将初始出站数据分组从网络资源116发送到远程设备110)。后续数据分组可以使用缓存流表来正确地路由到处理核心。这提供了一种优化,因为与安全关联表相比,流表支持更有效的查找操作。
上述技术提高了VPN连接的吞吐量。此外,与其他可用的处理核心相比,当特定处理核心被过度利用时,可以实现这些技术来做出运行时负载平衡决策。例如,当有附加的处理核心可供使用时,可以决定创建额外的SA。通过这种方式,数据业务可以分配在更多的处理核心上。
图4和图5是说明描述本公开的各个方面的例程的流程图。在各种示例中,例程的操作可以由VPN网关的组件(例如,服务器实例,配置在VPN网关服务器上的分配模块等)执行。这里图4和5所描述的逻辑操作可以被实现为(1)作为在计算设备上运行的计算机实现动作或程序模块的序列和/或(2)作为计算设备内互连的机器逻辑电路或电路模块。
为了便于理解,将本公开中讨论的过程描述为表示为独立块的单独操作。然而,这些单独描述的操作不应被解释为它们的性能必须依赖于顺序。描述过程的顺序不打算被解释为限制,并且所描述的过程块的任何数目可以以任何顺序组合以实现该过程或替代过程。此外,还可能修改或省略所提供的一个或多个操作。
本文公开的技术的特定实现是取决于计算设备的性能和其他要求的选择问题。因此,本文所述的逻辑操作被不同地称为状态,操作,结构装置,动作或模块。这些状态,操作,结构器件,动作和模块可以在硬件,软件,固件,专用数字逻辑以及它们的任何组合中实现。应当理解,可以执行比图中所示和本文描述的操作更多或更少的操作。这些操作也可以以不同于本文所述的顺序执行。
还应当理解,所示的方法可以在任何时间结束,并且不需要全部执行。方法的部分或全部操作,和/或实质上等效的操作,可以通过执行包含在计算机可读介质上的计算机可读指令来执行。在说明书和权利要求书中使用的术语“计算机可读指令”及其变体在本文中被广泛地用于包括例程,应用程序,应用程序模块,程序模块,程序,组件,数据结构,算法等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统中的处理单元,小型计算机,大型计算机,个人计算机,头戴式显示设备,手持计算设备,基于微处理器的可编程消费电子产品,其组合等。
例如,例程的操作可以通过动态链接库(“DLL”),静态链接库,应用程序编程接口(“API”),编译程序,解释程序,脚本,网络服务或站点或任何其他可执行指令集来实现。数据可以存储在一个或多个存储器组件中的数据结构中。可以通过对数据结构的链接或引用寻址,从数据结构中取回数据。
尽管下面的说明可以参考附图的组件,但是可以理解的是,例程的操作也可以以许多其他方式实现。例如,例程可以至少部分地由另一台远程计算机,处理器或电路实现。在本文描述的示例中,计算系统的一个或多个模块可以接收和/或处理所述数据。适合于提供本文公开的技术的任何服务,电路或应用均可用于所描述的操作。
参照图4,例程400从操作402开始,其中为VPN连接创建了多个出站安全关联(SA)。在操作404处中,为多个出站SA中的每个出站SA分配业务选择器。业务选择器标识远程设备用于VPN连接的目的IP子网的部分,并且将目的IP子网的部分映射到源IP子网或源IP子网的部分。
在操作406处,在安全关联表中将处理核心映射到多个出站SA中的每个出站SA。如上所述,安全关联表可能是在VPN连接建立时创建的。在操作408时,接收到要加密的出站数据分组。如上所述,出站数据分组包含指定目的IP地址的报头。
在操作410处,根据目的IP地址和业务选择器选择出站SA。也就是说,VPN网关配置为将出站数据分组报头中指定的目的IP地址与经由分配给所选出站SA的业务选择器标识的目的IP子网的相应部分进行匹配。可以使用安全关联表来查找此匹配。
在操作412处,安全关联表用于标识映射到所选出站SA的处理核心。最后,在操作414处,将出站数据分组路由到映射到所选出站SA的处理核心,以便对出站数据分组进行加密。
参考图5,例程500从操作502开始,其中为VPN连接创建了多个入站安全关联(SA)。在操作504处,为多个入站SA中的每个入站SA分配安全参数索引(SPI)标识符。在操作506处,分配给多个入站SA中的每个入站SA的SPI标识符在安全关联表中映射到处理核心。
在操作508处,接收到要解密的入站数据分组。如上所述,入站数据分组包括指定SPI标识符的报头。在操作510处,通过将入站数据分组的报头中指定的SPI标识符与安全关联表中相应的SPI标识符相匹配来选择入站SA。
在操作512处,安全关联表用于标识映射到所选入站SA的处理核心。最后,在操作514处,将入站数据分组路由到映射到所选入站SA的处理核心,以便可以对入站数据分组进行解密。
图6图示了一个示例环境600,在该环境600中,VPN网关102(例如,网络VPN网关)可以基于路由偏好进一步提高吞吐量,该路由偏好被配置为选择具有最高吞吐量的VPN连接作为用于加密和解密数据流的数据分组的加密算法的结果。VPN网关102可以被配置为与包括与远程网络(例如,企业网络)相关联的远程VPN网关610的各种端点(例如,诸如服务器的设备609A至609D)建立多个VPN连接602,604,606,608。虽然本例中VPN连接数为4个,但可以理解为远程VPN网关610和VPN网关102之间可以建立的VPN连接数不超过4个。
VPN网关102和/或远程VPN网关610可以以兆字节每秒(Mbps)测量吞吐量。配置VPN网关102和/或远程VPN网关610,为多个VPN连接602,604,606,608分配不同的加密算法。这些不同的加密算法提供不同等级的安全性,但它们也有不同的性能要求。如图6所示,第一VPN连接602使用高性能的加密算法(例如,GCMAES256~提供约650Mbps的吞吐量),第二VPN连接604使用性能较差的加密算法(例如,AES256和SHA256~提供约500Mbps的吞吐量),与第一VPN连接602相比,第三VPN连接606使用性能更差的加密算法(例如,DES3和SHA256~提供约120Mbps的吞吐量)与第一VPN连接602和第二VPN连接604使用的VPN连接相比,第四VPN连接608不使用加密(例如,不使用加密算法,因为通过该VPN隧道传输的数据已经被要求加密)。如图6所示的示例,与GCMAES256加密算法相比,AES256&SHA256加密算法和DES3&SHA256加密算法需要更多的CPU周期,这些额外的CPU周期对相关VPN连接提供的吞吐量有负面影响。
VPN网关102和/或远程VPN网关610可以包括各自的路由模块612A,612B。路由模块612B可以在设备609A至609D的单个模块上执行,或者在单独的网络网关设备上执行。因此,路由模块612A、612B使用路由偏好614,该偏好为要交换的数据流616A、616B选择第一VPN连接602,因为它使用了相对于吞吐量618提供最佳或最高性能的加密算法。
路由模块612A、612B进一步配置为定期或实时监测VPN连接602、604、606、608的性能。在各种示例中,只要第一VPN连接602没有过载和出现性能问题,路由偏好614就是有效的。例如,如果性能度量不再满足为特定性能因素预先设定的性能阈值620,就可能出现性能问题。更具体地说,只要第一VPN连接602的延迟测量满足(例如,如下所示)预先建立的阈值延迟值,路由偏好614可能是有效的。在另一示例中,只要第一VPN连接602的数据分组丢失测量满足(例如,如下所示)预先建立的阈值数据分组丢失值,路由偏好614就可以有效。在另一示例中,只要第一VPN连接602的抖动测量满足(例如,如下所示)预先建立的阈值抖动测量,路由偏好614就可以有效。诸如延迟,分组丢失,抖动等性能因素会影响VPN连接的吞吐量。为此,路由模块612A、612B还可以监测和测量吞吐量本身,以确定路由偏好614仍然有效,例如,第一VPN连接102的吞吐量测量满足(例如,如上所示)预先建立的阈值吞吐量测量。
如果偏好和性能最高的VPN连接602的性能受到足够的影响(例如,由于正在传送的数据业务或其他原因,性能阈值620不再满足),那么路由模块612A、612B可以改变路由偏好614,将新数据流路由到与第一VPN连接602使用的加密算法相比使用性能较低的其他VPN连接。例如,可以更新路由偏好614以选择下一最高性能的VPN连接622,即图6示例中的第二VPN连接604。此更新可能是暂时的,因为一旦第一VPN连接602恢复到符合性能阈值620,路由偏好614可能会切换回提供最高性能的第一VPN连接602。因此,VPN网关102和610被配置为监测VPN连接的性能,特别是性能最高的VPN连接,以确保继续路由新数据流是可接受的。
为了避免过载情况,路由模块612A,612B可以检查数据流616A,616V的数据分组(如报头),以确定数据分组是否已经加密。如果数据分组已经加密,另一路由偏好可以将加密的数据流路由到不进行进一步加密的VPN连接(例如,图6示例中的VPN连接608)。这将进一步提高吞吐量。
图7和图8是说明描述本公开的各个方面的例程的流程图。在各种示例中,例程的操作可以由远程和/或网络VPN网关的组件执行。这里图7和图8所描述的逻辑操作可以被实现为(1)作为在计算设备上运行的计算机实现动作或程序模块的序列和/或(2)作为计算设备内互连的机器逻辑电路或电路模块。
参照图7,例程700从操作702开始,其中在网络VPN网关和远程VPN网关之间建立多个VPN连接。在操作704处,为多个VPN连接中的每个VPN连接分配不同的加密算法。
转到操作706,配置路由偏好。基于与第二分配加密算法相比,关于吞吐量第一加密算法具有更好的网络性能,路由偏好选择使用第一分配加密算法的第一VPN连接,而不是使用第二分配加密算法的第二VPN连接。
在操作708中,接收到数据流要在网络VPN网关和远程VPN网关之间路由的指示。然后,在操作710处,基于路由偏好对数据流进行第一VPN连接的选择。最后,在操作712处,数据流被路由到第一VPN连接,该VPN连接基于选择来使用第一分配加密算法。
参照图8,例程800从操作802开始,其中监测第一VPN连接的性能。在操作804处,确定性能不满足性能阈值。然后在操作806处,更新路由偏好,选择使用第二分配加密算法的第二VPN连接,而不是使用第一分配加密算法的第一VPN连接,因为第一VPN连接遇到了性能问题。
在操作808处,接收到另一数据流将在网络VPN网关和远程VPN网关之间路由的指示。在操作810处,基于更新的路由偏好为其他数据流选择使用第二分配加密算法的第二VPN连接。最后,在操作812处,基于选择,将数据流路由到使用第二分配加密算法的第二VPN连接
本文就某些示例和实施例描述本公开的各个方面,其旨在说明但不限制本公开。应当理解,本文提出的主题可以实现为计算机过程,计算机控制的设备,计算系统,诸如计算机可读存储介质的制品,或包括用于实现功能的硬件逻辑的组件,诸如现场可编程门阵列(FPGA)器件,大规模并行处理器阵列(MPPA)器件,图形处理单元(GPU),专用集成电路(ASIC),多处理器片上系统(MPSoC)等。
图9图示通用计算设备900。在各种示例中,设备900可以是服务器计算机或任何其他类型的计算设备,这些设备可以作为VPN网关中的物理主机或其他类型的计算设备。在所示的实施例中,计算设备900包括通过输入/输出(I/O)接口930耦合到系统存储器920的一个或多个处理器910a,910b和/或910n(在本文中可以单数地称为“处理器910”或以复数形式称为“处理器910”)。计算设备900还包括连接到I/O接口930的网络接口940。在各种实施例中,处理器910可以是上述处理核心。
在各种实施例中,计算设备900可以是包括多个处理器910(例如,两个,四个,八个或另一合适的数目)的多处理器系统。处理器910可以是能够执行指令的任何合适的处理器。例如,在各种实施例中,处理器910可以是实现任何各种指令集架构(ISA),诸如x77,PowerPC,SPARC或MIPS ISA,或任何其他合适的ISA的通用或嵌入式处理器。在多处理器系统中,处理器910中的每个处理器通常可以(但不一定)实现相同的ISA。
系统存储器920可以配置为存储处理器710可访问的指令和数据。在各种实施例中,系统存储器920可以使用任何合适的存储器技术来实现,诸如静态随机存取存储器(SRAM),同步动态RAM(SDRAM),非易失性/闪存型存储器或任何其他类型的存储器。在所示的实施例中,实现诸如上述那些例程,技术和数据的一个或多个所需功能的程序指令和数据显示为代码925和数据927存储在系统存储器920中。
在一个实施例中,可以将I/O接口930配置为在处理器910,系统存储器920和设备中的任何外围设备(包括网络接口940或其他外围接口)之间协调I/O业务。在一些实施例中,I/O接口930可以执行任何必要的协议,定时或其他数据转换,以将来自一个组件(例如,系统存储器920)的数据信号转换为适合由另一组件(例如,处理器910)使用的格式。在一些实施例中,I/O接口930可以包括对通过各种类型的外围总线连接的设备的支持,诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体。在一些实施例中,I/O接口930的功能可以被分割成两个或更多个独立的组件。另外,在一些实施例中,I/O接口930的一些或全部功能,诸如到系统存储器920的接口,可以直接并入处理器910中。
网络接口940可以被配置为允许数据在计算设备900和附加到一个或多个网络950的其他设备970之间交换,诸如图1至图3和图6中所示的其他计算机系统或组件。例如,在各种实施例中,网络接口940可以支持通过任何合适的有线或无线通用数据网络进行传送。另外,网络接口940可以支持通过诸如模拟语音网络或数字光纤传送网络的电信/电话网络,通过诸如光纤通道SANs的存储区域网络或通过任何其他合适类型的网络和/或协议进行传送。
(多个)网络950(例如,网络112)可以包括,例如,诸如互联网的公共网络,诸如机构和/或个人内部网的专用网络,或私有网络和公共网络的某种组合。网络950还可以包括任何类型的有线和/或无线网络,包括但不限于局域网(“LAN”),广域网(“WAN”),卫星网络,有线网络,Wi-Fi网络,WiMax网络,移动传送网络(例如3G,4G,5G等)或其任何组合。网络950可以利用传送协议,包括基于分组和/或基于数据报的协议,诸如互联网协议(“IP”),传输控制协议(“TCP”),用户数据报协议(“UDP”)或其他类型的协议。此外,网络950还可以包括许多设备,其促进网络传送和/或形成用于网络的硬件基础,诸如交换机,路由器,网关,接入点,防火墙,基站,中继器,骨干设备等。
在一些实施例中,系统存储器920可以是计算机可访问介质的一个实施例,该介质被配置成存储如上所述的程序指令和数据,如上图1至图8所示。然而,在其他实施例中,程序指令和/或数据可以在不同类型的计算机可访问媒体上接收,发送或存储。计算机可访问的介质可以包括非临时存储介质或存储介质,诸如磁性或光学介质,例如,通过I/O接口930耦合到计算设备900的磁盘或DVD/CD。非暂态计算机可访问存储介质还可以包括任何易失性或非易失性介质,诸如RAM(例如,SDRAM,DDR SDRAM,RDRAM,SRAM等),ROM等,其可以包括在计算设备900的一些实施例中,作为系统存储器920或另一类型的存储器。此外,计算机可访问的介质可以包括传输介质或信号,诸如电气,电磁或数字信号,通过诸如网络和/或无线链路的通信介质传输,诸如可通过网络接口940实现。
多个计算设备的部分或全部,诸如图9中所示的那些,可用于在各种实施例中实现所描述的功能;例如,运行在各种不同设备和服务器上的软件组件可以协作来提供功能。在一些实施例中,除了或代替使用通用计算机系统来实现之外,所描述的功能的部分可以使用存储设备,网络设备或专用计算机系统来实现。如本文所使用的术语“系统”和/或“计算设备”至少指所有这些类型的设备,并且不限于这些类型的设备。
各种存储设备及其相关的计算机可读介质为本文的计算设备提供非易失性存储。本文所讨论的计算机可读介质可以指大容量存储设备,诸如固态驱动器,硬盘或CD-ROM驱动器。然而,本领域技术人员应该理解,计算机可读媒体可以是可由计算设备访问的任何可用的计算机存储媒体。
作为示例,而不是限制,计算机存储介质可以包括易失性和非易失性,可移动和不可移动介质,这些介质在用于存储诸如计算机可读指令,数据结构,程序模块或其他数据等信息的任何方法或技术中实现。诸如,计算机媒体包括但不限于RAM,ROM,EPROM,EEPROM,闪存或其他固态存储器技术,CD-ROM,数字通用磁盘(“DVD”),HD-DVD,蓝光或其他光存储,磁带,磁带,磁盘存储或其他磁存储设备,或可用于存储所需信息的任何其他介质,并且可由本文讨论的计算设备访问。为了权利要求的目的,短语“计算机存储介质”,“计算机可读存储介质”及其变型不包括波,信号和/或其他暂态和/或无形的通信介质本身。
对本文软件模块进行编码还可以变换本文计算机可读介质的物理结构。在本描述的不同实现中,物理结构的具体转换可能取决于各种因素。这些因素的示例可以包括,但不限于,用于实现计算机可读媒体的技术,计算机可读媒体是否被表征为主要或次要存储,等等。例如,如果计算机可读媒体被实现为基于半导体的存储器,则本文公开的软件可以通过转换半导体存储器的物理状态在计算机可读媒体上进行编码。例如,软件可以变换构成半导体存储器的晶体管,电容器或其它分立电路元件的状态。软件还可以变换组件的物理状态以便在其上存储数据。
作为另一示例,本文公开的计算机可读介质可以使用磁性或光学技术来实现。在这样的实现中,本文提供的软件可以在对软件进行编码时转换磁性或光学介质的物理状态。这些转换可以包括改变给定磁性介质中特定位置的磁性特性。这些变换还可以包括改变给定光学介质内特定位置的物理特征或特性,以改变这些位置的光学特性。物理介质的其他转换在不偏离本描述的范围和精神的情况下是可能的,提供前面的示例只是为了方便这个讨论。
鉴于以上,应当理解,为了存储和执行本文的软件组件和/或功能,在所公开的计算设备中发生了许多类型的物理转换。还考虑到,所公开的计算设备可以不包括图9中所示的所有图示的组件,可以包括图9中未明确图示的其他组件,或者可以利用与图9中所示完全不同的架构。
尽管已经用特定于结构特征和/或方法行为的语言描述了各种配置,但应理解的是,所附表示中定义的主题不一定限于所描述的特定特征或行为。相反,公开具体的特征和行为作为实施所要求保护的主题的示例形式。
本文提出的公开还包括下列条款中规定的主题。
示例条款A,提高经由虚拟专用网(VPN)传送的数据业务吞吐量的方法,包括:在网络VPN网关和远程VPN网关之间建立多个VPN连接;向每个VPN连接分配不同的加密算法;由一个或多个处理器配置路由偏好,以基于与第二分配加密算法相比,关于吞吐量,第一加密算法具有更好的网络性能,以选择使用第一分配加密算法的第一VPN连接,而不是使用第二分配加密算法的第二VPN连接;接收要在网络VPN网关和远程VPN网关之间路由数据流的指示;至少部分地基于路由偏好,针对数据流选择使用第一分配加密算法的第一VPN连接;以及基于选择,将数据流路由到使用第一分配加密算法的第一VPN连接。
示例条款B,如示例条款A的方法,进一步包括:监测第一VPN连接的性能;确定性能不满足性能阈值;响应于确定性能不满足性能阈值,更新路由偏好以选择使用第二分配加密算法的第二VPN连接,而不是使用第一分配加密算法的第一VPN连接;接收要在网络VPN网关和远程VPN网关之间路由另一数据流的指示;至少部分地基于更新的路由偏好,针对其他数据流选择使用第二分配加密算法的第二VPN连接;以及基于选择,将第二数据流路由到使用第二分配加密算法的第二VPN连接。
示例条款C,如示例条款B的方法,其中性能相对于延迟被监测。
示例条款D,如示例条款B的方法,其中性能相对于分组丢失被监测。
示例条款E,如示例条款B的方法,其中性能相对于抖动被监测。
示例条款F,如示例条款B的方法,其中性能相对于吞吐量被监测。
示例条款G,是示例条款A到F中任意一项的方法,其中第一分配加密算法是GCMAES256,第二分配加密算法是(i)AES256&SHA256或(ii)DES3&SHA256中的一个。
示例条款H,是示例条款A到F中任意一项的方法,其中第一分配加密算法为AES256&SHA256,第二分配加密算法为DES3&SHA256。
示例条款I,是示例条款A到H中的任何一项的方法,进一步包括:确定在网络VPN网关和远程VPN网关之间路由的另一个数据流已经加密;以及基于已经加密的其他数据流,选择不使用加密算法的第三VPN连接。
示例条款J,用于提高通过虚拟专用网(VPN)传送的数据业务的吞吐量的系统,该系统包括:一个或多个处理器;以及具有可执行指令的计算机存储介质,当这些可执行指令由一个或多个处理器执行时,使系统执行包括以下操作:在网络VPN网关与远程VPN网关之间建立多个VPN连接;向每个VPN连接分配不同的加密算法;配置路由偏好,基于与第二分配加密算法相比,关于吞吐量,所述第一加密算法具有更好的网络性能,以选择使用第一分配加密算法的第一VPN连接,而不是使用第二分配加密算法的第二VPN连接;接收要在网络VPN网关和远程VPN网关之间路由数据流的指示;至少部分地基于路由偏好,针对数据流选择使用第一分配加密算法的第一VPN连接;以及基于选择,将数据流路由到使用第一分配加密算法的第一VPN连接。
示例条款K,如示例条款J的系统,其中操作进一步包括:监测第一VPN连接的性能;确定性能不满足性能阈值;响应于确定性能不满足性能阈值,更新路由偏好以选择使用第二分配加密算法的第二VPN连接而非使用第一分配加密算法的第一VPN连接;接收要在网络VPN网关和远程VPN网关之间路由另一数据流的指示;至少部分地基于更新的路由偏好,针对其他数据流选择使用第二分配加密算法的第二VPN连接;以及基于选择,将第二数据流路由到使用第二分配加密算法的第二VPN连接。
示例条款L,如示例条款K的系统,其中性能是相对于延迟而被监测。
示例条款M,如示例条款K的系统,其中性能相对于分组丢失而被监测。
示例条款N,如示例条款K的系统,其中性能相对于抖动而被监测。
示例条款O,如示例条款K的系统,其中性能相对于吞吐量而被监测。
示例条款P,是示例条款J到O中任意一项的系统,其中第一分配加密算法为GCMAES256,第二分配加密算法为(i)AES256&SHA256或(ii)DES3&SHA256中的一个。
示例条款Q,是示例条款J到O中任意一项的系统,其中第一分配加密算法为AES256&SHA256,第二分配加密算法为DES3&SHA256。
实施例条款R,是实施例条款J至Q中的任何一项的系统,其操作进一步包括:确定在网络VPN网关与远程VPN网关之间路由的另一数据流已经加密;以及基于已经加密的其他数据流,选择不使用加密算法的第三VPN连接。
示例条款S,具有可执行指令的一种或多种计算机存储介质,当由一个或多个处理器执行时,导致系统执行操作包括:在网络VPN网关和远程VPN网关之间建立多个VPN连接;向每个VPN连接分配不同的加密算法;配置路由偏好,以基于与第二分配加密算法相比,关于吞吐量,所述第一加密算法具有更好的网络性能,以选择使用第一分配加密算法的第一VPN连接,而不是使用第二分配加密算法的第二VPN连接;接收要在网络VPN网关和远程VPN网关之间路由数据流的指示;至少部分地基于路由偏好,针对数据流选择使用第一分配加密算法的第一VPN连接;以及基于选择,将数据流路由到使用第一分配加密算法的第一VPN连接。
示例条款T,是示例条款S的一种或多种计算机存储介质,其中操作进一步包括:监测第一VPN连接的性能;确定性能不满足性能阈值;响应于确定性能不满足性能阈值,更新路由偏好以选择使用第二分配加密算法的第二VPN连接而不是使用第一分配加密算法的第一VPN连接;接收要在网络VPN网关和远程VPN网关之间路由另一数据流的指示;至少部分地基于更新的路由偏好,选择对其他数据流使用第二分配加密算法的第二VPN连接;以及基于选择,将第二数据流路由到使用第二分配加密算法的第二VPN连接。
本文使用的条件性语言,诸如“可以”,“可”,“可能”,“也许”,“例如”等,除非另有明确说明,或在使用的上下文中以其他方式理解,通常旨在传达某些实施例包括而其他实施例不包括某些特征,元件和/或步骤。因此,这样的条件语言通常不旨在暗示特征,要素和/或步骤以任何方式是一个或多个实施例所必需的,或者一个或多个实施例必须包括逻辑,以决定在有或没有作者输入或提示的情况下,这些特征,要素和/或步骤是否包括或将在任何特定实施例中执行。术语“包括”,“包含”,“具有”等是同义的,并且以开放式的方式包括地使用,并且不排除附加的元素,特征,动作,操作等。此外,术语“或”是在其包含意义上使用的(而不是在其排他意义上使用的),因此,例如,当使用“或”来连接元素列表时,术语“或”意味着列表中的一个、一些或所有元素。
虽然已经描述了某些示例实施例,但这些实施例仅通过示例的方式提出,并不旨在限制本文公开的发明的范围。因此,上述描述中的任何内容都无意暗示任何特定的特征,特征,步骤,模块或块是必要的或不可或缺的。实际上,本文描述的新方法和系统可以体现为各种其他形式;此外,可以对本文的方法和系统的形式进行各种省略,替换和更改而不偏离本文公开的发明的精神。随附的权利要求及其等同物旨在涵盖属于本文所公开的某些发明的范围和精神的形式或修改。
应当理解的是,概要和/或详细描述中对“第一”,“第二”等要素的任何提及并非意在也不应被解释为必然对应于权利要求书中对“第一”,“第二”等要素的任何提及。相反,在摘要,详细描述和/或权利要求中对“第一”和“第二”的任何使用可用于区分相同元素的两个不同实例(例如,两种不同的加密算法,两种不同的VPN连接等)。
最后,尽管已经用特定于结构特征和/或方法行为的语言描述了各种技术,但要理解的是,在所附表示中定义的主题不必然限于所描述的特定特征或行为。相反,公开具体的特征和行为作为实施所要求保护的主题的示例形式。

Claims (15)

1.一种提高经由虚拟专用网络(VPN)被传送的数据业务的吞吐量的方法,包括:
在网络VPN网关与远程VPN网关之间建立多个VPN连接;
向所述多个VPN连接中的每个VPN连接分配不同的加密算法;
由一个或多个处理器配置路由偏好,以基于与第二分配加密算法相比,关于吞吐量,所述第一加密算法具有更好的网络性能,来选择使用第一分配加密算法的第一VPN连接,而不是使用所述第二分配加密算法的第二VPN连接;
接收数据流要在所述网络VPN网关与所述远程VPN网关之间被路由的指示;
至少部分地基于所述路由偏好,针对所述数据流选择使用所述第一分配加密算法的所述第一VPN连接;以及
基于所述选择,将所述数据流路由到使用所述第一分配加密算法的所述第一VPN连接。
2.根据权利要求1所述的方法,还包括:
监测所述第一VPN连接的性能;
确定所述性能不满足性能阈值;
响应于确定所述性能不满足所述性能阈值,更新所述路由偏好以选择使用所述第二分配加密算法的所述第二VPN连接,而不是使用所述第一分配加密算法的所述第一VPN连接;
接收另一数据流要在所述网络VPN网关与所述远程VPN网关之间被路由的指示;
至少部分地基于更新的所述路由偏好,针对所述另一数据流选择使用所述第二分配加密算法的所述第二VPN连接;以及
基于所述选择,将所述第二数据流路由到使用所述第二分配加密算法的所述第二VPN连接。
3.根据权利要求2所述的方法,其中所述性能相对于延迟而被监测。
4.根据权利要求2所述的方法,其中所述性能相对于分组丢失而被监测。
5.根据权利要求2所述的方法,其中所述性能相对于抖动而被监测。
6.根据权利要求2所述的方法,其中所述性能相对于吞吐量而被监测。
7.根据权利要求1至6中的任一项所述的方法,其中所述第一分配加密算法是GCMAES256,所述第二分配加密算法是(i)AES256&SHA256或(ii)DES3&SHA256中的一个。
8.根据权利要求1至6中任一项的所述方法,其中所述第一分配加密算法为AES256&SHA256,所述第二分配加密算法为DES3&SHA256。
9.根据权利要求1至8中的任一项的所述方法,还包括:
确定要在所述网络VPN网关与所述远程VPN网关之间被路由的另一数据流已经被加密;以及
基于已经被加密的所述另一数据流,选择不使用加密算法的第三VPN连接。
10.一种提高经由虚拟专用网络(VPN)被传送的数据业务的吞吐量的系统,所述系统包括:
一个或多个处理器;以及
计算机存储介质,具有可执行指令,所述可执行指令当由所述一个或多个处理器执行时,使所述系统执行操作,包括:
在网络VPN网关与远程VPN网关之间建立多个VPN连接;
向所述多个VPN连接中的每个VPN连接分配不同的加密算法;
配置路由偏好,以基于与第二分配加密算法相比,关于吞吐量,所述第一加密算法具有更好的网络性能,来选择使用第一分配加密算法的第一VPN连接,而不是使用所述第二分配加密算法的第二VPN连接;
接收数据流要在所述网络VPN网关与所述远程VPN网关之间被路由的指示;
至少部分地基于所述路由偏好,针对所述数据流选择使用所述第一分配加密算法的所述第一VPN连接;以及
基于所述选择,将所述数据流路由到使用所述第一分配加密算法的所述第一VPN连接。
11.根据权利要求10所述的系统,其中所述操作还包括:
监测所述第一VPN连接的性能;
确定所述性能不满足性能阈值;
响应于确定所述性能不满足所述性能阈值,更新所述路由偏好以选择使用所述第二分配加密算法的所述第二VPN连接,而不是使用所述第一分配加密算法的所述第一VPN连接;
接收另一数据流要在所述网络VPN网关与所述远程VPN网关之间被路由的指示;
至少部分地基于更新的所述路由偏好,针对所述另一数据流选择使用所述第二分配加密算法的所述第二VPN连接;以及
基于所述选择,将所述数据流路由到使用所述第二分配加密算法的所述第二VPN连接。
12.根据权利要求11所述的系统,其中所述性能相对于延迟,分组丢失、抖动或吞吐量中的至少一个而被监测。
13.根据权利要求10至12中的任一项所述的系统,其中所述第一分配加密算法是GCMAES256,并且所述第二分配加密算法是(i)AES256&SHA256或(ii)DES3&SHA256中的一个。
14.一种或多种计算机存储介质,具有可执行指令,所述可执行指令当由一个或多个处理器执行时,使系统执行包括以下操作:
在网络VPN网关与远程VPN网关之间建立多个VPN连接;
向所述多个VPN连接中的每个VPN连接分配不同的加密算法;
配置路由偏好,以基于与第二分配加密算法相比,关于吞吐量,所述第一加密算法具有更好的网络性能,来选择使用第一分配加密算法的第一VPN连接,而不是使用所述第二分配加密算法的第二VPN连接;
接收数据流要在所述网络VPN网关与所述远程VPN网关之间被路由的指示;
至少部分地基于所述路由偏好,针对所述数据流选择使用所述第一分配加密算法的所述第一VPN连接;以及
基于所述选择,将所述数据流路由到使用所述第一分配加密算法的所述第一VPN连接。
15.根据权利要求14所述的一种或多种计算机存储介质,其中所述操作还包括:
监测所述第一VPN连接的性能;
确定所述性能不满足性能阈值;
响应于确定所述性能不满足所述性能阈值,更新所述路由偏好以选择使用所述第二分配加密算法的所述第二VPN连接,而不是使用所述第一分配加密算法的所述第一VPN连接;
接收另一数据流要在所述网络VPN网关和所述远程VPN网关之间被路由的指示;
至少部分地基于更新的所述路由偏好,针对所述另一数据流选择使用所述第二分配加密算法的所述第二VPN连接;以及
基于所述选择,将所述数据流路由到使用所述第二分配加密算法的所述第二VPN连接。
CN202280037099.5A 2021-05-27 2022-05-02 使用协商加密算法选择vpn连接以提高吞吐量 Pending CN117356074A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/332,752 2021-05-27
US17/518,382 2021-11-03
US17/518,382 US20220385637A1 (en) 2021-05-27 2021-11-03 Selecting a vpn connection using negotiated cryptographic algorithms to improve throughput
PCT/US2022/027195 WO2022250875A1 (en) 2021-05-27 2022-05-02 Selecting a vpn connection using negotiated cryptographic algorithms to improve throughput

Publications (1)

Publication Number Publication Date
CN117356074A true CN117356074A (zh) 2024-01-05

Family

ID=89369664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280037099.5A Pending CN117356074A (zh) 2021-05-27 2022-05-02 使用协商加密算法选择vpn连接以提高吞吐量

Country Status (1)

Country Link
CN (1) CN117356074A (zh)

Similar Documents

Publication Publication Date Title
US10158568B2 (en) Method and apparatus for service function forwarding in a service domain
CN109845218B (zh) 用于与客户机-服务器数据信道一起使用的信道数据封装系统和方法
US20190089818A1 (en) Hardware-based packet forwarding for the transport layer
CA2870048C (en) Multi-tunnel virtual private network
EP2499787B1 (en) Smart client routing
US10404838B2 (en) Systems and methods for selecting microservices to process protocol data streams
US9596300B2 (en) Technologies for processing data packets in batches
US20140153577A1 (en) Session-based forwarding
US8509239B2 (en) Method, apparatus and system for processing packets
US20230076070A1 (en) Throughput for a single vpn connection using multiple processing cores
US20220385637A1 (en) Selecting a vpn connection using negotiated cryptographic algorithms to improve throughput
US9445384B2 (en) Mobile device to generate multiple maximum transfer units and data transfer method
US20100296395A1 (en) Packet transmission system, packet transmission apparatus, and packet transmission method
CN112333135B (zh) 网关确定方法、装置、服务器、分发器、系统及存储介质
US9986019B2 (en) Intelligent route management for diverse ecosystems
US11362933B2 (en) Methods and systems for sending packets through a plurality of tunnels
CN113395212B (zh) 网络装置及其操作方法和非暂时性计算机可读介质
US9015438B2 (en) System and method for achieving enhanced performance with multiple networking central processing unit (CPU) cores
CN117356074A (zh) 使用协商加密算法选择vpn连接以提高吞吐量
CN115442183B (zh) 一种数据转发方法及装置
US11799785B2 (en) Hardware-based packet flow processing
US20230370336A1 (en) Re-simulation of updated sdn connection flows
WO2023219718A1 (en) Re-simulation of updated sdn connection flows

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination