IP Library Granted Patent US 11,870,836
Granted Patent B2
US 11,870,836 · App. 15/777,478 · Granted Jan 9, 2024

Accelerating connections to a host server

Inventors: Peter J Lepeska (Boston, MA); Demetrios J Tsillas (Littleton, MA)
Assignee: VIASAT, INC.
H04L67/01H04L67/1097H04L67/5681
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,870,836
App. No.
15/777,478
Granted
Jan 9, 2024
Kind
B2
Abstract

In anticipation of a client device establishing a connection over a network with a remote host service, a pre-connect module generates a connection request (referred to herein as a “pre-connect request”) on behalf of the client device and sends the pre-connect request to the remote host server. The remote server responds with a connection response (referred to herein as a “pre-connect response”), which is pre-positioned on the client-side of the network along with information for generating a later connection request that is in material respects the same as the pre-connect request. Then, when the client device later seeks to establish a connection with the remote host server, the client device determines whether it has in local storage generation information for generating a connection request to the remote host server. If so, the client device uses the generation information to generate a connection request that is in material respects the same as the pre-connect request. An interceptor on the client-side of the network intercepts connection requests and determines whether a corresponding pre-connect response is locally stored. If so, the interceptor sends the locally stored pre-connect response as a complete response to the intercepted request, which can be discarded.

Claims (76)

1. A method of accelerating setup of a persistent connection over a network between a client device and a remote host server, where establishing the connection requires a connection request by the client device and a corresponding connection response by the remote host server, the method comprising:

intercepting, by an interceptor module on a client-side of the network, a connection request to establish a persistent connection over the network generated by the client device for a connection with the remote host server;

determining, by the interceptor module, whether a pre-connect response to establish the persistent connection from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request; and

responsive to determining that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request, providing the pre-connect response to the client device as a complete response to the intercepted connection request.

2. The method of claim 1 further comprising, responsive to determining that the pre-connect response from the remote host server is not stored on the client-side of the network or does not correspond to the intercepted connection request, forwarding the intercepted connection request over the network to the remote host server.

3. The method of claim 2 , wherein, responsive to determining that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request, discarding the intercepted connection request.

4. The method of claim 1 , wherein the determining is affirmative if a source of the pre-connect response and a destination of the intercepted connection request are both the remote host server.

5. The method of claim 1 , wherein the determining is affirmative if:

a source network address of the pre-connect response and a destination network address of the intercepted connection request are a network address of the remote host server; and

a socket associated with the source network address of the pre-connect response matches a socket associated with the destination network address in the intercepted connection request.

6. The method of claim 1 further comprising:

generating, by the client device, the connection request; and

sending, by the client device, the connection request addressed to the remote host server.

7. The method of claim 1 , wherein the connection request is a request for a secure connection with the remote host server.

8. The method of claim 1 , wherein the network includes a satellite link between the client device and the remote host server.

9. The method of claim 1 , wherein:

the client device comprises a web browser,

the connection request is from the web browser rendering a web page, and

the web page comprises an instruction to fetch a resource from the remote host server.

10. The method of claim 9 , wherein:

the web page is stored on a web server located on a host server side of the network, and

the remote host server is different than the web server.

11. An apparatus, disposed on a client-side of a communications network, for accelerating setup of a persistent connection over the network between a client device and a remote host server, where establishing the connection requires a connection request by the client device and a corresponding connection response by the remote host server, the apparatus comprising:

processor circuitry; and

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

intercept a connection request to establish a persistent connection over the network generated by the client device for a connection with the remote host server;

determine whether a pre-connect response to establish the persistent connection from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request; and

responsive to a determination that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request, provide the pre-connect response to the client device as a complete response to the intercepted connection request.

12. The apparatus of claim 11 , wherein the non-transitory digital storage further has stored thereon instructions that cause the processor circuitry to, responsive to a determination that the pre-connect response from the remote host server is not stored on the client-side of the network or does not correspond to the intercepted connection request, forwarding the intercepted connection request over the network to the remote host server.

13. The apparatus of claim 12 , wherein the non-transitory digital storage further has stored thereon instructions that cause the processor circuitry to, responsive to theta determination that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request, discard the intercepted connection request.

14. The apparatus of claim 11 , wherein the determination that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request is affirmative if a source of the pre-connect response and a destination of the intercepted connection request are both the remote host server.

15. The apparatus of claim 11 , wherein the determination that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request is affirmative if:

a source network address of the pre-connect response and a destination network address of the intercepted connection request are a network address of the remote host server; and

a socket associated with the source network address of the pre-connect response matches a socket associated with the destination network address in the intercepted connection request.

16. The apparatus of claim 11 , wherein the non-transitory digital storage further has stored thereon instructions that cause the processor circuitry to:

generate the connection request; and

send the connection request addressed to the remote host server.

17. The apparatus of claim 11 , wherein the connection request is a request for a secure connection with the remote host server.

18. The apparatus of claim 11 , wherein the network includes a satellite link between the client device and the remote host server.

19. The apparatus of claim 11 , wherein:

the client device comprises a web browser,

the connection request is from the web browser rendering a web page, and

the web page comprises an instruction to fetch a resource from the remote host server.

20. The apparatus of claim 19 , wherein:

the web page is stored on a web server located on a host server side of the network, and the remote host server is different than the web server.

21. A non-transitory computer-readable medium having encoded thereon computer software for accelerating setup of a persistent connection over a network between a client device and a remote host server, where establishing the connection requires a connection request by the client device and a corresponding connection response by the remote host server, the non-transitory computer-readable medium comprising processor-executable instructions configured to cause a processor to:

intercept a connection request to establish a persistent connection over the network generated by the client device for a connection with the remote host server;

determine whether a pre-connect response to establish the persistent connection from the remote host server is stored on a client-side of the network and corresponds to the intercepted connection request; and

responsive to a determination that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request, provide the pre-connect response to the client device as a complete response to the intercepted connection request.

22. The non-transitory computer-readable medium of claim 21 , wherein the non-transitory computer-readable medium further comprising processor-executable instructions configured to cause a processor to, responsive to a determination that the pre-connect response from the remote host server is not stored on the client-side of the network or does not correspond to the intercepted connection request, forwarding the intercepted connection request over the network to the remote host server.

23. The non-transitory computer-readable medium of claim 22 , wherein the non-transitory computer-readable medium further comprising processor-executable instructions configured to cause a processor to, responsive to theta determination that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request, discard the intercepted connection request.

24. The non-transitory computer-readable medium of claim 21 , wherein the determination that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request is affirmative if a source of the pre-connect response and a destination of the intercepted connection request are both the remote host server.

25. The non-transitory computer-readable medium of claim 21 , wherein the determination that the pre-connect response from the remote host server is stored on the client-side of the network and corresponds to the intercepted connection request is affirmative if:

a source network address of the pre-connect response and a destination network address of the intercepted connection request are a network address of the remote host server; and

a socket associated with the source network address of the pre-connect response matches a socket associated with the destination network address in the intercepted connection request.

26. The non-transitory computer-readable medium of claim 21 , wherein the non- transitory computer-readable medium further comprising processor-executable instructions configured to cause a processor to:

generate the connection request; and

send the connection request addressed to the remote host server.

27. The non-transitory computer-readable medium of claim 21 , wherein the connection request is a request for a secure connection with the remote host server.

28. The non-transitory computer-readable medium of claim 21 , wherein the network includes a satellite link between the client device and the remote host server.

29. The non-transitory computer-readable medium of claim 21 , wherein:

the client device comprises a web browser,

the connection request is from the web browser rendering a web page, and

the web page comprises an instruction to fetch a resource from the remote host server.

30. The non-transitory computer-readable medium of claim 29 , wherein:

the web page is stored on a web server located on a host server side of the network, and

the remote host server is different than the web server.

31. The method of claim 6 , wherein:

the pre-connect response is a connection response from the remote host server to a pre-connect request that mimics the connection request; and

the connection request is generated using cached generation information indicating how the pre-connect request to the remote host server was generated.

32. The apparatus of claim 16 , wherein:

the pre-connect response is a connection response from the remote host server to a pre-connect request that mimics the connection request; and

the connection request is generated using cached generation information indicating how the pre-connect request to the remote host server was generated.

33. The non-transitory computer-readable medium of claim 26 , wherein:

the pre-connect response is a connection response from the remote host server to a pre-connect request that mimics the connection request; and

the connection request is generated using cached generation information indicating how the pre-connect request to the remote host server was generated.

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 Jun 26, 2018
From: LEPESKA, PETER J; TSILLAS, DEMETRIOS J
To: VIASAT, INC.
Reel/Frame 046208/0889 →
Continuity (2)
Provisional Application 62263241 · Dec 4, 2015
Related Publication 20180367645A1 · Dec 20, 2018