×

Method and apparatus for guaranteeing data transfer rates and delays in data packet networks using logarithmic calendar queues

  • US 6,396,843 B1
  • Filed: 10/30/1998
  • Issued: 05/28/2002
  • Est. Priority Date: 10/30/1998
  • Status: Expired due to Term
First Claim
Patent Images

1. A method of servicing, at a predetermined service rate, a plurality of queues containing data packets, each of said queues being associated with respective connections, said connections traversing an associated communication switch, each of said connections being allocated a respective data transfer rate, said method comprising the steps of:

  • responsive to receiving a plurality of data packets via a plurality of data links identifying for each received data packet the respective one of said connections and identifying the associated one of said queues;

    storing each of the received data packets in one of said plurality of queues;

    associating a timestamp with each connection whose associated queue has at least one data packet waiting therein, in which said connection is identified as a backlogged connection, and generating a timestamp associated with each connection each time a new data packet reaches the head of the associated queue;

    storing in memory the timestamps associated with respective ones of the backlogged connections;

    sorting the timestamps using a plurality of calendar subqueues, each of said calendar subqueues being associated with a respective specified granularity and comprising a plurality of bins, each of said bins being associated with an interval of values of timestamps according to the respective granularity of the calendar subqueue, and each of said bins comprising a queue of connections whose respective timestamps have values within the interval associated with the bin;

    selecting for each backlogged connection one of the said calendar subqueues and one of the bins in the selected calendar subqueue according to the value of the associated timestamp each time a new data packet reaches the head of the associated queue of the corresponding connection;

    appending said backlogged connection to the queue of connections in the selected bin in the selected calendar subqueue;

    generating a value for the system potential according to a predetermined function, and identifying the bin in each calendar subqueue associated with the value of the system potential;

    identifying, for each of the calendar subqueues, the first non-empty bin whose minimum associated timestamp value is not smaller than the minimum timestamp value associated with the bin associated with the value of system potential in said calendar subqueue;

    determining for each of the identified non-empty bins the connection at the head of the corresponding queue of connections, and identifying the value of the timestamp associated with said connection;

    selecting the minimum value of the identified timestamps, removing a data packet from the head of that one of the queues associated with the connection corresponding to said minimum value, and transmitting the removed data packet to an output;

    wherein the subqueue to which the backlogged connection is appended is selected as the subqueue associated with the smallest granularity for which the granularity times the number of bins decremented by one is larger than the difference between the value of the timestamp associated with the backlogged connection and the value of the system potential;

    wherein the bin in the selected subqueue to which the backlogged connection is appended is selected as the one associated with the result of the modulo operation between the value of the timestamp and the granularity times the number of bins, in which said result is then divided by the granularity.

View all claims
  • 7 Assignments
Timeline View
Assignment View
    ×
    ×