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 client side of the communications system, the communications path comprising a shared forward link over which bandwidth resources are shared during a multicast communication, the method comprising:
- intercepting data using a server optimizer located at the server side of the communications system between a content source and a plurality of client optimizers, the data comprising a header portion and a content portion, the content portion comprising at least one content data block, and being communicated from the content source to a content destination associated with a first client optimizer, the first client optimizer being communicatively coupled with a first client dictionary;
calculating a fingerprint using byte-level information comprised by the at least one content data block;
comparing the fingerprint with a set of previously calculated fingerprints to determine whether the at least one content data block is currently stored in the first client dictionary, wherein the previously calculated fingerprints are stored at a modeler module;
determining, in response to the comparing step, whether to multicast the at least one content data block; and
when it is determined to multicast the at least one content data block, multicasting the at least one content data block over the communications path from the server side of the communications system to at least the content destination associated with the first client optimizer.
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, using techniques referred to herein as “deltacasting.” Embodiments operate in a client-server context, in which the server-side of the communication link intercepts requests and responses using a client-server optimizer (e.g., a transparent proxy or in-line optimizer between a client web browser and an Internet content provider). The optimizer uses techniques, such as dictionary coding techniques, to create fingerprints of content traversing the links of the communications system. These fingerprints are used to identify and exploit multicasting and/or other opportunities for increased utilization of the communications links.
-
Citations
13 Claims
-
1. A method for multicasting over a communications system having a communications path between a server side of the communications system and a client side of the communications system, the communications path comprising a shared forward link over which bandwidth resources are shared during a multicast communication, the method comprising:
-
intercepting data using a server optimizer located at the server side of the communications system between a content source and a plurality of client optimizers, the data comprising a header portion and a content portion, the content portion comprising at least one content data block, and being communicated from the content source to a content destination associated with a first client optimizer, the first client optimizer being communicatively coupled with a first client dictionary; calculating a fingerprint using byte-level information comprised by the at least one content data block; comparing the fingerprint with a set of previously calculated fingerprints to determine whether the at least one content data block is currently stored in the first client dictionary, wherein the previously calculated fingerprints are stored at a modeler module; determining, in response to the comparing step, whether to multicast the at least one content data block; and
when it is determined to multicast the at least one content data block, multicasting the at least one content data block over the communications path from the server side of the communications system to at least the content destination associated with the first client optimizer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
Specification