IP Library Granted Patent US 10,880,396
Granted Patent B2
US 10,880,396 · App. 15/819,679 · Granted Dec 29, 2020

Pre-fetching random-value resource locators

Inventors: Peter J Lepeska (Boston, MA); Demetrios J Tsillas (Littleton, MA)
Assignee: VIASAT, INC.
H04L67/2847H04L67/02H04L67/146H04L67/42H04B7/185H04L67/32
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 10,880,396
App. No.
15/819,679
Granted
Dec 29, 2020
Kind
B2
Abstract

Once resolved, a random-value universal resource locator (RV-URL) identifies a resource on a host server and constitutes an instruction to a local device executing a network transaction to fetch the resource. Embodiments of the invention resolve and pre-fetch an RV-URL from a remote host server and then pre-position, on a client-side of a communications link to the remote server, both resolution information indicating how the RV-URL was resolved and the pre-fetched resource. Later, when the client device is executing a network transaction and encounters an RV-URL, the client device determines whether resolution information for the RV-URL is locally stored. If so, the client device uses the resolution information to resolve the RV-URL to the same value that was used during pre-fetch. The client device then sends a request for the resolved RV-URL. The request is intercepted on the client-side of the communications link, where it is determined whether a locally cached pre-fetched resource corresponds to the intercepted request. If so, the locally cached pre-fetched resource is provided to the local device as a complete response to the request, which can then be discarded.

Claims (65)

1. A method of accelerating execution of a network transaction, the method comprising:

identifying, by a pre-fetch module, a random-value universal resource locator (RV-URL) expected to be fetched by a client device as part of the network transaction, the identified RV-URL comprising a variable field and a random-value function;

resolving, by the pre-fetch module, the identified RV-URL to produce a resolved pre-fetch RV-URL, wherein the variable field of the resolved pre-fetch RV-URL contains a random value generated by the random-value function;

pre-fetching, by the pre-fetch module, a resource identified by the resolved pre-fetch RV-URL from a host server identified by the resolved pre-fetch RV-URL;

providing, to the client device, resolution information comprising the generated random value; and

providing, to the client device, the pre-fetched resource.

2. The method of claim 1 , wherein the resolving the identified RV-URL comprises:

executing the random-value function to generate the random value, and

inserting the generated random value into the variable field of the identified RV-URL.

3. The method of claim 2 , wherein:

the random-value function comprises a random-number function, and

the random value is a random number generated by the random-number function.

4. The method of claim 1 , wherein the pre-fetching the resource comprises:

generating a pre-fetch request for the resource identified by the resolved pre-fetch RV-URL, and

sending the pre-fetch request to the host server.

5. The method of claim 4 , wherein the pre-fetching the resource further comprise receiving, in response to the pre-fetch request, a response from the host server comprising the pre-fetched resource.

6. The method of claim 1 , wherein the provided resolution information further comprises the resolved pre-fetch RV-URL.

7. The method of claim 1 , wherein the pre-fetching comprises transmitting a pre-fetch request to the host server, and wherein the provided resolution information further comprises the pre-fetch request.

8. The method of claim 1 , further comprising:

receiving, at the pre-fetch module, hints for executing the network transaction,

wherein the identifying the RV-URL comprises encountering the RV-URL in the received hints.

9. The method of claim 8 , wherein:

the received hints comprise information from a prior execution of the network transaction, and

the identified RV-URL was used in the prior execution of the network transaction to fetch a resource.

10. The method of claim 8 , further comprising forwarding the received hints to the client device.

11. The method of claim 10 further comprising, prior to forwarding the received hints to the client device, adding, by the pre-fetch module, to the received hints the random value contained in the variable field of the resolved pre-fetch RV-URL.

12. The method of claim 1 , wherein providing the resolution information and the pre-fetched resource to the client device comprises sending, by the pre-fetch module, the resolution information and the pre-fetched resource over a communications link to the client device.

13. The method of claim 12 , wherein the communications link comprises a satellite link.

14. The method of claim 1 , further comprising:

caching the provided resolution information on a client-side of a communications link; and

caching the pre-fetched resource on the client-side of the communications link.

15. The method claim 14 wherein:

the caching the provided resolution information on the client-side of the communications link comprises caching the provided resolution information at the client device; and

the caching the pre-fetched resource on the client-side of the communications link comprises caching the pre-fetched resource at a client proxy associated with the client device.

16. An apparatus, disposed on a server-side of a communications network, for accelerating execution of a network transaction by a client device disposed on a client-side of the communications network, the apparatus comprising:

processor circuitry; and

digital storage having stored therein non-transient instructions that cause the processor circuitry to:

identify a random-value universal resource locator (RV-URL) expected to be fetched by the client device as part of the network transaction, the identified RV-URL comprising a variable field and a random-value function;

resolve the identified RV-URL to produce a resolved pre-fetch RV-URL, wherein the variable field of the resolved pre-fetch RV-URL contains a random value generated by the random-value function;

pre-fetch a resource identified by the resolved pre-fetch RV-URL from a host server identified by the resolved pre-fetch RV-URL;

provide, to the client device, resolution information comprising the generated random value; and

provide, to the client device, the pre-fetched resource.

17. The apparatus of claim 16 , wherein the digital storage further having stored therein non-transient instructions that cause the processor circuitry to:

execute the random-value function to generate the random value, and

insert the generated random value into the variable field of the identified RV-URL.

18. The apparatus of claim 17 , wherein:

the random-value function comprises a random-number function, and

the generated random value is a random number generated by the random-number function.

19. The apparatus of claim 16 , wherein the digital storage further having stored therein non-transient instructions that cause the processor circuitry to:

generate a pre-fetch request for the resource identified by the resolved pre-fetch RV-URL, and

send the pre-fetch request to the host server.

20. The apparatus of claim 19 , wherein the digital storage further having stored therein non-transient instructions that cause the processor circuitry to receive, in response to the pre-fetch request, a response from the host server comprising the pre-fetched resource.

21. The apparatus of claim 16 , wherein the provided resolution information further comprises the resolved pre-fetch RV-URL.

22. The apparatus of claim 16 , wherein the digital storage further having stored therein non-transient instructions that cause the processor circuitry to generate a pre-fetch request to the host server, and wherein the provided resolution information further comprises the pre-fetch request.

23. The apparatus of claim 16 , wherein the digital storage further having stored therein non-transient instructions that cause the processor circuitry to:

receive hints for executing the network transaction,

identify the RV-URL in the received hints, and wherein

identification of the RV-URL is based on identification of the RV-URL in the received hints.

24. The apparatus of claim 23 , wherein:

the received hints comprise information from a prior execution of the network transaction, and

the identified RV-URL was used in the prior execution of the network transaction to fetch a resource.

25. The apparatus of claim 23 , wherein the digital storage further having stored therein non-transient instructions that cause the processor circuitry to forward the received hints to the client device.

26. The apparatus of claim 25 , wherein the digital storage further having stored therein non-transient instructions that cause the processor circuitry to, prior to forwarding the received hints to the client device, add to the received hints the random value contained in the variable field of the resolved pre-fetch RV-URL.

27. The apparatus of claim 16 , wherein the digital storage further having stored therein non-transient instructions that cause the processor circuitry to send the resolution information and the pre-fetched resource over a communications link to the client device.

28. The apparatus of claim 27 , wherein the communications link comprises a satellite link.

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 Dec 19, 2017
From: LEPESKA, PETER J; TSILLAS, DEMETRIOS J
To: VIASAT, INC.
Reel/Frame 044427/0113 →