IP Library Granted Patent US 10,778,591
Granted Patent B2
US 10,778,591 · App. 15/970,007 · Granted Sep 15, 2020

System for bandwidth optimization with traffic priority determination

Inventors: Chaitra Maraliga Ramaiah (Bengaluru, IN); Praveen Raja Dhanabalan (Chennai, IN)
Assignee: Citrix Systems, Inc.
H04L47/27H04L47/11H04L47/12H04L47/193H04L47/2433H04L47/56H04L69/16
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,778,591
App. No.
15/970,007
Filed
May 3, 2018
Granted
Sep 15, 2020
Kind
B2
Art Unit
2473
USPC
370/235
Abstract

A system for optimizing network traffic is described. The system includes a transport communication protocol (TCP) controller configured to acquire data regarding a flow of a plurality of data packets over a link and to determine TCP characteristics for the flow, a traffic prioritization module configured to assign a flow priority to the flow, and a traffic priority controller configured detect congestion on the link and determine a congestion window size for the flow based on the flow priority and the TCP characteristics.

Claims (24)

1. A method comprising:

(a) identifying, by a device intermediary between a plurality of clients and one or more servers, a plurality of data flows over a link;

(b) determining, by the device, a product of a bandwidth of the link and an average round trip time for a plurality of packets being communicated via the plurality of data flows over the link;

(c) determining, by the device, a sum of congestion windows for each of the plurality of data flows;

(d) detecting, by the device, that congestion is to occur on at least one data flow of the plurality of data flows based at least on the sum of congestion windows being within a predetermined threshold of the product; and

(e) reducing, by the device responsive to detecting that congestion is to occur, a congestion window size of the at least one data flow of the plurality of data flows.

2. The method of claim 1 , wherein (b) further comprises determining, by the device, the average round trip for the plurality of packets during a predetermined time interval.

3. The method of claim 1 , wherein (b) further comprises determining, by the device, the product using a look-up table based at least on inputs of the bandwidth and the average round trip time.

4. The method of claim 1 , wherein (c) further comprises determining, by the device, the sum of the congestion windows that are one of active or current for each of the plurality of data flows.

5. The method of claim 1 , wherein (d) further comprises determining, by the device, that the sum of congestion windows has become greater than the product.

6. The method of claim 1 , wherein (e) further comprises reducing the congestion window size of the at least one data flow selected as having a priority lower than other priorities of the plurality of data flows.

7. The method of claim 1 , wherein (e) further comprises reducing the congestion window size of the at least one data flow by one of a predetermined number or percentage.

8. A system comprising:

a device comprising one or more processors, coupled to memory, and intermediary between a plurality of clients and one or more servers, the device configured to:

identify a plurality of data flows over a link;

determine a product of a bandwidth of the link and an average round trip time for one or more packets being communicated via the plurality of data flows over the link;

determine a sum of congestion windows for each of the plurality of data flows;

detect that congestion is to occur on at least one data flow of the plurality of data flows based at least on the sum of congestion windows being within a predetermined threshold of the product; and

reduce, responsive to detecting that congestion is to occur, a congestion window size of the at least one data flow of the plurality of data flows.

9. The system of claim 8 , wherein the device is further configured to determine a queueing delay for packets communicated over the link based at least on a difference between a current round trip time for the at least one data flow of the plurality of data flows and a minimum round trip time.

10. The system of claim 9 , wherein the device is further configured to determine a number of packets queued for each of the plurality of data flows based at least on a result of a product of the bandwidth of the link and the queue delay and the product being divided by a maximum segment size.

11. The system of claim 10 , wherein the device is further configured to detect that the congestion is to occur on the plurality of data flows based at least on one of the queueing delay or the number of packets queued being greater than a predetermined threshold.

12. The system of claim 8 , wherein the device is further configured to reduce the congestion window size of the at least one data flow selected as having a priority lower than other priorities of the plurality of data flows.

13. The system of claim 8 , wherein the device is further configured to reduce the congestion window size of the at least one data flow by one of a predetermined number or percentage.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2018
From: RAMAIAH, CHAITRA MARALIGA; DHANABALAN, PRAVEEN RAJA
To: CITRIX SYSTEMS, INC.
Reel/Frame 045709/0401 →
Continuity (2)
Continuation 14632848 · Feb 26, 2015
Related Publication 20180254990A1 · Sep 6, 2018