IP Library Granted Patent US 11,916,990
Granted Patent B2
US 11,916,990 · App. 17/576,664 · Granted Feb 27, 2024

Content set based deltacasting

Inventors: William B. Sebastian (E. Falmouth, MA); Peter Lepeska (Boston, MA)
Assignee: VIASAT, INC.
H04L65/611H04B7/185H04L12/1859H04L12/1863H04L12/1881H04L12/1886H04L45/7453H04L47/70H04L65/60H04L67/01H04L67/10H04L69/04H04L69/22
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,916,990
App. No.
17/576,664
Granted
Feb 27, 2024
Kind
B2
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.

Claims (39)

1. A method for communication over a communications system having a communications path between a server side of the communication system and a client side of the communication system, the method comprising:

maintaining at the server side of the communication system a model of a client dictionary for a user system at the client side of the communication system;

receiving a content data block at the server side of the communication system;

generating a fingerprint of the content data block using byte-level information of the content data block; and

comparing the fingerprint of the content data block to the model of the client dictionary to determine if a match for the fingerprint is present in the client dictionary, wherein:

if it is determined that the match for the fingerprint is present in the client dictionary, sending a compressed version of the byte-level information comprising the fingerprint to the user system; and

if it is not determined that the match for the fingerprint is present in the client dictionary, sending the content data block to the user system.

2. The method of claim 1 , further comprising:

receiving an indication that the user system has stored the content data block; and

updating the model of the client dictionary to include the fingerprint in response to receiving the indication.

3. The method of claim 1 , wherein the content data block is received from a content server providing the content data block.

4. The method of claim 3 , wherein the content server provides the content data block in response to a request from at least one user system at the client side of the communication system.

5. The method of claim 1 , wherein the content data block is stored in the client dictionary as dissociated blocks of data, and wherein the fingerprint is needed to recreate content from the dissociated blocks of data stored in the client dictionary of the user system.

6. The method of claim 1 , wherein the sending the content data block comprises unicasting the content data block to the user system.

7. The method of claim 1 , wherein the sending the content data block comprises multicasting the content data block to a plurality of user systems at the client side using a shared forward link of the communication system.

8. The method of claim 7 , further comprising:

determining to multicast the content data block at least in part based on the fingerprint.

9. The method of claim 7 , wherein the plurality of user systems determine whether to store the content data block based on the fingerprint.

10. The method of claim 1 , wherein the fingerprint is generated using a least one of a cryptographic hash function, a non-secure hash function, or a checksum.

11. A server system for communicating data over a communication system having a communications path between a server side of the communication system and a client side of the communication system, 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:

maintain at the server side of the communication system a model of a client dictionary for a user system at the client side of the communication system;

receive content data block at the server side of the communication system;

generate a fingerprint of the content data block using byte-level information of the content data block; and

compare the fingerprint of the content data block to the model of the client dictionary to determine if a match for the fingerprint is present in the client dictionary; wherein:

if it is determined that the match for the fingerprint is present in the client dictionary, the optimizer module sends a compressed version of the byte-level information comprising the fingerprint to the user system; and

if it is not determined that the match for the fingerprint is present in the client dictionary, the optimizer module sends the content data block to the user system.

12. The server system of claim 11 , wherein the optimizer module is further operative to:

receive an indication that the user system has stored the content data block; and

update the model of the client dictionary to include the fingerprint in response to receiving the indication.

13. The server system of claim 11 , wherein the content data block is received from a content server providing the content data block.

14. The server system of claim 13 , wherein the content server provides the content data block in response to a request from at least one user system at the client side of the communication system.

15. The server system of claim 11 , wherein the content data block is stored in the client dictionary as dissociated blocks of data, and wherein the fingerprint is needed to recreate content from the dissociated blocks of data stored in the client dictionary of the user system.

16. The server system of claim 11 , wherein the optimizer module sends the content data block by unicasting the content data block to the user system.

17. The server system of claim 11 , wherein the optimizer module sends the content data block by multicasting the content data block to a plurality of user systems at the client side using a shared forward link of the communication system.

18. The server system of claim 17 , wherein the optimizer module is further operative to:

determine to multicast the content data block at least in part based on the fingerprint.

19. The server system of claim 18 , wherein the plurality of user systems determine whether to store the content data block based on the fingerprint.

20. The server system of claim 11 , wherein the fingerprint is generated using a least one of a cryptographic hash function, a non-secure hash function, or a checksum.

Assignments (5)
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Sep 19, 2023
From: VIASAT, INC.
To: MUFG BANK, LTD., AS AGENT
Reel/Frame 064948/0379 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Jun 29, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 064164/0152 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Jun 29, 2023
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 064176/0566 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2022
From: SEBASTIAN, WILLIAM B.; LEPSKA, PETER
To: VIASAT, INC.
Reel/Frame 058664/0484 →
Continuity (8)
Continuation 17172757 · Feb 10, 2021
Continuation 16723851 · Dec 20, 2019
Continuation 16247702 · Jan 15, 2019
Continuation 13919888 · Jun 17, 2013
Division 12685729 · Jan 12, 2010
Provisional Application 61170359 · Apr 17, 2009
Provisional Application 61144363 · Jan 13, 2009
Related Publication 20220141275A1 · May 5, 2022
Cited By (1)
US 12,684,156