# Patent

## Title
Rate-based proportional-integral control scheme for active queue management

## Abstract

Disclosed is an Active Queue Management method and apparatus which uses traffic rate information for congestion control. Using a nonlinear fluid-flow model of Traffic Control Protocol, a proportional-integral controller in a closed loop configuration with gain settings characterized for stable operation allows a matching of the aggregate rate of the active TCP connections to the available capacity. Further disclosed is a method for calculation of the regime of gain settings for which stable operation of a given network obtains. This approach allows for capacity matching while maintaining minimal queue size and high link utilization.

## Background
FIELD OF THE INVENTION
The present invention relates generally to network queue management, and more particularly to a technique for active queue management using proportional-integral control and rate-based information.
BACKGROUND OF THE INVENTION
Congestion control in the Internet has primarily been the responsibility of the end-to-end congestion control mechanisms of TCP (Transmission Control Protocol). However, with the rapid growth of the Internet and the strong requirements for quality of service (QoS) support, it has become clear that the Internet could not exclusively rely on the end hosts to perform the end-to-end congestion control. Mechanisms are needed in the intermediate network elements to complement the end hosts congestion control mechanisms. Recognizing this, the Internet Engineering Tasks Force (IETF) has advocated the deployment of active queue management (AQM) mechanisms at the intermediate network elements (routers, switches, etc.) as a means of congestion control.
To perform AQM, the network elements are equipped with the means to detect incipient congestion and to signal the traffic sources before congestion actually occurs. AQM mechanisms allow the network elements to send explicit/implicit feedback of congestion to the end hosts by marking/dropping packets. The end hosts in turn react to the packet marking/dropping by reducing their data transmission rates. The main goals of AQM are to reduce the average queue lengths in the network elements and thereby decrease the end-to-end delay experienced by end user traffic, and maximize the utilization of network resources by reducing the packet loss that occurs when queues overflow.
The traditional queue management mechanism is “drop tail” which is simple to implement and is widely deployed. With drop tail mechanism, packets are dropped only at buffer overflow at which point congestion signals are conveyed to the end hosts. This results in a significantly long time period between the instant when congestion occurs and the instant when the end hosts reduce their data transmission rates. During this time period, more packets may be sent by the end hosts which could be eventually dropped. Drop tail can lead to problematic global synchronization of the traffic sources (where the sources ramp their traffic rates and backoff at the same time) and periods of low link utilization.
A number of AQM schemes have been proposed which use either queue size information for congestion control (so-called queue-based schemes) or traffic rate information (so-called rate-based schemes). Queue-based AQM schemes adapt their marking/dropping probabilities in a manner that depends on the queue size at the link. With small buffers they tend to perform poorly. For example, studies have shown that a technique such as RED (Random Early Detection) described by S. Floyd and V. Jacobson in “Random Early Detection Gateway for Congestion Avoidance,” IEEE/ACM Trans. Networking, Vol. 1, No. 4, August 1993, pp. 397-413 performs well only when the queuing capacity is greater than the bandwidth-delay product. Quite naturally the dependence of a queue-based scheme on queue size information for control will require that there be sufficient buffering for effective process tracking and control.
Very small buffers tend to complicate the control problem in this case.
A number of recent studies such as C. V. Hollot, V. Misra, D. Townsley, and W. B. Gong, “A Control Theoretic Analysis of RED,” Proc. IEEE INFOCOM 2001, 2001, pp. 1510-1519, C. V. Hollot, V. Misra, D. Townsley, and W. B. Gong, “On Designing Improved Controllers for AQM Routers Supporting TCP Flows,” Proc. IEEE INFOCOM 2001, 2001, pp. 1726-1734, Y. Chait, C. V. Hollot, and V. Misra, “Fixed and Adaptive Model-Based Controllers for Active Queue Management,” Proc. American Control Conf., Arlington, Va., Jun. 25-27, 2001, pp. 2981-2986, and V. Misra, W. B. Gong, and D. Townsley, “Fluid-based Analysis of a Network of AQM Routers Supporting TCP Flows with an Application to RED,” Proc. ACM SIGCOMM 2000, 2000, pp. 151-160, have described queue-based AQM schemes which explicitly rely on dynamic modeling and feedback control principles. Central to these studies is the recognition that AQM schemes are essentially feedback control systems and that the principles of control theory can provide critical insight and guidance into the analysis and design of such schemes. The fluid flow analytical model of TCP described in “Fluid-based Analysis of a Network of AQM Routers Supporting TCP Flows with an Application to RED” by Misra et al. particularity expresses TCP dynamics in a form that allows control theoretic approaches to be applied for AQM design and analysis.
In view of the foregoing, it would be desirable to provide a technique for network queue management which overcomes the above-described inadequacies and shortcomings.
SUMMARY OF THE INVENTION
An object of the present invention is to provide an improved rate-based proportional-integral control scheme for active queue management.
According to an aspect of the invention there is provided a method for controlling a data flow in a data network, starting with selecting a stable gain combination of a proportional controller gain kp and an integral controller gain ki. Next measuring a data arrival rate R(n) (in bits or bytes per second) at time n. Next, calculating an error signal e(n), according to the relation

e(n)=(T(n)−R(n))/x, 

where T(n) (in bits or bytes per second) is an assigned capacity at time n and x (x=1) is a parameter (in bits or bytes per second) representing a nominal packet size used in the computation of kp and ki. Next, a mark/drop probability p(n) is computed according to the relation

pp(n)=min{max[kp·e(n),0],pmax}

pi(n)=min{max[pi(n−1)+ki·Δt·e(n),0],pmax}

p(n)=min{max[pp(n)+pi(n),0],pmax}

where Δt is the time interval between a (n−1)th and the nth computation, and 0<pmax≦1. Finally a packet mark/drop routine is executed based upon the calculated mark/drop probability p(n).

Conveniently, the data arrival rate may be filtered by use of an exponentially weighted moving average scheme according to the relation

R′(n)=(1−β)·R′(n−1)+β·R(n)

where β is a filter gain parameter such that 0<β<1,
R′(n−1) is the filtered data arrival rate at time n−1, and
R′(n) is the desired filtered data arrival rate at time n.
According to another aspect of the invention, preceding the packet/mark drop routine may be a bypassing routine involving the steps of testing the data arrival rate R(n) against a rate threshold TL; and if the data arrival rate R(n) is below or equal to the rate threshold TL then bypassing the step of executing a packet mark/drop routine.
Conveniently, the packet mark/drop routine may be realized according to a random number generator mark/drop scheme.
Also conveniently, the stable gain combination may be chosen from a pre-calculated regime of stable gain pairs. A method for pre-calculating the regime may be as follows; starting with (1) obtaining for said network a value for said network a set of parameters k, d0, and τ, where k is a steady-state gain of said network, d0 is a time delay of said network, and τ is a time constant of said network. Next step (2) of choosing a kp in the range




  
    -
    
      
        1
        k
      
      ⁡
      
        [
        
          
            
              τ
              
                d
                0
              
            
            ⁢
            
              α
              1
            
            ⁢
            
              sin
              ⁡
              
                (
                
                  α
                  1
                
                )
              
            
          
          -
          
            cos
            ⁡
            
              (
              
                α
                1
              
              )
            
          
        
        ]
      
    
  
  <
  
    k
    p
  
  <
  
    1
    k
  




where α1 is a solution of




  
    tan
    ⁡
    
      (
      α
      )
    
  
  =
  
    
      -
      
        τ
        
          τ
          +
          
            d
            0
          
        
      
    
    ⁢
    α
  




in the interval (0,π) Then step (3) initializing a counter j for tracking odd number roots to an initial value of 1. Next, step (4) of determining the root zj of





  
    
      
        
          -
          
            kk
            p
          
        
        ⁢
        
          cos
          ⁡
          
            (
            
              z
              j
            
            )
          
        
      
      -
      
        
          τ
          
            d
            0
          
        
        ⁢
        
          z
          j
        
        ⁢
        
          sin
          ⁡
          
            (
            
              z
              j
            
            )
          
        
      
    
    =
    0
  
  ,




followed by step (5) computing the parameter aj associated with zj using





  
    a
    j
  
  =
  
    -
    
      
        
          
            z
            j
          
          
            kd
            0
          
        
        ⁡
        
          [
          
            
              sin
              ⁡
              
                (
                
                  z
                  j
                
                )
              
            
            +
            
              
                τ
                
                  d
                  0
                
              
              ⁢
              
                z
                j
              
              ⁢
              
                cos
                ⁡
                
                  (
                  
                    z
                    j
                  
                  )
                
              
            
          
          ]
        
      
      .
    
  




Next the root zj is tested to see if a maximal bound has been reached by determining if cos(zj)>0. If it is not, then the root counter j is incremented by two to point to the next odd-number root and the routine returns to step (4). If cos(zj)>0 then choosing the maximum of all calculated aj's as the lower bound of ki for the kp specified in step (2), and then repeating steps (2) through (7) for all desired values of kp.

In accordance with another other aspect of the present invention, there is provided an apparatus for controlling a data flow in a data network, the apparatus being configured according to the methods described above.
In accordance with another other aspect of the present invention, there is provided an article of manufacture carrying instructions for a method for controlling a data flow in a data network, and further there is provided a signal embodied in a carrier wave representing instructions for a method for controlling a data flow in a data network according to a proportional-integral control scheme.
The present invention will now be described in more detail with reference to exemplary embodiments thereof as shown in the appended drawings. While the present invention is described below with reference to the preferred embodiments, it should be understood that the present invention is not limited thereto. Those of ordinary skill in the art having access to the teachings herein will recognize additional implementations, modifications, and embodiments, which are within the scope of the present invention as disclosed and claimed herein.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be further understood from the following detailed description of embodiments of the invention and accompanying drawings, in which:
FIG. 1 is a diagram of an active queue management proportional-integral controller in an Intermediate Network Element according to an embodiment of the invention.
FIG. 2 is a diagram of a closed loop control system according to an embodiment of the invention.
FIG. 3 is a plot of a typical open loop response of the TCP/AQM plant according to an embodiment of the invention.
FIG. 4 is a plot of the two terms in Equation (32) for




  
    k
    p
  
  >
  
    1
    k
  




FIG. 5 is a plot of the two terms in Equation (32) for




  
    -
    
      1
      k
    
  
  <
  
    k
    p
  
  <
  
    1
    k
  




FIG. 6 is a plot of the two terms in Equation (32) for




  
    k
    p
  
  =
  
    -
    
      1
      k
    
  




FIG. 7 is a plot of the two terms in Equation (32) for




  
    k
    p
  
  <
  
    -
    
      1
      k
    
  




FIG. 8 is a plot of the two terms in Equation (32) for




  
    k
    p
  
  <
  
    -
    
      1
      k
    
  




FIG. 9 is a block diagram of a routine for determining the stable P-I gains for a closed-loop TCP/AQM system according to an embodiment of the invention.
FIG. 10 is a plot of an example stable gain region determined according to an embodiment of the invention.
FIG. 11 is a plot of the step response of the example closed-loop TCP/AQM system of FIG. 2.
FIG. 12 is a block diagram of a mark/drop probability computation routine according to an embodiment of the invention.
FIG. 13 is a block diagram of a packet drop/mark routine according to an embodiment of the invention.
FIG. 14 is a block diagram of an overall control routine according to an embodiment of the invention.



DETAILED DESCRIPTION
A high level depiction of an implementation of the active queue management proportional-integral control scheme according to a possible embodiment is given in FIG. 1.
Users 100 communicate with End Network Elements 105 which pass packet data either directly or through Intermediate Network Elements 115, to other End Network Elements 105. End-to-end congestion control mechanisms under normal TCP (Transmission Control Protocol) rely upon Implicit/Explicit Feedback Signals 110. Examples of Implicit/Explicit Feedback Signals 110 typically include duplicate TCP acknowledgement packets, timeouts, and marked packets.
In order to meet the stringent requirements for Quality of Service (QoS) of users, and the increases in data volume with the rapid growth of the Internet, it is advantageous to provide congestion control mechanisms at intermediate points to complement the end hosts congestion control mechanisms. According to one aspect of the invention, Intermediate Network Element 115 has been equipped with such a mechanism for congestion control.
Within Intermediate Network Element 115 are a Proportional-Integral Controller 120, a queue means 130, an arrival rate measurement means 122, a target rate measurement means 126, a packet mark/drop module 128, and a mark/drop probability control means 124 by which the Proportional-Integral Controller 120 influences the packet mark/drop module 128 according to a scheme described hereafter.
A control system oriented depiction of the system of FIG. 1 may be seen in FIG. 2 where the closed-loop system is represented as having two main elements; TCP/AQM plant 210 and the control-function means 220. The control system functions by comparing a desired Target-Rate “T” 226 with an Actual-Rate “R” 222 via a summer 240 which generates a control error “e” 250 by determining the difference between the two rates. This difference is used as an input to the control-function means 220 which generates a mark/drop probability threshold “p” 224. Changes in the threshold for marking or dropping packets results in an eventual change in the Actual-Rate “R” 222 as the effects propagate through the system. As with all closed loop systems, the control-function means 220 must have a control function response chosen so as to render a stable closed-loop system response. If this condition is not met the resultant performance will be deleterious to the network operation, possibly to the point of causing network performance degradation.
In order to be able to determine the stability requirements for the control-function means, the open loop transfer function for TCP/AQM plant 210 must be established. This may be done as follows.
A simplified rate-based fluid-flow model of a TCP source i assessing a single link is described by the following nonlinear differential equation:




  
    
      
        
          
            
              r
              .
            
            i
          
          ⁡
          
            (
            t
            )
          
        
        =
        
          
            1
            
              
                d
                i
                2
              
              ⁡
              
                (
                t
                )
              
            
          
          -
          
            θ
            ⁢
            
              
            
            ⁢
            
              
                r
                i
              
              ⁡
              
                (
                t
                )
              
            
            ⁢
            
              
                r
                i
              
              ⁡
              
                (
                
                  t
                  -
                  
                    
                      d
                      i
                    
                    ⁡
                    
                      (
                      t
                      )
                    
                  
                
                )
              
            
            ⁢
            
              p
              ⁡
              
                (
                
                  t
                  -
                  
                    
                      d
                      i
                    
                    ⁡
                    
                      (
                      t
                      )
                    
                  
                
                )
              
            
          
        
      
    
    
      
        (
        1
        )
      
    
  




where {dot over (r)} denotes the time-derivative of r, ri is rate of the TCP source (in packets per second), di is the round-trip time (RTT) of the TCP source (in seconds), p is the marking/dropping probability of a TCP packet at the link, and θ is a parameter characteristic of the type of TCP source. This model of TCP ignores the slow-start and the timeout behavior of TCP. Note that ri and p are bounded, respectively, as follows; riε[0,C], pε[0,1], where C is the link capacity.

Denoting p0 as the steady-state (or operating point) of the marking/dropping probability of a TCP source and assuming a constant RTT d0, the steady-state throughput r0 can be obtained as



  
    0
    ⁢
    
    =
    
      
        1
        
          d
          0
          2
        
      
      -
      
        θ
        ⁢
        
          
        
        ⁢
        
          r
          0
          2
        
        ⁢
        
          p
          0
        
        ⁢
        
          
        
        ⁢
        or
      
    
  




  
    
    ⁢
    
      
        r
        0
      
      ⁢
      
      =
      
        
          1
          
            d
            0
          
        
        ⁢
        
          
            
              1
              
                θ
                ⁢
                
                  
                
                ⁢
                
                  p
                  0
                
              
            
          
          .
        
      
    
  



If the parameter θ takes on the value of 2⁄3, we get the steady-state throughput of TCP as




  
    r
    0
  
  =
  
    
      1
      
        d
        0
      
    
    ⁢
    
      
        
          3
          
            2
            ⁢
            
              
            
            ⁢
            
              p
              0
            
          
        
      
      .
    
  




Making the approximation relating data transmission rate and window size




  
    
      
        r
        i
      
      ⁡
      
        (
        t
        )
      
    
    ≈
    
      
        
          W
          i
        
        ⁡
        
          (
          t
          )
        
      
      
        
          d
          i
        
        ⁡
        
          (
          t
          )
        
      
    
  
  ,




and assuming di(t)=di=constant, we get





  
    
      
        
          r
          .
        
        i
      
      ⁡
      
        (
        t
        )
      
    
    ≈
    
      
        d
        
          d
          t
        
      
      ⁢
      
        (
        
          
            
              W
              i
            
            ⁡
            
              (
              t
              )
            
          
          
            
              d
              i
            
            ⁡
            
              (
              t
              )
            
          
        
        )
      
    
  
  =
  
    
      
        
          1
          
            d
            i
          
        
        ⁢
        
          
            d
            
              
                W
                i
              
              ⁡
              
                (
                t
                )
              
            
          
          
            d
            t
          
        
      
      -
      
        
          
            
              W
              i
            
            ⁡
            
              (
              t
              )
            
          
          
            d
            i
            2
          
        
        ⁢
        
          
            d
            
              d
              i
            
          
          
            d
            t
          
        
      
    
    ≈
    
      
        1
        
          d
          i
        
      
      ⁢
      
        
          
            d
            
              
                W
                i
              
              ⁡
              
                (
                t
                )
              
            
          
          
            d
            t
          
        
        .
      
    
  




With this, we see that making the approximation ri(t)≈Wi(t)/di(t) shows that the rate-based fluid-flow model of a TCP source is essentially equivalent to a window based nonlinear fluid-flow TCP model.

Assuming a constant RTT d0, we rewrite the initial equation as




  
    
      
        
          f
          ⁡
          
            (
            
              
                r
                i
              
              ,
              
                r
                
                  i
                  ,
                  d
                
              
              ,
              p
            
            )
          
        
        =
        
          
            
              
                r
                .
              
              i
            
            ⁡
            
              (
              t
              )
            
          
          =
          
            
              1
              
                d
                0
                2
              
            
            -
            
              θ
              ⁢
              
                
              
              ⁢
              
                
                  r
                  i
                
                ⁡
                
                  (
                  t
                  )
                
              
              ⁢
              
                
                  r
                  
                    i
                    ,
                    d
                  
                
                ⁡
                
                  (
                  t
                  )
                
              
              ⁢
              
                p
                ⁡
                
                  (
                  
                    t
                    -
                    
                      d
                      0
                    
                  
                  )
                
              
            
          
        
      
    
    
      
        (
        2
        )
      
    
  




where

ri,d(t){dot over (=)}ri(t−d0).

Using Taylor series expansion, the small-signal linearization of

f(ri,ri,d,p)={dot over (r)}i(t)

about an operating point (r0,p0) is given as





  
    
      
        
          δ
          ⁢
          
            
              
                r
                .
              
              i
            
            ⁡
            
              (
              t
              )
            
          
        
        =
        
          
            
              ∂
              f
            
            
              ∂
              
                r
                i
              
            
          
          ⁢
          
            ❘
            
              
                r
                0
              
              ,
              
                p
                0
              
            
          
          ⁢
          
            
              
                δ
                ⁢
                
                  
                
                ⁢
                
                  
                    r
                    i
                  
                  ⁡
                  
                    (
                    t
                    )
                  
                
              
              +
              
                
                  ∂
                  f
                
                
                  ∂
                  
                    r
                    
                      i
                      ,
                      d
                    
                  
                
              
            
            ⁢
            
              ❘
              
                
                  r
                  0
                
                ,
                
                  p
                  0
                
              
            
            ⁢
            
              
                
                  δ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                      r
                      
                        i
                        ,
                        d
                      
                    
                    ⁡
                    
                      (
                      t
                      )
                    
                  
                
                +
                
                  
                    ∂
                    f
                  
                  
                    ∂
                    p
                  
                
              
              ⁢
              
                ❘
                
                  
                    r
                    0
                  
                  ,
                  
                    p
                    0
                  
                
              
              ⁢
              
                δ
                ⁢
                
                  
                
                ⁢
                
                  p
                  ⁡
                  
                    (
                    
                      t
                      -
                      
                        d
                        0
                      
                    
                    )
                  
                
              
            
          
        
      
    
    
      
        (
        3
        )
      
    
  




where

δri(t)=ri(t)−r0 

δri,d(t)=ri,d(t)−r0 

δp(t−d0)=p(t−d0)−p0 

and





  
    
      
        ∂
        f
      
      
        ∂
        
          r
          i
        
      
    
    ⁢
    
      ❘
      
        
          r
          0
        
        ,
        
          p
          0
        
      
    
  
  =
  
    
      
        
          ∂
          f
        
        
          ∂
          
            r
            
              i
              ,
              d
            
          
        
      
      ⁢
      
        ❘
        
          
            r
            0
          
          ,
          
            p
            0
          
        
      
    
    =
    
      
        
          
            -
            θ
          
          ⁢
          
            
          
          ⁢
          
            r
            0
          
          ⁢
          
            p
            0
          
          ⁢
          
            
              ∂
              f
            
            
              ∂
              p
            
          
        
        ⁢
        
          ❘
          
            
              r
              0
            
            ,
            
              p
              0
            
          
        
      
      =
      
        
          -
          θ
        
        ⁢
        
          
        
        ⁢
        
          r
          0
          2
        
      
    
  




The linearized equation (3) then becomes

δ{dot over (r)}i(t)=−θr0p0(δri(t)+δri,d(t))−θr02δp(t−d0).  (4)

Making the approximation ri(t)≈ri,d(t) in (4), we get

δ{dot over (r)}i(t)=−2θr0p0δ{dot over (r)}i(t)−θr02δp(t−d0)  (5)

Let us assume that the link of capacity C (in packets per second) is shared by a constant number N of TCP sources. The aggregate rate on the link R(t) is given by




  
    
      
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            
              r
              i
            
            ⁡
            
              (
              t
              )
            
          
        
        =
        
          
            R
            ⁡
            
              (
              t
              )
            
          
          .
        
      
    
    
      
        (
        6
        )
      
    
  




From (6), the equilibrium point of the system can be expressed as




  
    
      
        
          
            
              ∑
              
                i
                =
                1
              
              N
            
            ⁢
            
              
            
            ⁢
            
              r
              0
            
          
          =
          
            
              R
              0
            
            =
            
              ρ
              ⁢
              
                
              
              ⁢
              C
            
          
        
        ,
        
          
        
        ⁢
        or
      
    
    
      
        (
        7
        )
      
    
  
  
    
      
        
          
            r
            0
          
          =
          
            
              ρ
              ⁢
              
                
              
              ⁢
              C
            
            N
          
        
        ,
      
    
    
      
        (
        8
        )
      
    
  




where ρε(0,1] is a target utilization factor. From (1) and (8), the equilibrium point of the marking/dropping probability can be expressed as





  
    
      
        
          p
          0
        
        =
        
          
            1
            
              
                d
                0
                2
              
              ⁢
              θ
              ⁢
              
                
              
              ⁢
              
                r
                0
                2
              
            
          
          =
          
            
              
                N
                2
              
              
                
                  θ
                  ⁡
                  
                    (
                    
                      
                        d
                        0
                      
                      ⁢
                      ρ
                      ⁢
                      
                        
                      
                      ⁢
                      C
                    
                    )
                  
                
                2
              
            
            .
          
        
      
    
    
      
        (
        9
        )
      
    
  




Defining δR(t)=R(t)−R0, we know from (6) that




  
    
      
        
          δ
          ⁢
          
            
          
          ⁢
          
            R
            ⁡
            
              (
              t
              )
            
          
        
        =
        
          
            ∑
            
              i
              =
              1
            
            N
          
          ⁢
          
            
          
          ⁢
          
            δ
            ⁢
            
              
            
            ⁢
            
              
                r
                i
              
              ⁡
              
                (
                t
                )
              
            
            ⁢
            
              
            
            ⁢
            and
          
        
      
    
    
      
        (
        10
        )
      
    
  
  
    
      
        
          
            
              
                δ
                ⁢
                
                  
                
                ⁢
                
                  
                    R
                    .
                  
                  ⁡
                  
                    (
                    t
                    )
                  
                
              
              ⁢
              
              =
              
                
                  ∑
                  
                    i
                    =
                    1
                  
                  N
                
                ⁢
                
                  
                
                ⁢
                
                  δ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                      
                        r
                        .
                      
                      i
                    
                    ⁡
                    
                      (
                      t
                      )
                    
                  
                
              
            
          
        
        
          
            
              
              ⁢
              
                =
                
                  
                    
                      -
                      2
                    
                    ⁢
                    
                      
                    
                    ⁢
                    θ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      r
                      0
                    
                    ⁢
                    
                      p
                      0
                    
                    ⁢
                    
                      
                        ∑
                        
                          i
                          =
                          1
                        
                        N
                      
                      ⁢
                      
                        
                      
                      ⁢
                      
                        δ
                        ⁢
                        
                          
                        
                        ⁢
                        
                          
                            r
                            i
                          
                          ⁡
                          
                            (
                            t
                            )
                          
                        
                      
                    
                  
                  -
                  
                    
                      ∑
                      
                        i
                        =
                        1
                      
                      N
                    
                    ⁢
                    
                      
                    
                    ⁢
                    
                      θ
                      ⁢
                      
                        
                      
                      ⁢
                      
                        r
                        0
                        2
                      
                      ⁢
                      δ
                      ⁢
                      
                        
                      
                      ⁢
                      
                        p
                        ⁡
                        
                          (
                          
                            t
                            -
                            
                              d
                              0
                            
                          
                          )
                        
                      
                    
                  
                
              
            
          
        
        
          
            
              
              ⁢
              
                =
                
                  
                    
                      -
                      2
                    
                    ⁢
                    
                      
                    
                    ⁢
                    θ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      r
                      0
                    
                    ⁢
                    
                      p
                      0
                    
                    ⁢
                    δ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      R
                      ⁡
                      
                        (
                        t
                        )
                      
                    
                  
                  -
                  
                    N
                    ⁢
                    
                      
                    
                    ⁢
                    θ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      r
                      0
                      2
                    
                    ⁢
                    δ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      p
                      ⁡
                      
                        (
                        
                          t
                          -
                          
                            d
                            0
                          
                        
                        )
                      
                    
                  
                
              
            
          
        
      
    
    
      
        (
        11
        )
      
    
  




Substituting the equilibrium points (r0,p0) in (11), we get




  
    
      
        
          δ
          ⁢
          
            
          
          ⁢
          
            
              R
              .
            
            ⁡
            
              (
              t
              )
            
          
        
        =
        
          
            
              -
              
                
                  2
                  ⁢
                  
                    
                  
                  ⁢
                  N
                
                
                  
                    d
                    0
                    2
                  
                  ⁢
                  ρ
                  ⁢
                  
                    
                  
                  ⁢
                  C
                
              
            
            ⁢
            δ
            ⁢
            
              
            
            ⁢
            
              R
              ⁡
              
                (
                t
                )
              
            
          
          -
          
            
              
                
                  θρ
                  2
                
                ⁢
                
                  C
                  2
                
              
              N
            
            ⁢
            δ
            ⁢
            
              
            
            ⁢
            
              p
              ⁡
              
                (
                
                  t
                  -
                  
                    d
                    0
                  
                
                )
              
            
            ⁢
            
              
            
            ⁢
            or
          
        
      
    
    
      
        (
        12
        )
      
    
  
  
    
      
        
          
            
              
                
                  d
                  0
                  2
                
                ⁢
                ρ
                ⁢
                
                  
                
                ⁢
                C
              
              
                2
                ⁢
                N
              
            
            ⁢
            δ
            ⁢
            
              
            
            ⁢
            
              
                R
                .
              
              ⁡
              
                (
                t
                )
              
            
          
          =
          
            
              
                -
                δ
              
              ⁢
              
                
              
              ⁢
              
                R
                ⁡
                
                  (
                  t
                  )
                
              
            
            -
            
              
                
                  θ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    d
                    0
                    2
                  
                  ⁢
                  
                    ρ
                    3
                  
                  ⁢
                  
                    C
                    3
                  
                
                
                  2
                  ⁢
                  
                    N
                    2
                  
                
              
              ⁢
              δ
              ⁢
              
                
              
              ⁢
              
                p
                ⁡
                
                  (
                  
                    t
                    -
                    
                      d
                      0
                    
                  
                  )
                
              
            
          
        
        ⁢
        
          

        
        ⁢
        
          
            
              τδ
              ⁢
              
                
              
              ⁢
              
                
                  R
                  .
                
                ⁡
                
                  (
                  t
                  )
                
              
            
            +
            
              δ
              ⁢
              
                
              
              ⁢
              
                R
                ⁡
                
                  (
                  t
                  )
                
              
            
          
          =
          
            
              -
              k
            
            ⁢
            
              
            
            ⁢
            δ
            ⁢
            
              
            
            ⁢
            
              p
              ⁡
              
                (
                
                  t
                  -
                  
                    d
                    0
                  
                
                )
              
            
          
        
      
    
    
      
        (
        13
        )
      
    
  




where





  τ
  =
  
    
      
        
          
            d
            0
            2
          
          ⁢
          ρ
          ⁢
          
            
          
          ⁢
          C
        
        
          2
          ⁢
          
            
          
          ⁢
          N
        
      
      ⁢
      
        
      
      ⁢
      
        and
      
      ⁢
      
        
      
      ⁢
      k
    
    =
    
      
        
          θ
          ⁢
          
            
          
          ⁢
          
            d
            0
            2
          
          ⁢
          
            ρ
            3
          
          ⁢
          
            C
            3
          
        
        
          2
          ⁢
          
            
          
          ⁢
          
            N
            2
          
        
      
      .
    
  




Taking the Laplace transform of (13) we get

τs(s)+(s)=−ke−d0sP(s),  (14)

where (s) is the Laplace transform of δR(t) and e−sd0P(s) is the Laplace transform of δp(t−d0).

We obtain the open-loop transfer function of the TCP/AQM plant from (14) as




  
    
      
        
          G
          ⁡
          
            (
            s
            )
          
        
        =
        
          
            
                            ⁢
              
                (
                s
                )
              
            
            
              P
              ⁡
              
                (
                s
                )
              
            
          
          =
          
            
              
                
                  -
                  k
                
                ⁢
                
                  
                
                ⁢
                
                  e
                  
                    
                      -
                      
                        d
                        0
                      
                    
                    ⁢
                    s
                  
                
              
              
                
                  τ
                  ⁢
                  
                    
                  
                  ⁢
                  s
                
                +
                1
              
            
            .
          
        
      
    
    
      
        (
        15
        )
      
    
  




In (15), −k represents the steady-state (or static) gain of the TCP/AQM plant, d0 represents the time delay (or dead time), and r represents the time constant of the plant. The step response of the model (15) is

R(t)=−k(1−e−(t−d0)/τ).  (16)

From (16), it follows that the average residence time is




  
    
      
        
          T
          av
        
        =
        
          
            
              
                ∫
                0
                ∞
              
              ⁢
              
                
                  (
                  
                    
                      R
                      ⁡
                      
                        (
                        ∞
                        )
                      
                    
                    -
                    
                      R
                      ⁡
                      
                        (
                        t
                        )
                      
                    
                  
                  )
                
                ⁢
                
                  d
                  t
                
              
            
            
              -
              k
            
          
          =
          
            
              τ
              ⁢
              
                
              
              ⁢
              
                e
                
                  
                    d
                    0
                  
                  /
                  τ
                
              
            
            ≈
            
              
                d
                0
              
              +
              τ
            
          
        
      
    
    
      
        (
        17
        )
      
    
  




The ratio




  
    
      
        η
        =
        
          
            
              d
              0
            
            
              
                d
                0
              
              +
              τ
            
          
          =
          
            
              d
              0
            
            
              T
              av
            
          
        
      
    
    
      
        (
        18
        )
      
    
  




is called the normalized dead time and has the property 0≦η≦1. This quantity can be used to characterize the difficulty of controlling a process. It is sometimes called the controllability ratio. It has been observed that processes with small η are easy to control and that the difficulty in controlling the system increases as η increases. The parameters in the model (15) are represented graphically in FIG. 3. The parameter −k′ is simply the gain corresponding to the time distance d0+τ.

The goal of the control system is to mark/drop packets such that the aggregate rate of the active TCP connections will match the available capacity while at the same time maintain minimal queue size and high link utilization. Having established an expression for the open loop transfer function for TCP/AQM plant 210, it is now possible to consider an expression for the system as a whole.
Returning to FIG. 2 and noting again that Target-Rate “T” 226 is the control target, Actual-Rate “R” 222 is the output of the plant (actual traffic arrival rate), mark/drop probability threshold “p” 224 is the control input, TCP/AQM plant 210 given by (15) is the plant to be controlled, and C(s), the control-function means 220 is to be a Proportional-integral controller.
The Laplace expression for the case of a PI controller may be written as,




  
    
      
        
          
            C
            ⁡
            
              (
              s
              )
            
          
          =
          
            
              k
              p
            
            +
            
              
                k
                i
              
              s
            
          
        
        ,
      
    
    
      
        (
        19
        )
      
    
  




where kp and ki are, respectively, the proportional and integral gains of the controller.

The closed-loop transfer function of the TCP/AQM plant is then given as




  
    
      
        
          
            G
            AQM
          
          ⁡
          
            (
            s
            )
          
        
        =
        
          
            
              
                C
                ⁡
                
                  (
                  s
                  )
                
              
              ⁢
              
                G
                ⁡
                
                  (
                  s
                  )
                
              
            
            
              1
              +
              
                
                  C
                  ⁡
                  
                    (
                    s
                    )
                  
                
                ⁢
                
                  G
                  ⁡
                  
                    (
                    s
                    )
                  
                
              
            
          
          =
          
            
              
                
                  -
                  
                    (
                    
                      
                        kk
                        i
                      
                      +
                      
                        
                          kk
                          p
                        
                        ⁢
                        s
                      
                    
                    )
                  
                
                ⁢
                
                  e
                  
                    
                      -
                      
                        d
                        0
                      
                    
                    ⁢
                    s
                  
                
              
              
                
                  τ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    s
                    2
                  
                
                +
                s
                -
                
                  
                    (
                    
                      
                        kk
                        i
                      
                      +
                      
                        
                          kk
                          p
                        
                        ⁢
                        s
                      
                    
                    )
                  
                  ⁢
                  
                    e
                    
                      
                        -
                        
                          d
                          0
                        
                      
                      ⁢
                      s
                    
                  
                
              
            
            .
          
        
      
    
    
      
        (
        20
        )
      
    
  




In order to result in a stable system, appropriate choices must be made for the values of the parameter kp and ki in the controller for which the closed-loop system is stable. It can be shown that the stability analysis of the closed-loop system shown in FIG. 2 is quite a complicated problem due to the presence of an infinite number of roots of the characteristic equation.

Using an extension of the Hermite-Biehler Theorem applicable to quasipolynomials a detailed analytical characterization of the stabilizing feedback gains of the closed-loop TCP/AQM system may be performed as follows.
The characteristic equation of a control system with time delay can be expressed in the general form as

F(s)=d(s)+e−sTn1(s)+e−sT2n2(s)+ . . . +e−sTmnm(s),  (21)

where d(s), ni(s) for i=1, 2, . . . , m, are polynomials with real coefficients.

Characteristic equations of the form (21) are also referred to as quasipolynomials. It can be shown that the so-called Hermite-Biehler Theorem for Hurwitz polynomials does not carry over to arbitrary functions f(s) of the complex variable s. However, a suitable extension of the Hermite-Biehler Theorem can be developed to study the stability of certain classes of quasipolynomials characterized as follows.
If the following assumptions are made in (21)
A1: deg[d(s)]=n and deg[ni(s)]≦n for i=1, 2, . . . , m;
A2: 0<T1<T2< . . . <Tm,
then instead of (21), we can consider the quasipolynomial

F*(s)=esTmF(s)=esTmd(s)+es(Tm−T1)n1(s)+es(Tm−T2)n2(s)+ . . . +nm(s)  (22)

Since esTm does not have any finite roots, the roots of F(s) are identical to those of F*(s). The quasipolynomial F*(s), however, has a principal term, i.e., the coefficient of the term containing the highest powers of s and es is nonzero. It then follows that this quasipolynomial is either of the delay (i.e., retarded) or of the neutral type. From this, we can say that the stability of the system with characteristic equation (21) is equivalent to the condition that all the roots of F*(s) be in the open left-half plane. Equivalently, we will say that F*(s) is Hurwitz or stable. The theorem below gives necessary and sufficient conditions for the stability of F*(s):
Theorem 1: Let F*(s) be given by (22), and write

F*(jω)=Fr(ω)+jFi(ω)

    
    
        where Fr(ω) and Fi(ω) represent the real and imaginary parts of F*(s), respectively. Under assumptions A1 and A2, F*(s) is stable if and only if
        1) Fr(ω) and Fi(ω) have only simple real roots and these interlace
        2) {dot over (F)}i(ω0)Fr(ω0)−Fi(ω0){dot over (F)}r(ω0)>0, for some ω0 in (−∞,∞);
        where {dot over (F)}r(ω) and {dot over (F)}i(ω) denote the first derivative with respect to ω of Fr(ω) and Fi(ω), respectively.
    
    


Using this theorem the set of all PI control gains that stabilize the first-order TCP/AQM plant with time delay described by (15) may be characterized. A key step in applying Theorem 1 to check stability is to ensure that Fr(ω) and Fi(ω) have only real roots. Such a property can be ensured by using the following result:

    
    
        Theorem 2: Let M and L denote the highest powers of s and es, respectively, in F*(s). Let η be an appropriate constant such that the coefficients of the terms of highest degree in Fr(ω) and Fi(ω) do not vanish at ω=η. Then for the equations Fr(ω)=0 or Fi(ω)=0 to have only real roots, it is necessary and sufficient that in the intervals

−2lπ+η≦ω≦2lπ+π+η, l=1, 2, 3,

    
    


Fr(ω) or Fi(ω) have exactly 4lL+M real roots starting with a sufficiently large l.
It is now possible to determine analytically the region in the (ki,kp) parameter space for which the closed-loop TCP/AQM plant is stable.
Consider the system given by (20) without time delay, i.e., d0=0. In this case, the closed-loop characteristic equation of the system is given by

F(s)=τs2−(kkp−1)s−kki.  (23)

For this second-order polynomial, it is possible to determine necessary and sufficient conditions that the controller and the plant parameters have to satisfy to guarantee the stability of the delay-free closed-loop system. Solving the characteristic equation (23) for the roots, the results are:




  
    
      
        
          s
          
            1
            ,
            2
          
        
        =
        
          
            
              
                (
                
                  
                    kk
                    p
                  
                  -
                  1
                
                )
              
              ±
              
                
                  
                    
                      (
                      
                        
                          kk
                          p
                        
                        -
                        1
                      
                      )
                    
                    2
                  
                  +
                  
                    4
                    ⁢
                    
                      
                    
                    ⁢
                    τ
                    ⁢
                    
                      
                    
                    ⁢
                    
                      kk
                      i
                    
                  
                
              
            
            
              2
              ⁢
              
                
              
              ⁢
              τ
            
          
          .
        
      
    
    
      
        (
        24
        )
      
    
  




Given that τ>0 and k>0 are always true for the TCP/AQM plant, the closed-loop delay-free system is stable for the following condition

kkp−1<0, kki<0  (25)

or





  
    
      
        
          
            
              k
              p
            
            <
            
              1
              k
            
          
          =
          
            
              2
              ⁢
              
                
              
              ⁢
              
                N
                2
              
            
            
              θ
              ⁢
              
                
              
              ⁢
              
                d
                0
                2
              
              ⁢
              
                ρ
                3
              
              ⁢
              
                C
                3
              
            
          
        
        ,
        
          
            k
            i
          
          <
          0
        
        ,
      
    
    
      
        (
        26
        )
      
    
  




for a target rate of T=ρC.

It is now appropriate to consider the case where the time delay of the plant model is greater than zero, i.e., d0>0. The intent is to determine the set of all stabilizing gains for the system. The closed-loop characteristic equation of the system is then

F(s)=−(kki+kkps)e−dos+(1+τs)s.  (27)

In order to study the stability of the closed-loop system, it is necessary to determine if all the roots of (27) lie in the open left half plane. The presence of the exponential term e−d0s results in the number of roots of F(s) being infinite and this makes the stability check very difficult. Fortunately, Theorem 1 can be invoked to determine the set of all stabilizing gains kp and ki. This procedure is explained as follows.
Consider first the quasipolynomial F*(s) defined by

F*(s)=ed0sF(s)=−kki−kkps+(1+τs)sed0s.  (28)

Substituting s=jω, and using the relationship ed0jω=cos(d0ω)+j sin(d0ω), we have the following expression

Fr*(jω)=Fr(ω)+jFi(ω)

where

Fr(ω)=−kki−ω sin(d0ω)−τω2 cos(d0ω)

Fi(ω)=ω[−kkp+cos(d0ω)−τω sin(d0ω)]

It can be seen from the above expressions that the controller parameters ki and kp only affect, respectively, the real part and imaginary part of F*(jω). Thus, ki, kp appear affinely in Fr(ω), Fi(ω), respectively. Therefore, by sweeping through all real kp and solving a stabilization problem at each stage, the set of all stabilizing (kp,ki) can be determined for the given plant.
It is necessary to define the range of kp values over which the sweeping needs to carried out for the TCP/AQM system. For convenience of analysis, make the following change of variables, z=d0ω. Then, the real and imaginary parts of F*(jω) may be rewritten as

Fr(z)=−k[ki+a(z)]  (29)





  
    
      
        
          
            
              F
              i
            
            ⁡
            
              (
              z
              )
            
          
          =
          
            
              z
              
                d
                0
              
            
            ⁡
            
              [
              
                
                  -
                  
                    kk
                    p
                  
                
                +
                
                  cos
                  ⁡
                  
                    (
                    z
                    )
                  
                
                -
                
                  
                    τ
                    
                      d
                      0
                    
                  
                  ⁢
                  z
                  ⁢
                  
                    
                  
                  ⁢
                  
                    sin
                    ⁡
                    
                      (
                      z
                      )
                    
                  
                
              
              ]
            
          
        
        ,
      
    
    
      
        (
        30
        )
      
    
  




where





  
    
      
        
          a
          ⁡
          
            (
            z
            )
          
        
        ⁢
        
          =
          .
        
        ⁢
        
          
            
              z
              
                kd
                0
              
            
            ⁡
            
              [
              
                
                  sin
                  ⁡
                  
                    (
                    z
                    )
                  
                
                +
                
                  
                    τ
                    
                      d
                      0
                    
                  
                  ⁢
                  z
                  ⁢
                  
                    
                  
                  ⁢
                  
                    cos
                    ⁡
                    
                      (
                      z
                      )
                    
                  
                
              
              ]
            
          
          .
        
      
    
    
      
        (
        31
        )
      
    
  




Theorem 1 requires that two conditions be checked to ensure the stability of the quasipolynomial F*(s).
First a check if

E(ω0)={dot over (F)}i(ω0)Fr(ω0)−Fi(ω0){dot over (F)}r(ω0)>0

for some ω0 in (−∞,∞).

Taking ω0=z0=0, for instance, gives Fr(z0)=−kki and Fi(z0)=0.
Also obtained is

{dot over (F)}r(z0)=0

and





  
    
      
        
          F
          .
        
        i
      
      ⁡
      
        (
        z
        )
      
    
    =
    
      
        
          -
          
            kk
            p
          
        
        
          d
          0
        
      
      +
      
        
          (
          
            
              
                d
                0
              
              -
              
                τ
                ⁢
                
                  
                
                ⁢
                
                  z
                  2
                
              
            
            
              d
              0
              2
            
          
          )
        
        ⁢
        
          cos
          ⁡
          
            (
            z
            )
          
        
      
      -
      
        
          (
          
            
              
                2
                ⁢
                
                  
                
                ⁢
                τ
              
              +
              
                D
                0
              
            
            
              d
              0
              2
            
          
          )
        
        ⁢
        z
        ⁢
        
          
        
        ⁢
        
          sin
          ⁡
          
            (
            z
            )
          
        
      
    
  
  ,
  
    

  
  ⁢
  
    
      ⇒
      
        
          
            F
            .
          
          i
        
        ⁡
        
          (
          
            z
            0
          
          )
        
      
    
    =
    
      
        
          
            -
            
              kk
              p
            
          
          +
          1
        
        
          d
          0
        
      
      .
    
  




From these





  
    E
    ⁡
    
      (
      
        z
        0
      
      )
    
  
  =
  
    
      (
      
        
          
            -
            
              kk
              p
            
          
          +
          1
        
        
          d
          0
        
      
      )
    
    ⁢
    
      
        (
        
          -
          
            kk
            i
          
        
        )
      
      .
    
  




Given that for the TCP/AQM plant the conditions τ>0 and k>0 hold true, it will require Fr(z0)=−kki>0 (i.e., ki<0) and




  
    
      
        
          F
          .
        
        i
      
      ⁡
      
        (
        
          z
          0
        
        )
      
    
    =
    
      
        (
        
          
            
              -
              
                
              
              ⁢
              
                kk
                
                  
                    
                  
                  ⁢
                  p
                
              
            
            +
            1
          
          
            
              
            
            ⁢
            
              d
              
                
                  
                
                ⁢
                0
              
            
          
        
        )
      
      >
      
        0
        ⁢
        
          
        
        ⁢
        
          (
          
            
              
                i.e.,
              
              ⁢
              
                
              
              ⁢
              
                k
                p
              
            
            <
            
              1
              k
            
          
          )
        
      
    
  
  ,




for E(z0)>0. These results are consistent with those given in (25) and (26).

The second check is a check of the interlacing of the roots of Fr(z) and Fi(z). The roots of the imaginary part, i.e., Fi(z)=0 can be determined from (30).
This gives us




  
    
      F
      i
    
    ⁡
    
      (
      z
      )
    
  
  =
  
    
      
        z
        
          d
          0
        
      
      ⁡
      
        [
        
          
            -
            
              kk
              p
            
          
          +
          
            cos
            ⁡
            
              (
              z
              )
            
          
          -
          
            
              τ
              
                d
                0
              
            
            ⁢
            z
            ⁢
            
              
            
            ⁢
            
              sin
              ⁡
              
                (
                z
                )
              
            
          
        
        ]
      
    
    =
    0.
  




It can be seen from this equation that z=0 is a root of Fi(z), or




  
    
      
        
          
            -
            
              kk
              p
            
          
          +
          
            cos
            ⁡
            
              (
              z
              )
            
          
          -
          
            
              τ
              
                d
                0
              
            
            ⁢
            z
            ⁢
            
              
            
            ⁢
            sin
            ⁢
            
              
            
            ⁢
            
              (
              z
              )
            
          
        
        =
        0
      
    
    
      
        (
        32
        )
      
    
  




One root of the imaginary part Fi(z) is z0=0 but the other roots are difficult to find and require an analytical solution of (32). However, a plot of the two terms in (32),




  (
  
    
      i
      .
      e
      .
    
    ,
    
      
        
          
            -
            
              kk
              p
            
          
          +
          
            cos
            ⁡
            
              (
              z
              )
            
          
        
        
          sin
          ⁡
          
            (
            z
            )
          
        
      
      ⁢
      
        
      
      ⁢
      and
      ⁢
      
        
      
      ⁢
      
        τ
        
          d
          0
        
      
      ⁢
      z
    
  
  )




can be used to understand the nature of the real solution.

Consider a plot of these two terms for arbitrarily selected values of k, τ and d0 (the general nature of the plots, however, do not change with the use of other values). Four different cases of the solution are examined:




  
    
      k
      p
    
    >
    
      1
      k
    
  
  ,
  
    
      -
      
        1
        k
      
    
    <
    
      k
      p
    
    <
    
      1
      k
    
  
  ,




In each case, denote the positive real roots of (32) by zj, j=1, 2, 3, . . . , arranged in increasing order of magnitude.

Case 1:




  
    k
    p
  
  >
  
    
      1
      k
    
    .
  




For this case, plot the two terms in (32)





  
    
      
        -
        
          kk
          p
        
      
      +
      
        cos
        ⁡
        
          (
          z
          )
        
      
    
    
      sin
      ⁡
      
        (
        z
        )
      
    
  
  ⁢
  
    
  
  ⁢
  and
  ⁢
  
    
  
  ⁢
  
    τ
    
      d
      0
    
  
  ⁢
  z




as shown in FIG. 4.

Case 2:




  
    -
    
      1
      k
    
  
  <
  
    k
    p
  
  <
  
    
      1
      k
    
    .
  




For this case, plot the two terms in (32)





  
    
      
        -
        
          kk
          p
        
      
      +
      
        cos
        ⁡
        
          (
          z
          )
        
      
    
    
      sin
      ⁡
      
        (
        z
        )
      
    
  
  ⁢
  
    
  
  ⁢
  and
  ⁢
  
    
  
  ⁢
  
    τ
    
      d
      0
    
  
  ⁢
  z




as shown in FIG. 5.

Case 3:




  
    k
    p
  
  =
  
    -
    
      
        1
        k
      
      .
    
  




For this case, plot the two terms in (32) 1+cos(z) and





  
    τ
    
      d
      0
    
  
  ⁢
  z
  ⁢
  
    
  
  ⁢
  
    sin
    ⁡
    
      (
      z
      )
    
  




to obtain FIG. 6.

Case 4:




  
    k
    p
  
  <
  
    -
    
      
        1
        k
      
      .
    
  




Here, plot the two terms in (32)





  
    
      
        -
        
          kk
          p
        
      
      +
      
        cos
        ⁡
        
          (
          z
          )
        
      
    
    
      sin
      ⁡
      
        (
        z
        )
      
    
  
  ⁢
  
    
  
  ⁢
  and
  ⁢
  
    
  
  ⁢
  
    τ
    
      d
      0
    
  
  ⁢
  z




for two sub-cases





  
    k
    L
  
  <
  
    k
    p
  
  <
  
    -
    
      1
      k
    
  




and kp≦kL.

FIG. 7 corresponds to the case where




  
    
      k
      L
    
    <
    
      k
      p
    
    <
    
      -
      
        1
        k
      
    
  
  ,




and kL is the smallest (negative) number so that the plot of





  
    
      
        -
        
          kk
          p
        
      
      +
      
        cos
        ⁡
        
          (
          z
          )
        
      
    
    
      sin
      ⁡
      
        (
        z
        )
      
    
  
  ⁢
  
    
  




intersects the straight line





  
    τ
    
      d
      0
    
  
  ⁢
  z




twice in the interval (0,π).

FIG. 8 corresponds to the case where kp≦kL and the plot of




  
    
      
        -
        
          kk
          p
        
      
      +
      
        cos
        ⁡
        
          (
          z
          )
        
      
    
    
      sin
      ⁡
      
        (
        z
        )
      
    
  
  ⁢
  
    
  




does not intersect the straight line





  
    τ
    
      d
      0
    
  
  ⁢
  z




twice in the interval (0,π).

Now use Theorem 2 to check if Fi(z) has only real roots. Substituting s1=d0s in the expression for F*(s) (in (28)), it can now be seen that the new quasipolynomial in s1 gives us M=2 and L=1.
Choose




  η
  =
  
    π
    4
  




to satisfy the requirement that Fi(z) does not vanish at ω=η, i.e., sin(η)·0. Some important observations can be made. From FIGS. 5, 6, and 7, it can be seen that for





  
    
      k
      L
    
    <
    
      k
      p
    
    <
    
      1
      k
    
  
  ,




Fi(z) has 3 real roots in the interval





  
    
      [
      
        0
        ,
        
          
            2
            ⁢
            
              
            
            ⁢
            π
          
          -
          
            π
            4
          
        
      
      ]
    
    =
    
      [
      
        0
        ,
        
          
            7
            ⁢
            
              
            
            ⁢
            π
          
          4
        
      
      ]
    
  
  ,




including a root at the origin z0=0.

Notice that Fi(z) is an odd function of z. It therefore follows that in the interval




  
    [
    
      
        -
        
          
            7
            ⁢
            
              
            
            ⁢
            π
          
          4
        
      
      ,
      
        
          7
          ⁢
          
            
          
          ⁢
          π
        
        4
      
    
    ]
  
  ,




Fi(z) will have 5 real roots.

Also observe from FIGS. 5, 6, and 7 that Fi(z) has one real root in the interval




  
    (
    
      
        
          7
          ⁢
          
            
          
          ⁢
          π
        
        4
      
      ,
      
        
          9
          ⁢
          
            
          
          ⁢
          π
        
        6
      
    
    ]
  
  .




Thus, Fi(z) has 4L+M=6 real roots in the interval





  
    [
    
      
        
          
            -
            2
          
          ⁢
          
            
          
          ⁢
          π
        
        +
        
          π
          4
        
      
      ,
      
        
          2
          ⁢
          
            
          
          ⁢
          π
        
        +
        
          π
          4
        
      
    
    ]
  
  .




Furthermore, we see from FIGS. 5, 6, and 7 that Fi(z) has 2 real roots in each of the intervals




  
    [
    
      
        
          2
          ⁢
          
            
          
          ⁢
          l
          ⁢
          
            
          
          ⁢
          π
        
        +
        
          π
          4
        
      
      ,
      
        
          2
          ⁢
          
            (
            
              l
              +
              1
            
            )
          
          ⁢
          π
        
        +
        
          π
          4
        
      
    
    ]
  
  ⁢
  
    
  
  ⁢
  
    and
    ⁢
    
      
    
    [
    
      
        
          
            -
            2
          
          ⁢
          
            (
            
              l
              +
              1
            
            )
          
          ⁢
          π
        
        +
        
          π
          4
        
      
      ,
      
        
          
            -
            2
          
          ⁢
          
            
          
          ⁢
          l
          ⁢
          
            
          
          ⁢
          π
        
        +
        
          π
          4
        
      
    
    ]
  




for l=1, 2, 3, . . . . Hence, it follows that Fi(z) has exactly 4lL+M real roots in the interval





  
    [
    
      
        
          
            -
            2
          
          ⁢
          
            
          
          ⁢
          l
          ⁢
          
            
          
          ⁢
          π
        
        +
        
          π
          4
        
      
      ,
      
        
          2
          ⁢
          
            
          
          ⁢
          l
          ⁢
          
            
          
          ⁢
          π
        
        +
        
          π
          4
        
      
    
    ]
  
  ,




for l=1, 2, 3, . . . , which by Theorem 2 implies that Fi(z) has only real roots for





  
    k
    L
  
  <
  
    k
    p
  
  <
  
    
      1
      k
    
    .
  




Note that the cases




  
    k
    p
  
  >
  
    
      1
      k
    
    ⁢
    
      
    
    ⁢
    and
    ⁢
    
      
    
    ⁢
    
      k
      p
    
  
  ≤
  
    k
    L
  




corresponding to FIG. 4 and FIG. 8 need not be considered further in the discussion since using Theorem 2, it can easily be argued that in these cases, all roots of Fi(z) will not be real, thereby ruling out closed-loop stability.

Now it is possible to determine the minimum bound kL on the allowable value of kp. From the definition of kL, it follows that if kp=kL, the plot of




  
    
      -
      
        kk
        p
      
    
    +
    
      cos
      ⁡
      
        (
        z
        )
      
    
  
  
    sin
    ⁡
    
      (
      z
      )
    
  




intersects the straight line





  
    τ
    
      d
      0
    
  
  ⁢
  z




only once in the interval (0,π). Denote as α1 the value of z for which this intersection occurs.

Following this, it is apparent that for z=α1ε(0,π)




  
    
      
        
          
            
              -
              
                kk
                L
              
            
            +
            
              cos
              ⁡
              
                (
                
                  α
                  1
                
                )
              
            
          
          
            sin
            ⁡
            
              (
              
                α
                1
              
              )
            
          
        
        =
        
          
            τ
            
              d
              0
            
          
          ⁢
          
            α
            1
          
        
      
    
    
      
        (
        33
        )
      
    
  




It is also known that for z=α1, the straight line




  
    τ
    
      d
      0
    
  
  ⁢
  z




is tangent to the plot of





  
    
      
        -
        
          kk
          L
        
      
      +
      
        cos
        ⁡
        
          (
          z
          )
        
      
    
    
      sin
      ⁡
      
        (
        z
        )
      
    
  
  .




Thus




  
    
      
        d
        
          d
          z
        
      
      ⁡
      
        [
        
          
            
              -
              
                kk
                L
              
            
            +
            
              cos
              ⁡
              
                (
                z
                )
              
            
          
          
            sin
            ⁡
            
              (
              z
              )
            
          
        
        ]
      
    
    
      z
      =
      
        a
        1
      
    
  
  =
  
    
      
        τ
        
          d
          0
        
      
      ⁢
      
        
      
      ⁢
      
        
          
            
              kk
              L
            
            ⁢
            
              cos
              ⁡
              
                (
                
                  α
                  1
                
                )
              
            
          
          -
          1
        
        
          
            sin
            2
          
          ⁡
          
            (
            
              α
              1
            
            )
          
        
      
    
    =
    
      τ
      
        d
        0
      
    
  




which gives





  
    
      
        
          
            
              kk
              L
            
            ⁢
            
              cos
              ⁡
              
                (
                
                  α
                  1
                
                )
              
            
          
          -
          1
        
        =
        
          
            τ
            
              d
              0
            
          
          ⁢
          
            
              
                sin
                2
              
              ⁡
              
                (
                
                  α
                  1
                
                )
              
            
            .
          
        
      
    
    
      
        (
        34
        )
      
    
  




By eliminating kkL between equations (33) and (34) (and using the relationship cos2 (α1)=1−sin2 (α1)), it is apparent that α1ε(0,π) can be obtained as a solution of the equation




  
    
      
        
          tan
          ⁡
          
            (
            
              α
              1
            
            )
          
        
        =
        
          
            -
            
              τ
              
                τ
                +
                
                  d
                  0
                
              
            
          
          ⁢
          
            
              α
              1
            
            .
          
        
      
    
    
      
        (
        35
        )
      
    
  




Once α1 is determined, the parameter kL can be obtained from (33), i.e.,




  
    k
    L
  
  =
  
    -
    
      
        
          1
          k
        
        ⁡
        
          [
          
            
              
                τ
                
                  d
                  0
                
              
              ⁢
              
                a
                1
              
              ⁢
              
                sin
                ⁡
                
                  (
                  
                    α
                    1
                  
                  )
                
              
            
            -
            
              cos
              ⁡
              
                (
                
                  α
                  1
                
                )
              
            
          
          ]
        
      
      .
    
  




The real part Fr(z) can now be evaluated at the roots of the imaginary part Fi(z).
For z0=0, it was previously obtained that Fr(z0)=−k[ki+a(0)]=−kki. For zj, j=1, 2, 3, . . . , (29) may be used to obtain the following

Fr(zj)=−k[ki+a(zj)].  (36)

From the previous results, Fr(z0)=−kki>0 or ki<0. Then interlacing of the roots of Fr(z) and Fi(z) is equivalent to Fr(z1)<0, Fr(z2)>0, Fr(z3)<0, and so on.
Using this fact, the result Fr(z0)=−k[ki+a(0)]>0 and Equation (36), the following obtains




  
    
      
        
          
            
              
                
                  
                    F
                    r
                  
                  ⁡
                  
                    (
                    
                      z
                      0
                    
                    )
                  
                
                >
                0
              
              ⁢
              
              ⇒
              
                
                  k
                  i
                
                <
                0
              
            
          
        
        
          
            
              
                
                  
                    
                      F
                      r
                    
                    ⁡
                    
                      (
                      
                        z
                        1
                      
                      )
                    
                  
                  <
                  0
                
                ⁢
                
                ⇒
                
                  
                    k
                    i
                  
                  >
                  
                    -
                    
                      a
                      ⁡
                      
                        (
                        
                          z
                          1
                        
                        )
                      
                    
                  
                
              
              =
              
                a
                1
              
            
          
        
        
          
            
              
                
                  
                    
                      F
                      r
                    
                    ⁡
                    
                      (
                      
                        z
                        2
                      
                      )
                    
                  
                  >
                  0
                
                ⁢
                
                ⇒
                
                  
                    k
                    i
                  
                  <
                  
                    -
                    
                      a
                      ⁡
                      
                        (
                        
                          z
                          2
                        
                        )
                      
                    
                  
                
              
              =
              
                a
                2
              
            
          
        
        
          
            
              
                
                  
                    
                      F
                      r
                    
                    ⁡
                    
                      (
                      
                        z
                        3
                      
                      )
                    
                  
                  <
                  0
                
                ⁢
                
                ⇒
                
                  
                    k
                    i
                  
                  >
                  
                    -
                    
                      a
                      ⁡
                      
                        (
                        
                          z
                          3
                        
                        )
                      
                    
                  
                
              
              =
              
                a
                3
              
            
          
        
        
          
            
              
                
                  
                    
                      F
                      r
                    
                    ⁡
                    
                      (
                      
                        z
                        4
                      
                      )
                    
                  
                  >
                  0
                
                ⁢
                
                ⇒
                
                  
                    k
                    i
                  
                  <
                  
                    -
                    
                      a
                      ⁡
                      
                        (
                        
                          z
                          4
                        
                        )
                      
                    
                  
                
              
              =
              
                a
                4
              
            
          
        
        
          
            ⋮
          
        
      
    
    
      
        (
        37
        )
      
    
  




where

aj{dot over (=)}a(zj), j=1, 2, 3,  (38)

From the set of inequalities (37), it can clearly be seen that it is required that the odd bounds (i.e., a1, a3, etc.) to be strictly negative in order to obtain a feasible range for the controller parameter ki.
Now it is necessary to examine the behavior of the parameter aj, j=1, 3, 5, . . . , for kp in the range




  
    (
    
      
        k
        L
      
      ,
      
        1
        k
      
    
    )
  
  .




The following observation will be used in the analysis.

    
    
        Observation 1: It may be seen from FIGS. 5 to 7 that for
    
    






  
    
      k
      p
    
    ∈
    
      (
      
        
          k
          L
        
        ,
        
          1
          k
        
      
      )
    
  
  ,




    
    
        the odd roots of (32), i.e., zj, j=1, 3, 5, . . . approach (j−1)π as j increases. So in the limit of odd values of j, it obtains that
    
    






  
    
      lim
      
        j
        ->
        ∞
      
    
    ⁢
    
      
    
    ⁢
    
      cos
      ⁡
      
        (
        
          z
          j
        
        )
      
    
  
  =
  1.




    
    
        Also, since the cosine function monotonically decreases between (j−1)π and jπ for odd values of j, in view of the previous observation, it obtains that

cos(z1)<cos(z3)<cos(z5)<

    
    


From (31) and (38)




  
    
      -
      
        kd
        0
      
    
    ⁢
    
      a
      j
    
  
  =
  
    
      
        z
        j
      
      ⁢
      
        sin
        ⁡
        
          (
          
            z
            j
          
          )
        
      
    
    +
    
      
        τ
        
          d
          0
        
      
      ⁢
      
        z
        j
        2
      
      ⁢
      
        cos
        ⁡
        
          (
          
            z
            j
          
          )
        
      
    
  




Using




  
    
      z
      j
    
    ⁢
    
      sin
      ⁡
      
        (
        
          z
          j
        
        )
      
    
  
  =
  
    
      
        d
        0
      
      τ
    
    ⁡
    
      [
      
        
          -
          
            kk
            p
          
        
        +
        
          cos
          ⁡
          
            (
            
              z
              j
            
            )
          
        
      
      ]
    
  




from (32) it obtains that





  
    
      
        
          
            
              
                
                  -
                  k
                
                ⁢
                
                  
                
                ⁢
                τ
                ⁢
                
                  
                
                ⁢
                
                  a
                  j
                
              
              =
              
                
                  -
                  
                    kk
                    p
                  
                
                +
                
                  cos
                  ⁡
                  
                    (
                    
                      z
                      j
                    
                    )
                  
                
                +
                
                  
                    
                      τ
                      2
                    
                    
                      d
                      0
                      2
                    
                  
                  ⁢
                  
                    z
                    j
                    2
                  
                  ⁢
                  
                    cos
                    ⁡
                    
                      (
                      
                        z
                        j
                      
                      )
                    
                  
                
              
            
          
        
        
          
            
              
                
                  
                    -
                    k
                  
                  ⁢
                  
                    
                  
                  ⁢
                  τ
                  ⁢
                  
                    
                  
                  ⁢
                  
                    a
                    j
                  
                
                +
                
                  kk
                  p
                
              
              =
              
                
                  [
                  
                    1
                    +
                    
                      
                        
                          τ
                          2
                        
                        
                          d
                          0
                          2
                        
                      
                      ⁢
                      
                        z
                        j
                        2
                      
                    
                  
                  ]
                
                ⁢
                
                  cos
                  ⁡
                  
                    (
                    
                      z
                      j
                    
                    )
                  
                
              
            
          
        
      
    
    
      
        (
        39
        )
      
    
  




Recalling that the zj, j=1, 3, 5, . . . , are arranged in increasing order of magnitude, i.e., zi<zj+j+2. Thus, for odd values of j, it obtains that




  
    
      
        0
        <
        
          1
          +
          
            
              
                τ
                2
              
              
                d
                0
                2
              
            
            ⁢
            
              z
              j
              2
            
          
        
        <
        
          1
          +
          
            
              
                τ
                2
              
              
                d
                0
                2
              
            
            ⁢
            
              
                z
                
                  j
                  +
                  2
                
                2
              
              .
            
          
        
      
    
    
      
        (
        40
        )
      
    
  




From Observation 1, it is known that

cos(zj)<cos(zj+2)

Given (40), the following relationship holds true only if cos(zj)>0, j=1, 3, 5, . . . ,




  
    
      [
      
        1
        +
        
          
            
              τ
              2
            
            
              d
              0
              2
            
          
          ⁢
          
            z
            j
            2
          
        
      
      ]
    
    ⁢
    
      
        cos
        ⁡
        
          (
          z
          )
        
      
      j
    
  
  <
  
    
      [
      
        1
        +
        
          
            
              τ
              2
            
            
              d
              0
              2
            
          
          ⁢
          
            z
            
              j
              +
              2
            
            2
          
        
      
      ]
    
    ⁢
    
      cos
      ⁡
      
        (
        
          z
          
            j
            +
            2
          
        
        )
      
    
  




Now using (39), it obtains that

−kτaj+kkp<kτaj+2+kkpaj>aj+2  (41)

Thus, for




  
    
      k
      p
    
    ∈
    
      (
      
        
          k
          L
        
        ,
        
          1
          k
        
      
      )
    
  
  ,




the condition (37) reduces to





  
    
      
        
          
            max
            
              
                j
                =
                1
              
              ,
              3
              ,
              5
              ,
              ...
            
          
          ⁢
          
            {
            
              a
              j
            
            }
          
        
        <
        
          k
          i
        
        <
        0.
      
    
    
      
        (
        42
        )
      
    
  




Note that the interlacing property and the fact that Fi(z) has only real roots can be used in Theorem 2 to establish that for




  
    
      k
      p
    
    ∈
    
      (
      
        
          k
          L
        
        ,
        
          1
          k
        
      
      )
    
  
  ,




Fr(z) has only real roots. At this point, it can be seen that all the conditions of Theorem 1 are satisfied.

Now the following important observation may be made:

    
    
        Observation 2: For a fixed value of
    
    






  
    
      k
      p
    
    ∈
    
      (
      
        
          k
          L
        
        ,
        
          1
          k
        
      
      )
    
  
  ,




it is possible to find the range of

    
    
        ki as given in (42) such that the closed-loop TCP/AQM system is stable. However, recalling that aj>aj+2, j=1, 3, 5, . . . , if cos(zj)>0. Thus, if cos(z1)>0, then the bound a1 is the maximum of all the odd bounds, and the range of stabilizing ki is given by a1<ki<0. If on the contrary it obtains that cos(z1)<0 and cos(z3)>0, then the bound a3 is larger than all the other bounds aj, j=5, 7, 9, . . . but may or may be larger than a1. In this case the range of stabilizing ki is given by max{a1,a3}<ki<0.
    
    


Using Observation 2, it is possible to summarize the algorithm for determining the PI controller parameters as shown in FIG. 9. The process initiates, at step 400, by choosing an initial kp from the range established by equation (26) and for the parameter kL for which a range of ki values is desired. A counter j is initialized in order to track odd number roots. In step 410, the jth root zj is determined using the system parameters and the chosen kp. In step 420 the aj value associated with the jth root is calculated. In step 430 there is an assessment of whether the jth root zj results in a positive number. If the jth root zj does not result in a positive number, the counter is incremented to point to the next odd number root at step 440, and the method is repeated at step 410. Alternatively, if the jth root zj results in a positive number, then the lower bound for ki is determined as the maximum of the aj values determined up to this point at step 450, and the sequence of steps ends.
As an example illustrating the use of the algorithm, consider the sample problem of characterizing the stabilizing PI controller gains for a TCP/AQM system with nominal operating parameters of T=ρC=45 Mbps, N=225, and d0=55 msec. We also select a small nominal packet size of 64 bytes which we use only for the computation of the stability region. A smaller packet size is selected for this purpose because of the fluid-flow model used in the TCP/AQM control problem. Note that in deriving the control parameters, T is the control target and the TCP parameter θ=2⁄3. Following the procedure described in FIG. 9, compute α1ε(0,π) satisfying (35) to obtain α1=2.059. From this, it is possible to obtain the range of kp gains as −1.3468×10−6<kp<6.7705×10−8. Sweeping over this range of kp gains it is possible to find the range of ki gains. The stabilizing region of the gains in the (kp,ki) plane for this sample system is shown as region 500 in FIG. 10.
As a simple assessment of the region of gains obtained, the step response of a pair of gains from within the region may be examined. Set the controller parameters kp and ki (to values inside the stabilizing region) as −6×10−7 and −1×10−6, respectively. With these, the step response of the closed-loop TCP/AQM system may be obtained and plotted. The results are shown in FIG. 11. It can be seen from this figure that the closed-loop system is stable and the system output R(t) tracks the step input signal T(t).
Choosing which pair of gains is most appropriate for a given system is a decision of the system engineer. Proportional control reduces error, but high gains may destabilize the system. Integral control improves the steady-state error and provides robustness with respect to parameter variations. Having available a region over which all gain pairs are stable provides the advantage to the system engineer of being able to emphasize whichever aspect of controller performance is most desired, while at the same time ensuring that the system performance remains within bounds.
Once the stabilizing PI controller gains have been determined (based on a TCP/AQM model using small nominal packet size, e.g., 64 byte packets), the PI control algorithm can easily be constructed. The proportional (P) and integral (I) terms in the PI controller output (19) are given, respectively, in the s-domain as

Pp(s)=Cp(s)·E(s)=kp·E(s)

and





  
    
      
        P
        i
      
      ⁡
      
        (
        s
        )
      
    
    =
    
      
        
          
            C
            i
          
          ⁡
          
            (
            s
            )
          
        
        ·
        
          E
          ⁡
          
            (
            s
            )
          
        
      
      =
      
        
          
            k
            1
          
          s
        
        ·
        
          E
          ⁡
          
            (
            s
            )
          
        
      
    
  
  ,




where E(s) is the Laplace transform of the control error e(t)=T−R(t).

Denote tm, m=1, 2, 3, . . . as the sampling instants (i.e., the times the controller reads the input values). The P-term in the controller output can be written in the discrete time domain as

pp(tm)=kpe(tm)

In the continuous-time domain, the I-term is given as




  
    
      p
      i
    
    ⁡
    
      (
      t
      )
    
  
  =
  
    
      k
      i
    
    ⁢
    
      
        ∫
        0
        t
      
      ⁢
      
        
          e
          ⁡
          
            (
            h
            )
          
        
        ⁢
        
          
        
        ⁢
        
          
            d
            h
          
          .
        
      
    
  




It follows that





  
    
      d
      
        
          p
          i
        
        ⁡
        
          (
          t
          )
        
      
    
    
      d
      t
    
  
  =
  
    
      k
      i
    
    ⁢
    
      
        e
        ⁡
        
          (
          t
          )
        
      
      .
    
  




If this derivative is approximated by the backward difference, it is possible to obtain the following discrete-time approximation




  
    
      
        
          
            p
            i
          
          ⁡
          
            (
            
              t
              m
            
            )
          
        
        -
        
          
            p
            i
          
          ⁡
          
            (
            
              t
              
                m
                -
                1
              
            
            )
          
        
      
      
        Δ
        ⁢
        
          
        
        ⁢
        t
      
    
    =
    
      
        k
        i
      
      ⁢
      
        e
        ⁡
        
          (
          
            t
            m
          
          )
        
      
    
  
  ,




where Δt=tm−tm−1, m=1, 2, 3, . . . , is the sampling interval.

This leads to the following recursive equation for the I-term

pi(tm)=pi(tm−1)+kiΔte(tm)

A flow chart for the control algorithm and the packet mark/drop routine are shown in FIG. 12 and FIG. 13. In the figures, the discrete sampling instants are simply represented as n=0Δt, 1Δt, 2Δt, 3Δt, . . . . Note that no packet marking/dropping takes place when R(t)≦TL in FIG. 13. The parameter TL rate threshold is simply a rate threshold lower than or equal to the control target T during which no packets are marked/dropped even though the mark/drop probability p(t) can be greater than zero. This simple mechanism helps to further minimize oscillations in link utilization and keep the utilization around the control target. Given that the models used in the design of the control system are approximations of the real TCP/AQM plant (i.e., neglect TCP slow start, timeouts), additional mechanisms may be useful to enhance the performance.
It is also important to note that rate measurements are usually noisy and as a result will require some low pass filtering. A simple exponentially weighted moving average (EWMA) filter, for example, can be used for this. The EWMA filter can be expressed as

{circumflex over (R)}(tm)=(1−β){circumflex over (R)}(tm−1)+βR(tm), 0<β<1.

As shown in FIG. 12 the process initiates, at step 600, at discrete time n=0, by initializing certain parameters. The timer is set to Δt time units, and mark/drop probability p(0), Rate signal R(0), and integral probability pi(0) are set to initial values. The initial mark/drop probability and integral probability are used in the mark/drop routine until further samples are available. At step 610, the timer is reset to Δt to advance to the next discrete time interval. Then at step 620 the data arrival rate R is measured.
At step 630 there is an optional step of pre-filtering the data arrival rate as described previously.
At step 640 the assigned capacity is determined. Typically this is a given for a particular network configuration, but may vary as circumstances warrant, for example if the network is modified. At step 650 an error signal e(n) is calculated as the difference between the assigned capacity and the measured (and possibly filtered) data arrival rate. The error signal is normalized by the nominal packet size x so that the measurements R and T will be consistent with the packet size x used in the computations of the stability gains.
At step 660, a current mark/drop probability p(n) is calculated.
The mark/drop probability calculated at step 660 may be used as the mark/drop probability until the next measurement time as tracked by the timer, at which point a new mark/drop probability will be calculated. In addition, the filtered arrival rate R′(n) if filtering is used is stored to be used at the next measurement time.
The process may then loop back to step 610 upon timer expiration for another iteration of the process.
FIG. 13 presents a flowchart of a random number generator mark/drop routine. The decision to accept or mark/drop an incoming packet in the routine is based upon the outcome of a comparison of a randomly generated number prε[0,1] and the mark/drop probability p(n). The procedure can be described as follows.
Upon a packet arrival at the queue, at step 700 a determination is made whether the arrival rate is less than a no-mark/drop rate threshold. If the rate is less than or equal to the rate threshold, then the incoming packet is queued at step 740. If the rate is not less than or equal to the rate threshold, then the routine moves to step 710 where a random number prε[0,1] is generated. At step 720 a determination of whether the random number pr is less than or equal to the calculated mark/drop probability p(n) is made.
If the probability pr is less than or equal, then the packet is marked/dropped at step 730. If not, the packet is queued at step 740.
FIG. 14 provides a high-level description of the overall proportional-integral control scheme according to an embodiment of the invention. At module 800 TCP/AQM parameters representative of the specific data network to be controlled are obtained. At module 810 these parameters are used to calculate a regime of stable gain pairs for proportional gain kp and integral gain ki for a proportional-integral controller. At module 820 a particular gain pair is selected from the regime calculated in the previous step. At module 850, an ongoing mark/drop probability calculation occurs, using the previously selected gain pairs from module 820, and using a measured data arrival rate from module 830 and an assigned capacity from module 840. A packet arrival recognized by module 860 is directed to a packet mark/drop routine realized in module 870. The module 870 utilizes the current mark/drop probability p(n) calculated by module 850 to make a determination to mark/drop or queue the packet.
While the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications, and variations will be apparent to those skilled in the art in light of the foregoing description. Accordingly, it is intended to embrace all such alternatives, modifications, and variations as fall within the spirit and broad scope of the appended claims.

## Claims

1. A method for controlling a data flow in a data network, the method comprising:
selecting a stable gain combination of a proportional controller gain kp and an integral controller gain ki;
measuring a data arrival rate R(n) at time n;
calculating an error signal e(n), according to the relation


e(n)=(T(n)−R(n))/x, 

where T(n) is an assigned capacity at time n and x (x≧1) is a parameter representing a nominal packet size used in the computation of kp and ki;

computing a mark/drop probability p(n) according to the relation


pp(n)=min{max[kp·e(n),0],pmax}



p1(n)=min{max[p1(n−1)+ki·Δt·e(n),0],pmax}



p(n)=min{max[pp(n)+pi(n),0],pmax}

where Δt is the time interval between a (n−1)th and the nth computation, and 0<pmax≦1; and

executing a packet mark/drop routine, thereby producing at least one marked packed or at least one dropped packet, based upon the calculated mark/drop probability p(n).

2. The method of claim 1 wherein the step of selecting a stable gain combination of a proportional controller gain kp and an integral controller gain ki is preceded by the step of;
pre-calculating a range within which all gain pairs ki and kp result in a stable gain combination.

3. The method of claim 2 wherein the step of pre-calculating a range within which all gain pairs ki and kp result in a stable gain combination for a data network, is determined according to the method of:
(1) obtaining for said network a value for said network a set of parameters k, d0, and τ,
where k is a steady-state gain of said network,
d0 is a time delay of said network, and
τ is a time constant of said network;

(2) choosing a kp in the range





  
    -
    
      
        1
        k
      
      ⁡
      
        [
        
          
            
              τ
              
                d
                0
              
            
            ⁢
            
              α
              1
            
            ⁢
            
              sin
              ⁡
              
                (
                
                  α
                  1
                
                )
              
            
          
          -
          
            cos
            ⁡
            
              (
              
                α
                1
              
              )
            
          
        
        ]
      
    
  
  <
  
    k
    p
  
  <
  
    1
    k
  




where α1 is a solution of






  
    tan
    ⁡
    
      (
      α
      )
    
  
  =
  
    
      -
      
        τ
        
          τ
          +
          
            d
            0
          
        
      
    
    ⁢
    α
  




in the interval (0,π)

(3) Initializing a counter j for tracking odd number roots to an initial value of 1;
(4) determining the root zj of





  
    
      
        -
        
          kk
          p
        
      
      +
      
        cos
        ⁡
        
          (
          
            z
            j
          
          )
        
      
      -
      
        
          τ
          
            d
            0
          
        
        ⁢
        
          z
          j
        
        ⁢
        
          sin
          ⁡
          
            (
            
              z
              j
            
            )
          
        
      
    
    =
    0
  
  ;



(5) computing the parameter aj associated with zj using





  
    
      a
      j
    
    =
    
      -
      
        
          
            z
            j
          
          
            kd
            0
          
        
        ⁡
        
          [
          
            
              sin
              ⁡
              
                (
                
                  z
                  j
                
                )
              
            
            +
            
              
                τ
                
                  d
                  0
                
              
              ⁢
              
                z
                j
              
              ⁢
              
                cos
                ⁡
                
                  (
                  
                    z
                    j
                  
                  )
                
              
            
          
          ]
        
      
    
  
  ;



(6) testing the root zj to see if a search condition has been reached by determining if cos(zj)>0;
and if not, incrementing the counter j by 2 and returning to step (4);
(7) if so, choosing the maximum of all calculated aj's as the lower bound of ki for the kp specified in step (2);
(8) repeating steps (2) through (7) for all desired values of kp.

4. The method of claim 1 wherein the step of measuring a data arrival rate R(n) at time n further comprises:
filtering the data arrival rate R(n) according to the relation:


R′(n)=(1−β)·R′(n−1)+β·R(n)

where β is a filter gain parameter such that 0<β<1,
R′(n−1) is the filterrd data arrival rate at time n−1, and
R′(n) is the desired filtered data arrival rate at time n.

5. The method of claim 1 further comprising a step, preceding the step of executing a packet mark/drop routine, of:
testing the data arrival rate R(n) against a rate threshold TL; and
if the data arrival rate R(n) is below or equal to the rate threshold TL then bypassing the step of executing a packet mark/drop routine.

6. The method of claim 1 wherein the step of executing a packet mark/drop routine further comprises:
marking/dropping packets according to a random number generator mark/drop scheme.

7. An apparatus for controlling a data flow in a data network, said apparatus configured according to the method of any of claims 1-6.

8. An apparatus for controlling a data flow in a data network, the apparatus comprising:
a proportional-integral controller having a proportional controller gain kp setting and an integral controller gain ki setting;
a specific stable gain setting combination set for said proportional controller gain kp setting and an integral controller gain ki setting pair;
a data arrival rate measurer for measuring data arrival rate R(n) at time n;
an error signal calculator for calculating an error signal e(n), according to the relation


e(n)=(T(n)−R(n))/x, 

where T(n) is an assigned capacity at time n and x(x≧1) is a parameter representing a nominal packet size used in the computation of kp and ki;

a mark/drop probability processor for computing a mark/drop probability p(n), according to the relation


pp(n)=min{max[kp·e(n),0],pmax}



pi(n)=min{max[pi(n−1)+ki·Δt·e(n),0],pmax}



p(n)=min{max [pp(n)+pi(n),0],pmax}

where Δt is the time interval between a (n−1)th and the nth computation, and 0<pmax≦1; and

a packet mark/drop module for executing a packet mark/drop routine, thereby producing at least one marked packed or at least one dropped packet, based upon the calculated mark/drop probability p(n).

9. The apparatus of claim 8 wherein the stable gain combination of a proportional controller gain kp setting and an integral controller gain ki setting is chosen from a pre-calculated range within which all gain pairs ki and kp result in a stable gain combination.

10. The apparatus of claim 9 wherein the pre-calculated range within which all gain pairs ki and kp result in a stable gain combination for said data network, is determined according to the method of:
(1) obtaining for said network a value for said network a set of parameters k, d0, and τ,
where k is a steady-state gain of said network,
d0 is a time delay of said network, and
τ is a time constant of said network;

(2) choosing a kp in the range





  
    -
    
      
        1
        k
      
      ⁡
      
        [
        
          
            
              τ
              
                d
                0
              
            
            ⁢
            
              α
              1
            
            ⁢
            
              sin
              ⁡
              
                (
                
                  α
                  1
                
                )
              
            
          
          -
          
            cos
            ⁡
            
              (
              
                α
                1
              
              )
            
          
        
        ]
      
    
  
  <
  
    k
    p
  
  <
  
    1
    k
  




where α1 is a solution of






  
    tan
    ⁡
    
      (
      α
      )
    
  
  =
  
    
      -
      
        τ
        
          τ
          +
          
            d
            0
          
        
      
    
    ⁢
    τ
  




in the interval (0,π)

(3) initializing a counter j for tracking odd number roots to an initial value of
(4) determining the root zj of





  
    
      
        -
        
          kk
          p
        
      
      +
      
        cos
        ⁡
        
          (
          
            z
            j
          
          )
        
      
      -
      
        
          τ
          
            d
            0
          
        
        ⁢
        
          z
          j
        
        ⁢
        
          sin
          ⁡
          
            (
            
              z
              j
            
            )
          
        
      
    
    =
    0
  
  ;



(5) computing the parameter aj associated with zj using





  
    
      a
      j
    
    =
    
      -
      
        
          
            z
            j
          
          
            kd
            0
          
        
        ⁡
        
          [
          
            
              sin
              ⁡
              
                (
                
                  z
                  j
                
                )
              
            
            +
            
              
                τ
                
                  d
                  0
                
              
              ⁢
              
                z
                j
              
              ⁢
              
                cos
                ⁡
                
                  (
                  
                    z
                    j
                  
                  )
                
              
            
          
          ]
        
      
    
  
  ;



(6) testing the root zj to see if a search condition has been reached by determining if cos(zj)>0;
and if not, incrementing the counter j by 2 and returning to step (4);
and if so, choosing the maximum of all calculated aj's as the lower bound of ki for the kp specified in step (2);
(7) repeating steps (2) through (6) for all desired values of kp.

11. The apparatus of claim 8 wherein the data arrival rate measurer for measuring data arrival rate R(n) at time n further comprises:
a filter for filtering the data arrival rate R(n) according to the relation:


R′(n)=(1−β)·R′(n−1)+β·R(n)

where β is a filter gain parameter such that 0<β<1,
R′(n−1) is the filtered data arrival rate at time n−1, and
R′(n) is the desired filtered data arrival rate at time n.

12. The apparatus of claim 8 further comprising:
a test module for testing the data arrival rate R(n) against a rate threshold TL; and
if the data arrival rate R(n) is below or equal to the rate threshold TL then bypassing the packet mark/drop module.

13. The apparatus of claim 8 wherein the packet mark/drop module further comprises:
a random number generator drop scheme module.

14. A computer program product, comprising a computer readable medium having stored thereon computer executable instructions, which, when executed by at least one processor, cause the at least one processor to control a data flow by performing the steps of:
selecting a stable gain combination of a proportional controller gain kp and an integral controller gain ki;
measuring a data arrival rate R(n) at time n;
calculating an error signal e(n), according to the relation


e(n)=(T(n)−R(n))/x, 

where T(n) is an assigned capacity at time n and x (x≧1) is a parameter representing a nominal packet size used in the computation of kp and ki;

computing a mark/drop probability p(n) according to the relation


pp(n)=min{max[kp·e(n),0],pmax}



pi(n)=min{max[pi(n−1)+ki·Δt·e(n),0],pmax}



p(n)=min{max[pp(n)+pi(n),0],pmax}

where Δt is the time interval between a (n−1)th and the nth computation, and 0<pmax<1; and

executing a packet mark/drop routine, thereby producing at least one marked packed or at least one dropped packet, based upon the calculated mark/drop probability p(n).