Correlative anticipatory deltacasting
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 a data block at the server side of the communications system, the data block comprising a header portion and a content portion and being communicated to a requesting client over the communications path;
updating a client usage model to indicate that the data block is being communicated to the requesting client, the client usage model being configured to represent which data blocks have been previously communicated and to which clients of the communications system the data blocks have been previously communicated;
generating a user correlation model by calculating correlations between the data blocks communicated to the requesting client and the data blocks communicated to other clients of the communications system according to the client usage model;
determining whether to multicast the data block by determining, according to the user correlation model, whether a correlation between the requesting client and a non-requesting client of the communications system is above a threshold level; and
multicasting the data block from the server side of the communications system to at least the requesting client over the communications path according to the user correlation model,wherein the data block is multicast from the server side of the communications system to at least the requesting user and the non-requesting client over the communications path when the correlation between the requesting client and the non-requesting client is above the threshold level.
5 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatuses, and systems for improving utilization of a communications system (e.g., a satellite communications system) are provided through techniques referred to herein as “deltacasting.” Some embodiments use a server-side optimizer to intercept and create fingerprints of byte-level content data traversing links of the communications system. The content fingerprints are used to transparently identify communications patterns (e.g., repetitious downloads of the same content, correlations between users, etc.), which may then be used in exploiting multicasting and/or other opportunities for increased utilization of the communication links.
121 Citations
17 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 a data block at the server side of the communications system, the data block comprising a header portion and a content portion and being communicated to a requesting client over the communications path; updating a client usage model to indicate that the data block is being communicated to the requesting client, the client usage model being configured to represent which data blocks have been previously communicated and to which clients of the communications system the data blocks have been previously communicated; generating a user correlation model by calculating correlations between the data blocks communicated to the requesting client and the data blocks communicated to other clients of the communications system according to the client usage model; determining whether to multicast the data block by determining, according to the user correlation model, whether a correlation between the requesting client and a non-requesting client of the communications system is above a threshold level; and multicasting the data block from the server side of the communications system to at least the requesting client over the communications path according to the user correlation model, wherein the data block is multicast from the server side of the communications system to at least the requesting user and the non-requesting client over the communications path when the correlation between the requesting client and the non-requesting client is above the threshold level.
-
-
2. 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 a data block at the server side of the communications system, the data block comprising a header portion and a content portion and being communicated to a requesting client over the communications path; updating a client usage model to indicate that the data block is being communicated to the requesting client, the client usage model being configured to represent which data blocks have been previously communicated and to which clients of the communications system the data blocks have been previously communicated; generating a user correlation model by calculating correlations between the data blocks communicated to the requesting client and the data blocks communicated to other clients of the communications system according to the client usage model; multicasting the data block from the server side of the communications system to at least the requesting client over the communications path according to the user correlation model; and identifying a set of correlated clients according to the user correlation model, the set of correlated clients comprising non-requesting clients of the communications system for which a correlation between the requesting client and the respective non-requesting client is above a threshold level, wherein the data block is multicast from the server side of the communications system to at least the requesting user and the set of correlated clients. - View Dependent Claims (3, 4)
-
-
5. 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:
-
an optimizer module, configured to; intercept a data block at the server side of the communications system, the data block comprising a header portion and a content portion and being communicated to a requesting client over the communications path; generate a fingerprint using byte-level information comprised by the content portion of the data block; use the fingerprint to make a matching determination, the matching determination indicating whether the data block matches a logged data block having previously been communicated to at least one of the plurality of clients of the communications system; determine whether a trigger event has occurred according to the matching determination; and identify a set of correlated clients having system usage patterns that correlate with system usage patterns of the requesting client by at least a threshold correlation amount, such that the trigger event occurs when the logged data block has previously been communicated to at least one of the set of correlated clients; and a multicaster module, communicatively coupled with the optimizer module, and configured to; multicast the data block from the server side of the communications system over the communications path when the trigger event has occurred according to the matching determination. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. 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:
-
an optimizer module configured to; intercept a data block at the server side of the communications system, the data block comprising a header portion and a content portion and being communicated to a requesting client over the communications path; update a client usage model to indicate that the data block is being communicated to the requesting client, the client usage model being configured to represent which data blocks have been previously communicated and to which clients of the communications system the data blocks have been previously communicated; and generate a user correlation model by calculating correlations between the data blocks communicated to the requesting client and the data blocks communicated to other clients of the communications system according to the client usage model; and identify a set of correlated clients according to the user correlation model, the set of correlated clients comprising non-requesting clients of the communications system for which a correlation between the requesting client and the respective non-requesting client is above a threshold level; and a multicaster module, communicatively coupled with the optimizer module, and configured to; multicast the data block from the server side of the communications system to at least the requesting client over the communications path according to the user correlation model, wherein the multicaster module is configured to multicast the data block from the server side of the communications system to at least the requesting client and the set of correlated clients. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
Specification