Abstract:
A method for controlling packet flow in a packet transmission network. The method includes determining a parameter representative of packet congestion on the network, and adjusting a flow of packets onto the network in accordance with such parameter. The adjusting is a function of the time history of the parameter and the time average of such parameter relative to predetermined threshold levels. The adjusting selects one of a plurality of states, transitions between the states being a function of the time history of the parameter and the time average of such parameter relative to predetermined threshold levels.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims priority from U.S. Provisional application No. 61/076,742 filed Jun. 30, 2008, the entire subject matter thereof being incorporated herein by reference. 
    
    
     TECHNICAL FIELD 
     This invention relates generally to packet transmission networks and more particularly to methods for controlling packet flow on such networks. 
     BACKGROUND AND SUMMARY 
     As is known in the art, one type of packet transmission network is a wireless transmission network. As is also known, Wireless Local Area Networks (WLAN) are becoming more and more popular nowadays due to their easy deployment and wide spread of WiFi interface cards. A Wi-Fi Alliance report finds that 1.2 million 802.11 chipsets will be produced in 2006. Parallel to technological development, a flurry of analytical studies appeared in communication literature. Experimental results and theoretical studies show that wireless networks may enter a saturation regime characterized by a highly suboptimal medium utilization. More specifically, standard rate adaptation mechanisms reduce transmission rates when multiple packet loss occurs. Yet if the packet loss is due to collision rather than bad channel (which is the working assumption for the rate adaptation mechanism) then the controller induces a higher probability of collision which snowballs in turn into an even lower throughput. Such a mechanism is used by the Automatic Rate Fallback (ARF) algorithm used in WLAN-II products from Lucent which assumes all packet loss are due to bad channel. 
     In experiments with voice over wireless LAN, saturation induces catastrophic failures of the access point and clients. Clients drop voice calls. These can occur as early as 10-12 handsets and as late as 16-18 handsets, depending on the configuration, channel quality, interference at the time of experimentation. In  FIG. 3  one can see the total number of voice packets in an IEEE 802.11b experiment for a scenario involving voice calls between 16 handsets (eight calls). The sharp decrease in voice packets indicates saturation. 
     In accordance with the present invention, method and apparatus are provided to inspect wireless traffic parameters and, based on such input, to drop packets or influence admission control to avoid wireless saturation. In particular, the document discloses specific methods, called mitigation methods, to control or shape traffic, in conjunction with information about when the wireless channel is pre saturated. The procedure can be applied either in an access point (AP) or a client. 
     As described in two other co-pending patent application, one entitled, “Method for Congestion Detection in Packet Transmission Networks” filed on the same date as this application, and assigned to the same assignee as the present application, assigned Ser. No. 12/206,069, the entire subject matter thereof being incorporated herein by reference, and the other entitled “Method and Apparatus for Estimating Collision Probability in a Wireless Network”, filed on the same date as this application, and assigned to the same assignee as the present application, assigned Ser. No. 12/206,059, the entire subject matter thereof being incorporated herein by reference, two statistical methods are described for detecting the potential for wireless saturation by inspecting traffic parameters or features: The first using high level features of the radio channel accessible in the station (i.e. access point); and the second estimating directly the collision probability for a given (or all) access categories based on fine grain channel usage statistics. In the first case features of access to the radio channel are, for example, time utilization of the channel, number of retries, and delay. They can be recorded for a large variety of wireless data transmission situations (including voice over WLAN, when the interest is in voice, i.e. access category 3). A classification machine can automatically separate the regimes of saturation and normal operation. The classification logic can be incorporated for on-line, real-time operation in the firmware of a wireless station. In the second case, fine grained statistics can include the number of slots generated during a transmission, the total number of deferrals, and the total number of unsuccessful transmissions. 
     This document describes mitigation solutions working in conjunction with a solution of saturation prediction. Mitigation intervenes once pre-saturation is detected, in order to influence admission control or determine which packets should be disregarded (dropped) in order to alleviate saturation problems. 
     In accordance with the invention, a method is provided for controlling packet flow in a packet transmission network. The method includes determining a parameter representative of packet congestion on the network, and adjusting a flow of packets onto the network in accordance with such parameter. 
     In one embodiment, the parameter is a measure of saturation level of the channel. 
     In one embodiment, saturation level is a function of packet arrival rate at a receiver on the channel and total packet throughput on the channel. 
     In one embodiment, the function is that if there is a set of decreases in the packet arrival rates at each receiver that produces an increase in the total throughput, the channel is at the saturation level of the channel. 
     In one embodiment, the adjusting is a function of the time history of the parameter and the time average of such parameter relative to predetermined threshold levels. 
     In one embodiment, the adjusting selects one of a plurality of states, transitions between the states being a function of the time history of the parameter and the time average of such parameter relative to predetermined threshold levels. 
     In one embodiment, the parameter is a function of at least one of: time delay between transmission starts of a station on the channel and termination of the previously transmitted packet from such station; the fraction of time the channel is busy with transmissions, regardless of the origin of the transmission, or whether packets were correctly transmitted and received; and, average number of packet transmission retries on the channel. 
     In one embodiment, a method is provided for controlling packet flow in a packet transmission network. The method includes: during a training mode, generating a mathematical relationship between the degree of packet congestion on the channel and a plurality of measurable features of the network over a plurality of network conditions; during a subsequent normal operating mode, periodically measuring the plurality of measurable features and applying the generated mathematical relationship to such periodically measured plurality of measurable features to determine actual degree of congestion on the channel; and adjusting a flow of packets onto the network in accordance with such parameter. 
     In one embodiment, the degree of congestion is saturation level of the channel. 
     In one embodiment, the parameter is a function of at least one of: time delay between transmission starts of a station on the channel and termination of the previously transmitted packet from such station; the fraction of time the channel is busy with transmissions, regardless of the origin of the transmission, or whether packets were correctly transmitted and received; and, average number of packet transmission retries on the channel. 
     The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims. 
    
    
     
       DESCRIPTION OF DRAWINGS 
         FIG. 1  is a flowchart of the method for measuring degree of packet congestion on a channel of a packet communication network according to the invention; 
         FIGS. 2(   a )- 2 ( c ) are used to define interference for three cases: The first case  FIG. 2(   a ) is ignored if the interference period is short and falls within a data packet transmission duration; In the other two cases ( FIGS. 2(   b ) and  2 ( c )), the data packet is either collided or deferred due to the busy channel resulting from the interference. 
         FIG. 3  is a graph showing the relationship between a plurality of measurable features, here: channel time utilization (TU), medium (i.e., channel) access delay (MAD); and number of packet retries (Rt), for a particular congestion rule for a large number of simulated experiments under the various channel conditions and used to generate a mathematical relationship between the degree of packet congestion on the channel and the plurality of measurable features over a plurality of network conditions; 
         FIG. 4  is an enlarged region of  FIG. 3 ; 
         FIG. 5  is a graph showing the relationship between the plurality of measurable features of  FIG. 3  for a different congestion rule, and 
         FIG. 6  is a state machine used to perform a method to control or shape packet traffic. 
     
    
    
     Like reference symbols in the various drawings indicate like elements. 
     DETAILED DESCRIPTION 
     The method and apparatus in this invention is defined by the following three steps: 
     1. Track special statistics in real time on top of underlying IEEE 802.11 chipset, e.g. air time utilization, number of retries, throughput; 
     2. Classify state of AP based on a classifier trained and pretuned using extensive statistics from real experiments; and 
     3. Control a WiSAT state machine implemented in the AP (client) and mitigation policy (packet drop) in congested or saturated situations. 
     The definition and integration of these components is described below: 
     1. Classifier: 
     Parameters: Window size W (×100 ms), Learning rate α (between 0 and 1), 
     Coefficients a 1 ,a 2 ,a 3 , and ρ 
     Inputs: GoodTxPkts, DrpTxPkts RCC, CC, TotDelay, RTxPkt 
     Output: Functional r=r(t) defined as follows:
         Where GoodTxPkts are the number of good packets transmitted; DrpTxPkts are the number of dropped packets; RCC is the time that transmission of a packet ends, or the time at which a packet is received; CC is the time a packet is placed in the interface queue to be transmitted; TotDelay is the total delay for transmitting a packet; RTxPkt refers to retries in transmitting a packet.       

     i) If GoodTxPkts(t+W, AC=0)=GoodTxPkts(t, AC=0) then: 
     a. If DrpTxPkts(t+W, AC=0)&gt;DrpTxPkts(t, AC=0) then r=−1 (saturation). STOP. 
     b. Else r=1 (non-saturation). STOP 
     ii) Else: 
     a. Compute (adjust for overflow/rollover as needed): 
     
       
         
           
             
               T 
               ⁢ 
               
                   
               
               ⁢ 
               U 
             
             = 
             
               
                 
                   RCC 
                   ⁡ 
                   
                     ( 
                     
                       t 
                       + 
                       W 
                     
                     ) 
                   
                 
                 - 
                 
                   RCC 
                   ⁡ 
                   
                     ( 
                     t 
                     ) 
                   
                 
               
               
                 
                   CC 
                   ⁡ 
                   
                     ( 
                     
                       t 
                       + 
                       W 
                     
                     ) 
                   
                 
                 - 
                 
                   CC 
                   ⁡ 
                   
                     ( 
                     t 
                     ) 
                   
                 
               
             
           
         
       
       
         
           
             
               T 
               ⁢ 
               
                   
               
               ⁢ 
               D 
             
             = 
             
               
                 
                   TotDelay 
                   ⁡ 
                   
                     ( 
                     
                       
                         t 
                         + 
                         W 
                       
                       , 
                       
                         
                           A 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           C 
                         
                         = 
                         0 
                       
                     
                     ) 
                   
                 
                 - 
                 
                   TotDelay 
                   ⁡ 
                   
                     ( 
                     
                       t 
                       , 
                       
                         
                           A 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           C 
                         
                         = 
                         0 
                       
                     
                     ) 
                   
                 
               
               
                 
                   GoodTxPkts 
                   ⁡ 
                   
                     ( 
                     
                       
                         t 
                         + 
                         W 
                       
                       , 
                       
                         
                           A 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           C 
                         
                         = 
                         0 
                       
                     
                     ) 
                   
                 
                 - 
                 
                   GoodTxPkts 
                   ⁡ 
                   
                     ( 
                     
                       t 
                       , 
                       
                         
                           A 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           C 
                         
                         = 
                         0 
                       
                     
                     ) 
                   
                 
               
             
           
         
       
       
         
           
             RT 
             = 
             
               
                 
                   RtxPkt 
                   ⁡ 
                   
                     ( 
                     
                       
                         t 
                         + 
                         W 
                       
                       , 
                       
                         
                           A 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           C 
                         
                         = 
                         0 
                       
                     
                     ) 
                   
                 
                 - 
                 
                   RTxPkt 
                   ⁡ 
                   
                     ( 
                     
                       t 
                       , 
                       
                         
                           A 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           C 
                         
                         = 
                         0 
                       
                     
                     ) 
                   
                 
               
               
                 
                   GoodTxPkts 
                   ⁡ 
                   
                     ( 
                     
                       
                         t 
                         + 
                         W 
                       
                       , 
                       
                         
                           A 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           C 
                         
                         = 
                         0 
                       
                     
                     ) 
                   
                 
                 - 
                 
                   GoodTxPkts 
                   ⁡ 
                   
                     ( 
                     
                       t 
                       , 
                       
                         
                           A 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           C 
                         
                         = 
                         0 
                       
                     
                     ) 
                   
                 
               
             
           
         
       
     
     b. Compute distance to classification separation surface at any time t. s(t) is also called the WiSAT function:
 
 s ( t )= a   1 TU( t )+ a   2 TD( t )+ a   3   RT ( t )−ρ
 
     c. Compute smoothed classifier output, or the smoothed WiSAT function, possibly for multiple values of the parameter alpha depending on state of system α s . State is intended to capture the temporal dimension of the evolution of the system. The formula below indicates that the computation will be different at different times (if the state changes, as is described below:
 
 {tilde over (s)} ( t+W )=(1−α s )  {tilde over (s)} ( t )+α s   ·s ( t+W )
 
     d. End. 
     where s, {tilde over (s)} ure the classifier and smoothed classifier outputs, respectively, which are measures of packet congestion and the parameter α s  is the smoothing rate for computation of {tilde over (s)} depending on state s. 
     More particularly, referring now to  FIG. 1 , a flowchart of the method for measuring degree of packet congestion, s, on a channel of a packet communication network according to the invention is shown. In Step  100 , during a training mode, the method generates a mathematical relationship between the degree of packet congestion on the channel and a plurality of measurable features of the network over a plurality of network conditions. In Step  200 , during a subsequent normal operating mode, the method periodically measures the plurality of measurable features and applying the generated mathematical relationship to such periodically measured plurality of measurable features to determine actual degree of congestion on the channel. Next, in Step  300 , the method compares the actual degree of congestion on the channel with a predetermined channel congestion threshold level. 
     Here, the degree of packet congestion on the channel is saturation level of the channel where saturation level is a function of packet arrival rate at a receiver on the channel and total packet throughput on the channel. The function is that if there is a set of decreases in the packet arrival rates at each receiver that produces an increase in the total throughput, the channel is at the saturation level of the channel. 
     Here, for example, the measurable features of the network include at least one of: time delay between transmission starts of a station on the channel and terminations of the previously transmitted packet from such station; the fraction of time the channel is busy with transmissions, regardless of the origin of the transmission, or whether packets were correctly transmitted and received; and, average number of packet transmission retries on the channel. 
     
       
         
               
             
               
               
               
             
           
               
                   
               
               
                 Definition of Terms and Symbols 
               
             
          
           
               
                 Terms/Symbol 
                 Description 
                 Unit 
               
               
                   
               
               
                 Time Utilization 
                 The fraction of time that the channel is busy 
                   
               
               
                 (TU) 
               
               
                 System Loading 
                 Total data loading of the system from 
                 bps 
               
               
                 (L) 
                 applications 
               
               
                 Goodput (GP) 
                 The ACK&#39;d data transmitted over the channel 
                 bps 
               
               
                 Congestion 
                 The network condition with high time 
               
               
                   
                 utilization 
               
               
                 Queuing Delay 
                 The amount of time that a packet stay in the 
                 ms 
               
               
                 (QD) 
                 interface queue 
               
               
                 Medium Access 
                 Total transmission time - queuing delay 
                 ms 
               
               
                 Dealy (MAD) 
               
               
                 Wireless FER 
                 The frame error rate due to bad wireless 
                 % 
               
               
                 (FER) 
                 channel quality 
               
               
                 N 
                 Number of client stations 
               
               
                 InfAr 
                 Average arrival time between two interfering 
                 ms 
               
               
                   
                 signals 
               
               
                 InfDu 
                 Average duration of interfering signals 
                 ms 
               
               
                 S 
                 IP packet size = data payload + 40 
                 bytes 
               
               
                 AC[n] 
                 802.11e priority access category. From high to 
               
               
                   
                 low n = 0, 1, 2, 3. 
               
               
                   
               
             
          
         
       
     
     Below, we consider a number of features essential in detecting saturation. Other features could also be used in our approach; however we consider that this is a sufficient set of features to result in a good saturation detector and illustrate our concept and an instantiation of the concept: 
     1. Medium Access Delay (MAD) 
     Different chipsets offer various statistics about the operation of the hardware. In our formulas we will consider instantiations corresponding to the parameters reported by the Atheros AR5212 chipset hardware (manufactured by Atheros Communications, Inc. 5480 Great American Parkway Santa Clara, Calif. 95054) that can be used to calculate channel usage. In other implementations/hardware, similar statistics can be found or computed. These are:
         TFC register counts the number of cycles the tx_frame signal is Active: AR5212: 9.8.1 (170), AppNote-RxTxProfiling: 9.8.1(1)   RFC register counts the number of cycles the rx_frame signal is Active; AR5212: 9.8.2 (170), AppNote-RxTxProfiling: 9.8.2(1)   RRC register counts the number of cycles the rx_clear signal is Active; AR5212: 9.8.3 (170), AppNote-RxTxProfiling: 9.8.3(2)       

     Medium Access Delay (MAD) is defined based on the following times:
         t 0  denotes the time a packet is placed in the interface queue (CC)   t 1  denotes the time when packet is taken from interface queue and the transmission mechanism begins   t 2  denotes the time when transmission ends (SendTimeStamp) (RCC)       

     Generally we know only t 0  and t 2 , however the following formula can be used to compute t 1 :
 
 t 1( n )=max( t 0( n ), t 2( n− 1))
 
     which reflects the fact that, transmission starts as soon as the transmission of the previous packet ended, provided the current packet arrived. 
     MAD is defined as the average of t241 over N packets: 
     
       
         
           
             MAD 
             = 
             
               
                 1 
                 N 
               
               ⁢ 
               
                 
                   ∑ 
                   
                     k 
                     = 
                     1 
                   
                   N 
                 
                 ⁢ 
                 
                   ( 
                   
                     
                       t 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       2 
                       ⁢ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                     - 
                     
                       t 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       1 
                       ⁢ 
                       
                         ( 
                         n 
                         ) 
                       
                     
                   
                   ) 
                 
               
             
           
         
       
     
     2. Time Utilization (TU) 
     Time Utilization (TU) measures the fraction of time the medium is busy with wireless transmissions, regardless of the origin, or whether packets were correctly transmitted/received. Thus, if T 1  and T 2  denote the starting and the ending time, respectively, for an observation period (e.g. 5 seconds), and that the RRC clear channel counter is incremented when the medium is idle, then: 
     
       
         
           
             
               T 
               ⁢ 
               
                   
               
               ⁢ 
               U 
             
             = 
             
               1 
               - 
               
                 
                   
                     RRC 
                     ⁡ 
                     
                       ( 
                       
                         T 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         2 
                       
                       ) 
                     
                   
                   - 
                   
                     RRC 
                     ⁡ 
                     
                       ( 
                       
                         T 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         1 
                       
                       ) 
                     
                   
                 
                 
                   
                     T 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     2 
                   
                   - 
                   
                     T 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                   
                 
               
             
           
         
       
     
     Alternatively, the time utilization can be computed from the TFC and RFC register counters, which indicate the number of cycles transmission and reception flags are active over time: 
     
       
         
           
             
               T 
               ⁢ 
               
                   
               
               ⁢ 
               U 
             
             = 
             
               
                 
                   TFC 
                   ⁡ 
                   
                     ( 
                     
                       T 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       2 
                     
                     ) 
                   
                 
                 + 
                 
                   RFC 
                   ⁡ 
                   
                     ( 
                     
                       T 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       2 
                     
                     ) 
                   
                 
                 - 
                 
                   TFC 
                   ⁡ 
                   
                     ( 
                     
                       T 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       1 
                     
                     ) 
                   
                 
                 - 
                 
                   RFC 
                   ⁡ 
                   
                     ( 
                     
                       T 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       1 
                     
                     ) 
                   
                 
               
               
                 
                   T 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   2 
                 
                 - 
                 
                   T 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   1 
                 
               
             
           
         
       
     
     For practical implementations, we have to explore the most accurate alternative. For different chipsets, alternative flags may enable us to compute TU. 
     3. Average Number of Retries (R) 
     Average Number of Retries (R) represents the average of DataFailCnt over a number of N packets: 
     
       
         
           
             R 
             = 
             
               
                 1 
                 N 
               
               ⁢ 
               
                 
                   ∑ 
                   
                     k 
                     = 
                     1 
                   
                   N 
                 
                 ⁢ 
                 
                   DataFailCnt 
                   ⁡ 
                   
                     ( 
                     k 
                     ) 
                   
                 
               
             
           
         
       
     
     Initial Training Data Generation, Step  100   
     Here, ns-2 code and perl scripts were written to simulate behavior of the network topologies of interest, or to measure the parameters of interest from real experimentation. We considered one AP and several stations with non-perfect channel conditions and interference. 
     Simulation Outline 
     In simulation, we have controlled these factors as follows:
         Channel condition is modeled through considering a Frame Error Rate (FER). FER acts as an independent variable and contributes to an increased number of retransmissions.   Interference is modeled as a Poisson arrival process of random duration. Time length for the on-state is an exponentially distributed random variable. When interference overlaps with a packet transmission, that transmission is considered corrupt. Interference contributes to all medium access delay (MAD), number of retries, and channel utilization. The interference is specified with two parameters: the Poisson process arrival rate, and the average on-state duration.       

     Simulation Results: Balanced Network with Several Levels of Interference and Frame Error Rates (FER) 
     Following parameters are varied in simulation to cover various possible conditions:
         System loading in numbers of client VoIP/Video streaming stations (N).   Channel quality in terms of FER under various corresponding SNRs.   Interference: external, representing hidden nodes etc. Interference is modeled as a Poisson arrival process with rate InfAr, and duration exponentially distributed with an average time Inf Du      Traffic type (i.e. packet size S, access category)       

     In simulation, interference is defined as in  FIG. 2A ,  FIG. 2B , and  FIG. 2C  for three cases. The first case (a) is ignored if the interference period is short and falls within a data packet transmission duration. In other two cases (b) and (c), the data packet is either collided or deferred due to the busy channel resulting from the interference. The effect is controlled by average arrival time InfAr and duration InfDu assuming they are independent and exponentially distributed between any two interference periods. 
     The simulation aims at computing the following measures: Goodput GP, MAD, TU, R. For a fixed FER, interference level, and S/traffic type, we derived GP(N), TU(N). 
     Overall, the results below cover 420 simulations, for various values of the discussed parameters: N, FER, InfAr, InfDu. Below we give a complete description of all these parameters, and some of the quantities tracked in simulation. 
     The simulation topology used is: 
     Infrastructure mode
         N={1 2 3 4 5 6 7 8 9 10 11 12 13 14 15}   FER={0 1 5 10 20 50 80}   InfAr={INF 200 100 50}   InfDu={1}   S={200}       

     
       
         
               
               
               
             
           
               
                   
                   
               
               
                   
                 Layer 
                 Parameters 
               
               
                   
                   
               
             
             
               
                   
                 Application 
                 Two-way VoIP traffic at AC[0] 
               
               
                   
                   
                 Simulate G.711 codec at 64 Kbps 
               
               
                   
                 Transport 
                 IP/UDP/RTP 
               
               
                   
                   
                 40 bytes/packet of header 
               
               
                   
                   
                 80 Kbps, S = 200 bytes/packet, 20 ms/packet 
               
               
                   
                   
                 with header each direction 
               
               
                   
                 Link/MAC 
                 802.11e AC[0]: AIFS = 2, CWmin = 8, 
               
               
                   
                   
                 CWmax = 16, RetryLimit = 4 
               
               
                   
                   
                 802.11e AC[1]: AIFS = 2, CWmin = 16, 
               
               
                   
                   
                 CWmax = 32, RetryLimit = 4 
               
               
                   
                 Physical 
                 802.11b at 11 Mbps 
               
               
                   
                   
               
             
          
         
       
     
     Considering now how operation points (before or after saturation) are positioned in the joint space TU vs. MAD vs. Rt, it is first noted that simulation obtains undefined values for MAD and Rt when the interference is too bad and no frame starts to transmit within the simulation time. This induces some outliers in the plots, which should be discarded. Their positions, however, are obvious. 
     The saturation detector is based on the following rule:
         The goodput (GP) maximum corresponds to a Nmax=Nmax(FER,Interference,S). In the feature space (MAD,TU,Rt) data labeled ‘o’ represents all experiments, or “operating points”, before Nmax, and data labeled ‘x’ represent all experiments at or after Nmax+1. Thus, we have maximum number of clients for which a decrease in the load induces an increase in the total throughput, according to the original definition for saturation presented above. When one traces the actual state of the wireless system in the feature space, one can observe the data label (o or x) of (known) neighboring states, and then infer the data label (o or x) of the current state based on proximity to such known states. This is equivalent to classifying the current state as saturated or non-saturated based on proximity.       

       FIGS. 3 and 4  show that it is possible to reliably “separate” operating points before (o) and after (x) saturation. This means that one can define and implement a simple, efficiently computable, formula using the features as inputs in order to predict saturation (e.g. the maximum margin Support Vector Machine (SVM) classifier, to be described in connection with Step  200 , below, of the data). 
     More particularly,  FIG. 3  shows TU vs. MAD vs. Rt, under congestion rule given (default in next plots) for a large number of simulated experiments under the various conditions given. Note the good “separation” of operating points before and after saturation in  FIG. 3 . This indicates possibility to build a simple, efficiently computable, formula using the features as inputs in order to predict saturation. The formula represents a description of the boundary between non-saturation and saturation (e.g. the maximum margin SVM classifier of the data). 
       FIG. 4  shows a closeup of a region in  FIG. 3  TU vs. MAD vs. Rt, under congestion rule (A)-Zoom in  FIG. 3  to highlight separation of saturated (x) and non-saturated experimental points (o) in region of high density of experimental data. 
       FIG. 5  highlights that the operating points are placed on level curves with respect to load, interference or frame error rates. These curves are nicely parameterized with respect to either of these input variables. Furthermore, there is a deterministic, predictable relationship between how close the saturation state is approached, as a function of the position of the operating point relative the boundary of decision regarding saturation. This will allow us to:
         Determine that the system approaches saturation   Determine which of noise or congestion or both are main causes of saturation.       

     More particularly,  FIG. 5  shows MAD vs. TU, under congestion rule, in different experimental conditions (Interference, FER). In this plot, each curve (marked by cross ‘x’ or circle ‘o’) corresponds to a different FER. The circles/crosses on each curve correspond to experiments with different loads or clients (from L=1 to 15). Note that as FER increases and as L increases, the operation point moves to the right and upwards. 
       FIG. 5  is a second perspective on MAD vs. TU. One experiment is behind each point (circle o or cross x) in the plot. All points connected together in one curve correspond to experiments where the number of clients L increases starting from 1. Thus, the first point on the curve, from left to right, is a circle and corresponds to L=1, the second to L=2, and so on (up to maximum L=15 on some curves). For some value of L the circle becomes a cross: this corresponds to an experiment where saturation is reached. Different curves are obtained for various interference levels, as follows: topmost curve, with only three points corresponds to the highest interference level controlled by the frame error rate (FER) of 80%. In the next lower one, the frame error rate is 50%. The other curves are for frame error rates of 20, 10, 5, 2, 1 and zero percent. All points with the same load (number of clients N) constitute a level curve, for various packet error conditions. Note that as FER increases and as N increases, the operation point moves to the right and upwards. That is where all the crosses (corresponding to congested conditions) are concentrated. 
     Congestion can be predicted based on the position of the operation point in the space of features: as load increases, the operation point moves in the direction of the saturation boundary. Consider for instance a saturation boundary given by the first crosses on the parameterized curves with increasing load. The separation surfaces in these projection subspaces are virtually invariant lines for the various experimental cases (noise and interference). 
     As indicated, the boundaries can be precisely computed using a classification approach: the training data for the classifier that separates the x and o regions can be created from a large number of simulations.  FIGS. 2 and 3  highlight separability of saturated (x) and non-saturated experimental points (o) throughout all experiments. 
     Generation of Mathematical Relationship 
     The next step here is to compute a simple, efficiently computable, formula using the features as inputs in order to predict saturation and test the classification power of the formula for various “unseen” cases. Or, as noted above, the next step is to generate a mathematical relationship between the degree of packet congestion on the channel and a plurality of measurable features of the network over a plurality of network conditions. 
     Note that the operating points are positioned on level curves with respect to load, interference or frame error rates, and the more these conditions worsen (i.e. increased FER, or increased load), the smaller the distance between the position of the operating point and the boundary of decision regarding saturation. The consequences are very important in determining that the system approaches saturation, and determining the cause of saturation: bad channel conditions or congestion or both. 
     Here, from the data, weights W and p are generated and presented as matrices, more precisely vertical vectors to be described below in Step  300 . 
     A Second Order Support Vector Machine (SVM) Classifier, Step  200   
     As noted above, during a subsequent normal operating mode, the method periodically measures the plurality of measurable features and applies the generated mathematical relationship to such periodically measured plurality of measurable features to determine actual degree of congestion on the channel; and comparing the actual degree of congestion on the channel with a predetermined channel congestion threshold level. 
     Here, for example, a 2 nd  order Support Vector Machine based Classifier for the database obtained by the simulation described above is used. The database can be enlarged using a variety of experimental data to obtain an accurate classifier in general or under particular conditions. 
     Comparison Between Actual Degree of Congestion (Degree of ChannelSaturation) with Predetermined Channel Congestion Threshold Level, Step  300   
     The method next compares the actual degree of congestion on the channel with a predetermined channel congestion threshold level. 
     A relatively simple saturation detector has the following form, where the saturation state depends only on the instantaneous measurements at the present time; a more complex detector will be described later, where saturation is modeled using a finite state machine; in this case the state of saturation and the actions to be taken depend not only on the instantaneous measurements but also on the previous state, or previous measurements. The state machine will be called the WiSAT state machine: 
     
       
         
           
             
                 
             
             ⁢ 
             
               Saturation 
               = 
               
                 { 
                 
                   
                     
                       
                         
                           false 
                         
                         
                           
                             
                               if 
                               ⁢ 
                               
                                   
                               
                               ⁢ 
                               
                                 s 
                                 ⁡ 
                                 
                                   ( 
                                   
                                     
                                       T 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       U 
                                     
                                     , 
                                     
                                       M 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       A 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       D 
                                     
                                     , 
                                     RT 
                                   
                                   ) 
                                 
                               
                             
                             &gt; 
                             ɛ 
                           
                         
                       
                       
                         
                           true 
                         
                         
                           
                             if 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             otherwise 
                           
                         
                       
                     
                     ⁢ 
                     
                       
 
                     
                     ⁢ 
                     
                       s 
                       ⁡ 
                       
                         ( 
                         
                           
                             T 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             U 
                           
                           , 
                           
                             M 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             A 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             D 
                           
                           , 
                           RT 
                         
                         ) 
                       
                     
                   
                   = 
                   
                     
                       
                         [ 
                         
                           
                             
                               
                                 
                                   
                                     
                                       
                                         
                                           
                                             T 
                                             ⁢ 
                                             
                                                 
                                             
                                             ⁢ 
                                             U 
                                           
                                         
                                         
                                           
                                             M 
                                             ⁢ 
                                             
                                                 
                                             
                                             ⁢ 
                                             A 
                                             ⁢ 
                                             
                                                 
                                             
                                             ⁢ 
                                             D 
                                           
                                         
                                         
                                           RT 
                                         
                                         
                                           
                                             T 
                                             ⁢ 
                                             
                                                 
                                             
                                             ⁢ 
                                             
                                               U 
                                               2 
                                             
                                           
                                         
                                         
                                           
                                             M 
                                             ⁢ 
                                             
                                                 
                                             
                                             ⁢ 
                                             A 
                                             ⁢ 
                                             
                                                 
                                             
                                             ⁢ 
                                             
                                               D 
                                               2 
                                             
                                           
                                         
                                       
                                     
                                   
                                   
                                     
                                       RT 
                                       2 
                                     
                                   
                                 
                               
                             
                           
                           
                             
                               
                                 
                                   
                                     
                                       T 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       
                                         U 
                                         · 
                                         M 
                                       
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       A 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       D 
                                     
                                   
                                   
                                     
                                       T 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       
                                         U 
                                         · 
                                         RT 
                                       
                                     
                                   
                                   
                                     
                                       M 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       A 
                                       ⁢ 
                                       
                                           
                                       
                                       ⁢ 
                                       
                                         D 
                                         · 
                                         RT 
                                       
                                     
                                   
                                 
                               
                             
                           
                         
                         ] 
                       
                       ⁢ 
                       W 
                     
                     - 
                     ρ 
                   
                 
               
             
           
         
       
         
         
           
             where: 
           
         
       
    
     s is a saturation parameter providing an indication of the degree of packet congestion; and 
     an instantiation of the coefficients W, E and p is, in this example, given by:
 
 W=[− 0.1528−0.96310.4933−0.2066−0.98021.3510−1.38150.1 5802.593.5] T , ρ=−7.2384ε=0
 
     In practice, the offset parameter  8  can also be experimentally determined. This classifier was here obtained by applying cross-validation on our database of up to 4×15×7=420 examples (in fact there are fewer examples, due to the fact that some experiments have not defined or not-a-number results in the computation of features). 
     A random subset of approximately 70% was used for training. The following testing results were obtained: 
     On training database: 99.6% accuracy (241/242 correct classification) 
     On testing database: 98.97% accuracy (96/97 correct classification) 
     On entire database: 99.41% accuracy (337/339 correct classification) 
     Thus, from the above, sufficient relevant computable features for saturation detection have been defined and show feasibility of building a robust classifier based on these features. Under a large set of conditions (FER, interference, there exist invariant separation surfaces in the space of the features of interest, which can be used to robustly detect congestion conditions or proximity to such conditions. The approach presented above gives a heuristic but theoretically informed way of building an effective detector. 
     The method thus computes a simple, efficiently computable, formula based on the discriminating features as inputs. The formula represents the classification boundary of saturation vs. non-saturation. The saturation boundary is approached under either increasing frame errors or congestion conditions. Furthermore, one can discriminate between the two causes of saturation: bad channel conditions or congestion or both. 
     A typical instantiation is an implementation of the congestion detection formula in an access point. 
     It should be understood that the term periodically herein means either at regular or irregular intervals. 
     Having determined the degree of packet congestion, such degree of congestion being characterized by the saturation parameter, s, a method is used to control or shape packet traffic (herein referred to as a mitigation policy). If the degree of congestion is greater than the determined threshold in Step  400  ( FIG. 1 ), the method adjusts some of the present packet traffic in order to alleviate potential problems (Step  500 ), here controlling or shaping packet traffic as described in more detail below. On the other hand, if in Step  400  it is determined that the degree of congestion is less than the threshold, the process returns to Step  200 . 
     As described in more detail below, once the degree of congestion is determined, herein above such degree of congestion being characterized by the saturation parameter, s, the mitigation policy represents action to be taken in each state of the WiSAT state machine, shown in  FIG. 6 : 
     A First Order Support Vector Machine Classifier, Step  200   
     Without loss of generality, one can use other classifiers, such as a different order SVM or other linear or nonlinear machine learning algorithms. In practical instantiations, we used a first order SVM classifier due to the low computational requirements, as follows:
 
 s (TU,MAD, RT )=[TU MAD  RT]W   T −ρ
 
     where parameters W=[4.391995-0.005264-0.233946], ε=0.5 and ρ=0.288917 were learned from real-world experimental data. 
     A typical instantiation is an implementation of the congestion detection formula in an access point. 
     It should be understood that the term periodically herein means either at regular or irregular intervals. 
     Having determined the degree of packet congestion, such degree of congestion being characterized by the saturation parameter, s, a method is used to control or shape packet traffic (herein referred to as a mitigation policy). 
     If the degree of congestion is greater than the determined threshold in Step  400  ( FIG. 1 ), the method adjusts some of the present packet traffic in order to alleviate potential problems (Step  500 ), here controlling or shaping packet traffic described below. On the other hand, if in Step  400  it is determined that the degree of congestion is less than the threshold, the process returns to Step  200 . 
     State Machine for WiSAT (Wireless Saturation) 
     A more complex saturation detector can be modeled using a finite state machine. In contrast to using instantaneous feature values as before to decide on saturation, the decision and actions to be taken depend also on the previous state, or previous measurements. The state machine is called the WiSAT state machine: 
     Referring now to  FIG. 6 , a state of WiSAT machine depends on a number of factors.
         Classifier and smoothed classifier outputs: s, {tilde over (s)} respectively; where s is a measure of packet congestion   Parameters, e.g. α STATE  (smoothing rate for computation of {tilde over (s)} depending on state s)       

     Particular statistics/thresholds/intervals for the classifier and smoothed classifier outputs  FIG. 6 : WiSAT State Machine with state STATE=O/1/2. Conditions Cij guide the transition from state i to state j. 
     More precisely, the following components are necessary to define the state machine and the logic of the state machine: 
     Present state STATE (STATE=0 representing NonSAT, or non saturation; 1 representing PreSAT or pre-saturation, and 2 representing SAT or saturation) 
     Conditions C ij  (i,j=0,1,2) define transitions between states of the following format:
 
 C   ij =( s ( t ) o   ij δ ij ) r   ij ( {tilde over (s)} ( t ) õ   ij {tilde over (δ)} ij )
 
     Where: 
     s(t), {tilde over (s)}(t) are the WiSAT classifier and smoothed classifier outputs 
     o ij , 5 ij  are relational parameters ≦ and &gt; for s, {tilde over (s)} respectively 
     δ ij , {tilde over (δ)} ij  are threshold parameters for s, {tilde over (s)} respectively 
     r if  is one of the logical relational operators AND, OR 
     Examples (Note that unspecified conditions are defined such that all outgoing transition probabilities from one state add up to 1 and are mutually exclusive. Conditions Cu (i,j=0,1,2) are implemented as follows: (with 5 parameters renamed for simplicity of notation {tilde over (δ)} o ={tilde over (δ)} 01 , δ o =δ 01 , {tilde over (δ)} 1 ={tilde over (δ)} 12 , {tilde over (δ)} 02 , ={tilde over (δ)} 21  corresponding to above general names) 
     Examples of Finite State Machine (FSM) State Transition Rules 
     
       
         
               
             
           
               
                   
               
             
             
               
                 C 01  = {tilde over (s)}(t) &gt; {tilde over (δ)} 0  &amp; s(t) &gt; δ 0   
               
               
                 Go from NonSAT (state 0) to PreSAT (state 1) if the time average of 
               
               
                 the measurement s is greater than the parameter {tilde over (δ)} 0  and the 
               
               
                 instantaneous value of s is greater than the parameter δ 0   
               
               
                 C 01  = {tilde over (s)}(t) ≦ ε 
               
               
                 Go from NonSAT to SAT if the time average of the measurement of s 
               
               
                 is less than or equal to the value of ε 
               
               
                 C 00  = {tilde over (s)}(t) ≦ {tilde over (δ)} 0  &amp; {tilde over (s)}(t) &gt; ε 
               
               
                 Remain in NonSAT if the time average of the measurement of s 
               
               
                 is less than or equal to {tilde over (δ)} 0  and 
               
               
                 the time average of the measurement of s is greater than of ε 
               
               
                 C 12  = {tilde over (s)}(t) ≦ {tilde over (ε)} 
               
               
                 Go from PreSAT to SAT if the instantaneous value of the parameter s is 
               
               
                 less than or equal to {tilde over (ε)} 
               
               
                 C 10  = s(t) ≦ δ 1  &amp; {tilde over (s)}(t) &gt; ε 
               
               
                 Go from PreSAT to NonSAT if the time average of the measured 
               
               
                 parameter s is less than or equal to δ 1  and 
               
               
                 the instantaneous value of s is greater than the instantaneous value of ε 
               
               
                 C 11  = {tilde over (s)}(t) &gt; {tilde over (δ)} 1   
               
               
                 Remain in PreSAT if the time average of the measured 
               
               
                 parameter s is greater than {tilde over (δ)} 1   
               
               
                 C 22  = (s(t) ≦ ε) &amp; ({tilde over (s)}(t) ≦ ε) 
               
               
                 Remain in SAT if the instantaneous value of the probability parameter s is 
               
               
                 less than or equal to ε and 
               
               
                 the time average of the measured parameter s is less or equal to ε 
               
               
                 C 21  = {tilde over (s)}(t) &gt; {tilde over (δ)} 2   
               
               
                 Go from SAT to PreSAT if the time average of the measured parameter s 
               
               
                 is greater than {tilde over (δ)} 2   
               
               
                 C 20  =  C 21 |C 22     
               
               
                 Go from SAT to NonSAT if the logical complement of the disjunction of 
               
               
                 the two conditions C21 and C22 holds 
               
               
                   
               
             
          
         
       
     
     Mitigation 
     Mitigation policy represents action to be taken in each state of the WiSAT state machine.
         NonSAT—no action will be taken.   PreSAT—actions that could be taken include queue length change or dropping (voice) packets, or more generally packets of a given access category, according to one of the algorithms below.   SAT—action could be more drastic, a combination of involving admission 5 control and dropping packets of a given access category (i.e. voice).       

     Algorithm: Act on Drop Rate N 
     Parameters: 
     Max and Min Drop Rate N 0 , N SAT    
     Critical Threshold {tilde over (γ)} 
     Output: N 
     
       
         
           
             
               N 
               ⁡ 
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               { 
               
                 
                   
                     
                       - 
                       1 
                     
                   
                   
                     
                       if 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       NonSAT 
                     
                   
                 
                 
                   
                     
                       
                         N 
                         0 
                       
                       + 
                       
                         
                           β 
                           2 
                         
                         ( 
                         
                           
                             
                               d 
                               ~ 
                             
                             ⁡ 
                             
                               ( 
                               t 
                               ) 
                             
                           
                           - 
                           
                             γ 
                             ~ 
                           
                         
                         ) 
                       
                     
                   
                   
                     
                       if 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       PreSAT 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         ( 
                         
                           
                             β 
                             2 
                           
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           is 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           negative 
                           ⁢ 
                           
                               
                           
                           ⁢ 
                           slope 
                         
                         ) 
                       
                     
                   
                 
                 
                   
                     
                       N 
                       SAT 
                     
                   
                   
                     
                       if 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       SAT 
                     
                   
                 
               
             
           
         
       
     
     where N=−1 means no packet is dropped; otherwise, for N&gt;=0, it means one packet is dropped out of every N consecutive packets; N SAT =2 for example. 
     Note: If saturation does occur, then the last action taken while in PreSAT state could be continuously taken onwards, until a change of state is dictated by the conditions C21/C20. 
     Other Algorithms. Act on MAC Queue Length L 
     Other algorithm schemes, in addition to scheme 1 above, can be used to achieve similar effects: 
     Scheme 2. Design virtual queue length, L. Any incoming packet when the virtual queue is full will be dropped 
     Scheme 3. For each client, drop its every (m+1) packet; 
     Scheme 4. For each client drop the incoming packet if R packets for same client already are in the queue; 
     For example, scheme 2 proposes to focus on controlling the MAC queue length: 
     Parameters: 
     Maximum/Minimum MAC Queue Length L 0 , L MIN    
     Critical Threshold γ 
     Output: L 
     
       
         
           
             
               L 
               ⁡ 
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               { 
               
                 
                   
                     
                       L 
                       0 
                     
                   
                   
                     
                       if 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       NonSAT 
                     
                   
                 
                 
                   
                     
                       
                         L 
                         0 
                       
                       + 
                       
                         
                           β 
                           1 
                         
                         ( 
                         
                           
                             
                               d 
                               ~ 
                             
                             ⁡ 
                             
                               ( 
                               t 
                               ) 
                             
                           
                           - 
                           γ 
                         
                         ) 
                       
                     
                   
                   
                     
                       if 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         PreSAT 
                         ⁡ 
                         
                           ( 
                           
                             
                               β 
                               1 
                             
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             is 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             negative 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             slope 
                           
                           ) 
                         
                       
                     
                   
                 
                 
                   
                     
                       L 
                       min 
                     
                   
                   
                     
                       if 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       SAT 
                     
                   
                 
               
             
           
         
       
     
     3. Compendium of WiSAT Parameters 
     We recommend a parameterized implementation of WiSAT in order to be able to tune parameters of two types, for implementation of the state machine: 
     Implementation of States 
     State memory and management s 
     State smoothing rates α 0 , α 1 , α 2 , 
     s(t) 
     {tilde over (s)}(t) 
     N(t) and parameters for computing N: N 0 , N SAT )β 2 , γ 
     Implementation of transitions for each state transition (i,j) 
     O ij , Õ ij  relational parameters ≦ and &gt;for s(t), {tilde over (s)}(t) respectively 
     δ ij , {tilde over (δ)} ijij  threshold parameters for s(t), {tilde over (s)}(t) respectively 
     r ij  logical relational operator AND, OR 
     For example, we have performed simulation of the WiSAT and mitigation policies (however with only with simulated decision of mitigation, without really intervening in the control loop to drop any packets) on the example state machine before, with the following parameters: 
     WiSAT classifier learned using a linear SVM, with features aggregated over periods of 10 readings of 100 msec, i.e. over windows of 1 sec; 
     WiSAT classifier is able to take a decision every 100 msec: therefore the window (time step) W for WiSTATS and decision making is 100 msec; 
     WiSAT classifier function: α=α 0 =α 1 =α 2 =0.1; 
     State transition conditions (logic) Cij (i,j=0,1,2) given in the example 
     Classifier distance (WiSAT function) parameters for the state transitions: 
     {tilde over (δ)} 0 , δ 0 , {tilde over (δ)} 1 , {tilde over (δ)} 2 , ε given in the example have the following values:
 
{tilde over (δ)} 0 =2.1, δ 0 =2.1, {tilde over (δ)} 1 , =2.0, {tilde over (δ)} 2 , =1.0, ε=0.5
 
 N  algorithm parameters  N   0 =45 , N   SAT =2, β 2 =43/({tilde over (δ)} 1 ,−2.8), γ={tilde over (δ)} 1  
 
     A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.