IP Library Granted Patent US 9,531,846
Granted Patent B2
US 9,531,846 · App. 13/747,545 · Granted Dec 27, 2016

Reducing buffer usage for TCP proxy session based on delayed acknowledgement

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 9,531,846
App. No.
13/747,545
Granted
Dec 27, 2016
Kind
B2
Abstract

Reducing buffer usage for a TCP proxy session between a client and a server by a service gateway includes: determining a first round trip time (RTT) for a server side TCP session and determining a second RTT for a client side TCP session; comparing the first RTT with the second RTT; determining whether the second RTT exceeds the first RTT beyond a threshold; if so, then calculating a desired RTT based on the second RTT; and setting a timer according to the calculated desired RTT, where a TCP acknowledgement for the server side TCP session is delayed until the timer expires. The desired RTT may be calculated as a percentage of the second RTT or as the second RTT minus a predetermined value. The service gateway waits until the timer has expired before sending a TCP acknowledgement data packet to the server.

Claims (52)

1. A method for reducing memory usage of a service gateway buffer for a Transmission Control Protocol (TCP) proxy session between a client and a server by adjusting server side session transmission time to reduce buffer usage, comprising:

periodically monitoring performance of a TCP session using round trip time (RTT) for the TCP session including a server side TCP session and a client side TCP session;

determining a first round trip time (RTT) for the server side TCP session of the TCP proxy session between a service gateway and the server;

determining a second RTT for the client side TCP session of the TCP proxy session between the service gateway and the client that is based at least on one or more prior client side TCP sessions with the client, the service gateway comprising a processor, a memory module, and a server side receive buffer residing in the memory module;

comparing the first RTT with the second RTT by the service gateway;

determining that the second RTT exceeds the first RTT;

in response to determining that the second RTT exceeds the first RTT, calculating by the service gateway a desired RTT based on the second RTT, wherein the desired RTT is calculated as a percentage of the second RTT or as the second RTT minus a predetermined value; and

setting a timer by the service gateway according to the calculated desired RTT and scheduling a TCP acknowledgement data packet to be sent at a later time using the timer, wherein the TCP acknowledgement for the server side TCP session is delayed until the service gateway determines that the timer expires.

2. The method of claim 1 , wherein the determining whether the second RTT exceeds the first RTT and the calculating a desired RTT based on the second RTT comprise:

determining whether the second RTT exceeds the first RTT beyond a predetermined threshold; and

in response to determining that the second RTT exceeds the first RTT beyond the predetermined threshold, calculating by the service gateway the desired RTT based on the second RTT.

3. The method of claim 1 , wherein the setting a timer by the service gateway according to the calculated desired RTT comprises:

receiving by the service gateway a data packet from the server over the server side TCP session;

determining by the service gateway a need to send the TCP acknowledgement to the server;

setting a timer to the desired RTT by the service gateway; and

in response to an expiration of the timer, sending the TCP acknowledgement to the server by the service gateway.

4. The method of claim 1 , wherein the second RTT is determined at periodic intervals.

5. The method of claim 1 , wherein the second RTT is estimated based on one or more prior server side TCP sessions.

6. The method of claim 1 , wherein the calculating by the service gateway a desired RTT based on the second RTT is further based on a memory capacity of the server side receive buffer.

7. A non-transitory computer readable medium with computer readable program code embodied therewith for reducing buffer usage for a Transmission Control Protocol (TCP) proxy session between a client and a server by adjusting server side session transmission time to reduce buffer usage, the computer readable program code configured to:

periodically monitor performance of a TCP session using round trip time (RTT) for the TCP session including a server side TCP session and a client side TCP session;

determine a first round trip time (RTT) for the server side TCP session of the TCP proxy session between a service gateway and the server;

determine a second RTT for the client side TCP session of the TCP proxy session between the service gateway and the client that is based at least on one or more prior client side TCP sessions with the client, the service gateway comprising a processor, a memory module, and a server side receive buffer residing in the memory module;

compare the first RTT with the second RTT by the service gateway;

determine that the second RTT exceeds the first RTT;

in response to determining that the second RTT exceeds the first RTT, calculate a desired RTT based on the second RTT, wherein the desired RTT is calculated as a percentage of the second RTT or as the second RTT minus a predetermined value; and

set a timer by the service gateway according to the calculated desired RTT and schedule a TCP acknowledgement data packet to be sent at a later time, using the timer, wherein the TCP acknowledgement for the server side TCP session is delayed until the service gateway determines that the timer expires.

8. The non-transitory computer readable medium of claim 7 , wherein the computer readable program code configured to determine whether the second RTT exceeds the first RTT and to calculate a desired RTT based on the second RTT are further configured to:

determine whether the second RTT exceeds the first RTT beyond a predetermined threshold; and

in response to determining that the second RTT exceeds the first RTT beyond the predetermined threshold, calculating by the service gateway the desired RTT based on the second RTT.

9. The non-transitory computer readable medium of claim 7 , where computer readable program code configured to set the timer according to the calculated desired RTT is further configured to:

receive a data packet from the server over the server side TCP session;

determine a need to send the TCP acknowledgement to the server;

set a timer to the desired RTT; and

in response to an expiration of the timer, send the TCP acknowledgement to the server.

10. A system for reducing buffer usage for a Transmission Control Protocol (TCP) proxy session between a client and a server by adjusting server side session transmission time to reduce the buffer usage, the system comprising:

a service gateway comprising a processor, a memory module, and a server side receive buffer residing in the memory module, wherein a server side TCP session of the TCP proxy session is established between the service gateway and the server, and a client side TCP session of the TCP proxy session is established between the service gateway and the client, wherein the service gateway:

periodically monitors performance of the TCP proxy session using a round trip time (RTT) including RTT for the server side TCP session and the client side TCP session;

determines a first round trip time (RTT) for the server side TCP session of the TCP proxy session between the service gateway and the server;

determines a second RTT for the client side TCP session of the TCP proxy session between the service gateway and the client wherein the second RTT is based at least on one or more prior client side TCP sessions with the client;

compares the first RTT with the second RTT;

determines that the second RTT exceeds the first RTT;

in response to determining that the second RTT exceeds the first RTT, calculates a desired RTT based on the second RTT, wherein the desired RTT is a percentage of the second RTT or the second RTT minus a predetermined value; and

sets a timer according to the calculated desired RTT and schedules a TCP acknowledgement data packet to be sent at a later time, using the timer, wherein the TCP acknowledgement for the server side TCP session is delayed until the timer expires.

11. The system of claim 10 , wherein the determines whether the second RTT exceeds the first RTT and the calculates a desired RTT based on the second RTT comprise:

determines whether the second RTT exceeds the first RTT beyond a predetermined threshold; and

in response to determining that the second RTT exceeds the first RTT beyond the predetermined threshold, calculates the desired RTT based on the second RTT.

12. The system of claim 10 , wherein the sets a timer according to the calculated desired RTT further comprises:

receives a data packet from the server over the server side TCP session;

determines a need to send the TCP acknowledgement to the server;

sets a timer to the desired RTT; and

in response to an expiration of the timer, sends the TCP acknowledgement to the server.

Assignments (2)
SECURITY INTEREST Recorded Sep 30, 2013
From: A10 NETWORKS, INC.
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 031485/0284 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2013
From: HAN, LIANG; CAO, ZHIRUO
To: A10 NETWORKS, INC.
Reel/Frame 029675/0347 →