CN106031133B - 基于任播的广域分布式映射和负载平衡系统 - Google Patents

基于任播的广域分布式映射和负载平衡系统 Download PDF

Info

Publication number
CN106031133B
CN106031133B CN201580010789.1A CN201580010789A CN106031133B CN 106031133 B CN106031133 B CN 106031133B CN 201580010789 A CN201580010789 A CN 201580010789A CN 106031133 B CN106031133 B CN 106031133B
Authority
CN
China
Prior art keywords
anycast
server
network address
request
content server
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.)
Active
Application number
CN201580010789.1A
Other languages
English (en)
Other versions
CN106031133A (zh
Inventor
莱昂尼达斯·孔托萨纳西斯
大卫·普雷索托
安库尔·贾殷
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.)
Google LLC
Original Assignee
Google 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
Application filed by Google LLC filed Critical Google LLC
Publication of CN106031133A publication Critical patent/CN106031133A/zh
Application granted granted Critical
Publication of CN106031133B publication Critical patent/CN106031133B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1017Server selection for load balancing based on a round robin mechanism
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1027Persistence of sessions during load balancing

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

本公开提供了用于为网络内的多个服务器提供基于任播的负载平衡的系统、方法和设备。所述网络包括域名系统(DNS)服务器,所述DNS服务器被配置为对从一个或者多个客户端接收到的域名查询作出响应。所述DNS服务器维持与域名相关联的任播IP地址的集合。所述DNS服务器利用从所述任播IP地址的集合中选择的一个或者多个任播IP地址对客户端的请求作出响应。所述DNS服务器还指令多个内容服务器将所述任播IP地址全部通告给所述网络。所述DNS服务器还从所述多个内容服务器中的每个内容服务器接收负载信息,并且基于所述负载信息指令所述多个内容服务器中的一个内容服务器停止通告先前所通告的任播IP地址中的一个或者多个任播IP地址。

Description

基于任播的广域分布式映射和负载平衡系统
相关申请的交叉引用
本申请要求于2014年1月27日提交的题为“AN ANYCAST BASED WIDE AREADISTRIBUTED MAPPING AND LOAD BALANCING SYSTEM(基于任播的广域分布式映射和负载平衡系统)”的美国专利申请No.14/164,925的权益和优先权,其全部内容通过引用并入本文。
技术领域
本公开涉及通信网络领域,尤其涉及通信网络内的分布式映射和负载平衡。
背景技术
在诸如在域名服务器(DNS)系统的一些系统中,可能难以确定发送请求的用户的真实位置。当用户发送DNS请求时,首先将该请求发送至域名解析器。域名解析器进而发送请求至域名服务器以获得与域名相关联的网络地址(或者内容服务器的网络地址)。将该网络地址发送至用户以用于访问期望的内容。对于一些分布式系统,单个地址可以与多个地理上分开的服务器相对应。
发明内容
根据一个方面,本公开中描述的主题可以以一种用于在内容服务器集合上平衡来自域名系统(DNS)服务器的负载的方法来实施。该方法包括:接收对内容服务器的网络地址的请求;利用从多个任播网络地址中选择的网络地址对该请求作出响应;从多个内容服务器中的至少一个内容服务器接收负载信息;以及,基于接收到的负载信息,指令一个或者多个过载内容服务器停止通告多个任播网络地址中的一个或者多个任播网络地址。
根据另一方面,本公开中描述的主题可以以一种用于对在服务器处从网络内的一个或者多个客户端计算机接收到的通信作出响应的方法来实施。该方法包括:从域名系统(DNS)服务器接收多个任播网络地址;将所述多个任播网络地址通告给网络;将负载信息发送至所述DNS服务器;以及,基于从所述DNS服务器接收到的指令,停止通告所述多个任播网络地址中的一个或者多个任播网络地址。
根据另一方面,本公开中描述的主题可以以一种域名系统(DNS)来实施,该DNS系统包括DNS服务器和能够与该DNS服务器进行通信的多个内容服务器。所述DNS服务器包括任播模块和负载平衡模块。所述任播模块被配置为接收对内容服务器的网络地址的请求,并且利用从多个任播网络地址中选择的网络地址对该请求作出响应。所述负载平衡模块通信地耦合至所述任播模块并且被配置为:从多个内容服务器中的至少一个内容服务器接收负载信息,以基于所述负载信息识别过载内容服务器,并且指令所述过载内容服务器停止通告所述多个任播网络地址中的一个或者多个任播网络地址。所述多个内容服务器中的每一个内容服务器包括通告模块和负载监视模块。所述通告模块被配置为:从所述DNS服务器接收用于通告所述多个任播网络地址中的指定任播网络地址的指令,并且通告所述多个任播网络地址中的所述指定任播网络地址。所述负载监视模块被配置为:收集与所述服务器相关联的负载信息,并且将所述负载信息传送至所述DNS服务器。
根据另一方面,本公开中描述的主题可以以一种其上编码有指令的非暂时性计算机可读存储介质来实施,所述指令在由处理器执行时致使所述处理器执行方法。该方法包括:接收对内容服务器的网络地址的请求;利用从多个任播网络地址中选择的网络地址对该请求作出响应;从多个内容服务器中的至少一个内容服务器接收负载信息;以及,基于接收到的负载信息,指令一个或者多个过载内容服务器停止通告所述多个任播网络地址中的一个或者多个任播网络地址。
在下面的附图和描述中将对本说明书中描述的主题的一个或多个实施方式的细节进行陈述。其它特征、方面和优点将根据描述、附图和权利要求变得显而易见。注意,以下附图的相对尺寸可能并未按比例绘制。
附图说明
图1示出了示例域名系统。
图2示出了用于图示基于任播的负载平衡的示例网络。
图3示出了在图2所示的网络内的客户端与服务器之间的网络流量的示例路由。
图4示出了在图2所示的网络内的客户端与服务器之间的网络流量的另一种示例路由。
图5示出了用于保存正在进行的查询的状态的方法。
图6示出了由DNS服务器执行的基于任播的负载平衡的示例过程。
图7示出了由服务器执行的基于任播的负载平衡的示例过程。
图8示出了DNS服务器的示例框图。
图9示出了服务器的示例框图。
在各个附图中类似的附图标记和标志表示类似的元件。
具体实施方式
图1示出了示例域名系统100。具体地,图1示出了分别通信地耦合至多个域名系统(DNS)解析器(DNS解析器-1 104a、DNS解析器-2 104b、DNS解析器-3 104c、DNS解析器-4104d、…、DNS解析器-N 104n)的多个客户端(客户端-1 102a、客户端-2 102b、客户端-3102c、客户端-4 102d、…、客户端-N 102n)。每个DNS解析器104a-104n可以与DNS服务器106进行通信。
该多个客户端102a-102n可以包括能够通过网络进行通信的任何计算装置,诸如,但不限于,个人计算机、膝上型计算机、智能电话、平板计算机等。虽然该多个客户端102a-102n中的每个客户端均图示为与其相关的DNS解析器104a-104n进行通信,但是应该理解的是,该多个客户端102a-102n中的多于一个的客户端可以与相同的DNS解析器进行通信。例如,示出为与DNS解析器-2 104b进行通信的客户端-2 102b可以与DNS解析器-4 104d进行通信。
该多个客户端102a-102n中的每个客户端均可以将域名解析请求发送至其相应的DNS解析器104a-104n。例如,客户端-1 102a将域名地址“www.example.com”发送至DNS解析器-1 104a。DNS解析器104a-104n可以是使用DNS查询从服务器查询关于域名的信息的应用。例如,DNS解析器-1 104a可以向DNS服务器106查询与诸如“www.example.com”的域名地址相关联的内容服务器的IP地址。DNS服务器106进而通过向DNS服务器104a返回与域名地址“www.example.com”相关联的内容服务器的一个或者多个IP地址来作出响应。
在一些实施方式中,DNS解析器104a-104n可以在地理上接近其相应的客户端102a-102n。在一些实施方式中,DNS解析器104a-104n可以驻留在其相应的客户端102a-102n上。在一些其它实施方式中,DNS解析器104a-104n可以驻留在相应的客户端102a-102n的互联网服务提供商的网关上。在一些实施方式中,DNS解析器104a-104n可以递归地查询一个或者多个DNS服务器以获取客户端102a-102n所请求的域名地址的IP地址。在一些其它实施方式中,客户端102a-102n可以直接向DNS服务器106发送查询,而不是经由其关联的DNS解析器104a-104n来引导查询。
如上所述,DNS服务器106对从DNS解析器104a-104n或者从客户端102a-102n接收到的诸如域名地址查询的通信作出响应。DNS服务器106可以通过提供所请求的信息(即,所请求的域名的IP地址)来作出响应,向可以帮助解析所请求的域名的另一服务器提供指针,或者用指示DNS服务器106不具有与该查询相关联的任何信息的错误消息来作出响应。
在一些实施方式中,DNS服务器106可以是针对DNS命名空间的连续部分的授权DNS服务器。如果DNS服务器具有与DNS命名空间的连续部分相关的信息,则DNS服务器可以是针对DNS命名空间的该部分而授权的。例如,在一些实施方式中,DNS服务器106可以是针对“www.example.com”命名空间而授权的。在这些实施方式中,DNS服务器106可以包括在DNS数据库中的资源记录。所述资源记录可以包括与“www.example.com”相关联的一个或者多个web服务器的IP地址。
在一些其它实施方式中,由DNS服务器106返回的IP地址可以是另一DNS服务器的IP地址。在一些这种实施方式中,DNS服务器106可以不是针对所请求的域名的授权服务器,并且可以返回转发器DNS服务器的IP地址,该转发器DNS服务器代表DNS服务器106对域名进行解析。
域名服务器可以基于域名解析器的位置来确定用户的位置,并且发送离域名解析器最近的、可以处理附加负载的内容服务器的网络地址。但是,来自明显不同的地理位置的用户可以使用相同的域名解析器离来解析域名。这意味着,其网络地址已经由域名服务器发送的内容服务器可以不是离用户最近的内容服务器。因此,虽然域名服务器可以能够跨分布式内容服务器集合平衡负载,但是域名服务器可能无法向用户提供最恰当的内容服务器。
任播提供将来自用户的请求引导至最接近用户的内容服务器的能力。利用任播,诸如域名服务器的服务器,用任播地址对来自域名解析器的请求作出响应。此外,地理上分布式内容服务器中的每个内容服务器通告相同的任播地址。因此,当用户将任播地址用作访问内容之处的地址时,中间路由器自动地将用户的请求路由至最近的(或者成本最低的)内容服务器。但是,不管服务器上的负载如何,都会将来自用户的请求路由至相同的最近的内容服务器。换言之,任播不是负载感知的。因此,虽然任播提供了将用户请求引导至恰当的内容服务器的能力,但是任播不具有跨分布式内容服务器集合平衡负载的能力。
在一些实施方式中,DNS服务器106可以维持与域名地址相关联的多个任播IP地址。例如,DNS服务器106可以维持与域名地址“www.example.com”相关联的n个任播IP地址的集合{IP1,IP2,IP3,IP4,…,IPN}。在一些实施方式中,n可以具有大约100至大约200的值。在一些其它实施方式中,n可以具有大约10至大约100的值、大约200至大约300的值、或者甚至大于300的值。对于每个接收到的针对域名地址的查询,DNS服务器106返回从多个任播IP地址中选择的任播IP地址的子集。例如,在一些实施方式中,响应于对从DNS解析器-1104a接收(并且起源于客户端1 102a)的“www.example.com”的查询,DNS服务器106可以返回从n个任播IP地址的集合中选择的一个任播IP地址:任播IP地址IP1。在接收到来自DNS解析器-2 104b的对“www.example.com”的下一个查询之后,DNS服务器106返回任播IP地址IP2。同样,在接收到来自DNS解析器-3 104c、DNS解析器-4 104d、…、DNS解析器-n 104n的对“www.example.com”的随后的查询之后,DNS服务器106分别返回任播IP地址IP3、IP4、…、IPn。
在一些实施方式中,针对每个接收到的查询,DNS服务器106可以返回从与域名相关联的n个任播IP地址中选择的多于一个的任播IP地址。例如,响应于从DNS解析器1 104a接收到的对“www.example.com”的查询,DNS服务器106可以返回从任播IP地址IP1、IP2、IP3、IP4、IP5、…、IPn中选择的任播IP地址IP1、IP2、IP3和IP4。然后,客户端可以从接收到的任播IP地址的子集中选择一个任播IP地址,以从内容服务器请求内容。
在一些实施方式中,针对每个接收到的查询,DNS服务器106可以以循环或者其它结构化的方式从n个任播IP地址的集合中选择任播IP地址的子集,并且用所选择的任播IP地址对该查询作出响应。在一些其它实施方式中,DNS服务器106可以从n个任播IP地址的集合中随机地或者伪随机地选择任播IP地址。
图2示出了用于图示基于任播的负载平衡的示例网络200。具体地,图2示出了经由路由器-1 206a、路由器-2 206b、路由器-3 206c、路由器-4 206d和路由器-5 206e这五个IP路由器进行通信的客户端-1 202a、客户端-2 202b、客户端-3 202c和客户端-4 202d四个客户端和服务器-1 204a、服务器-2 204b和服务器-3 204c三个服务器。网络200还包括可以与这四个客户端和三个服务器进行通信的DNS服务器208。应该理解的是,其它网络可以包括不同数目和配置的客户端、服务器和路由器,并且下面关于示例网络200论述的基于任播的负载平衡可以在这样的其它网络中容易地实施。
DNS服务器208可以与上面关于图1论述的DNS服务器106相似。照此,DNS服务器208可以向请求解析域名地址的客户端提供从任播IP地址的集合中选择的任播IP地址。例如,DNS服务器208可以提供与域名“www.example.com”相关联的任播IP地址。在一些实施方式中,由DNS服务器208提供的任播IP地址可以是web内容服务器的IP地址。在一些其它实施方式中,IP地址可以是分配为代表DNS服务器208解析域名“www.example.com”的其它DNS服务器的IP地址。
DNS服务器208还与服务器-1 204a、服务器-2 204b和服务器-3 204c这三个服务器中的每一个服务器进行通信(为清楚起见,未示出显式连接)。DNS服务器208向服务器1204a、服务器2 204b和服务器3 204c提供与域名相关联的任播IP地址的集合。例如,DNS服务器208可以向服务器-1 204a、服务器-2 204b和服务器-3 204c这三个服务器中的每个服务器提供与域名“www.example.com”相关联的任播IP地址的集合{IP1,IP2,IP3,IP4,…,IPN}。然后,这三个服务器中的每个服务器可以通告任播IP地址的完整集合。在一些实施方式中,DNS服务器208也可以向服务器204a-204c提供与其它域名相关联的多个任播IP地址。
DNS服务器208还可以从每个服务器接收负载指标。该负载指标可以包括,例如,服务器响应时间、点击次数、资源利用率、时延、服务器状态等。如下面详细论述的,基于从每个服务器接收到的负载指标,DNS服务器208可以指令服务器停止通告一个或者多个任播IP地址。
客户端-1 202a、客户端-2 202b、客户端-3 202c和客户端-4 202d这四个客户端可以与上面关于图1论述的客户端-1 102a、客户端-2 102b、客户端-3 102c、客户端-4102d、…、客户端-N 102n的N个客户端相似。此外,假定这四个客户端中的每个客户端均已经从DNS服务器208接收到一个或者多个任播IP地址。例如,假定客户端-1 202a、客户端-2202b、客户端-3 202c和客户端-4 202d已经分别从DNS服务器208接收到任播IP地址IP1、IP2、IP3和IP4。
如上所述,服务器-1 204a、服务器-2 204b和服务器-3 204c这三个服务器中的每个服务器均可以通告任播IP地址的集合。通过通告任播IP地址的集合,每个服务器204a-204c指示其可以接受与所通告的IP地址中的任一IP地址相关联的客户端请求。每个服务器204a-204c还向DNS服务器发送负载指标。如上所述,该负载指标可以包括,例如,服务器响应时间、点击次数、资源利用率、时延、服务器状态等。每个服务器204a-204c还从DNS服务器208接收指令以开始或者停止通告来自任播IP地址的集合的一个或者多个任播IP地址。
路由器206a-206e可以路由在客户端202a-202d、服务器204a-204d与DNS服务器208之间的网络流量。在一些实施方式中,路由器206a-206e可以是IP路由器。照此,路由器206a-206e将在其端口中的一个端口处接收到的IP分组路由至其端口中的另一个端口,该路由部分地基于封闭在接收到的IP分组的报头中的目的IP地址。路由器206a-206e可以从服务器204a-204c中的每个服务器接收通告。基于这些通告,路由器206a-206e可以更新其相应的路由与转发表。在一些实施方式中,路由器206a-206e可以使用边界网关协议(BGP)来构建路由表并且交换路由信息。在一些其它实施方式中,路由器206a-206e可以使用开放式最短路径优先(OSPF)协议来构建路由表并且交换路由信息。
图3示出了在图2所示的网络200内的客户端202a-202d与服务器204a-204c之间的网络流量的示例路由。在图3所示的示例中,假定客户端-1 202a、客户端-2 202b、客户端-3202c、和客户端-4 202d都已经针对其对于与域名“www.example.com”相关联的IP地址的相应请求而分别从DNS服务器208接收到IP地址IP1、IP2、IP3和IP4。此外,假定每个服务器204a-204c将与域名“www.example.com”相关联的任播IP地址的完整集合{IP1,IP2,IP3,IP4,…,IPN}通告至路由器206a-206e。
由于所有的服务器204a-204c都通告任播IP地址的完整集合,所以服务器204a-204c中的每个服务器均可以潜在地对针对所通告的任播IP地址中的任何任播IP地址的客户端请求作出响应。换言之,客户端请求可以由服务器204a-204c中的任意一个服务器潜在地处理。服务器204a-204c中的哪一个服务器接收客户端请求可以取决于由路由器206a-206e实施的路由算法。例如,可以经由路由器-1 206a将源于客户端-1 202a的对地址IP1的请求路由至服务器-1 204a;可以经由路由器-2 206b和路由器-5 206e将源于客户端-2202b的对地址IP2的请求路由至服务器-2 204b;可以经由路由器-3 206c将源于客户端-3202c的对地址IP3的请求路由至服务器-3 204c;并且也可以经由路由器-4 206d和路由器-3 206c将源于客户端-4 202d的对地址IP4的请求路由至服务器-3 204c。
在一些实施方式中,如图3所示,可以采用与至服务器204a-204c的相应请求所采用的路线相同的路线,将服务器204a-204c的对客户端请求的响应返回至客户端。例如,可以经由路由器-1 206a来路由服务器-1 204a对客户端-1 202a的响应。同样,可以经由路由器-5 206e和路由器-2 206b来路由服务器-2 206b对客户端-2 202b的响应。应该理解的是,图3所示的在客户端202a-202d与服务器204a-204c之间的路线仅是示例,而且这些路线可以基于网络200内诸如,带宽、时延等的各种因素动态地变化。
图4示出了在图2所示的网络200内的客户端202a-202d与服务器204a-204c之间的网络流量的另一个示例路由。具体地,图4示出了当服务器3 204c处于过载状况下时的流量的路由。如上所述,服务器204a-204c将其相应的负载信息传递至DNS服务器208。基于接收到的负载信息,DNS服务器208可以确定服务器204a-204c中的一个或者多个服务器可能处于过载状况。在这种情况下,DNS服务器208可以通过指令服务器停止通告先前所通告的任播IP地址的集合中的一个或者多个任播IP地址来试图缓解受影响的服务器上的负载。
例如,参照图4,DNS服务器208可以确定服务器-3 204c处于过载状况下,并且指令服务器-3 204c停止通告任播IP地址IP4。在一些其它实施方式中,任播IP地址IP4可以是在服务器-3 204上引起最高负载的地址。在一些其它实施方式中,DNS服务器208可以指令服务器3 24c停止通告从IP任播地址的集合中随机选择的地址。
由于服务器3 204c停止通告IP4,所以路由器206a-206e可以重新配置其相应的路由或者转发表,使得不再将具有目的地址IP4的IP分组路由至服务器-3 204c。而是可以将具有目的地址IP4的IP分组路由至仍在通告任播地址IP4的不同服务器。例如,参照图4,将来自客户端-4 202d的对先前路由至服务器-3 204c的任播IP地址IP4的请求转而路由至仍在通告任播IP地址IP4的服务器-2 204b。
即使新的客户端将要发送对地址IP4的请求,也不会将这类请求路由至服务器-3204c。例如,图4还示出了正在发送对任播IP地址IP4的请求的第五客户端:客户端-5 202e。即使客户端-5 202e耦合至服务器-3 204c所耦合的相同路由器(路由器3 206c),也不会将源于客户端-5 202e的对IP4的请求路由至服务器-3 204c。反而,在该示例中,将该请求路由至服务器-1 204a。
注意,虽然服务器-3 204c停止通告任播IP地址IP4,但是它仍然可以继续通告其它任播IP地址,例如,地址IP3。因此,就此而言,仍然可以通过服务器-3 204c接收和处理源于客户端-3 202c或者任何其它客户端的对地址IP3的请求。
由于不再通过服务器-3 204c接收先前由服务器-3 204c处理的对任播IP地址IP4的请求,所以可以减少服务器-3 204c上的负载。通过这种方式,DNS服务器208可以通过指令服务器-3 204c停止通告从任播IP地址的集合中选择的一个或者多个任播IP地址来调控服务器-3 204c上的负载。例如,假定服务器-3 204c通告20个任播IP地址。还假定服务器-3104c处于过载状况,并且该服务器上的总负载均匀分布在与这20个任播IP地址中的每个任播IP地址相关联的正在处理的请求上。如果该服务器将要停止通告20个任播IP地址中的2个任播IP地址,而其余服务器204继续通告全部20个任播IP地址,则与这2个任播IP地址相关联的将要以其他方式引导至服务器-3 204c的通信将会转而被引导至继续通告所述地址的其它服务器204。这意味着,服务器-3 204c将会少处理大约10%的通信。因此,该服务器上的总负载可以潜在地减少大约10%。因此,通过指令服务器停止通告一个或者多个任播IP地址,将该服务器上的负载分布至其它服务器。同样,DNS服务器208可以监视网络200内其它服务器204a-204b上的负载状况,并且可以基于其相应的负载状况指令这些服务器中的一个或者多个服务器停止通告一个或者多个任播IP地址。
DNS服务器208可以继续监视服务器-3 204c上的负载状况,以确定当前的负载状况是否可以允许服务器-3 204c重新通告任播IP地址IP4。例如,如果诸如但不限于带宽和时延的负载参数跨过预定阈值,则DNS服务器208可以指令服务器-3 204c重新通告IP4。在接收到来自服务器-3 204c的通告之后,路由器206a-206e可以重新配置其路由与转发表,使得可以将对地址IP4的请求再次路由至服务器-3 204c。
在一些实施方式中,服务器204a-204c可以基于先前与客户端的通信对依赖于由相应服务器所存储的状态的与相同客户端的通信作出响应。例如,如果服务器-3 204c接收任播地址IP4上的TCP/IP通信,则服务器-3 204c将会在对该通信作出响应的同时维持TCP状态。如图4所示,当服务器-3 204c因过载状况而停止通告地址IP4时,将从客户端-4 202d寻址至IP4的分组路由至向前一个服务器-2 204b。但是,服务器-2 204b不包括关于客户端-4 202d的通信的任何状态信息。因此,当将分组路由至服务器-2 204b时,由客户端-4202d建立的与服务器-3 204c的任何状态依赖事务都会丢失。
图5示出了用于保存正在进行的通信或者事务的状态的方法。具体地,图5示出了图4所示的网络200的一部分,其中,服务器-3 204c已经停止通告任播IP地址IP4,并且将从客户端-4 202d寻址至IP4的请求路由至服务器2 204b。服务器-2 404b维持正在由服务器204a-204c处理的所有请求的状态表。当由服务器-2 204b接收到来自客户端-4 202d的重新路由的请求时,服务器-2 204b查找状态表以确定接收到的请求是否是新的、是否与在服务器-2 204b处目前正在进行的事务相对应、或者是否与最近已经停止通告地址的不同服务器相关联。
状态表可以是由这三个服务器204a-204c中的每个服务器来维持。在一些实施方式中,为了维持状态表,这三个服务器204a-204c中的每个服务器可以将与其相应客户端正在进行的事务的状态与标识信息传递至所有其它服务器。在接收到这些信息之后,这三个服务器204a-204c中的每个服务器可以更新其相应的状态表。在一些实施方式中,当服务器停止通告一个或者多个任播IP地址时,该服务器可以将该一个或者多个任播IP地址传递至其它服务器。在一些实施方式中,每个服务器可以将与客户端的正在进行的相应事务的信息定期地发送至所有其它服务器。在一些其它实施方式中,响应于被指令停止通告一个或者多个任播IP地址,服务器可以发送与使用这些任播IP地址的正在进行的事务相关联的状态信息。
由于从客户端-4 202d接收到的请求与服务器-3 204c相关联,所以服务器-2204b将来自客户端-4 202d的请求进行封装,并且将封装后的请求转发至服务器-3 204c。在一些实施方式中,服务器-2 204b可以在与服务器-3 204c相关联的唯一IP地址处将封装后的请求发送至服务器-3 204c。在一些实施方式中,该唯一IP地址可以是服务器-3 204c用于发送和接收服务器维持或者管理信息的IP地址。服务器-3 204c检查封装后的请求,并且查找自己的表以确定封装后的请求是客户端-4 202d与服务器-3 204c之间的正在进行的事务的一部分。然后,服务器-3 204c可以处理该请求并且将响应返回至客户端-4 202d。
在一些实施方式中,服务器-3 204c可以将该响应进行封装并且将封装后的响应返回至服务器-2 204b,而服务器-2 204b进而将该响应转发至客户端-4 202d。正在进行的请求与响应的这种封装交换可以继续进行,直到作为请求与响应的一部分的事务由客户端-4 202d或者服务器-3 204c终止。
因此,不管是否能够接收到寻址至任播地址IP4的任意分组,服务器-3 204c仍可以处理与客户端4 202d的正在进行的事务。
图6示出了由DNS服务器执行的基于任播的负载平衡的示例过程600。在一些实施方式中,图6所示的过程600可以例如由图1所示的DNS服务器108来执行。在一些其它实施方式中,过程600可以例如由图2-5所示的DNS服务器208来执行。过程600包括接收对服务器的网络地址的请求(步骤602);利用从多个任播地址中选择的一个或者多个任播网络地址对该请求作出响应(步骤604);从至少一个服务器接收负载信息(步骤606);以及,基于接收到的负载信息,指令服务器中的一个或者多个服务器停止通告该多个任播地址中的一个或者多个任播地址(步骤608)。
过程600包括接收对服务器的网络地址的请求(步骤602)。上面已经关于图1对该过程步骤的一个示例进行了论述。具体地,DNS服务器108经由DNS解析器-1 104a从客户端-1 102a接收对与域名地址“www.example.com”相关联的网络地址的请求。过程600还包括利用从多个任播地址中选择的一个或者多个任播网络地址对该请求作出响应(步骤604)。上面已经关于图1对该步骤的一个示例进行了论述。具体地,图1示出了DNS服务器106利用任播地址IP1对从客户端-1 102a接收到的请求作出响应。任播地址IP1可以从N个任播IP地址的集合{IPl,IP2,IP3,IP4,…,IPN}中选出。在一些实施方式中,DNS服务器106可以利用从N个任播IP地址的集合中选择的多于一个的任播地址来作出响应。
过程600还包括从至少一个服务器接收负载信息(步骤606)。上面已经关于图3-5对该步骤的一个示例进行了论述。例如,图3-5中的DNS服务器208从三个服务器204a-204b中的每个服务器接收负载信息。如上所述,负载信息可以包括若干个指标,诸如但不限于,服务器响应时间、点击次数、资源利用率、时延、服务器状态等。DNS服务器208可以将从服务器接收到的负载信息进行比较,并且将这些负载信息与预定阈值值进行比较。如果接收到的负载信息跨过了阈值,则DNS服务器208可以确定服务器处于过载状况下。
过程600还包括基于接收到的负载信息,指令服务器中的一个或者多个服务器停止通告该多个任播地址中的一个或者多个任播地址(步骤608)。上面已经关于图4对该过程步骤的一个示例进行了论述。例如,在确定服务器-3 204c处于过载状况下之后,DNS服务器208指令服务器-3 204c停止通告正在由服务器-3 204c通告的N个任播地址的集合{IPl,IP2,IP3,IP4,…,IPN}中的任播地址IP4。
图7示出了由服务器执行的基于任播的负载平衡的示例过程700。在一些实施方式中,图7所示的过程700可以由图3-5所示的服务器204a-204c来执行。过程700包括通告多个任播地址(步骤702)、将负载信息传递至服务器(步骤704)、停止通告由该服务器指示的一个或者多个任播地址(步骤706)、以及,继续将负载信息传送至该服务器(步骤708)。
过程700包括通告多个任播地址(步骤702)。上面已经关于图3对该过程步骤的一个示例进行了论述。例如,图3示出了三个服务器204a-204c中的每个服务器通告N个任播IP地址的集合{IPl,IP2,IP3,IP4,…,IPN}。通过通告N个任播IP地址的集合,服务器204a-204c向路由器206a-206e指示这三个服务器204a-204c中的每个服务器可以接受寻址至N个任播IP地址中的任何任播IP地址的客户端请求。
过程700还包括将负载信息传递至服务器(步骤704)。上面已经关于图4-5对该过程步骤的一个示例进行了论述。例如,图4所示的三个服务器204a-204c中的每个服务器将负载信息发送至DNS服务器208。该负载信息可以包括负载指标,诸如,但不限于,服务器响应时间、点击次数、资源利用率、时延、服务器状态等。
过程700还包括停止通告由服务器指示的一个或者多个任播地址(步骤706)。上面已经关于图4-5对该过程步骤的一个示例进行了论述。例如,如图4所示,在接收到来自DNS服务器208的指令之后,服务器-3 204c停止通告任播地址IP4。通过停止通告任播地址IP4,服务器-3 204c指示服务器-3 204c不再接受寻址至任播地址IP4的请求。这意味着,转而将先前由服务器-3 204c处理的寻址至IP4的请求(实际上为分组)路由至不同服务器。
过程700还包括继续将负载信息传递至服务器(步骤708)。上面已经关于图4-5对该过程步骤的一个示例进行了论述。例如,如上所述,甚至在停止通告任播地址IP4之后,服务器-3 204c继续将负载信息发送至DNS服务器208。如果DNS服务器基于当前接收到的负载信息确定服务器-3 204c不再是过载的,则服务器-3 204c可以接收来自DNS服务器208的指令以开始重新通告任播地址IP4。通过这种方式,服务器-3 204c可以继续接受和响应寻址至任播地址IP4的请求。
图8示出了DNS服务器800的示例框图。在一些实施方式中,DNS服务器800可以用作,例如,图1所示的DNS服务器106和/或图2-4所示的DNS服务器208。在一些实施方式中,DNS服务器800可以用于执行图6所示的示例过程600。
DNS服务器800包括处理器802、存储器804和网络接口806。处理器802可以包括处理指令的任何逻辑电路,诸如,但不限于,微处理器、微控制器、实施为专用集成电路(ASIC)、现场可编程门阵列(FPGA)等的可编程逻辑阵列等。在一些实施方式中,处理器802可以包括多个处理器。处理器802可以具有多处理、多任务、和多线程的能力,并且通常能够同时执行多于一个的应用。处理器802可以经由数据与控制总线(未示出)与存储器804和网络接口806进行通信。
存储器804可以是能够存储计算机可读数据的任何装置。存储器804可以是具有固定存储的装置或者用于读取可移动存储介质的装置。示例包括所有形式的非易失性存储器、介质和存储器装置、半导体存储器装置(例如,EPROM、EEPROM、和闪速存储器装置)、磁盘、磁光盘、和光盘(例如,CD ROM、DVD-ROM、和盘)。DNS服务器800可以具有任意数目的实施存储器804的装置。在一些实施方式中,存储器804可以包括独立磁盘冗余阵列(RAID)以提高容错性、可用性、和可靠性。
DNS服务器800可以利用网络接口806通过网络与其它计算装置通信数据。例如,网络接口可以用于与图1所示的客户端102a-102n和/或DNS解析器104a-104n进行通信。DNS服务器800还可以利用网络接口804与图2-5所示的服务器201a-201c进行通信。网络接口806可以包括一个或者多个网络端口以便经由网络电缆物理连接至一个或者多个网络。网络接口806还包括用于在网络端口与处理器802之间通信数据并且总体控制网络接口806的操作的接口控制器。在一些实施方式中,网络接口804可以实施开放式系统互联(OSI)网络模型的若干网络层。例如,网络接口可以包括具有所指派的以太网地址的以太网端口以用于实施数据链路层。
在一些实施方式中,存储器804可以存储DNS数据库808。DNS数据库808可以与上面关于图1所示的DNS服务器106论述的DNS数据库相似。例如,DNS数据库808可以包括具有与诸如“www.example.com”的域名相关联的一个或者多个web服务器的IP地址的资源记录。在一些其它实施方式中,DNS数据库808可以包括能够代表DNS服务器800处理DNS请求的其它DNS服务器的IP地址。在一些实施方式中,在DNS数据库中存储的IP地址可以是任播IP地址。
存储器804可以存储由处理器802执行的若干应用。例如,存储器804可以包括用于执行与域名系统相关的各种功能的DNS应用810。具体地,DNS应用可以包括任播模块812,该任播模块812可以由处理器802执行以向客户端(诸如,图1所示的102a-102n)提供从在DNS数据库808中存储的多个任播地址中选择的一个或者多个任播IP地址。DNS应用810还可以包括负载平衡模块814。负载平衡模块814可以由处理器802执行以处理从服务器(诸如,图2-5所示的服务器204a-204c)接收到的负载信息并且关于通告任播IP地址将指令发送至服务器。例如,负载平衡模块814可以包括用于传递至超载服务器以停止通告一个或者多个任播IP地址的指令。
图9包括服务器900的示例框图。在一些实施方式中,服务器900可以用作,例如,图2-5所示的内容服务器204a-204c。在一些实施方式中,服务器900可以用于执行图7所示的示例过程700。
服务器900可以包括处理器902、存储器904、和网络接口906。在一些实施方式中,处理器902、存储器904、和网络接口906可以通过与上面分别关于图8所示的处理器802、存储器804、和网络接口806论述的方式相似的方式来实施。
存储器904可以存储服务器数据库908,服务器数据库908可以包括例如与一个或者多个域名相关联的多个任播IP地址。存储器904还可以包括状态表910,状态表910可以包括正在由参与域名系统的服务器处理的正在进行的事务的状态信息。
存储器904还可以包括由处理器902执行的若干应用。例如,存储器904可以包括服务器应用912,服务器应用912可以由处理器902执行以执行与域名系统相关的各种服务器操作。具体地,服务器应用912可以包括通告模块914和负载监视模块916。通告模块914可以由处理器902执行以确定需要通告服务器数据库908中存储的任播IP地址中的哪些任播IP地址。在一些实施方式中,通告模块914可以用于与图8所示的DNS服务器800进行通信以接收指示任播IP地址中的哪些任播IP地址要被通告或者不要被通告的指令。
负载监视模块916可以由处理器902执行以确定服务器上的负载信息并且将负载信息传递至DNS服务器。例如,负载监视模块916可以收集信息,诸如,但不限于,服务器响应时间、点击次数、资源利用率、时延等。由负载监视模块916收集的负载信息可以传递至诸如例如图8所示的DNS服务器800的DNS服务器。在一些实施方式中,负载监视模块916可以包括指令,这些指令用于定期地收集负载信息或者在由DNS服务器请求时收集负载信息。
对本领域技术人员而言,本公开中描述的实施方式的各种修改可以是显而易见的,并且,在不脱离本公开的精神或者范围的情况下,可以将本文中定义的通用原理应用于其它实施方式。因此,权利要求书并不旨在受限于本文中所示的实施方式,而是应该符合与本公开、本文中公开的原理和新颖特征一致的最大范围。

Claims (20)

1.一种用于平衡来自域名系统DNS服务器的内容服务器集合上的负载的方法,包括:
在DNS服务器处,接收对与域名相关联的内容服务器的网络地址的请求;
利用从多个与所述域名相关联的任播网络地址中选择的网络地址,对所述请求作出响应;
在所述DNS服务器处,从多个与所述域名相关联的内容服务器中的至少一个内容服务器接收负载信息;以及
基于接收到的负载信息,由所述DNS服务器指令所述多个内容服务器中的一个或者多个过载内容服务器停止通告所述多个任播网络地址中的一个或者多个任播网络地址。
2.根据权利要求1所述的方法,其中,利用从所述多个任播网络地址中选择的所述网络地址对所述请求作出响应包括:以循环的方式从所述多个任播网络地址中选择所述网络地址。
3.根据权利要求1所述的方法,其中,利用从所述多个任播网络地址中选择的所述网络地址对所述请求作出响应包括:从所述多个任播网络地址中随机选择所述网络地址。
4.根据权利要求1所述的方法,进一步包括:指令所述多个内容服务器中的剩余内容服务器将接收到的正在进行的请求转发至所述一个或者多个过载内容服务器,所述正在进行的请求与所述一个或者多个过载内容服务器相关联。
5.根据权利要求1所述的方法,进一步包括:从所述过载内容服务器接收附加负载信息,并且基于所述附加负载信息指令所述过载内容服务器继续通告所述多个任播网络地址中的所述一个或者多个任播网络地址。
6.一种用于对在内容服务器处从网络内的一个或者多个客户端计算机接收到的通信作出响应的方法,包括:
在内容服务器处,从域名系统DNS服务器接收多个与域名相关联的任播网络地址;
将所述多个任播网络地址通告给网络;
将负载信息发送至所述DNS服务器;以及
从所述DNS服务器接收指令,所述指令用于停止通告所述多个任播网络地址中的任播网络地址。
7.根据权利要求6所述的方法,进一步包括:
在所述内容服务器处,从客户端接收请求,所述请求寻址至所述多个任播网络地址中的所通告的一个任播网络地址;
维持与所述请求相关联的状态信息;以及
将所述状态信息传递至第二内容服务器,所述第二内容服务器被配置为通告所述任播网络地址。
8.根据权利要求6所述的方法,进一步包括:
在所述内容服务器处,从第二客户端接收请求,所述请求寻址至所述多个任播网络地址中的所述任播网络地址;
对所述请求进行封装;以及
基于与从第二内容服务器接收到的所述请求相关联的状态信息,将所封装的请求转发至所述第二内容服务器。
9.根据权利要求8所述的方法,进一步包括:确定所述请求是所述第二客户端与所述第二内容服务器之间的正在进行的事务的一部分。
10.根据权利要求8所述的方法,进一步包括:
在所述内容服务器处,响应于所封装的请求,从所述第二内容服务器接收通信;以及
将所述通信转发至所述第二客户端。
11.一种域名系统DNS,包括:
DNS服务器,所述DNS服务器包括:
任播模块,所述任播模块被配置为:
接受对与域名相关联的内容服务器的网络地址的请求,以及
利用从多个与所述域名相关联的任播网络地址中选择的网络地址对所述请求作出响应,
负载平衡模块,所述负载平衡模块通信地耦合至所述任播模块,所述负载平衡模块被配置为:
从多个与所述域名相关联的内容服务器中的至少一个内容服务器接收负载信息,以基于所述负载信息识别过载内容服务器,以及
指令所述过载内容服务器停止通告所述多个任播网络地址中的一个或者多个任播网络地址,以及
多个内容服务器,所述多个内容服务器能够与所述DNS服务器进行通信,所述多个内容服务器中的每一个内容服务器包括:
通告模块,所述通告模块被配置为:
从所述DNS服务器接收指令,所述指令用于通告所述多个任播网络地址中的任播网络地址,以及
通告所述任播网络地址,以及
负载监视模块,所述负载监视模块被配置为:
收集与所述内容服务器相关联的负载信息,以及
将所述负载信息传递至所述DNS服务器。
12.根据权利要求11所述的系统,其中,所述任播模块进一步被配置为:以循环的方式从所述多个任播网络地址中选择所述网络地址。
13.根据权利要求11所述的系统,其中,所述负载平衡模块进一步被配置为:从所述过载内容服务器接收附加负载信息,并且指令所述过载内容服务器继续通告所述多个任播网络地址中的所述一个或者多个任播网络地址。
14.根据权利要求11所述的系统,其中,所述多个内容服务器中的每一个内容服务器进一步被配置为:从客户端接收请求,所述请求寻址至所述任播网络地址,
维持与所述请求相关联的状态信息,以及
将所述状态信息传递至第二内容服务器,所述第二内容服务器被配置为通告所述任播网络地址。
15.根据权利要求11所述的系统,其中,所述多个内容服务器中的每一个内容服务器进一步被配置为:
从客户端接收请求,所述请求寻址至所述任播网络地址;
对所述请求进行封装;以及
基于与从第二内容服务器接收到的所述请求相关联的状态信息,将所封装的请求转发至所述第二内容服务器。
16.一种其上存储有指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时,致使所述处理器执行方法,所述方法包括:
在DNS服务器处,接收对与域名相关联的内容服务器的网络地址的请求;
利用从多个与所述域名相关联的任播网络地址中选择的网络地址,对所述请求作出响应;
在所述DNS服务器处,从多个与所述域名相关联的内容服务器中的至少一个内容服务器接收负载信息;以及
基于接收到的负载信息,由所述DNS服务器指令所述多个内容服务器中的一个或者多个过载内容服务器停止通告所述多个任播网络地址中的一个或者多个任播网络地址。
17.根据权利要求16所述的非暂时性计算机可读存储介质,其中,利用从所述多个任播网络地址中选择的所述网络地址对所述请求作出响应包括:以循环的方式从所述多个任播网络地址中选择所述网络地址。
18.根据权利要求16所述的非暂时性计算机可读存储介质,其中,利用从所述多个任播网络地址中选择的所述网络地址对所述请求作出响应包括:从所述多个任播网络地址中随机选择所述网络地址。
19.根据权利要求16所述的非暂时性计算机可读存储介质,进一步包括:指令所述多个内容服务器中的剩余内容服务器将接收到的正在进行的请求转发至所述一个或者多个过载内容服务器,所述正在进行的请求与所述一个或者多个过载内容服务器相关联。
20.根据权利要求16所述的非暂时性计算机可读存储介质,进一步包括:从所述过载内容服务器接收附加负载信息,并且基于所述附加负载信息,指令所述过载内容服务器继续通告所述多个任播网络地址中的所述一个或者多个任播网络地址。
CN201580010789.1A 2014-01-27 2015-01-13 基于任播的广域分布式映射和负载平衡系统 Active CN106031133B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/164,925 2014-01-27
US14/164,925 US9467506B2 (en) 2014-01-27 2014-01-27 Anycast based, wide area distributed mapping and load balancing system
PCT/US2015/011213 WO2015112380A1 (en) 2014-01-27 2015-01-13 An anycast based, wide area distributed mapping and load balancing system

Publications (2)

Publication Number Publication Date
CN106031133A CN106031133A (zh) 2016-10-12
CN106031133B true CN106031133B (zh) 2019-08-16

Family

ID=52464563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580010789.1A Active CN106031133B (zh) 2014-01-27 2015-01-13 基于任播的广域分布式映射和负载平衡系统

Country Status (6)

Country Link
US (1) US9467506B2 (zh)
EP (2) EP3100438B1 (zh)
CN (1) CN106031133B (zh)
DE (1) DE202015009264U1 (zh)
DK (2) DK3591944T3 (zh)
WO (1) WO2015112380A1 (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9973590B2 (en) * 2011-11-26 2018-05-15 Bing Wu User identity differentiated DNS resolution
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9923959B2 (en) 2014-06-05 2018-03-20 Microsoft Technology Licensing, Llc Load balancing with layered edge servers
CA2965852C (en) 2014-10-27 2021-08-31 Level 3 Communications, Llc Content delivery systems and methods
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
JP6820320B2 (ja) * 2015-09-04 2021-01-27 ダイナミック・ネットワーク・サービシーズ・インコーポレイテッドDynamic Network Services, Inc. リアルタイムユーザ監視データを用いてリアルタイムトラフィック誘導を行うための方法および装置
US10178065B2 (en) * 2015-10-01 2019-01-08 Fastly Inc. Enhanced domain name translation in content delivery networks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
CA3021844A1 (en) 2016-04-22 2017-10-26 Level 3 Communications, Llc Anycast routing techniques in a network
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10992536B2 (en) 2016-08-15 2021-04-27 At&T Intellectual Property I, L.P. Method and apparatus to control anycast traffic using a software defined network controller
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
WO2018107382A1 (zh) 2016-12-14 2018-06-21 华为技术有限公司 分布式负载均衡系统、健康检查方法和服务节点
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
CN109104506B (zh) * 2017-06-20 2021-05-14 腾讯科技(深圳)有限公司 域名解析规则的确定方法、装置和计算机可读存储介质
WO2019055290A1 (en) 2017-09-12 2019-03-21 Northwestern University BLOCK CHAIN DISTRIBUTION NETWORK
US10742593B1 (en) * 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
CN107682273A (zh) * 2017-10-20 2018-02-09 赛尔网络有限公司 支持Anycast的DNSSEC部署方法及系统
US10567333B2 (en) * 2017-11-01 2020-02-18 Verizon Digital Media Services Inc. Deterministic traffic management in an anycast network
US10462233B2 (en) * 2018-01-23 2019-10-29 Charter Communications Operating, Llc Protocol for anycast based discovery of local resources
US10979387B2 (en) * 2018-09-04 2021-04-13 Level 3 Communications, Llc Systems and methods for utilization of anycast techniques in a DNS architecture
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US10645008B1 (en) 2018-12-06 2020-05-05 Verizon Digital Media Services Inc. Predictive Anycast traffic shaping
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN109862115B (zh) * 2019-03-13 2022-09-16 网宿科技股份有限公司 web请求的自动化处理方法及BGP路由系统
US11159607B2 (en) * 2020-03-03 2021-10-26 International Business Machines Corporation Management for a load balancer cluster
US11128695B1 (en) * 2020-09-16 2021-09-21 Cloudflare, Inc. Traffic load balancing between a plurality of points of presence of a cloud computing infrastructure
US11405318B2 (en) 2020-11-04 2022-08-02 Cisco Technology, Inc. Collaborative traffic balancer
US11153265B1 (en) * 2020-12-09 2021-10-19 Cloudflare, Inc. Decoupling of IP address bindings and use in a distributed cloud computing network
US20220329511A1 (en) * 2021-04-07 2022-10-13 Level 3 Communications, Llc Systems and Methods for Restricting the Routing Scope of an Anycast Service
US11997013B2 (en) * 2021-06-24 2024-05-28 Level 3 Communications, Llc Traffic monitoring and orchestration
US11706292B1 (en) * 2022-03-15 2023-07-18 Disney Enterprises, Inc. Local preference in anycast CDN routing
CN117439994A (zh) * 2022-07-14 2024-01-23 中国电信股份有限公司 连接保持方法、客户端设备、服务器、路由器和通信系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2839218B2 (ja) 1992-03-12 1998-12-16 日本製紙株式会社 バインダー樹脂組成物の製造方法
US6415323B1 (en) 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
AU1786501A (en) 1999-11-23 2001-06-04 Infolibria, Inc. Optimal request routing by exploiting packet routers topology information
US7574499B1 (en) 2000-07-19 2009-08-11 Akamai Technologies, Inc. Global traffic management system using IP anycast routing and dynamic load-balancing
US7346676B1 (en) * 2000-07-19 2008-03-18 Akamai Technologies, Inc. Load balancing service
US7155515B1 (en) * 2001-02-06 2006-12-26 Microsoft Corporation Distributed load balancing for single entry-point systems
US20040107234A1 (en) 2001-03-02 2004-06-03 Jarno Rajahalme Addressing method and system for using an anycast address
US20030079027A1 (en) * 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20030182410A1 (en) 2002-03-20 2003-09-25 Sapna Balan Method and apparatus for determination of optimum path routing
KR20080008935A (ko) * 2006-07-18 2008-01-24 엘지전자 주식회사 이동 통신 시스템에서 ip 주소 선 설정 방법
US20090054091A1 (en) * 2007-02-21 2009-02-26 Van Wijk Jacques Methods and Systems for Consolidated Notifications of Updated Personal Information Manager Data
US20090172192A1 (en) 2007-12-28 2009-07-02 Christian Michael F Mapless Global Traffic Load Balancing Via Anycast
US8521879B1 (en) 2008-03-11 2013-08-27 United Services Automobile Assocation (USAA) Systems and methods for a load balanced interior gateway protocol intranet
US8612622B2 (en) 2009-10-02 2013-12-17 Limelight Networks, Inc. Real-time message queuing for a processing ring
US8607014B2 (en) 2009-12-22 2013-12-10 At&T Intellectual Property I, L.P. Multi-autonomous system anycast content delivery network
US8892646B2 (en) * 2010-08-25 2014-11-18 Damaka, Inc. System and method for shared session appearance in a hybrid peer-to-peer environment
US20110314119A1 (en) 2010-06-18 2011-12-22 Deepak Kakadia Massively scalable multilayered load balancing based on integrated control and data plane

Also Published As

Publication number Publication date
EP3100438B1 (en) 2019-09-25
DK3591944T3 (da) 2021-05-25
WO2015112380A1 (en) 2015-07-30
DK3100438T3 (da) 2020-01-13
EP3591944A1 (en) 2020-01-08
EP3591944B1 (en) 2021-03-10
CN106031133A (zh) 2016-10-12
US20150215388A1 (en) 2015-07-30
DE202015009264U1 (de) 2017-02-15
US9467506B2 (en) 2016-10-11
EP3100438A1 (en) 2016-12-07

Similar Documents

Publication Publication Date Title
CN106031133B (zh) 基于任播的广域分布式映射和负载平衡系统
US11637906B2 (en) Private service endpoints in isolated virtual networks
US11831600B2 (en) Domain name system operations implemented using scalable virtual traffic hub
US11882017B2 (en) Automated route propagation among networks attached to scalable virtual traffic hubs
US10742446B2 (en) Interconnecting isolated networks with overlapping address ranges via scalable virtual traffic hubs
US10797989B2 (en) Scalable virtual traffic hub interconnecting isolated networks
US10698739B2 (en) Multitenant access to multiple desktops on host machine partitions in a service provider network
US8266204B2 (en) Direct addressability and direct server return
US10785146B2 (en) Scalable cell-based packet processing service using client-provided decision metadata
US11057459B2 (en) Datapath-driven fully distributed east-west application load balancer
CN109995842B (zh) 一种用于分布式服务器集群的分组方法及装置
CN109525684A (zh) 报文转发方法和装置
US9641611B2 (en) Logical interface encoding
CN106027356A (zh) 一种隧道标识的转换方法及装置
US7711780B1 (en) Method for distributed end-to-end dynamic horizontal scalability
US20240187332A1 (en) Automated route propagation among networks attached to scalable virtual traffic hubs
Ullah TCP/IP Load Balancing and High Availability

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant