CN117099358A - 内容分发网络的改进的任播路由技术 - Google Patents
内容分发网络的改进的任播路由技术 Download PDFInfo
- Publication number
- CN117099358A CN117099358A CN202280026615.4A CN202280026615A CN117099358A CN 117099358 A CN117099358 A CN 117099358A CN 202280026615 A CN202280026615 A CN 202280026615A CN 117099358 A CN117099358 A CN 117099358A
- Authority
- CN
- China
- Prior art keywords
- anycast
- unique
- prefix
- anycast prefix
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000003860 storage Methods 0.000 claims description 19
- 238000009826 distribution Methods 0.000 claims description 14
- 230000001413 cellular effect Effects 0.000 claims description 7
- 238000012423 maintenance Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000009466 transformation Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- 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
- 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
-
- 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
-
- 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
- H04L67/1004—Server selection for load balancing
- H04L67/1025—Dynamic adaptation of the criteria on which the server selection is based
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/668—Internet protocol [IP] address subnets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/69—Types of network addresses using geographic information, e.g. room number
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文所公开的系统实施了一种改进的任播路由技术,该技术使得内容分发网络(CDN)能够控制各个入网点(PoP)上的负载,但也维持了将本应发送至离线PoP的请求自动地重定向至另一个PoP的能力。CDN能够通过配置要路由至特定PoP的内容请求来控制PoP上的负载。比如,CDN被配置成将有区别的IP地址的子网分配给PoP组中的每个PoP,使得每个PoP可公告唯一任播前缀。CDN可控制何时以及如何公告这些唯一任播前缀,以平衡PoP之间的负载。
Description
背景技术
内容分发网络(CDN),也可称为内容分布网络,是例如在不同数据中心中配置的服务器的地理分布式网络。随着互联网的发展和对网络内容的需求,CDN已扩展到分发各种类型的内容,包括web对象(例如,文本、图形和脚本)、可下载对象(例如,操作系统更新、媒体文件、软件、文档等)、应用程序(“app”)、直播流媒体、点播流媒体、社交媒体数据等等。
内容所有者,诸如媒体公司和电子商务供应商,经常与CDN的运营商合作,将其内容分发给终端用户或终端用户设备。CDN运营商的目标中的一个是通过相对于可能请求内容的终端用户设备在空间上分布提供内容的目的地服务器来提供内容的高可用性和最佳性能。因此,CDN的运营商在不同的地理位置战略性地配置目的地服务器,使得可按有效和高效的方式向地理上分散的终端用户设备提供内容。在各种示例中,经由CDN存储和分布的内容的所有者可被称为运营CDN的实体的“客户”。在另选示例中,操作CDN的实体也可为经由CDN存储和分布的内容的所有者。因此,内容提供商可为运营CDN的实体或者是运营CDN的实体的客户的实体。
CDN的运营商可实施不同的技术以将内容请求定向或路由至CDN。一种用于将内容请求定向或路由至CDN的常规技术是单播。例如,响应于包括网站名称的DNS查询,使用单播,域名系统(DNS)记录件被维护,并且可用于提供进入CDN的入口点(例如,服务器)的互联网协议(IP)地址。CDN的运营商喜欢单播,因为单播经由使用DNS记录件对负载管理具有高级别的控制。也就是说,单播使得内容请求能够在CDN的不同入口点之间进行平衡。这样做的结果是,单播不将内容请求优先发送至最接近内容请求源自的地理区域的入口点,这是基于终端用户设备的位置。比如,单播可将在旧金山(San Francisco)接收的内容请求路由至芝加哥(Chicago)附近的入口点,而不是旧金山附近的入口点。同样,这种单播路由可能是由于负载平衡配置,并且因为芝加哥可能是托管所请求内容的目的地服务器(例如,网站)被配置的位置。
然而,基于DNS生存时间(TTL)到期,单播会带来一些问题。如果出现与入口点相关联的问题,诸如服务器出现故障,则在服务器出现故障后的一段时间内,仍会使用缓存的IP地址来尝试经由故障服务器访问CDN。这段时间可持续几天甚至一周,这对用户体验有负面影响。也就是说,如果入口点服务器出现故障或离线,而DNS记录件表明缓存的IP地址仍处于活动状态,则终端用户设备将在一段时间内无法访问内容。
另一种用于将内容请求定向或路由至CDN的常规技术是任播。任播由于其操作简单性及其避免上面论述的DNS TTL漏洞的能力,在CDN的一些运营商中很受欢迎。关于操作简单性方面,CDN的运营商不需要创建、维护和更新存储DNS记录件的大型数据库,这些DNS记录件可用于做出路由决定和标识进入CDN的负载平衡入口点。相反,使用任播,内容请求典型地被发送至地理上最接近内容请求源自的位置的一组服务器。这组服务器提供了进入CDN的入口,并且可被称为入网点(Point of Presence“PoP”)。因此,CDN可配置在地理上关于彼此分散的各种PoP(例如,遍及世界、遍及大陆、遍及国家等)。任播使用诸如边界网关协议(BGP)的路由技术在不同的自治系统或组成互联网的“网络”之间交换路由信息。因此,使用任播,CDN不负责映射和确定终端用户设备和PoP之间的路径。
任播使用前缀公告来通知在各种地理区域中操作的完全不同的网络(例如,企业网络、网络服务供应商(ISP)网络、蜂窝运营商网络等),内容请求可被发送至一组IP地址。该组IP地址对所有PoP是通用的。因此,当接收到内容请求时,BGP典型地将内容请求路由至地理上最近的PoP,以便进入CDN。因为所有的PoP均使用一组通用的IP地址,所以某个特定的PoP可由于某个问题或维护而离线,并且本应发送至离线PoP的内容请求可自动地重定向至另外的PoP,而不会出现任何问题。这种任播配置有助于避免上面论述的DNS TTL漏洞。
然而,虽然任播提供了上述益处,但CDN在使用任播时失去了对关于PoP的负载管理的控制。这是因为诸如BGP的独立路由技术决定了将内容请求发送至哪里。因此,由于BGP被配置成将内容请求路由至最近的PoP,特定PoP变得过载和/或故障的可能性增加了。此外,BGP不能很好地找到终端用户设备和多个PoP中的任一个之间的最佳路径。在这种场景下,最佳路径可基于可对用户体验产生负面影响的性能因素,诸如延迟、带宽和服务器负载。因此,最佳执行路径可能不总是到地理上最近的PoP的路径。
因此,在将内容请求路由至CDN的入口点时,单播和任播路由技术均存在不足。正是关于这些和其他考虑因素,呈现了在本文做出的公开内容。
发明内容
本文所公开的系统实施了一种改进的任播路由技术,该技术使得内容分发网络(CDN)能够控制各个入网点(PoP)上的负载,但也维持了将本应发送至离线PoP的请求自动地重定向至另外的PoP的能力。CDN能够通过配置要路由至特定入网点(PoP)的内容请求来控制PoP上的负载。初始路由可基于地理,使得内容请求被路由至在地理上最接近其中基于终端用户设备的位置的内容请求源自的地理区域的PoP。然而,为了平衡负载和提高性能,本文所描述的技术可将内容请求路由至除了在地理上最接近内容请求源自的位置的PoP之外的PoP。
为了实施这种改进的任播路由技术,CDN被配置成将有区别的IP地址的子网分配给PoP组中的每个PoP。例如,洛杉矶(Los Angeles)的第一个PoP可被分配给子网“40.90.64.1”中的IP地址。西雅图(Seattle)的第二个PoP可被分配给子网“40.90.65.1”中的IP地址。而旧金山的第三个PoP可被分配给子网“40.90.66.1”中的IP地址。如图所示,所分配的子网中的第三个八位位组是不同的,因此,子网中的每个均包括不同“/24”中的一组有区别的IP地址,或者一组256个可能的IP地址。
如上所述,任播使用前缀公告来通知在各种地理区域中操作的完全不同的网络(例如,企业网络、网络服务供应商(ISP)网络、蜂窝运营商网络等),内容请求可经由公告的该组IP地址进入CDN。以前,PoP组中的每个PoP公告同一组IP地址。然而,在改进的任播路由技术中,每个PoP被配置成公告唯一任播前缀,该唯一任播前缀标识分配给该PoP的IP地址的相应子网。继续上述示例,洛杉矶的第一个PoP公告唯一任播前缀“40.90.64.0/24”,西雅图的第二个PoP公告唯一任播前缀“40.90.65.0/24”,而旧金山的第三个PoP公告唯一任播前缀“40.90.66.0/24”。
这些唯一前缀公告针对不同地理区域的网络。此外,单独的前缀公告可被定向至一个或多个地理区域。因此,CDN对地理有概念上的理解,并且可将更广阔的区域(例如,世界、大陆、国家等)划分成地理区域中,使得可在PoP组之间平衡流量负载。在一个示例中,这种划分可基于预定义的边界,诸如国家、州、省、县、市等。在其他示例中,不同区域的边界可由CDN定义,使得它们是基于网络的服务区域建立的粗略边界。
再次参考上述示例,仅出于说明目的,CDN可指示洛杉矶的第一PoP向在南加利福尼亚州和亚利桑那州(southern California and Arizona)操作的网络公告其唯一任播前缀。与此同时,CDN可指示西雅图的第二PoP向在华盛顿、俄勒冈州和爱达荷州(Washington,Oregon,and Idaho)操作的网络公告其唯一任播前缀。CDN可指示旧金山的第三PoP向在北加利福尼亚州和内华达州(northern California and Nevada)操作的网络公告其唯一任播前缀公告。对不同地理区域使用这些唯一前缀公告使得CDN能够控制各个PoP上的负载。
CDN另外被配置成指示组中的所有PoP与唯一任播前缀同时公告通用任播前缀。通用任播前缀标识了一组IP地址,该组IP地址覆盖了分配给PoP的不同子网中的所有可能的IP地址,并且因此,通用任播前缀可被称为覆盖前缀。比如,通用任播前缀可指定“40.90.64.0/18”,这覆盖了上面提供的示示例网中所有可能的IP地址——“40.90.64.0/24”、“40.90.65.0/24”和“40.90.66.0/24”。因此,唯一任播前缀(例如,“/24”)比通用任播前缀(例如,“/18”)更具体,或者另选地说,唯一任播前缀定义较小组的可能的IP地址,每个IP地址均包括在经由覆盖前缀指定的较大组的IP地址中。
由于诸如边界网关协议(BGP)的独立路由技术在做出将内容请求路由至PoP的决定时更倾向于更具体的任播前缀,因此这些独立路由技术首先尝试使用经由唯一任播前缀(例如,“40.90.64.0/24”、“40.90.65.0/24”、“40.90.66.0/24”)公告的子网中的一个中的IP地址来路由内容请求。因此,唯一任播前缀是CDN用来控制来自特定地理区域的内容请求被路由至哪里(例如,特定PoP)的机构。这种级别的控制可由CDN动态地配置,以管理负载并提高PoP的性能。
为了另外说明,并且再次参考上面提供的示例,如果洛杉矶的第一PoP执行不佳(例如,过载,由于执行不良的ISP而经历延长的延迟等),则CDN可指示洛杉矶的第一PoP撤回其对亚利桑那州区域的唯一前缀公告,但不撤回对南加利福尼亚州区域的唯一前缀公告,从而减轻第一PoP中的服务器上的负载。在一些实施例中,并且结合撤回,CDN可指示旧金山的第三PoP向亚利桑那州区域公告其唯一任播前缀,使得来自亚利桑那州区域的流量从被路由至洛杉矶的第一PoP切换到被路由至旧金山的执行更好的PoP。在另选实施例中,并且结合撤回,CDN可指示洛杉矶的第一PoP再次向亚利桑那区域公告旧金山的唯一任播前缀,使得来自亚利桑那区域的流量从被路由至洛杉矶的第一PoP切换到被路由至旧金山的执行更好的PoP。
除了能够更好地控制单个PoP的负载之外,改进的任播路由技术还提供了备份机构,以确保每个内容请求被路由至组中的PoP中的任一个。这种备份机构在特定PoP意外故障或由于各种原因(例如,服务器维护)而离线的场景下很有用。如果发生这些场景中的一种,PoP可撤回唯一任播前缀和通用任播前缀的公告,并且本应发送至故障或离线PoP的内容请求仍借助于不太特定的通用任播前缀被自动地重定向至另外的PoP。这是因为通用任播前缀覆盖了由不同PoP公告的所有不同的唯一组的IP地址。
本文所公开的技术提供了许多改进现有计算设备的特征部,诸如服务器和网络路由装备。比如,在PoP内操作的服务器不太可能过载,从而确保CDN路由操作更平稳地运行(例如,节省了诸如处理器周期、内存、网络带宽等计算资源),并且极大地改进了关于内容分发的用户体验。本文未具体提及的其他技术益处也可通过所公开主题的实施方式来实现。
通过阅读以下具体实施方式和查看相关联附图,除上述明确描述的特征和技术优势之外的特征和技术优势将变得明显。提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中另外描述的概念的选择。该发明内容不旨在标识所要求保护的主题的关键或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
参考附图对详细说明进行描述。在附图中,附图标记最左边的数字(一个或多个)标识该附图标记首次出现的附图。不同附图中的相同附图标记表明类似或相同的项目。
图1图示了其中内容分发网络(CDN)实施改进的任播路由技术的示例场景,该技术使得CDN能够控制各种入网点(PoP)上的负载。
图2图示了其中CDN能够维持将本应发送至离线PoP的内容请求自动地重定向至另外的PoP的能力的示例场景。
图3A图示了其中CDN能够通过改变发送至特定地理区域的唯一任播公告来控制各入网点上的负载的示例场景。
图3B图示了其中CDN能够通过改变发送至特定地理区域的唯一任播公告来控制各入网点上的负载的另外的示例场景。
图4是图示允许CDN控制各种PoP上的负载的示例例程的各方面的流程图。
图5是能够实施本公开的技术的示例计算系统。
具体实施方式
本文所公开的系统实施了一种改进的任播路由技术,该技术使得内容分发网络(CDN)能够控制各种入网点(PoP)上的负载,但也维持了将发送至离线PoP的请求自动地重定向至另外的PoP的能力。CDN能够通过配置要路由至特定入网点(PoP)的内容请求来控制PoP上的负载。初始路由可基于地理,使得内容请求被路由至在地理上最接近其中基于终端用户设备的位置的内容请求源自的地理区域的PoP。然而,为了平衡负载和提高性能,本文所描述的技术可将内容请求路由至除了在地理上最接近内容请求源自的位置的PoP之外的PoP。
图1图示了其中CDN 102实施改进的任播路由技术的示例场景100,该技术使得CDN102能够控制各种PoP 104(1-N)上的负载。各种PoP 104(1-N)由CDN 102的运营商在不同位置战略性地配置,以提供到CDN 102的入口。每个PoP 104(1-N)包括一组服务器和其他资源,用于接收内容请求并将内容请求传递给CDN 102中的其他资源。为了说明性目的和本文所论述的示例,“N”等于三。然而,“N”可为反映由CDN 102的运营商配置的PoP的数目的任何正整数(例如,“N”可为二、四、五、十、二十等)。
如本文所述,PoP 104(1)可被配置成从地理区域(一个或多个)106(1)中的终端用户设备接收内容请求,PoP 104(2)可被配置成从地理区域(一个或多个)106(2)中的终端用户设备接收内容请求,并且PoP 104(N)可被配置成从地理区域106(N)中的终端用户设备接收内容请求。为了具有关于将内容请求路由至PoP 104(1-N)的更强的负载控制元件,CDN102将不同子网中的相同组的IP地址(例如“/24”)分配给所有PoP 104(1-N)。如图1中所列,向PoP 104(1-N)中的每个通知“40.90.64.1”、“40.90.65.1”和“40.90.66.1”。基于这种分配,PoP 104(1-N)中的每个可在内部向CDN 102中枢公告这些组的IP地址(例如,在内部公告“/32”或“40.90.64.1/32”、“40.90.65.1/32”和“40.90.66.1/32”),因此它们被认为是任播IP地址。
CDN 102另外被配置成向PoP组104(1-N)中的每个PoP分配有区别的IP地址的子网。如图所示,PoP 104(1)(例如,位于洛杉矶)可被分配给子网“40.90.64.1”中的IP地址。PoP 104(2)(例如,位于西雅图)可被分配给子网“40.90.65.1”中的IP地址。PoP 104(N)(例如,位于旧金山)可被分配给子网“40.90.66.1”中的IP地址。如图所示,所分配的子网中的第三个八位位组是不同的,因此,子网中的每个均包括不同“/24”中的一组有区别的IP地址,或者一组256个可能的IP地址。
如上所述,任播使用前缀公告来通知在各种地理区域中操作的完全不同的网络(例如,企业网络、网络服务供应商(ISP)网络、蜂窝运营商网络等),内容请求可经由一组公告的IP地址进入CDN 102。以前,PoP组中的每个PoP公告同一组IP地址。然而,图1中的CDN102指示PoP 104(1-N)公告唯一任播前缀,该唯一任播前缀标识分配给PoP的IP地址的相应子网。
继续上述示例,洛杉矶的第一PoP 104(1)公告唯一任播前缀“40.90.64.0/24”108。此公告是向服务地理区域106(1)(例如,南加利福尼亚州和亚利桑那州)的本地网络110(1)做出的。类似地,西雅图的第二PoP 104(2)向服务地理区域106(2)(例如,华盛顿、俄勒冈州和爱达荷州)的本地网络110(2)公告唯一任播前缀“40.90.65.0/24”112。最后,旧金山的第三PoP 104(N)向服务地理区域106(N)(例如,北加利福尼亚和内华达州)的本地网络110(N)公告唯一任播前缀“40.90.66.0/24”114。
因此,唯一任播前缀公告108、112、114被定向至不同地理区域中的网络。此外,单独的唯一任播前缀公告可被定向至一个或多个地理区域。因此,CDN 102具有对地理的概念性理解,并且可划分更广阔的区域(例如,世界、大陆、国家等)划分成地理区域,使得流量负载可使用唯一任播前缀公告108、112、114在PoP组104(1-N)之间进行划分和平衡。在一个示例中,这种划分可基于预定义的边界,诸如国家、州、省、县、城市、街区等。在其他示例中,不同区域的边界可由CDN定义,使得它们是基于网络的服务区域建立的粗略边界。
CDN 102另外被配置成指示所有PoP 104(1-N)与唯一任播前缀108、112、114同时公告通用任播前缀116。通用任播前缀116标识一组IP地址,该组IP地址覆盖分配给PoP 104(1-N)的不同子网中的所有可能的IP地址,因此,通用任播前缀116可被称为覆盖前缀。比如,通用任播前缀116可指定“40.90.64.0/18”,这覆盖了上面提供的示示例网中的所有可能的IP地址——“40.90.64.0/24”108、“40.90.65.0/24”112和“40.90.66.0/24”114。因此,唯一任播前缀108、112、114(例如,“/24”)比通用任播前缀116(例如,“/18”)更具体,或者另选地说,唯一任播前缀108、112、114定义较小组的可能的IP地址,每个IP地址均包括在经由覆盖前缀指定的较大组的IP地址中。因此,在通用任播前缀被用于路由内容请求之前,唯一任播前缀被用于路由内容请求。
由于诸如边界网关协议(BGP)的独立路由协议118在做出将内容请求路由至PoP的决定时更倾向于更具体的任播前缀,这些独立路由协议118首先尝试使用经由唯一任播前缀(例如,“40.90.64.0/24”、“40.90.65.0/24”、“40.90.66.0/24”)公告的子网中的一个中的IP地址来路由内容请求。因此,唯一任播前缀是CDN 102用来控制来自特定地理区域的内容请求被路由至哪里(例如,特定PoP)的机构。这种级别的控制可由CDN 102动态地配置,以管理负载并提高PoP的性能。
图2图示了其中CDN 102能够保持将本应发送至离线PoP的内容请求自动地重定向至另外的PoP的能力的示例场景200。如图2所示,来自图1的PoP 104(2)现在是离线PoP202。这可能是某种问题的结果,诸如服务器故障。另选地,这可能是因为需要执行某种维护。相应地,离线PoP 202撤回图1中所示的其任播前缀公告204。更重要的是,先前由离线PoP 202服务的地理区域106(2)不具有进入CDN 102的相同入口点。
相反,通用任播前缀116用作备份机构,以确保当PoP 104(2)是离线PoP 202时,来自地理区域106(2)中的终端用户设备的每个内容请求被路由至其他PoP 104(1)或104(N)中的任一个。也就是说,路由协议118使用先前公告的通用任播前缀116来将内容请求206从地理区域106(2)重定向至PoP 104(1)或PoP 104(N)。这可实施,因为通用任播前缀116覆盖由不同PoP 104(1-N)公告的所有不同的唯一组的IP地址。此外,域名系统(DNS)记录件被配置成缓存通用任播前缀116中的IP地址,使得它们可在PoP 202离线之后使用。
图3A图示了其中CDN 102能够通过改变发送至特定地理区域的唯一任播公告来控制各种PoP上的负载的示例场景300。如图3A所示,来自图1的PoP 104(2)现在是过载的PoP302。因此,先前由图1中的PoP 104(2)服务的地理区域106(2)被分成地理区域(一个或多个)304(例如,华盛顿和俄勒冈州)和地理区域(一个或多个)306(例如,爱达荷州)。为了减轻过载的PoP 302上的负载,CDN 102可决定丢弃来自地理区域(一个或多个)306的内容请求,使得它们被发送至不同的PoP。
因此,过载的PoP 302可撤回其先前对地理区域(一个或多个)306的公告,并且将地理区域(一个或多个)306的唯一任播前缀公告改变或切换为新的公告。也就是说,过载的PoP 302可向服务地理区域306的本地网络(一个或多个)110(2)公告分配给旧金山的PoP104(N)的唯一任播前缀“40.90.66.0/24”114。以这种方式,源自地理区域(一个或多个)306中的内容请求现在被定向至PoP 104(N),而不是过载的PoP 302。然而,与图1中的场景100相比,过载的PoP 302对地理区域(一个或多个)304的公告保持不变。
在各种示例中,CDN可包括性能监视器308,以分析流量并确定PoP(例如,PoP 302)何时可能遇到性能问题。虽然图3A图示了由于过载引起的性能问题,但其他性能问题可提供将内容请求重定向至另外的PoP的有效理由。例如,一个PoP可由于执行不良的ISP网络而经历延长的延迟。因此,由于CDN 102无法控制的原因(即,CDN无法控制ISP网络的性能),CDN 102可在PoP之间重定向流量。
性能监视器308被配置成分析一段时间内路由至CDN 102的流量,并且标识(例如,学习)对PoP性能和/或终端用户体验有重大影响的流量模式。在一个示例中,如果它引起单个PoP的负载问题,使得单个PoP的性能可能受到负面影响,则对流量的影响是显著的。因此,性能监视器308可被配置成学习和使用PoP的性能级别阈值。基于对诸如延迟和带宽的可测量性能因素的分析,性能监视器308可确定当前性能级别何时超过性能级别阈值。如本文所述,CDN 102然后可采取行动来平衡负载。同样,可关于PoP和/或终端用户设备与PoP之间的路由路径来测量性能,即使这些路径包括由其他网络(例如,ISP网络)操作的网段。
图3B图示了其中CDN能够通过改变发送至特定地理区域的唯一任播公告来控制各入网点上的负载的另外的示例场景310。示例场景310类似于图3A的示例场景300,除了结合过载的PoP 302撤回对地理区域306的唯一任播前缀公告(例如,为了减轻负载),CDN 102可指示旧金山的PoP 104(N)向地理区域(一个或多个)306公告其唯一任播前缀114,使得来自地理区域(一个或多个)306的流量从路由至过载的PoP 302改变或切换到被路由至旧金山的执行更好的PoP 104(N)。另选地说,在图3B的示例场景310的上下文中,地理区域(一个或多个)306实质上与地理区域(一个或多个)106(N)分组在一起。
在各种示例中,图3A和/或图3B所示的改变可在预定的一天中的时间、一周中的时间、一个月中的时间和/或一年中的时间实施。也就是说,性能监视器308可检测和标识导致特定PoP的性能问题的流量模式。这些流量模式可反映流量尖峰开始和结束的周期性时间。这些时间可特定于涵盖由PoP所服务的地理区域的特定时区。因此,本文所描述的技术可用于在定义的时间段内减轻特定时区中PoP的负载,例如,通过将一些内容请求重定向至另外的时区中的另外的PoP。
图4是图示描述本公开的各方面的例程的流程图。在各种示例中,例程的操作可由CDN来执行。本文中有关于图4描述的逻辑操作可被实施为(1)运行在计算设备上的一系列计算机实施的动作或程序模块,和/或实施为(2)计算设备内互连的机器逻辑电路或电路模块。
为便于理解,本公开中论述的过程被描绘为独立的操作,以单独的框表示。然而,这些单独描述的操作不应被解释为在它们的执行中必然依赖于顺序。其中描述该过程的顺序不旨在被解释为限制,并且任何数目的所描述的过程框可按任何顺序组合以实施该过程或替代过程。此外,还有可能修改或省略所提供的操作中的一个或多个。
本文所公开的技术的具体实施方式是取决于计算设备的性能和其他要求的选择问题。因此,本文所描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些状态、操作、结构设备、动作和模块可用硬件、软件、固件、专用型数字逻辑及其任意组合来实施。应理解,可执行比图中所示和本文所描述的更多或更少的操作。这些操作也可按不同于本文所描述的顺序来执行。
还应理解,所示方法可在任何时候结束,无需全部执行。这些方法的一些或所有操作和/或基本上等同的操作可通过实行包括在计算机可读介质上的计算机可读指令来执行。在说明书和权利要求中使用的术语“计算机可读指令”及其变体在本文中被广泛地用于包括例程、应用程序、应用程序模块、程序模块、程序、组件、数据结构、算法和类似项。计算机可读指令可在各种系统配置上实施,包括单处理器或多处理器系统中的处理单元、小型计算机、大型计算机、个人计算机、头戴式显示设备、手持式计算设备、基于微处理器的可编程消费电子产品、其组合和类似项。
例如,例程的操作可通过动态链接库(“DLL”)、静态链接库、由应用程序编程接口(“API”)产生的功能性、编译程序、解释程序、脚本、网络服务或网站或任何其他可实行指令集来实施。数据可存储在一个或多个存储器组件中的数据结构中。通过对数据结构的链接或引用进行寻址,可从数据结构中检索数据。
尽管以下图示可涉及附图中的组件,但可理解,例程的操作也可按许多其他方式实施。例如,例程可至少部分地由另外的远程计算机、处理器或电路来实施。在本文所描述的示例中,计算系统的一个或多个模块可接收和/或处理数据。适用于提供本文所公开的技术的任何服务、电路或应用程序可用于所描述的操作中。
参考图4,例程400开始于操作402,其中与CDN相关联的多个入网点(PoP)中的每个被配置成向服务一个或多个地理区域的网络公告通用任播前缀。在操作404,多个PoP中的每个被配置成同时向服务一个或多个地理区域的网络公告唯一任播前缀。如上所述,唯一任播前缀比通用任播前缀更具体,使得独立的路由协议(诸如BGP)优先使用由唯一任播前缀指定的IP地址。
在操作406,多个PoP中的每个接收源自基于BGP服务的一个或多个地理区域内的内容请求,该BGP相比于由通用任播前缀指定的IP地址,优先使用由唯一任播前缀指定的IP地址。在操作408,CDN可确定针对单个PoP将源自由该单个PoP所服务的一个或多个地理区域中的至少一个中的附加内容请求路由至其他PoP的原因。如上所述,这一原因可为单个PoP出现故障或遇到一些其他问题,并且需要离线。这一原因可为定期维护。这一原因可为性能问题,需要降低由单个PoP处理的负载。
在操作410,单个PoP撤回对至少一个地理区域的通用任播前缀和唯一任播前缀的公告。以这种方式,在撤回之后源自该地理区域中的内容请求可经由先前公告的通用任播前缀被自动地重新路由至其他PoP。另选地,在撤回之后源自该地理区域中的内容请求可经由为不同PoP指定另外的唯一任播前缀的改变的公告被重新路由至其他PoP。
本文有关于特定示例和实施例描述了本公开的各个方面,其旨在说明而非限制本发明。应理解,本文所呈现的主题可被实施为计算机过程、计算机控制的装置、计算系统、诸如计算机可读存储介质之类的制造品、或者包括用于实施功能的硬件逻辑的组件,诸如现场可编程门阵列(FPGA)设备、大规模并行处理器阵列(MPPA)设备、图形处理单元(GPU)、专用集成电路(ASIC)、多处理器片上系统(MPSoC)等。
图5图示了一般用途的计算设备500。在所示实施例中,计算设备500包括经由输入/输出(I/O)接口530耦合至系统存储器520的一个或多个处理器510a、510b和/或510n(其在本文中可单数称“一个处理器510(a processor 510)”或复数称为“多个处理器510(theprocessors 510)”)。计算设备500另外包括耦合至I/O接口530的网络接口540。
在各种实施例中,计算设备500可为包括一个处理器510的单处理器系统或包括若干个处理器510(例如,两个、四个、八个或其他合适数目)的多处理器系统。处理器510可为能够执行指令的任何合适的处理器。例如,在各种实施例中,处理器510可为实施各种指令集架构(ISA)中的任何一种的通用型或嵌入式处理器,诸如x77、PowerPC、SPARC或MIPSISA,或者任何其他合适的ISA。在多处理器系统中,处理器510中的每个常常可但不一定实施相同的ISA。
系统存储器520可被配置成存储由处理器(一个或多个)710可访问的指令和数据。在各种实施例中,系统存储器520可使用任何合适的存储器技术来实施,诸如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其他类型的存储器。在所示实施例中,实施一个或多个期望功能的程序指令和数据,诸如上面描述的那些例程、技术和数据,被示为作为代码525和数据527存储在系统存储器520中。
在一个实施例中,I/O接口530可被配置成协调处理器510、系统存储器520和设备中任何外围设备(包括网络接口540或其他外围接口)之间的I/O流量。在一些实施例中,I/O接口530可执行任何必要的协议、定时或其他数据转换,以将来自一个组件(例如,系统存储器520)的数据信号转换成适合由另外的组件(例如,处理器510)使用的格式。在一些实施例中,I/O接口530可包括对通过各种类型的外围总线(诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体)附接的设备的支持。在一些实施例中,I/O接口530的功能可被分成两个或多个单独的组件。此外,在一些实施例中,I/O接口530的功能性中的一些或所有,诸如到系统存储器520的接口,可直接并入处理器510。
网络接口540可被配置成允许在计算设备500与附接至网络(一个或多个)550的其他设备或设备570(例如,诸如图1至3B所示的其他计算机系统或组件)之间交换数据。在各种实施例中,网络接口540可支持经由任何合适的有线或无线通用数据网络的通信。此外,网络接口540可支持经由诸如模拟语音网络或数字光纤通信网络的电信/电话网络、经由诸如光纤通道SAN的存储区域网络或者经由任何其他合适类型的网络和/或协议的通信。
网络(一个或多个)550可包括,例如,诸如互联网等共用网络、诸如机构和/或个人内联网等专用网络,或者专用和共用网络的某种组合。网络(一个或多个)550还可包括任何类型的有线和/或无线网络,包括但不限于局域网(“LAN”)、广域网(“WAN”)、卫星网络、电缆网络、Wi-Fi网络、WiMax网络、移动通信网络(例如,3G、4G、5G等)或其任何组合。网络(一个或多个)550可利用通信协议,包括基于分组和/或基于数据报的协议,诸如互联网协议(“IP”)、传输控制协议(“TCP”)、用户数据报协议(“UDP”)或其他类型的协议。此外,网络(一个或多个)550还可包括便于网络通信和/或形成网络硬件基础的多个设备,诸如交换机、路由器、网关、接入点、防火墙、基站、中继器、骨干设备和类似项。
在一些实施例中,系统存储器520可为计算机可存取介质的一个实施例,其被配置成存储上文针对图1-4所描述的程序指令和数据。然而,在其他实施例中,可在不同类型的计算机可访问介质上接收、发送或存储程序指令和/或数据。计算机可访问介质可包括非暂时性存储介质或存储器介质,诸如磁介质或光介质,例如经由I/O接口530耦合至计算设备500的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可包括任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等,它们可作为系统存储器520或另一种类型的存储器被包括在计算设备500的一些实施例中。此外,计算机可访问介质可包括经由通信介质(诸如网络和/或无线链路)传达的传输介质或信号(诸如电信号、电磁信号或数字信号),诸如可经由网络接口540实施。
多个计算设备的部分或所有,诸如图5中所示的计算设备,可用于实施各种实施例中所描述的功能性;例如,运行在各种不同设备和服务器上的软件组件可协作来提供功能性。在一些实施例中,除了使用通用型计算机系统来实现之外,或者代替使用通用型计算机系统来实施,可使用存储设备、网络设备或专用型计算机系统来实施所描述的功能性的部分。如本文所用,术语“系统”和/或“计算设备”是指至少所有这些类型的设备,而不限于这些类型的设备。
各种存储装置及其相关联的计算机可读介质为本文所描述的计算设备提供非易失性存储。本文所论述的计算机可读介质可指大容量存储设备,诸如固态驱动器、硬盘或CD-ROM驱动器。然而,本领域技术人员应理解,计算机可读介质可为可由计算设备访问的任何可用的计算机存储介质。
作为示例而非限制,计算机存储介质可包括以任何方法或技术实施的易失性和非易失性、可移除和不可移除介质,用于存储信息,诸如计算机可读指令、数据结构、程序模块或其他数据。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪存或其他固态存储技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY或其他光存储件、磁带盒、磁带、磁盘存储件或其他磁存储设备,或者可用于存储所期望信息且可由本文所论述的计算设备访问的任何其他介质。出于权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”及其变体本身不包括波、信号和/或其他暂时性的和/或无形的通信介质。
对本文所呈现的软件模块进行编码也可转换本文所呈现的计算机可读介质的物理结构。在本说明书的不同实施方式中,物理结构的具体转换可取决于各种因素。这类因素的示例可包括但不限于,用于实施计算机可读介质的技术、计算机可读介质是被表征为主存储件还是辅助存储件和类似项。例如,如果计算机可读介质被实施为基于半导体的存储器,则本文所公开的软件可通过转换半导体存储器的物理状态而被编码在计算机可读介质上。例如,软件可转换构成半导体存储器的晶体管、电容器或其他分立电路元件的状态。该软件还可转换这类组件的物理状态,以便在其上存储数据。
作为另一个示例,本文所公开的计算机可读介质可使用磁性技术或光学技术实施。在这类实施方式中,当软件被编码在其中时,本文所呈现的软件可转换磁介质或光介质的物理状态。这些转换可包括改变给定磁介质内特定位置的磁特性。这些转换还可包括更改给定光介质内特定位置的物理特征或特性,以改变这些位置的光学特性。在不脱离本描述的范围和精神的情况下,物理介质的其他转换也是可能的,提供前述示例只是为了便于论述。
鉴于上述情况,应理解,在所公开的计算设备中发生多种类型的物理转换,以便存储和实行本文所呈现的软件组件和/或功能性。还可预期,所公开的计算设备可不包括图5所示的所示组件中的所有,可包括未在图5中明确示出的其他组件,或者可利用与图5所示完全地不同的架构。
尽管已用特定于结构特征和/或方法动作的语言描述了各种配置,但应理解,所附表示中定义的主题不一定限于所描述的具体特征或动作。相反,这些具体特征和动作是作为实施所要求保护的主题的示例形式来公开的。
本文所用的条件语言,诸如“可”、“可以”、“可能”、“也许”、“例如”和类似项,除非另有特别说明,或者在所用的上下文中另有理解,一般旨在传达某些实施例包括,而其他实施例不包括某些特征、元件和/或步骤。因此,这类条件语言一般不旨在暗指特征、元件和/或步骤以任何方式是一个或多个实施例所需要的,或者一个或多个实施例必须包括用于在有或没有作者输入或提示的情况下决定这些特征、元件和/或步骤是否被包括在任何特定实施例中或者将在任何特定实施例中执行的逻辑。术语“包括”、“包含”、“具有(having)”和类似项是同义的,并且以开放的方式包括性地使用,并且不排除附加的元件、特征、动作、操作等。此外,术语“或”是在其包容性意义上使用的(而不是在其排他性意义上),因此当用于例如连接一系列元件时,术语“或”意指列表中的元件中的一个、一些或所有。
虽然已描述了某些示例实施例,但这些实施例仅通过示例的方式呈现,并且非旨在限制本文所公开的发明的范围。因此,前面的描述并不意指任何特定的特征、特性、步骤、模块或块是必要的或不可或缺的。实际上,本文所描述的新颖方法和系统可按各种其他形式来体现;此外,在不脱离本文所公开的本发明的精神的情况下,可对本文所描述的方法和系统的形式进行各种省略、替换和改变。所附权利要求及其等同物旨在涵盖落入本文所公开的某些发明的范围和精神内的这些形式或修改。
本文所呈现的公开内容还涵盖以下条款中阐述的主题。
示例条款A,一种用于在与内容分发网络相关联的多个入网点之间平衡负载,同时还允许在入网点离线的情况下自动地重定向的方法,该方法包括:由与内容分发网络相关联的入网点公告可用于将内容请求发送至多个入网点中的任一个的通用任播前缀,其中入网点向服务一个或多个地理区域的网络公告通用任播前缀;由入网点且在通用任播前缀的公告的同时,公告可用于将内容请求路由至入网点的唯一任播前缀,其中入网点向服务一个或多个地理区域的网络公告唯一任播前缀,并且其中唯一任播前缀比通用任播前缀更具体,使得在通用任播前缀被用于路由内容请求之前,唯一任播前缀被用于路由内容请求;在入网点处并基于唯一任播前缀,接收源自一个或多个地理区域内的第一内容请求;确定入网点将要离线;以及由入网点撤回通用任播前缀和唯一任播前缀的公告,从而促使撤回之后源自一个或多个地理区域中的至少一些附加内容请求基于入网点先前公告的通用任播前缀而被自动地重定向至另外的入网点。
示例条款B,根据示例条款A的方法,其中:唯一任播前缀包括第一组互联网协议(IP)地址;并且通用任播前缀包括覆盖第一组IP地址的第二组IP地址。
示例条款C,根据示例条款A或示例条款B的方法,其中通用任播前缀被用作备份路由信息,以自动地重定向附加内容请求。
示例条款D,根据示例条款A至C中任一项的方法,其中网络包括网络服务供应商网络、蜂窝运营商网络或企业网络中的至少一种。
示例条款E,根据示例条款A至D中任一项的方法,其中边界网关协议被用于:将内容请求路由至入网点;并且自动地将附加内容请求重定向至另外的入网点。
示例条款F,根据示例条款A至E中任一项的方法,其中入网点将要离线以解决问题或执行维护。
示例条款G,根据示例条款A至F中任一项的方法,其中唯一任播前缀被用于管理入网点处的负载。
示例条款H,一种系统,包括:一个或多个处理器;以及计算机可读存储介质,其上存储有计算机可实行指令,这些指令在由一个或多个处理器实行时,促使该系统执行操作,该操作包括:由与内容分发网络相关联的入网点公告通用任播前缀,其中入网点向服务一个或多个地理区域的网络公告通用任播前缀;由入网点且在通用任播前缀的公告的同时,向服务一个或多个地理区域的网络公告唯一任播前缀;在入网点处并基于唯一任播前缀,接收源自一个或多个地理区域内的内容请求;确定将源自一个或多个地理区域中的至少一个中的附加内容请求路由至与内容分发网络相关联的其他入网点的原因;以及基于该确定,由入网点将对至少一个地理区域的唯一任播前缀的公告改变为对另外的唯一任播前缀的公告,该另外的唯一任播前缀标识与内容分发网络相关联的另外的入网点,附加内容请求可被路由至该另外的入网点。
示例条款I,根据示例条款H的系统,其中原因包括一个或多个过载服务器或一个或多个过载服务器的可能性。
示例条款J,根据示例条款H或示例条款I的系统,其中:唯一任播前缀包括第一组互联网协议(IP)地址;另外的唯一任播前缀包括不同于第一组IP地址的第二组IP地址;并且通用任播前缀包括覆盖第一组IP地址和第二组IP地址两者的第三组IP地址。
示例条款K,根据示例条款H至J中任一项的系统,其中该改变在一天中的预定时间实施。
示例条款L,根据示例条款H的系统,其中该原因包括将内容请求路由至入网点的性能级别低于阈值性能级别,该阈值性能级别基于对包括延迟和带宽的可测量因素的分析。
示例条款M,根据示例条款H至L中任一项的系统,其中该网络包括网络服务供应商网络、蜂窝运营商网络或企业网络中的至少一种。
示例条款N,一种系统,包括:第一组服务器,其与内容分发网络相关联,被配置成同时向服务一个或多个第一地理区域的第一网络公告通用任播前缀和第一唯一任播前缀,其中路由协议使用第一唯一任播前缀将源自一个或多个第一地理区域中的第一内容请求路由至第一组服务器;以及第二组服务器,其与内容分发网络相关联,被配置成同时向服务一个或多个第二地理区域的第二网络公告通用任播前缀和第二唯一任播前缀,其中路由协议:当第二组服务器在线时,使用第二唯一任播前缀将源自一个或多个第二地理区域中的第二内容请求路由至第二组服务器;或者当第二组服务器离线时,使用通用任播前缀将源自一个或多个第二地理区域中的第二内容请求路由至第一组服务器。
示例条款O,根据示例条款N的系统,其中:第一唯一任播前缀包括第一组互联网协议(IP)地址;第二唯一任播前缀包括不同于第一组IP地址的第二组IP地址;并且通用任播前缀包括覆盖第一组IP地址和第二组IP地址的第三组IP地址。
示例条款P,根据示例条款N或示例条款O的系统,其中第一网络和第二网络包括网络服务供应商网络、蜂窝运营商网络或企业网络中的至少一种。
示例条款Q,根据示例条款N至P中任一项的系统,其中路由协议包括边界网关协议。
示例条款R,根据示例条款N至Q中任一项的系统,其中第一唯一任播前缀和第二唯一任播前缀被用于管理第一组服务器和第二组服务器上的负载。
示例条款S,根据示例条款N至R中任一项的系统,其中第二组服务器离线以解决问题或执行维护。
示例条款T,根据示例条款N至S中任一项的系统,其中通用任播前缀被用作备用路由信息,以自动地将内容请求重定向至与内容分发网络相关联的多个入网点中的任一个。
应理解,在发明内容和/或具体实施方式中对“第一”、“第二”等元件的任何引用均不旨在也不应被解释为必然对应于权利要求的“第一”、“第二”等元件。相反,在发明内容、具体实施方式和/或权利要求中对“第一”和“第二”的任何使用均可用于区分同一元件的两个不同实例(例如,两个不同的PoP、两个不同的地理区域等)。
最后,尽管已用特定于结构特征和/或方法动作的语言描述了各种技术,但应理解,所附表示中定义的主题不一定限于所描述的具体特征或动作。相反,这些具体特征和动作是作为实施所要求保护的主题的示例形式来公开的。
Claims (15)
1.一种用于在多个入网点之间平衡负载的方法,所述多个入网点与内容分发网络相关联,同时还允许在入网点离线的情况下自动地重定向的方法,所述方法包括:
由与所述内容分发网络相关联的入网点公告可用于将内容请求路由至所述多个入网点中的任一个入网点的通用任播前缀,其中所述入网点向服务一个或多个地理区域的网络公告所述通用任播前缀;
由所述入网点在与所述通用任播前缀的所述公告的同时,公告可用于将所述内容请求路由至所述入网点的唯一任播前缀,其中所述入网点向服务所述一个或多个地理区域的所述网络公告所述唯一任播前缀,并且其中所述唯一任播前缀比所述通用任播前缀更具体,使得所述唯一任播前缀在所述通用任播前缀被用于路由所述内容请求之前被用于路由所述内容请求;
在所述入网点处基于所述唯一任播前缀,接收源自所述一个或多个地理区域内的第一内容请求;
确定所述入网点要被置于离线;以及
由所述入网点撤回对所述通用任播前缀和所述唯一任播前缀的所述公告,从而使在撤回之后源自所述一个或多个地理区域中的至少一些附加内容请求基于由所述入网点先前公告的所述通用任播前缀而被自动重定向至另外的入网点。
2.根据权利要求1所述的方法,其中:
所述唯一任播前缀包括第一组互联网协议(IP)地址;并且
所述通用任播前缀包括覆盖所述第一组IP地址的第二组IP地址。
3.根据权利要求1或权利要求2所述的方法,其中所述通用任播前缀被用作用以自动地重定向所述附加内容请求的备份路由信息。
4.根据权利要求1至3中任一项所述的方法,其中所述网络包括以下中的至少一项:网络服务供应方网络、蜂窝运营商网络或企业网络。
5.根据权利要求1至4中任一项所述的方法,其中边界网关协议被用以:
将所述内容请求路由至所述入网点;以及
自动将所述附加内容请求重定向至所述另外的入网点。
6.根据权利要求1至5中任一项所述的方法,其中所述入网点要被置于离线以解决问题或执行维护。
7.根据权利要求1至6中任一项所述的方法,其中所述唯一任播前缀被用于管理所述入网点处的负载。
8.一种系统,包括:
一个或多个处理器;以及
计算机可读存储介质,其上存储有计算机可实行指令,所述可实行指令当由所述一个或多个处理器实行时,使所述系统执行操作,所述操作包括:
由与内容分发网络相关联的入网点公告通用任播前缀,其中所述入网点向服务一个或多个地理区域的网络公告所述通用任播前缀;
由所述入网点且在与所述通用任播前缀的所述公告的同时,向服务所述一个或多个地理区域的所述网络公告唯一任播前缀;
在所述入网点处并基于所述唯一任播前缀,接收源自所述一个或多个地理区域内的内容请求;
确定将源自所述一个或多个地理区域中的至少一个地理区域中的附加内容请求路由至与所述内容分发网络相关联的其他入网点的原因;以及
基于所述确定,由所述入网点将针对所述至少一个地理区域的所述唯一任播前缀的所述公告改变为对另外的唯一任播前缀的公告,所述另外的唯一任播前缀标识与所述内容分发网络相关联的另外的入网点,所述附加内容请求可被路由至所述另外的入网点。
9.根据权利要求8所述的系统,其中所述原因包括一个或多个过载服务器或针对一个或多个过载服务器的可能性。
10.根据权利要求8或权利要求9所述的系统,其中:
所述唯一任播前缀包括第一组互联网协议(IP)地址;
所述另外的唯一任播前缀包括不同于所述第一组IP地址的第二组IP地址;并且
所述通用任播前缀包括覆盖所述第一组IP地址和所述第二组IP地址两者的第三组IP地址。
11.根据权利要求8至10中任一项所述的系统,其中所述改变在一天中的预定时间被实现。
12.根据权利要求8所述的系统,其中所述原因包括将所述内容请求路由至所述入网点的性能级别低于阈值性能级别,所述阈值性能级别基于对包括延迟和带宽的可测量因素的分析。
13.一种系统,包括:
第一组服务器,与内容分发网络相关联,被配置成向服务一个或多个第一地理区域的第一网络同时公告通用任播前缀和第一唯一任播前缀,其中路由协议使用所述第一唯一任播前缀将源自所述一个或多个第一地理区域中的第一内容请求路由至所述第一组服务器;以及
第二组服务器,与所述内容分发网络相关联,被配置成向服务一个或多个第二地理区域的第二网络同时公告所述通用任播前缀和第二唯一任播前缀,其中所述路由协议:
当所述第二组服务器在线时,使用所述第二唯一任播前缀将源自所述一个或多个第二地理区域中的第二内容请求路由至所述第二组服务器;或者
当所述第二组服务器离线时,使用所述通用任播前缀将源自所述一个或多个第二地理区域中的所述第二内容请求路由至所述第一组服务器。
14.根据权利要求13所述的系统,其中:
所述第一唯一任播前缀包括第一组互联网协议(IP)地址;
所述第二唯一任播前缀包括不同于所述第一组IP地址的第二组IP地址;并且
所述通用任播前缀包括覆盖所述第一组IP地址和所述第二组IP地址的第三组IP地址。
15.根据权利要求13或权利要求14的系统,其中所述路由协议包括边界网关协议。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/221,658 | 2021-04-02 | ||
US17/221,658 US20220321479A1 (en) | 2021-04-02 | 2021-04-02 | Anycast routing technique for a content delivery network |
PCT/US2022/020665 WO2022212068A1 (en) | 2021-04-02 | 2022-03-17 | An improved anycast routing technique for a content delivery network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117099358A true CN117099358A (zh) | 2023-11-21 |
Family
ID=81388803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280026615.4A Pending CN117099358A (zh) | 2021-04-02 | 2022-03-17 | 内容分发网络的改进的任播路由技术 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220321479A1 (zh) |
EP (1) | EP4315805A1 (zh) |
CN (1) | CN117099358A (zh) |
WO (1) | WO2022212068A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11973654B2 (en) * | 2021-10-12 | 2024-04-30 | Centurylink Intellectual Property Llc | Filtered advertisements of secondary servers |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1233572A1 (en) * | 2001-02-19 | 2002-08-21 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for multiple hosts anycast routing |
US7676595B2 (en) * | 2003-12-29 | 2010-03-09 | Intel Corporation | Anycast addressing for internet protocol version six |
JP4356543B2 (ja) * | 2004-07-07 | 2009-11-04 | 株式会社日立製作所 | ネットワークシステム、サーバー及びホームエージェント |
US7788405B2 (en) * | 2005-10-06 | 2010-08-31 | Samsung Electronics Co., Ltd. | Method for automatic configuration of prefixes at maps in HMIPv6 |
KR101221610B1 (ko) * | 2005-11-03 | 2013-01-14 | 삼성전자주식회사 | 무선 통신 시스템에서 링크 id 프리픽스와 함께 고속이동성 ip를 지원하기 위한 방법 및 장치 |
US20090172192A1 (en) * | 2007-12-28 | 2009-07-02 | Christian Michael F | Mapless Global Traffic Load Balancing Via Anycast |
US7797426B1 (en) * | 2008-06-27 | 2010-09-14 | BitGravity, Inc. | Managing TCP anycast requests |
US8180896B2 (en) * | 2008-08-06 | 2012-05-15 | Edgecast Networks, Inc. | Global load balancing on a content delivery network |
US7864765B2 (en) * | 2008-09-30 | 2011-01-04 | At&T Intellectual Property I, L.P. | Anycast-based internet protocol redirection to alleviate partial routing tables |
US7924830B2 (en) * | 2008-10-21 | 2011-04-12 | At&T Intellectual Property I, Lp | System and method to route data in an anycast environment |
US8296458B2 (en) * | 2009-08-24 | 2012-10-23 | At&T Intellectual Property I, Lp | Adaptive routing of content requests using multiple anycast addresses |
US8560598B2 (en) * | 2009-12-22 | 2013-10-15 | At&T Intellectual Property I, L.P. | Integrated adaptive anycast for content distribution |
US8621042B2 (en) * | 2010-12-27 | 2013-12-31 | Limelight Networks, Inc. | Anycast redirect to unicast content download |
US8745177B1 (en) * | 2011-11-01 | 2014-06-03 | Edgecast Networks, Inc. | End-to-end monitoring and optimization of a content delivery network using anycast routing |
US9467369B2 (en) * | 2013-08-02 | 2016-10-11 | Time Warner Cable Enterprises Llc | Packetized content delivery apparatus and methods |
US9276991B2 (en) * | 2013-09-18 | 2016-03-01 | Xerox Corporation | Method and apparatus for providing a dynamic tool menu based upon a document |
US9876737B2 (en) * | 2014-07-11 | 2018-01-23 | Oracle International Corporation | System and method for supporting efficient load-balancing in a high performance computing (HPC) environment |
CA2965852C (en) * | 2014-10-27 | 2021-08-31 | Level 3 Communications, Llc | Content delivery systems and methods |
US10205663B1 (en) * | 2014-12-23 | 2019-02-12 | Amazon Technologies, Inc. | Managing host computing devices |
US10033635B2 (en) * | 2015-11-11 | 2018-07-24 | Fastly, Inc. | Enhanced infrastructure routing with prefixed network addressing in content delivery networks |
CA3021844A1 (en) * | 2016-04-22 | 2017-10-26 | Level 3 Communications, Llc | Anycast routing techniques in a network |
CN108322368B (zh) * | 2017-06-23 | 2020-01-03 | 新华三技术有限公司 | 视频点播方法和装置 |
US10742593B1 (en) * | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10567333B2 (en) * | 2017-11-01 | 2020-02-18 | Verizon Digital Media Services Inc. | Deterministic traffic management in an anycast network |
US11754997B2 (en) * | 2018-02-17 | 2023-09-12 | Ei Electronics Llc | Devices, systems and methods for predicting future consumption values of load(s) in power distribution systems |
US11902383B2 (en) * | 2018-11-26 | 2024-02-13 | Neoatomic LLC | Adaptive media content delivery network |
US10645008B1 (en) * | 2018-12-06 | 2020-05-05 | Verizon Digital Media Services Inc. | Predictive Anycast traffic shaping |
US11283757B2 (en) * | 2019-06-25 | 2022-03-22 | Akamai Technologies, Inc. | Mapping internet routing with anycast and utilizing such maps for deploying and operating anycast points of presence (PoPs) |
CN110708249B (zh) * | 2019-09-04 | 2021-04-02 | 厦门网宿有限公司 | 一种二层隧道的切换方法、系统及设备 |
CN112468604B (zh) * | 2019-09-06 | 2022-03-25 | 华为技术有限公司 | 域名系统服务器的确定方法、请求处理方法和装置、系统 |
US11451477B2 (en) * | 2019-09-27 | 2022-09-20 | Amazon Technologies, Inc. | Load balanced access to distributed endpoints |
US11425042B2 (en) * | 2019-09-27 | 2022-08-23 | Amazon Technologies, Inc. | Managing data throughput in a distributed endpoint network |
CN112671938B (zh) * | 2019-10-15 | 2023-06-20 | 华为云计算技术有限公司 | 业务服务提供方法及系统、远端加速网关 |
US11916995B1 (en) * | 2019-11-04 | 2024-02-27 | Edjx, Inc. | Systems and methods for locating microserver nodes in proximity to edge devices using georouting |
US11394635B2 (en) * | 2020-03-28 | 2022-07-19 | Dell Products L.P. | Aggregated bit index explicit replication networking system |
US11516112B2 (en) * | 2020-10-20 | 2022-11-29 | Ciena Corporation | Optimized layer 3 VPN control plane using segment routing |
US11277328B1 (en) * | 2020-08-17 | 2022-03-15 | Juniper Networks, Inc. | Using anycast as an abstract next hop (ANH) to reduce information related to border gateway protocl (BGP) next hops received by autonomous system border routers (ASBRs) and/or to improve BGP path convergence |
EP4218216A1 (en) * | 2020-09-22 | 2023-08-02 | Google LLC | Administering network-connected devices using tunneled routing |
WO2022087236A1 (en) * | 2020-10-22 | 2022-04-28 | Futurewei Technologies, Inc. | Network layer support for 5g edge computing sticky services |
JP2023547485A (ja) * | 2020-10-30 | 2023-11-10 | 華為技術有限公司 | 次ホップ決定方法および装置 |
US11489815B2 (en) * | 2021-02-21 | 2022-11-01 | Path Network Inc. | Methods and systems for synchronizing state amongst monitoring nodes |
US11916729B2 (en) * | 2021-03-12 | 2024-02-27 | Edgio, Inc. | Automated configuration of a content delivery network |
US20220295117A1 (en) * | 2021-03-12 | 2022-09-15 | Limelight Networks, Inc. | Unified routing and caching logic for applications utilizing a content delivery network |
US11677717B2 (en) * | 2021-03-22 | 2023-06-13 | Cloudflare, Inc. | Unified network service that connects multiple disparate private networks and end user client devices operating on separate networks |
US20220377007A1 (en) * | 2021-05-20 | 2022-11-24 | Fastly, Inc. | Enhanced infrastructure routing with prefixed network addressing in content delivery networks |
US11722402B2 (en) * | 2021-07-28 | 2023-08-08 | Edgio, Inc. | Systems and methods for preemptive detection and correction of network issues based on control plane messaging |
US20230239234A1 (en) * | 2022-01-25 | 2023-07-27 | Vmware, Inc. | Providing dns service in an sd-wan |
US20230269223A1 (en) * | 2022-02-22 | 2023-08-24 | Cisco Technology, Inc. | Secured advertisement of autoconfigured internet protocol prefixes in a cloud environment |
US20230412503A1 (en) * | 2022-03-07 | 2023-12-21 | Juniper Networks, Inc. | Determining unicast addresses of gateway network devices associated with an anycast address in vxlan-evpn dci environments |
US11706292B1 (en) * | 2022-03-15 | 2023-07-18 | Disney Enterprises, Inc. | Local preference in anycast CDN routing |
US11665090B1 (en) * | 2022-03-28 | 2023-05-30 | Amazon Technologies, Inc. | Using fast-path nodes of packet processing services as intermediaries for workload migration workflows |
US11799950B1 (en) * | 2022-03-28 | 2023-10-24 | Amazon Technologies, Inc. | Seamless migration of packet processing workloads between exception path node groups |
WO2023199077A1 (en) * | 2022-04-15 | 2023-10-19 | Citrix Systems, Inc | Systems and methods for geographically distributed node replication |
US20240022598A1 (en) * | 2022-07-14 | 2024-01-18 | Vmware, Inc. | Two tier dns |
US20240022538A1 (en) * | 2022-07-14 | 2024-01-18 | Vmware, Inc. | Two tier dns |
US20240048525A1 (en) * | 2022-08-02 | 2024-02-08 | Centurylink Intellectual Property Llc | Systems and Methods to Provide Dynamic Capacity Adjustments in Different Anycast Regions |
US11909716B1 (en) * | 2022-12-08 | 2024-02-20 | Nokia Solutions And Networks Oy | Locator lookup-based, low-latency, multi-access IP mobility |
US11895227B1 (en) * | 2023-05-23 | 2024-02-06 | Cloudflare, Inc. | Distributed key management system with a key lookup service |
-
2021
- 2021-04-02 US US17/221,658 patent/US20220321479A1/en active Pending
-
2022
- 2022-03-17 WO PCT/US2022/020665 patent/WO2022212068A1/en active Application Filing
- 2022-03-17 EP EP22719387.7A patent/EP4315805A1/en active Pending
- 2022-03-17 CN CN202280026615.4A patent/CN117099358A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4315805A1 (en) | 2024-02-07 |
US20220321479A1 (en) | 2022-10-06 |
WO2022212068A1 (en) | 2022-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11888650B2 (en) | Traffic delivery using anycast and end user-based mapping in an overlay network | |
US10911527B2 (en) | Load balancing with layered edge servers | |
EP3318047B1 (en) | Systems and methods for load balancing in a distributed software defined network packet core system | |
US20210226916A1 (en) | Systems and methods for utilization of anycast techniques in a dns architecture | |
US7706280B2 (en) | Heavy load packet-switched routing | |
US9967227B2 (en) | Enhanced content route selection in content delivery networks | |
US20110099259A1 (en) | Managing TCP anycast requests | |
US11711293B2 (en) | Per-provider origin pull | |
US20190028388A1 (en) | Enhanced infrastructure routing with prefixed network addressing in content delivery networks | |
US20210044509A1 (en) | Intelligent Edge Gateway Device with Path and Response Time Optimization | |
CN105610930A (zh) | 一种基于dns的数据优选方法 | |
CN117099358A (zh) | 内容分发网络的改进的任播路由技术 | |
US9363102B1 (en) | Methods and apparatus for implementing anycast flow stickiness in stateful sessions | |
CN114024971A (zh) | 业务数据处理方法、Kubernetes集群及介质 | |
US20230246943A1 (en) | Routing for static border gateway protocol | |
Cabellos-Aparicio et al. | Load Balancing in Mobile IPv6's Correspondent Networks with Mobility Agents | |
Hussein | Request Routing In Content Delivery Networks | |
CN114710548A (zh) | 报文转发方法及装置 | |
CN118075266A (zh) | 内容分发方法、装置、电子设备、存储介质及程序产品 | |
JACOBS-BURTON | CROSS REFERENCE TO RELATED APPLICATIONS | |
Data | CROSS-REFERENCE TO RELATED APPLICATIONS |
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 |