Deltacasting for overlapping requests
First Claim
1. A method for multicasting over a communications system having a server side and a plurality of clients in communication over a shared communications infrastructure, the method comprising:
- receiving a content request at the server side from a first client over the communications infrastructure;
communicating content data blocks invoked by the content request to the first client via a first content stream over the communications infrastructure in response to the content request;
determining, by the server side according to a global stream model, whether the content request matches at least an elapsed portion of a second content stream being communicated to a second client,the global stream model maintaining models of active session streams being communicated over the communications infrastructure, andthe second content stream being one of the active session streams, having the elapsed portion already communicated to the second client, and having a remaining portion not yet communicated to the second client; and
multicasting, when the content request matches the elapsed portion of the content stream, at least some of the remaining portion of the second content stream from the server side to the first and second clients over the communications infrastructure concurrently with communicating the content data blocks to the first client over the first client session stream.
5 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatuses, and systems are provided for improving utilization of a communications system (e.g., a satellite communications system) when handling overlapping content requests. Embodiments use various techniques (e.g., dictionary coding techniques) to create fingerprints of content traversing the links of the communications system. These fingerprints are used to identify and exploit opportunities for using multicasting to share forward-link capacity by collapsing multiple overlapping requests for the same content via multiple content session streams into fewer session streams, including one or more shared session streams.
-
Citations
20 Claims
-
1. A method for multicasting over a communications system having a server side and a plurality of clients in communication over a shared communications infrastructure, the method comprising:
-
receiving a content request at the server side from a first client over the communications infrastructure; communicating content data blocks invoked by the content request to the first client via a first content stream over the communications infrastructure in response to the content request; determining, by the server side according to a global stream model, whether the content request matches at least an elapsed portion of a second content stream being communicated to a second client, the global stream model maintaining models of active session streams being communicated over the communications infrastructure, and the second content stream being one of the active session streams, having the elapsed portion already communicated to the second client, and having a remaining portion not yet communicated to the second client; and multicasting, when the content request matches the elapsed portion of the content stream, at least some of the remaining portion of the second content stream from the server side to the first and second clients over the communications infrastructure concurrently with communicating the content data blocks to the first client over the first client session stream. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A server-side system for multicasting over a communications system in which the server-side system is in communication with a plurality of clients over a shared communications infrastructure, the system comprising:
-
a server optimization module configured to receive a content request from a first client-side system over the communications infrastructure; a modeling module configured to determine, according to a global stream model, whether the content request matches at least an elapsed portion of a second content stream being communicated to a second client-side system, the global stream model maintaining models of active session streams being communicated over the communications infrastructure, and the second content stream being one of the active session streams, having the elapsed portion already communicated to the second client-side system, and having a remaining portion not yet communicated to the second client-side system; and a stream management module, communicatively coupled with the server optimization module and the modeling module, and configured to; communicate content data blocks invoked by the content request to the first client-side system via a first content stream over the communications infrastructure in response to the content request; and multicast, when the content request matches the elapsed portion of the content stream, at least some of the remaining portion of the second content stream to the first and second client-side systems over the communications infrastructure concurrently with communication the content data blocks to the first client-side system over the first client session stream. - View Dependent Claims (9)
-
-
10. A method for multicasting over a communications system having a server side and a plurality of clients in communication over a shared communications infrastructure, the method comprising:
-
directing a content request from a first client to the server side over the communications infrastructure; first receiving, at the first client in response to the content request, a client session stream comprising a first portion of a content stream invoked by the content request; second receiving, at the first client from the server side during the first receiving, a multicast session stream comprising a second portion of the content stream, the multicast session stream received in response to a determination by the server side that the content request matches an elapsed portion of an active session stream being communicated to a second client, the determination being according to a global stream model that maintains models of active session streams being communicated over the communications infrastructure, the active session stream having the elapsed portion already communicated to the second client and a remaining portion not yet communicated to the second client, and the second portion corresponding to at least part of the remaining portion of the second content stream; displaying the first portion of the content stream from the received client session stream to a customer premises device of the first client; and storing the second portion of the content stream from the received multicast session stream in a local cache of the first client. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A client-side system in a communications system having a server-side system and a plurality of client-side systems in communication over a shared communications infrastructure, the method comprising:
-
a redirector configured to direct a content request to the server-side system over the communications infrastructure; a client optimizer configured to; first receive, in response to the content request, a client session stream comprising a first portion of a content stream invoked by the content request; second receive, from the server-side system during the first receiving, a multicast session stream comprising a second portion of the content stream, the multicast session stream received in response to a determination by the server-side system that the content request matches an elapsed portion of an active session stream being communicated to a second client-side system, wherein; the determination is according to a global stream model that maintains models of active session streams being communicated over the communications infrastructure, the active session stream has the elapsed portion already communicated to the second client-side system and a remaining portion not yet communicated to the second client-side system, and the second portion corresponds to at least part of the remaining portion of the second content stream; display the first portion of the content stream from the received client session stream to a user system in communication with the client optimizer; and store the second portion of the content stream from the received multicast session stream in a local cache in communication with the client optimizer. - View Dependent Claims (19, 20)
-
Specification