Anycast transport protocol for content distribution networks
First Claim
1. A cache server for providing content, comprising:
- a hardware processor; and
a memory coupled to the hardware processor, the memory comprising instructions that, when executed by the hardware processor, cause the hardware processor to perform operations comprising;
receiving a first datagram from a client system sent to an anycast internet protocol address, the first datagram including a universal resource locator corresponding to the content;
sending a response datagram to the client system in response to the first datagram, the response datagram including a content identifier for the content;
receiving a first request datagram from the client system sent to the anycast internet protocol address, the first request datagram including the content identifier, an offset, and a first bandwidth indicator;
sending a batch of content datagrams to the client system, the batch of content datagrams including a portion of the content starting at the offset; and
receiving a second request datagram from the client system sent to the anycast internet protocol address, the second request datagram including the content identifier, a new offset, and a second bandwidth indicator, the new offset indicating a beginning of a next portion of the content that begins after the batch of content datagrams sent to the client system, wherein the beginning of the next portion is a number of a next byte of the content, wherein the second bandwidth indicator is based on a recent bandwidth for the portion of the content from the batch of content datagrams and based on a timeout occurring.
1 Assignment
0 Petitions
Accused Products
Abstract
A cache server for providing content includes a processor configured to receive a first datagram from a client system sent to an anycast address, send a response datagram to the client system in response to the first datagram, receive a request datagram from the client system sent to the anycast address, and send a batch of content datagrams to the client system. The first datagram includes a universal resource locator corresponding to the content. The response datagram includes a content identifier for the content. The request datagram includes the content identifier, an offset, and a bandwidth indicator. The batch of content datagrams includes a portion of the content starting at the offset.
-
Citations
20 Claims
-
1. A cache server for providing content, comprising:
-
a hardware processor; and a memory coupled to the hardware processor, the memory comprising instructions that, when executed by the hardware processor, cause the hardware processor to perform operations comprising; receiving a first datagram from a client system sent to an anycast internet protocol address, the first datagram including a universal resource locator corresponding to the content; sending a response datagram to the client system in response to the first datagram, the response datagram including a content identifier for the content; receiving a first request datagram from the client system sent to the anycast internet protocol address, the first request datagram including the content identifier, an offset, and a first bandwidth indicator; sending a batch of content datagrams to the client system, the batch of content datagrams including a portion of the content starting at the offset; and receiving a second request datagram from the client system sent to the anycast internet protocol address, the second request datagram including the content identifier, a new offset, and a second bandwidth indicator, the new offset indicating a beginning of a next portion of the content that begins after the batch of content datagrams sent to the client system, wherein the beginning of the next portion is a number of a next byte of the content, wherein the second bandwidth indicator is based on a recent bandwidth for the portion of the content from the batch of content datagrams and based on a timeout occurring. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for providing content, comprising:
-
first and second hardware cache servers, each of the cache servers including a storage medium having instructions that, when executed by a processor, cause the processor to perform operations comprising; receiving a first datagram from a client system sent to an anycast internet protocol address, the first datagram including a universal resource locator corresponding to the content; sending a response datagram to the client system in response to the first datagram, the response datagram including a content identifier for the content; receiving a first request datagram from the client system sent to the anycast internet protocol address, the first request datagram including the content identifier, an offset, and a first bandwidth indicator; verifying, based on the content identifier, that the first request datagram was sent by the client system; sending, in response to verifying that the first request datagram was sent by the client system, a batch of content datagrams to the client system, the batch of content datagrams including a portion of the content starting at the offset; and receiving a second request datagram from the client system sent to the anycast internet protocol address, the second request datagram including the content identifier, a new offset, and a second bandwidth indicator, the new offset indicating a next portion of the content that begins after the batch of content datagrams sent to the client system, wherein the second bandwidth indicator is based on a recent bandwidth for the portion of the content from the batch of content datagrams and based on a timeout occurring; and a routing control module that modifies the routing of the anycast address from the first cache server to the second cache server. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer readable device comprising a plurality of instructions, which when executed by a processor of a client system, cause the processor to perform operations comprising:
-
sending a first datagram to an anycast internet protocol address, the datagram including a universal resource locator corresponding to content; receiving a content identifier in response to the first datagram, wherein the content identifier includes an address of the client system; sending a first request datagram to an anycast internet protocol address, the first request datagram including the content identifier, an offset, and a first bandwidth indicator; receiving a batch of datagrams from a cache server in response to the first request datagram, the batch of datagrams including a portion of the content specified by the content identifier and the offset; and sending a second request datagram to the anycast internet protocol address, the second request datagram including the content identifier, a new offset, and a second bandwidth indicator, the new offset indicating a next portion of the content that begins after the received batch of content datagrams, wherein the second bandwidth indicator is based on a recent bandwidth for the portion of the content from the batch of content datagrams and based on a timeout occurring. - View Dependent Claims (17, 18, 19, 20)
-
Specification