IP Library Granted Patent US 11,139,919
Granted Patent B2
US 11,139,919 · App. 15/914,807 · Granted Oct 5, 2021

Transport protocol for anticipatory content

Inventor: William B Sebastian (Campton, NH)
Assignee: VIASAT, INC.
H04L1/08H04L12/18H04L12/1863H04L43/0823H04L65/4084H04L67/1097H04N21/2402H04N21/6375H04N21/6405H04N21/6408H04N21/6583H04N21/835
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,139,919
App. No.
15/914,807
Granted
Oct 5, 2021
Kind
B2
Abstract

Methods, apparatuses, and systems for improving utilization of a communications system (e.g., a satellite communications system) are provided, using delayed reliability techniques as part of a multicast transport protocol. Embodiments may operate in a client-server context, in which the server-side of the communication link multicasts data to requesting users and to users where the data is being speculatively prepositioned. Requesting users may implement reliability checks to verify receipt of complete data in response to the request while user systems where data is being speculatively prepositioned may receive multicast reliability information in response to reliability requests from other users, but may not request replacement of missing or corrupted data themselves until a request is made for the data by that system.

Claims (52)

1. A method for operation in a communications system having a server side in communication with a plurality of user systems via a shared communications infrastructure, the method comprising:

receiving a content object in a multicast communication at a first of the user systems over the shared communications infrastructure from the server side, the content object having been requested by a second of the user systems but not requested by the first user system;

caching, by the first user system in a local cache, data blocks of the content object, wherein the data blocks comprise uncorrected data received at the first user system;

in response to a request associated with the content object received by the first user system after the caching of the data blocks:

communicating, by the first user system over the shared communications infrastructure to the server side, a reliability message identifying missing or corrupted portions of the data blocks of the content object; and

receiving, at the first user system over the shared communications infrastructure from the server side, a repair message responsive to the reliability message, the repair message comprising the missing or corrupted portions of the data blocks of the content object.

2. The method of claim 1 further comprising receiving, at the first user system over the shared communications infrastructure from the server side, the request associated with the content object, wherein the request associated with the content object is a request for the reliability message.

3. The method of claim 1 , wherein the reliability message comprises positive acknowledgements of each of the data blocks successfully received at the first user system.

4. The method of claim 1 , wherein the reliability message comprises negative acknowledgements of each of the data blocks comprising the missing or corrupted portions of the data.

5. The method of claim 1 , wherein the request associated with the content object is an express request for the content object from a user of the first user system.

6. The method of claim 1 , wherein the repair message comprises uncompressed instances of each of the data blocks comprising the missing or corrupted portions of the data blocks.

7. The method of claim 6 , wherein the repair message further comprises compressed instances of each of the data blocks successfully received at the first user system.

8. The method of claim 1 further comprising, after the caching of the uncorrected data comprising data blocks of the content object in the local cache, receiving the request associated with the content object at the first user system.

9. The method of claim 8 , wherein the request associated with the content object is a request from the server side for the reliability message.

10. The method of claim 8 , wherein the request associated with the content object is a request by a user of the first user system for the content object.

11. The method of claim 10 further comprising providing the content object to the first user system.

12. The method of claim 1 , wherein the receiving the content object in the multicast communication comprises receiving, at the first user system in the multicast communication, a first subset of the data blocks error free.

13. The method of claim 12 , wherein one or more of the data blocks are not received in the multicast communication at the first user system as part of the receiving the content object in the multicast communication.

14. The method of claim 12 , wherein the receiving the content object in the multicast communication comprises receiving, at the first user system in the multicast communication, a second subset of the data blocks of the content object with errors in the data block.

15. The method of claim 12 , wherein a second subset of the data blocks of the content object are not successfully received at the first user system in the multicast communication as part of the receiving the content object in the multicast communication.

16. The method of claim 1 , wherein:

the receiving the content object in the multicast communication further comprises receiving a map identifying all data blocks of the content object, and

the number of data blocks comprising the missing or corrupted portions of the data blocks comprises a non-zero number of the data blocks identified by the map.

17. The method of claim 1 , wherein the content object is a multi-media object.

18. The method of claim 1 , wherein the request associated with the content object received by the first user system comprises a request for the content object.

19. A computing device comprising:

a memory; and

a processor configured to execute processor-executable program code stored in memory, the processor-executable program code configured to cause the processor to:

receive a content object in a multicast communication at a first user system of a communications system over a shared communications infrastructure from a server side of the communication system, the content object having been requested by a second user system of the communications system but not requested by the first user system;

cache, by the first user system in a local cache, data blocks of the content object, wherein the data blocks comprise uncorrected data received at the first user system;

in response to a request associated with the content object received by the first user system after the caching of the data blocks:

communicate, by the first user system over the shared communications infrastructure to the server side, a reliability message identifying missing or corrupted portions of the data blocks of the content object; and

receive, at the first user system over the shared communications infrastructure from the server side, a repair message responsive to the reliability message, the repair message comprising the missing or corrupted portions of the data blocks of the content object.

20. The computing device of claim 19 , wherein the processor-executable program code is further configured to cause the processor to receive, at the first user system over the shared communications infrastructure from the server side, the request associated with the content object, wherein the request associated with the content object is a request for the reliability message.

21. The computing device of claim 19 , wherein the reliability message comprises positive acknowledgements of each of the data blocks successfully received at the first user system.

22. The computing device of claim 19 , wherein the reliability message comprises negative acknowledgements of each of the data blocks comprising missing or corrupted portions of the data.

23. The computing device of claim 19 , wherein the request associated with the content object is an express request for the content object from a user of the first user system.

24. The computing device of claim 19 , wherein the repair message comprises uncompressed instances of each of the data blocks comprising the missing or corrupted portions of the data blocks.

25. The computing device of claim 24 , wherein the repair message further comprises compressed instances of each of the data blocks successfully received at the first user system.

26. The computing device of claim 19 , wherein the processor-executable program code is further configured to cause the processor, after the caching of the uncorrected data comprising data blocks of the content object in the local cache, to receive the request associated with the content object at the first user system.

27. The computing device of claim 26 , wherein the request associated with the content object is a request from the server side for the reliability message.

28. The computing device of claim 26 , wherein the request associated with the content object is a request by a user of the first user system for the content object.

29. The computing device of claim 28 , wherein the processor-executable program code is further configured to cause the processor to provide the content object to the first user system.

30. The computing device of claim 19 , wherein the processor-executable program code is further configured to cause the processor, as part of receiving the content object in the multicast communication, to receive a first subset of the data blocks error free.

31. The computing device of claim 30 , wherein one or more of the data blocks are not received in the multicast communication at the first user system as part of the receiving the content object in the multicast communication.

32. The computing device of claim 30 , wherein the processor-executable program code is further configured to cause the processor, as part of receiving the content object in the multicast communication, to receive a second subset of the data blocks of the content object with errors in the data block.

33. The computing device of claim 30 , wherein a second subset of the data blocks are not successfully received at the first user system in the multicast communication as part of the receiving the content object in the multicast communication.

34. The computing device of claim 19 , wherein:

the processor-executable program code is further configured to cause the processor, as part of receiving the content object in the multicast communication, to receive a map identifying all data blocks of the content object, and

the number of data blocks comprising the missing or corrupted portions of the data blocks comprises a non-zero number of the data blocks identified by the map.

35. The computing device of claim 19 , wherein the content object is a multi-media object.

36. The computing device of claim 19 , wherein the request associated with the content object received by the first user system comprises a request for the content object.

Assignments (11)
PARTIAL RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 48715/0589 Recorded Jun 6, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
To: VIASAT, INC.
Reel/Frame 071638/0083 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 063822/0446 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0223 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2025
From: MUFG BANK, LTD., AS AGENT
To: VIASAT, INC.
Reel/Frame 071321/0001 →
PARTIAL RELEASE OF SECURITY INTEREST AT REEL/FRAME 059332/0558 Recorded Jun 4, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VIASAT, INC.
Reel/Frame 071495/0152 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: VIASAT, INC.
To: SNAPPI HOLDCO, INC.
Reel/Frame 070293/0483 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 21, 2025
From: SNAPPI HOLDCO, INC.
To: SNAPPI, INC.
Reel/Frame 070293/0879 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT Recorded Sep 19, 2023
From: VIASAT, INC.
To: MUFG BANK, LTD., AS AGENT
Reel/Frame 064948/0379 →
SECURITY AGREEMENT Recorded Jun 1, 2023
From: VIASAT, INC.
To: BANK OF AMERICA, N.A., AS AGENT
Reel/Frame 063822/0446 →
SECURITY AGREEMENT Recorded Mar 7, 2022
From: VIASAT, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 059332/0558 →
SECURITY INTEREST Recorded Mar 27, 2019
From: VIASAT, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 048715/0589 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2018
From: SEBASTIAN, WILLIAM B
To: VIASAT, INC.
Reel/Frame 045460/0049 →