CN114503531A - 分布式端点的管理 - Google Patents
分布式端点的管理 Download PDFInfo
- Publication number
- CN114503531A CN114503531A CN202080066288.6A CN202080066288A CN114503531A CN 114503531 A CN114503531 A CN 114503531A CN 202080066288 A CN202080066288 A CN 202080066288A CN 114503531 A CN114503531 A CN 114503531A
- Authority
- CN
- China
- Prior art keywords
- access point
- network
- endpoint
- endpoints
- packet
- 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.)
- Granted
Links
- 238000004891 communication Methods 0.000 claims abstract description 123
- 238000000034 method Methods 0.000 claims abstract description 91
- 238000012545 processing Methods 0.000 claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims description 30
- 238000005538 encapsulation Methods 0.000 claims description 26
- 230000011218 segmentation Effects 0.000 claims description 6
- 230000006855 networking Effects 0.000 abstract description 4
- 230000036541 health Effects 0.000 description 36
- 230000003993 interaction Effects 0.000 description 31
- 230000004044 response Effects 0.000 description 28
- 230000008569 process Effects 0.000 description 15
- 230000008859 change Effects 0.000 description 11
- 230000008901 benefit Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000013519 translation Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000002085 persistent effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000009118 appropriate response Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- RJKFOVLPORLFTN-LEKSSAKUSA-N Progesterone Chemical compound C1CC2=CC(=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H](C(=O)C)[C@@]1(C)CC2 RJKFOVLPORLFTN-LEKSSAKUSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/72—Routing based on the source address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5069—Address allocation for group communication, multicast communication or broadcast communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1038—Load balancing arrangements to avoid a single path through a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了一种用于管理全球加速器系统中的部件的通信的系统和方法。所述全球加速器系统包括客户端装置,所述客户端装置经由公共网络与全球接入点通信以访问能够托管服务的各种端点。进而,全球接入点经由专用网络与组织到不同数据中心中的各种端点进行通信。为了促进代表不同客户端装置进行交换,所述全球接入点可将端点的分组表征为子群组或编织层。可封装单独编织层通信,并且通过联网设备使用包中的5元组信息将其路由到所述数据中心处。单独编织层内的部件可经由管理消息广播或多播状态信息,以确保故障转移或减少重复处理。
Description
背景技术
一般而言,计算装置利用通信网络或一系列通信网络来交换数据。公司和组织操作计算机网络,所述计算机网络将多个计算装置互连,以支持操作或向第三方提供服务。计算系统可位于单一地理位置中或位于多个不同的地理位置中(例如,经由专用或公共通信网络互连)。具体地说,数据中心或数据处理中心(本文通常称为“数据中心”)可包括多个互连的计算系统,以向数据中心的用户提供计算资源。数据中心可以是代表组织操作的专用数据中心或者代表公众或为公众利益操作的公共数据中心。
由于任何单独计算装置的资源都是有限的,因此已知有多种技术试图平衡装置之间的资源利用率。例如,“负载平衡器”装置可放置在请求使用计算资源的客户端装置与提供此类资源的服务器之间。负载平衡器可试图在服务器之间分布请求,因此允许服务器协同工作以提供此类资源。使用这种负载平衡器的一个显著缺点在于,它可能会产生单点故障,使得如果负载平衡器发生故障,则对服务器的请求失效,并且资源变得不可用。
本领域已知的另一种类型的负载平衡是域名系统(DNS)负载平衡。DNS通常指代一种装置网络,所述装置网络操作来将人类可识别的域名转换成网络(诸如互联网)上的网络地址。为了使用DNS进行负载平衡,DNS服务器填充有提供给定资源的多个计算装置的网络地址。当对解析与所述资源相关联的域名的请求做出响应时,DNS服务器使提供的那些地址交替出现,因此导致对资源的请求在所提供的地址之间进行划分。由于DNS服务器不充当资源流量的管道,并且由于DNS通常提供高度冗余的操作,因此DNS负载平衡通常避免出现单点故障。然而,DNS负载平衡的一个显著缺点是更改负载平衡方案所需的延迟。DNS请求通常流动通过一系列DNS解析器,解析器中的每个都可能将先前的DNS结果高速缓存达一定时段。因此,在DNS服务器处所做的试图更改在服务器之间平衡负载的方式的改变可能需要大量时间来传播。特别是在服务器已发生故障的情况下,这些延迟可能会导致网络通信中的显著错误。此外,维持最新的DNS记录可能很困难,因为它们通常必须随着新装置添加到负载平衡方案或从负载平衡方案移除而进行修改。
本领域已知的又一种类型的负载平衡是使用“任播”网络地址。在网络(诸如互联网)中,不同的自治系统(“AS”)向装置提供不同的网络地址。每个AS通过“公告”地址来通知其邻近的AS在其网络内可用的地址。最典型地,每个地址与单一位置(例如,单一装置或装置群组)相关联。在任播配置中,通常在多个AS中的多个装置公告相同的网络地址。根据相邻AS的配置,访问地址的客户端请求然后可路由到多个装置中的任何一个,从而在装置之间分布负载。使用任播来试图进行负载平衡的一个显著缺点在于到任播的地址的路由通常由相邻网络控制。这些网络通常处于其他实体的控制之下。因此,难以或不可能完全控制在具有任播的网络地址的装置之间分布请求的方式。此外,当相邻网络的配置改变时,请求的分布也可能改变,从而导致负载均衡方案的波动性。
附图说明
图1是描绘包括多个客户端装置和数据中心以及提供从一组全球网络地址到数据中心的负载平衡访问的一组全球接入点的说明性逻辑网络的框图。
图2是描绘图1的数据中心的说明性配置的框图。
图3是描绘图1的全球接入点的说明性配置的框图。
图4是描绘在图1的全球接入点内实现一个或多个流管理器的流管理器服务器的说明性配置的框图。
图5描绘用于将来自客户端装置的定址到全球网络地址的请求路由到图1的全球接入点的说明性交互。
图6描绘用于至少部分地基于在数据中心之间对请求进行负载平衡来将请求从全球接入点路由到图1的数据中心的说明性交互。
图7描绘用于将端点信息从数据中心传播到图1的全球接入点以使得接入点可正确地路由来自客户端装置的定址到全球网络地址的流量的说明性交互。
图8描绘用于通过从图1的接入点选择要将不同全球网络地址公告到的不同相邻装置来增加全球网络地址的弹性的说明性例程。
图9描绘用于通过使用图1的接入点来路由定址到与由数据中心内的端点提供的服务相关联的全球网络地址的流量的说明性例程。
图10描绘用于在图1的全球接入点处更新关于提供网络可访问服务的数据中心的端点的信息的说明性例程。
图11描绘用于在图1的全球接入点处建立传输控制协议(TCP)会话并且将TCP会话切换到端点以使得客户端装置和端点能够经由TCP会话进行通信的说明性交互。
图12描绘用于在图1的全球接入点处建立传输控制协议(TCP)会话并且将TCP会话切换到端点以使得客户端装置和端点能够经由TCP会话进行通信的说明性例程。
具体实施方式
一般地描述,本公开的方面涉及使用一个或多个全球网络地址提供对跨多个地理位置散布的计算装置池的负载平衡访问。更具体地说,本公开的方面涉及提供可经由全球网络地址到达的一组分布式接入点,所述接入点至少部分地基于对请求进行负载平衡来选择请求并且将请求路由到池内的端点装置。在一个实施方案中,接入点利用任播路由技术来公告与计算装置池相关联的全球网络地址的可用性,从而吸引定址到那些地址的流量。在接收到访问池的请求时,接入点可基于促进将包分布到不同的端点分组(通常称为端点群组)的分布算法来选择池内的适当端点。接入点然后可充当代理,从而将请求路由到端点并且促进端点与请求装置之间的进一步通信。接入点可实现多种技术(如本文所公开的),以提供对端点装置池的弹性高效访问。如本文所公开的,接入点可分布在广泛的地理区域之间,因此消除了系统内的单点故障。此外,通过利用任播公告,即使当请求被定址到单一网络地址时,接入点也可在池之中分布请求,从而避免与其他技术(诸如基于DNS的负载平衡)相关联的复杂性和延迟。通过充当客户端与装置池之间的代理,而不是直接提供资源,接入点可独立于外部装置选择将请求路由到任播的地址的方式来控制对池的请求的分布,由此避免与传统的任播联网相关联的损害。因此,本文所公开的实施方案显著改进现有负载平衡技术。
本公开的实施方案可说明性地在广阔的地理区域中实现。在一个实施方案中,本公开在全球互联网上实现,并且提供全球互联网协议(IP)地址,诸如IP版本4(IPv4)或IP版本6(IPv6)地址。不同的数据中心可能存在于不同的地理位置,并且每个数据中心可包括提供对基于网络的服务的访问的一个或多个端点装置。此类服务的实例包括但不限于网页托管、数据存储、按需计算服务等。每个数据中心处的资源可能是有限的,并且因此基于网络的服务的运营商可能希望在此类服务之间分布负载。为了简化基于网络的服务的操作(例如,避免与基于DNS的负载平衡相关的复杂性),可能希望向运营商提供单组相对静态的服务网络地址,所述网络地址可独立于提供对服务的访问的单独端点进行管理。此类网络地址在本文通常称为“全球”网络地址。如本文所用,术语“全球”旨在指代与服务相关的网络地址的范围(例如,网络地址适用于整个服务,而不是单独装置),并且未必暗示这种网络地址在世界范围内都可访问。然而,可实现本公开的实施方案以提供通常可从全球网络(诸如互联网)访问的全球网络地址。
为了向服务提供全球网络地址,公开了一种系统,其提供一组地理上分布的全球接入点。如上所指出,在此上下文中,术语“全球”接入点通常旨在指代通常提供对服务的访问的接入点,而不是单独端点,并且未必暗示此类接入点存在于全球范围内(但这种配置是可能的)。然而,通常接入点在地理上是分布式的。在一个实施方案中,全球接入点位于与向服务提供端点的数据中心的地理位置不同且数量更多的地理位置中,从而减小全球接入点与试图访问服务的客户端装置之间的平均网络距离。
每个全球接入点可利用任播技术以经由与服务相关联的一个或多个全球网络地址来公告服务的可用性。说明性地,每个接入点可利用边界网关协议(“BGP”)以通过包括BGP“扬声器”向相邻网络公告全球网络地址的可用性来公告全球网络地址。全球接入点因此可将流量地址吸引到全球网络地址。如下文更详细公开的,全球接入点可在一些情况下“形成”BGP通告以增加基于网络的服务对网络中断的弹性。例如,全球接入点可将它们通告的全球网络地址分成两个群组,并且向服务指派来自每个群组的至少一个网络地址。全球接入点然后可向不同的相邻网络通告每个群组的地址。以此方式,每个接入点可有效地创建到达所述点的两条路径:通过使用第一群组的地址的第一邻居,或者通过使用第二群组的地址的第二邻居。因此,如果一个相邻网络在某些方面发生故障,则存在到达接入点的替代路径。此外,由于每个接入点都可以此方式操作,因此如果一个接入点完全发生故障,则流量可经由传统的任播路由机制自动路由到另一个接入点。虽然本文提供了与两个群组相关的实例,但是可提供任何数目的群组。
为了提供更进一步的弹性,在一些情况下,每个接入点可根据所公告的全球网络地址的具体子集来隔离流量,并且利用不同的装置或程序线程来处理定址到每个子集的流量。以此方式,如果一个子集的流量对于接入点的操作有问题(例如,由于与所述子集的全球网络地址相关的错误配置),则不太可能影响处置另一个子集的流量的装置或线程的操作。在一个实施方案中,接入点使用不同网络地址群组的组合以及每个网络群组的子集的隔离处理。此外,服务可在每个群组的子集之间“重组”,使得如果两个服务被指派一个群组的公共子集内的网络地址,则两个服务可能被指派第二群组的不同子集内的网络地址。在此配置下,如果具体服务的配置导致接入点相对于一个群组的子集的操作出现问题,则其他服务将可能仍可经由替代群组达成(其中它们的地址不太可能在与问题服务相同的子集上)。通过增加地址群组和子集的数目,可逐渐减小受问题服务影响的服务总数目。
在接收到访问服务的请求之后,全球接入点可被配置来将流量路由到数据中心内的提供服务的适当端点。为此,全球接入点可能需要知道端点的网络地址。在一个实施方案中,每个数据中心都配置有资源管理器装置,所述资源管理器装置维持提供对服务的访问的端点的列表。资源管理器可为端点的接入点提供信息,包括端点的网络地址信息。因此,在接收到访问服务的请求时,每个接入点可被配置来选择服务的可用端点并且将请求路由到所述端点。如下文将讨论的,可基于分布算法来选择端点,所述分布算法基于地理标准和分布标准的乘积来选择一组端点。例如,全球接入点可将具有硬币翻转算法的百分比分布应用于数据中心的各种地理子群组。另外,全球接入点然后可应用选择算法来基于请求的处理属性(例如,5元组信息)来选择单独端点,以确保一致地选择所选择的端点。例如,全球接入点可实现促进基于最高得分一致选择端点的评分算法。
在一个实施方案中,为了将流量路由到端点,每个接入点被配置来利用网络地址转换(“NAT”)。NAT技术在本领域内是已知的,并且因此本文不再详细描述。然而,一般来说,NAT技术使得装置能够充当两个装置之间的中间人,同时重写每个数据包的各方面(诸如源和目的地网络地址),以促进装置之间的通信。根据本公开的实施方案,每个接入点可操作来用其自己的网络地址(例如,唯一地标识全球接入点的单播网络地址)替换请求装置的源网络地址,并且用提供所述服务的端点的网络地址替换目的地网络地址(例如,服务的全球网络地址)。接入点然后可将包路由到端点,从端点(如果有的话)接收响应,执行源和目的地的反向转换(例如,用全球网络地址替换响应的源并且用请求装置的网络地址替换响应的目的地),并且将包返回到请求装置。在一个实施方案中,接入点可利用端口转换(本领域已知)以在利用NAT时促进流量流(互相关包的系列)的区分,以确保在处置来自多个请求装置的流量时正确转换地址。
有益的是,使用NAT使得接入点能够将从客户端装置接收到的流量转发到端点,同时对客户端装置与端点之间的连接的干扰最小。例如,通过利用NAT,接入点不需要充当某些网络协议(诸如传输控制协议(TCP))的“终止”点。替代路由技术可例如致使接入点接受来自客户端装置的TCP连接,并且初始化到端点的第二TCP连接。维持多个此类连接(以及它们之间的对应关系)可能会显著增加接入点的资源利用率,从而降低其路由定址到全球网络地址的流量的能力。因此,使用NAT可提供优于此类技术的益处。
此外,在接入点处使用NAT使得能够将流量定向到不同于由端点利用的任何地址的全球网络地址,由此防止公开由端点实际利用的地址。因此,可使端点免于直接接收流量。这进而可减少或消除端点对于网络攻击(诸如拒绝服务(DoS)攻击)的漏洞。以此方式,全球接入点可提供类似于由传统内容递送网络(CDN)提供的那些的益处。然而,与CDN不同的是,接入点不需要复制服务的功能(例如,通过在CDN内存在的每个点处实现网页服务器)。相反,本公开的接入点可使得流量能够流动通过接入点,从而使得请求装置的包能够到达提供服务的端点。出于此原因,除了其他之外,本文公开的全球接入点可提供比CDN更大范围的功能,从而在任何数目的不同的基于网络的服务之间实现负载平衡和分布。
在另一个实施方案中,为了将流量路由到端点,每个接入点被配置来利用封装。封装是一种已知的联网技术,并且因此本文不再详细描述。然而,通常封装可被利用来向数据包添加附加信息(通常以标头的形式,并且有时也以标尾的形式),因此“包装”或封装数据包以产生封装数据包。在本公开的上下文中,封装可被利用来在每个接入点与端点之间提供“网络隧道”。在一个具体实例中,全球接入点可在端点的子集之间建立一组虚拟LAN(“VLAN”)通道,以促进经由封装隧道进行更安全的通信。一般描述,VLAN对应于在数据链路层处的计算机网络中划分和隔离的广播域。全球接入点可通过将标签应用于网络帧并且在联网系统中处置这些标签(例如,通过网络部件进行包处理)来实现各种VLAN,以便与单独端点或端点的子集进行通信。因此,全球接入点可实现不同的VLAN,以经由客户端装置和端点保持网络通信,所述客户端装置和端点虽然连接到相同的物理网络但单独实现应用程序。因此,当在接入点处从客户端装置接收包并且将其定址到由端点提供的服务的网络地址时,接入点可用附加信息封装包,从而使得包能够被路由到所选择的端点(诸如端点的网络地址)。所封装的包然后可经由网络部件(诸如架顶式交换机(“TOR”))通过物理网络路由到端点,所述网络部件可利用5元组信息将传入包分布到不同的指派VLAN。端点可“解封装”所封装的包以去除附加信息,并且处理解封装的包,就好像它是直接从客户端装置接收的一样。在本申请的再其他方面中,端点装置可被分配包处理责任的不同子集(通常称为在不同VLAN上实现的编织层),所述子集促进恢复状态的弹性。更具体地说,与具体VLAN相关联的单独端点可交换消息传递信息(诸如路径MTU发现(“PMTUD”)消息),以确保与端点的通信不会被冗余处理或交换状态信息以进行故障转移。所交换的消息传递信息可在具体编织层内多播或在多个编织层上广播。例如,其他端点可被配置来忽略或过滤不与所指派的编织层相关联的广播通信。
在一个实施方案中,端点可经由将端点连接到客户端装置的物理网络直接对客户端装置做出响应。在另一个实施方案中,端点可通过封装响应包并且将所封装的响应包传输回接入点来对客户端装置做出响应。接入点可进而解封装响应包并且将响应包返回到客户端。从端点向客户端装置直接返回响应可有益地减少接入点的工作负载,并且还可减少将接入点连接到端点的物理网络上的流量。然而,可能需要直接返回响应以利用将端点连接到客户端装置的物理网络,这可能不如将接入点连接到端点的物理网络那么鲁棒。例如,在端点和接入点经由专用网络连接而接入点、端点和客户端装置经由公共网络(诸如互联网)连接的情况下,通过接入点返回响应(而不是直接返回)可能是优选的,因为可能优选的是最小化在公共网络上行进的总距离(例如,其中接入点比端点更接近客户端装置定位)。
一般而言,与使用NAT将包从接入点路由到端点相比,接入点与端点之间的包的封装可能会增加接入点和端点的计算资源利用率。然而,封装也可提供优于NAT实现方式的益处。例如,在客户端装置的包在TCP会话期间被路由到不同的全球接入点的情况下,封装可提供TCP会话的弹性。由于网络处理不同接入点的任播公告的方式的潜在变化,因此此类路由可例如基于客户端装置与不同接入点之间的网络的操作来发生。在接入点利用NAT将包路由到端点的情况下,每个接入点可独立地维持NAT信息。因此,如果客户端装置包被路由到不同的接入点,则第二接入点可能没有足够的信息来顺利地接管客户端的通信(例如,第二接入点的所变换的包可能与原本已在初始接入点处生成的包不同)。这可能导致客户端装置和端点的TCP会话被断开,从而需要客户端装置重新建立TCP连接。
相比之下,封装可使得能够顺利地处置接入点之间客户端请求的重新路由。在NAT或封装实现方式下,每个接入点可被配置来以一致的方式选择端点。如上所述,接入点可应用生成指示期望数据中心的得分的选择算法。此类选择算法可包括但不限于加权会合哈希或加权一致性哈希算法。因此,客户端装置包预计将被路由到相同的端点,而不管它们初始要被发送到的接入点如何。此外,通过利用封装,在将包路由到端点时,不需要改变初始客户端装置的包的任何数据。相反,所述数据可被封装(例如,利用使得能够路由到端点的附加信息),并且在解封装之后在端点处重新获得。出于此原因,即使客户端包被路由到不同的接入点,在解封装之后端点可用的最终数据可以是相同的,从而使得端点即使在数据流动通过不同接入点时也能够与客户端装置保持TCP会话。
在一些实施方案中,为了进一步提高利用封装的实现方式中的性能,每个接入点可被配置来协助端点与客户端装置建立面向连接的通信会话(诸如TCP会话)。面向连接的通信会话通常需要会话初始化阶段,其中会话双方进行通信以建立对通信状态的相互理解。TCP会话例如利用“三向握手”。TCP三向握手在本领域中是已知的,并且因此本文将不再详细描述。然而,简而言之,当第一方向第二方发送同步(“SYN”)包(包括要在会话期间使用的第一方序列号)时,建立TCP会话,第二方以同步-承认(“SYN-ACK”)包(承认第一方序列号并且包括第二方序列号)做出响应,并且第一方以承认(“ACK”)包(承认第二方序列号)对SYN-ACK包做出响应。由于三向握手需要在各方之间进行三次单独的通信,因此在握手期间各方之间的延迟增加被放大三倍,这通常被描述为“第一字节延迟”。在本公开的上下文中,例如,如果客户端装置与端点之间的通信产生100毫秒(ms)延迟,则三向握手预计可能花费至少300毫秒。由于在通过TCP会话传输数据之前需要这种握手,因此有益的是,减少初始化TCP会话所需的时间,例如减少第一字节延迟。如下文将描述的,在其他实施方案中,全球接入点之间的TCP会话还可包括全球接入点与本地化到所选择的端点的中间装置之间的TCP会话以及本地化中间装置与所选择的端点之间的第三TCP会话(新)。因此,可通过进一步限制端点与本地化中间装置之间的延迟来进一步减小第一字节延迟。
因此,在本公开的实施方案中,每个全球接入点可被配置来与客户端装置进行TCP三向握手,然后“切换”到端点的TCP连接。具体地说,每个接入点可被配置来“侦听”来自客户端装置的传入SYN包,并且通过进行TCP三向握手来对此类包做出响应。在握手完成之后,接入点可将TCP会话信息(例如,TCP会话的第一方序列号和第二方序列号)传送到被选择来向客户端装置提供所请求的服务的端点。在接收到TCP会话信息时,端点可“采用”TCP会话,并且处理客户端装置数据包,就好像在客户端装置与端点之间已经建立了TCP会话一样。由于可假设接入点就延迟而言“更接近”客户端装置,因此减少了建立TCP会话所需的时间,而不会干扰客户端装置和端点经由公共TCP会话进行通信的能力。虽然本文提供了关于TCP握手的实例,但是有状态的通信会话各自通常需要初始化阶段。本文描述的实施方案可被利用来在接入点处进行这种初始化阶段,同时将面向连接的通信会话的上下文切换到端点以使得客户端装置和端点能够经由面向连接的通信会话进行通信。
再进一步,全球接入点可被配置来修改或选择不同的基于TCP的配置,以利用接入点与数据中心之间的更高带宽连接。更具体地说,根据本申请的方面,基于TCP的通信通常包括可控制所传输的数据的测量的各种设置或参数。此类参数可与被传输的数据量相关联,这通常被称为窗口参数。参数还可包括拥塞控制参数,诸如由TCP结合其他算法使用的慢启动策略,以避免发送超过网络能够转发的数据,也就是说避免引起网络拥塞。对于包括公共网络连接的传统TCP通信,数据窗口和拥塞控制参数在有多个TCP连接使用公共网络连接的情况下通常被设置处于更低水平,并且可在数据吞吐量被测量和确定时增加以支持更大量的数据吞吐量。这具有增加通信延迟的效果,通常称为最后字节延迟。根据本申请的方面,客户端计算装置和全球接入点具有第一TCP连接,所述第一TCP连接使用传统方法配置有拥塞控制参数和窗口参数(例如,可基于连接的测量属性增加的初始更低值)。全球接入点和端点具有第二TCP连接,所述第二TCP连接未使用传统方法配置,原因是全球接入点和端点经由第二网络连接(诸如专用网络)进行通信,所述第二网络连接可被配置来支持更高数据吞吐量,同时具有更小拥塞可能性或更低有效带宽。因此,全球接入点可将拥塞控制参数和窗口参数设置为最高或更高初始值,这直接导致更大的数据吞吐量。因此,总数据吞吐量(例如,最后字节延迟可增加)。
如本领域技术人员根据本公开将了解的,本文所公开的实施方案提高了计算系统提供网络可访问服务的能力。具体地说,本公开的实施方案通过提供跨公共网络地址的可缩放的、弹性的且响应式的负载平衡,改进已知的负载平衡技术来改进现有的负载平衡技术。此外,当前公开的实施方案解决了计算系统内固有的技术问题;具体地说,用以提供网络可访问服务的计算资源的有限性质以及以可缩放的、弹性的且响应式的方式对此类服务的负载平衡请求的困难。这些技术问题通过本文所描述的各种技术解决方案来解决,包括使用与公共网络地址相关联的一组分布式接入点,每个接入点被配置来接收对服务的请求,并且至少部分地基于在端点之间对请求进行负载平衡来路由对服务的端点的请求。因此,本公开总体上表示对现有网络负载平衡系统和计算系统的改进。
结合附图参考以下描述,可更好地理解本公开的前述方面以及许多伴随优点,因此同样将更易于了解所述方面以及优点。
图1是描绘包括经由第一网络104与一组全球接入点106A-106N通信的多个客户端装置102的说明性逻辑环境100的框图,所述全球接入点106A-106N经由第二网络108与一组数据中心110A-110N通信。虽然客户端装置102、全球接入点106和数据中心110在图1内分成群组,但是客户端装置102、全球接入点106和数据中心110可在地理上相距遥远,并且独立拥有或操作。例如,客户端装置102可表示访问由数据中心110提供的网络可访问服务的各个全球、大陆或区位置的大批用户,所述数据中心110可进一步分布在各个全球、大陆或区位置之间。全球接入点106可类似地分布。在一个实施方案中,数据中心110表示在单一实体(诸如“云计算”提供商)控制下的位置中的装置,而全球接入点106表示在共同承租位置(诸如网络“入网点”或互联网交换点(IXP))中的装置。全球接入点106通常可比数据中心110更多并且位于不同的物理位置中。然而,在其他实施方案中,接入点106中的一个或多个可位于一个或多个数据中心110内。因此,图1内的客户端装置102、接入点106和数据中心110的分组旨在表示逻辑分组,而不是物理分组。
网络104和108可以是任何有线网络、无线网络或它们的组合。另外,网络104和108可以是个域网、局域网、广域网、电缆网络、卫星网络、蜂窝电话网络或它们的组合。在图1的示例性环境中,网络104是全域网络(GAN),诸如互联网,而网络108是专用于与提供数据中心110和接入点106的实体相关联的流量的专用网络。用于经由其他前述类型的通信网络进行通信的协议和部件对于计算机通信领域的技术人员来说是众所周知的,并且因此本文不需要更详细地描述。
虽然客户端装置102和接入点106中的每一者被描述为具有到网络104的单一连接,但是客户端装置102和接入点106的单独部件可在不同的点处(例如,通过网络104内的不同相邻网络)连接到网络104。在一些实施方案中,数据中心110可另外或替代地连接到网络104。类似地,虽然接入点106和数据中心110中的每一者被描绘为具有到网络108的单一连接,但是接入点106和数据中心110的单独部件可在不同的点处连接到网络108。因此,通信时间和能力可在图1的部件之间变化。图1的网络配置旨在说明本公开的实施方案中的通信路径,并且不一定要描绘所有可能的通信路径。
客户端装置102可包括能够与全球接入点106通信的任何数目的不同计算装置。例如,单独客户端装置102可对应于膝上型计算机或平板计算机、个人计算机、可穿戴计算机、服务器、个人数字助理(PDA)、混合PDA/移动电话、移动电话、电子书阅读器、机顶盒、相机、数字媒体播放器等。在一些情况下,客户端装置102由终端用户操作。在其他情况下,客户端装置102本身提供网络可访问服务,所述网络可访问服务与全球接入点106交互以访问其他网络可访问服务。
图1的数据中心110说明性地包括代表一个或多个服务提供商提供一个或多个网络可访问服务的端点计算装置。说明性地,数据中心110可由“云计算”提供商操作,这使得数据中心内的主机计算装置可供服务提供商用于提供他们的服务。云计算提供商通常可管理数据中心的操作,同时为服务器提供商提供各种机制以配置它们相应的端点。以下关于图2提供数据中心110的一种说明性配置。
根据本公开的实施方案,云计算提供商可使得服务提供商能够将它们的端点与一个或多个全球网络地址相关联,所述多个全球网络地址可在网络104上定址,以按负载平衡的方式与数据中心110交互。云计算提供商还可使得服务提供商能够诸如通过指定要路由到每个数据中心110的请求的百分比来指定此类负载平衡应如何发生。云计算提供商还可使得服务提供商能够独立于全球网络地址更改端点的配置,使得更改提供服务的具体端点不需要重新配置网络地址。全球网络地址的使用可显著简化网络服务的操作,原因是希望连接到服务的任何客户端装置102可简单地将请求传输到服务的全球网络地址。例如,随后可对提供服务的端点进行更改,而无需更改服务的DNS记录。如下文将描述的,在一些情况下,这些更改可自动进行,使得即使在服务的端点在数据中心110内改变时也不需要用户动作。
为了便于全球网络地址,提供了一组全球接入点106A-106N。每个接入点通常可包括一个或多个计算装置,所述一个或多个计算装置被配置来从客户端装置102获得与服务交互的请求,并且将此类请求路由到数据中心110内的端点,所述端点至少部分地基于跨数据中心110对请求进行负载平衡来选择。接入点106还可充当端点的一种类型的代理,从而使得客户端装置102与数据中心110之间的流量能够跨接入点106流动。下面更详细地讨论接入点106的操作。然而,简而言之,可利用任播技术向网络104内的相邻网络装置广播全球网络地址的可用性,所述网络104在一个实施方案中包括不受提供接入点106A的公共实体控制的装置。接入点106可因此吸引定址到全球网络地址的流量。此后,接入点106可基于诸如端点的可用性、跨数据中心110进行负载平衡以及接入点106与各种数据中心110之间的性能标准的因素来选择将流量引导到的端点。
在选择数据中心110之后,接入点106可将请求路由到端点。在一个实施方案中,接入点106使用NAT转换或封装(例如,虚拟专用网络)来将请求重定向到网络108上的端点,从而防止向客户端装置102公开端点的网络地址。根据本发明实施方案,在于客户端装置102与端点之间利用面向连接的通信会话的情况下,接入点106可操作以代表端点进行通信会话的初始化阶段。在网络108是专用网络的情况下,全球接入点106可进一步充当到端点的流量的“卸载”点,从而将所述流量从公共网络(例如,网络104)移动到专用网络108。一般而言,这种专用网络将预计具有比公共网络更大的性能,并且因此此类卸载可进一步提高客户端装置102与端点之间的通信速度。如上所述,在一些实施方案中,全球接入点106可选择不同的拥塞控制参数和窗口参数以用于接入点106与端点之间的TCP通信,以通过利用专用网络108与用于客户端计算装置102与接入点之间的TCP通信的拥塞控制参数和窗口参数的传统或更小值相比更大的性能来增加数据吞吐量。
如上所指出,接入点106可实现多种技术以确保使用全球网络地址的网络服务的弹性。说明性地,使用任播来公告接入点106可提供接入点106之间的弹性,原因是单独接入点106的故障通常可预计会导致网络104的装置将请求路由到另一个接入点106。此外,为了解决网络104的潜在故障,每个接入点106可被配置来控制其在网络104上的全球网络地址通告,从而提供每个服务到接入点106的多个路由路径。下面提供关于对提供路由路径的通告的此类控制的附加细节。再进一步,为了解决接入点106内的潜在故障,每个接入点106可被配置来包括多个流管理器,从而处置定址到全球网络地址的不同流量流。流管理器可在逻辑上(诸如跨程序线程)和/或在物理上(诸如跨处理器或计算装置)分布。因此,一个流管理器的故障可能对接入点106内的其他流管理器几乎没有影响,从而限制接入点106内的部分故障的影响。下面参考图4讨论接入点106的一种说明性配置。
图2是描绘图1的数据中心110的说明性配置的框图。如图2所示,数据中心110包括端点池201,所述端点池201包括一组端点202A-202N。每个端点202说明性地表示被配置来提供对网络可访问服务的访问的计算装置。在一个实施方案中,端点202是单独物理计算装置。在另一个实施方案中,端点202是在物理计算装置上执行的虚拟计算装置。在又一个实施方案中,端点202是(物理的或虚拟的)计算装置的集合,所述计算装置的集合被共同配置来提供对网络可访问服务的访问。例如,每个端点202可以是作为负载平衡器装置的装置的集合,所述负载平衡器装置被配置来在装置的集合之间对对端点202的请求进行负载平衡。每个端点202与网络108通信,并且因此可在网络108上定址。端点202的数目可例如取决于网络可访问服务的容量要求而变化。说明性地,此类服务的服务提供商可与数据中心110的运营商(例如,云计算提供商)订有合约以生成和供应端点202。
在一个实施方案中,端点202的数目可根据对网络可访问服务的当前或历史需求而变化。为了促进不同数目的端点202,数据中心可包括(例如,直接在物理计算装置上实现的或作为虚拟装置在主机物理计算装置上实现的)资源管理器206,所述资源管理器206监测端点202的负载(例如,关于每秒请求、计算资源利用率、响应时间等),并且动态地调节端点202的数目以将负载维持在阈值内。例如,在端点202被实现为虚拟装置的情况下,资源管理器206可在当前一组端点202具有超出期望的上限使用参数的使用度量时生成和供应新的虚拟装置,并且在度量降到低于更低使用参数时装置“自旋减慢”和移除虚拟装置。资源管理器206可被进一步配置来在修改池201内的多个端点202时向全球接入点106通知池201内的端点202的网络地址信息,使得接入点106可将流量定址到端点202。
另外,图2的数据中心110包括健康检查装置204,所述健康检查装置204被配置来监测池201内的端点202的健康状况。说明性地,健康检查装置204可周期性地(例如,每n秒)向端点202传输请求,并且监测是否接收到适当的响应。如果接收到适当的响应,则健康检查装置204可将端点202视为健康的。如果未接收到适当的响应,则健康检查装置204可将端点202视为不健康的。健康检查装置204可说明性地向全球接入点106通知不健康端点202,以致使接入点106在端点202不健康时减少或消除到端点202的流量路由。在一些情况下,健康检查装置204可被进一步配置来检查全球接入点106的健康状况、其他数据中心110中的端点202的健康状况、或者健康检查装置204与接入点106之间的网络路径的健康状况。例如,健康检查装置204可周期性地向接入点106传输信息,并且监测来自接入点106的响应、关于响应的网络度量(例如,延迟)等。健康检查装置204可将此信息报告到接入点106以促进到数据中心110内的端点202A的流量路由。说明性地,健康检查装置204可将端点202的健康信息报告到配置数据存储区210(例如,数据存储区210上的数据库),所述健康信息可通过配置管理器208的操作以以下描述的方式(例如,作为配置包或包裹的一部分)传播到接入点106。
图2的数据中心110还包括配置管理器208,所述配置管理器208被配置来使得服务提供商能够配置数据中心110和全球接入点106的操作。说明性地,配置管理器208可提供接口,用户可通过所述接口指定提供网络可访问服务的端点202,配置那些端点202并且配置资源管理器206以按比例放大或缩小端点。配置管理器208可进一步使得服务提供商能够将全球网络地址指派给那些端点,并且指定负载平衡参数以将定址到全球网络地址的流量路由到各种数据中心110。由服务提供商创建的配置可存储在配置数据存储区210内,所述配置数据存储区210可对应于任何持久或基本上持久的存储装置(例如,硬盘驱动器、固态驱动器、网络附接的存储装置等)。在一些情况下,配置数据存储区210可包括服务提供商的配置的多个表示。例如,为了促进全球接入点106的快速重新配置,配置数据存储区210可包括每当服务提供商提交对它们的配置的改变时进行修改的数据库(诸如关系数据库)。配置管理器208可周期性地(例如,每100毫秒、每1秒、每2秒、每5秒、每30秒等)确定是否已经对数据库进行更改,并且如果已经进行更改,则针对全球接入点106生成新配置包,所述配置包涵盖相对于先前配置包对数据库(以及因此,服务提供商的配置)的改变。配置管理器208然后可将配置包存储到配置数据存储区210中以供全球接入点106检索。在一个实施方案中,每个全球接入点106被配置来周期性地(例如,每100毫秒、每1秒、每2秒、每5秒、每30秒等)轮询配置数据存储区210以确定是否存在新配置包,并且如果存在则检索和实现包。在一些情况下,配置包可分成包“包裹”,从而表示配置的一部分。全球接入点106可被配置来仅检索相对于现有包裹修改的那些包裹。例如,可基于包裹或包的版本控制来跟踪修改。再进一步,在一些实施方案中,包或包裹可作为与先前版本的差异或“增量”存储在数据存储区210中,使得接入点106可仅检索自包裹的先前版本以来的改变,从而减少更新包或包裹所需的数据传送。在一个实施方案中,配置管理器208可通过收集自先前检查点以来的所有改变并且将包或包裹存储为独立版本来周期性地(例如,每100毫秒、每500毫秒等)“查点(checkpoint)”包或包裹。在全球接入点106没有先前包或包裹的参照系的情况下,此类查点可促进快速重新配置。
在一个实施方案中,图1的数据中心110A-110N中的仅一个数据中心110包括配置管理器208,所述管理器208将每个服务提供商的配置传播到其他数据中心110和接入点106。在另一个实施方案中,每个数据中心110包括配置管理器208,并且每个数据中心110的管理器208可通信以在数据中心110之间以及与接入点106同步配置。再进一步,数据中心110A-110N还可包括各种网络路由部件214,诸如可被配置来将数据包路由到不同端点202的架顶式(“TOR”)交换机。更具体地说,在一个实施方案中,TOR交换机可利用包括在数据包中将数据包路由到端点202。例如,TOR可利用5元组信息(即源的IP地址、源的端口地址、目的地的IP地址、目的地的端口地址以及路由协议)来将数据包自动地路由到指派的端点202。这促进在确保到不同端点202的传输安全的一组多个VLAN或编织层上的利用。再进一步,在本申请的其他方面中,端点202可利用路径MTU发现消息来交换信息。根据本申请的方面,为了增加弹性,在数据包发生改变的情况下,可交换状态信息以促进数据中心110对服务/请求的继续处理。更具体地说,端点可利用到一组端点202的多播消息传输,所述一组端点202与仅允许那些端点接收多播消息(诸如在端点将关闭的情况下传递状态信息并且试图通过向另一个端点提供状态信息来维持服务的连续性)的特定VLAN或编织层相关联。在其他实施方案中,端点可利用传输到数据中心210中的所有端点的广播消息。由于广播消息被接收到所有(或大部分)端点,因此数据中心中的单独端点202可过滤或不包括不适用的消息。
虽然数据中心110的仅一些部件被示出为与网络108通信,但是其他部件可另外与网络108和/或网络104通信。图2的线并非旨在表示所有实际或潜在的网络连接,而是例示到端点202的服务相关流量的可能流。
此外,虽然在数据中心110内示出,但是在一个实施方案中,全球接入点106还可包括配置管理器208,从而使得能够直接配置接入点106。在另一个实施方案中,全球接入点106不包括任何配置管理器208和数据存储区210。例如,在接入点106在共同承租环境中实现(例如,不由接入点106的运营商以外的各方操作或者不可由其访问)的情况下,接入点106可被配置来不包括任何持久性存储区,并且而是在接入点106初始化时从数据中心110检索配置信息。以此方式,可增加接入点106的安全性,原因是关闭接入点106将预计导致可能驻留在接入点106上的任何敏感数据的丢失。
虽然数据中心110被示出为包括对应于一个网络可访问服务的一个端点池201,但是数据中心110可托管众多池201,每个池201对应于不同服务。因此,多个服务提供商可利用数据中心110。此外,如上所指出,每个网络可访问服务可由端点202跨多个数据中心110提供。因此,图1的全球接入点可跨数据中心110将流量分布给这种服务。
根据本公开的实施方案,数据中心110还包括会话切换管理器212,所述会话切换管理器212被配置来促进采用与在全球接入点106处初始化的客户端102的面向连接的通信会话。如上所讨论的,在一些情况下,全球接入点106可被配置来完成面向连接的通信会话的初始化阶段,诸如TCP三向握手,其后将通信会话切换到端点202。在一些情况下,端点202可被配置来通过接收面向连接的通信会话的上下文(例如,连接的两端的序列号)并且生成结合所述上下文的本地状态信息来接受这种切换。例如,可通过修改端点202的操作系统内的联网协议处理程序(例如,通过修改内核以接受和采用来自全球接入点106的TCP上下文信息)来如此配置端点202。然而,为了使得广泛多种端点202能够利用全球接入点106,可能优选的是不需要如此配置端点202。为了实现这一点,数据中心110还可包括会话切换管理器212,所述会话切换管理器212被配置来接受和采用来自全球接入点106的面向连接的通信会话。会话切换管理器212然后可与由接入点106选择的端点202建立单独的面向连接的通信会话以向客户端装置102提供服务,并且作为两个会话之间的“中间人”操作。由于会话切换管理器212和端点202通常可共同容纳在数据中心110内,因此第二面向连接的通信会话的创建可预计将最小延迟注入到客户端装置102与端点202之间的通信中。
图3是描绘图1的全球接入点的说明性配置的框图。如图3所示,每个全球接入点106经由路由器302与网络104通信。虽然图2中仅示出了单一路由器302,但是接入点106可包括多个路由器302。此外,虽然示出了到网络104的单一连接,但是每个路由器302可包括到网络104、潜在地到网络104内的多个不同相邻装置的多个连接,其中每个装置可对应于不同子网络(例如,网络104内的自治系统(AS))。
如上所指出,全球接入点106可被配置来利用任播技术来将流量吸引到与网络可访问服务相关联的全球网络地址。因此,路由器302说明性地被配置来向网络104上的相邻装置公告全球网络地址。在一个实施方案中,此类公告是BGP公告。此类公告可致使路由器302吸引定址到全球网络地址的流量,原因是所述公告可致使网络104上的装置根据任播技术的操作将定址地址的流量路由到路由器302。
如上所讨论的,全球接入点106可实现多种技术以增加接入点106的弹性。在一个实施方案中,由接入点106公告的全球网络地址被划分成多个地址群组。为了减小故障对网络104的潜在影响,路由器302(或多个路由器302)可被配置来将每个地址群组的BGP通告传输到网络104上的不同相邻装置(例如,不同AS)。网络可访问服务可与来自多个地址群组的地址相关联,其中每个地址群组可作为访问服务的地址提供到客户端装置102。由于来自不同群组的地址在网络104上以不同方式公告,因此对于每个群组的地址,在网络104上可预计不同路由路径。例如,定址到第一群组内的地址的包可通过网络104的第一AS到达路由器302,而定址到第二群组内的地址的包可通过第二个AS到达路由器302。因此,如果在第一AS(或连接到第一AS的下游AS)内发生故障,则定址到第二群组内的地址的包可预计仍到达路由器302,并且反之亦然。因此,将全球网络地址分成多个群组可增加接入点106对网络104内的故障的弹性。
在接收到定址到全球网络地址的包时,路由器302可将包从一组流管理器304A-304N路由到流管理器304或其他类似的功能部件。虽然接入点106可实现单一流管理器304,但是接入点实现多个流管理器304以提供此类流管理器304的冗余操作可能是有益的。路由器302可使用任何数目的已知负载平衡技术来将包分布到流管理器304,诸如轮询选择。在一个实施方案中,路由器302利用一致性哈希以分布包。一致性哈希在本领域中是已知的,并且因此在本文中将不再详细描述。一致性哈希可能有益于例如增加具有相同特性(例如,源网络地址、源网络端口、目的地网络地址、目的地网络端口、协议)的多个包被路由到相同流管理器304的改变。这可有益地使得流管理器304能够维持关于客户端装置102与目的地端点202之间的包的流的状态信息。在一些情况下,可能需要此类状态信息例如以实现NAT技术,或进行面向连接的通信会话的初始化阶段。在另一个实施方案中,等价多路径(ECMP)负载平衡用于将流量路由到流管理器304A-304N。ECMP负载平衡在本领域中是已知的,并且因此在本文中将不再详细描述。
在一个实施方案中,应用ECMP负载平衡以基于包定址到的全球网络地址来将包路由到流管理器304A。说明性地,每个流管理器可处置定址到全球网络地址群组内的地址的子集的包。例如,第一流管理器304可优选地处置群组内的地址的第一四分位数,第二管理器304可优选地处置第二四分位数,等等。通过在不同流管理器304之间划分群组内的网络地址,接入点106可例如减小服务因流管理器304的不当操作、诸如由于与所述流管理器304处置的地址相关联的服务的错误配置而受到不利影响的部分。在使用全球网络地址的多个群组的情况下,服务可在不同群组之间“重组”,使得具有在一个地址群组下共享子集的地址的两个服务不太可能具有在另一地址群组下共享子集的地址。此类重组可减少由于单独流管理器304A的故障而从接入点106完全不可用的服务的总百分比。
为了进一步促进在流管理器304上使用状态信息,在一个实施方案中,路由器302实现流哈希路由算法或类似算法以标识构成客户端102与端点202之间的流量“流”的相关包。多种流标识算法在本领域中是已知的,并且因此在本文中将不再详细描述。说明性地,路由器302可实现流标识算法以识别数据包流,并且一致地将相同流的包路由到相同流管理器304。在一个实施方案中,路由器302在以其他方式将包分布到流管理器304之前将基于流的路由应用于数据包,使得如果所述包被识别为流的一部分,则其被分布到先前处置所述流的包的相同流管理器304。在这种实施方案中,如果包未被识别为流的一部分,则将附加负载平衡算法(例如,一致性哈希)应用于包以确定要将包路由到的流管理器304。
在接收到数据包时,流管理器304可确定要将包路由到的数据中心110,以及数据中心110内的端点202。在一个实施方案中,流管理器304可应用标准的组合来选择要将包路由到的数据中心110,所述标准的组合包括网络性能标准和负载平衡标准。在第一方面中,对于给定包,流管理器304可初始基于全球接入点106与各种可用数据中心110或端点202的群组之间的网络或地理标准来选择数据中心110。网络或地理标准可对应于距所标识的接入点106的网络距离(例如,跨网络108)的量度。网络或地理标准还可包括或至少部分地结合性能标准,诸如延迟、跳数、带宽或其组合。通常,以最大网络性能标准将包路由到数据中心110可有益地增加客户端装置102与数据中心110之间的通信速度。由于网络性能标准不太可能在接入点106与数据中心110之间快速转移,因此以最大预期性能标准简单地将每个包路由到数据中心110可能无法实现服务提供商所请求的负载平衡。
除了测量或确定的网络或地理标准之外,每个流管理器304可进一步根据需要进一步修改结合分布标准,以实现服务提供商的期望负载平衡。更具体地说,在一些实施方案中,端点202(例如,数据中心110)的每个分组可被细分成不同区。单独数据中心110可将端点202的子集关联到不同子区或区的其他分组中。因此,客户可指定标识测量分布的分布标准或计算提供到数据中心110的数据包的测量分布的方法。说明性地,分布可被指定为流量的百分比、数据包的总数(例如,数据的总量、分配或计入单独端点的成本等。系统管理员可说明性地利用软件工具或接口(例如,API)来提供分配,如将在本文的各种实例中描述的。进而,流管理器304可实现算法(诸如硬币翻转算法),以实现百分比选择。所述算法也可考虑附加因素,诸如地理或网络标准。
假设在一组说明性实例中,假设与区相关联的数据中心110可被进一步分配到三个不同子区(“子1”、“子2”和“子3”)中。使用工具,系统管理员可基于百分比指定分配。现在将关于说明性100个包的分布来描述各种迭代:
子区 | 分配 | 包数 |
子1 | 10% | 10个包 |
子2 | 20% | 18(剩余90个的20%) |
子3 | 100% | 72(剩余72个的100%) |
在以上实例中,流管理器304可使用硬币翻转算法以将数据包分配到子区中的一个的方式应用分布。在以下实例中,系统管理员可能没有如下的完全分配:
子区 | 分配 | 包数 |
子1 | 10% | 10个包 |
子2 | 20% | 18(剩余90个的20%) |
子3 | 10% | 7(剩余72个的10%) |
在以上实例中,说明性分配不考虑包的完整集合。因此,在一个实施方案中,流管理器304可随机地分布到子区的集合。在其他实施方案中,流管理器304可基于默认分布算法(诸如分配到最接近的地理子区)或手动选择的分布来进行分配。在又一个实施方案中,流管理器304可进一步结合自动线性斜升以分配如下任何附加流量:
子区 | 分配 | 包数 |
子1 | 10% | 10个包 |
子2 | 20% | 18(剩余90个的20%) |
子3 | 10% | 7(剩余72个的10%) |
未分配65的自动线性调节:
子区 | 分配 | 包数 |
子1 | 90% | 58个包 |
子2 | 100% | 17(剩余17个的20%) |
子3 | 90% | 0(剩余0的10%) |
在另一个实施方案中,并非初始基于接入点106与数据中心110之间的地理或网络标准来选择数据中心110,而是全球接入点106可被配置来基于从中接收到流量的客户端装置102与初始选择的数据中心110之间的性能标准来初始选择数据中心110。有益地,客户端装置102与数据中心110之间的网络性能标准的使用可导致针对给定客户端装置102一致地选择数据中心110,而不管客户端装置的流量被路由到的接入点106如何。在选择初始数据中心110(例如,就距离或最小化延迟而言最接近客户端装置102)之后,接入点106可根据需要修改所述选择以实现由服务提供商指定的负载平衡。例如,如果服务提供商希望不超过70%的流量被路由到初始选择的数据中心110,并且在过去一段时间内的流量的比例超出所述百分比,则接入点106可选择不同数据中心(例如,相对于客户端装置102的下一个性能最好的数据中心110)。接入点106然后可基于路由到所述不同数据中心110的历史流量的比例来确定请求是否可路由到所述不同数据中心110。此过程可继续,直到接入点106定位基于服务提供商的负载平衡说明可接受的数据中心110。
在一些实施方案中,负载平衡在每个流管理器304处本地地实现。在其他实施方案中,跨接入点106的所有流管理器304实现负载平衡。在再其他实施方案中,跨多个接入点106的流管理器304实现负载平衡。通常,本地化负载平衡预计是更低程度资源密集型,原因是其需要的分布式部件之间的通信更少。然而,更少本地化负载平衡可导致负载平衡标准更接近类似于服务提供商所期望的那样。
在一些情况下,流管理器304可实现本地化和非本地化负载平衡的混合。例如,每个流管理器304可实现本地化负载平衡(例如,对于每个管理器304或每个接入点106本地化),并且周期性地与其他接入点106协商以调节在选择数据中心110时应用的权重。例如,在服务提供商请求在数据中心110之间均匀地划分流量的情况下,本地化负载平衡可致使两个接入点106中的每一个在数据中心110之间均匀地划分流量。这可导致不太理想的路由,原因是每个接入点106处的一半流量可被路由到非最接近的数据中心110。因此,在此场景中,接入点106可关于它们的流量路由进行通信,并且为了假设起见假设每个点106处的流量体积相等(并且考虑仅两个接入点106),每个接入点106可开始将他们的所有包路由到最近的数据中心110。这种划分仍将导致数据中心110之间的流量的均匀划分,并且此外有益地增加每个包流的平均网络性能度量。
在一个实施方案中,路由到给定数据中心110的流量的期望比例或体积可由服务提供商静态地选择。例如,服务提供商可请求将接入点106处不超过70%的请求路由到给定数据中心110。在另一个实施方案中,期望比例或体积可以是动态的。例如,服务提供商可根据给定变化率(例如,线性地,指数地,对数地等)指定路由到给定数据中心110的流量的期望比例或体积从第一时间点到第二时间点增大或减小。
在选择将流量路由到的数据中心110之后,流管理器304可选择数据中心110内要将流量路由到的端点202。可根据任何负载平衡算法来选择端点202。在一个实施方案中,流管理器304可利用一致性哈希来选择端点202。
如上面关于流管理器304所讨论的,可能期望给定流的流量被一致地路由到相同端点202,使得端点202可维持关于所述流的状态信息。因此,每个流管理器304可利用流选择算法来检测先前由流管理器302A路由到端点202的流内的后续包,并且将此类包路由到相同端点202。在一个实施方案中,当流管理器304将包标识为已经路由的流的一部分时,流管理器304可省略针对包对数据中心110和端点202的选择,从而有利于将包路由到先前用于流的先前包的端点202。更具体地说,流管理器304可实现试图一致地标识端点202的选择算法。说明性地,选择算法可生成与各种端点202相关联的得分,所述得分比照单独端点或通信的属性应用。例如,选择算法可针对5元组信息(例如,即源的IP地址、源的端口地址、目的地的IP地址、目的地的端口地址以及路由协议来计算以将数据包自动地路由到指派的端点202。选择算法可然后通过选择具有“最高”得分的端点来处理针对给定通信请求(例如,到服务的连接)生成的得分。假设选择算法将一致地生成相同“高”得分,则可将后续通信路由到所选择的端点。在一个实施方案中,选择算法可对应于加权会合哈希算法。在另一个实施方案中,选择算法在另一个实施方案中可以是加权一致性哈希算法。
在再其他实施方案中,流管理器304可通过将得分的计算关联到层次结构中来进一步优化得分的生成。在一个实施方案中,端点202被分组成允许基于累积属性来计算得分的对。将所述对进一步组合成连续的组合,直到剩余仅两个组合,由此产生类似于金字塔的层次结构。不需要针对群组中的每个端点202计算和比较得分,所得的金字塔实现得分的二进制划分和比较,从而进一步使端点202的选择更加高效。
在选择要将包路由到的端点202之后,流管理器304可修改包以促进路由到端点202。例如,当在路由器302处接收到包时,所述包的目的地网络地址可以是全球网络地址。流管理器304因此可修改包以用端点202的网络地址替换目的地网络地址。在一个实施方案中,每个流管理器304实现NAT技术以修改定址到全球网络地址的包。例如,对于发往端点202的包,每个流管理器304可用端点202的网络地址作为包的目的地网络地址替换全球网络地址,并且用接入点106的地址作为源地址替换客户端装置102的网络地址。根据NAT技术,对于来自端点202的要路由到客户端装置102的包,可能发生类似转换。流管理器304可说明性地使用端口转换(已知的NAT技术)来区分所转换的流。在转换之后,流管理器304可将包返回到路由器302以通过网络108传输到所选择的端点202。
在另一个实施方案中,流管理器304可利用封装以将包路由到端点202。说明性地,每个流管理器304可生成通向数据中心110内的装置(诸如会话切换管理器212或数据中心110内的路由器)的IP“隧道”。为了将包路由到端点202,流管理器304可封装包,并且经由隧道将包传输到接收装置。接收装置然后可解封装包并且将包传输到端点202。在一个实施方案中,流管理器304用所选择的端点202的目的地地址替换包的目的地地址(例如,服务的全球网络地址),以促进将包202传输到端点。通过隧道封装包可提供益处,诸如保存传输包的客户端装置102的网络地址。如前所述,在具体实例中,流管理器304可建立一组VLAN,所述一组VLAN利用到端点的不同子群组的封装的通信。因此,封装可使得例如客户端装置102和端点202即使当客户端装置102的包通过不同接入点106路由时也能够保存面向连接的通信会话。在一些情况下,流管理器304和端点202(或会话切换管理器212)可被配置来验证彼此之间的通信,以确保在装置之间传输的包的真实性。例如,流管理器304和端点202(或会话切换管理器212)中的每一者可被配置来生成验证相应装置的数字签名,并且在于装置之间流动的封装的包的标头中包括这种数字签名,使得每个装置可验证数字签名以核实包是在已知装置处生成的。作为另一个实例,流管理器304和端点202(或会话切换管理器212)可被配置来经由已知的安全协议(诸如传输层安全(TLS)协议)进行通信。
如上所指出,接入点106在一些情况下可被配置来进行面向连接的通信会话的初始化阶段,以减少进行这种阶段所需的时间(例如,由于接入点106相对于数据中心110到客户端装置102的相对接近度)。为了促进此类功能,每个流管理器304可实现与客户端的初始化阶段,并且将与初始化会话相关的信息提供到数据中心110内的装置,诸如端点202或会话切换管理器212。例如,可经由隧道提供信息。说明性地,流管理器304可生成到会话切换管理器212的隧道,并且在隧道内传递包括TCP会话状态信息的“TCP切换”命令。状态信息可包括例如TCP“五元组”(通常定义TCP连接的五个值:源地址、源端口、目的地地址、目的地端口和使用中的协议)或其一部分,和/或TCP连接的序列号。在接收到TCP切换命令时,会话切换管理器212可在其自己的有状态会话表(例如,TCP表)中生成对应条目,因此“采用”面向连接的通信会话。流管理器304然后可经由隧道从客户端装置102传输包,所述包可作为所采用的会话的一部分在会话切换管理器212处进行解封装和处理。在会话切换管理器212用于完成有状态会话的切换的实施方案中,流管理器304可能不需要选择将包传输到的端点202。相反,流管理器304可被配置来一致地选择所选择的数据中心110内的适当会话切换管理器212作为客户端装置102包的目的地。会话切换管理器212进而可选择数据中心110内的端点202。因此,会话切换管理器212的使用可将用于选择端点202的责任从流管理器304转移到会话切换管理器212。在会话切换管理器212处选择端点202可与流管理器304进行的此类选择类似地发生。
除了一个或多个路由器302和流管理器304之外,图2的全球接入点106包括健康检查装置306。健康检查装置306可说明性地将健康检查传输到流管理器304,以便确定此类流管理器304是否发生故障。如上所讨论的,健康检查数据的传输可与数据中心110内的健康检查装置204对健康检查数据的传输类似地发生。另外或替代地,健康检查装置306可将健康检查数据传输到端点202和/或客户端装置102。关于端点202接收的健康检查数据可促进将决策路由到端点202。例如,如果健康检查装置306无法与端点202通信,则流管理器304可停止选择端点202作为流量的目的地,而不管端点202本地的健康检查装置204是否报告端点202为健康的。关于客户端装置102收集的健康检查数据可说明性地用于修改对网络104的装置的可用性通告(例如,BGP通告)。例如,全球接入点106的运营商可审查与客户端装置102相关的健康检查数据以调节通告,以便试图将来自一些装置102的流量重定向到与其当前在网络104上路由到的不同(例如,更接近)的接入点106。
图3的全球接入点106还包括配置管理器308,所述配置管理器308被配置来接收和与全球网络地址相关联的服务相关的配置信息,并且配置全球接入点106的操作以实现此类配置。例如,配置管理器308可接收关于路由器302应如何向网络104公告全球网络地址的信息、在数据中心110处变得可用的到由接入点106路由的全球网络地址的信息映射服务、标识此类服务的数据中心110和端点202的信息、指定此类数据中心110之间的期望负载平衡的信息等。在一个实施方案中,配置管理器308从数据中心110内的配置数据存储区210检索配置信息。例如,配置管理器308可周期性地轮询数据存储区210以获得新配置信息。作为另一个实例,数据中心110可利用多种已知的推送通知技术将配置改变“推送”到配置管理器308。例如,数据中心110可实现发布-订阅(“pub/sub”)消息传递系统,并且配置管理器208可向系统发布服务提供商的配置的改变。系统然后可向接入点106的配置管理器308通知此类改变。因此,随着服务提供商在数据中心110处修改他们的服务和全球网络地址的配置,此类修改可传播到接入点106。在一个实施方案中,接入点106不会将配置信息存储在持久性存储区中(并且可能缺少任何此类持久性存储区),以便降低可能从接入点106获得此类信息的可能性。
虽然上面讨论了关于网络可访问服务的实例,但是每个接入点服务器402可与多个服务相关联。例如,在每个流管理器304的任务是处置定址到此类地址的群组内的全球网络地址的子集的包的情况下,每个流管理器304因此可处置定址到与所述子集内的全球网络地址相关联的任何服务的流量。
虽然接入点106的仅一些部件被示出为与网络104和108通信,但是其他部件可另外与网络108和/或网络104通信。图3的线并非旨在表示所有实际或潜在的网络连接,而是例示通过接入点106的服务相关流量的可能流。
图2的数据中心110和图3的全球接入点106是如在包括一个或多个计算机系统的分布式计算环境中操作的,所述一个或多个计算机系统使用一个或多个计算机网络(不在相应图中)互连。图2的数据中心110和图3的全球接入点106还可在具有比相应图中所例示更少或更多数目的装置的计算环境内操作。因此,图2中的数据中心110和图3的全球接入点106的描述应被视为说明性的而非限制本公开。例如,图2的数据中心110、图3的全球接入点106或其各种组成部分可实现各种网页服务部件、托管或“云”计算环境,和/或对等网络配置以实现本文所描述的过程的至少一部分。
图4描绘了操作来实现接入点106的流管理器304的示例性计算系统(称为接入点服务器402)的一般架构。图4中描绘的接入点服务器402的一般架构包括可用于实现本公开的方面的计算机硬件和软件模块的布置。硬件模块可用物理电子装置来实现,如下面更详细讨论的。接入点服务器402可包括许多比图4中所示的那些元件更多(或更少)的元件。然而,为了提供可实施性公开,没有必要示出所有这些通常常规的元件。另外,图4中所例示的一般架构可用于实现图2和图3中所例示的其他部件中的一个或多个。如图所示,接入点服务器402包括一个或多个处理单元490、一个或多个网络接口492和一个或多个计算机可读介质驱动器494,所有这些都可通过通信总线彼此通信。网络接口492可提供到一个或多个网络或计算系统(诸如路由器302(其可对应于例如可商购获得的路由器装置))的连接性。处理单元490因此可经由网络(诸如网络104或108)从其他计算系统或服务接收信息和指令。处理单元490还可往返存储器480进行通信。
存储器480可包含计算机程序指令(在一些实施方案中被分组为模块),处理单元490执行所述计算机程序指令以便实现本公开的一个或多个方面。存储器480通常包括随机存取存储器(RAM)、只读存储器(ROM)和/或其他持久性、辅助性或非暂时性计算机可读介质。存储器480可存储操作系统482,所述操作系统482提供计算机程序指令以供处理单元490在接入点服务器402的一般管理和操作中使用。存储器480还可包括用于实现本公开的方面的计算机程序指令和其他信息。例如,在一个实施方案中,存储器480包括一个或多个流管理器单元483,其中每个流管理器单元表示执行以实现图3的流管理器304的代码。每个流管理器单元483可说明性地与服务器402上的其他单元483隔离。例如,每个单元可表示单独的虚拟机或隔离的软件容器。在一些情况下,每个单元483可与单独的处理单元490、接口492或驱动器494相关联,从而最小化一个单元483的操作影响另一单元483的操作的可能性。每个单元483说明性地包括:端点选择器单元484,所述端点选择器单元484表示可执行以选择要将定址到全球网络地址的包路由到的端点202的代码;流表486,所述流表486表示将包的流映射到端点202的信息表;NAT单元488,所述NAT单元488表示可执行以对定址到全球网络地址的包执行NAT的代码,或对来自端点202的此类包的响应;以及会话切换单元489,所述会话切换单元489表示可执行以进行面向连接的通信会话的初始化阶段并且将所述会话切换到接收装置的代码。虽然在图4中未示出,但是存储器480还说明性地包括封装单元,所述封装单元表示代码,所述代码可执行以生成到另一个装置的隧道连接从而实现封装的包的传输,并且进行封装/解封装以促进此类传输。
存储器480还可包括:健康检查单元496,所述健康检查单元496对应于可执行以实现健康检查装置306的指令;和配置管理器单元498,所述配置管理器单元498对应于可执行以实现配置管理器308的指令。在一些实施方案中,健康检查装置306和配置管理器308可实现为独立的装置,而不是接入点服务器402的一部分。此外,虽然示出为与接入点服务器402不同,但是路由器302在一些情况下可结合到服务器402中(例如,通过在存储器480中包括可执行以实现路由功能的软件)。
在一个实施方案中,接入点服务器402没有任何非易失性存储器,并且被配置来仅相对于易失性存储器(诸如RAM)进行操作。说明性地,接入点服务器402可被配置来使用预启动执行环境(PXE),使得在初始化时,接入点服务器402从网络可访问存储位置(例如,配置数据存储区210)检索存储器480(诸如操作系统482、健康检查单元496和配置管理器单元498)的内容的至少一部分。配置管理器单元498此后可从网络可访问存储位置检索附加配置信息,诸如单独服务的配置和相关联全球网络地址,并且利用此类附加信息以生成流管理器单元483。为了防止对存储器480的内容的未经授权的公开,服务器402在存储位置处的验证可至少部分地链接到(例如,在接入点106处的)服务器402的网络位置,使得试图物理地重定位服务器402会导致无法检索存储器408的内容。
虽然图4描绘了单一服务器402和路由器302,但是在一些情况下,全球接入点106可由多个服务器402和/或路由器302实现。在一些情况下,此类服务器402或路由器302可在物理上或逻辑上隔离,以避免错误在此类服务器402或路由器302之间的传播。说明性地,在接入点106处置多个网络地址池的情况下,每个池可由不同的服务器402和路由器302处置。因此,如果一个路由器302和/或服务器402发生故障,则只有与由所述路由器302和/或服务器402处置的池相关联的服务预计将受到影响。
参考图5,将描述说明性交互,其描绘了单独全球接入点106A可如何通过提供多个路由以到达利用全球网络地址的网络可访问服务来弹性地操作。图5描绘了环境500,其可进而表示图1的环境100的一部分的实施方案。具体地说,在环境500中,网络104被划分成网络104A-104E,其中每个网络可表示例如自治系统。网络104A-104C被例示为与客户端装置102通信。这些网络104A-104C可例如表示客户端装置102的互联网服务提供商(ISP)。网络104D和104E表示全球接入点106A与其具有网络连接的其他AS。虽然网络104D和104E在图5中未示出为连接到客户端装置102,但是此类网络也可充当到客户端装置102的ISP。网络104A-104E中的每一个在图5中示出为与其他网络104A-104E互连。此配置是说明性的,并且可因实现方式而异。
在图5的说明中,客户端装置102通常具有通过其到达全球接入点106A的两个路由:经由网络104D和104E。为了增加对全球接入点106A的访问弹性,接入点106A可选择性地将可用性通告传输到网络104D和104E。具体地说,如图5所示,在(1)处,全球接入点106A可标识全球网络地址的至少两个群组,诸如两个连续的网络地址范围。此后,全球接入点106A在(2)处将第一网络群组的公告(例如,BGP通告)传输到网络104D,而不是向网络104D和104E两者公告所有全球网络地址。类似地,在(3)c处,全球接入点106A将第二网络群组的公告(例如,BGP通告)传输到网络104E。以此方式,定址到第一网络群组内的地址的流量很可能通过网络104D到达接入点106A,并且定址到第二网络群组内的地址的流量很可能通过网络104E到达接入点106A。每个服务可与至少两个群组的全球网络地址相关联。因此,如果在网络104D或104E中的任一者上发生错误或问题,则客户端装置102可利用服务的替代全球网络地址以便通过剩余网络访问全球接入点106A。
参考图6,将描述用于全球接入点106的操作以促进客户端装置102与针对网络可访问服务提供端点202的数据中心110之间的通信的说明性交互。图6的交互开始于(1)处,在所述(1)处,客户端装置102将定址到与全球接入点106A相关联的全球网络地址的数据包传输到全球接入点106A。例如,数据包可根据传输控制协议(TCP)、用户数据报协议(UDP)或互联网控制消息协议(ICMP)来格式化。基于全球接入点106A指示数据包定址到的全球网络地址可经由全球接入点106A获得的公告,所述包可经由网络104传输,并且经由网络104的操作路由到全球接入点106A。例如,全球接入点106A可以是离客户端装置102最近的(例如,在网络距离方面)全球接入点106。
在接收到数据包时,全球接入点106A内的路由器302将包指派给接入点106内的流管理器304。在数据包不与现有数据流相关联的情况下,路由器302可利用ECMP负载平衡以基于数据包定址到的网络地址来将所述包指派给流管理器304。在数据包与现有数据流相关联的情况下,路由器302可将包路由到流内的先前包被路由到的相同流管理器304。
在(2)处,接入点106A内的流管理器304将数据包指派给数据中心110。在数据包不与现有数据流相关联的情况下,流管理器304可将负载平衡算法应用于数据包,以从可用数据中心110的集合选择数据中心110。如上所述,选择算法可包括例如初始选择数据中心110,所述数据中心110结合了网络和地理标准以及所选择的分布算法的组合。如上所解释,分布算法可对应于基于分布标准(诸如百分比分配)的分布。以此方式,即使当客户端装置102的数据包被重新路由到不同接入点106时,它们也可被路由到相同数据中心110。在数据包与现有数据流相关联的情况下,流管理器304可将包路由到流内的先前包被路由到的相同数据中心110。
在选择数据中心110之后,流管理器304可选择所选择的数据中心120内的端点202。对于给定数据中心110,流管理器304可说明性地维持端点202的集合,所述端点202的集合提供与数据包定址到的全球网络地址相关联的网络可访问服务。在一个实施方案中,可基于从数据中心110内的资源管理器206接收到的信息来标识此端点202的集合。流管理器304可进一步维持如从数据中心110内的健康检查装置204、接入点106A内的健康检查装置306或两者获得的关于端点202的表观健康的信息。流管理器304因此可从端点202的集合选择健康端点以用于与包定址到的网络地址相关联的服务。流管理器304可利用多个已知负载平衡算法中的任一个(诸如一致性哈希)来在端点202之间分布包。更具体地说,如上所述,在一个实施方案中,流管理器304可基于数据包的5元组信息来实现加权会合哈希或加权一致性哈希算法。流管理器304然后可基于“最高”评分端点来选择端点202,以实现对完整数据流的一致选择。在包与现有包流相关联的情况下,流管理器304可选择流中的先前包已经被路由到的相同端点202。
在选择端点之后,接入点106A内的流管理器304根据需要修改包以将包路由到所选择的端点202。具体地说,在图6的实施方案中,流管理器304在(5)处诸如通过替换包的源和目的地网络地址而将NAT技术应用于包。此后,在(6)处,流管理器304将包传输到所选择的数据中心110内的所选择的端点202。
在(7)处,端点202根据网络可访问服务来处理包。如所描述的,数据中心110可实现网络设备,诸如架顶式,所述网络设备可基于所分配的子部分或编织层来将包流量分配到端点。更具体地说,在一个方面中,TOR可利用包括在通信中的5元组信息以基于分配子部分来路由数据包。再进一步,通信可诸如封装在VLAN中,以提供进一步的安全性。在发生故障的情况下,与分组相关联的网络端点202可将路径MTU发现(“PMTUD”)消息广播到所分配的子群组或子部分内的其他端点,以维持状态信息或确定哪些子部分将处理服务请求以避免重复处理/指派。这允许端点快速地接收信息并且避免重复处理。端点202然后向全球接入点106A返回响应包。由于响应包与现有数据流相关联,因此接入点106A内的路由器302将响应包引导到以上所讨论的相同流管理器304。流管理器304反转先前的NAT变换,以便将包定址到客户端装置102。流管理器304然后将数据包返回到客户端102。因此,经由图6的交互,客户端装置102可将数据包定址到全球网络地址,并且(经由全球接入点106)被路由到提供与网络地址相关的网络可访问服务的端点。接入点106可根据服务提供商的期望配置对包应用负载平衡,使得服务上的负载在数据中心110之间分布。
参考图7,将描述用于通过选择向不同相邻装置公告地址来增加全球网络地址的弹性的说明性例程700。例程700可说明性地(例如,在接入点106的初始化期间)由全球接入点106实现。在一个实施方案中,例程700的实例由每个接入点106实现。
例程700开始于框704处,在所述框704处,获得要经由接入点106服务的全球网络地址。此信息可说明性地作为(诸如存储在配置数据存储区210中的配置文件内的)接入点106的配置的一部分获得,在接入点106的初始化期间获得。全球网络地址可说明性地在配置中划分成不同定址池。例如,每个池可包括不同网络地址“框”,诸如连续地址范围。范围可例如表示“子网”。在一个实施方案中,范围由“前缀”表示,从而指示所述范围中的网络地址的前n位。例如,前缀192.0.2.0/24(用无类域间路由或CIDR表达)可表示IPv4地址的前24位,对应于在192.0.2.0至192.0.2.255的范围内的地址。
在框708处,接入点106选择要将每个网络地址池公告到的相邻装置。通常,可用的池可在可用的相邻装置之间划分,以便提供从其到达接入点的不同网络路径。在一个实施方案中,此类选择基于接入点106的配置内的说明。在另一个实施方案中,此类选择由接入点106确定。说明性地,接入点106可在可用的相邻装置(其可例如通过典型的路由协议发现)之间均匀地划分池。在一些情况下,可另外基于流量的优选路由来确定相邻装置。例如,接入点106可被配置来不在给定相邻装置上公告给定网络地址池,以便致使所述相邻装置将对池内的地址的请求路由到替代接入点106。
此后,在框710处,全球接入点106将用于相应网络地址池的可用性通告传输到相关相邻装置。例如,通告可以是BGP协议通告。BGP协议通告的传输在本领域内通常是已知的,并且因此在本文中将不再详细描述。
如上所述,将全球网络地址划分成池以及将此类池公告给不同相邻装置可有益地增加接入点106的弹性,特别是对相邻网络上的掉话或错误的弹性。具体地说,由于每个网络可访问服务可与不同池的全球网络地址相关联(例如,每个池一个网络可访问服务),因此可使服务的客户端装置102(例如,经由DNS)知道用于到达所述服务的多个路由。此技术可进一步增加接入点106对接入点106处的有限掉话(诸如连接到相邻网络的网络接口或路由器的掉话)的弹性。如上所指出,在一个实施方案中,通过将每个池划分成网络地址子集来进一步增加每个服务的弹性,所述网络地址子集进而可在接入点106的流管理器304之间分布。服务与每个子集之间的关联可在池之间“重组”。例如,给定池中的服务的全球网络地址可以是随机选择的,或者可经由每个池的不同选择机制来选择。这可能导致子集内的服务分组在池之间“重组”。以此方式,如果单独服务的配置对子集内的其他服务有问题,则受所述错误配置影响的其他服务很可能在池之间有所变化。由于每个服务可预计经由多个池中的地址来访问,因此客户端装置102可经由替代池的替代地址连接到每个其他服务,由此绕过有问题的子集和池。因此,此重组机制可极大地提高使用全球网络地址的服务的弹性。
参考图8,将描述用于路由定址到与由数据中心110内的端点202提供的服务相关联的全球网络地址的流量的说明性例程800。例程800可说明性地由接入点106内的流管理器304实现。在一个实施方案中,例程800的实例由每个接入点106的每个流管理器304实现。
例程800开始于框802处,在所述框802处,流管理器304接收定址到在接入点106处被公告为可访问的全球网络地址的数据包。例如,数据包可表示访问经由网络地址变得可用的网络可访问服务的请求。在一个实例中,数据包被格式化为TCP或UDP数据包。
在框803处,例程800根据数据包是否与现有包流相关联而变化,如在框803处所确定的。说明性地,接入点106可将数据包的属性与先前包的属性进行比较,以确定新的数据包是否在与先前包相同的通信流内。任何数目的流标识技术(其中的多种技术在本领域中是已知的)可用于确定数据包是否在现有流内。
如果所述包是现有流的一部分,则例程800前进到框813,在所述框813处流管理器304选择针对流内的先前包选择的相同的端点202作为包的端点202。在一个实施方案中,每个流管理器304可在存储器中维持将流与端点202相关联的高速缓存,以促进此选择。
如果包不是现有流的一部分,则例程800前进到框804,在所述框804处,流管理器304标识与包定址到的网络地址相关联的网络可访问服务。流管理器304可说明性地访问将网络地址映射到相关联的服务(例如,如在接入点106的存储器中维持)的信息,以标识与所述地址相关联的服务。
此后,在框806处,接入点106选择提供网络可访问服务的数据中心110。在一个实施方案中,至少部分地基于接入点106与数据中心110之间的地理和网络性能标准以及用于网络可访问服务的负载分布算法来选择数据中心110。再进一步,在一个实施方案中,阈值期望最大值可例如由服务提供商诸如经由要路由到每个数据中心110的期望流量百分比来指定。在另一个实施方案中,阈值期望最大值可由多个接入点106共同确定,使得每个接入点106的组合阈值实现数据中心110之间的服务提供商的期望划分。例如,接入点106可实现选择算法,所述算法将流量体积聚合到跨接入点106的服务,并且基于包定址到的接入点106(以及与每个数据中心110对应的网络性能标准)来确定每个数据包的最佳路由。所述算法然后可根据需要修改每个接入点106的最佳路由,以实现全球优化路由,从而针对每个接入点106在数据中心110之间产生个性化的期望比例。如果是这样,接入点可将初始选择修改为替代数据中心,诸如下一个最接近的数据中心。在一个实施方案中,对所选择的每个数据中心110重复框806的实现方式,以确保没有数据中心接收到大于期望最大比例或体积的数据包。
在选择数据中心110之后,流管理器304选择数据中心110内的要将数据包路由到的端点202。在一个实施方案中,流管理器304可利用一致性哈希以基于包的属性(例如,源IP地址)来选择端点202。如上所述,在一个实施方案中,流管理器304可基于数据包的5元组信息来实现加权会合哈希或加权一致性哈希算法。流管理器304然后可基于“最高”评分端点来选择端点202,以实现对完整数据流的一致选择。
此后,在框810处,流管理器304将NAT应用于数据包。说明性地,流管理器304可用全球接入点106的地址(例如,单播地址,而不是全球网络地址)来替换数据包的源地址,并且用端点202的地址(其也可以是端点202的单播地址)替换目的地地址。例如,流管理器304还可修改包的端口号,以促进稍后将NAT技术应用于流内的包。流管理器304然后可将包传输到所选择的端点202。例程800然后可在框814处结束。
本文设想对例程800的各种修改。例如,虽然例程800包括与针对不与现有流相关联的包选择端点202相关的三个框(框804、806或808),但是例程800的一些实现方式可不包括这些框中的一个或多个框。说明性地,流管理器304可维持将网络地址映射到数据中心110和与地址相关联的端点202的数据,而不是单独标识服务和与所述服务相关的数据中心。流管理器304然后可基于上述标准来选择数据中心110,而不需要直接标识与地址相关联的服务。在其他实施方案中,流管理器304可仅维持将网络地址与对应端点202相关联的数据,并且可直接针对包选择端点202,而无需首先标识与地址相关联的服务或提供所述服务的数据中心110。例如,可以类似于上述数据中心110的方式通过以下选择每个端点202:选择具有最佳性能标准值的端点202,并且在端点202正在接收超过数据体积的期望比例时修改所述选择。此外,虽然例程800在图8中示出为在框814处结束,但是流管理器304可继续执行例程800之后的其他动作,诸如充当用于客户端装置102与端点202之间的通信的NAT装置。因此,图8中的例程800的描绘是本文所公开的概念的一个实施方案。
参考图9,将描述用于在全球接入点106处选择提供网络可访问服务的数据中心110的说明性例程900。例程900可说明性地由全球接入点中的流管理器304实现。在一个实施方案中,例程900的实例由每个数据中心的每个资源管理器206实现。
例程900开始于框902处,在所述框902处,数据中心110A的流管理器304获得路由配置信息。说明性地,路由配置信息可包括区/子区的分配或分布。在框904处,流管理器确定地理接近度或其他性能标准。说明性地,分布可被指定为流量的百分比、数据包的总数(例如,数据的总量、分配或计入单独端点的成本等。系统管理员可说明性地利用软件工具或接口(例如,API)来提供分配,如将在本文的各种实例中描述的。
在框906处,流程管理器基于地理接近度和配置的乘积来形成考虑集。如上所述,流管理器304可实现算法(诸如硬币翻转算法),以实现百分比选择。所述算法也可考虑附加因素,诸如地理或网络标准。在判定框908处,进行测试以确定是否存在完全分配。如果存在,则例程在框912处设置配置并且例程在框914处终止。替代地,流管理器304可通过使用默认过程或自动线性处理来进行处理。
参考图10,将描述用于在全球接入点106A处进行面向连接的通信会话的初始化阶段并且将会话切换到数据中心110内的装置,因此减少建立这种会话所需的时间的说明性交互。图10的交互可由例如接入点106的流管理器304来实现。图10的交互将关于单一接入点106A和数据中心110A来描述。然而,关于其他接入点106和数据中心110,类似的交互可能潜在同时发生。此外,图10的交互将关于具体类型的面向连接的通信会话:TCP会话来描述。类似的交互可能关于其他面向连接的通信会话发生。图11伴随图10以说明握手方面。
另外,TCP传输吞吐量可能受到两个考虑因素的限制,即基于拥塞的限制和基于数据处理的限制。TCP中的拥塞限制试图管理传输以免超出网络的容量(拥塞控制)。TCP试图中的数据处理限制管理接收方处理数据(流控制)的能力。说明性地,单独TCP段包含各种TCP设置的值,所述各种TCP设置允许配置和实现拥塞限制或数据处理限制。
图11的交互开始于(1)处,在所述(1)处,客户端装置102试图通过传输定址到服务的全球网络地址的TCP SYN包来发起与网络服务的面向连接的通信会话。根据上述功能,TCP SYN包被传输到全球接入点106A,如图11所示。TCP SYN包说明性地包括客户端装置102的序列号。另外,在一些实施方案中,TCP协议实现拥塞避免算法,所述拥塞避免算法稳定地增加被转发的包的数目的配置并且基于数据吞吐量来线性地增加包的数目。在TCP中,此类值可以是最大分段大小(“MMS”)。在此实施方案中,全球接入点可通过将初始值设置得更高来利用全球接入点206与端点202之间的附加吞吐量。这允许立即受益于更大的可用带宽。
以类似的方式,全球接入点206可进一步将数据处理限制(即最大窗口大小)设置为更大值或最大值,原因是全球接入点206将具有更大的处理数据的能力。
在(2)处,全球接入点106A的流管理器304通过向客户端装置102返回TCP SYN-ACK包来继续TCP三向握手,所述TCP SYN-ACK包说明性地包括接入点106A的序列号(以及承认客户端装置102的序列号)。在(3)处,客户端装置102通过向接入点106A返回TCP ACK包来继续TCP三向握手,从而承认接入点106A的序列号。在接收到TCP ACK包时,在客户端装置102与全球接入点106A之间发起TCP会话。由于接入点106A预计在客户端装置102附近(例如,就延迟而言),因此相对于在客户端装置102与端点202之间进行初始化阶段,交互(1)-(3)预计将快速完成。
在(4)处,客户端装置102(理解TCP会话已经用服务初始化)在TCP会话内传输定址到服务的全球网络地址的数据包。数据包被路由到全球接入点106A,所述全球接入点106A在(5)处选择要将包路由到的数据中心110。数据中心的选择可以与上述相同的方式发生(例如,作为图6的交互(3))。接入点106进一步在(6)处封装数据包以经由隧道传输到所选择的数据中心110(在此情况下为数据中心110A)。在图11的交互中,假设接入点106A先前已经建立通向数据中心110A(例如,通向数据中心110A的会话切换管理器212)的隧道。例如,接入点106A可维持到数据中心110A的一个或多个空闲TCP隧道以用于将包传输到数据中心110。然而,可包括附加交互,其中全球接入点106A建立通向数据中心110A的隧道(例如,UDP或TCP隧道)。为了促进所建立的TCP会话的切换,封装数据包还说明性地包括TCP会话状态信息,诸如用于TCP会话的五元组信息和会话的序列号。在图11中说明性地描绘的实施方案中,会话状态信息被包括作为封装的数据包的标头信息。在(7)处,全球接入点106A将封装的包传输到数据中心110A(例如,传输到数据中心110A内的会话切换管理器212)。
在(8)处,在接收到封装的包时,数据中心110A内的装置(例如,会话切换管理器212,或在一些情况下为端点202)通过向它自己的TCP会话状态表添加封装的包内(例如,在标头内)指示的信息来采用TCP会话。然后,装置在(9)处解封装客户端装置102的包,并且在(10)处进行处理,就好像所述包是直接在装置处接收的一样。例如,在装置是端点202的情况下,端点202可根据由客户端装置102请求的服务来处理包的数据。在装置是会话切换管理器212的情况下,管理器212可通过标识端点202来处理包以(例如,以类似于图6的交互(4)的方式)服务包,并且利用端点202来服务包。说明性地,由于会话切换管理器212(并且在此情况下不是端点202)是与客户端装置102的TCP连接的一方,因此管理器212可发起与端点202的第二TCP连接,并且经由第二TCP会话将客户端装置102包内的数据传递到端点202。管理器212可继续作为客户端装置102与端点202之间的代理来操作以用于未来的通信。例如,管理器212可从端点202获得响应并且促进经由与客户端装置102的TCP会话将响应传输到客户端装置102。
在(11)处,数据中心110A内的装置诸如经由隧道将响应包传输到全球接入点106A。交互(11)可包括例如封装响应包以用于经由隧道传输。全球接入点106A然后在(12)处将响应包转发到客户端装置102。交互(12)可包括例如解封装响应包以用于传输到客户端装置102。客户端装置102与数据中心110A内的端点202之间的进一步通信可以与上述交互(4)至(7)和(9)至(12)类似的方式发生。因此,客户端装置102可经由TCP会话与数据中心110A进行通信,而实际上不需要完成与数据中心110A的装置的会话的初始化阶段。图11描绘了例示分配到两种不同TCP握手算法的上述交互。
虽然图10描绘了说明性交互,但是这些交互可在实施方案之间变化。例如,虽然响应包在图10中被描绘为穿过全球接入点106A,但是在一些情况下,端点202可被配置来直接对客户端装置102做出响应,而无需响应穿过接入点106A。例如,端点202(或管理器212)可直接(例如,通过网络104)将响应包传输到客户端装置102,而不是封装响应包并将其传输到接入点106A,从而避免封装的需要。作为另一个变型,虽然会话信息在图11中被描述为包括在封装的数据包内,但是在其他实施方案中,会话状态信息可包括在单独的包中。例如,全球接入点106A可被配置来在进行通信会话的初始化阶段之后将会话状态信息单独地传输到数据中心110A,诸如以“会话采用”命令传输到数据中心110A。作为又一个变型,虽然上面将管理器212讨论为选择数据中心110A内的端点202以服务客户端装置102,但是在一些情况下,即使在使用管理器212的情况下接入点106也可选择这种端点202。例如,接入点106可选择端点202,并且通知管理器212已经(例如,在封装的包的标头中)选择了哪个端点。在全球接入点106选择将包路由到的端点202的情况下,接入点106可修改包以促进路由到端点202。例如,接入点106可在包的目的地地址字段内用端点202的网络地址(例如,“单播”地址)替换服务的全球网络地址。因此,图10的交互旨在是本质上说明性的。
虽然图10的交互描绘了客户端装置102与单一全球接入点106A的交互,但是在一些情况下客户端装置102可与多个全球接入点106交互。如上所指出,每个全球接入点106可被配置来向不受全球接入点106控制的公共网络(例如,网络104)公告全球网络地址。因此,这种网络上的装置通常可确定客户端装置102的定址到全球网络地址的包被路由到的接入点106。在一些配置中,将给定包流内的包重新路由到不同全球接入点106可能会不利地影响客户端装置102通信。例如,在客户端装置102建立需要在单独接入点106处维持状态信息的TCP连接(例如,与接入点106的TCP连接或通过接入点106进行NAT)的情况下,客户端装置102通信到不同接入点106的重新路由可能会不希望地断开所述连接。
图10的交互通过使得即使在客户端装置102包重新路由到不同接入点106发生时也能维持客户端装置102与端点202(或会话切换管理器212)之间的TCP连接来解决此情况。具体地说,每个接入点106可被配置来在选择要将客户端装置102的包路由到的数据中心110或端点202时应用相同负载平衡标准。此类负载平衡标准可以是接入点106不可知的(例如,无论其应用在哪个接入点106,都是不变的)。例如,负载平衡标准可反映客户端装置102与数据中心110之间的延迟以及数据中心110(或其中的端点202)的健康状况,而与往返接入点106的延迟无关。因此,每个接入点106可预计将给定客户端装置102的包路由到相同数据中心110。因此,例如,如果客户端装置102将附加包传输到第二接入点106,则第二接入点106将应用相同负载平衡标准以选择数据中心110A作为所述包的目的地。第二接入点106将然后将包路由到端点202(或会话切换管理器212),所述端点202将以就像包已经通过接入点106A被路由的相同的方式处理包。由于图10的交互不需要在接入点106A处维持状态信息,并且由于图10的封装机制维持封装的包内的客户端装置102的源网络地址,因此将不会发生面向连接的通信会话(例如,TCP会话)的中断。因此,图10的交互解决了原本在利用任播技术来塑造面向连接的通信会话的路由时会发生的重新路由问题。
参考图12,将描述用于在全球接入点106A处初始化面向连接的通信会话并且将会话切换到数据中心110内的管理器212的说明性例程1200。例程1200说明性地在全球接入点106A与到管理器212的会话之间协作实现,并且因此例程1200的块在此类装置之间划分。虽然例程1200的部分被描绘为由管理器212实现,但是在一些情况下,这些部分可替代地直接在端点202内实现。
例程1200开始于框1202处,在所述框1202处,接入点106(例如,流管理器304)获得定址到服务的全球网络地址的请求以发起与所述服务的面向连接的通信会话。所述请求可以是例如TCP SYN包。
在框1204处,接入点106根据用于会话的特定协议完成会话的初始化阶段。例如,在协议是TCP的情况下,初始化阶段可包括与客户端装置102进行三向握手。
在框1206处,接入点106在会话内从客户端装置102接收数据包。例如,包可以是TCP会话内的有效负载包。
在框1208处,接入点106封装数据包,以经由网络隧道传输到管理器212。接入点106还在封装的包中(例如,作为封装的包的标头信息)包括通信会话的会话上下文,诸如TCP五元组和序列号。接入点106然后在框1210处将包作为通信会话的切换请求发送到切换管理器212。
在框1212处,切换管理器212接收封装的包,并且在框1214处,基于来自接入点106的上下文信息来在其本地数据内构建通信会话。管理器212因此采用会话,从而使得能够在客户端装置102与管理器212之间的会话内进行后续通信。在框1216处,切换管理器212解封装客户端装置102的数据包,并且在会话内处理所述包。例如,管理器212可选择端点202以处置所述请求,并且经由另一通信会话将数据包的内容传输到端点202。例程1200然后在框1218处结束。因此,客户端装置102和管理器212可经由有状态会话进行通信,同时需要客户端装置102与管理器21进行通信以建立会话。
例程1200可包括除了上述那些之外的附加的或替代的框。例如,在于框1210处发送封装的包作为切换请求之前,接入点106可选择数据中心以接收切换请求,其方式类似于图9中讨论的数据中心的选择。此外,虽然例程1200被描绘为在框1216之后结束,但是接入点106和管理器212可继续操作以促进会话内的客户端装置120的通信或与客户端装置120的通信,如上所讨论的。因此,图12中的框的数目和布置本质上是说明性的。
上述所有方法和过程可在由一个或多个通用计算机或处理器执行的软件代码模块中体现并且经由所述软件代码模块来完全自动化。代码模块可存储在任何类型的非暂时性计算机可读介质或其他计算机存储装置中。所述方法中的一些或所有可替代地在专用计算机硬件中体现。
除非另外特别说明,否则诸如“能够”、“可以”、“可能”或“也许”等的条件语言在所用上下文内通常另外被理解为表示:尽管其他实施方案不包括,但某些实施方案包括某些特征、元件和/或步骤。因此,此类条件语言通常并非旨在暗示无论如何所述特征、元件和/或步骤都是一个或多个实施方案必需的,或者并非暗示一个或多个实施方案必须包括用于在借助和不借助用户输入或提示下决定是否包括这些特征、元件和/或步骤或者是否在任何特定实施方案中执行这些特征、元件和/或步骤的逻辑。
除非另外特别说明,否则诸如短语“X、Y或Z”中的至少一者的析取语言根据所用上下文通常另外被理解为表示项目、术语等可以是X、Y或Z或它们的任何组合(例如,X、Y和/或Z)。因此,此类析取语言一般不旨在也不应暗示某些实施方案要求各自存在X中的至少一个、Y中的至少一个或Z中的至少一个。
除非另有明确陈述,否则诸如“一个”或“一种”的冠词通常应解译为包括一个或多个所描述的项。因此,诸如“装置被配置来”的短语旨在包括一个或多个所列举的装置。此类一个或多个所列举的装置也可共同被配置来实行所陈述的列举。例如,“被配置来实行列举A、B和C的处理器”可包括被配置来实行列举A的第一处理器与被配置来实行列举B和C的第二处理器协同工作。
在本文中所述和/或附图中描绘的流程图中的任何例程说明、元素或框应理解成潜在地表示包括用于实现例程中的具体逻辑功能或元素的一个或多个可执行指令的代码模块、代码片段或代码部分。替代实现方式包括在本文所述的实施方案的范围内,其中如本领域中的技术人员所理解的那样,根据所涉及的功能,元素或功能可删除、或不按照所示出或讨论的顺序执行,包括基本上同步执行或逆序执行。
应该强调的是,可对上述实施方案进行许多变化和修改,其中的元素应理解为在其他可接受的实例当中。在本文中,所有此类修改和变化旨在包括在本公开的范围内,并且受以下权利要求保护。
可鉴于以下条款对本公开的实施方案的实例进行描述。
条款1.一种系统,其包括:多个端点,每个端点位于不同地理位置中并且包含至少一个服务器计算装置,所述至少一个服务器计算装置被配置来提供与网络地址相关联的网络可访问服务;多个全球接入点,所述多个全球接入点与所述网络可访问服务相关联,其中所述多个全球接入点中的单独全球接入点包括处理器,与不同地理位置相关联,并且被配置来:利用任播方法来公告所述网络地址的如能够经由所述接入点到达的网络前缀;从客户端装置接收定址到所述网络地址的网络包;基于对应于网络和地理标准与分布标准的乘积的分布算法的实现方式来选择包括多个端点的数据中心;基于对应于一致性哈希算法的选择算法的实现方式来从包括在所选择的数据中心中的所述多个端点选择要将所述网络包路由到的端点;并且将所变换的包路由到所选择的端点。
条款2.如条款1所述的系统,其中所述数据中心对应于区并且其中所述多个端点对应于两个或更多个子区。
条款3.如条款2所述的系统,其中所述分布算法分布标准对应于对所述两个或更多个子区的说明。
条款4.如条款1所述的系统,其中所述分布标准对应于一定百分比的网络流量到区的完全分配。
条款5.如条款1所述的系统,其中所述一致性哈希算法对应于加权会合哈希算法或加权一致性哈希算法中的一者。
条款6.一种在到跨地理区域分布的网络可访问服务的多个接入点处实现的方法,所述方法包括:在全球接入点处接收来自客户端装置的网络包,所述网络包定址到所述网络地址;通过所述全球接入点基于对应于网络和地理标准与分布标准的乘积的分布算法的实现方式来选择包括多个端点的数据中心;通过所述全球接入点基于对应于确定所述网络包的得分的选择算法的实现方式来从包括在所选择的数据中心中的所述多个端点选择要将所述网络包路由到的端点;并且将所变换的包路由到所选择的端点。
条款7.如条款6所述的方法,其还包括:将所述网络可访问服务的网络地址公告为能够经由每个接入点到达;
条款8.如条款6所述的方法,其中所述数据中心对应于区并且其中所述多个端点对应于两个或更多个子区。
条款9.如条款8所述的方法,其中所述分布算法分布标准对应于对所述两个或更多个子区的说明。
条款10.如条款8所述的方法,其中所述分布标准对应于一定百分比的网络流量到区的完全分配。
条款11.如条款8所述的方法,其中所述分布标准对应于一定百分比的网络流量到区的部分分配。
条款12.如条款11所述的方法,其中所述分布标准包括对子区的剩余部分的默认分配。
条款13.如条款12所述的方法,其中对子区的剩余部分的所述默认分配包括地理接近度。
条款14.如条款6所述的方法,其中所述网络包的所述得分对应于基于至少源IP地址、源端口地址、目的地IP地址、目的地端口地址和协议的得分。
条款15.如条款14所述的方法,其中从所述多个端点选择端点对应于选择具有最高得分的所述端点。
条款16.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括计算机可执行指令,所述计算机可执行指令在由到跨地理区域分布的网络可访问服务的多个接入点中的每个接入点执行时将每个接入点配置来:从客户端装置接收定址到所述网络可访问服务的网络地址的网络包;基于以对应于网络和地理标准与分布标准的乘积的分布算法和对应于确定所述网络包的得分的一致性哈希算法的选择算法的实现方式为基础的组合的实现方式来从多个可用数据中心中选择数据中心并且从与单独数据中心相关联的多个端点选择要将所述网络包路由到的相关端点;并且将所变换的包路由到所选择的端点。
条款17.如条款16所述的非暂时性计算机可读介质,其中所述数据中心对应于区并且其中所述多个端点对应于两个或更多个子区。
条款18.如条款16所述的非暂时性计算机可读介质,其中所述分布标准对应于可缩放的分配。
条款19.如条款16所述的非暂时性计算机可读介质,其中所述网络包的所述得分对应于基于至少源IP地址、源端口地址、目的地IP地址、目的地端口地址和协议的得分。
条款20.如条款16所述的非暂时性计算机可读介质,其中所述分布标准对应于性能标准。端点至少部分地基于到所述接入点的端点的表观健康。
条款21.一种系统,其包括:多个端点,每个端点位于不同地理位置中并且包含至少一个服务器计算装置,所述至少一个服务器计算装置被配置来提供与网络地址相关联的网络可访问服务;至少一个全球接入点,所述至少一个全球接入点与所述网络可访问服务相关联,其中所述至少一个全球接入点包括处理器并且被配置来:从客户端装置接收定址到所述网络地址的网络包;基于分布算法的实现方式来选择包括多个端点的数据中心;基于选择算法的实现方式来从所述多个端点选择要将所述网络包路由到的端点;并且经由封装的通信将所接收的包路由到所选择的端点;其中所述多个端点被分配到共享公共封装的隧道的子群组中,并且其中所述子群组中的所述端点中的每个端点被配置来将通信消息传输到其他子群组以用于转发客户端包或提供分段信息中的至少一者。
条款22.如条款21所述的系统,其中所述封装隧道对应于虚拟局域网。
条款23.如条款21所述的系统,其中所述多个端点包括用于使用五元组通信来处理所述子群组消息的网络部件。
条款24.如条款21所述的系统,其中所述通信信息消息包括路径最大传输大小单元发现包。
条款25.如条款21所述的系统,其中所述端点中的每个端点经由多播消息传输所述通信消息。
条款26.如条款21所述的系统,其中所述端点中的每个端点经由广播消息传输所述通信消息。
条款27.一种在到跨地理区域分布的网络可访问服务的多个接入点处实现的方法,所述方法包括:在接入点处接收来自客户端装置的网络包,所述网络包定址到与服务相关联的网络地址;通过所述接入点基于分布算法的实现方式来选择包括多个端点的数据中心;通过所述接入点基于选择算法的实现方式来从所述多个端点选择要将所述网络包路由到的端点;以及通过所述接入点经由封装的隧道将所接收的包路由到所选择的端点,其中所述多个端点被分配到共享公共封装的隧道的子群组中,并且其中所述子群组中的所述端点中的每个端点被配置来将管理消息传输到所述子群组中的其他端点以用于转发客户端包或提供分段信息中的至少一者。
条款28.如条款27所述的方法,其中所述封装隧道对应于虚拟局域网。
条款29.如条款27所述的方法,其中所述多个端点包括用于使用五元组通信来路由所接收的包的网络部件。
条款30.如条款27所述的方法,其中所述五元组通信包括源IP地址、源端口地址、目的地IP地址、目的地端口地址和协议。
条款31.如条款27所述的方法,其中所述管理消息包括路径最大传输大小单元发现包。
条款32.如条款27所述的方法,其中所述端点中的每个端点经由多播通信传输所述管理消息。
条款33.如条款32所述的方法,其中单独端点基于相关联的子群组来注册到单一多播通信信道。
条款34.如条款27所述的方法,其中所述端点中的每个端点经由广播通信传输所述管理消息。
条款35.如条款34所述的方法,其中所有所述单独端点被注册到广播通信信道并且过滤与所指派的子群组不相关联的信息包。
条款36.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括计算机可执行指令,所述计算机可执行指令在由到跨地理区域分布的网络可访问服务的多个接入点中的每个接入点执行时将每个接入点配置来:从客户端装置接收定址到所述网络可访问服务的网络地址的网络包;基于对应于网络和地理标准与分布标准的乘积的分布算法以及基于消息属性的选择算法的组合来从与所选择的数据中心相关联的所述多个端点选择数据中心和相关端点;并且经由与所指派的子群组相关联的封装的隧道将所变换的包路由到所述端点,其中所述多个端点被分配到共享公共封装的隧道的子群组中,并且其中所述子群组中的所述端点中的每个端点被配置来将消息传输到其他子群组以用于转发客户端包或提供分段信息中的至少一者。
条款37.如条款36所述的非暂时性计算机可读介质,其中所述多个端点包括用于使用五元组通信路由网络包的网络部件。
条款38.如条款36所述的非暂时性计算机可读介质,其中由子群组中的端点交换的消息包括路径最大传输大小单元发现包。
条款39.如条款36所述的非暂时性计算机可读介质,其中单独端点经由多播传输来传输消息。
条款40.如条款39所述的非暂时性计算机可读介质,其中单独端点基于相关联的子群组注册到多播通信信道。
条款41.如条款36所述的非暂时性计算机可读介质,其中单独端点经由广播传输来传输消息。
条款42.如条款41所述的非暂时性计算机可读介质,其中所有所述单独端点被注册到广播通信信道并且过滤与所指派的子群组不相关联的消息。
条款43.一种系统,其包括:多个端点系统,每个端点系统位于不同地理位置中并且包含至少一个端点计算装置,所述至少一个端点计算装置被配置来提供与网络地址相关联的网络可访问服务;至少一个接入点,所述至少一个接入点与所述网络可访问服务相关联,所述至少一个接入点包括处理器并且被配置来:从客户端装置接收发起与所述网络可访问服务的第一传输控制协议(TCP)会话的请求;进行所述第一TCP会话的第一初始化阶段以建立所述TCP会话的上下文信息,所述TCP会话包括至少一个序列号;作为所述第一TCP会话的一部分从所述客户端装置接收数据包;从所述多个端点系统选择要将所述网络包路由到的端点系统;进行第二TCP会话的第二初始化阶段以建立与所选择的端点系统的TCP会话,其中所述第二TCP会话独立于所述第一TCP会话;并且作为所述第二TCP会话的一部分传输所接收的数据包。
条款44.如条款43所述的系统,其中所述第一TCP会话与由所述接入点指派的第一序列号和第二序列号相关联。
条款45.如条款44所述的系统,其中所述第二TCP会话与所述第一序列号和由所选择的端点指派的第三序列号相关联。
条款46.如条款45所述的系统,其中所述接入点被配置来转换所述第三序列号和所述第二序列号。
条款47.如条款43所述的系统,其中所述接入点被配置来进行与区接入点的所述第二TCP会话的所述第二初始化阶段。
条款48.一种在到跨地理区域分布的网络可访问服务的多个接入点中的每个接入点处实现的方法,所述方法包括:在所述多个接入点中的第一接入点处:从客户端装置接收发起与所述网络可访问服务的面向连接的通信会话的请求;进行所述面向连接的通信会话的第一初始化阶段以建立所述面向连接的通信会话的上下文信息;应用选择标准以从用于所述网络可访问服务的多个端点系统选择要将所述网络包路由到的端点系统;进行面向连接的通信会话的第二初始化阶段以建立与所选择的端点系统的面向连接的通信会话的上下文信息;以及将所述数据包和所述面向连接的通信会话的上下文信息传输到所述端点系统。
条款49.如条款48所述的方法,其中所述面向连接的通信会话各自对应于传输控制协议(TCP)会话。
条款50.如条款49所述的方法,其中所述第一TCP会话与由所述接入点指派的第一序列号和第二序列号相关联。
条款51.如条款50所述的方法,其中所述第二TCP会话与所述第一序列号和由所选择的端点指派的第三序列号相关联。
条款52.如条款51所述的方法,其还包括:转换所述第三序列号和所述第二序列号。
条款53.如条款48所述的方法,其中进行面向连接的第二初始化阶段包括直接与所选择的端点进行所述第二初始化阶段。
条款54.如条款48所述的方法,其中进行面向连接的第二初始化阶段包括直接与区接入点进行所述第二初始化阶段。
条款55.如条款48所述的方法,其中所述区接入点进行所述面向连接的通信会话的第三初始化阶段,以建立与所选择的端点的所述面向连接的通信会话的上下文信息。
条款56.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括计算机可执行指令,所述计算机可执行指令在由到跨地理区域分布的网络可访问服务的多个接入点中的每个接入点执行时将每个接入点配置来:从客户端装置接收发起与所述网络可访问服务的第一面向连接的通信会话的请求;进行TCP通信会话的第一初始化阶段以建立所述第一面向连接的通信会话的上下文信息;应用选择标准以从所述网络可访问服务的多个端点系统选择要将所述网络包路由到的端点系统;并且进行独立TCP通信会话的第二初始化阶段以建立与所选择的端点系统的第二面向连接的通信会话的上下文信息。
条款57.如条款56所述的非暂时性计算机可读介质,其中所述第一TCP会话与由所述接入点指派的第一序列号和第二序列号相关联。
条款58.如条款56所述的非暂时性计算机可读介质,其中所述第二TCP会话与所述第一序列号和由所选择的端点指派的第三序列号相关联。
条款59.如条款56所述的非暂时性计算机可读介质,其中指令进一步能够操作来引起所述第一通信会话与所述第二通信会话之间的序列号的转换。
条款60.如条款56所述的非暂时性计算机可读介质,其中进行面向连接的第二初始化阶段包括直接与所选择的端点进行所述第二初始化阶段。
条款61.如条款56所述的非暂时性计算机可读介质,其中进行独立TCP通信的所述第二初始化阶段包括直接与区接入点进行所述第二初始化阶段。
条款62.如条款56所述的非暂时性计算机可读介质,其中指令进一步能够操作来根据所述第二面向连接的通信会话引起所接收的包的传输。
条款63.一种系统,其包括:多个端点系统,每个端点系统位于不同地理位置中并且包含至少一个端点计算装置,所述至少一个端点计算装置被配置来提供与网络地址相关联的网络可访问服务;至少一个接入点,所述至少一个接入点与所述网络可访问服务相关联,所述至少一个接入点中的每个接入点包括处理器并且被配置来:建立第一TCP会话以建立所述至少一个接入点与客户端装置之间的第一TCP会话的上下文信息,所述第一TCP会话包括拥塞控制参数和数据审查参数的说明;从所述多个端点系统选择要将所述网络包路由到的端点系统;并且建立第二TCP会话以建立与所选择的端点系统的TCP会话,其中所述第二TCP会话独立于所述第一TCP会话,并且其中所述第二TCP会话包括拥塞控制参数和数据审查参数的说明。
条款64.如条款63所述的系统,其中所述第一TCP会话和所述第二TCP会话与不同拥塞参数相关联。
条款65.如条款64所述的系统,其中所述拥塞参数对应于来自值的集合的选项,并且其中所述第一TCP会话对应于所述值的集合中的更低值。
条款66.如条款63所述的系统,其中所述第一TCP会话和所述第二TCP会话与不同数据审查参数相关联。
条款67.如条款66所述的系统,其中所述数据审查参数对应于来自值的集合的选项,并且其中所述第二TCP会话对应于所述值的集合中的最大值。
条款68.一种在到跨地理区域分布的网络可访问服务的多个接入点中的每个接入点处实现的方法,所述方法包括:从客户端装置接收发起与所述网络可访问服务的第一传输控制协议(TCP)会话的请求;建立第一TCP会话以建立所述第一TCP会话的上下文信息,所述第一TCP会话包括拥塞控制参数和数据审查参数的说明;从所述多个端点系统选择要将所述网络包路由到的端点系统;以及建立第二TCP会话以建立与所选择的端点系统的第二TCP会话,其中所述第二TCP会话独立于所述第一TCP会话并且其中所述第二TCP会话包括拥塞控制参数和数据审查参数的说明。
条款69.如条款68所述的方法,其中所述第一TCP会话和所述第二TCP会话与不同拥塞参数相关联。
条款70.如条款69所述的方法,其中所述拥塞参数对应于来自值的集合的选项,并且其中所述第一TCP会话对应于所述值的集合中的更低值。
条款71.如条款69所述的方法,其中所述拥塞参数对应于来自值的集合的选项,并且其中所述第二TCP会话对应于所述值的集合中的最高值。
条款72.如条款68所述的方法,其中所述第一TCP会话和所述第二TCP会话与不同数据审查参数相关联。
条款73.如条款72所述的系统,其中所述数据审查参数对应于来自值的集合的选项,并且其中所述第二TCP会话对应于所述值的集合中的最大值。
条款74.如条款72所述的方法,其中所述数据审查参数对应于来自值的集合的选项,并且其中所述第一TCP会话对应于所述值的集合中的最小值。
条款75.如条款68所述的方法,其中所述拥塞参数对应于最大分段大小的说明。
条款76.如条款68所述的方法,其中所述数据审查参数对应于窗口缩放值的说明。
条款77.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包括计算机可执行指令,所述计算机可执行指令在由到跨地理区域分布的网络可访问服务的多个接入点中的每个接入点执行时将每个接入点配置来:从客户端装置接收发起与所述网络可访问服务的第一传输控制协议(TCP)会话的请求;建立第一TCP会话以建立所述TCP会话的上下文信息,所述TCP会话包括拥塞控制参数和数据审查参数的说明;从所述多个端点系统选择要将所述网络包路由到的端点系统;并且建立第二TCP会话以建立与所选择的端点系统的TCP会话,其中所述第二TCP会话独立于所述第一TCP会话并且其中所述第二TCP会话包括拥塞控制参数和数据审查参数的说明。
条款78.如条款77所述的非暂时性计算机可读介质,其中所述第一TCP会话和所述第二TCP会话与不同拥塞参数相关联。
条款79.如条款77所述的非暂时性计算机可读介质,其中所述拥塞参数对应于来自值的集合的选项,并且其中所述第一TCP会话对应于所述值的集合中的最低值。
条款80.如条款77所述的非暂时性计算机可读介质,其中所述第一TCP会话和所述第二TCP会话与不同数据审查参数相关联。
条款81.如条款77所述的非暂时性计算机可读介质,其中所述数据审查参数对应于来自值的集合的选项,并且其中所述第二TCP会话对应于所述值的集合中的最大值。
条款82.如条款77所述的非暂时性计算机可读介质,其中所述数据审查参数对应于来自值的集合的选项,并且其中所述第一TCP会话对应于所述值的集合中的最小值。
Claims (15)
1.一种系统,其包括:
多个端点,每个端点位于不同地理位置中并且包含至少一个服务器计算装置,所述至少一个服务器计算装置被配置来提供与网络地址相关联的网络可访问服务;
多个全球接入点,所述多个全球接入点与所述网络可访问服务相关联,其中所述多个全球接入点中的单独全球接入点包括处理器,与不同地理位置相关联,并且被配置来:
从客户端装置接收定址到所述网络地址的网络包;
基于分布算法的实现方式来选择包括多个端点的数据中心;
基于选择算法的实现方式来从所述多个端点选择要将所述网络包路由到的端点;并且
经由封装的通信将所接收的包路由到所选择的端点。
2.如权利要求1所述的系统,其中所述单独全球接入点被配置来利用任播方法来公告所述网络地址的如能够经由所述接入点到达的网络前缀。
3.如权利要求1所述的系统,其中所述单独全球接入点被配置来基于对应于网络和地理标准与分布标准的乘积的分布算法的实现方式来选择包括多个端点的数据中心。
4.如权利要求1所述的系统,其中所述多个端点被分配到共享公共封装的隧道的子群组中,并且其中所述子群组中的所述端点中的每个端点被配置来将通信消息传输到其他子群组以用于转发客户端包或提供分段信息中的至少一者。
5.如权利要求1所述的系统,其中所述单独全球接入点被配置来基于对应于一致性哈希算法的选择算法的实现方式来从包括在所选择的数据中心中的所述多个端点选择要将所述网络包路由到的端点。
6.如权利要求1所述的系统,其中分布标准对应于一定百分比的网络流量到区的完全分配。
7.如权利要求1所述的系统,其中一致性哈希算法对应于加权会合哈希算法或加权一致性哈希算法中的一者。
8.如权利要求1所述的系统,其中封装隧道对应于虚拟局域网。
9.如权利要求1所述的系统,其中所述多个端点包括用于使用五元组通信来处理子群组消息的网络部件。
10.如权利要求1所述的系统,其中通信信息消息包括路径最大传输大小单元发现包。
11.如权利要求1所述的系统,其中所述单独全球接入点被配置来:
建立第一TCP会话以建立至少一个接入点与客户端装置之间的第一TCP会话的上下文信息,所述第一TCP会话包括拥塞控制参数和数据审查参数的说明;
从多个端点系统选择要将所述网络包路由到的端点系统;并且
建立第二TCP会话以建立与所选择的端点系统的TCP会话,其中所述第二TCP会话独立于所述第一TCP会话,并且其中所述第二TCP会话包括拥塞控制参数和数据审查参数的说明。
12.如权利要求1所述的系统,其中所述单独全球接入点被配置来:
从客户端装置接收发起与所述网络可访问服务的第一传输控制协议(TCP)会话的请求;
进行所述第一TCP会话的第一初始化阶段以建立所述TCP会话的包括至少一个序列号的上下文信息;
作为所述第一TCP会话的一部分从所述客户端装置接收数据包;
从多个端点系统选择要将所述网络包路由到的端点系统;
进行第二TCP会话的第二初始化阶段以建立与所选择的端点系统的TCP会话,其中所述第二TCP会话独立于所述第一TCP会话;并且
作为所述第二TCP会话的一部分传输所接收的数据包。
13.一种在到跨地理区域分布的网络可访问服务的多个接入点处实现的方法,所述方法包括:
在接入点处接收来自客户端装置的网络包,所述网络包定址到与服务相关联的网络地址;
通过所述接入点基于分布算法的实现方式来选择包括多个端点的数据中心;
通过所述接入点基于选择算法的实现方式来从所述多个端点选择要将所述网络包路由到的端点;以及
通过所述接入点经由封装的隧道将所接收的包路由到所选择的端点。
14.如权利要求13所述的方法,其中所述多个端点被分配到共享公共封装的隧道的子群组中,并且其中所述子群组中的所述端点中的每个端点被配置来将管理消息传输到所述子群组中的其他端点以用于转发客户端包或提供分段信息中的至少一者。
15.如权利要求13所述的方法,其中路由所接收的包包括:通过所述接入点经由封装的隧道将所接收的包路由到所选择的端点,其中所述多个端点被分配到共享公共封装的隧道的子群组中,并且其中所述子群组中的所述端点中的每个端点被配置来将管理消息传输到所述子群组中的其他端点以用于转发客户端包或提供分段信息中的至少一者。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310454209.4A CN116489157B (zh) | 2019-09-27 | 2020-09-25 | 分布式端点的管理 |
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/586,510 US11552898B2 (en) | 2019-09-27 | 2019-09-27 | Managing data throughput in a distributed endpoint network |
US16/586,485 | 2019-09-27 | ||
US16/586,641 US10972554B1 (en) | 2019-09-27 | 2019-09-27 | Management of distributed endpoints |
US16/586,641 | 2019-09-27 | ||
US16/586,446 US11451477B2 (en) | 2019-09-27 | 2019-09-27 | Load balanced access to distributed endpoints |
US16/586,485 US11425042B2 (en) | 2019-09-27 | 2019-09-27 | Managing data throughput in a distributed endpoint network |
US16/586,446 | 2019-09-27 | ||
US16/586,510 | 2019-09-27 | ||
PCT/US2020/052667 WO2021062116A1 (en) | 2019-09-27 | 2020-09-25 | Management of distributed endpoints |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310454209.4A Division CN116489157B (zh) | 2019-09-27 | 2020-09-25 | 分布式端点的管理 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114503531A true CN114503531A (zh) | 2022-05-13 |
CN114503531B CN114503531B (zh) | 2023-05-09 |
Family
ID=72802176
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310454209.4A Active CN116489157B (zh) | 2019-09-27 | 2020-09-25 | 分布式端点的管理 |
CN202080066288.6A Active CN114503531B (zh) | 2019-09-27 | 2020-09-25 | 分布式端点的管理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310454209.4A Active CN116489157B (zh) | 2019-09-27 | 2020-09-25 | 分布式端点的管理 |
Country Status (3)
Country | Link |
---|---|
CN (2) | CN116489157B (zh) |
DE (1) | DE112020004639T5 (zh) |
WO (1) | WO2021062116A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11394636B1 (en) | 2020-12-10 | 2022-07-19 | Amazon Technologies, Inc. | Network connection path obfuscation using global access points |
CN116074227B (zh) * | 2022-11-09 | 2024-05-14 | 国网重庆市电力公司电力科学研究院 | 一种基于虚拟化平台的多电力系统测试方法 |
CN116437409B (zh) * | 2023-06-13 | 2023-08-22 | 微网优联科技(成都)有限公司 | 一种无线路由器的信道切换方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064478A1 (en) * | 2004-05-03 | 2006-03-23 | Level 3 Communications, Inc. | Geo-locating load balancing |
US8078755B1 (en) * | 2004-10-29 | 2011-12-13 | Akamai Technologies, Inc. | Load balancing using IPv6 mobility features |
CN107078934A (zh) * | 2014-09-30 | 2017-08-18 | Nicira股份有限公司 | 虚拟分布式桥接模块 |
CN108432189A (zh) * | 2015-12-02 | 2018-08-21 | Nicira股份有限公司 | 多个隧道端点上的负载平衡 |
CN109314666A (zh) * | 2016-04-12 | 2019-02-05 | Nicira股份有限公司 | 用于拥塞感知负载均衡的虚拟隧道端点 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2840432C (en) * | 2003-06-12 | 2017-08-29 | Camiant, Inc. | Dynamic service delivery with topology discovery for communication networks |
US8606922B1 (en) * | 2010-09-27 | 2013-12-10 | Amazon Technologies, Inc. | Dynamic resource zone mapping |
US9742636B2 (en) * | 2013-09-11 | 2017-08-22 | Microsoft Technology Licensing, Llc | Reliable address discovery cache |
-
2020
- 2020-09-25 WO PCT/US2020/052667 patent/WO2021062116A1/en active Application Filing
- 2020-09-25 CN CN202310454209.4A patent/CN116489157B/zh active Active
- 2020-09-25 CN CN202080066288.6A patent/CN114503531B/zh active Active
- 2020-09-25 DE DE112020004639.7T patent/DE112020004639T5/de active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060064478A1 (en) * | 2004-05-03 | 2006-03-23 | Level 3 Communications, Inc. | Geo-locating load balancing |
US8078755B1 (en) * | 2004-10-29 | 2011-12-13 | Akamai Technologies, Inc. | Load balancing using IPv6 mobility features |
CN107078934A (zh) * | 2014-09-30 | 2017-08-18 | Nicira股份有限公司 | 虚拟分布式桥接模块 |
CN108432189A (zh) * | 2015-12-02 | 2018-08-21 | Nicira股份有限公司 | 多个隧道端点上的负载平衡 |
CN109314666A (zh) * | 2016-04-12 | 2019-02-05 | Nicira股份有限公司 | 用于拥塞感知负载均衡的虚拟隧道端点 |
Non-Patent Citations (1)
Title |
---|
HITESH BALLANI等: "Towards a Global IP Anycast Service", 《ACM 2005》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114503531B (zh) | 2023-05-09 |
DE112020004639T5 (de) | 2022-06-30 |
WO2021062116A1 (en) | 2021-04-01 |
CN116489157B (zh) | 2024-03-15 |
CN116489157A (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113826363B (zh) | 全局网络接入点中冗余控制器之间的一致路由公告 | |
US11063819B2 (en) | Managing use of alternative intermediate destination computing nodes for provided computer networks | |
US10972554B1 (en) | Management of distributed endpoints | |
US10826832B2 (en) | Load balanced access to distributed scaling endpoints using global network addresses | |
US11451477B2 (en) | Load balanced access to distributed endpoints | |
US9762494B1 (en) | Flow distribution table for packet flow load balancing | |
US9794116B2 (en) | Managing use of intermediate destination computing nodes for provided computer networks | |
US8972603B1 (en) | Managing encoded multi-part communications | |
US9736016B2 (en) | Managing failure behavior for computing nodes of provided computer networks | |
US11425042B2 (en) | Managing data throughput in a distributed endpoint network | |
US8595378B1 (en) | Managing communications having multiple alternative destinations | |
US6760775B1 (en) | System, method and apparatus for network service load and reliability management | |
CN114503531B (zh) | 分布式端点的管理 | |
US11552898B2 (en) | Managing data throughput in a distributed endpoint network | |
WO2000052906A1 (en) | System, method and apparatus for network service load and reliability management | |
US11431577B1 (en) | Systems and methods for avoiding duplicate endpoint distribution | |
Nelson | Internet-scale reactive routing and mobility |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |