Content set based 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;
determining, at the server side of the communications system, that the data block is being communicated in response to a request by a requesting client for a content object that is part of a content set identified by a content set identifier, the content set being predetermined to be of interest to a plurality of clients;
associating the data block with the content set identifier;
generating a fingerprint using byte-level information comprised by the content portion of the data block;
determining, at the server side of the communications system, whether to communicate the data block to at least the requesting client by determining whether the data block is not presently stored local to the requesting client as a function of the fingerprint and a server-side client dictionary;
determining, when it is determined to communicate the data block to at least the requesting client, whether to multicast the data block over the communications path to at least the plurality of clients according to the content set identifier;
multicasting the data block over the communications path when it is determined to multicast the data block; and
using the content set identifier to determine whether a client of the plurality of clients accepts the data block multicast over the communications path.
5 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatuses, and systems are provided for improving utilization of the satellite communications system through various “deltacasting” techniques for handling content sets (e.g., feeds or websites). Embodiments operate in a client-server context, including a server optimizer, a client optimizer, and, in some embodiments, a pre-positioning client. Within this client-server context, content sets are multicast (e.g., anticipatorily pre-positioned in a local dictionary) to end users of the communications system and are handled at the content set level, according to set-level metadata and/or user preferences. In some embodiments, when locally stored information from the content sets is requested by a user, deltacasting techniques are used to generate fingerprints for use in identifying and exploit multicasting and/or other opportunities for increased utilization of links of the communications system.
-
Citations
16 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; determining, at the server side of the communications system, that the data block is being communicated in response to a request by a requesting client for a content object that is part of a content set identified by a content set identifier, the content set being predetermined to be of interest to a plurality of clients; associating the data block with the content set identifier; generating a fingerprint using byte-level information comprised by the content portion of the data block; determining, at the server side of the communications system, whether to communicate the data block to at least the requesting client by determining whether the data block is not presently stored local to the requesting client as a function of the fingerprint and a server-side client dictionary; determining, when it is determined to communicate the data block to at least the requesting client, whether to multicast the data block over the communications path to at least the plurality of clients according to the content set identifier; multicasting the data block over the communications path when it is determined to multicast the data block; and using the content set identifier to determine whether a client of the plurality of clients accepts the data block multicast over the communications path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. 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, stored in a memory at the server side of the communications system, the optimizer module, when executed, causing a processor to;
intercept a data block comprising a header portion and a content portion;determining, at the server side of the communications system, that the data block is being communicated in response to a request by a requesting client for a content object that is part of a content set identified by a content set identifier, the content set being determined to be of interest to a plurality of clients; associate the data block with the content set identifier; and generate a fingerprint using byte-level information comprised by the content portion of the data block; and a communications module, stored in the memory, communicatively coupled with the optimizer module, the communications module, when executed, causing the processor to; determine whether to communicate the data block to at least the requesting client by determining whether the data block is not presently stored local to the requesting client as a function of the fingerprint and a server-side client dictionary; determine, when it is determined to communicate the data block to at least the requesting client whether to multicast the data block over the communications to at least the plurality of clients according to the content set identifier; and when it is determined to multicast the data block; multicast the data block over the communications path; and use the content set identifier to determine whether a client of the plurality of clients accepts the data block multicast over the communications path. - View Dependent Claims (14, 15, 16)
-
Specification