Abstract:
The present invention relates to a method for scheduling data packets in a network element of a packet data network, such as an IP network, wherein queue weights and sizes are adjusted at the same time so that the maximum queuing delay is as predictable as possible. Respective sizes of at least two data packet queues are adjusted at a predetermined or triggered timing based on at least one predetermined parameter indicating a change in the traffic mix routed through the network element or within a set of network elements. Thereby, more predictable maximum delays can be achieved.

Description:
FIELD OF THE INVENTION  
         [0001]    The present invention relates to a method and apparatus for scheduling data packets in a network element of a packet data network, e.g. a router in an IP (Internet Protocol) network.  
         BACKGROUND OF THE INVENTION  
         [0002]    Traditional packet data networks, e.g. IP networks, can provide all customers with Best Effort (BE) services only. The whole traffic competes equally for network resources. With development of new applications of Internet, such as voice, video and Web services, the desire of manageable and/or predictable QoS (Quality of Service) becomes stronger.  
           [0003]    Congestion management features allow to control congestion by determining the order in which packets are sent out at an interface, and the order in which packets are dropped—if needed, based on priorities assigned to those packets. Congestion management entails the creation of queues, assignment of packets to those queues based on a classification of the packet, and scheduling of the packets in a queue for transmission. There are numerous types of queuing mechanisms, each of which allows to specify creation of a different number of queues, affording greater or lesser degrees of differentiation of traffic, and to specify the order in which the traffic is sent.  
           [0004]    During periods with light traffic, that is, when no congestion exists, packets are sent out the interface as soon as they arrive. During periods of transmit congestion at the outgoing interface, packets arrive faster than the interface can send them. If congestion management features are used, packets accumulating at an interface are either queued until the interface is free to send them, or dropped if the congestion is heavy, and the packet is marked as low priority packet. Packets are then scheduled for transmission according to their assigned priority and the queuing mechanism configured for the interface. A respective router of the packet data network determines the order of packet transmission by controlling which packets are placed in which queue and how queues are serviced with respect to each other.  
           [0005]    Queuing types for congestion management QoS control are e.g. FIFO (First-In-First-Out), Weighted Fair Queuing (WFQ) and Priority Queuing (PQ). With FIFO, transmission of packets out the interface occurs in the order the packets arrive. WFQ offers dynamic, fair queuing that divides bandwidth across traffic queues based on weights. And, with PQ, packets belonging to one priority class of traffic are sent before all lower priority traffic to ensure timely delivery of those packets.  
           [0006]    Heterogeneous networks include many different protocols used by applications, giving rise to the need to prioritize traffic in order to satisfy time-critical applications while still addressing the needs of less time-dependent applications, such as file transfer. Different types of traffic sharing a data path through the network can interact with one another in ways that affect their application performance. If a network is designed to support different traffic types that share a single data path between routers, congestion management techniques should be applied to ensure fairness of treatment across various traffic types.  
           [0007]    For situations in which it is desirable to provide consistent response time to heavy and light network users alike without adding excessive bandwidths, the solution is WFQ. WFQ is a flow-based queuing algorithm which does two things simultaneously. It schedules interactive traffic to the front of the queue to reduce response time, and it fairly shares the remaining bandwidth between high bandwidth flows, wherein the bandwidth indicates the number of bits per second which can be output from the router interface.  
           [0008]    WFQ ensures that queues do not starve for bandwidth, and that traffic gets predictable service. Low-volume traffic streams which make up the majority of traffic receive preferential service, so that their entire offered loads are transmitted in a timely fashion. High-volume traffic streams share the remaining capacity or bandwidth proportionally between them. WFQ is designed to minimize configuration effort and adapts automatically to changing network traffic conditions in that it uses whatever bandwidth is available to forward traffic from lower priority flows if no traffic from higher priority flows is present. This is different from Time Division Multiplexing (TDM) which simply carves up the bandwidth and lets it go unused if no traffic is present for a particular traffic type.  
           [0009]    Further details of WFQ can be gathered from Hui Zhang, “Service Disciplines for Guaranteed Performance Service in Packet-Switching Networks”, in Proceedings of the IEEE, Volume 83, No. 10, October 1995, and from “Weighted Fair Queuing (WFQ)”, Cisco Systems, Inc., http://www.cisco.com/warp/public/732/Tech/wfq/.  
           [0010]    Assured Forwarding (AF) is an IETF standard in the field of Differentiated Services. Routers implementing AF have to allocate certain resources (buffer space and bandwidth) to different traffic aggregates. Each of the four AF classes has three drop precedences: in the event of congestion, packets with low drop precedence (within a class) are dropped first. Assured Forwarding can basically be implemented with any weight-based scheduling mechanism e.g., with Cisco&#39;s Class-Based Weighted Fair Queueing (CB-WFQ). The mutual relationships of different AF classes are open, but one reasonable approach is to use them as delay classes. This approach, however, demands automatic weight adjustments. If weight for a particular AF class stays the same while the amount of traffic in this class increases, delay in this AF class will also increase (assuming that the output link is congested).  
           [0011]    Especially for real time traffic (such as streaming video), it is essential to keep the delays in different output queues as predictable as possible. Bearing this in mind, it is not sufficient to adaptively change only queue weights. If the queue size remains constant while the weight is changed, also the maximum queuing delay changes. Thus, an IP router with multiple output queues per interface needs a maximum size and weight for each queue. Setting of these queue sizes and weights can be quite difficult if the traffic mix is unknown and not stable.  
           [0012]    Further details of Differentiated Services, Assured Forwarding and different queueing mechanisms can be gathered e.g. from Kalevi Kilkki, “Differentiated Services for the Internet”, Macmillan Technical Publishing, ISBN 1-57870-132-5, 1999.  
         SUMMARY OF THE INVENTION  
         [0013]    It is therefore an object of the present invention to provide a packet scheduling method and apparatus, by means of which predictability of queuing delays can be improved.  
           [0014]    This object is achieved by a method of scheduling data packets in a network element of a packet data network, said method comprising the steps of:  
           [0015]    assigning respective weights to at least two data packet queues, said weights determining a transmit order of queued data packets of said at least two data packet queues; and  
           [0016]    adjusting the respective sizes of said at least two data packet queues at a predetermined or triggered timing based on at least one predetermined traffic parameter indicating a change in the traffic mix routed through said network element or within a set of network elements.  
           [0017]    Additionally, the above object is achieved by a network element for scheduling data packets in a packet data network, said network element comprising:  
           [0018]    weight control means for assigning respective weights to at least two data packet queues, said weights determining a transmit order for queued data packets of said at least two data packet queues; and  
           [0019]    size adjusting means for adjusting the respective sizes of said at least two data packet queues at a predetermined or triggered timing based on at least one predetermined traffic parameter indicating a change in the traffic mix routed through said network element or within a set of network elements.  
           [0020]    Accordingly, in addition to weights, queue sizes are also set adaptively at the same time. Thereby, the maximum queuing delay in every queue can be kept as predictable as possible by binding the weight and size for each output queue together. Thus, an adaptation to changes in the traffic mix is achieved.  
           [0021]    The at least one predetermined parameter may comprise at least one of  
           [0022]    weight of the respective one of said at least two data packet queues  
           [0023]    output link bandwidth of said network element, and  
           [0024]    desired per-hop maximum delay.  
           [0025]    Furthermore, the respective sizes may be adjusted every predetermined number of seconds or the adjustment procedure may be triggered by some event (e.g. dramatic change in traffic mix).  
           [0026]    Preferably, predetermined minimum weights can be used for said at least two data packet queues. The respective weights may be converted into byte limits which can be taken from each of said at least two data packet queues in its turn.  
           [0027]    The size adjusting means may be arranged to adjust the respective size of said at least two data packet queues based on at least one of the weight of the respective one of said at least two data packet queues, the output link bandwidth of said network element, and the desired per-hop maximum delay.  
           [0028]    Additionally, timer means may be provided for setting said predetermined intervals. Some events may trigger the adjustment procedure as well. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0029]    In the following, the present invention will be described in greater detail based on a preferred embodiment with reference to the accompanying drawing figures, in which:  
         [0030]    [0030]FIG. 1 shows a schematic block diagram of a packet scheduling architecture according to the preferred embodiment; and  
         [0031]    [0031]FIG. 2 shows a schematic flow diagram of a scheduling method according to the preferred embodiment. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0032]    The preferred embodiment will now be described based on a packet scheduling architecture for output queues in an IP router.  
         [0033]    According to FIG. 1, the scheduling architecture according to the preferred embodiment is based on a scheme which provides bandwidth allocation to all network traffic. To achieve this, a classifier  10  is provided to classify traffic into different classes, i.e. to select packets based the content of packet headers, e.g. DiffServ Code Point (DSCP). However, any other type of classification based on predetermined characteristics of the received traffic can be applied.  
         [0034]    The classifier  10  places packets of various conversations in queues C 1  to C 3  for transmission. The order of removal from the queues C 1  to C 3  is determined by weights allocated to them. The queues C 1  to C 3  are arranged in a configurable queuing buffer resource architecture  20 .  
         [0035]    A scheduler  30  is provided to assign a weight to each flow, i.e. to each of the queues C 1  to C 3 , which weight determines the transmit order for queued packets. The assigned weight may be determined by the required QoS, the desired flow throughput, and the like. Based on the assigned weights, the scheduler  30  supplies queued packets from the queues C 1  to C 3  to a transmit queue, from which they are output to an output link towards the IP network.  
         [0036]    A weight setting unit  50  is arranged to control the scheduler  30  to adjust the respective weights weight i  of the queues C 1  to C 3  at predetermined intervals, i.e. every T seconds, based on the following procedure:  
                 traffic   i     :=       a   ·     traffic   i       +       (     1   -   a     )     ·     traffic     i   ,     last                 period               ,                  where                 0     &lt;   a   &lt;   1                   traffic     i   ,     last                 period         :=   0                   weight   i     =       F        (     traffic   i     )       /     (       ∑     i   =   1     N                     F        (     traffic   i     )         )         ,                               
 
         [0037]    wherein traffic i  denotes the moving average of traffic characteristics (e.g. byte count, flow count etc.) at queue C i  within the measurement period T. It is noted that in the example shown in FIG. 1, N equals three, since three queues are provided in the queuing buffer resource architecture  20 . The parameter a, i.e. the weight for the previous moving average value and the new moving average value, can be chosen freely. Furthermore, traffic i, last period  denotes the traffic characteristics (e.g. number of bytes arrived) within the last measurement period, and F denotes any suitable predetermined functional relationship between the traffic characteristic and a desired weight. After the moving averages have been updated, the respective counters provided e.g. in the weight setting unit  50  are set to zero in order to start a new counting operation. The weight setting unit  50  may be arranged to use predetermined minimum weights for each queue.  
         [0038]    The measurement period T may be set and controlled by a timer  45  which may be provided in a size setting unit  40 , as indicated in FIG. 1, or alternatively in the weight setting unit  50  or in any other unit or as a separate unit for the IP router.  
         [0039]    The sizes of queues C 1  to C 3 , i.e. the maximum number of data packets in the queues, are set by the size setting unit  40  according to determined parameters indicating the traffic mix. In the preferred embodiment, these parameters are the assigned weights, the output link bandwidth and the desired per-hop maximum delays. However, other suitable parameters may be used for this purpose. The size setting may be performed based on the following equation:  
         size i : F(weight i , OLB, delay i ),  
         [0040]    wherein weight i  denotes the weight assigned to the queue C i , OLB denotes the output link bandwidth of the output link of the IP router, and delay i  denotes the desired per-hop maximum delay of the queue C i . It is noted that the function F may be any suitable function defining a relationship between the allowed queue size and the traffic-specific parameters to thereby keep the delays in the different queues C 1  to C 3  as predictable as possible.  
         [0041]    The scheduler  30  is arranged to convert the weights into bytes which can be dequeued (taken) from one of the queues C 1  to C 3  in its turn.  
         [0042]    [0042]FIG. 2 shows a schematic flow diagram of the scheduling operation according to the preferred embodiment.  
         [0043]    When the timer  45  has expired in step S 200 , the procedure proceeds to step S 201  where the queue weights are adjusted by the weight setting unit  50  according to any changes in the traffic parameters, i.e. any changes in the traffic mix. Then, the queue sizes are adjusted in step S 202  by the size setting unit  40 , e.g. using the weight information determined in the weight setting unit  50 . Thereafter, the timer  45  is rescheduled or reset to zero (step S 203 ) in order to start a new measurement period or cycle for determining the moving average of bytes and/or other parameters required for the scheduling operation. Finally, the procedure loops back to the initial step S 200  and applies the determined sizes and weights until the timer  45  expires again. It is noted that some other events (than expired timer) may be used as well to trigger the adjusment process.  
         [0044]    In the following, a specific implementation example of the preferred embodiment is described. In this example, the sizes (in bytes) of the queues C 1  to C 3  are set according to the queue weights, output link bandwidth and desired per-hop maximum queuing delay, using the following equation:  
         size i :=(weight i   ·OLB ·delay i )/8.  
         [0045]    It is noted that the blocks indicated in the architecture of FIG. 1 may be implemented as software routines controlling a corresponding processor in the IP router, or as discrete hardware units.  
         [0046]    The proposed scheduling operation and architecture removes the need to manually update router queue sizes and provides an adaptive change of queue sizes and queue weights for output queues of routers or any other suitable network elements having a queuing function. Thereby, the scheduling can be adapted to changes in the traffic mix to achieve more predictable maximum delays.  
         [0047]    It is noted, that the present invention is not restricted to the specific features of the above predetermined embodiment, but may vary within the scope of the attached claims. In particular, the determination of the queue size and the packet size is not restricted to the above implementation example. Any suitable weight-based scheduling scheme and way of determining suitable queue sizes based on a change in the traffic mix is intended to be covered by the present invention. Moreover, additional coefficients might be used for the different weighted queues C 1  to C 3  if it is intended that some queues are “faster” than others. If one or a number of priority queues have to be served before the weighted queues C 1  to C 3  can be served, rate limiters could be used for the priority queues so as to guarantee a minimum output link bandwidth for the weighted queues C 1  to C 3 .