System for bandwidth optimization with traffic priority determination
First Claim
Patent Images
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, andrelease the plurality of queued data packets based on instructions received from the QoS packet scheduler and the congestion window.
8 Assignments
0 Petitions
Accused Products
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.
-
Citations
18 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
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. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
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. - View Dependent Claims (16, 17, 18)
-
Specification