Abstract:
Described is a method for controlling nodes in a network including the steps of sending a proposed maximum working rate to a plurality of nodes, computing the number of responses received from the nodes by a central controller in a set period and adjusting the maximum working rate sent to the nodes based on the number of responses received.

Description:
REFERENCE TO PROVISIONAL APPLICATION  
       [0001]    A claim for priority is made to U.S. Provisional Application Serial No. 60/113,321 filed on Dec. 22, 1998. 
     
    
     
       BACKGROUND  
         [0002]    The invention relates generally to traffic regulation in a communications network. More particularly, the invention relates to dynamically controlling the flow of traffic regulation using a feedback mechanism.  
           [0003]    Modem telecommunications networks often consist of a plurality of nodes that receive data operations (queries) at varying incoming rates and forward these operations to a central controller (database). Because the total rate that all nodes combined can generate may exceed the capacity of the central controller, at times the central controller may become overloaded. In order to avoid the problems that would result from a central controller&#39;s overloading, it may be necessary for the central controller to direct one or more of the nodes to forward operations at a rate that is less than the present incoming rates of these nodes.  
           [0004]    In order for an algorithm to direct the nodes to perform at an optimal operating rate, it is necessary to take into account the dynamic features of modem telecommunications networks. First, nodes are added to and/or removed from modem telecommunications networks in real time as the network is operating. Second, each node may operate at a different rate than any other node. Accordingly, it would not be efficient for an algorithm that computes the rate of optimal node performance to be based on the number of nodes in the network or the actual operating rate of any single node.  
           [0005]    In the prior art, a previous algorithm designed to determine the optimal operating rate of the nodes would first choose a constant rate, ε, and a multiple of the constant rate, xε. The values ε and x would be determined based on the overall characteristics of the telecommunications network. The algorithm would then direct each node in the telecommunications network to operate at a maximum rate of xε for a predetermined period of time. After this predetermined period of time, if the aggregate output generated by the nodes and received by the central controller was too large, the algorithm would direct the nodes to operate at a maximum rate of (x−1)ε for the next predetermined period of time. If the output generated by the nodes and received by the central controller was too small, the algorithm would direct the nodes to operate at a rate of (x+1)ε for the next predetermined period of time. The algorithm would continue this operation periodically until the algorithm converged on the optimal multiple of the constant rate ε.  
           [0006]    This algorithm&#39;s main drawback is that its success is based primarily on whether the initial choice of ε is ultimately proper. If the chosen ε is too small, the algorithm takes too long to converge to the optimal operation rate. If the chosen ε is too large, the algorithm causes the operation rate of the nodes to oscillate about the optimal rate such that throughput in the network is adversely affected. Additionally, real-time changes in the number of nodes and the number of operations processed by each node, which often occurs in modern telecommunications networks, impede the efficient operation of this algorithm.  
           [0007]    Accordingly, there is a need in the art for a method that dynamically determines the operating rate for nodes in a telecommunications network such that a central controller may process the output of the nodes in an optimal fashion.  
         SUMMARY  
         [0008]    Embodiments of the present invention provide a method for controlling nodes in a network including the steps of sending a proposed maximum working rate to the nodes, computing the number of responses received in a set period and adjusting the maximum working rate based on the number of responses received.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]    [0009]FIG. 1 depicts a partial illustration of a modern telecommunications network illustrating a physical embodiment in which the present invention may be performed.  
         [0010]    [0010]FIG. 2 depicts a flowchart illustrating an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0011]    Table 1 illustrates the variables that are used to demonstrate the operation of embodiments of the present invention, including the units, if any, of each variable:  
                       TABLE 1                       Variable   Representation   Units                   R   Maximum number of operations per second central controller   operations/s           can handle without overload       N   Number of nodes in the network       r ideal     Ideal uniform rate for each node to operate   operations/s       T   Periodic time length   s       i   Iteration, where i is a whole number       r(iT)   Proposed uniform maximum operation rate of nodes for time   operations/s           period (iT, (i + 1)T)       N*   Number of nodes with an incoming rate that exceeds r(iT) over           time period (iT, (i + 1)T)       K   Total number of operations processed by nodes with incoming   operations           rates less than r(iT) over time period (iT, (i + 1)T)       N guess (iT)   Present guess as to R/r ideal         M(iT)   Actual number of operations received by central controller over   operations           time period ((i-l)T, iT)                  
 
         [0012]    The present invention is directed to a technique for periodically determining a uniform maximum operating rate for each node connected to a central controller in a network and determining the actual number of operations received by the central controller in a given time period. Based on this feedback information, the method of the present invention calculates a new uniform maximum operating rate for each node. This process is repeated and converges until the uniform maximum operating rate for each node produces the maximum number of operations per time period that the central controller can handle without overload.  
         [0013]    A partial representation of a modem telecommunications network can be found at FIG. 1. The figure illustrates a network  10  containing a central controller  60  and a node  1   20 , node  2   30 , node  3   40  up to a node N  50 , where N denotes the number of nodes currently in the network  10 . Each node  20 ,  30 ,  40 ,  50  receives data at an incoming rate via connectors  70 ,  80 ,  90 ,  100 . Each node  20 ,  30 ,  40 ,  50  also interfaces with the central controller  60  via connectors  110 ,  120 ,  130 ,  140 . Connectors  110 ,  120 ,  130 ,  140  transmit the operations for each node  20 ,  30 ,  40 ,  50  to the central controller  60 . The central controller  60  has the ability to direct each of the nodes  20 ,  30 ,  40 ,  50  via connectors  150 ,  160 ,  170 ,  180  to process a maximum number of processes r(iT)T per time period (iT,(i+1)T).  
         [0014]    Embodiments of the central controller may be any device that receives the operations of the nodes and that can direct the rate of processing of the nodes including, for example, a database at a Service Control Point (SCP) in a telecommunications network. Embodiments of the nodes may be any device that processes information for relaying to a central controller including, for example, a switch used in a telecommunications network.  
         [0015]    The present invention is based on the principle that the ideal number of operations RT to be received by the central controller  60  during a time period (iT,(i+1)T) (where i is any whole number) is equivalent to the number of nodes N* that are controlled at rate r ideal  multiplied by the period T plus the total number of operations K processed by those nodes that operate at a rate less than r ideal . Thus:  
           RT=r   ideal   N*T+K    (1)  
         [0016]    and, solving for r ideal :  
               r   ideal     =       RT   -   K       N   *   T               (   2   )                               
 
         [0017]    For purposes of the present invention, R is a known quantity that is a function of the capacity of the central controller  60 . Based on the known R and the number of operations M(iT) received during time period ((i−1)T,iT), the algorithm seeks to quickly find a r ideal . Although parameters R, N, and N* also may change over time, the changes in these parameters are relatively small over a time period (iT,(i+1)T). Accordingly, the present invention also automatically adjusts to find the new r ideal  as quickly as possible after these parameters change.  
         [0018]    As illustrated in FIG. 2, an algorithm embodying the present invention begins with the calculation of the ideal number of operations R to be received by the central controller  60 . (Step  1010 ). R is calculated by a method not shown, and is assumed to be a given value in the present invention. The iteration counter i of the algorithm is initially set to 0 (Step  1020 ) and an initial guess N guess (0) is chosen based on global network parameters using a method not shown. (Step  1030 ). With R known, the maximum rate r(0) for each node  20 ,  30 ,  40 ,  50  to operate during time period (0,1T) can be calculated based on Equation 3:  
               r        (   0   )       =     R       N   guess          (   0   )                 (   3   )                               
 
         [0019]    Thus, the algorithm instructs the nodes  20 ,  30 ,  40 ,  50  to operate at a maximum of r(0) operations per second for the time period (0,1T). (Step  1040 ). During this time period, the algorithm keeps a tally of the number of operations M(1T) actually received by the central controller  60  from the nodes  20 ,  30 ,  40 ,  50  via connectors  110 ,  120 ,  130 ,  140 . (Step  1050 ).  
         [0020]    The number of operations received by the central controller  60  from the nodes  20 ,  30 ,  40 ,  50  during time period (0,1T) can be expressed as the maximum rate r(0) that each node operated during time period (0,1T) multiplied by the number of nodes N* that operated at rate r(0) multiplied by the period T plus the total number of operations K processed by those nodes that operated at a rate less than r(0) during time period (0,1T). In other words, K represents the total number of operations processed during time period (0,1T) by those nodes  20 ,  30 ,  40 ,  50  whose incoming rates  70 ,  80 ,  90 ,  100  were less than the r(0) transmitted to them by the central controller  60  via connectors  150 ,  160 ,  170 ,  180 . Equation 4 reflects this relationship:  
           M (1 T )= N*r (0) T+K    (4)  
         [0021]    Because r(0) is known from Equation 3, Equation 4 can be rewritten:  
               M        (     1      T     )       =         RN   *   T         N   guess          (   0   )         +   K             (   5   )                               
 
         [0022]    The algorithm next calculates the value of N guess (1T) for the time period (1T,2T), which is computed as N guess (0) multiplied by the amount of the number of operations M(1T) received during the previous time period (0,1T) divided by the known total capacity R of the central controller  60 :  
                 N   guess          (     1      T     )       =           N   guess          (   0   )            M        (     1      T     )         RT             (   6   )                               
 
         [0023]    (Step  1060 ). Because N guess (1T) is in part a function of M(1T) (which is the amount of operations actually received into the central controller  60  during time period (0,1T)), the total number of operations K processed by those nodes that operate at a rate less than r ideal  during time period (0,1T) is taken into account when determining N guess (1T).  
         [0024]    Based on Equation 3, the new value of r(1T) for period (1T,2T) can be calculated from the N guess (1T):  
               r        (     1      T     )       =     R       N   guess          (     1      T     )                 (   7   )                               
 
         [0025]    (Step  1070 ). Thus, the central controller  60  instructs the nodes  20 ,  30 ,  40 ,  50  via connectors  150 ,  160 ,  170 ,  180  to operate at a maximum rate of r(1T) operations per second for the time period (1T,2T). During this time period, the central controller  60  will keep a tally of the number of operations M(2T) received from the nodes  20 ,  30 ,  40 ,  50  via connectors  110 ,  120 ,  130 ,  140 . (Steps  1080 ,  1050 ). As previously shown, from this value of M(2T), a new N guess (2T) and r(2T) are calculated for time period (2T,3T).  
         [0026]    This algorithm is repeated periodically with a new N guess (iT) and r(iT) being calculated based on the value of N guess ((i−1)T) and M(iT) for each iteration i:  
                   N   guess          (   iT   )       )     =           N   guess          (       (     i   -   1     )        T     )            M        (   iT   )         R             (   8   )                 r        (   iT   )       =     R       N   guess          (   iT   )                 (   9   )                               
 
         [0027]    Ultimately, the values of N guess (iT) and r(iT) converge such that:  
                 lim     i   →   ∞              N   guess          (   iT   )         =       N   guess          (       (     i   -   1     )        T     )               (   10   )                   lim     i   →   ∞            r        (   iT   )         =       r        (       (     i   -   1     )        T     )       =     r   ideal               (   11   )                               
 
         [0028]    Based on equation 8, when N guess (iT) is equal to N guess ((i−1)T), M(iT) will equal RT. This situation is optimal because the number of operations actually received by the central controller M(iT) over a given time period ((i−1)T,iT) is equal to the number of operations RT capable of being handled by the central controller during the same time period.  
         [0029]    In another embodiment of the present invention, the value N guess (iT) is calculated as a function of more than one of the previous values of N guess (iT−xT), where x&lt;i. For example, the value of N guess (iT) could be determined as a function of N guess (iT−1T), N guess (iT−2T) and N guess (iT−3T). This will produce a smoother transition between the changes in r(iT) over time, allowing the network  10  to more easily adjust to the changing values of r(iT).  
         [0030]    As the algorithm proceeds, several global parameters of the network  10  may be altered due to external factors. First, a number of nodes may be added or deleted from the network, which will alter the parameter N. Second, the maximum number of operations per second the central controller can handle without overload may change, which will alter the parameter R. Third, the number of nodes with an incoming rate that exceeds r(iT) may change, which will change N*. Alteration of any one these parameters may change the r ideal  for the network  10 . Because of the use of the dynamic feedback mechanism as reflected in Equations 8 and 9, the algorithm will begin converging to the new r ideal  starting with the next iteration iT. This convergence will generally be effective because the potential changes in N, R, or N* are usually small when measured over a single time period (iT,(i+1)T). Thus, the algorithm will successfully adjust to the changes in these global network parameters.  
         [0031]    Accordingly, the present invention incorporates a feedback mechanism that allows a network  10  to produce a relatively rapid convergence to the ideal maximum rate for each node  20 ,  30 ,  40 ,  50  to operate such that the central controller  60  receives an optimal number of operations. It will be appreciated by those skilled in the art that the specific embodiments disclosed above may be readily utilized as a basis for modifying or designing other methods and techniques for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the following claims.