Deltacasting
First Claim
1. A multicasting method comprising:
- receiving at a server-side optimizer from a content server a data block of content requested by a first client device of a plurality of client devices connected to the content server by a common communications link, the common communications link comprising one of a plurality of spot beams of a satellite;
applying a multicast filtering criterion to the received data block to determine whether the received data block is a candidate for multicasting, wherein the multicast filtering criterion is a size threshold, and the applying the multicast filtering criterion comprises;
determining that the received data block is a candidate for multicasting if the received data block is greater than the size threshold, anddetermining that the received data block is not a candidate for multicasting if the received data block is less than the size threshold;
only if the data block is determined to be a candidate for multicasting, generating at the server-side optimizer a compressed version of the received data block according to a model of a first client dictionary of the first client device such that the data block is not directly accessible by a client from a client dictionary; and
only if the data block is determined to be a candidate for multicasting, determining at the server-side optimizer whether the compressed version of the received data block matches a compressed version of a data block previously received at the server-side optimizer; and
if the determining operation determines that the compressed version of the received data block does not match a compressed version of a data block previously received at the server-side optimizer, multicasting the compressed version of the received data block from the server-side optimizer over the common communications link to the first client device for storage in the first client dictionary and a second client device of the plurality of client devices for storage in a second client dictionary of the second client device, the multicasting comprising multicasting the compressed version of the received data block to the first client device and the second client device on the one of the spot beams and multicasting control data comprising a dictionary reference for the first client dictionary to allow the first client dictionary to recreate the data block for access by the first client device.
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
24 Claims
-
1. A multicasting method comprising:
-
receiving at a server-side optimizer from a content server a data block of content requested by a first client device of a plurality of client devices connected to the content server by a common communications link, the common communications link comprising one of a plurality of spot beams of a satellite; applying a multicast filtering criterion to the received data block to determine whether the received data block is a candidate for multicasting, wherein the multicast filtering criterion is a size threshold, and the applying the multicast filtering criterion comprises; determining that the received data block is a candidate for multicasting if the received data block is greater than the size threshold, and determining that the received data block is not a candidate for multicasting if the received data block is less than the size threshold; only if the data block is determined to be a candidate for multicasting, generating at the server-side optimizer a compressed version of the received data block according to a model of a first client dictionary of the first client device such that the data block is not directly accessible by a client from a client dictionary; and only if the data block is determined to be a candidate for multicasting, determining at the server-side optimizer whether the compressed version of the received data block matches a compressed version of a data block previously received at the server-side optimizer; and if the determining operation determines that the compressed version of the received data block does not match a compressed version of a data block previously received at the server-side optimizer, multicasting the compressed version of the received data block from the server-side optimizer over the common communications link to the first client device for storage in the first client dictionary and a second client device of the plurality of client devices for storage in a second client dictionary of the second client device, the multicasting comprising multicasting the compressed version of the received data block to the first client device and the second client device on the one of the spot beams and multicasting control data comprising a dictionary reference for the first client dictionary to allow the first client dictionary to recreate the data block for access by the first client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A machine readable medium in which are stored non-transitory instructions for causing the machine to perform a method comprising:
-
receiving at a server-side optimizer from a content server a data block of content requested by a first client device of a plurality of client devices connected to the content server by a common communications link, the common communications link comprising one of a plurality of spot beams of a satellite; applying a multicast filtering criterion to the received data block to determine whether the received data block is a candidate for multicasting, wherein the multicast filtering criterion is a size threshold, and the applying the multicast filtering criterion comprises; determining that the received data block is a candidate for multicasting if the received data block is greater than the size threshold, and determining that the received data block is not a candidate for multicasting if the received data block is less than the size threshold; only if the data block is determined to be a candidate for multicasting, generating at the server-side optimizer a compressed version of the received data block according to a model of a first client dictionary of the first client device such that the data block is not directly accessible by a client device from a client dictionary; only if the data block is determined to be a candidate for multicasting, determining at the server-side optimizer whether the compressed version of the received data block matches a compressed version of a data block previously received at the server-side optimizer; and if the determining operation determines that the compressed version of the received data block does not match a compressed version of a data block previously received at the server-side optimizer, multicasting the compressed version of the received data block from the server-side optimizer over the common communications link to the first client device for storage in the first client dictionary and a second client device of the plurality of client devices for storage in a second client dictionary of the second client device, the multicasting comprising multicasting the compressed version of the received data block to the first client device and the second client device on the one of the spot beams and multicasting control data comprising a dictionary reference for the first client dictionary to allow the first client dictionary to recreate the data block for access by the first client device. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A multicasting system comprising:
-
a server-side processor in communication with a server-side cache configured to store compressed versions of data blocks previously received by the server-side processor, wherein the server-side processor is configured to determine whether a compressed version of a data block of content newly received from a content server matches one of the compressed versions of the data blocks in the server-side cache and apply a multicast filtering criterion to the received data block to determine whether the received data block is a candidate for multicasting, wherein the multicast filtering criterion is a size threshold, and the server-side processor determines that the received data block is a candidate for multicasting if the received data block is greater than the size threshold and determines that the received data block is not a candidate for multicasting if the received data block is less than the size threshold; and a multicast processor configured to multicast the compressed version of the received data block over a common communications link comprising one of a plurality of spot beams of a satellite to a first client device that requested the content and a second device that did not request the content upon the server-side processor determining that the compressed version of the newly received data block does not match one of the compressed versions of the data blocks in the server-side cache and the data block is a candidate for multicasting; wherein the compressed version of the received data block is generated according to a model of a first client dictionary of the first client device such that the data block is not directly accessible by a client from a client dictionary, and the multicast processor multicasts control data comprising a dictionary reference for the first client dictionary to allow the first client dictionary to recreate the data block for access by the first client device. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification