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 when the traffic is intercepted;
generating a fingerprint using byte-level information comprised by the content portion of the traffic;
using the fingerprint to identify overlapping requests by determining that 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 and thus identifies overlapping requests, configuring the first client session stream, the second client session stream, and a shared session stream to collapse at least some of the remaining portion of the content stream for the first client session stream and the second client session stream by configuring the 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.
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 when the traffic is intercepted; generating a fingerprint using byte-level information comprised by the content portion of the traffic; using the fingerprint to identify overlapping requests by determining that 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 and thus identifies overlapping requests, configuring the first client session stream, the second client session stream, and a shared session stream to collapse at least some of the remaining portion of the content stream for the first client session stream and the second client session stream by configuring the 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. - 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 processor; a memory coupled to the processor; a modeling module, stored in the memory, which, when executed, causes the processor 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, stored in the memory, which, when executed, causes the processor 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 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 identify overlapping requests by determining that 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, stored in the memory, which, when executed, causes the processor to; configure the first client session stream, the second client session stream, and a shared session stream to collapse at least some of the remaining portion of the content stream for the first client session stream and the second client session stream by configuring the 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 when the traffic matches the byte-level information comprised by the elapsed portion of the content stream and thus identifies overlapping requests. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A non-transitory 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 when the traffic is intercepted; generating a fingerprint using byte-level information comprised by the content portion of the traffic; using the fingerprint to identify overlapping requests by determining that 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 and thus identifies overlapping requests, configuring the first client session stream, the second client session stream, and a shared session stream to collapse at least some of the remaining portion of the content stream for the first client session stream and the second client session stream by configuring the 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. - View Dependent Claims (26, 27, 28, 29, 30, 31)
-
Specification