Patentable/Patents/US-20260267708-A1
US-20260267708-A1

Intelligent Content Delivery Network (cdn) Entity Routing

PublishedSeptember 10, 2026
Assigneenot available in USPTO data we have
Technical Abstract

In some embodiments, a system receives usage data for content delivered by multiple content delivery network (CDN) entities during a last time interval. This usage data is based on delivering the content from servicing first requests. The system calculates ideal distribution weights from this usage data to allocate second requests to the CDN entities in a next time interval. It also calculates effective distribution weights from the usage data to allocate the second requests, where these effective weights are further based on a current network condition. A selection parameter is then generated based on correcting the effective distribution weights to be closer to the ideal distribution weights for the next time interval. The system outputs this selection parameter and uses it to select a particular CDN entity for a second request. This selection is performed according to a distribution for the next time interval that is closer to the ideal distribution than it is to the effective distribution.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

the usage data is based on delivering the content from servicing first requests, ideal distribution weights are based on the usage data to allocate second requests to the plurality of CDN entities in a next time interval, effective distribution weights based on the usage data to allocate the second requests to the plurality of CDN entities in the next time interval, the effective distribution weights being based a network condition, and a selection parameter is based on a correction of the effective distribution weights to be closer to the ideal distribution weights in the next time interval, receiving usage data for content that was delivered in a last time interval by a plurality of content delivery network (CDN) entities, wherein: outputting the selection parameter; and selecting, based on the selection parameter, a particular CDN entity of the plurality of CDN entities for a second request, wherein the selecting is performed according to a distribution that is closer to an ideal distribution than an effective distribution in the next time interval. . A method executed by a computing device comprising:

2

claim 1 the ideal distribution weights are based on an ideal distribution, wherein the ideal distribution is based on an ideal allocation of the usage data from delivering the content by the plurality of CDN entities in the next time interval, the ideal distribution is not based on the selection parameter, and does not use the network condition associated with the plurality of CDN entities, and the effective distribution weights are based on an effective distribution, wherein the effective distribution is based on an effective allocation of the usage data from delivering the content to the plurality of CDN entities in the last time interval, wherein the effective distribution uses the network condition. . The method of, wherein:

3

claim 2 . The method of, wherein the ideal allocation of usage data is based on an ideal weight associated with a CDN entity of the plurality of CDN entities.

4

claim 2 . The method of, wherein the effective allocation of usage data is based on an ideal weight and a limit on an amount of the usage data associated with a CDN entity of the plurality of CDN entities.

5

claim 1 . The method of, wherein the network condition is a limit on an amount of usage data that is allocated to the respective content delivery network entities.

6

claim 1 . The method of, wherein the network condition is a maximum data traffic limit or a minimum data traffic limit.

7

claim 1 . The method of, wherein the network condition is based on changes in network conditions.

8

claim 1 the ideal distribution weights assign respective ideal distribution weights to the respective content delivery network entities, and the effective distribution weights assign respective effective distribution weights to the respective content delivery network entities. . The method of, wherein:

9

claim 1 the ideal distribution weights are determined based on a respective ideal allocation of usage data to respective content delivery network entities and total usage data, and the effective distribution weights are determined based on a respective effective allocation of usage data to respective content delivery network entities and the total usage data. . The method of, wherein:

10

claim 1 . The method of, wherein the correction is based on a difference between the effective distribution weights and the ideal distribution weights.

11

claim 10 . The method of, wherein the difference between the ideal distribution weights and the effective distribution weights is a weighted error or an average error over a last plurality of time periods.

12

claim 1 . The method of, wherein the selection parameter is the correction of the effective distribution weights.

13

claim 1 . The method of, wherein the correction of the effective distribution weights corrects the effective distribution weights to different values that are closer to the ideal distribution weights.

14

claim 1 receiving the second request; and selecting the particular CDN entity using the selection parameter and not the usage data. . The method of, wherein selecting, based on the selection parameter, the particular CDN entity comprises:

15

claim 1 . The method of, wherein the selection parameter dynamically and automatically changes over time as the network condition changes.

16

claim 15 . The method of, wherein the selection parameter is a normalized selection parameter associated with a number of requests received by a respective CDN entity.

17

claim 1 a first value for the selection parameter is constant for a first time interval, a different second value for the selection parameter is constant for a second time interval, and the first time interval is a previous time interval to the second time interval. . The method of, wherein:

18

claim 1 delivering content using the plurality of CDN entities that are servicing the first requests according to the selection parameter in the last time interval; and delivering content using the plurality of CDN entities that are servicing the second requests according to the selection parameter in the next time interval. . The method of, further comprising:

19

the usage data is based on delivering the content from servicing first requests, ideal distribution weights are based on the usage data to allocate second requests to the plurality of CDN entities in a next time interval, effective distribution weights based on the usage data to allocate the second requests to the plurality of CDN entities in the next time interval, the effective distribution weights being based a network condition, and a selection parameter is based on a correction of the effective distribution weights to be closer to the ideal distribution weights in the next time interval, receiving usage data for content that was delivered in a last time interval by a plurality of content delivery network (CDN) entities, wherein: outputting the selection parameter; and selecting, based on the selection parameter, a particular CDN entity of the plurality of CDN entities for a second request, wherein the selecting is performed according to a distribution that is closer to an ideal distribution than an effective distribution in the next time interval. . A non-transitory computer-readable storage medium containing instructions, that when executed, control a computer system to be operable for:

20

one or more computer processors; and a non-transitory computer-readable storage medium comprising instructions, that when executed, control the one or more computer processors to be operable for: the usage data is based on delivering the content from servicing first requests, ideal distribution weights are based on the usage data to allocate second requests to the plurality of CDN entities in a next time interval, effective distribution weights based on the usage data to allocate the second requests to the plurality of CDN entities in the next time interval, the effective distribution weights being based a network condition, and a selection parameter is based on a correction of the effective distribution weights to be closer to the ideal distribution weights in the next time interval, receiving usage data for content that was delivered in a last time interval by a plurality of content delivery network (CDN) entities, wherein: outputting the selection parameter; and selecting, based on the selection parameter, a particular CDN entity of the plurality of CDN entities for a second request, wherein the selecting is performed according to a distribution that is closer to an ideal distribution than an effective distribution in the next time interval. . An apparatus comprising:

Detailed Description

Complete technical specification and implementation details from the patent document.

This application is a continuation application and, pursuant to 35 U.S.C. § 120, is entitled to and claims the benefit of earlier filed application U.S. application Ser. No. 17/809,246, filed Jun. 27, 2022, entitled “INTELLIGENT CONTENT DELIVERY NETWORK (CDN) ENTITY ROUTING”, the content of which is incorporated herein by reference in its entirety for all purposes.

A content provider may use multiple content delivery network entities to deliver content to client devices. For example, content delivery network entities may deliver videos for a video service provider. A content delivery network entity may be a cluster of servers that can deliver content for the provider. When a client device requests a video, a service of the provider may select one of the content delivery network entities to process the request. Upon receiving a selection of a content delivery network entity, the client device communicates with that content delivery network entity to have the video delivered from that content delivery network entity. Each content delivery network entity may have an associated policy that provides parameters that are used by the service to select a content delivery network entity for a request. The parameters are static unless they are changed manually. However, the conditions of how videos are delivered during different time periods may rapidly change, such as at the top of the hour when new shows become available on live television or when a show becomes popular. The use of static parameters may not optimally select content delivery network entities when the conditions change rapidly.

Described herein are techniques for a content delivery system. In the following description, for purposes of explanation, numerous examples and specific details are set forth to provide a thorough understanding of some embodiments. Some embodiments as defined by the claims may include some or all the features in these examples alone or in combination with other features described below and may further include modifications and equivalents of the features and concepts described herein.

A system may process requests for content from client devices. For example, a client device may send a request for content. For example, the content may be a piece of video, audio, or other type of content that can be played on a media player or otherwise rendered via a computing device. The system may select from multiple content delivery network entities that can deliver the content to service the request. A content delivery network entity may be any entity that can be selected to service a request to deliver content to client devices. Content delivery network entities may include a content provider that may operate its own content delivery network, or other independent content delivery network entities that assist in the delivery of the content provider's content to end users. There may be many reasons to distribute traffic among the available content delivery networks according to a certain distribution scheme. The content provider's content delivery system may use a selection process to select a content delivery network entity to service a given request. The selection process may use selection parameters that affect which content delivery network entity is selected. For example, over multiple requests, the selection process may select content delivery network entities to roughly meet a distribution that is defined by the selection parameters. For example, the selection parameters may be normalized to a proportion P for a content delivery network entity such that over N requests, the content delivery network entity may roughly receive P*N requests.

Instead of using static parameters, the system may adjust the selection parameters based on usage data from the content delivery network entities. The usage data may be data traffic, which may be an amount of data that is delivered while sending content to client devices. The usage data may be determined for a time interval, such as the last minute, multiple minutes, hour, etc., from the content delivery network entities. The time interval may be configured using a setting, or dynamically determined. For example, the time interval may be set as every minute. Alternatively, the time interval may change when network conditions change. Then, the system may adjust the selection parameters based on the usage data. Accordingly, the system may automatically adjust the selection parameters that are used in the selection process in the next time interval. For example, a first content delivery network entity may have processed 10 gigabytes per second (Gbps) of traffic in the last time interval. If the system determines that the first content delivery network should process more data traffic, the system may adjust selection parameters to make it more likely the first content delivery network will process more data traffic. That is, the selection parameters are adjusted such that over the next N requests, the first content delivery network entity may receive more requests than the previous time interval. The calculation to dynamically adjust the selection parameters will be described in more detail below.

By dynamically and automatically adjusting the selection parameters for content delivery network entities, the selection of content delivery network entities to process requests may be adjusted as conditions change. For example, the system may automatically adjust the usage of a content delivery network entity to a desired usage as the usage changes dynamically over time intervals. The adjustment improves the selection of content delivery network entities for requests. The adjustment may optimally use the bandwidth of the content delivery network entities, which may improve network performance. Also, the delivery of content may be improved as problems when networks become congested due to less available bandwidth, such as rebuffering, may be avoided by adjusting the parameters based on the usage data.

1 FIG. 100 106 100 102 104 106 1 106 108 depicts a simplified systemfor selecting a content delivery network entityaccording to some embodiments. Systemincludes a client device, an origin server, content delivery network entities (CDNs) #1 to #N-to-N, and a request processing system.

106 102 106 106 106 106 106 106 106 106 106 106 106 106 A content delivery network entitymay be any entity that can be selected to service a request to deliver content (e.g., videos) to client devices. Content delivery network entitiesmay be defined in different ways. The content delivery network entity may be defined by a configuration, which may specify servers within the content delivery network entity. The content delivery entity may define the specific servers. In some embodiments, each content delivery network entitymay be independent from each other. That is, a first content delivery network entityis operated (e.g., owned) by a different company than a second content delivery network entity. In other embodiments, a single company may operate multiple content delivery network entities. In some embodiments, the operation or ownership of different content delivery network entitiesmay be defined by different methods, such as by configurations, policies, etc. For example, a first content delivery network entitymay have a first configuration that defines the delivery of content (e.g., cost, amount of data to transmit, etc.) to it and a second content delivery network entitymay have a second configuration that defines the delivery of content to it. When content delivery network entitiesare associated with the same company, each content delivery network entitymay be considered separately when determining whether it should service a request. That is, each content delivery network entitymay have a separate configuration. Although the above configuration of entities is discussed, other configurations may also be appreciated, such as any cluster of servers may be a content delivery network entity.

106 106 106 106 106 106 A content delivery network entitymay be identified based on an identifier for each content delivery network entity, such as a host name. Within a content delivery network entity, there may be multiple content endpoints. Each content endpoint may be associated with the same host name. In some embodiments, when a content delivery network entityis selected to service a request, the request may be serviced by any content endpoints that are associated with the hostname of that content delivery network entity. When selected to process a request, content delivery network entitymay select the content endpoint to service the request. In other examples, the system may select a specific content endpoint for a content delivery network entitythat should service the request. Also, in some embodiments, the same server that receives the request may process the delivery of the content to a client. In other embodiments, different servers may process the request and the delivery of the content to a client.

104 112 104 102 106 106 106 102 Origin servermay store representations of content in storage. The representations may include different playback characteristics for the content, such as different representations of a video at different bitrates or quality (e.g., resolutions). Origin servermay provide the representations of content to different content delivery network entities #1 to #N. Client devicecan request the content from each content delivery network entityand each content delivery network entitymay independently be able to respond with the content. For example, each content delivery network entitymay include one or more servers that can send the content to client device.

102 102 114 102 106 114 102 106 106 102 Client devicemay include a computing device, such as a smartphone, set top box, tablet device, living room device, gaming console, etc. Client deviceincludes a media playerthat can play the content. Client devicemay use one of the content delivery network entities, such as a content delivery network entity #2, to begin playing the content with media player. Client devicemay experience different playback conditions for each content delivery network entity. For example, the playback conditions may differ based on available bandwidth, the network being used by each content delivery network entity, and the servers being used. This results in the content being delivered using different conditions to client device.

108 102 108 108 102 102 106 A request processing systemmay process a request for content (e.g., a video) from client device. Request processing systemmay be associated with a content provider that is offering content to user accounts. Although not shown, request processing systemmay be processing requests from multiple client devices, both sequentially and concurrently in a time period. For example, multiple client devicesmay be using a video delivery system to request videos concurrently or within a time interval. The time interval may be a limited time period, such as a minute, every X minutes, an hour, a day, etc. The time interval may be defined in different ways, and may include a contiguous time block, but does not need to include contiguous time blocks. The time interval may also be adjusted, such as the amount of time in a time interval may vary over time. For example, the time interval may be every minute. Alternatively, a first time interval may be one minute, a second time interval is three minutes, a third time interval is X minutes, etc. Also, a beginning or end of a time interval may be triggered. For example, a failure of a content delivery network entitymay trigger the start or end of a new time interval, which may then start the process of determining new selection parameters.

108 110 106 108 106 102 106 102 106 106 2 106 2 102 114 Request processing systemis configured to receive a request for content. A content delivery network (CDN) entity selection systemmay select the content delivery network entityfor the request. Request processing systemmay provide the selected content delivery network entityto client deviceor the selected content delivery network entity. Client devicemay then interact with the selected content delivery network entity, such as content delivery network entity #2-. Content delivery network entity #2-may then send the video, such as segments of the video, to client device, which displays the segments of video on media player.

110 106 110 106 106 106 110 CDN entity selection systemmay select a content delivery network entityto process the request based on a selection process that uses selection parameters. As will be described in more detail below, CDN entity selection systemmay use the usage data from content delivery network entitiesto adjust the selection parameters that are used to select which content delivery network entityshould process the request. The usage data may be measured using different metrics, such as bytes of data, available bandwidth, computing resources used, and other metrics. For discussion purposes, the usage data may be an amount of data traffic based on content that is sent by content delivery network entitiesfor a provider, such as the provider of a video delivery system. CDN entity selection systemwill now be described in further detail.

2 FIG. 110 202 102 202 depicts a more detailed example of CDN entity selection systemaccording to some embodiments. A request processorreceives a request for content. The request may be received from a client device, and may request a video for playback. Although one request is discussed, request processormay be processing multiple requests over a time interval.

206 106 206 106 106 110 106 106 106 206 206 106 An allocation enginemay select a content delivery network entityto process the request. Allocation engineuses selection parameters to select a content delivery network entity among content delivery network entities. As will be discussed in more detail, the selection parameters may be used to distribute different proportions of requests among content delivery network entitiesover N requests in a future time interval. For example, CDN selection systemmay use a weighted random distribution to select a content delivery network entityfor a request. In this case, the selection parameters may be associated with weights. In some embodiments, a higher weight may translate into a higher proportion and a lower weight may translate into a lower proportion over time. For example, over N requests, a content delivery network entitymay be roughly selected to a proportion associated with the respective weight for that content delivery network entity. That is, if the proportion associated with a content delivery network entityis 20%, then allocation enginemay allocate approximately 20% of N requests during a time interval. Although weights are discussed, other methods may be used, such as the selection parameters may be used in a prediction network to select content delivery network entitiesto service requests.

106 204 204 106 102 204 As discussed above, in a separate process from the determination of which content delivery network entityshould process a request, the selection parameters may be updated dynamically without manual intervention. For example, a parameter selection enginemay update the selection parameters dynamically over time intervals. For a time interval, parameter selection enginemay receive usage data, and use the usage data to adjust the values of the selection parameters. The usage data may be an amount of data traffic that each content delivery network entityprocessed during a last time interval. The amount of data traffic may be measured in different metrics, such as the number of bytes that were processed to deliver videos to client devicesin the last time interval. Parameter selection engineuses the data traffic to generate selection parameters, which will now be described in more detail.

3 FIG. 300 106 302 204 204 106 102 106 204 106 106 depicts a simplified flowchartof a method for adjusting selection parameters according to some embodiments. This process is used to adjust the selection parameters and not to select a content delivery network entityto service a request. The following example may use data traffic as the usage data that is used; however, other types of usage data may be used. For example the amount of bytes may be an amount of computer processing resources. At, parameter selection enginereceives an amount of data traffic that was delivered in a last time interval. The amount of data traffic that is used may be collected using different methods. For example, network devices in a network may collect the amount of data traffic that is sent for a provider, and send the amount of data traffic to parameter selection engine. Also, each content delivery network entitymay send the amount of data traffic that was delivered in the last time interval. Further, client devicesmay send the amount of data traffic that each client device received and from which content delivery network entity. Any combination of the above may be used to collect the usage data. Parameter selection enginemay then determine the total amount of data traffic that was delivered based on the data traffic delivered by each content delivery network entity. For example, the total amount of data traffic may add the individual amounts of data traffic that was delivered by each content delivery network entity.

204 204 106 106 204 106 204 106 106 204 106 106 Parameter selection enginethen uses the observed data traffic from the last time interval to determine new values for selection parameters. In some embodiments, parameter selection enginemay adjust the selection parameters such that a distribution of data traffic that is delivered by content delivery network entitiesin a future time interval may converge towards an ideal distribution. A distribution may be a proportional amount of total data traffic. For example, if the ideal proportion of data traffic is 10 Gbps for a content delivery network entity, parameter selection enginemay determine that content delivery network entitywill be allocated 15 Gbps in the next time interval if the parameters are not changed. Then, parameter selection enginemay adjust the selection parameters such that content delivery network entitywill deliver less data traffic in the next time interval. For example, the new selection parameters may cause content delivery network entityto deliver less than 15 Gbps of data traffic, such as 12.5 Gbps of data traffic. Parameter selection engineadjusts the selection parameters with a goal that data traffic delivered for content delivery network entitiesin a next time interval may move towards an ideal proportion of data traffic in the distribution. For example, content delivery network entitymay eventually deliver around 10 Gbps of data traffic after a number of time intervals. The following will now describe an example of this process to perform the adjustment, but other processes may be used.

304 204 106 304 306 106 204 106 106 106 106 106 106 106 106 106 3 FIG. At, parameter selection engineallocates data traffic in an ideal data traffic distribution to content delivery network entitiesusing a first allocation plan. The allocation here inandofmay be separate from the use of selection parameters to select a content delivery network entityto service a request. The ideal distribution may be a desired distribution based on the data traffic sent in the last time interval. This is the distribution that parameter selection enginemay consider an optimal distribution. The distribution may assign different amounts of data traffic to content delivery network entities. In some embodiments, the first allocation plan may use a first method to allocate the data traffic to content delivery network entities. For example, the allocation plan may use ideal weights to allocate the data traffic. The ideal weights may be defined based on policies from content delivery network entities. For example, a policy may include the ideal weights, which may be a preferred proportion of data traffic that is agreed upon, such as the proportion of traffic a content delivery network entitywould like to process, how much traffic the content provider would like content delivery network entityto process, or any combination of the above. In some embodiments, the ideal weights may be referred to as Quality of Experience (QoE) weights because these weights define proportions of traffic that content delivery network entitiesmay handle to ensure a high level of service. The QoE weights may be specified by the content provider, the content delivery entity, by both, or using other methods. The ideal weights may translate to a proportion of the data traffic for each content delivery network entity. For example, an ideal weight of 20% for a content delivery network entitymay result in around 2 Gbps of 10 Gbps of total data traffic being assigned in a next time interval, and an ideal weight of 40% for a content delivery network entitymay result in around 4 Gbps of 10 Gbps of total data traffic.

306 204 106 106 106 106 4 FIG. At, parameter selection engineallocates the data traffic to content delivery network entitiesbased on a second allocation plan to generate an effective distribution. The effective distribution may be a predicted distribution that may result during the actual processing of requests if the current values of the selection parameters are used. The second allocation plan may use a different method than the first allocation plan. For example, the second allocation plan may include a condition (or conditions) that is used to assign the data traffic where the condition may not be used to generate the ideal distribution. The condition may alter how the data traffic is allocated in the second allocation plan. Accordingly, the effective distribution may be how much data traffic each content delivery network entitymay actually process in the next time interval using the data traffic from last time interval when applying the condition of the second allocation plan. One example of a condition may be a maximum data traffic limit, which specifies the maximum amount of data a content delivery network entitycan be allocated in a time interval. The first allocation plan may not use the maximum data traffic limit. The use of the maximum data traffic limit may change the data traffic that is allocated to a content delivery networkfrom 4 Gbps to 2 Gbps because the maximum data traffic limit is 2 Gbps. Other conditions may be used, such as minimum traffic limits, different ideal weights, etc. An example of the second allocation plan will be described in.

308 204 5 FIG. At, parameter selection enginegenerates new values for selection parameters based on the effective distribution and the ideal distribution. For example, the new values for selection parameters may attempt to adjust the effective distribution to be closer to the ideal distribution in the next time interval. The effective distribution is the predicted data traffic distribution due to the current values of the selection parameters, whereas the ideal distribution is the desired distribution. The new values for the selection parameters are used in the next time interval. The process of generating the new selection parameters will be described in more detail below in.

310 204 110 106 3 FIG. At, parameter selection enginemay output the new values for the selection parameters. In the next time interval, CDN entity selection systemuses the new values to select content delivery network entitiesfor requests. It is expected that the adjustments in selection parameters may adjust the effective distribution in the next time interval to be closer to the ideal distribution. For example, a new measurement of data traffic for the next time interval is received and analyzed according to the process described inagain.

204 As discussed above, parameter selection enginemay assign the data traffic to content delivery network entities based on a first allocation plan to generate an ideal distribution and a second allocation plan to generate an effective distribution in different ways. The following will discuss examples of the first allocation plan and the second allocation plan, but other allocation plans may be appreciated.

4 FIG. 400 402 204 106 106 106 106 106 106 depicts a simplified flowchartof a method for allocating data traffic according to some embodiments. The process may be performed for each time interval or when traffic to allocate is received. At, parameter selection enginedetermines a minimum data traffic limit and a maximum data traffic limit for content delivery network entities. The minimum data traffic limit may be the minimum amount of data traffic that should be allocated to a respective content delivery network entityin the next time interval. The maximum data traffic limit may be the maximum amount of data traffic that may be allocated to a respective content delivery network entityin the next time interval. Each respective content delivery network entitymay have its own minimum and maximum data traffic limits. The minimum data traffic limit and the maximum data traffic limit may be used in this process to determine the new values of the selection parameters, but the minimum data traffic limit and the maximum data traffic limit may not be explicitly used in the request processing. Accordingly, it is possible that in the actual distribution of requests to content delivery network entities, a content delivery network entitymay end up processing less data traffic than the minimum data traffic limit or more data traffic than the maximum data traffic limit in the next time interval.

404 204 106 106 204 106 406 204 204 106 At, parameter selection engineallocates data traffic to content delivery network entitiesbased on the minimum data traffic limits. For example, if a minimum data traffic limit is 10 Gbps for a content delivery network entity, parameter selection engineallocates 10 Gbps of data traffic to that content delivery network entity. In most cases, the minimum data traffic limits may all be met by the data traffic that was received in the last time interval. For example, the total amount for all the minimum data traffic limits may be 50 Gbps of data traffic. If the total data traffic to allocate is above 50 Gbps, then all the minimum data traffic limits will be met. Accordingly, at, parameter selection enginedetermines if all minimum data traffic limits have been reached. If the minimum traffic limits have not been met, there is no more traffic to allocate and thus the process to allocate traffic for this time interval ends for this time interval. If the total amount of data traffic to allocate is less than the total amount of minimum data traffic limits, parameter selection enginemay allocate the data traffic based on a proportional allocation for content delivery network entities, such as using the ideal weights. The allocated data traffic that is below the minimum data traffic limits is then output.

408 204 106 106 204 106 106 106 106 106 106 If all the minimum data traffic limits are reached, the process proceeds to, where parameter selection engineallocates the remaining data traffic to content delivery network entitiesaccording to the ideal weights. For example, the ideal weights may be translated into proportions of the remaining data traffic for content delivery network entities. Parameter selection engineuses the proportions to allocate a portion of the remaining data traffic to each content delivery network entity. For example, if there is 100 Gbps of data traffic left to allocate, a content delivery network entitywith a weight corresponding to 20% will be allocated 20 Gbps of data traffic. This forms the ideal distribution for each content delivery network entity. The ideal distribution is the amount of data traffic that would have been ideally distributed to respective content delivery network entities. However, as will be described in more detail below, content delivery network entitiesmay have maximum data traffic limits (or other conditions) that may prevent the ideal distribution from being allocated. That is, the ideal distribution may allocate data traffic to a content delivery network entitythat is above its maximum data traffic limit.

410 204 106 106 106 204 204 106 At, parameter selection enginedetermines whether all content delivery network entitiesare at or below the maximum data traffic limits. If all content delivery network entitiesare at or below the maximum data traffic limits, the process to allocate traffic ends for this time interval, and the data traffic has been allocated. However, if at least some content delivery network entitiesare above the maximum data traffic limits, parameter selection engineadjusts the distribution of data traffic. For example, parameter selection enginemay attempt to reallocate data traffic such that all content delivery network entitiesare at or below the maximum data traffic limits.

412 204 106 106 106 106 204 106 106 204 106 At, parameter selection enginesets the allocated data traffic for content delivery network entitiesthat are above the maximum data traffic limit to the respective maximum data traffic limit for the content delivery network entities. For example, if the maximum data traffic limit is 10 Gbps for a content delivery network entity, and that content delivery network entitywas allocated 12 Gbps, then parameter selection enginereduces the amount of data traffic allocated to that content delivery network entityto 10 GB of data traffic. This results in 2 Gbps of remaining data traffic to be reallocated to other content delivery network entities. Parameter selection enginemay perform this process for all content delivery network entitiesthat had data traffic allocated above their maximum data traffic limit. This creates an excess amount of remaining data traffic to allocate.

414 204 106 204 106 204 106 106 At, parameter selection engineallocates the remaining data traffic to content delivery network entitiesthat are not at their maximum data traffic limits, according to the ideal weights. For example, parameter selection enginemay determine content delivery network entitiesthat have available space under their maximum data traffic limit. Then, parameter selection enginedetermines proportions of the remaining data traffic to allocation to these content delivery network entitiesbased on their respective ideal weights. The data traffic is allocated accordingly to the proportions. For example, a content delivery network entitythat has a proportion of 40% of the remaining traffic of 10 Gbps is allocated 4 Gbps.

410 204 106 106 106 204 106 106 106 204 The process then reiterates towhere parameter selection enginedetermines whether all content delivery network entitiesare at or below the maximum data traffic limits. The above process then continues until all content delivery network entitiesare at or below respective maximum data traffic limits. In the case where all maximum data traffic limits are met by all content delivery network entities, then parameter selection enginemay allocate the remaining data traffic to all content delivery network entitiesaccording to their respective ideal weights. This may result in all or some content delivery network entitiesbeing above their respective maximum data traffic limits, and the process continues. When the process ends, the amount of data traffic allocated to content delivery network entitiesis output. Then, parameter selection enginedetermines selection parameters from the allocated traffic.

5 FIG. 4 FIG. 500 106 204 502 204 106 408 106 106 106 106 depicts a simplified flowchartof a method for calculating selection parameters according to some embodiments. After allocating the data traffic to content delivery network entities, parameter selection enginecalculates new selection parameters. At, parameter selection enginecalculates ideal distribution weights for content delivery network entities. As described above, the ideal distribution may have been determined atinwhen the remaining data traffic was allocated to content delivery network entitieswithout considering the maximum data traffic limits. For each content delivery network entity, the ideal distribution weights may be determined based on the respective data traffic allocated and the total data traffic (e.g., respective data traffic allocated/the total data traffic=ideal distribution weight). For example, the ideal distribution weight may be 25% for a content delivery network entityif 25 Gbps/100 Gbps was allocated to that content delivery network entity.

504 204 106 414 106 106 414 106 4 FIG. 4 FIG. 4 FIG. At, parameter selection enginecalculates effective distribution weights for content delivery network entitiesbased on the data traffic allocation. The effective distribution weights may be based on an effective distribution that was calculated inin. For example, for a content delivery network entity, the effective distribution weight may be the respective proportion of the effective distribution of the data traffic allocated in. For each content delivery network entity, the effective distribution weights may be determined based on the respective data traffic allocated inofand the total data traffic (e.g., respective data traffic allocated/the total data traffic=effective distribution weight). The effective distribution weights may capture how the data traffic may have been delivered in the prior time interval based on the conditions of the second allocation plan. For example, the effective distribution weight may be 35% for a content delivery network entitywhile the ideal distribution weight was 25%.

506 204 106 106 At, parameter selection enginecalculates the error between the effective distribution weight and the ideal distribution weight for each content delivery network entity. For example, the error is based on the respective ideal distribution weight and respective effective distribution weight for a content delivery network entity. In some embodiments, the difference, such as the value for the ideal distribution weight minus the value for the effective distribution weight is used as the error. For example, the error may be effective distribution weight—ideal distribution weight (e.g., 35%-25%=10%). Other errors may also be appreciated, such as an average over the last X time periods, a weighted error, etc.

508 204 106 106 506 After determining the error, at, parameter selection enginemay calculate a correction factor based on the error for each content delivery network entity. The correction factor is a value that indicates how to correct the selection parameter for a content delivery network entity. The correction factor may be determined using different methods or not used at all. In some embodiments, the correction factor may use a control process that may adjust the error using a control function. The control function may ensure that corrections to selection parameters may be adjusted in a desired configuration, such as not abruptly, avoiding oscillations, and not be over or under an amount of a correction, etc. In some embodiments, a proportional integral derivative control loop may be used, which is a control loop mechanism that employs feedback from prior adjustments to adjust values. For example, the correction factor may adjust the error in a smaller amount than that is determined if the error may abruptly change the selection parameter too much in a time interval. In some examples, the error may be 10%, but the correction factor may adjust the error to be 6%. The correction factor could be the value of 6% in this case. As discussed above, the error may not be corrected, which results in the error of 10% that was calculated inbeing used as the correction factor.

510 204 204 204 At, parameter selection enginegenerates new values for selection parameters based on the correction factor. For example, parameter selection enginecorrects the effective distribution weight based on the correction factor to generate the new values for the selection parameters. For example, parameter selection engineadjusts the effective distribution weight to be higher or lower. If the effective distribution weight is 35%, and the correction factor is 5%, the correction of the effective distribution weight may be 30%. Instead of adjusting the effective distribution weight directly to 25%, which is the ideal distribution weight, the effective distribution weight may be adjusted in smaller increments over multiple time intervals to be closer and closer to the ideal distribution weight.

204 204 204 Parameter selection enginemay generate the new values for the selection parameters in different ways. For example, parameter selection enginemay use the effective distribution weight as the selection parameter directly. Parameter selection enginemay also generate the selection parameters based on other factors, such as translating the corrected effective distribution weight based on other factors, such as provider specific delivery goals.

512 204 106 206 204 206 206 106 106 2 FIG. At, parameter selection engineoutputs the new values for the selection parameters. The new values for the selection parameters may be used to assign content delivery network entitiesto requests in the next time interval. For example, referring to, allocation enginereceives the new selection parameters from parameter selection engine. Then, allocation enginereceives a request in current time interval. Allocation enginemay select a content delivery network entityusing the new selection parameters. The selection parameters may be used to select content delivery network entity, and not the traffic that was allocated in the process to determine the new selection parameters.

4 5 FIGS.and 106 106 The above process described inmay be repeated every time interval. For example the time interval may be set as a minute in a configuration setting, and the process is repeated every minute using updated information from the last minute. Over time, the effective distribution weights that are calculated may approach the ideal distribution weights. By having the effective distribution weights, which are used to generate the new values for the selection parameters, approach the ideal distribution weights, the system is slowly moving the allocation of data traffic to content delivery network entitiesto the desired ideal distribution. For example, over multiple time intervals, the data traffic processed by a content delivery network entitymay move from 20 Gbps to 18 Gbps to 15 Gbps when the ideal distribution is 14 Gbps.

106 106 102 The above process improves the adjustment of selection parameters. For example, the parameters may be adjusted towards an ideal distribution, which may improve the selection of content delivery network entities. Improving the selection of content delivery network entitiesmay also improve the delivery of content to client devices. For example, the bandwidth may be used more optimally and can respond to changes in network conditions faster compared to other processes, such as a manual or static configuration of selection parameters. Further, the process of selecting the new values for selection parameters may be improved by having the effective distribution weights be automatically adjusted to be eventually closer to the ideal distribution weights. This moves the system closer to the ideal distribution faster.

6 6 FIGS.A toC 6 FIG.A 106 600 1 106 602 604 606 608 609 depict different tables showing the analysis of data traffic to allocate the data traffic to CDN entitiesaccording to some embodiments.depicts an example of using weights according to some embodiments. A table-lists CDN entitiesin a column, minimum data traffic limits (Gbps) in a column, maximum data traffic limits (Gbps) in a column, ideal weights in a column, and normalized ideal weights in column. The normalized ideal weights may be a normalized version of the ideal weights to values between a range, such as a range of [0,1].

600 1 106 In table-, in each row, the respective minimum data traffic limit, maximum data traffic limit, and ideal weight is shown for respective CDN entities, such as entities #1, #2, #3, #4, and #5. For example, CDN entity #1 has a minimum data traffic limit of “2 Gbps”, a maximum data traffic limit of “1000 Gbps” an initial weight of “3”, and a normalized initial weight of “0.2”.

6 FIG.B 600 2 600 2 610 612 106 depicts a table-showing the data traffic received for a prior time period according to some embodiments. Table-shows the time interval in a columnand the data traffic from a previous time interval in a column. For example, in time interval #1, “900 Gbps” was processed by CDN entities.

6 6 FIGS.C toF 4 FIG. 106 600 3 600 7 106 614 616 618 620 622 624 depict iterations that may be performed applying the process ofto allocate data traffic to CDN entitiesaccording to some embodiments. A tables-to-list the CDN entitiesin a column, an effective distribution of traffic (Gbps) in a column, an ideal distribution of traffic (Gbps) in a column, a correction in a column, an allocation in a column, and selection parameters in a column.

616 618 620 The effective distribution in columnis the data traffic that would be assigned using a condition, such as the maximum traffic limits. The ideal distribution in columnis the data traffic that is ideally assigned without using a condition, such as the maximum traffic limits. The correction factor in columnis an amount of correction to apply to the effective distribution based on the difference between the effective distribution and the ideal distribution. Different correction factors may be used, such as proportional, derivative, and integral. The allocation of the traffic is based on the correction and the effective distribution. The weights may be based on the allocation of traffic. For example, a higher allocation of traffic may mean a higher weight is applied to a respective entity.

600 3 1 In each time interval, the allocation of the traffic may change based on the effective distribution and the correction. The allocation then is used to change the selection parameters for the next time interval. Accordingly, the traffic allocated to an entity may be closer to the ideal distribution in the next time interval. Instead of using the effective distribution, the allocation is used. The allocation may be corrected from the effective distribution, but may not be equal to the ideal distribution. For example, in table-, entity #1 has an effective distribution of 144.89, an ideal distribution of 150.4, and a correction of 4.41. The allocation is 149.3, which corrects the effective distribution to be closer to the ideal distribution. The above process continues for each time interval, and the selection parameters are adjusted each time interval based on the traffic that was delivered in the last time interval. For example, entity #has its selection parameter changed from 0.15 to 0.15 to 0.11 and to 0.10 in the four time intervals. The other entity's selection parameters also change based on traffic that was delivered in the previous time interval. Correcting the selection parameters may cause entities to deliver traffic in the next time interval that may be closer to the ideal distribution than the effective distribution.

106 Accordingly, selection parameters are generated dynamically over time intervals based on the usage of content delivery entities. The selection parameters may be changed to optimize the distribution of data traffic to content delivery entities. Over time, the selection parameters may be adjusted such that the distribution of data traffic that is allocated to content delivery network entitiesbecomes closer to the desired ideal distribution.

700 700 7 FIG. Features and aspects as disclosed herein may be implemented in conjunction with a video streaming systemin communication with multiple client devices via one or more communication networks as shown in. Aspects of the video streaming systemare described merely to provide an example of an application for enabling distribution and delivery of content prepared according to the present disclosure. It should be appreciated that the present technology is not limited to streaming video applications and may be adapted for other applications and delivery mechanisms.

In one embodiment, a media program provider may include a library of media programs. For example, the media programs may be aggregated and provided through a site (e.g., website), application, or browser. A user can access the media program provider's site or application and request media programs. The user may be limited to requesting only media programs offered by the media program provider.

700 710 702 In system, video data may be obtained from one or more sources for example, from a video source, for use as input to a video content server. The input video data may comprise raw or edited frame-based video data in any suitable digital format, for example, Moving Pictures Experts Group (MPEG)-1, MPEG-2, MPEG-4, VC-1, H.264/Advanced Video Coding (AVC), High Efficiency Video Coding (HEVC), or other format. In an alternative, a video may be provided in a non-digital format and converted to digital format using a scanner or transcoder. The input video data may comprise video clips or programs of various types, for example, television episodes, motion pictures, and other content produced as primary content of interest to consumers. The video data may also include audio or only audio may be used.

700 702 704 707 702 704 707 709 702 702 The video streaming systemmay include one or more computer servers or modules,, anddistributed over one or more computers. Each server,,may include, or may be operatively coupled to, one or more data stores, for example databases, indexes, files, or other data structures. A video content servermay access a data store (not shown) of various video segments. The video content servermay serve the video segments as directed by a user interface controller communicating with a client device. As used herein, a video segment refers to a definite portion of frame-based video data, such as may be used in a streaming video session to view a television episode, motion picture, recorded live performance, or other video content.

704 700 704 In some embodiments, a video advertising servermay access a data store of relatively short videos (e.g., 10 second, 30 second, or 60 second video advertisements) configured as advertising for a particular advertiser or message. The advertising may be provided for an advertiser in exchange for payment of some kind or may comprise a promotional message for the system, a public service message, or some other information. The video advertising servermay serve the video advertising segments as directed by a user interface controller (not shown).

700 108 The video streaming systemalso may include request processing system.

700 707 707 700 7 FIG. The video streaming systemmay further include an integration and streaming componentthat integrates video content and video advertising into a streaming video segment. For example, streaming componentmay be a content server or streaming media server. A controller (not shown) may determine the selection or configuration of advertising in the streaming video based on any suitable algorithm or process. The video streaming systemmay include other modules or units not depicted in, for example, administrative servers, commerce servers, network infrastructure, advertising selection engines, and so forth.

700 712 712 714 The video streaming systemmay connect to a data communication network. A data communication networkmay comprise a local area network (LAN), a wide area network (WAN), for example, the Internet, a telephone network, a wireless cellular telecommunications network (WCS), or some combination of these or similar networks.

720 700 712 714 720 1 720 2 720 3 720 4 720 5 718 717 714 720 700 700 709 720 720 One or more client devicesmay be in communication with the video streaming system, via the data communication network, wireless cellular telecommunications network, or another network. Such client devices may include, for example, one or more laptop computers-, desktop computers-, “smart” mobile phones-, tablet devices-, network-enabled televisions-, or combinations thereof, via a routerfor a LAN, via a base stationfor a wireless cellular telecommunications network, or via some other connection. In operation, such client devicesmay send and receive data or instructions to the system, in response to user input received from user input devices or other input. In response, the systemmay serve video segments and metadata from the data storeresponsive to selection of media programs to the client devices. Client devicesmay output the video content from the streaming video segment in a media player using a display screen, projector, or other video output device, and receive user input for interacting with the video content.

707 Distribution of audio-video data may be implemented from streaming componentto remote client devices over computer networks, telecommunications networks, and combinations of such networks, using various methods, for example streaming. In streaming, a content server streams audio-video data continuously to a media player component operating at least partly on the client device, which may play the audio-video data concurrently with receiving the streaming data from the server. Although streaming is discussed, other methods of delivery may be used. The media player component may initiate play of the video data immediately after receiving an initial portion of the data from the content provider. Traditional streaming techniques use a single provider delivering a stream of data to a set of end users. High bandwidth and processing power may be required to deliver a single stream to a large audience, and the required bandwidth of the provider may increase as the number of end users increases.

707 720 Streaming media can be delivered on-demand or live. Streaming enables immediate playback at any point within the file. End-users may skip through the media file to start playback or change playback to any point in the media file. Hence, the end-user does not need to wait for the file to progressively download. Typically, streaming media is delivered from a few dedicated servers having high bandwidth capabilities via a specialized device that accepts requests for video files, and with information about the format, bandwidth and structure of those files, delivers just the amount of data necessary to play the video, at the rate needed to play it. Streaming media servers may also account for the transmission bandwidth and capabilities of the media player on the destination client. Streaming componentmay communicate with client deviceusing control messages and data messages to adjust to changing network conditions as the video is played. These control messages can include commands for enabling control functions such as fast forward, fast reverse, pausing, or seeking to a particular part of the file at the client.

707 Since streaming componenttransmits video data only as needed and at the rate that is needed, precise control over the number of streams served can be maintained. The viewer will not be able to view high data rate videos over a lower data rate transmission medium. However, streaming media servers (1) provide users random access to the video file, (2) allow monitoring of who is viewing what video programs and how long they are watched (3) use transmission bandwidth more efficiently, since only the amount of data required to support the viewing experience is transmitted, and (4) the video file is not stored in the viewer's computer, but discarded by the media player, thus allowing more control over the content.

707 707 Streaming componentmay use TCP-based protocols, such as HyperText Transfer Protocol (HTTP) and Real Time Messaging Protocol (RTMP). Streaming componentcan also deliver live webcasts and can multicast, which allows more than one client to tune into a single stream, thus saving bandwidth. Streaming media players may not rely on buffering the whole video to provide random access to any point in the media program. Instead, this is accomplished using control messages transmitted from the media player to the streaming media server. Other protocols used for streaming are HTTP live streaming (HLS) or Dynamic Adaptive Streaming over HTTP (DASH). The HLS and DASH protocols deliver video over HTTP via a playlist of small segments that are made available in a variety of bitrates typically from one or more content delivery network entities (CDNs). This allows a media player to switch both bitrates and content sources on a segment-by-segment basis. The switching helps compensate for network bandwidth variances and infrastructure failures that may occur during playback of the video.

The delivery of video content by streaming may be accomplished under a variety of models. In one model, the user pays for the viewing of video programs, for example, paying a fee for access to the library of media programs or a portion of restricted media programs, or using a pay-per-view service. In another model widely adopted by broadcast television shortly after its inception, sponsors pay for the presentation of the media program in exchange for the right to present advertisements during or adjacent to the presentation of the program. In some models, advertisements are inserted at predetermined times in a video program, which times may be referred to as “ad slots” or “ad breaks.” With streaming video, the media player may be configured so that the client device cannot play the video without also playing predetermined advertisements during the designated ad slots.

8 FIG. 8 FIG. 800 800 802 804 802 806 808 810 804 Referring to, a diagrammatic view of an apparatusfor viewing video content and advertisements is illustrated. In selected embodiments, the apparatusmay include a processor (CPU)operatively coupled to a processor memory, which holds binary-coded functional modules for execution by the processor. Such functional modules may include an operating systemfor handling system functions such as input/output and memory access, a browserto display web pages, and media playerfor playing video. The memorymay hold additional modules not shown in, for example modules for performing other operations described elsewhere herein.

814 800 802 804 814 802 802 804 A busor other communication component may support communication of information within the apparatus. The processormay be a specialized or dedicated microprocessor configured or operable to perform particular tasks in accordance with the features and aspects disclosed herein by executing machine-readable software code defining the particular tasks. Processor memory(e.g., random access memory (RAM) or other dynamic storage device) may be connected to the busor directly to the processor, and store information and instructions to be executed by a processor. The memorymay also store temporary variables or other intermediate information during execution of such instructions.

824 814 802 824 806 808 810 812 800 804 800 824 802 800 A computer-readable medium in a storage devicemay be connected to the busand store static information and instructions for the processor; for example, the storage device (CRM)may store the modules,,andwhen the apparatusis powered off, from which the modules may be loaded into the processor memorywhen the apparatusis powered up. The storage devicemay include a non-transitory computer-readable storage medium holding information, instructions, or some combination thereof, for example instructions that when executed by the processor, cause the apparatusto be configured or operable to perform one or more operations of a method as described herein.

816 814 816 800 700 826 800 818 829 800 826 800 700 800 700 814 A communication interfacemay also be connected to the bus. The communication interfacemay provide or support two-way data communication between the apparatusand one or more external devices, e.g., the streaming system, optionally via a router/modemand a wired or wireless connection. In the alternative, or in addition, the apparatusmay include a transceiverconnected to an antenna, through which the apparatusmay communicate wirelessly with a base station for a wireless communication system or with the router/modem. In the alternative, the apparatusmay communicate with a video streaming systemvia a local area network, virtual private network, or other network. In another alternative, the apparatusmay be incorporated as a module or component of the systemand communicate with other components via the busor by some other modality.

800 814 820 828 828 800 828 800 The apparatusmay be connected (e.g., via the busand graphics processing unit) to a display unit. A displaymay include any suitable configuration for displaying information to an operator of the apparatus. For example, a displaymay include or utilize a liquid crystal display (LCD), touchscreen LCD (e.g., capacitive display), light emitting diode (LED) display, projector, or other display device to present information to a user of the apparatusin a visual display.

830 814 822 800 830 828 802 828 One or more input devices(e.g., an alphanumeric keyboard, microphone, keypad, remote controller, game controller, camera, or camera array) may be connected to the busvia a user input portto communicate information and commands to the apparatus. In selected embodiments, an input devicemay provide or support control over the positioning of a cursor. Such a cursor control device, also called a pointing device, may be configured as a mouse, a trackball, a track pad, touch screen, cursor direction keys or other device for receiving or tracking physical movement and translating the movement into electrical signals indicating cursor movement. The cursor control device may be incorporated into the display unit, for example using a touch sensitive screen. A cursor control device may communicate direction information and command selections to the processorand control cursor movement on the display. A cursor control device may have two or more degrees of freedom, for example allowing the device to specify cursor positions in a plane or three-dimensional space.

Some embodiments may be implemented in a non-transitory computer-readable storage medium for use by or in connection with the instruction execution system, apparatus, system, or machine. The computer-readable storage medium contains instructions for controlling a computer system to perform a method described by some embodiments. The computer system may include one or more computing devices. The instructions, when executed by one or more computer processors, may be configured or operable to perform that which is described in some embodiments.

As used in the description herein and throughout the claims that follow, “a”, “an”, and “the” includes plural references unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise.

The above description illustrates various embodiments along with examples of how aspects of some embodiments may be implemented. The above examples and embodiments should not be deemed to be the only embodiments and are presented to illustrate the flexibility and advantages of some embodiments as defined by the following claims. Based on the above disclosure and the following claims, other arrangements, embodiments, implementations, and equivalents may be employed without departing from the scope hereof as defined by the claims.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

April 24, 2026

Publication Date

September 10, 2026

Inventors

Thomas Howe
Mark Kegel
Edward Russell
Joseph Higgins
Daniel Spiewak
Matthias Sainz

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “INTELLIGENT CONTENT DELIVERY NETWORK (CDN) ENTITY ROUTING” (US-20260267708-A1). https://patentable.app/patents/US-20260267708-A1

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.