IP Library Granted Patent US 10,158,735
Granted Patent B2
US 10,158,735 · App. 14/821,635 · Granted Dec 18, 2018

Read-ahead on signed connections with unsigning, inline, transparent proxies

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,158,735
App. No.
14/821,635
Granted
Dec 18, 2018
Kind
B2
Abstract

Innovative technologies for reducing network request response times over a server-signed connection are disclosed. The technologies may involve dynamically computing synchronized compression dictionaries using server responses to speculative or “read-ahead” client requests. The technologies operate even when the client is unable to accept the server responses due to server-signing constraints. A server proxy may receive a read-ahead request originating from a client proxy. After receiving a response to the read-ahead request from a server, the server proxy may populate a compression dictionary and forward the read-ahead request to the client proxy. The client proxy may populate its own synchronized compression dictionary using the forwarded read-ahead response. The server proxy and client proxy may use the compression dictionaries to respectively compress and decompress a response to an actual client request that matches or is highly similar to the earlier response to the read-ahead request.

Claims (40)

1. A system for reducing network request response times over a server-signed network connection, the system comprising:

a client proxy that communicates with a client over a network connection running a server-signing protocol, wherein the client proxy generates a read-ahead request that matches a predicted future client request and sends the read-ahead request over the communication network; and

a server proxy that:

receives the read-ahead request from the client proxy over the network connection,

identifies the received request as a read-ahead request rather than a client request originating from the client based on the received request including a distinguishing identifier that distinguishes the read-ahead request from client requests and that assigns higher priority to client requests relative to the read-ahead request, and

executes instructions stored in memory, wherein execution of the instructions processes the read-ahead request when the network connection is idle in accordance with the higher priority assigned to client requests, wherein processing the read-ahead request comprises:

sending the read-ahead request to a server communicatively coupled to the server proxy over the network connection,

receiving from the server a response to the read-ahead request,

compressing the response to the read-ahead request using a compression dictionary associated with the server proxy, and

sending the compressed read-ahead response to the client proxy, wherein the client proxy modifies the compressed read-ahead response to create a modified response that matches a valid signed response to the predicted future client request.

2. The system of claim 1 , wherein the server proxy sends the compressed read-ahead response to the client proxy when a level of data size reduction fails to at least meet a predetermined data size reduction metric.

3. The system of claim 1 , wherein the server proxy sends the compressed read-ahead response to the client proxy when compressing the response requires adding to the compression dictionary at least one new dictionary entry associated with the response.

4. The system of claim 1 , wherein the server proxy sends the compressed read-ahead response to the client proxy when compressing the response requires adding to the compression dictionary a plurality of new dictionary entries associated with the response.

5. The system of claim 1 , wherein the server proxy sends the compressed read-ahead response to the client proxy when compressing the response requires adding to the compression dictionary a quantity of new dictionary entries that exceeds a predetermined quantity of dictionary entries.

6. The system of claim 1 , wherein the server proxy does not send the compressed read-ahead response to the client proxy when a level of data size reduction at least meets a predetermined data size reduction metric.

7. The system of claim 1 , wherein the server proxy does not send the compressed read-ahead response to the client proxy when compressing the response does not require adding to the compression dictionary any new dictionary entry associated with the response.

8. The system of claim 1 , wherein the server proxy does not send the compressed read-ahead response to the client proxy when compressing the response requires adding to the compression dictionary a quantity of new dictionary entries that does not exceed a predetermined quantity of dictionary entries.

9. The system of claim 8 , wherein the server proxy prioritizes transmitting a response to a client request over transmitting the compressed response to the read-ahead request.

10. The system of claim 1 , wherein sending the read-ahead request to the server is limited to sending the read-ahead request when the network connection is idle.

11. The system of claim 1 , wherein the server proxy receives and compresses a response to a client request using the compression dictionary associated with the server proxy.

12. The system of claim 11 , wherein the server transmits the compressed client response to the client proxy over the network connection.

13. The system of claim 12 , wherein the client proxy decompresses the compressed client response using a compression dictionary associated with the client proxy, the compression dictionary synchronized with the compression dictionary associated with the server proxy.

14. The system of claim 13 , wherein the client proxy sends to the client the decompressed response to the client request.

15. A system for reducing network request response times over a server-signed network connection, the system comprising:

a server proxy that communicates with a server over a network connection running a server-signing protocol; and

a client proxy that:

sends a first read-ahead request to the server proxy over the network connection that matches a predicted future client request, the read-ahead request including a distinguishing identifier that distinguishes the read-ahead request from client requests and that assigns higher priority to client requests relative to the read-ahead request, wherein the server proxy identifies the read-ahead request as the read-ahead request rather than a client request originating from the client based on the distinguishing identifier included in the read-ahead request,

receives from the server proxy a compressed response to the first read-ahead request,

decompresses the compressed response to the first read-ahead request using a compression dictionary, and

modifies the decompressed first read-ahead response to create a modified response matches a valid signed response to the predicted future client request.

16. The system of claim 15 , wherein decompressing the compressed response to the first read-ahead request includes populating the compression dictionary with one or more new dictionary entries associated with the response.

17. The system of claim 15 , wherein the client proxy sends a second read-ahead request to the server proxy over the network connection and receives from the server proxy a notification indicating that the client proxy will not receive a response to the second read-ahead request from the server proxy.

18. The system of claim 17 , wherein the client proxy frees up one or more data structures associated with the second read-ahead request when the client proxy receives the notification.

19. The system of claim 15 , wherein the client proxy designates the read-ahead request as distinguishable from the client request before sending the read-ahead request to the server proxy by including the identifier in the read-ahead request.

20. The system of claim 19 , wherein the server proxy prioritizes transmitting a response to a client request over transmitting the compressed response to the read-ahead request.

21. The system of claim 15 , wherein the client proxy only receives the compressed response to the read-ahead client response when the connection is idle.

22. The system of claim 16 , wherein the compression dictionary associated with the client proxy is synchronized with a compression dictionary associated with the server proxy.

23. The system of claim 22 , wherein the client proxy sends a client request to the server proxy and receives from the server proxy a compressed response to the client request.

24. The system of claim 23 , wherein the client proxy decompresses the compressed response to the client request using the compression dictionary associated with the client proxy.

25. The system of claim 24 , wherein the client proxy sends to the client the decompressed response to the client request.

Assignments (22)
FIRST LIEN IP SUPPLEMENT Recorded Jun 30, 2025
From: SONICWALL US HOLDINGS INC.
To: UBS AG, STAMFORD BRANCH, AS COLLATERAL AGENT
Reel/Frame 071777/0641 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2022
From: QUEST SOFTWARE INC.
To: SONICWALL US HOLDINGS INC.
Reel/Frame 059912/0097 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
CHANGE OF NAME Recorded Jun 19, 2018
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 046393/0009 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 037160 FRAME 0239 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0115 →
RELEASE OF REEL 037160 FRAME 0142 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0812 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 037160 FRAME 0171 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040017/0253 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - ABL Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037160/0171 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - TERM LOAN Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037160/0239 →
SUPPLEMENTAL PATENT SECURITY AGREEMENT - NOTES Recorded Nov 25, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; BOOMI, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 037160/0142 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2015
From: LIDDICOTT, SAMUEL
To: DELL SOFTWARE INC.
Reel/Frame 036314/0376 →