Controlling congestion controlled flows
First Claim
Patent Images
1. A machine-implemented method, comprising:
- monitoring a flow in a flow set;
determining a first bandwidth used by the flow;
identifying an access control (“
AC”
) policy for the flow;
determining a total bandwidth for the flow set that traverses a router;
counting a number of flows in the flow set;
determining a bandwidth limit for the flow, wherein the bandwidth limit is a share of the total bandwidth that is calculated based on the number of flows and the AC policy;
comparing the first bandwidth with the bandwidth limit;
if the first bandwidth is greater than the bandwidth limit,dropping every (N−
1)th packet of the flow while transmitting other packets of the flow, if a number of packets of the flow in a penalty box is not greater than a predetermined threshold; and
dropping every (N−
2)th packet in the flow, wherein N is an integer that is greater than 2, if the number of the packets in the penalty box is greater than the predetermined threshold to prevent a full stop timeout for the flow.
1 Assignment
0 Petitions
Accused Products
Abstract
A flow in a flow set having an access control (“AC”) policy assigned is monitored. A bandwidth used by the flow is determined. One or more packets associated with the flow are selectively dropped based on at least one of the used bandwidth and the AC policy.
95 Citations
33 Claims
-
1. A machine-implemented method, comprising:
-
monitoring a flow in a flow set; determining a first bandwidth used by the flow; identifying an access control (“
AC”
) policy for the flow;determining a total bandwidth for the flow set that traverses a router; counting a number of flows in the flow set; determining a bandwidth limit for the flow, wherein the bandwidth limit is a share of the total bandwidth that is calculated based on the number of flows and the AC policy; comparing the first bandwidth with the bandwidth limit; if the first bandwidth is greater than the bandwidth limit, dropping every (N−
1)th packet of the flow while transmitting other packets of the flow, if a number of packets of the flow in a penalty box is not greater than a predetermined threshold; anddropping every (N−
2)th packet in the flow, wherein N is an integer that is greater than 2, if the number of the packets in the penalty box is greater than the predetermined threshold to prevent a full stop timeout for the flow. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A machine-implemented method to control congestion controlled flows, comprising:
-
determining a total bandwidth for the flow set that traverses a router; counting a number of flows in the flow set; identifying a marked flow in the flow set, wherein the flow is marked as being in a penalty box, if a bandwidth used by the flow is greater than a bandwidth limit for the flow, wherein the bandwidth limit is a share of the total bandwidth that is calculated at least based on the number of flows; counting a number of packets of the marked flow in the penalty box; comparing the number of the packets with one or more predetermined thresholds; dropping every (N−
1)th packet of the flow, if the number of the packets is not greater than a first threshold; anddropping every (N−
2)th packet in the flow, wherein N is an integer that is greater than 2, if the number of the packets is greater than the first threshold. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A non-transitory machine readable storage medium that has stored instructions which when executed cause a data processing system to perform operations comprising:
-
monitoring a flow in a flow set; determining a first bandwidth used by the flow; identifying an access control (“
AC”
) policy for the flow;determining a total bandwidth for the flow set that traverses a router; counting a number of flows in the flow set; determining a bandwidth limit for the flow, wherein the bandwidth limit is a share of the total bandwidth that is calculated based on the number of flows and the AC policy; comparing the first bandwidth with the bandwidth limit; if the first bandwidth is greater than the bandwidth limit, dropping every (N−
1)th packet of the flow while transmitting other packets of the flow, if a number of packets of the flow in a penalty box is not greater than a predetermined threshold; anddropping every (N−
2)th packet in the flow, wherein N is an integer that is greater than 2, if the number of the packets in the penalty box is greater than the predetermined threshold to prevent a full stop timeout for the flow. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A non-transitory machine readable storage medium that has stored instructions which when executed cause a data processing system to perform operations to control congestion controlled flows comprising:
-
determining a total bandwidth for the flow set that traverses a router; counting a number of flows in the flow set; identifying a marked flow in the flow set, wherein the flow is marked as being in a penalty box, if a bandwidth used by the flow is greater than a bandwidth limit for the flow, wherein the bandwidth limit is a share of the total bandwidth that is calculated at least based on the number of flows; counting a number of packets of the marked flow in the penalty box; comparing the number of the packets with one or more predetermined thresholds; and dropping every (N−
1)th packet of the flow, if the number of the packets is not greater than a first threshold; anddropping every (N−
2)th packet in the flow, wherein N is an integer that is greater than 2, if the number of the packets is greater than the first threshold. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. An apparatus comprising:
-
a memory; and a router comprising a processing unit coupled to the memory, wherein the processing unit is configured to monitor a flow in a flow set;
to identify an access control (“
AC”
) policy for the flow;
to determine a total bandwidth for the flow set that traverses a router;to count a number of flows in the flow set, to determine a bandwidth limit for the flow, wherein the bandwidth limit is a share of the total bandwidth that is calculated based on the number of flows and the AC policy;
to determine a first bandwidth used by the flow;
wherein the processing unit is configured to compare the first bandwidth with the bandwidth limit;if the first bandwidth is greater than the bandwidth limit, to drop every (N−
1)th packet of the flow while transmitting other packets of the flow, if a number of packets of the flow in a penalty box is not greater than a predetermined threshold; anddropping every (N−
2)th packet in the flow, wherein N is an integer that is greater than 2, if the number of the packets in the penalty box is greater than the predetermined threshold to prevent a full stop timeout for the flow. - View Dependent Claims (24, 25, 26, 27)
-
-
28. An apparatus to control congestion controlled flows, comprising:
-
a memory; and a processing unit coupled to the memory, wherein the processing unit is configured to determine a total bandwidth for the flow set that traverses a router;
to count a number of flows in the flow set;
to identify a marked flow in the flow set, wherein the flow is marked as being in a penalty box, if a bandwidth used by the flow is greater than a bandwidth limit for the flow;
to count a number of packets of the marked flow in the penalty box, wherein the bandwidth limit is a share of the total bandwidth that is calculated at least based on the number of flows; and
to drop every (N−
1)th packet of the flow, wherein the processing unit is configured to compare the number of the packets with one or more predetermined thresholds;if the number of the packets if the number of the packets is not greater than a first threshold; and
to drop every (N−
2)th packet in the flow, wherein N is an integer that is greater than 2, if the number of the packets is greater than the first threshold. - View Dependent Claims (29, 30, 31, 32, 33)
-
Specification