Method and system for providing optimal discard fraction
AssigneeInternational Business Machines Corporation
InventorClark Debs Jeffries
Life of this patent
Estimating the term…
Abstract
A method and system for controlling a flow of a plurality of packets in a computer network is disclosed. The network includes a queue having a maximum queue level that is possible. 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 determining a virtual maximum queue level based on the queue level and the maximum queue level and controlling a transmission fraction of the plurality of packets to the queue, based on the queue level, the offered rate and the virtual maximum queue level.
Claims24
A method for controlling a flow of a plurality of packets in a computer network including a queue having a maximum queue level that is possible, 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) determining a virtual maximum queue level based on the queue level and the maximum queue level;
- wherein the virtual maximum queue level determining step further includes the steps of:
- (c1) increasing the virtual maximum queue level to a maximum that is less than or equal to the maximum queue level if the queue level is above a first threshold;
- and
- (c2) decreasing the virtual maximum queue level if the queue level is below a second threshold;
- and
- (d) controlling a transmission fraction of the plurality of packets to the queue, based on the queue level, the offered rate and the virtual maximum queue level.
A method for controlling a flow of a plurality of packets in a computer network including a queue having a maximum queue level that is possible, 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) determining a virtual maximum queue level based on the queue level and the maximum queue level, wherein the virtual maximum queue level determining step (c) further includes the steps of
- (c1) providing a multiplier for the maximum queue level, the multiplier being an exponentially weighted average which approaches a first level if the queue level is below a threshold and which approaches a second level if the queue level is above the threshold, the first level corresponding to the virtual queue level being a minimum virtual queue level and the second level corresponding to the virtual queue level being the maximum queue level;
- (d) controlling a transmission fraction of the plurality of packets to the queue, based on the queue level, the offered rate and the virtual maximum queue level, and wherein the transmission fraction controlling step further includes the step of
- (d1) controlling the transmission fraction based on the queue level, the offered rate, a previous transmission fraction, the multiplier and the maximum queue level.
A computer-readable medium containing a program for controlling a flow of a plurality of packets in a computer network including a queue having a maximum queue level that is possible, 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) determining a virtual maximum queue level based on the queue level and the maximum queue level, wherein the virtual maximum queue level determining instructions (c) further includes instruction for:
- (c1) increasing the virtual maximum queue level to a maximum that is less than or equal to the maximum queue level if the queue level is above a first threshold;
- and
- (c2) decreasing the virtual maximum queue level if the queue level is below a second threshold;
- and
- (d) controlling a transmission fraction of the plurality of packets to the queue, based on the queue level, the offered rate and the virtual maximum queue level.
A computer-readable medium containing a program for controlling a flow of a plurality of packets in a computer network including a queue having a maximum queue level that is possible, 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) determining a virtual maximum queue level based on the queue level and the maximum queue level, wherein the virtual maximum queue level determining instructions (c) further includes the steps of
- (c1) providing a multiplier for the maximum queue level, the multiplier being an exponentially weighted average which approaches a first level if the queue level is below a threshold and which approaches a second level if the queue level is above the threshold, the first level corresponding to the virtual queue level being a minimum virtual queue level and the second level corresponding to the virtual queue level being the maximum queue level;
- and
- (d) controlling a transmission fraction of the plurality of packets to the queue, based on the queue level, the offered rate and the virtual maximum queue level, wherein the transmission fraction controlling step further includes the step of
- (d1) controlling the transmission fraction based on the queue level, the offered rate, a previous transmission fraction, the multiplier and the maximum queue level.
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, the queue having a maximum queue level that is possible;
- an enqueuing mechanism, coupled with the queue, for receiving an offered rate of the plurality of packets and for determining a virtual maximum queue level based on a queue level for the queue and the maximum queue level, the enqueuing mechanism also for controlling a transmission fraction of the plurality of packets to the queue, the transmission rate being controlled based on the queue level for the queue, the offered rate and the virtual maximum queue level wherein the enqueuing mechanism further increases the virtual maximum queue level to a maximum that is less than or equal to the maximum queue level if the queue level is above a first threshold and decreases the virtual maximum queue level if the queue level is below a second threshold.
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, the queue having a maximum queue level that is possible;
- an enqueuing mechanism, coupled with the queue, for receiving an offered rate of the plurality of packets and for determining a virtual maximum queue level based on a queue level for the queue and the maximum queue level, the enqueuing mechanism also for controlling a transmission fraction of the plurality of packets to the queue, the transmission rate being controlled based on the queue level for the queue, the offered rate and the virtual maximum queue level wherein the enqueuing mechanism further provides a multiplier for the maximum queue level, the multiplier being an exponentially weighted average which approaches a first level if the queue level is below a threshold and which approaches a second level if the queue level is above the threshold, the first level corresponding to the virtual queue level being a minimum virtual queue level and the second level corresponding to the virtual queue level being the maximum queue level;
- and wherein the enqueuing mechanism further controls the transmission fraction based on the queue level, the offered rate, a previous transmission fraction, the multiplier and the maximum queue level.
Dependencies are inferred from the claim text.