Managing traffic within a data communication network
First Claim
1. A method to manage traffic in a system of a computer network, comprising:
- configuring a processor in communication with a random number generator and a storage queue to set a transmit probability to a value between zero and one for receiving traffic from at least one flow of a plurality of flows ported into the processor by;
reading a present value of the transmit probability of the at least one flow;
determining at least one of if the present value is below a minimum value for the at least one flow, if the present value is above a maximum value for the at least one flow and if the at least one flow is a member of an aggregate of the plurality of flows wherein a recent aggregate transmitted rate of all flows in the aggregate is greater than an aggregate limit;
if the present value is below the minimum value or above the maximum value or the recent aggregate transmitted rate is greater than the aggregate limit, then setting the transmit probability to a sum of the present value and a first positive constant or to a product of the present value multiplied by a second constant, the second positive constant having a value less than one; and
if the present value is above the minimum value and below the maximum value and the recent aggregate transmitted rate is not greater than the aggregate limit, then;
determining if a present occupancy of the queue is less than a certain fractional value of a total capacity of the queue, and if the present occupancy of the queue is less than the certain fractional value, then setting the transmit probability to a sum of the present value and a third constant;
if the present queue occupancy is not less than the certain fractional value, then determining if the present queue occupancy is less than another fractional value of the total queue capacity larger than the certain fractional value and if the present queue occupancy is less than a previous queue occupancy, and if the present queue occupancy is less than the another fractional value and the present queue occupancy is less than the previous queue occupancy, then setting the transmit probability to a sum of the present value and a fourth constant; and
if the present queue occupancy is not less than the certain fraction value and if either of the present queue occupancy is not less than the another fraction or the present queue occupancy is not less than a previous queue occupancy, then setting the transmit probability to the present value less a value of a fourth constant multiplied by a current transmitted rate of the at least one flow and divided by a maximum possible send rate of the at least one flow;
wherein the processor is further configured to compare a random number generated by the random number generator with the set transmit probability andmake a transmit decision regarding said at least one flow based upon a result of the comparison.
0 Assignments
0 Petitions
Accused Products
Abstract
A flow control method and system including an algorithm for deciding to transmit an arriving packet into a processing queue or to discard it, or, in the case of instructions or packets that must not be discarded, a similar method and system for deciding at a service event to transmit an instruction or packet into a processing queue or to skip the service event. The transmit probability is increased or decreased in consideration of minimum and maximum limits for each flow, aggregate limits for sets of flows, relative priority among flows, queue occupancy, and rate of change of queue occupancy. The effects include protection of flows below their minimum rates, correction of flows above their maximum rates, and, for flows between minimum and maximum rates, reduction of constituent flows of an aggregate that is above its aggregate maximum. Practice of the invention results in low queue occupancy during steady congestion.
19 Citations
20 Claims
-
1. A method to manage traffic in a system of a computer network, comprising:
-
configuring a processor in communication with a random number generator and a storage queue to set a transmit probability to a value between zero and one for receiving traffic from at least one flow of a plurality of flows ported into the processor by; reading a present value of the transmit probability of the at least one flow; determining at least one of if the present value is below a minimum value for the at least one flow, if the present value is above a maximum value for the at least one flow and if the at least one flow is a member of an aggregate of the plurality of flows wherein a recent aggregate transmitted rate of all flows in the aggregate is greater than an aggregate limit; if the present value is below the minimum value or above the maximum value or the recent aggregate transmitted rate is greater than the aggregate limit, then setting the transmit probability to a sum of the present value and a first positive constant or to a product of the present value multiplied by a second constant, the second positive constant having a value less than one; and if the present value is above the minimum value and below the maximum value and the recent aggregate transmitted rate is not greater than the aggregate limit, then; determining if a present occupancy of the queue is less than a certain fractional value of a total capacity of the queue, and if the present occupancy of the queue is less than the certain fractional value, then setting the transmit probability to a sum of the present value and a third constant; if the present queue occupancy is not less than the certain fractional value, then determining if the present queue occupancy is less than another fractional value of the total queue capacity larger than the certain fractional value and if the present queue occupancy is less than a previous queue occupancy, and if the present queue occupancy is less than the another fractional value and the present queue occupancy is less than the previous queue occupancy, then setting the transmit probability to a sum of the present value and a fourth constant; and if the present queue occupancy is not less than the certain fraction value and if either of the present queue occupancy is not less than the another fraction or the present queue occupancy is not less than a previous queue occupancy, then setting the transmit probability to the present value less a value of a fourth constant multiplied by a current transmitted rate of the at least one flow and divided by a maximum possible send rate of the at least one flow; wherein the processor is further configured to compare a random number generated by the random number generator with the set transmit probability and make a transmit decision regarding said at least one flow based upon a result of the comparison. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A network device, comprising:
-
a specialized processor implemented in hardware, the processor in communication with a random number generator and a storage queue; wherein the processor is configured to manage traffic in a system of a computer network by setting a transmit probability for receiving traffic from at least one flow of a plurality of flows ported into the processor to a value between zero and one, by; reading a present value of the transmit probability of the at least one flow; determining at least one of if the present value is below a minimum value for the at least one flow, if the present value is above a maximum value for the at least one flow and if the at least one flow is a member of an aggregate of the plurality of flows wherein a recent aggregate transmitted rate of all flows in the aggregate is greater than an aggregate limit; if the present value is below the minimum value or above the maximum value or the recent aggregate transmitted rate is greater than the aggregate limit, then setting the transmit probability to a sum of the present value and a first positive constant or to a product of the present value multiplied by a second constant, the second positive constant having a value less than one; and if the present value is above the minimum value and below the maximum value and the recent aggregate transmitted rate is not greater than the aggregate limit, then; determining if a present occupancy of the queue is less than a certain fractional value of a total capacity of the queue, and if the present occupancy of the queue is less than the certain fractional value then setting the transmit probability to a sum of the present value and a third constant; if the present queue occupancy is not less than the certain fractional value, then determining if the present queue occupancy is less than another fractional value of the total queue capacity larger than the certain fractional value and if the present queue occupancy is less than a previous queue occupancy, and if the present queue occupancy is less than the another fractional value and the present queue occupancy is less than the previous queue occupancy, then setting the transmit probability to a sum of the present value and a fourth constant; and if the present queue occupancy is not less than the certain fraction value and if either of the present queue occupancy is not less than the another fraction or the present queue occupancy is not less than a previous queue occupancy, then setting the transmit probability to the present value less a value of a fourth constant multiplied by a current transmitted rate of the at least one flow and divided by a maximum possible send rate of the at least one flow; wherein the processor is further configured to compare a random number generated by the random number generator with the set transmit probability and make a transmit decision regarding said at least one flow based upon a result of the comparison. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification