US7706280B2 - Heavy load packet-switched routing - Google Patents

Heavy load packet-switched routing Download PDF

Info

Publication number
US7706280B2
US7706280B2 US11/195,247 US19524705A US7706280B2 US 7706280 B2 US7706280 B2 US 7706280B2 US 19524705 A US19524705 A US 19524705A US 7706280 B2 US7706280 B2 US 7706280B2
Authority
US
United States
Prior art keywords
route
network
full
content objects
networks
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.)
Expired - Fee Related, expires
Application number
US11/195,247
Other versions
US20070025327A1 (en
Inventor
Nathan F. Raciborski
Michael M. Gordon
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.)
Edgio Inc
Original Assignee
Limelight Networks Inc
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 Limelight Networks Inc filed Critical Limelight Networks Inc
Priority to US11/195,247 priority Critical patent/US7706280B2/en
Assigned to LIMELIGHT NETWORKS, INC. reassignment LIMELIGHT NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GORDON, MICHAEL M., RACIBORSKI, NATHAN F.
Priority to US11/461,173 priority patent/US7961625B2/en
Priority to BRPI0614251A priority patent/BRPI0614251A2/en
Priority to JP2008525287A priority patent/JP2009504105A/en
Priority to PCT/US2006/030222 priority patent/WO2007016654A2/en
Priority to CNA2006800339141A priority patent/CN101263460A/en
Priority to CN2006800339832A priority patent/CN101263691B/en
Priority to JP2008525177A priority patent/JP2009504101A/en
Priority to PCT/US2006/031311 priority patent/WO2007016708A2/en
Priority to EP06789278.6A priority patent/EP1911210B1/en
Priority to EP06789689A priority patent/EP1913476A2/en
Assigned to SILICON VALLEY BANK reassignment SILICON VALLEY BANK SECURITY AGREEMENT Assignors: LIMELIGHT NETWORKS, INC.
Publication of US20070025327A1 publication Critical patent/US20070025327A1/en
Application granted granted Critical
Publication of US7706280B2 publication Critical patent/US7706280B2/en
Assigned to LIMELIGHT NETWORKS, INC. reassignment LIMELIGHT NETWORKS, INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: SILICON VALLEY BANK
Priority to US13/102,941 priority patent/US8422376B2/en
Priority to US13/848,868 priority patent/US9094320B2/en
Priority to US14/300,076 priority patent/US9100463B2/en
Priority to US14/754,453 priority patent/US20160156741A1/en
Assigned to LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER] reassignment LYNROCK LAKE MASTER FUND LP [LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER] PATENT SECURITY AGREEMENT Assignors: EDGIO, INC., MOJO MERGER SUB, LLC
Assigned to U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION reassignment U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION PATENT SECURITY AGREEMENT Assignors: EDGIO, INC., MOJO MERGER SUB, LLC
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • 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/101Server selection for load balancing based on network conditions
    • 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/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • 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/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • 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/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources

Definitions

  • This disclosure relates in general to content delivery and, more specifically, but not by way of limitation, to dynamic bandwidth allocation for content delivery.
  • a content delivery network is used by many web sites to deliver content more efficiently.
  • the CDN may host, mirror or cache the content as well as deliver it to a requesting party.
  • a web site or origin server is linked to the CDN such that some or all content can be sourced from the CDN rather than the web site. This process of fulfilling a link through a CDN is usually transparent to the user.
  • CDNs deliver content objects such as files or streams to tens of thousands of recipients in a short period of time. Egress from the CDN can be overwhelmed by these large events. These egress points have finite bandwidth that serve as a bottleneck for large events. To avoid these bottlenecks, CDNs overbuild their egress points in anticipation of the loading.
  • FIGS. 1A-1C are block diagrams of embodiments of a content system
  • FIG. 2 is a block diagram of an embodiment of the content system that exposes routing details of the Internet
  • FIG. 3 is a block diagram of an embodiment of content delivery network (CDN);
  • CDN content delivery network
  • FIGS. 4A-4B are block diagrams of embodiments of the portion of the content system that shows the one or more points of presence (POP) for a CDN;
  • FIGS. 5A-C are flow diagrams of embodiment of a process for delivering content that switches between routing methods.
  • the embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged.
  • a process is terminated when its operations are completed, but could have additional steps not included in the figure.
  • a process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
  • the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information.
  • ROM read only memory
  • RAM random access memory
  • magnetic RAM magnetic RAM
  • core memory magnetic disk storage mediums
  • optical storage mediums flash memory devices and/or other machine readable mediums for storing information.
  • computer-readable medium includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
  • embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof.
  • the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium.
  • a processor(s) may perform the necessary tasks.
  • a code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements.
  • a code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
  • a content originator 106 offloads the delivery of the content objects to a content delivery network (CDN) 110 .
  • the content originator 106 produces a content object and includes a content provider 108 and a content or web site 116 .
  • a content object is any content file or content stream and could include, for example, software, audio, video, pictures and/or text.
  • the content object could be live or stored.
  • CDN 110 Many content providers 108 use a CDN 110 to deliver the content objects to customers or recipients 112 . Once a content object is selected by the recipient 112 , the CDN 110 is passed the delivery address and information to retrieve the content object. The CDN 110 then sources the content object to the recipient 112 . The content provider 108 typically pays the CDN 110 for the delivery of the content object.
  • the content originator 106 is the source or re-distributor of content objects.
  • the content site 116 is a web site viewable with a web browser of the recipient. In other embodiments, the content site 116 could be accessible with application software other than a web browser. Links on the content site 116 are customized to allow delivery through one or more CDNs 110 . The links may be rewritten before a web page is rendered or after a link is activated.
  • the recipient computer 128 receives the content object and processes it at the request of the recipient 112 .
  • a web browser on the recipient computer 128 is used to download the file or stream from the content originator 106 by using the CDN 110 .
  • a universal resource identifier (URI) in the web browser is found on the content site. The URI is rewritten before downloading a web page or through a redirection process to allow the CDN 110 to deliver a content object that came from the content originator 106 .
  • URI universal resource identifier
  • FIG. 1B another embodiment of the content system 100 - 2 is shown where a content originator 106 offloads the delivery of the content objects or streams to a captive CDN 110 - 1 .
  • the CDN 110 is a third party with respect to the content originator 106 .
  • the captive CDN 110 is associated with the content originator and selectively used to delivery content objects or streams.
  • the functions of the CDN 110 could be combined with and/or divided from other functions of the content originator 106 .
  • a content originator 106 can choose to offload the delivery of the content objects or streams to either a captive CDN 110 - 1 or an external CDN 110 - 2 .
  • Routing algorithms used to choose between the two CDNs 110 could be based upon efficiency and/or cost until one of the two reaches a certain level of utilization, where after the routing algorithm switches to one not based on efficiency.
  • the requests could be assigned to one CDN 110 or the other in a random, round-robin, sequential or any other fashion.
  • FIG. 2 a block diagram of an embodiment of the content system 200 is shown that exposes routing details of the Internet 104 .
  • This embodiment shows the complex relationships between various networks 222 , 224 that make up the Internet.
  • the CDN 110 has three egress points, namely, a first egress point goes to a first tier 1 network 222 - 1 , a second egress point goes to a second tier 1 network 222 - 2 and a third egress point goes to a peer terminal network 220 .
  • Many other configurations are possible and this embodiment is simplified in some respects.
  • the Internet 104 is largely a group of networks 222 , 224 that agree to carry each-others network traffic for free or some fee. These networks include tier 1 or full-route networks 222 , peer terminal networks 220 and non-peer terminal networks 224 .
  • Tier 1 networks 222 are networks that can generally route to any address on the Internet, but they typically charge to receive content objects from CDNs 110 .
  • Tier 1 networks 222 are full-route networks in that any terminal network 220 , 224 is reachable from any tier 1 network 222 .
  • Recipient computers get their Internet access through a terminal network 220 , 224 .
  • the last network involved in the delivery to the recipient computer 128 is the terminal network 220 , 224 .
  • Peer terminal networks 220 accept network traffic from the CDN 110 with little or no additional cost, whereas non-peer terminal networks 224 charge a fee for network traffic that leaves the CDN 110 .
  • Terminal networks include both peer and non-peer networks 220 , 224 and are distinguishable from tier 1 networks 222 in that terminal networks generally only accept content objects for a subset of valid IP addresses on the Internet 104 .
  • this subset of valid IP addresses are recipient computers 128 associated with that terminal network 220 , 224 .
  • a first group of recipient computers 128 - 1 is associated with a first non-peer terminal network 224 - 1 and a second group of recipient computers 128 - 2 is associated with a second non-peer terminal network 224 - 2 .
  • Each CDN 110 has different arrangements with the various networks 222 , 224 that make up the Internet 104 . Because of these differing arrangements, the delivering costs to each CDN 110 could vary for a particular recipient.
  • the CDN 110 has a relationship with two tier 1 networks 222 .
  • Each tier 1 network 222 can rout to the two non-peer networks 224 , but the efficiency would vary for each tier 1 network 222 .
  • All tier 1 networks generally have peering relationships with each other, but a first tier 1 network 222 - 1 cannot pass traffic to another tier 1 network 222 - 2 where the first tier 1 network 222 - 1 has egress to the terminal network associated with the target recipient computer for the traffic.
  • the CDN 110 would rely upon one of the tier 1 networks 222 to send the content object to the non-peer networks 224 , who would finally pass it to the recipient computer 128 - 1 , 128 - 2 .
  • the CDN can choose which tier 1 network 222 to use for a particular delivery.
  • the content site might be given the option of either tier 1 network 222 for use when the content object is delivered.
  • Various tier 1 networks 222 might be distinguished by a CDN 110 or content provider 108 based upon price, QoS and/or other factors.
  • FIG. 3 a block diagram of an embodiment of CDN 110 is shown.
  • This embodiment has a central POP traffic distributor 316 and central data store 312 coupled by a WAN 320 or other backbone to a number of remote POPs 304 .
  • Various embodiments could have any number of POPs 304 geographically distributed to deliver content.
  • Each POP 304 has egress to tier 1 networks 222 and peer networks 220 to deliver to recipient computers 128 .
  • Routing decisions are made in a POP traffic distributor 316 and/or in the point of presence 304 .
  • the POP traffic distributor 316 chooses the POP 304 and the POP 304 chooses the egress point.
  • the POP traffic distributor 316 makes all the routing decisions within the CDN 110 .
  • the POP traffic distributor 316 receives requests for content objects through a content request interface 314 and distributes those requests to a POP 304 best suited to service the request.
  • the central data store 312 may originally hold the content object, but it is cached or mirrored at a regional data store 308 .
  • Communication between the POP traffic distributor 316 and the POPs takes place over a WAN backbone 320 (e.g., leased line, a private network and/or the Internet 104 ).
  • POPs 304 there are three POPs 304 that serve requests for content objects from their respective regional data store 308 .
  • the POPs 304 each have egress to various tier 1 networks 222 and peer networks 220 to serve various recipient computers 128 . Different POPs 304 could have egress to different networks.
  • the POP traffic distributor 316 is aware of the egress options for each POP 304 along with the terminal network 220 , 224 associated with a particular recipient computer 128 . So long as a particular POP 304 is not saturated, the POP traffic distributor 316 will include that POP 304 as a possible choice for delivering a particular content object. Once the content object request is associated with a particular POP 304 , it will be served from that POP 304 . That is a particular content object is not divided among multiple POPs 304 in this embodiment.
  • FIG. 4A a block diagram of an embodiment of portions of the content system 100 - 1 is shown that illustrates two POPs 304 for the CDN 110 .
  • Many embodiment would have additional POPs 304 , but the simplified embodiment shown in this figure illustrates operation.
  • the pop traffic distributor 316 assigns delivery of particular content objects between the two POPs 304 .
  • Each POP 304 has different egress points. Each egress point would have some type of interface circuit to couple the CDN 110 to the network 222 , 220 .
  • This embodiment has four tier 1 networks 222 , four non-peer terminal networks 224 and three peer terminal networks 220 .
  • a backbone could connect the POPs 304 with each other and connect the POPs 304 with other portions of the CDN 110 .
  • the first POP 304 - 1 has five egress options to reach the seven groups of recipient computers 128 .
  • the first through third tier 1 networks 222 - 1 , 222 - 2 , 222 - 3 and the first and second peer networks 220 - 1 , 220 - 2 can be reached directly by the first POP 304 - 1 .
  • the first POP 304 - 1 would use the first through third tier 1 networks 222 - 1 , 222 - 2 , 222 - 3 to indirectly reach these destinations.
  • the first POP 304 - 1 could send traffic directly to the first peer network 220 - 1 or through any of the first through third tier 1 networks 222 - 1 , 222 - 2 , 222 - 3 .
  • the first peer network 220 - 1 would be favored because of cost, but once the egress point to the first peer network 220 - 1 saturates a switch to one of the tier 1 networks 222 - 1 , 222 - 2 , 222 - 3 would be made.
  • the second POP 304 - 2 has four egress points that include the second and third peer networks 220 - 2 , 220 - 3 and the third and fourth tier 1 networks 222 - 3 , 222 - 4 .
  • the second POP 304 - 2 cannot directly route to any of the non-peer networks 224 or the first peer network 220 - 1 . To reach these destinations indirectly, the traffic would be routed by the second POP 304 - 2 through the third or fourth tier 1 networks 222 - 3 , 222 - 4 . In one routing example to the first group of recipient computers 128 - 1 , the second POP 304 - 2 would take an indirect route through the third or fourth tier 1 networks 222 - 3 , 222 - 4 .
  • the POPs 304 can route based upon efficiency, but could switch to a mode that distributes content objects to tier 1 networks 222 that are not the most efficient. Since each tier 1 network 222 is full-route, any terminal network 220 , 224 can be reached even if not the most efficient route. In this way, saturated peer networks 220 or tier 1 networks 222 can be avoided by using a less optimal route. Different embodiments could use different algorithms when saturation occurs. For example, the remaining routing options could be weighted by cost or current utilization. Some embodiments could randomly or sequentially assign the future requests to other egress points. When the saturated egress point becomes less saturated, routing content objects with that egress point could continue according to efficiency.
  • FIG. 4B a block diagram of another embodiment of portions of the content system 100 - 2 is shown that illustrates a single POP 304 for the CDN 110 .
  • All content object or stream requests are either sourced directly from the content originator 106 or the single POP 304 .
  • the single POP 304 could be from a captive or external CDN 110 - 1 , 110 - 2 .
  • a flow diagram of an embodiment of a process 500 - 1 for delivering content is shown that switches between routing methods.
  • the depicted portion of the process begins in step 504 where a content object request is received by the POP traffic distributor 316 .
  • the CDN can determine an IP address of the requesting computer 128 from the protocol level handshake to pass the URI.
  • the IP address corresponds to a terminal network 220 , 224 and a general geographic region. From this information, peering relationships, POP geographical locations and egress points, are analyzed to determine the possible POPs 304 to use.
  • any saturated POPs 304 can be removed from consideration.
  • a saturated POP may be completely saturated at all egress points or partially saturated at the relevant peering network.
  • routing to the fourth group of recipient computers 128 - 4 in FIG. 4 could resulting in possible routes given in Table I below.
  • the recipient computer 128 - 4 is estimated to be geographically located in Las Vegas, Nev. and uses the second peer terminal network 220 - 2 for Internet access. Since the egress point from the first POP 304 - 1 to the peer network 220 - 2 is 90% saturated along with the tier 1 networks 222 , the first POP 304 - 1 would be removed from consideration although geographically closer to the recipient computer 128 - 4 .
  • step 512 the most efficient egress point is determined.
  • the second POP 304 - 2 is the only remaining POP 304 under consideration, but in other embodiments many more POPs could be available such that egress from multiple POPs is considered.
  • the route direct to the terminal peer network 220 - 2 would be the least costly since there is a peering relationship with the CDN 110 .
  • the request for the content object is passed to the second POP 304 - 2 in step 516 .
  • the decision in step 518 passes the request to step 520 because there is a peering relationship with the terminal network 220 .
  • step 520 a determination is made regarding the saturation level of the second peer network 220 - 2 . Since the second peer network 220 - 2 is only 10% saturated in this example, processing would continue to step 534 where the content object would be delivered by the second POP 304 - 2 using the second peer network 220 - 2 in most cases. In this embodiment, once delivery starts with a particular egress point, it continues on that egress point until the stream or file delivery is completed.
  • a saturation threshold is set at some number, for example, 50%, 60%, 70%, 80%, 90%, 95%, or 100%. Initially, saturation is determined by figuring how much of the bandwidth of the egress point is consumed in one embodiment. If packet loss increases beyond some level, saturation would be found even if the egress point bandwidth is not completely consumed as packet loss is an indicator that there is another bandwidth bottle neck between the egress point and the destination computer 128 .
  • an alternative full-route tier 1 network 222 would be found.
  • the most efficient tier 1 network 222 alternative is chosen in step 528 .
  • the second tier 1 network 222 - 2 is found to be the most efficient as it has the least hops.
  • the affected POP 304 - 1 would switch to delivering all new traffic for the fourth group of recipient computers to the second tier 1 network 222 - 2 until the saturation level of the connection to the second peer network 220 - 2 decreases.
  • a tier 1 network 222 is the first choice in step 518 processing would pass from that step 528 to determine the most efficient tier 1 network 222 to use.
  • the chosen tier 1 network 222 - 2 is checked for saturation in step 524 .
  • the saturation determination is a function of both theoretical bandwidth of the egress point and packet loss. Excessive use of the bandwidth or observed packet loss would result in a determination that the tier 1 network is saturated 222 .
  • the second tier 1 network 222 - 2 is not saturated so processing would go from step 524 to step 534 where the content object would be delivered with the second tier 1 network 222 - 2 .
  • tier 1 network 222 - 2 is saturated as shown in the example of Table II
  • the content object would be delivered by some other tier 1 network 222 .
  • a list of alternative tier 1 networks is determined.
  • the egress from the first POP 304 - 1 to the first, second and third tier 1 networks 222 - 1 , 222 - 2 , 222 - 3 and the egress from the second POP 304 - 2 to the fourth tier 1 network 222 - 4 are all possible egress points where the qualifying saturation level is set to 86%.
  • the traffic that would be routed to the saturated tier 1 network 222 - 2 is diverted to the one or more tier 1 networks 222 in step 540 .
  • tier 1 network 222 There are many different possible algorithms to route to another tier 1 network 222 in step 544 . These algorithms generally distribute traffic across tier 1 networks 222 in one or more POPs 304 so long as those tier 1 networks are not also saturated. For example, a first overflow request could be served by a first POP 304 and the next overflow request could be served by a second POP 304 .
  • Some embodiments only route overflow to tier 1 networks 222 associated with the POP 304 where the saturation occurred instead of considering other POPs 304 .
  • traffic initially destined for the second peer network 220 - 2 or the second tier 1 network 222 - 2 would be distributed between the first and third tier 1 networks 222 - 1 , 222 - 3 , which are not currently saturated.
  • Choosing between the alternative tier 1 networks 222 could be done in a number of ways.
  • Some algorithms could weight the attractiveness of a tier 1 network 222 according to saturation, cost and/or efficiency. None of these algorithms is based solely upon efficiency as the most efficient network 220 , 222 is already saturated.
  • a first algorithm takes all the unsaturated tier 1 networks 222 and determines the cheapest one or more. The future content object requests are distributed randomly or sequentially across all tier 1 networks 222 of the same cost. Where there are several cost levels one algorithm weights the attractiveness of a tier 1 network 222 according to the relative cost. Another algorithm distributes requests according to saturation level such that the least saturated are favored over the more saturated.
  • Yet another algorithm takes all the tier 1 networks 222 that egress to the terminal network 220 , 224 without routing through another tier 1 network 222 and distributes traffic among them. Once the alternative tier 1 network 222 is chosen in step 544 , the request is fulfilled by that tier 1 network 222 in step 534 .
  • FIG. 5B a flow diagram of another embodiment of a process 500 - 2 for delivering content is shown that switches between routing methods.
  • This embodiment eliminates step 528 and does not find an efficient tier 1 network 222 after finding the peer network 220 is saturated. Processing goes from step 520 to step 536 when the peer network 220 is saturated. Accordingly, where the first chosen peer network 220 or tier 1 network 222 is saturated, the alternatives are analyzed to find an alternative. In one embodiment, this has the effect of distributing the traffic across many of the alternative paths.
  • a flow diagram of yet another embodiment of a process 500 - 3 for delivering content is shown that switches between routing methods. This embodiment does not differ from the embodiment of FIG. 5A until after step 516 .
  • the most efficient egress point is determined, which could be egress to a peer network 220 or a tier 1 network 222 . If the first choice is not saturated in step 522 , the content object is delivered in step 534 .
  • step 538 alternative tier 1 and peer networks 222 , 220 are determined.
  • the alternatives may be chosen from the present POP 304 , all possible POPs 304 or all unsaturated POPs 304 .
  • the affected POP switches to routing based upon factors other than efficiency. For example, the routing could be sequential or randomly disbursed among the alternatives, where the alternatives are weighted by cost, saturation level and/or efficiency.
  • the alternative for a particular request is chosen in step 546 and delivered in step 534 . In one embodiment, switching to the alternative routing would distribute excess to other networks 220 , 222 that could deliver a piece of content.
  • switching to the alternative routing method could be done far before saturation.
  • switching could be any threshold such as 40%, 50%, 60%, 70%, or 80% utilization.
  • saturation is not necessarily meant to imply that performance is degraded. Indeed, performance might not be affected until 95% or more saturation in some embodiments. Switching to alternative routing at 50% utilization would serve to avoid any premature risk of degraded performance due to saturation.

Abstract

According to the invention, a content delivery network (CDN) for delivering content objects over the Internet is disclosed. The CDN includes a point of presence (POP), a content object request interface, and a routing function. At least one POP is coupled to a plurality of full-route networks. The content object request interface receives requests for content objects for delivery to a number of end users using a plurality of terminal networks. The routing function that routes content objects in at least two modes, where a first mode routes content objects based upon a first route path chosen based upon delivery efficiency, and a second mode routes at least some content objects using a second route path when at least of a portion of the first route path reaches a level of use. The first and second route paths egress to different full-route networks.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS
This application expressly incorporates by reference all of U.S. application Ser. No. 11/461,173, filed on Jul. 31, 2006, entitled “Routing Under Heavy Loading”
This disclosure relates in general to content delivery and, more specifically, but not by way of limitation, to dynamic bandwidth allocation for content delivery.
A content delivery network (CDN) is used by many web sites to deliver content more efficiently. The CDN may host, mirror or cache the content as well as deliver it to a requesting party. A web site or origin server is linked to the CDN such that some or all content can be sourced from the CDN rather than the web site. This process of fulfilling a link through a CDN is usually transparent to the user.
Singlecasting of large events can be difficult for CDNs to deliver effectively. CDNs deliver content objects such as files or streams to tens of thousands of recipients in a short period of time. Egress from the CDN can be overwhelmed by these large events. These egress points have finite bandwidth that serve as a bottleneck for large events. To avoid these bottlenecks, CDNs overbuild their egress points in anticipation of the loading.
BRIEF DESCRIPTION OF THE DRAWINGS
The present disclosure is described in conjunction with the appended figures:
FIGS. 1A-1C are block diagrams of embodiments of a content system;
FIG. 2 is a block diagram of an embodiment of the content system that exposes routing details of the Internet;
FIG. 3 is a block diagram of an embodiment of content delivery network (CDN);
FIGS. 4A-4B are block diagrams of embodiments of the portion of the content system that shows the one or more points of presence (POP) for a CDN; and
FIGS. 5A-C are flow diagrams of embodiment of a process for delivering content that switches between routing methods.
In the appended figures, similar components and/or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The ensuing description provides preferred exemplary embodiment(s) only, and is not intended to limit the scope, applicability or configuration of the invention. Rather, the ensuing description of the preferred exemplary embodiment(s) will provide those skilled in the art with an enabling description for implementing a preferred exemplary embodiment of the invention. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention as set forth in the appended claims.
Specific details are given in the following description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
Also, it is noted that the embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
Moreover, as disclosed herein, the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. The term “computer-readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
With reference to FIG. 1A, an embodiment of a content system 100 is shown where a content originator 106 offloads the delivery of the content objects to a content delivery network (CDN) 110. The content originator 106 produces a content object and includes a content provider 108 and a content or web site 116. A content object is any content file or content stream and could include, for example, software, audio, video, pictures and/or text. The content object could be live or stored. Throughout the specification, reference may be made to a content object, content stream and/or content file, but it is to be understood that those terms could be used interchangeably where they may appear.
Many content providers 108 use a CDN 110 to deliver the content objects to customers or recipients 112. Once a content object is selected by the recipient 112, the CDN 110 is passed the delivery address and information to retrieve the content object. The CDN 110 then sources the content object to the recipient 112. The content provider 108 typically pays the CDN 110 for the delivery of the content object.
The content originator 106 is the source or re-distributor of content objects. The content site 116 is a web site viewable with a web browser of the recipient. In other embodiments, the content site 116 could be accessible with application software other than a web browser. Links on the content site 116 are customized to allow delivery through one or more CDNs 110. The links may be rewritten before a web page is rendered or after a link is activated.
The recipient computer 128 receives the content object and processes it at the request of the recipient 112. Typically, a web browser on the recipient computer 128 is used to download the file or stream from the content originator 106 by using the CDN 110. A universal resource identifier (URI) in the web browser is found on the content site. The URI is rewritten before downloading a web page or through a redirection process to allow the CDN 110 to deliver a content object that came from the content originator 106.
With reference to FIG. 1B, another embodiment of the content system 100-2 is shown where a content originator 106 offloads the delivery of the content objects or streams to a captive CDN 110-1. In the embodiment of FIG. 1A, the CDN 110 is a third party with respect to the content originator 106. In this embodiments, the captive CDN 110 is associated with the content originator and selectively used to delivery content objects or streams. For a captive CDN 110, the functions of the CDN 110 could be combined with and/or divided from other functions of the content originator 106. When
Referring next to FIG. 1C, yet another embodiment of the content system 100-3 is shown where a content originator 106 can choose to offload the delivery of the content objects or streams to either a captive CDN 110-1 or an external CDN 110-2. Routing algorithms used to choose between the two CDNs 110 could be based upon efficiency and/or cost until one of the two reaches a certain level of utilization, where after the routing algorithm switches to one not based on efficiency. For example, the requests could be assigned to one CDN 110 or the other in a random, round-robin, sequential or any other fashion.
With reference to FIG. 2, a block diagram of an embodiment of the content system 200 is shown that exposes routing details of the Internet 104. This embodiment shows the complex relationships between various networks 222, 224 that make up the Internet. In this embodiment, the CDN 110 has three egress points, namely, a first egress point goes to a first tier 1 network 222-1, a second egress point goes to a second tier 1 network 222-2 and a third egress point goes to a peer terminal network 220. Many other configurations are possible and this embodiment is simplified in some respects.
The Internet 104 is largely a group of networks 222, 224 that agree to carry each-others network traffic for free or some fee. These networks include tier 1 or full-route networks 222, peer terminal networks 220 and non-peer terminal networks 224. Tier 1 networks 222 are networks that can generally route to any address on the Internet, but they typically charge to receive content objects from CDNs 110. Tier 1 networks 222 are full-route networks in that any terminal network 220, 224 is reachable from any tier 1 network 222. Recipient computers get their Internet access through a terminal network 220, 224. The last network involved in the delivery to the recipient computer 128 is the terminal network 220, 224.
Peer terminal networks 220 accept network traffic from the CDN 110 with little or no additional cost, whereas non-peer terminal networks 224 charge a fee for network traffic that leaves the CDN 110. Terminal networks include both peer and non-peer networks 220, 224 and are distinguishable from tier 1 networks 222 in that terminal networks generally only accept content objects for a subset of valid IP addresses on the Internet 104. Typically, this subset of valid IP addresses are recipient computers 128 associated with that terminal network 220, 224. For example, a first group of recipient computers 128-1 is associated with a first non-peer terminal network 224-1 and a second group of recipient computers 128-2 is associated with a second non-peer terminal network 224-2.
Each CDN 110 has different arrangements with the various networks 222, 224 that make up the Internet 104. Because of these differing arrangements, the delivering costs to each CDN 110 could vary for a particular recipient. In this embodiment, the CDN 110 has a relationship with two tier 1 networks 222. Each tier 1 network 222 can rout to the two non-peer networks 224, but the efficiency would vary for each tier 1 network 222. All tier 1 networks generally have peering relationships with each other, but a first tier 1 network 222-1 cannot pass traffic to another tier 1 network 222-2 where the first tier 1 network 222-1 has egress to the terminal network associated with the target recipient computer for the traffic.
To pass content objects to the first and second group of recipient computers 128-1, 128-2, the CDN 110 would rely upon one of the tier 1 networks 222 to send the content object to the non-peer networks 224, who would finally pass it to the recipient computer 128-1, 128-2. The CDN can choose which tier 1 network 222 to use for a particular delivery. The content site might be given the option of either tier 1 network 222 for use when the content object is delivered. Various tier 1 networks 222 might be distinguished by a CDN 110 or content provider 108 based upon price, QoS and/or other factors.
With reference to FIG. 3, a block diagram of an embodiment of CDN 110 is shown. This embodiment has a central POP traffic distributor 316 and central data store 312 coupled by a WAN 320 or other backbone to a number of remote POPs 304. Various embodiments could have any number of POPs 304 geographically distributed to deliver content. Each POP 304 has egress to tier 1 networks 222 and peer networks 220 to deliver to recipient computers 128.
Routing decisions are made in a POP traffic distributor 316 and/or in the point of presence 304. In one embodiment, the POP traffic distributor 316 chooses the POP 304 and the POP 304 chooses the egress point. In another embodiment, the POP traffic distributor 316 makes all the routing decisions within the CDN 110.
The POP traffic distributor 316 receives requests for content objects through a content request interface 314 and distributes those requests to a POP 304 best suited to service the request. The central data store 312 may originally hold the content object, but it is cached or mirrored at a regional data store 308. Communication between the POP traffic distributor 316 and the POPs takes place over a WAN backbone 320 (e.g., leased line, a private network and/or the Internet 104).
In this embodiment, there are three POPs 304 that serve requests for content objects from their respective regional data store 308. The POPs 304 each have egress to various tier 1 networks 222 and peer networks 220 to serve various recipient computers 128. Different POPs 304 could have egress to different networks. The POP traffic distributor 316 is aware of the egress options for each POP 304 along with the terminal network 220, 224 associated with a particular recipient computer 128. So long as a particular POP 304 is not saturated, the POP traffic distributor 316 will include that POP 304 as a possible choice for delivering a particular content object. Once the content object request is associated with a particular POP 304, it will be served from that POP 304. That is a particular content object is not divided among multiple POPs 304 in this embodiment.
Referring next to FIG. 4A, a block diagram of an embodiment of portions of the content system 100-1 is shown that illustrates two POPs 304 for the CDN 110. Many embodiment would have additional POPs 304, but the simplified embodiment shown in this figure illustrates operation. The pop traffic distributor 316 assigns delivery of particular content objects between the two POPs 304. Each POP 304 has different egress points. Each egress point would have some type of interface circuit to couple the CDN 110 to the network 222, 220. This embodiment has four tier 1 networks 222, four non-peer terminal networks 224 and three peer terminal networks 220. A backbone could connect the POPs 304 with each other and connect the POPs 304 with other portions of the CDN 110.
The first POP 304-1 has five egress options to reach the seven groups of recipient computers 128. The first through third tier 1 networks 222-1, 222-2, 222-3 and the first and second peer networks 220-1, 220-2 can be reached directly by the first POP 304-1. To deliver a content object with the third peer network 220-3 or any of the non-peer networks 224, the first POP 304-1 would use the first through third tier 1 networks 222-1, 222-2, 222-3 to indirectly reach these destinations. In one routing example to the first peer network 220-1, the first POP 304-1 could send traffic directly to the first peer network 220-1 or through any of the first through third tier 1 networks 222-1, 222-2, 222-3. Normally, the first peer network 220-1 would be favored because of cost, but once the egress point to the first peer network 220-1 saturates a switch to one of the tier 1 networks 222-1, 222-2, 222-3 would be made.
The second POP 304-2 has four egress points that include the second and third peer networks 220-2, 220-3 and the third and fourth tier 1 networks 222-3, 222-4. The second POP 304-2 cannot directly route to any of the non-peer networks 224 or the first peer network 220-1. To reach these destinations indirectly, the traffic would be routed by the second POP 304-2 through the third or fourth tier 1 networks 222-3, 222-4. In one routing example to the first group of recipient computers 128-1, the second POP 304-2 would take an indirect route through the third or fourth tier 1 networks 222-3, 222-4.
The POPs 304 can route based upon efficiency, but could switch to a mode that distributes content objects to tier 1 networks 222 that are not the most efficient. Since each tier 1 network 222 is full-route, any terminal network 220, 224 can be reached even if not the most efficient route. In this way, saturated peer networks 220 or tier 1 networks 222 can be avoided by using a less optimal route. Different embodiments could use different algorithms when saturation occurs. For example, the remaining routing options could be weighted by cost or current utilization. Some embodiments could randomly or sequentially assign the future requests to other egress points. When the saturated egress point becomes less saturated, routing content objects with that egress point could continue according to efficiency.
Referring next to FIG. 4B, a block diagram of another embodiment of portions of the content system 100-2 is shown that illustrates a single POP 304 for the CDN 110. In this embodiment, there in no backbone between multiple POPs 304. All content object or stream requests are either sourced directly from the content originator 106 or the single POP 304. The single POP 304 could be from a captive or external CDN 110-1, 110-2.
With reference to FIG. 5A, a flow diagram of an embodiment of a process 500-1 for delivering content is shown that switches between routing methods. The depicted portion of the process begins in step 504 where a content object request is received by the POP traffic distributor 316. This could be in the form of a URI that indicates the content object desired. The CDN can determine an IP address of the requesting computer 128 from the protocol level handshake to pass the URI. The IP address corresponds to a terminal network 220, 224 and a general geographic region. From this information, peering relationships, POP geographical locations and egress points, are analyzed to determine the possible POPs 304 to use.
In step 508, any saturated POPs 304 can be removed from consideration. A saturated POP may be completely saturated at all egress points or partially saturated at the relevant peering network. For example, routing to the fourth group of recipient computers 128-4 in FIG. 4 could resulting in possible routes given in Table I below. In this example, the recipient computer 128-4 is estimated to be geographically located in Las Vegas, Nev. and uses the second peer terminal network 220-2 for Internet access. Since the egress point from the first POP 304-1 to the peer network 220-2 is 90% saturated along with the tier 1 networks 222, the first POP 304-1 would be removed from consideration although geographically closer to the recipient computer 128-4.
TABLE I
Routing Possibilities to Fourth Group of Recipient Computers
POP(s) Route Saturation
304-1 in Tucson, AZ 220-2, 128-4 90%
222-2, 220-2, 128-4 85%
222-1, 222-2, 220-2, 128-4 80%
222-3, 222-2, 220-2, 128-4 70%
304-2 in New York, NY 220-2, 128-4 10%
222-3, 222-2, 220-2, 128-4 90%
222-4, 222-2, 220-2, 128-4 40%
In step 512, the most efficient egress point is determined. In this example, the second POP 304-2 is the only remaining POP 304 under consideration, but in other embodiments many more POPs could be available such that egress from multiple POPs is considered. Considering the three routing possibilities for the second POP, the route direct to the terminal peer network 220-2 would be the least costly since there is a peering relationship with the CDN 110. The request for the content object is passed to the second POP 304-2 in step 516. The decision in step 518 passes the request to step 520 because there is a peering relationship with the terminal network 220.
In step 520 a determination is made regarding the saturation level of the second peer network 220-2. Since the second peer network 220-2 is only 10% saturated in this example, processing would continue to step 534 where the content object would be delivered by the second POP 304-2 using the second peer network 220-2 in most cases. In this embodiment, once delivery starts with a particular egress point, it continues on that egress point until the stream or file delivery is completed.
Another example of the routing and saturation levels for the embodiment of FIG. 4 is shown in Table II. In this embodiment, the egress from the first POP 304-1 to the second peer network 220-2 is saturated to a level of 91%. For step 520, a saturation threshold is set at some number, for example, 50%, 60%, 70%, 80%, 90%, 95%, or 100%. Initially, saturation is determined by figuring how much of the bandwidth of the egress point is consumed in one embodiment. If packet loss increases beyond some level, saturation would be found even if the egress point bandwidth is not completely consumed as packet loss is an indicator that there is another bandwidth bottle neck between the egress point and the destination computer 128.
TABLE II
Routing Possibilities to Fourth Group of Recipient Computers
POP(s) Route Saturation
304-1 in Tucson, AZ 220-2, 128-4 91%
222-2, 220-2, 128-4 88%
222-1, 222-2, 220-2, 128-4 72%
222-3, 222-2, 220-2, 128-4 10%
304-2 in New York, NY 220-2, 128-4 95%
222-3, 222-2, 220-2, 128-4 91%
222-4, 222-2, 220-2, 128-4 86%
Where the peer network connection is saturated as in the example of Table II, an alternative full-route tier 1 network 222 would be found. The most efficient tier 1 network 222 alternative is chosen in step 528. In this example, the second tier 1 network 222-2 is found to be the most efficient as it has the least hops. The affected POP 304-1 would switch to delivering all new traffic for the fourth group of recipient computers to the second tier 1 network 222-2 until the saturation level of the connection to the second peer network 220-2 decreases. Where a tier 1 network 222 is the first choice in step 518 processing would pass from that step 528 to determine the most efficient tier 1 network 222 to use.
The chosen tier 1 network 222-2 is checked for saturation in step 524. The saturation determination is a function of both theoretical bandwidth of the egress point and packet loss. Excessive use of the bandwidth or observed packet loss would result in a determination that the tier 1 network is saturated 222. In the example of Table III that is based upon the embodiment of FIG. 4, the second tier 1 network 222-2 is not saturated so processing would go from step 524 to step 534 where the content object would be delivered with the second tier 1 network 222-2.
TABLE III
Routing Possibilities to Fourth Group of Recipient Computers
POP(s) Route Saturation
304-1 in Tucson, AZ 220-2, 128-4 90%
222-2, 220-2, 128-4 65%
222-1, 222-2, 220-2, 128-4 50%
222-3, 222-2, 220-2, 128-4 70%
304-2 in New York, NY 220-2, 128-4 95%
222-3, 222-2, 220-2, 128-4 90%
222-4, 222-2, 220-2, 128-4 90%
Where the tier 1 network 222-2 is saturated as shown in the example of Table II, the content object would be delivered by some other tier 1 network 222. In step 536, a list of alternative tier 1 networks is determined. In this example, the egress from the first POP 304-1 to the first, second and third tier 1 networks 222-1, 222-2, 222-3 and the egress from the second POP 304-2 to the fourth tier 1 network 222-4 are all possible egress points where the qualifying saturation level is set to 86%. The traffic that would be routed to the saturated tier 1 network 222-2 is diverted to the one or more tier 1 networks 222 in step 540.
There are many different possible algorithms to route to another tier 1 network 222 in step 544. These algorithms generally distribute traffic across tier 1 networks 222 in one or more POPs 304 so long as those tier 1 networks are not also saturated. For example, a first overflow request could be served by a first POP 304 and the next overflow request could be served by a second POP 304.
Some embodiments only route overflow to tier 1 networks 222 associated with the POP 304 where the saturation occurred instead of considering other POPs 304. Using the example of Table II, traffic initially destined for the second peer network 220-2 or the second tier 1 network 222-2 would be distributed between the first and third tier 1 networks 222-1, 222-3, which are not currently saturated. Choosing between the alternative tier 1 networks 222 could be done in a number of ways.
Some algorithms could weight the attractiveness of a tier 1 network 222 according to saturation, cost and/or efficiency. None of these algorithms is based solely upon efficiency as the most efficient network 220, 222 is already saturated. A first algorithm takes all the unsaturated tier 1 networks 222 and determines the cheapest one or more. The future content object requests are distributed randomly or sequentially across all tier 1 networks 222 of the same cost. Where there are several cost levels one algorithm weights the attractiveness of a tier 1 network 222 according to the relative cost. Another algorithm distributes requests according to saturation level such that the least saturated are favored over the more saturated. Yet another algorithm takes all the tier 1 networks 222 that egress to the terminal network 220, 224 without routing through another tier 1 network 222 and distributes traffic among them. Once the alternative tier 1 network 222 is chosen in step 544, the request is fulfilled by that tier 1 network 222 in step 534.
With reference to FIG. 5B, a flow diagram of another embodiment of a process 500-2 for delivering content is shown that switches between routing methods. This embodiment eliminates step 528 and does not find an efficient tier 1 network 222 after finding the peer network 220 is saturated. Processing goes from step 520 to step 536 when the peer network 220 is saturated. Accordingly, where the first chosen peer network 220 or tier 1 network 222 is saturated, the alternatives are analyzed to find an alternative. In one embodiment, this has the effect of distributing the traffic across many of the alternative paths.
With reference to FIG. 5C, a flow diagram of yet another embodiment of a process 500-3 for delivering content is shown that switches between routing methods. This embodiment does not differ from the embodiment of FIG. 5A until after step 516. In step 530, the most efficient egress point is determined, which could be egress to a peer network 220 or a tier 1 network 222. If the first choice is not saturated in step 522, the content object is delivered in step 534.
When the initial network 220, 222 is saturated processing continues to step 538 where alternative tier 1 and peer networks 222, 220 are determined. The alternatives may be chosen from the present POP 304, all possible POPs 304 or all unsaturated POPs 304. In step 542, the affected POP switches to routing based upon factors other than efficiency. For example, the routing could be sequential or randomly disbursed among the alternatives, where the alternatives are weighted by cost, saturation level and/or efficiency. The alternative for a particular request is chosen in step 546 and delivered in step 534. In one embodiment, switching to the alternative routing would distribute excess to other networks 220, 222 that could deliver a piece of content.
Although the embodiments of FIGS. 5A-5C talk in terms of saturation, switching to the alternative routing method could be done far before saturation. For example, switching could be any threshold such as 40%, 50%, 60%, 70%, or 80% utilization. Use of the term saturation is not necessarily meant to imply that performance is degraded. Indeed, performance might not be affected until 95% or more saturation in some embodiments. Switching to alternative routing at 50% utilization would serve to avoid any premature risk of degraded performance due to saturation.
While the principles of the disclosure have been described above in connection with specific apparatuses and methods, it is to be clearly understood that this description is made only by way of example and not as limitation on the scope of the invention.

Claims (24)

1. A content delivery network (CDN) for delivering content objects over the Internet, the CDN comprising:
a point of presence (POP), wherein:
the POP is coupled to a plurality of full-route networks,
each of the plurality of full-route networks delivering content objects to a plurality of terminal networks,
the plurality of terminal networks comprise a first terminal network, and
the plurality of terminal networks are coupled to a plurality of end users;
a content object request interface that receives requests for content objects for delivery to the plurality of end users using the plurality of terminal networks; and
a routing function that routes content objects in at least two modes, wherein:
a first mode routes content objects based upon a first route path from the POP to the first terminal network,
the first route path is chosen based upon efficiency based upon an efficiency algorithm,
a second mode routes at least some content objects using a second route path when at least a portion of the first route path reaches a level of use,
the second mode and the first mode are both simultaneously used to route content objects after the portion of the first route path exceeds the level of use,
the second route path is chosen without considering delivery efficiency as defined by the efficiency algorithm,
use of the second route path in the second mode is less efficient than use the first route path in the second mode according to the efficiency algorithm, and
the first and second route paths egress to different full-route networks.
2. The CDN for delivering content objects over the Internet as recited in claim 1, wherein egress from the POP for the second route path starts with a full-route network that is not directly coupled to the first terminal network, whereby another full-route network is used to reach the first terminal network.
3. The CDN for delivering content objects over the Internet as recited in claim 1, wherein the POP is one of a plurality of POPs, the CDN further comprising a backbone coupled to at least two of the plurality of POPs.
4. The CDN for delivering content objects over the Internet as recited in claim 1, wherein the second route path and the first route path pass through the same full-route network on the way to the first terminal network.
5. The CDN for delivering content objects over the Internet as recited in claim 1, wherein the CDN is a captive CDN integral to a content originator.
6. The CDN for delivering content objects over the Internet as recited in claim 1, wherein a full-route network does not pass traffic to another full-route network when the full-route network is directly coupled to the first terminal network.
7. The CDN for delivering content objects over the Internet as recited in claim 1, wherein the POP is one of a plurality of POPs, which are geographically distributed.
8. The CDN for delivering content objects over the Internet as recited in claim 1, wherein the POP stores at least one of the content objects.
9. A method for delivering content objects over the Internet with a distribution system, the method comprising steps of:
receiving a first request to deliver a first content object to a first end user, wherein:
the distribution system comprises a point of presence (POP),
the POP is coupled to a plurality of full-route networks,
the plurality of full-route networks comprise a first full-route network and a second full-route network,
each of the plurality of full-route networks delivering content objects to a plurality of terminal networks,
the plurality of terminal networks comprise a first terminal network,
the first terminal network is coupled to a plurality of end users,
the plurality of end users comprise the first end user and a second end user,
the first end user and the second end user subscribe to the terminal network for Internet service,
the POP is coupled to the first terminal network, and
the first full-route network and the second full-route network are coupled to the first terminal network;
determining that the first end user is associated with the first terminal network;
determining that a first egress point between the POP and the first full-route network is more efficient a route than using the second full-route network;
delivering the first content object with the first egress point;
receiving a second request to deliver a second content object to the second end user,
determining that the first egress point reaches a level of utilization;
determining that the second end user is associated with the first terminal network; and
delivering the second content object with a second egress point between the POP and the second full-route network, wherein:
delivery with the second egress point is triggered by reaching the level of utilization,
delivering the second content object begins while still delivering the first content object, and
the second egress point is chosen without considering routing efficiency of starting delivery with the second egress point.
10. The method for delivering content objects over the Internet with the distribution system as recited in claim 9, wherein the delivering the second content object step comprises a step of sending the second content object between the first full-route network and the second full-route network to reach the first terminal network.
11. The method for delivering content objects over the Internet with the distribution system as recited in claim 9, wherein the second egress point is chosen in at least one of the following ways:
in round-robin fashion from egress points,
randomly from egress points, or
sequentially from egress points.
12. The method for delivering content objects over the Internet with the distribution system as recited in claim 9, wherein:
the first egress point is in a first geographic location,
the second egress point is in a second geographic location, and
the first geographic location is different from the second geographic location.
13. A method for delivering content objects over the Internet with a distribution system, the method comprising steps of:
receiving a first request to deliver a first content object to a first end user, wherein:
the distribution system comprises a point of presence (POP),
the POP is coupled to a plurality of full-route networks,
the plurality of full-route networks comprise a first full-route network and a second full-route network,
each of the plurality of full-route networks delivering content objects to a plurality of terminal networks,
the plurality of terminal networks comprise a first terminal network,
the first terminal network is coupled to a plurality of end users,
the plurality of end users comprise the first end user, a second end user and a third end user,
the first end user, the second end user and the third end user subscribe to the first terminal network for Internet service,
the POP is coupled to the first terminal network, and
the plurality of full-route networks are coupled to the first terminal network;
determining that the first end user is associated with the first terminal network;
delivering the first content object with a first egress point between the POP and the first terminal network;
receiving a second request to deliver a second content object to the second end user,
determining that the first egress point reaches a first level of utilization;
determining that the second end user is associated with the first terminal network;
determining that a second egress point between the POP and, the first full-route network is more efficient a route than using a second egress point between the POP and the second full-route network;
delivering the second content object with the second egress point, wherein delivery with the second egress point is triggered by reaching the first level of utilization;
receiving a third request to deliver a third content object to the third end user,
determining that the second egress point reaches a second level of utilization determining that the third end user is associated with the first terminal network; and
delivering the third content object with a third egress point between the POP and the second full-route network, wherein:
delivery with the third egress point is triggered by reaching the second level of utilization,
delivering the third content object begins while still delivering the second content object, and
the third egress point is chosen without considering routing efficiency of starting delivery with the third egress point.
14. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein each of the plurality of full-route networks and the plurality of terminal networks are autonomous systems.
15. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein delivery of content objects after reaching the second level of utilization are randomly distributed among the other full-route networks.
16. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein delivery of content objects after reaching the second level of utilization are distributed among the plurality of full-route networks, excluding the first full-route network, according to a sequential algorithm.
17. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein delivery of content objects after reaching the second level of utilization are distributed among the plurality of full-route networks, excluding the first full-route network, according to a weighted algorithm.
18. The method for delivering content objects over the Internet with the distribution system as recited in claim 17, wherein the weighted algorithm is weighted by at least one of bandwidth cost, latency, packet loss, or maximum bandwidth.
19. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein at least one of the first or second level of utilization is a percentage of a capacity of the first or second egress point.
20. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein the second level of utilization is defined by a packet loss rate for the second egress point.
21. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein:
the first egress point has lower latency than the second egress point, and
the second egress point has lower latency than the third egress point.
22. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein:
the first egress point has lower cost to the distribution system than the second egress point, and
the second egress point has lower cost to the distribution system than the third egress point.
23. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein the first, second and third content objects are duplicates of each other.
24. The method for delivering content objects over the Internet with the distribution system as recited in claim 13, wherein the content object is a whole file or a whole stream.
US11/195,247 2005-08-01 2005-08-01 Heavy load packet-switched routing Expired - Fee Related US7706280B2 (en)

Priority Applications (15)

Application Number Priority Date Filing Date Title
US11/195,247 US7706280B2 (en) 2005-08-01 2005-08-01 Heavy load packet-switched routing
US11/461,173 US7961625B2 (en) 2005-08-01 2006-07-31 Routing under heavy loading
EP06789689A EP1913476A2 (en) 2005-08-01 2006-08-01 Routing under heavy loading
EP06789278.6A EP1911210B1 (en) 2005-08-01 2006-08-01 Heavy load packet-switched routing
PCT/US2006/030222 WO2007016654A2 (en) 2005-08-01 2006-08-01 Heavy load packet-switched routing
CNA2006800339141A CN101263460A (en) 2005-08-01 2006-08-01 Routing under heavy loading
CN2006800339832A CN101263691B (en) 2005-08-01 2006-08-01 Heavy load packet-switched routing
JP2008525177A JP2009504101A (en) 2005-08-01 2006-08-01 Heavy load packet switched routing
PCT/US2006/031311 WO2007016708A2 (en) 2005-08-01 2006-08-01 Routing under heavy loading
JP2008525287A JP2009504105A (en) 2005-08-01 2006-08-01 Routing under heavy load
BRPI0614251A BRPI0614251A2 (en) 2005-08-01 2006-08-01 methods of delivering content objects over the internet with a distribution system and its content delivery network (cdn)
US13/102,941 US8422376B2 (en) 2005-08-01 2011-05-06 Routing under heavy loading
US13/848,868 US9094320B2 (en) 2005-08-01 2013-03-22 Routing under heavy loading
US14/300,076 US9100463B2 (en) 2005-08-01 2014-06-09 Origin request with peer fulfillment
US14/754,453 US20160156741A1 (en) 2005-08-01 2015-06-29 Origin request with peer fulfillment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/195,247 US7706280B2 (en) 2005-08-01 2005-08-01 Heavy load packet-switched routing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/461,173 Continuation-In-Part US7961625B2 (en) 2005-08-01 2006-07-31 Routing under heavy loading

Publications (2)

Publication Number Publication Date
US20070025327A1 US20070025327A1 (en) 2007-02-01
US7706280B2 true US7706280B2 (en) 2010-04-27

Family

ID=37694188

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/195,247 Expired - Fee Related US7706280B2 (en) 2005-08-01 2005-08-01 Heavy load packet-switched routing

Country Status (6)

Country Link
US (1) US7706280B2 (en)
EP (1) EP1911210B1 (en)
JP (1) JP2009504101A (en)
CN (2) CN101263691B (en)
BR (1) BRPI0614251A2 (en)
WO (1) WO2007016654A2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320141A1 (en) * 2006-12-15 2008-12-25 Starz Entertainment, Llc Affiliate bandwidth management
US20100070876A1 (en) * 2008-09-18 2010-03-18 Pictela, Inc. Self-Replicating Rich Media Interface
US20110172908A1 (en) * 2006-04-14 2011-07-14 Mona Singh System And Method For Presenting A Computed Route
US20110264365A1 (en) * 2005-09-23 2011-10-27 Mona Singh System And Method For Selecting And Presenting A Route To A User
US20110299401A1 (en) * 2005-08-01 2011-12-08 Limelight Networks, Inc. Routing under heavy loading
US8620532B2 (en) 2009-03-25 2013-12-31 Waldeck Technology, Llc Passive crowd-sourced map updates and alternate route recommendations
US8984056B2 (en) * 2012-08-09 2015-03-17 Limelight Networks, Inc. Inter point of presence split architecture

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8699349B2 (en) * 2007-10-26 2014-04-15 Microsoft Corporation Multi-factor optimized routing
US8082290B2 (en) * 2008-03-19 2011-12-20 Verizon Patent And Licensing Inc. Intelligent establishment of peer-to-peer communication
US8321568B2 (en) * 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
WO2010033938A2 (en) * 2008-09-19 2010-03-25 Limelight Networks, Inc. Content delivery network stream server vignette distribution
AU2010276462B1 (en) 2010-12-27 2012-01-12 Limelight Networks, Inc. Partial object caching
AU2010202034B1 (en) 2010-04-07 2010-12-23 Limelight Networks, Inc. Partial object distribution in content delivery network
US8516082B2 (en) * 2009-03-25 2013-08-20 Limelight Networks, Inc. Publishing-point management for content delivery network
EP2425599A4 (en) * 2009-04-28 2013-04-03 Ongame Services Ab Client account managing arrangement on an online gaming system
CN101958829B (en) * 2009-07-13 2013-04-17 华为技术有限公司 Route distribution method, device and system
US20110078230A1 (en) * 2009-09-25 2011-03-31 Emilio Sepulveda Method and system for providing a cdn with granular quality of service
US8219645B2 (en) * 2009-10-02 2012-07-10 Limelight Networks, Inc. Content delivery network cache grouping
US8612622B2 (en) 2009-10-02 2013-12-17 Limelight Networks, Inc. Real-time message queuing for a processing ring
CN102065107A (en) * 2009-11-18 2011-05-18 中兴通讯股份有限公司 Peer-to-peer universal content delivery network and content caching method
WO2011157173A2 (en) 2011-06-03 2011-12-22 华为技术有限公司 Route decision method, content delivery apparatus and content delivery network interconnection system
US8902751B1 (en) * 2012-01-26 2014-12-02 Google Inc. Multi-stage switching topology
US20170063966A1 (en) * 2015-08-31 2017-03-02 Ca, Inc. Real time data streaming from a mainframe computer to off platform destinations
US20220231952A1 (en) * 2021-01-20 2022-07-21 Cisco Technology, Inc. OPTIMAL SELECTION OF A CLOUD-BASED DATA MANAGEMENT SERVICE FOR IoT SENSORS

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US20020143798A1 (en) * 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
US20020163882A1 (en) * 2001-03-01 2002-11-07 Akamai Technologies, Inc. Optimal route selection in a content delivery network
US20030086422A1 (en) 2001-11-02 2003-05-08 Netvmg, Inc. System and method to provide routing control of information over networks
US20030135644A1 (en) * 2000-03-31 2003-07-17 Barrett Mark A Method for determining network paths
US20040114569A1 (en) 2002-12-17 2004-06-17 Naden James M. Cummunication network route determination
US6775280B1 (en) 1999-04-29 2004-08-10 Cisco Technology, Inc. Methods and apparatus for routing packets using policy and network efficiency information
US6775235B2 (en) 2000-12-29 2004-08-10 Ragula Systems Tools and techniques for directing packets over disparate networks
US6785704B1 (en) * 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US20050071469A1 (en) * 2003-09-26 2005-03-31 Mccollom William G. Method and system for controlling egress traffic load balancing between multiple service providers
US20050147081A1 (en) 2003-12-26 2005-07-07 Swarup Acharya Route determination method and apparatus for virtually-concatenated data traffic
US20060182034A1 (en) * 2002-12-13 2006-08-17 Eric Klinker Topology aware route control
US7222190B2 (en) * 2001-11-02 2007-05-22 Internap Network Services Corporation System and method to provide routing control of information over data networks
US7269157B2 (en) * 2001-04-10 2007-09-11 Internap Network Services Corporation System and method to assure network service levels with intelligent routing
US7349994B2 (en) * 2000-10-17 2008-03-25 Avaya Technology Corp. Method and apparatus for coordinating routing parameters via a back-channel communication medium

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6775280B1 (en) 1999-04-29 2004-08-10 Cisco Technology, Inc. Methods and apparatus for routing packets using policy and network efficiency information
US20050010653A1 (en) 1999-09-03 2005-01-13 Fastforward Networks, Inc. Content distribution system for operation over an internetwork including content peering arrangements
US6785704B1 (en) * 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US20030135644A1 (en) * 2000-03-31 2003-07-17 Barrett Mark A Method for determining network paths
US7349994B2 (en) * 2000-10-17 2008-03-25 Avaya Technology Corp. Method and apparatus for coordinating routing parameters via a back-channel communication medium
US6775235B2 (en) 2000-12-29 2004-08-10 Ragula Systems Tools and techniques for directing packets over disparate networks
US20020163882A1 (en) * 2001-03-01 2002-11-07 Akamai Technologies, Inc. Optimal route selection in a content delivery network
US7274658B2 (en) * 2001-03-01 2007-09-25 Akamai Technologies, Inc. Optimal route selection in a content delivery network
US20020143798A1 (en) * 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
US7269157B2 (en) * 2001-04-10 2007-09-11 Internap Network Services Corporation System and method to assure network service levels with intelligent routing
US20030086422A1 (en) 2001-11-02 2003-05-08 Netvmg, Inc. System and method to provide routing control of information over networks
US7222190B2 (en) * 2001-11-02 2007-05-22 Internap Network Services Corporation System and method to provide routing control of information over data networks
US20060182034A1 (en) * 2002-12-13 2006-08-17 Eric Klinker Topology aware route control
US20040114569A1 (en) 2002-12-17 2004-06-17 Naden James M. Cummunication network route determination
US20050071469A1 (en) * 2003-09-26 2005-03-31 Mccollom William G. Method and system for controlling egress traffic load balancing between multiple service providers
US20050147081A1 (en) 2003-12-26 2005-07-07 Swarup Acharya Route determination method and apparatus for virtually-concatenated data traffic

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
U.S. Appl. No. 11/461,173, Final Office Action dated Sep. 2, 2009, 20 pages.
U.S. Appl. No. 11/461,173, Office Action dated Jan. 9, 2009, 22 pages.

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110299401A1 (en) * 2005-08-01 2011-12-08 Limelight Networks, Inc. Routing under heavy loading
US9094320B2 (en) 2005-08-01 2015-07-28 Limelight Networks, Inc. Routing under heavy loading
US8422376B2 (en) * 2005-08-01 2013-04-16 Limelight Networks, Inc. Routing under heavy loading
US8589064B2 (en) * 2005-09-23 2013-11-19 Scenera Technologies, Llc System and method for selecting and presenting a route to a user
US20110264365A1 (en) * 2005-09-23 2011-10-27 Mona Singh System And Method For Selecting And Presenting A Route To A User
US9366542B2 (en) 2005-09-23 2016-06-14 Scenera Technologies, Llc System and method for selecting and presenting a route to a user
US20110172908A1 (en) * 2006-04-14 2011-07-14 Mona Singh System And Method For Presenting A Computed Route
US8577598B2 (en) 2006-04-14 2013-11-05 Scenera Technologies, Llc System and method for presenting a computed route
US9228850B2 (en) 2006-04-14 2016-01-05 Scenera Technologies, Llc System and method for presenting a computed route
US8301775B2 (en) * 2006-12-15 2012-10-30 Starz Entertainment, Llc Affiliate bandwidth management
US20080320141A1 (en) * 2006-12-15 2008-12-25 Starz Entertainment, Llc Affiliate bandwidth management
US20100070876A1 (en) * 2008-09-18 2010-03-18 Pictela, Inc. Self-Replicating Rich Media Interface
US8620532B2 (en) 2009-03-25 2013-12-31 Waldeck Technology, Llc Passive crowd-sourced map updates and alternate route recommendations
US9140566B1 (en) 2009-03-25 2015-09-22 Waldeck Technology, Llc Passive crowd-sourced map updates and alternative route recommendations
US9410814B2 (en) 2009-03-25 2016-08-09 Waldeck Technology, Llc Passive crowd-sourced map updates and alternate route recommendations
US8984056B2 (en) * 2012-08-09 2015-03-17 Limelight Networks, Inc. Inter point of presence split architecture

Also Published As

Publication number Publication date
JP2009504101A (en) 2009-01-29
EP1911210A2 (en) 2008-04-16
BRPI0614251A2 (en) 2018-04-17
WO2007016654A2 (en) 2007-02-08
CN101263691B (en) 2012-10-31
EP1911210B1 (en) 2013-11-20
CN101263460A (en) 2008-09-10
EP1911210A4 (en) 2008-10-15
WO2007016654A3 (en) 2007-12-21
US20070025327A1 (en) 2007-02-01
CN101263691A (en) 2008-09-10

Similar Documents

Publication Publication Date Title
US7706280B2 (en) Heavy load packet-switched routing
US9094320B2 (en) Routing under heavy loading
US11184462B2 (en) Selecting an instance of a resource using network routability information
US10218806B2 (en) Handling long-tail content in a content delivery network (CDN)
US9100463B2 (en) Origin request with peer fulfillment
US7797426B1 (en) Managing TCP anycast requests
US8447862B2 (en) Global load balancing on a content delivery network
US8380851B2 (en) Domain name resolution resource allocation
US7890656B2 (en) Transmission system, delivery path controller, load information collecting device, and delivery path controlling method
US8930538B2 (en) Handling long-tail content in a content delivery network (CDN)
KR101301004B1 (en) System and Method for Multimedia Streaming of Distributed Contents
JP2020522211A (en) Context-aware route calculation and selection
US10924573B2 (en) Handling long-tail content in a content delivery network (CDN)
CA2951711C (en) Multi-peer routing in a network
Awiphan et al. Outbound face selection considering response time and buffer usage for CCN adaptive video streaming
JP2009504105A (en) Routing under heavy load
Chen et al. A DNS-pertinent routing algorithm with the maximum network revenue in the content distribution networks

Legal Events

Date Code Title Description
AS Assignment

Owner name: LIMELIGHT NETWORKS, INC.,ARIZONA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RACIBORSKI, NATHAN F.;GORDON, MICHAEL M.;REEL/FRAME:016473/0197

Effective date: 20050804

Owner name: LIMELIGHT NETWORKS, INC., ARIZONA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RACIBORSKI, NATHAN F.;GORDON, MICHAEL M.;REEL/FRAME:016473/0197

Effective date: 20050804

AS Assignment

Owner name: SILICON VALLEY BANK,CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:LIMELIGHT NETWORKS, INC.;REEL/FRAME:018779/0133

Effective date: 20050415

Owner name: SILICON VALLEY BANK, CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:LIMELIGHT NETWORKS, INC.;REEL/FRAME:018779/0133

Effective date: 20050415

AS Assignment

Owner name: LIMELIGHT NETWORKS, INC., ARIZONA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:SILICON VALLEY BANK;REEL/FRAME:025856/0095

Effective date: 20110223

FPAY Fee payment

Year of fee payment: 4

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.)

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.)

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.)

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20180427

AS Assignment

Owner name: LYNROCK LAKE MASTER FUND LP (LYNROCK LAKE PARTNERS LLC, ITS GENERAL PARTNER), NEW YORK

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:EDGIO, INC.;MOJO MERGER SUB, LLC;REEL/FRAME:065597/0212

Effective date: 20231114

Owner name: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, ARIZONA

Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:EDGIO, INC.;MOJO MERGER SUB, LLC;REEL/FRAME:065597/0406

Effective date: 20231114