Deltacasting for live content
First Claim
1. A method for communicating 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 comprising a global stream model configured to maintain models of active session streams being communicated over the communications path;
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 from a second client session stream according to the global stream model, the second client session stream being an active session stream used to communicate the content stream between the server side of the communications system and at least a second client over the communications path;
when the traffic matches the byte-level information from the second client session stream according to the global stream model, configuring a shared session stream to multicast at least a 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;
intercepting shared traffic associated with the shared session stream at the server side of the communications system; and
when the shared traffic has been previously communicated to the first client according to the client stream model, compressing the shared traffic using the client stream model, and communicating the compressed shared traffic from the server side of the communications system to the first 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 live 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, substantially identical live content session streams into fewer shared session streams (e.g., a single shared session stream).
-
Citations
25 Claims
-
1. A method for communicating 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 comprising a global stream model configured to maintain models of active session streams being communicated over the communications path; 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 from a second client session stream according to the global stream model, the second client session stream being an active session stream used to communicate the content stream between the server side of the communications system and at least a second client over the communications path; when the traffic matches the byte-level information from the second client session stream according to the global stream model, configuring a shared session stream to multicast at least a 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; intercepting shared traffic associated with the shared session stream at the server side of the communications system; and when the shared traffic has been previously communicated to the first client according to the client stream model, compressing the shared traffic using the client stream model, and communicating the compressed shared traffic from the server side of the communications system to the first client over the communications path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A server system for communicating 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:
-
at least one processor and at least one memory; a modeling module, stored in the at least one memory, which, when executed, causes the at least one processor to maintain a global stream model configured to represent models of active session streams being communicated over the communications path; a server optimization module, stored in the at least one memory, which, when executed, causes the at least one processor to; intercept 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; 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 from a second client session stream according to the global stream model, the second client session stream being an active session stream used to communicate the content stream between the server side of the communications system and at least a second client over the communications path; and a stream management module, stored in the at least one memory, which, when executed, causes the at least one processor to; configure a shared session stream to multicast at least a 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 from the second client session stream according to the global stream model; intercepting shared traffic associated with the shared session stream at the server side of the communications system; and when the shared traffic has been previously communicated to the first client according to the client stream model, compress the shared traffic using the client stream model, and communicate the compressed shared traffic from the server side of the communications system to the first client over the communications path. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory machine-readable medium for handling communicating 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 comprising a global stream model configured to maintain models of active session streams being communicated over the communications path; 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 from a second client session stream according to the global stream model, the second client session stream being an active session stream used to communicate the content stream between the server side of the communications system and at least a second client over the communications path; when the traffic matches the byte-level information from the second client session stream according to the global stream model, configuring a shared session stream to multicast at least a 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; intercepting shared traffic associated with the shared session stream at the server side of the communications system; and when the shared traffic has been communicated to the first client according to the client stream model, compressing the shared traffic using the client stream model, and communicating the compressed shared traffic from the server side of the communications system to the first client over the communications path. - View Dependent Claims (22, 23, 24, 25)
-
Specification