IP Library Granted Patent US 10,523,741
Granted Patent B2
US 10,523,741 · App. 15/249,114 · Granted Dec 31, 2019

System and method for avoiding proxy connection latency

Inventor: Benjamin Goodwyn (Cypress, TX)
Assignee: SOFTNAS, LLC
H04L67/10H04L41/083H04L67/14H04L67/141H04L67/28
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,523,741
App. No.
15/249,114
Granted
Dec 31, 2019
Kind
B2
Abstract

Proxy server can have an existing connection to a remote server and does not need to wait for initial connection acknowledgement before notifying the client. When the client requests to use a remote service, the proxy server will acknowledge the request immediately to the client so that the initial request and associated data to be sent to the remote server is ready to be transmitted. The proxy server can assign a sub-channel identifier not currently in use and transmit a combination of instructions in a single data packet that indicates what service should be connected to on the remote proxy server and the initial data to transmit to the remote server. In this manner the round trip is avoided in establishing the initial connection to the remote server vastly reducing the amount of time before the client receives a response from the remote server.

Claims (40)

1. A method for avoiding proxy connection latency, the method comprising:

receiving, at a proxy server from a local client running a local service, a client connection request to connect with a remote service of a remote server;

transmitting, to the remote server, the client connection request;

transmitting, from the proxy server to the local client, an acknowledgment that the client connection request transmitted to the remote server was successful, wherein the acknowledgement is transmitted before the proxy server has received an indication from the remote server that the client connection request was successful, based on a determination that a pre-established tunnel exists between the proxy server and the remote server, such that an initial connection between the local service of the local client and the remote service of the remote server is established without performing a round trip between the local client and the remote server;

receiving, from the local client in response to the proxy server acknowledgement that the client connection request was successfully transmitted, local data to be transmitted to the remote server;

assigning, by the proxy server, an unused sub-channel over the pre-established tunnel between the proxy server and remote server, wherein the unused sub-channel is assigned to a connection requested by the local service of the client connection request; and

transmitting to the remote server an indication of the remote service to connect to the local service and transmitting the local data to the remote service of the remote server.

2. The method of claim 1 , wherein the acknowledgement is transmitted before the proxy server has received the acknowledgment when there is was a previous request from the proxy server to the remote service that was successful.

3. The method of claim 1 , wherein the acknowledgement is transmitted before the proxy server has received the acknowledgment when there is a currently active request to the proxy server and remote server.

4. The method of claim 1 , wherein the acknowledgement is transmitted before the proxy server has received the acknowledgment based on a predefined amount of time since a last successful access to the remote service.

5. The method of claim 1 , further comprising:

receiving, from the remote server, services available for connection.

6. The method of claim 5 , wherein the services available enable automated discovery of a network topology and dynamically remap local services to other remote services.

7. At least one non-transitory medium having stored therein instructions, which when executed by a processor, cause the processor to:

receive from a local client running a local service a client connection request to connect with a remote service of a remote server;

transmit, to the remote server, the client connection request;

transmit, to the local client, an acknowledgment that the client connection request transmitted to the remote server was successful, wherein the acknowledgement is transmitted before the proxy server has received an indication from the remote server that the client connection request was successful, based on a determination that a pre-established tunnel exists between the proxy server and the remote server, such that an initial connection between the local service of the local client and the remote service of the remote server is established without performing a round trip between the local client and the remote server;

receive, from the local client, local data to be transmitted to the remote server;

assign an unused sub-channel over the pre-established tunnel between the proxy server and remote server to the client connection request; and

transmit to the remote server, in a single data packet, an indication of the remote service to connect to the local service and the local data to the remote service of the remote server.

8. The at least one non-transitory medium of claim 7 , wherein the acknowledgement is transmitted before the proxy server has received the acknowledgment when there is was a previous request from the proxy server to the remote service that was successful.

9. The at least one non-transitory medium of claim 7 , wherein the acknowledgement is transmitted before the proxy server has received the acknowledgment when there is a currently active request to the proxy server and remote server.

10. The at least one non-transitory medium of claim 7 , wherein the acknowledgement is transmitted before the proxy server has received the acknowledgment based on a predefined amount of time since a last successful access to the remote service.

11. The at least one non-transitory medium of claim 7 , having further instructions which when executed by the processor cause the processor to:

receive, from remote server, services available for connection.

12. The at least one non-transitory medium of claim 11 , wherein the services available enable automated discovery of a network topology and dynamically remap local services to other remote services.

13. A proxy server comprising:

at least one processor; and

at least one memory storing instructions, which when executed by the processor, cause the processor to:

receive from a local client running a local service a client connection request to connect with a remote service of a remote server;

transmit, to the remote server, the client connection request;

transmit, to the local client, an acknowledgment that the client connection request transmitted to the remote server was successful, wherein the acknowledgement is transmitted before the proxy server has received an indication from the remote server that the client connection request was successful, based on a determination that a pre-established tunnel exists between the proxy server and the remote server, such that an initial connection is established without performing a round trip to the remote server;

receive, from the local client, local data to transmit to the remote server;

assign an unused sub-channel over the pre-established tunnel between the proxy server and remote server to the client connection request; and

transmit to the remote server, in a single data packet, an indication of the remote service to connect to the local service and the local data to the remote service of the remote server.

14. The proxy server of claim 13 , wherein the acknowledgement is transmitted before the proxy server has received the acknowledgment when there is was a previous request from the proxy server to the remote service that was successful.

15. The proxy server of claim 13 , wherein the acknowledgement is transmitted before the proxy server has received the acknowledgment when there is a currently active request to the proxy server and remote server.

16. The proxy server of claim 13 , wherein the acknowledgement is transmitted before the proxy server has received the acknowledgment based on a predefined amount of time since a last successful access to the remote service.

17. The proxy server of claim 13 , having further instructions which when executed by the processor cause the processor to:

receive, from remote server, services available for connection.

Assignments (4)
MERGER AND CHANGE OF NAME Recorded Aug 27, 2021
From: SOFTNAS, LLC; SOFTNAS OPERATING, INC.
To: SOFTNAS, INC.
Reel/Frame 057305/0706 →
CHANGE OF NAME Recorded Aug 27, 2021
From: SOFTNAS, INC.
To: BUURST, INC.
Reel/Frame 057337/0741 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2019
From: GOODWYN, BENJAMIN
To: SOFTNAS, LLC.
Reel/Frame 051025/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2017
From: SOFTNAS, LLC
To: SOFTNAS OPERATING INC.
Reel/Frame 042727/0394 →
Continuity (2)
Provisional Application 62211424 · Aug 28, 2015
Related Publication 20170063972A1 · Mar 2, 2017