System for bandwidth optimization with traffic priority determination

US9985898B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9985898-B2
Application numberUS-201514632848-A
CountryUS
Kind codeB2
Filing dateFeb 26, 2015
Priority dateFeb 26, 2015
Publication dateMay 29, 2018
Grant dateMay 29, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A first appliance for optimizing network traffic, comprising: a quality of service (QoS) packet scheduler, executable on one or more processors, coupled to memory, and configured to schedule transmission of a plurality of active data-packet flows over a link, wherein the link is a proxied link between the first appliance and a second appliance; a traffic prioritization module executable on the one or more processors and configured to assign a flow priority to a flow of the plurality of active data-packet flows over the link; a traffic priority controller executable on the one or more processors and configured to detect congestion is to occur on the link and responsive to the detection that congestion is to occur, determine a congestion window size for the flow based on at least a number of the plurality of active-data packet flows with the flow priority greater than a predetermined priority and a total congestion window size of the plurality of active-data packet flows greater than a product of a bandwidth and a delay of the link; and a TCP controller executable on the one or more processors and configured to: acquire a plurality of data packets corresponding to the flow, queue the plurality of data packets, and release the plurality of queued data packets based on instructions received from the QoS packet scheduler and the congestion window. 2. The first appliance of claim 1 , wherein the flow priority includes a first priority flow having a higher priority and a second priority flow having a lower priority. 3. The first appliance of claim 2 , wherein a congestion window for the first priority flow is larger than a congestion window for the second priority flow. 4. The first appliance of claim 1 , wherein the traffic priority controller is further configured to determine a plurality of congestion windows for the plurality of active data-packet flows operating across the link. 5. The first appliance of claim 4 , wherein the traffic priority controller is further configured to: determine a total number of congested first priority flows from the plurality of active data-packet flows; determine a total number of congested second priority flows from the plurality of active data-packet flows; and modify the congestion window size for the flow based on the congested first priority flows and the congested second priority flows. 6. The first appliance of claim 1 , wherein the traffic priority controller is further configured to determine link characteristics comprising a link type and a bandwidth of the link. 7. The first appliance of claim 6 , wherein the traffic priority controller is further configured to: evaluate a bandwidth delay product for the plurality of data packets sent and received via the flow; evaluate a queuing delay for the flow; and determine the total congestion window size for the plurality of active data-packet flows. 8. A method for optimizing network traffic over a link between a first appliance and a second appliance, the method performed by the first appliance and comprising: acquiring, at a TCP controller of the first appliance, plurality of data packets corresponding to a flow of a plurality of active data-packet flows over the link, wherein the link is a proxied link between the first appliance and a second appliance; queueing the plurality of data packets; assigning a flow priority to the flow; detecting congestion is to occur on the link; determining, at a traffic priority controller of the first appliance responsive to detecting congestion is to occur, a congestion window size for the flow based on at least a number of the plurality of active-data packet flows with the flow priority greater than a predetermined priority and a total congestion window size of the plurality of active-data packet flows greater than a product of a bandwidth and a delay of the link; and releasing, at the TCP controller of the first appliance, the plurality of queued data packets based on the congestion window and instructions received from a quality of service (QoS) packet scheduler that schedules the transmission of the plurality of active data-packet flows over the link. 9. The method of claim 8 , wherein the flow priority includes a first priority flow having a higher priority and a second priority flow having a lower priority. 10. The method of claim 9 , wherein a congestion window for the first priority flow is larger than a congestion window for the second priority flow. 11. The method of claim 8 , further comprising determining a plurality of congestion windows for the plurality of active data-packet flows operating across the link. 12. The method of claim 11 , further comprising: determining a total number of congested first priority flows from the plurality of active data-packet flows; determining a total number of congested second priority flows from the plurality of active data-packet flows; and modifying the congestion window size for the flow based on the congested first priority flows and the congested second priority flows. 13. The method of claim 8 , further comprising determining link characteristics comprising a link type and a bandwidth of the link. 14. The method of claim 13 , further comprising: evaluating a bandwidth delay product for the plurality of data packets sent and received via the flow; evaluating a queuing delay for the flow; and determining the total congestion window size for the plurality of active data-packet flows. 15. A non-transitory computer readable storage medium that stores a set of instructions that are executable by at least one processor of a first appliance to cause the first appliance to perform a method for optimizing network traffic over a link between the first appliance and a second appliance, the method comprising: acquiring, at a TCP controller of the first appliance, a plurality of data packets corresponding to a flow of a plurality of active data-packet flows over the link, wherein the link is a proxied link between the first appliance and the second appliance; queueing the plurality of data packets; assigning a flow priority to the flow; detecting congestion is to occur on the link; determining, at a traffic priority controller of the first appliance responsive to detecting congestion is to occur, a congestion window size for the flow based on at least a number of the plurality of active-data packet flows with the flow priority greater than a predetermined priority and a total congestion window size of the plurality of active-data packet flows greater than a product of a bandwidth and a delay of the link; and releasing, at the TCP controller of the first appliance, the plurality of queued data packets based on the congestion window and instructions received from a quality of service (QoS) packet scheduler that schedules the transmission of the plurality of active data-packet flows over the link. 16. The non-transitory computer readable storage medium of claim 15 , wherein the flow priority includes a first priority flow having a higher priority and a second priority flow having a lower priority. 17. The non-transitory computer readable storage medium of claim 16 , wherein a congestion window for the first priority flow is larger than a congestion window for the second priority flow. 18. The non-transitory computer readable storage medium of claim 17 , wherein the set of instructions that are executable by the at least one processor of the first appliance to cause the first appliance to further perform: determining a total number of conges

Assignees

Inventors

Classifications

  • implementing delay-aware scheduling · CPC title

  • Allocation of priorities to traffic types · CPC title

  • at the transport layer, e.g. TCP related · CPC title

  • H04L47/27Primary

    Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets · CPC title

  • Identifying congestion · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9985898B2 cover?
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…
Who is the assignee on this patent?
Citrix Systems Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/27. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 29 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).