DELTACASTING FOR OVERLAPPING REQUESTS
First Claim
1. A method for multicasting over a communications system having a communications path between a server side of the communications system and a plurality of clients, the communications path comprising a shared forward link over which bandwidth resources are shared during a multicast communication, the method comprising:
- intercepting traffic at the server side of the communications system, the traffic comprising a header portion and a content portion and being part of a first client session stream configured to communicate a content stream comprising the traffic to a first client over the communications path, the server side in communication with a global stream model configured to maintain models of active session streams being communicated over the communications path, one of the active session streams being a second client session stream currently communicating the content stream to a second client over the communications path so that an elapsed portion of the content stream has already been communicated to the second client and a remaining portion of the content stream has not yet been communicated to the second client substantially when the traffic is intercepted;
generating a fingerprint using byte-level information comprised by the content portion of the traffic;
using the fingerprint to determine whether the traffic matches byte-level information comprised by the elapsed portion of the content stream communicated to the second client over the second client session stream according to the global stream model; and
when the traffic matches the byte-level information comprised by the elapsed portion of the content stream, configuring a shared session stream to multicast at least some of the remaining portion of the content stream from the server side of the communications system to the first client and the second client over the communications path substantially as the traffic is communicated 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
31 Claims
-
1. A method for multicasting over a communications system having a communications path between a server side of the communications system and a plurality of clients, the communications path comprising a shared forward link over which bandwidth resources are shared during a multicast communication, the method comprising:
-
intercepting traffic at the server side of the communications system, the traffic comprising a header portion and a content portion and being part of a first client session stream configured to communicate a content stream comprising the traffic to a first client over the communications path, the server side in communication with a global stream model configured to maintain models of active session streams being communicated over the communications path, one of the active session streams being a second client session stream currently communicating the content stream to a second client over the communications path so that an elapsed portion of the content stream has already been communicated to the second client and a remaining portion of the content stream has not yet been communicated to the second client substantially when the traffic is intercepted; generating a fingerprint using byte-level information comprised by the content portion of the traffic; using the fingerprint to determine whether the traffic matches byte-level information comprised by the elapsed portion of the content stream communicated to the second client over the second client session stream according to the global stream model; and when the traffic matches the byte-level information comprised by the elapsed portion of the content stream, configuring a shared session stream to multicast at least some of the remaining portion of the content stream from the server side of the communications system to the first client and the second client over the communications path substantially as the traffic is communicated to the first client over the first client session stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A server system for multicasting over a communications system having a communications path between a server side of the communications system and a plurality of clients, the communications path comprising a shared forward link over which bandwidth resources are shared during a multicast communication, the server system comprising:
-
a modeling module, configured to maintain a global stream model configured to represent models of active session streams being communicated over the communications path, one of the active session streams being a second client session stream currently communicating a content stream to a second client over the communications path; a server optimization module, communicatively coupled with the modeling module, and configured to; intercept traffic, the traffic comprising a header portion and a content portion and being part of a first client session stream configured to communicate the content stream comprising the traffic to a first client over the communications path, such that an elapsed portion of the content stream has already been communicated to the second client and a remaining portion of the content stream has not yet been communicated to the second client over the second client session stream substantially when the traffic is intercepted; generate a fingerprint using byte-level information comprised by the content portion of the traffic; and use the fingerprint to determine whether the traffic matches byte-level information comprised by the elapsed portion of the content stream communicated to the second client over the second client session stream according to the global stream model; and a stream management module, communicatively coupled with the server optimization module and the modeling module, and configured to; configure a shared session stream to multicast at least some of the remaining portion of the content stream from the server side of the communications system to the first client and the second client over the communications path substantially as the traffic is communicated to the first client over the first client session stream when the traffic matches the byte-level information comprised by the elapsed portion of the content stream. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A machine-readable medium for handling multicasting over a communications system having a communications path between a server side of the communications system and a plurality of clients, the communications path comprising a shared forward link over which bandwidth resources are shared during a multicast communication, the machine-readable medium having instructions stored thereon which, when executed by a machine, cause the machine to perform steps comprising:
-
intercepting traffic at the server side of the communications system, the traffic comprising a header portion and a content portion and being part of a first client session stream configured to communicate a content stream comprising the traffic to a first client over the communications path, the server side in communication with a global stream model configured to maintain models of active session streams being communicated over the communications path, one of the active session streams being a second client session stream currently communicating the content stream to a second client over the communications path so that an elapsed portion of the content stream has already been communicated to the second client and a remaining portion of the content stream has not yet been communicated to the second client substantially when the traffic is intercepted; generating a fingerprint using byte-level information comprised by the content portion of the traffic; using the fingerprint to determine whether the traffic matches byte-level information comprised by the elapsed portion of the content stream communicated to the second client over the second client session stream according to the global stream model; and when the traffic matches the byte-level information comprised by the elapsed portion of the content stream, configuring a shared session stream to multicast at least some of the remaining portion of the content stream from the server side of the communications system to the first client and the second client over the communications path substantially as the traffic is communicated to the first client over the first client session stream. - View Dependent Claims (26, 27, 28, 29, 30, 31)
-
Specification