Method and system for controlling transmission of packets in computer networks
First Claim
1. A method for controlling a flow of a plurality of packets in a computer network including a queue, the method comprising the steps of(a) determining a queue level for the queue;
- (b) determining an offered rate of the plurality of packets to the queue;
(c) controlling a transmission fraction of the plurality of packets to the queue, based on the queue level and the offered rate, so that the transmission fraction and the queue level are damped if the queue level is between at least a first queue level and a second queue level, wherein the transmission fraction is controlled after each of a plurality of epochs and wherein the transmission fraction controlling step (c) further includes the step of;
(c1) controlling the transmission fraction for an epoch of the plurality of epochs based on the queue level for a previous epoch, the offered rate for the previous epoch and the transmission fraction for the previous epoch such that the transmission fraction for the epoch and the queue level for the previous epoch would be damped.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for controlling a flow of a plurality of packets in a computer network is disclosed. The computer network includes a queue. The method and system include determining a queue level for the queue and determining an offered rate of the plurality of packets to the queue. The method and system also include controlling a transmission fraction of the plurality of packets to the queue, based on the queue level, the offered rate and a previous value of the transmission fraction so that the transmission fraction and the queue level are critically damped if the queue level is between at least a first queue level and a second queue level.
-
Citations
18 Claims
-
1. A method for controlling a flow of a plurality of packets in a computer network including a queue, the method comprising the steps of
(a) determining a queue level for the queue; -
(b) determining an offered rate of the plurality of packets to the queue;
(c) controlling a transmission fraction of the plurality of packets to the queue, based on the queue level and the offered rate, so that the transmission fraction and the queue level are damped if the queue level is between at least a first queue level and a second queue level, wherein the transmission fraction is controlled after each of a plurality of epochs and wherein the transmission fraction controlling step (c) further includes the step of;
(c1) controlling the transmission fraction for an epoch of the plurality of epochs based on the queue level for a previous epoch, the offered rate for the previous epoch and the transmission fraction for the previous epoch such that the transmission fraction for the epoch and the queue level for the previous epoch would be damped. - View Dependent Claims (2, 3, 4, 5)
(c1) controlling the transmission fraction such that the queue level is critically damped.
-
-
3. The method of claim 1 wherein the queue further includes a hardware memory resource.
-
4. The method of claim 1 wherein the transmission fraction controlling step (c) further includes the step of:
(c2) dropping a portion of the plurality of packets based on the transmission fraction and a priority of each packet in the plurality of packets.
-
5. The method of claim 1 wherein the transmission fraction controlling step (c) further includes the steps of:
-
(c2) controlling the transmission fraction such that each packet of the plurality of packets is transmitted if the queue level is below a minimum threshold;
(c3) controlling the transmission fraction such that no packet or a small fraction of the plurality of packets is transmitted if the queue level is above a maximum threshold; and
(c4) controlling the transmission fraction such that the transmission fraction and the queue level are critically damped if the queue level is between the minimum threshold and the maximum threshold.
-
-
6. A method for controlling a flow of a plurality of packets in a computer network including a queue, the method comprising the steps of
(a) determining a queue level for the queue; -
(b) determining an offered rate of the plurality of packets to the queue;
(c) controlling a transmission fraction of the plurality of packets to the queue, based on the queue level and the offered rate, so that the transmission fraction and the queue level are damped if the queue level is between at least a first queue level and a second queue level, wherein the transmission fraction controlling step (c) further includes the steps of;
(c1) setting a change in the transmission fraction with respect to time equal to a first quantity multiplied by a second quantity, the first quantity being dependent upon time, the second quantity being a first constant minus a second constant multiplied by the transmission fraction minus the queue level divided by a maximum possible queue level.
-
-
7. A computer-readable medium containing a program for controlling a flow of a plurality of packets in a computer network including a queue, the program including instructions for
(a) determining a queue level for the queue; -
(b) determining an offered rate of the plurality of packets to the queue;
(c) controlling a transmission fraction of the plurality of packets to the queue, based on the queue level and the offered rate, so that the transmission fraction and the queue level are damped if the queue level is between at least a first queue level and a second queue level, wherein the transmission fraction is controlled after each of a plurality of epochs and wherein the transmission fraction controlling instructions (c) further includes instructions for;
(c1) controlling the transmission fraction for an epoch of the plurality of epochs based on the queue level for a previous epoch, the offered rate for the previous epoch and the transmission fraction for the previous epoch such that the transmission fraction for the epoch and the queue level for the previous epoch would be damped. - View Dependent Claims (8, 9, 10, 11)
(c1) controlling the transmission fraction such that the queue level is critically damped.
-
-
9. The computer-readable medium of claim 7 wherein the queue further includes a hardware memory resource.
-
10. The computer-readable medium of claim 7 wherein the transmission fraction controlling instructions (c) further includes instructions for:
(c2) dropping a portion of the plurality of packets based on the transmission fraction and a priority of each packet in the plurality of packets.
-
11. The computer-readable medium of claim 7 wherein the transmission fraction controlling instructions (c) further includes instructions for:
-
(c2) controlling the transmission fraction such that each packet of the plurality of packets is transmitted if the queue level is below a minimum threshold;
(c3) controlling the transmission fraction such that no packet of the plurality of packets is transmitted if the queue level is above a maximum threshold; and
(c4) controlling the transmission fraction such that the transmission fraction and the queue level are critically damped if the queue level is between the minimum threshold and the maximum threshold.
-
-
12. A computer-readable medium containing a program for controlling a flow of a plurality of packets in a computer network including a queue, the program including instructions for
(a) determining a queue level for the queue; -
(b) determining an offered rate of the plurality of packets to the queue;
(c) controlling a transmission fraction of the plurality of packets to the queue, based on the queue level and the offered rate, so that the transmission fraction and the queue level are damped if the queue level is between at least a first queue level and a second queue level, wherein the transmission fraction controlling instructions (c) further includes instructions for;
(c1) setting a change in the transmission fraction with respect to time equal to a first quantity multiplied by a second quantity, the first quantity being dependent upon time, the second to quantity being a first constant minus a second constant multiplied by the transmission fraction minus the queue level divided by a maximum possible queue level.
-
-
13. A system for controlling a flow of a plurality of packets in a computer network, the system comprising:
-
a queue for storing a portion of the plurality of packets;
an enqueuing mechanism, coupled with the queue, for receiving an offered rate of the plurality of packets and for controlling a transmission fraction of the plurality of packets to the queue, the transmission fraction being controlled based on a queue level for the queue and the offered rate so that the transmission fraction and the queue level are damped if the queue level is between at least a first queue level and a second queue level;
wherein the enqueuing mechanism controls the transmission fraction after each of a plurality of epochs and wherein the enqueuing mechanism controls the transmission fraction for an epoch of the plurality of epochs based on the queue level for a previous epoch, the offered rate for the previous epoch and the transmission fraction for the previous epoch such that the transmission fraction for the epoch and the queue level for the previous epoch would be damped. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A system for controlling a flow of a plurality of packets in a computer network, the system comprising:
-
a queue for storing a portion of the plurality of packets;
an enqueuing mechanism, coupled with the queue, for receiving an offered rate of the plurality of packets and for controlling a transmission fraction of the plurality of packets to the queue, the transmission fraction being controlled based on a queue level for the queue and the offered rate so that the transmission fraction and the queue level are damped if the queue level is between at least a first queue level and a second queue level;
wherein the enqueuing mechanism further controls the transmission fraction by setting a change in the transmission fraction with respect to time equal to a first quantity multiplied by a second quantity, the first quantity being dependent upon time, the second quantity being a first constant minus a second constant multiplied by the transmission fraction minus the queue level divided by a maximum possible queue level.
-
Specification