US-20260128981-A1 - CACHE LOCALIZATION USING PREFIX BASED TARGETING
Abstract
Aspects of the present disclosure provide techniques for improved cache localization. Network path data received from a plurality of routing advertisements for a communication network is aggregated, the communication network comprising a plurality of content delivery network (CDN) caches. Link utilization for a plurality of links in the communication network relating to the plurality of CDN caches is determined, and a connectivity table reflecting, for each of a plurality of routes in the communication network, one or more characteristics of the routes is generated. Communication between a requesting client and a first CDN cache, of the plurality of CDN caches, is routed based on the connectivity table and the determined link utilization.
Inventors
- Eric C. Friedrich
- Joseph D. HIGGINS
- Bradley A. TARNO
- Tiffeny E. CHEN
- Anthony D. DEGLIOMINI
- Richard J. Stein
Assignees
- DISNEY ENTERPRISES, INC.
Dates
- Publication Date
- 20260507
- Application Date
- 20241106
Claims (20)
- 1 . A method, comprising: aggregating network path data received from a plurality of routing advertisements for a communication network, the communication network comprising a plurality of content delivery network (CDN) caches; determining link utilization for a plurality of links in the communication network relating to the plurality of CDN caches; generating a connectivity table reflecting, for each of a plurality of routes in the communication network, one or more characteristics of the routes; and routing communication between a requesting client and a first CDN cache, of the plurality of CDN caches, based on the connectivity table and the determined link utilization.
- 2 . The method of claim 1 , wherein the connectivity table comprises, for each of the plurality of routes, at least one of: (i)one or more client internet protocol (IP) address prefixes, (ii) a bandwidth capacity, or (iii) a destination address.
- 3 . The method of claim 2 , wherein the one or more client IP address prefixes comprise at least one of: (i) IPv4 IP addresses, (ii) IPv6 IP addresses, or (iii) both IPv4 and IPv6 IP addresses.
- 4 . The method of claim 2 , wherein the destination address comprises at least one of a router address, a region, or a next-hop.
- 5 . The method of claim 4 , wherein the destination address comprises all of the router address, the region, and the next-hop.
- 6 . The method of claim 1 , wherein the routing advertisements comprise border gateway protocol (BGP) advertisements.
- 7 . The method of claim 6 , wherein aggregating the network path data comprises indexing the BGP routing advertisements using at least one of: (i) an identified peer network, (ii) an identified point of presence (PoP) for a peer, (iii) one or more IP prefixes available at a peer, or (iv) an amount of bandwidth available for a peer.
- 8 . The method of claim 7 , wherein aggregating the network path data comprises indexing the BGP routing advertisements using the identified peer network, and wherein the identified peer network relates to at least one of: (i) an Internet exchange point (IXP) (ii) a private network interconnect (PNI).
- 9 . The method of claim 7 , wherein aggregating the network path data comprises indexing the BGP routing advertisements using all of: (i) the identified peer network, (ii) the identified point of presence (PoP) for a peer, (iii) the or more IP prefixes available at a peer, and (iv) the amount of bandwidth available for a peer.
- 10 . The method of claim 1 , wherein determining link utilization for the plurality of links relating to the plurality of CDN caches comprises at least one of: (i) aggregating client usage data or (ii) examining device interface counters.
- 11 . A non-transitory computer program product comprising: one or more non-transitory computer readable media containing, in any combination, computer program code that, when executed by operation of any combination of one or more processors, performs operations comprising: aggregating network path data received from a plurality of routing advertisements for a communication network, the communication network comprising a plurality of content delivery network (CDN) caches; determining link utilization for a plurality of links in the communication network relating to the plurality of CDN caches; generating a connectivity table reflecting, for each of a plurality of routes in the communication network, one or more characteristics of the routes; and routing communication between a requesting client and a first CDN cache, of the plurality of CDN caches, based on the connectivity table and the determined link utilization.
- 12 . The non-transitory computer program product of claim 11 , wherein the connectivity table comprises, for each of the plurality of routes, one or more client internet protocol (IP) address prefixes, a bandwidth capacity, and a destination address.
- 13 . The non-transitory computer program product of claim 12 , wherein the destination address comprises at least one of a router address, a region, or a next-hop.
- 14 . The non-transitory computer program product of claim 11 , wherein the routing advertisements comprise border gateway protocol (BGP) advertisements, and wherein aggregating the network path data comprises indexing the BGP routing advertisements using at least one of: (i) an identified peer network, (ii) an identified point of presence (PoP) for a peer, (iii) one or more IP prefixes available at a peer, or (iv) an amount of bandwidth available for a peer.
- 15 . The non-transitory computer program product of claim 11 , wherein determining link utilization for the plurality of links relating to the plurality of CDN caches comprises at least one of: (i) aggregating client usage data or (ii) examining device interface counters.
- 16 . A system, comprising: one or more processors; and one or more memories storing a program, which, when executed on any combination of the one or more processors, performs operations, the operations comprising: aggregating network path data received from a plurality of routing advertisements for a communication network, the communication network comprising a plurality of content delivery network (CDN) caches; determining link utilization for a plurality of links in the communication network relating to the plurality of CDN caches; generating a connectivity table reflecting, for each of a plurality of routes in the communication network, one or more characteristics of the routes; and routing communication between a requesting client and a first CDN cache, of the plurality of CDN caches, based on the connectivity table and the determined link utilization.
- 17 . The system of claim 16 , wherein the connectivity table comprises, for each of the plurality of routes, one or more client internet protocol (IP) address prefixes, a bandwidth capacity, and a destination address.
- 18 . The system of claim 17 , wherein the destination address comprises at least one of a router address, a region, or a next-hop.
- 19 . The system of claim 16 , wherein the routing advertisements comprise border gateway protocol (BGP) advertisements, and wherein aggregating the network path data comprises indexing the BGP routing advertisements using at least one of: (i) an identified peer network, (ii) an identified point of presence (PoP) for a peer, (iii) one or more IP prefixes available at a peer, or (iv) an amount of bandwidth available for a peer.
- 20 . The system of claim 16 , wherein determining link utilization for the plurality of links relating to the plurality of CDN caches comprises at least one of: (i) aggregating client usage data or (ii) examining device interface counters.
Description
BACKGROUND Content Distribution Networks (CDNs) are large, geographically spread networks of caches. These caches deliver video and other content (e.g., audio content, streaming video content, textual content, image content, electronic gaming content, or any other suitable content) to recipients. A typical large-scale content provider (e.g., a streaming video provider) uses multiple CDNs with multiple available caches to deliver content (e.g., streaming video) to recipients. Selecting the appropriate cache, and appropriate network route, for a given recipient is a challenging problem. BRIEF DESCRIPTION OF THE DRAWINGS So that the manner in which the above recited aspects are attained and can be understood in detail, a more particular description of embodiments described herein, briefly summarized above, may be had by reference to the appended drawings. It is to be noted, however, that the appended drawings illustrate typical embodiments and are therefore not to be considered limiting; other equally effective embodiments are contemplated. FIG. 1 illustrates a computing environment for cache localization, according to one embodiment. FIG. 2 is a block diagram illustrating a controller for cache localization, according to one embodiment. FIG. 3 is a flowchart illustrating cache localization, according to one embodiment. FIG. 4 is a flowchart illustrating aggregating network path data for cache localization, according to one embodiment. FIG. 5 is a flowchart illustrating determining link utilization for cache localization, according to one embodiment. FIG. 6 illustrates a connectivity table for cache localization, according to one embodiment. DETAILED DESCRIPTION One of the challenges for distributing content using CDNs is client localization. Given a client and the requested content, a system selects a CDN cache to deliver the content to the client. But selecting which cache to use is a problem with many dimensions. Different routes to fulfill client requests can have different latencies, and different costs (e.g., computational costs, monetary costs, or both). For example, a system could select the cache to use for servicing content based on client proximity to the cache (e.g., geographic proximity, network proximity, or any other suitable proximity), cache health, or cache capacity. One or more techniques described below address one of these dimensions: selecting a cache based on client proximity (e.g., network proximity), among other factors. In one embodiment, the cache to use can be identified using geolocation. For example, an internet protocol (IP) geolocation database can be used to obtain latitude and longitude based on a requesting client IP address. The estimated client location can then compared to all cache locations to determine the closest cache. While this approach is relatively straightforward, because it can be implemented using existing IP geolocation databases and limited computation, it suffers from inaccuracies. For example, the client IP address may not accurately reflect the client's geographic location, and the geolocation database may not be accurate. As another example, even where the lookup is accurate, the closest geographic cache for a client is not necessarily the closest cache for the client in terms of network distance and may not be the preferred cache to serve content to the client. Alternatively, or in addition, the cache can be identified using latency mapping. In an embodiment, latency mapping employs empirical measurements of client requests (e.g., previous client requests) to build a large, detailed map of the most suitable cache. But this approach is very computationally expensive, and requires processing large amounts of data to generate and maintain the map. Further, special considerations must be made for how to handle cache failure or changes in network paths. A further approach is the use of Anycast. Typically, Internet traffic is routed using Unicast, in which traffic destined for a particular IP address is serviced by a single host advertising that IP address. Anycast allows the same IP address to be advertised from many hosts. At every hop, the switch or router determines the lowest cost path for the packet, automatically localizing clients to the closest cache. While this can be effective in identifying the closest cache for a client, in terms of network distance, it cedes control of localization to the network and does not allow fine control by the CDN or content provider. Further, load balancing is generally very challenging, especially if many clients are located close together. One or more embodiments disclosed herein provide an improved approach for cache localization. In an embodiment, a connectivity table is created by aggregating network path data identified from a routing protocol and fusing it with real-time, or near real-time, usage telemetry. For example, routing advertisements (e.g., border gateway protocol (BGP) advertisements) can be used to iden