Client based opportunistic routing
First Claim
Patent Images
1. A method of obtaining content, comprising:
- receiving a request for the content from a user;
requesting resolution of a first domain name for a first source of the content, the first source corresponding to a first selected point of presence of a content delivery network, the first selected point of presence being selected based at least in part upon one of geographic proximity or network proximity with respect to the user, the first selected point of presence configured to transmit data at least at a threshold transmission rate;
receiving a first IP address for the first source of the content;
requesting resolution of a second domain name for a second source of the content, the second source corresponding to a second selected point of presence of the content delivery network, the second selected point of presence being selected based at least in part upon (a) the second selected point of presence being more remote to the user than the first selected point of presence with respect to the one of geographic proximity or network proximity, and (b) the first selected point of presence including at least one server capable of transmitting the content at least at the threshold transmission rate, the second selected point of presence configured to transmit data at least at the threshold transmission rate;
receiving a second IP address for the second source of the content;
requesting a particular portion of the content from the first source using the first IP address;
receiving, at least at the threshold transmission rate, the particular portion of the content from the first source and storing the particular portion of the content in a buffer;
determining whether the buffer has a sufficient amount of the content so that more of the content can be obtained before the buffer is entirely consumed;
based at least in part upon determining the buffer has the sufficient amount of the content, requesting an additional portion of the content from the second source using the second IP address;
based at least in part upon determining the buffer does not have the sufficient amount of the content, requesting the additional portion of the content from the first source using the first IP address; and
receiving, at least at the threshold transmission rate, the additional portion of the content.
1 Assignment
0 Petitions
Accused Products
Abstract
When a client requests content from a Content Delivery Network (or other system), a first portion of the content is requested from a source capable of providing high performance to that client. When the client has a sufficient amount of the content to perform its function, then additional portions of the content can be requested from a source that provides a lower performance to that client with a minimal or no performance penalty to the user of the client.
113 Citations
17 Claims
-
1. A method of obtaining content, comprising:
-
receiving a request for the content from a user; requesting resolution of a first domain name for a first source of the content, the first source corresponding to a first selected point of presence of a content delivery network, the first selected point of presence being selected based at least in part upon one of geographic proximity or network proximity with respect to the user, the first selected point of presence configured to transmit data at least at a threshold transmission rate; receiving a first IP address for the first source of the content; requesting resolution of a second domain name for a second source of the content, the second source corresponding to a second selected point of presence of the content delivery network, the second selected point of presence being selected based at least in part upon (a) the second selected point of presence being more remote to the user than the first selected point of presence with respect to the one of geographic proximity or network proximity, and (b) the first selected point of presence including at least one server capable of transmitting the content at least at the threshold transmission rate, the second selected point of presence configured to transmit data at least at the threshold transmission rate; receiving a second IP address for the second source of the content; requesting a particular portion of the content from the first source using the first IP address; receiving, at least at the threshold transmission rate, the particular portion of the content from the first source and storing the particular portion of the content in a buffer; determining whether the buffer has a sufficient amount of the content so that more of the content can be obtained before the buffer is entirely consumed; based at least in part upon determining the buffer has the sufficient amount of the content, requesting an additional portion of the content from the second source using the second IP address; based at least in part upon determining the buffer does not have the sufficient amount of the content, requesting the additional portion of the content from the first source using the first IP address; and receiving, at least at the threshold transmission rate, the additional portion of the content. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of obtaining content, comprising:
-
sending a request for the content from a client to a first source corresponding to a first selected point of presence of a content delivery network, the first selected point of presence being selected based at least in part upon one of geographic proximity or network proximity with respect to the client, the first selected point of presence configured to transmit data at least at a threshold transmission rate; receiving, at least at the threshold transmission rate, a first portion of the content at the client from the first source; determining whether the client has a threshold amount of the content buffered; based at least in part upon determining the client does not have the threshold amount, requesting an additional portion of the content from the first source of the content; based at least in part upon determining the client has the threshold amount, requesting the additional portion from a second source of the content corresponding to a second selected point of presence of the content delivery network, the second selected point of presence being selected based at least in part upon (a) the second selected point of presence being more remote to the client than the first selected point of presence with respect to the one of geographic proximity or network proximity, and (b) the first selected point of presence including at least one server capable of transmitting the content at least at the threshold transmission rate, the second selected point of presence configured to transmit the data at least at the threshold transmission rate; and receiving, at least at the threshold transmission rate, the additional portion at the client. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
13. A method of obtaining content, comprising:
-
sending a first request from a client for a first portion of the content to a content delivery network that includes multiple points of presence, one or more of the multiple points of presence configured to transmit data at least at a threshold transmission rate; receiving, at least at the threshold transmission rate, the first portion of the content from a first server corresponding to a first selected point of presence of the content delivery network, the first selected point of presence being selected based at least in part upon one of geographic proximity or network proximity with respect to the client; sending one or more additional requests for additional portions of the content to the content delivery network; monitoring how much of the content is buffered, the additional requests for the additional portions indicating an amount of the content that is buffered; and receiving, at least at the threshold transmission rate, the additional portions based at least in part upon the additional requests, wherein the additional portions of the content received based at least in part upon the additional requests that indicate that a threshold amount of the content has not been buffered are received at a first set of one or more sources corresponding to the first selected point of presence and the additional portions received based at least in part upon the additional requests that indicate that the threshold amount of the content has been buffered are received at a second set of one or more sources corresponding to a second selected point of presence of the content delivery network, the second selected point of presence being selected based at least in part upon (a) the second selected point of presence being more remote to the client than the first selected point of presence with respect to the one of geographic proximity or network proximity, and (b) the first selected point of presence including at least one server capable of transmitting the content at least at the threshold transmission rate. - View Dependent Claims (14)
-
-
15. One or more processor readable storage devices having processor readable code embodied on the processor readable storage devices, the processor readable code for programming one or more processors to perform a method comprising:
-
sending a request for content from a client to a first source corresponding to a first selected point of presence of a content delivery network, the first selected point of presence being selected based at least in part upon one of geographic proximity or network proximity with respect to the client, the first selected point of presence configured to transmit data at least at a threshold transmission rate; receiving, at least at the threshold transmission rate, a first portion of the content at the client from the first source; determining whether the client has a threshold amount of the content buffered; based at least in part upon determining that the client does not have the threshold amount of the content, requesting an additional portion of the content from the first source of the content; based at least in part upon determining that the client has the threshold amount of the content, requesting the additional portion from a second source of the content corresponding to a second selected point of presence of the content delivery network, the second selected point of presence being selected based at least in part upon (a) the second selected point of presence being more remote to the client to the client than the first selected point of presence with respect to the one of geographic proximity or network proximity, and (b) the first selected point of presence including at least one server capable of transmitting the content at least at the threshold transmission rate, the second selected point of presence configured to transmit the data at least at the threshold transmission rate; and receiving, at least at the threshold transmission rate, the additional portion at the client. - View Dependent Claims (16)
-
-
17. An apparatus that provides content, comprising:
-
one or more storage devices; a communication interface; an output device; and one or more processors in communication with the one or more storage devices, the communication interface, and the output device, the one or more processors having processor readable code for programming the one or more processors to; send a first request from a client to resolve a first domain name for providing the content; receive a first address for a first source of the content, the first source being chosen remotely from the one or more processors, the first source of the content corresponding to a first selected point of presence of a content delivery network, the first selected point of presence being selected based at least in part upon one of geographic proximity or network proximity with respect to the client, the first selected point of presence configured to transmit data at least at a threshold transmission rate; send a second request to resolve a second domain name for a second source of the content, the second source corresponding to a second selected point of presence of the content delivery network, the second selected point of presence being selected based at least in part upon (a) the second selected point of presence being more remote to the client than the first selected point of presence with respect to the one of geographic proximity or network proximity, and (b) the first selected point of presence including at least one server capable of transmitting the content at least at the threshold transmission rate, the second selected point of presence configured to transmit the data at least at the threshold transmission rate; receive a second address for the second source of the content, the second source being chosen remotely from the one or more processors; request for a particular portion of the content from the first source; receive, at least at the threshold transmission rate, the particular portion of the content from the first source and store the particular portion of the content in the one or more storage devices; determine whether the one or more storage devices have a threshold amount of the content; request for an additional portion of the content from the first source based at least in part upon determining that the one or more storage devices do not have the threshold amount of the content; request for the additional portion of the content from the second source based at least in part upon determining that the one or more storage devices have the threshold amount of the content; receive, at least at the threshold transmission rate, the additional portion of the content; and present at least a portion of the content via the output device.
-
Specification