Claims
- 1. A method for controlling data packets in a communications device including the steps of:
a) enqueuing all arriving traffic into a queue formed within a buffer; b) at each service event of the queue of arriving traffic recognizing the packet at the front of the queue for membership in exactly one of two sets, namely, the set of all Best Effort traffic packets and the set of all Premium traffic packets; c) sending all Premium packets forward into a next processor; d) sending Best Effort packets forward into the next processor with probability equal to a number called transmit probability T(t); and, e) sending Best Effort packets forward into discard processor with probability equal to one minus the transmit probability T, that is, 1−T.
- 2. The method according to claim 1 further including the step of periodically updating the transmit probability T(t).
- 3. The method according to claim 2, wherein the step of periodically updating the transmit probability T(t) further includes the steps of:
f) determining a period Dt to refresh the transmit probability T(t); g) determining queue occupancy Q(t) periodically at certain time values; h) comparing queue occupancy Q(t) with a preselected constant threshold called Th having the relation 0<Th<Qmax where Qmax is the maximum storage capacity of the buffer; and i) including comparisons in h) Q(t) and T(t) as inputs into an algorithm to compute subsequent transmit probability T(t+Dt).
- 4. A method comprising the acts of:
j) enqueueing data packets in a queue position within a buffer; k) examining each data packet as it is being dequeued if the packet is marked Premium data packet sending said Premium data packet forward into a first process, if the packet is marked Best Effort data packet sending said Best Effort data packet (BE DP) into a second process which analyzes said BE DP and sending selected ones of said Best Effort data packet into the first process.
- 5. The method according to claim 4, wherein the second process includes the acts of:
l) generating random numbers with a random number generator; m) upon the arrival of a Best Effort Data packet in the time interval [t, Dt] performing a comparison of a current state of said random number generator with the value of a transmit probability T(t+Dt) stored as an output of an algorithm; n) transmitting said Best Effort packet into the next process if the current state of said random number generator is less than or equal to said value of transmit probability T(t+Dt); and o) discarding said Best Effort packet if the current state of said random number generator is greater than said value of new transmit probability T(t+Dt).
- 6. The method according to claim 4, wherein said random number value and said transmit probability T(t+Dt) are both fractions between 0 and 1.0, that is, in the interval of fractions in [0, 1].
- 7. The method of claim 5 further including the act of updating the value of the transmit probability.
- 8. The method according to claim 7, wherein the method of updating the value of the transmit probability T is specified by an algorithm based upon queue occupancy and the current value of the transmit probability T.
- 9. The method according to claim 8, wherein the queue occupancy as a frame count is first measured, then compared to a threshold Th such as ½ of the frame count if all frames were of maximum size and the queue were completely full, and if less than Th, updating the transmit probability by a linear increase by a constant such as {fraction (1/32)} up to a limiting value of 1.
- 10. The method according to claim 8, wherein the queue occupancy as a frame count is first measured, then compared to a threshold Th such as ½ of the frame count if all frames were of maximum size and the queue were completely full, and if greater than or equal to Th, updating the transmit probability T by multiplication by a constant multiplier such as {fraction (31/32)}.
- 11. The method of claim 10 wherein the threshold Th includes 40 frames.
- 12. A communication system comprising:
a buffer for receiving packets; a flow control mechanism for transmitting premium packets from a first queue for newly arriving packets formed in said buffer into a second queue to await further processing and, if necessary due to congestion in the first queue, executing an algorithm that gracefully discarding some Best Effort packets in the first queue as they reach the front of the first queue about to be further processed, with ever increasing probability of discard, that is, decreasing probability of transmission, until an equilibrium that avoids overflowing the first queue is reached; and a mechanism for storing constant values, measured dynamic variables, and calculated variables that implements the algorithm.
- 13. A method to manage congestion in a communications network comprising the acts of:
providing a buffer in which incoming packets are enqueued; operatively monitoring, with a device for determining the existence of queue congestion; dequeueing and forwarding Premium Effort packets; and generating a transmit probability value for use in transmitting a packet or discarding a packet of Best Effort packets for the purpose of gracefully avoiding overfilling of the queue storage capacity.
- 14. A node including:
a network device; and flow control mechanism for controlling data packets within said network device, said flow control system including a buffer in which Premium packets and Best Effort packets are placed in a queue; recognition logic that segregates packets forwarding Premium packets to a first process; Best Effort packets to a second process; and flow control mechanism associated with the second process to analyze Best Effort packets and discarding selected ones based upon the relationship between a transmit probability function T(t) and a random number.
- 15. The method of claim 1 or claim 4 further including acts of assigning voice packets, video packets, video conferencing packets, other realtime packets, business data packets, and network control packets as Premium packets, and assigning all other packets as Best Effort packets.
- 16. The node of claim 14 wherein the network device includes a switch, router, or Network Interface card.
CROSS REFERENCE TO RELATED PATENT APPLICATIONS
[0001] Patent application Ser. No. ______ (Attorney's docket No. RPS920020059US1), entitled “Flow Control in Computer Networks”, assigned to the assignee of the present invention and incorporated herein by reference, describes a flow control mechanism that during congestion limits the occupancy of a queue by discarding proactively part of offered load before entry into the queue.