IP Library Granted Patent US 10,536,382
Granted Patent B2
US 10,536,382 · App. 15/969,613 · Granted Jan 14, 2020

Data flow control for dual ended transmission control protocol performance enhancement 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,536,382
App. No.
15/969,613
Granted
Jan 14, 2020
Kind
B2
Abstract

Systems, methods, and servers for controlling data flow across a computer network having a first performance enhancing proxy device (PEP 1 ) between a client-facing segment of the network and a second PEP device (PEP 2 ) on a server-facing segment of the network. PEP 2 has a receiver for receiving flow control information from across a control channel between PEP 1 and PEP 2 , for each TCP connection on the client-facing segment. The information includes round-trip packet latency (Li) on the client-facing segment and transmit buffer congestion information of PEP 1 . PEP 2 has a determiner for determining if a TCP connection has a congested packet flow; and a congestion reliever for relieving such congestion by synchronizing a receive buffer of the PEP 2 to be the same size as a transmit buffer congestion window of the PEP 1 ; and delaying acknowledgments (ACKs) at PEP 2 by a time Tack based on a preset threshold level Tlim or Li.

Claims (68)

1. A system for controlling data flow across a computer network comprising a first performance enhancing proxy device (PEP 1 ) on a client-facing segment of the network and a second performance enhancing proxy device (PEP 2 ) on a server-facing segment of the network, the system comprising:

the PEP 2 , the PEP 2 including:

a receiver for receiving flow control information from across a control channel between the PEP 1 and the PEP 2 , the flow control information including round-trip packet latency measurement (Li) on the client-facing segment and transmit buffer congestion window information of the PEP 1 , wherein the flow control information is for each TCP connection on the client-facing segment;

a determiner for determining whether each TCP connection of the client-facing segment has a congested TCP packet flow; and

a congestion reliever for relieving the congestion of each TCP connection of the client-facing segment having a congested TCP packet flow, the congestion reliever comprising:

a synchronizer for synchronizing a receive buffer receive window size of the PEP 2 to be the same as a transmit buffer congestion window size of the PEP 1 ; and

a delayer for:

determining whether Li is less than the preset threshold level Tlim, or whether Li is greater than or equal to the preset threshold level Tlim; and

delaying acknowledgments (ACKs) received by the PEP 2 from the PEP 1 by a time Tack, wherein Tack a) is based on Li when Li is less than the preset threshold level Tlim, or b) is based on a preset threshold level (Tlim) when Li is greater than or equal to the preset threshold level Tlim.

2. The system of claim 1 , wherein the delayer delaying the ACKs comprises:

setting Tack to ½ Li when Li is less than the preset threshold level Tlim; and

setting Tack to ½ Tlim when Li is greater than or equal to the preset threshold level Tlim.

3. The system of claim 1 , wherein the synchronizer synchronizing comprises:

setting the receive buffer receive window size of the PEP 2 to be whichever is smaller of the transmit buffer congestion window size of the PEP 1 and the receive buffer receive window size of the PEP 2 .

4. The system of claim 1 , wherein the determiner determining comprises determining based at least on the transmit buffer congestion window information; and

wherein the transmit buffer congestion window information comprises at least one of an explicit congestion notification (ECN) received by the receiver for each TCP connection on the client-facing segment or the transmit buffer congestion window size.

5. The system of claim 1 , the PEP 2 further comprising:

a measurer for measuring a round-trip packet latency Lr on the server-facing segment of the computer network; and

a throughput setter for setting the throughput of the server facing segment of the PEP 2 to be a function of the receive buffer receive window size of the PEP 2 and whichever is smaller of the Li and Lr.

6. The system of claim 1 , the PEP 1 comprising:

an identifier for identifying each TCP connection;

a measurer for measuring the round-trip packet latency measurement Li;

determiner for determining the transmit buffer congestion window information; and

a transmitter for transmitting the Li and the transmit buffer congestion window information for the TCP connection across the control channel to the PEP 2 .

7. A non-transitory machine-readable storage medium storing a program having instructions which when executed by a processor will cause the processor to:

receive flow control information from across a control channel between the PEP 1 and the PEP 2 , the flow control information including round-trip packet latency measurement (Li) on the client-facing segment and transmit buffer congestion window information of the PEP 1 , wherein the flow control information is for each TCP connection on the client-facing segment;

determine whether each TCP connection of the client-facing segment has a congested TCP packet flow; and

for each TCP connection of the client-facing segment having a congested TCP packet flow:

synchronize a receive buffer receive window size of the PEP 2 to be the same as a transmit buffer congestion window size of the PEP 1 ;

determine whether Li is less than the preset threshold level Tlim, or whether Li is greater than or equal to the preset threshold level Tlim; and

delay acknowledgments (ACKs) received by the PEP 2 from the PEP 1 by a time Tack, wherein Tack a) is based on Li when Li is less than the preset threshold level Tlim, or b) is based on a preset threshold level (Tlim) when Li is greater than or equal to the preset threshold level Tlim.

8. The non-transitory machine-readable storage medium of claim 7 , wherein delaying ACKs comprises:

setting Tack to ½ Li when Li is less than a preset threshold level Tlim; and

setting Tack to ½ Tlim when Li is greater than or equal to the preset threshold level Tlim.

9. The non-transitory machine-readable storage medium of claim 7 , wherein synchronizing comprises:

setting the receive buffer receive window size of the PEP 2 to be whichever is smaller of the transmit buffer congestion window size of the PEP 1 and the receive buffer receive window size of the PEP 2 .

10. The non-transitory machine-readable storage medium of claim 7 , wherein determining comprises determining based at least on the transmit buffer congestion window information; and

wherein the transmit buffer congestion window information comprises at least one of an explicit congestion notification (ECN) received by the receiver for each TCP connection on the client-facing segment or the transmit buffer congestion window size.

11. The non-transitory machine-readable storage medium of claim 7 , wherein the program having instructions which when executed by a processor will further cause the processor to:

determine a round-trip packet latency Lr on the server-facing segment of the computer network; and

set the throughput of the server facing segment of the PEP 2 to be a function of the receive buffer receive window size of the PEP 2 and whichever is smaller of the Li and Lr.

12. The non-transitory machine-readable storage medium of claim 7 , wherein the program having instructions which when executed by a processor will further cause the processor to:

identify each TCP connection;

determine the round-trip packet latency measurement Li;

determine the transmit buffer congestion window information; and

transmit the Li and the transmit buffer congestion window information for the TCP connection across the control channel to the PEP 2 .

13. A data flow control process across a computer network comprising a first performance enhancing proxy device (PEP 1 ) on a client-facing segment of the network and a second performance enhancing proxy device (PEP 2 ) on a server-facing segment of the network, the flow control process comprising:

receiving flow control information from across a control channel between the PEP 1 and the PEP 2 , the flow control information including round-trip packet latency measurement (Li) on the client-facing segment and transmit buffer congestion window information of the PEP 1 , wherein the flow control information is for each TCP connection on the client-facing segment;

determining whether each TCP connection of the client-facing segment has a congested TCP packet flow; and

for each TCP connection of the client-facing segment having a congested TCP packet flow:

synchronizing a receive buffer receive window size of the PEP 2 to be the same as a transmit buffer congestion window size of the PEP 1 ;

determining whether Li is less than the preset threshold level Tlim, or whether Li is greater than or equal to the preset threshold level Tlim; and

delaying acknowledgments (ACKs) received by the PEP 2 from the PEP 1 by a time Tack, wherein Tack a) is based on Li when Li is less than the preset threshold level Tlim, or b) is based on a preset threshold level (Tlim) when Li is greater than or equal to the preset threshold level Tlim.

14. The flow control process of claim 13 , wherein delaying ACKs comprises:

setting Tack to ½ Li when Li is less than a preset threshold level Tlim; and

setting Tack to ½ Tlim when Li is greater than or equal to the preset threshold level Tlim.

15. The flow control process of claim 13 , wherein synchronizing comprises:

setting the receive buffer receive window size of the PEP 2 to be whichever is smaller of the transmit buffer congestion window size of the PEP 1 and the receive buffer receive window size of the PEP 2 .

16. The flow control process of claim 13 , wherein determining whether each TCP connection of the client-facing segment has a congested TCP packet flow is based at least on the transmit buffer congestion window information; and

wherein the transmit buffer congestion window information comprises at least one of an explicit congestion notification (ECN) received by the receiver for each TCP connection on the client-facing segment or the transmit buffer congestion window size.

17. The flow control process of claim 13 , further comprising:

determining a round-trip packet latency Lr on the server-facing segment of the computer network; and

setting the throughput of the server facing segment of the PEP 2 to be a function of the receive buffer receive window size of the PEP 2 and whichever is smaller of the Li and Lr.

18. The flow control process of claim 13 , further comprising:

identifying each TCP connection;

determining the round-trip packet latency measurement Li;

determining the transmit buffer congestion window information; and

transmitting the Li and the transmit buffer congestion window information for the TCP connection across the control channel to the PEP 2 .

Assignments (13)
SECURITY INTEREST Recorded Oct 30, 2025
From: ANUVU HOLDINGS LLC
To: COMERICA BANK
Reel/Frame 073405/0129 →
RELEASE OF SECURITY INTERESTS IN INTELLECTUAL PROPERTY COLLATERAL (RECORDED AT REEL 057827/FRAME 0001; REEL 057827/FRAME 0153; AND REEL 058736/FRAME 0598) Recorded Oct 29, 2025
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: ANUVU IP HOLDINGS LLC
Reel/Frame 073423/0961 →
RELEASE OF SECURITY INTERESTS IN INTELLECTUAL PROPERTY COLLATERAL (RECORDED AT REEL 067776/FRAME 0230) Recorded Oct 29, 2025
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: ANUVU HOLDINGS 2 LLC; ANUVU HOLDINGS 1 LLC; ANUVU IP HOLDINGS LLC; ANUVU LICENSING HOLDINGS LLC; ANUVU OPERATIONS LLC
Reel/Frame 073420/0710 →
SECURITY INTEREST Recorded Jun 18, 2024
From: ANUVU HOLDINGS 2 LLC; ANUVU HOLDINGS 1 LLC; ANUVU IP HOLDINGS LLC; ANUVU LICENSING HOLDINGS LLC; ANUVU OPERATIONS LLC
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 067776/0230 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2022
From: ANUVU OPERATIONS LLC
To: ANUVU IP HOLDINGS LLC
Reel/Frame 058736/0598 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2022
From: GLOBAL EAGLE ENTERTAINMENT INC.
To: ANUVU OPERATIONS LLC
Reel/Frame 058691/0503 →
RELEASE OF SECURITY INTEREST Recorded Oct 19, 2021
From: CITIBANK, N.A.
To: GLOBAL EAGLE ENTERTAINMENT INC.; MTN SATELLITE COMMUNICATIONS; MARITIME TELECOMMUNICATIONS NETWORK, INC.
Reel/Frame 057859/0605 →
PATENT SECURITY AGREEMENT (PRIORITY) Recorded Oct 15, 2021
From: GLOBAL EAGLE OPCO LLC
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 057827/0153 →
PATENT SECURITY AGREEMENT (TAKEBACK) Recorded Oct 15, 2021
From: GLOBAL EAGLE OPCO LLC
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 057827/0001 →
PATENT SECURITY AGREEMENT Recorded Jun 4, 2020
From: GLOBAL EAGLE ENTERTAINMENT INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052840/0497 →
SECURITY INTEREST Recorded Jul 22, 2019
From: GLOBAL EAGLE ENTERTAINMENT INC.
To: CITIBANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 049812/0565 →
FIRST AMENDMENT TO PATENT SECURITY AGREEMENT Recorded Jul 19, 2019
From: GLOBAL EAGLE ENTERTAINMENT INC.
To: CORTLAND CAPITAL MARKET SERVICES LLC
Reel/Frame 049805/0904 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2018
From: RETNAMONY, SHADRACH BENNY; ECHEVARRIA, LUIS CARRION
To: GLOBAL EAGLE ENTERTAINMENT INC.
Reel/Frame 045717/0943 →