Active Queue Management (AQM) based Internet Congestion Control October 1 2002 Seungwan Ryu (sryu@eng.buffalo.edu) PhD Student of IE Department University at Buffalo Contents Internet Congestion Control Active Queue Management (AQM) Control-Theoretic design of AQM Performance Evaluation Summary and Issues for Further study References I. Internet Congestion Control Internet Traffic Engineering What is Congestion ? Congestion Control and Avoidance TCP Congestion Control Active Queue management (AQM) Other Approaches Measurement: for reality check Experiment: for Implementation Issues Analysis: Bring fundamental understanding of systems May loose important facts because of simplification Simulation: Internet Traffic Engineering Complementary to analysis: Correctness, exploring complicate model May share similar model to analysis What is congestion ? The aggregate demand for bandwidth exceeds the available capacity of a link. What will be occur ? What is Congestion ? Performance Degradation • • • • Multiple packet losses Low link utilization (low Throughput) High queueing delay Congestion collapse What is congestion ? (2) Congestion Control Open-loop control • Mainly used in circuit switched network (GMPLS) Closed-loop control • Mainly used in packet switched network • Use feedback information: global & local Implicit feedback control • End-to-end congestion control • Examples: TCP Tahoe, TCP Reno, TCP Vegas, etc. Explicit feedback control • Network-assisted congestion control • Examples: IBM SNA, DECbit, ATM ABR, ICMP source quench, RED, ECN Two approaches of handling Congestion Congestion Control (Reactive) • Play after the network is overloaded Congestion Control and Avoidance Congestion Avoidance (Proactive) • Play before the network becomes overloaded Paradigms: Paradigms of the Current Internet For design and Operation: “Keep it simple” Design principle of TCP: These paradigms are aimed for best-effort service “Do not ask the network to do what you can do yourself” As the Internet evolves and grows in size and number of users, the network has experienced performance degradation such as more packet drop In addition, service evolves to a variety of services Question: Do we need new paradigm? Uses end-to-end congestion control Uses implicit feedback • e.g., time-out, triple duplicated ACKs, etc. Uses window based flow control • cwnd = min (pipe size, rwnd) • self-clocking • slow-start and congestion avoidance TCP Congestion Control Examples: • TCP Tahoe, TCP Reno, TCP Vegas, etc. TCP Congestion Control (2) Slow-start and Congestion Avoidance cwnd Slow Start Congestion Avoidance W* W+1 W*/2 RTT Time RTT TCP Tahoe Use slow start/congestion avoidance Fast retransmit: an enhancement detect packet (segments) drop by three duplicate ACKs W = W/2, and enter congestion avoidance Upon receiving three duplicate ACKs TCP Reno (fast recovery) TCP Congestion Control (3) ssthresh = W/2, and retransmit missing packets Upon receiving next ACK: W = ssthresh Allow the window size grow fast to keep the pipeline full TCP (Tahoe) sender can only know about a single lost per RTT SACK option provides better recovery from multiple losses TCP SACK (Selected Acknowledgement) The sender can transmit all lost packets But those packets may have already been received Operation TCP Congestion Control (4) Add SACK option into TCP header The receiver sends back SACK to sender to inform the reception of the packet Then, the sender can retransmit only the missing packet Smart-market [Mackie-Mason 1995] A price is set for each packet depends on the level of demand for bandwidth Admit packets with bid prices that exceed the cut-off value The cut-off is determined by the marginal cost Paris metro pricing (PMP) [Odlyzko] Other Approaches : Pricing To provide differentiated services The network is partitioned into several logical separate channels with different prices With less traffic in channel with high price, better QoS would be provided. Network resource allocation problem: User problems Network problems User problem sends bandwidth request with price Network problem allocate bandwidth to each users by solving NLP User problem Users can be distinguished by a utility function A user wants to maximize its benefit (utility - cost) Network problem Concept Other approaches (2): Optimization maximize aggregate utilities subject to the link capacity constraints Then, it can be formulated to a Non-linear programming (NLP) problem Two fairness issues Fair bandwidth sharing: network-centric Fair packet drop (mark): user-centric Max-min fair [Bertsekas, 1992]: No rate can be increased without simultaneous decreasing other rate which is already small provides equal treatment to all flows Proportional fair [Kelly 1998] A feasible set of rates are non-negative and the aggregate rate is not greater than link capacity and the aggregate of proportional change is zero or negative provides different treatment of each flow according to their rates Fair bandwidth sharing Other approaches (3): Fairness Internet Congestion Control Active Queue Management (AQM) Control-Theoretic design of AQM Performance Evaluation Summary and Issues for Further study References II. Active Queue Management (AQM) Active Queue Management (AQM) What is AQM? Examples of AQM: RED and Variants More about AQM: Extensions Performance degradation in current TCP Congestion Control Multiple packet loss Low link utilization Congestion collapse The role of the router becomes important Active Queue Management (AQM) Control congestion effectively in networks Allocate bandwidth fairly Problems with current router algorithm Use FIFO based tail-drop (TD) queue management Two drawbacks with TD: lock-out, full-queue Lock-out: a small number of flows monopolize usage of buffer capacity Full-queue: The buffer is always full (high queueing delay) Possible solution: AQM Definition: A group of FIFO based queue management mechanisms to support end-to-end congestion control in the Internet AQM (2) Goals of AQM Reducing the average queue length: Decreasing end-to-end delay Reducing packet losses: More efficient resource allocation Methods: Drop packets before buffer becomes full Use (exponentially weighted) average queue length as an congestion indicator Examples: RED, BLUE, ARED, SRED, FRED,…. AQM (3) Random Early Detection (RED) AQM (4) Use network algorithm to detect incipient congestion Design goals: • minimize packet loss and queueing delay • avoid global synchronization • maintain high link utilization • removing bias against bursty source Achieve goals by • randomized packet drop • queue length averaging RED avg Q = (1 − WQ )avg Q + WQ Q Pd = pmax maxth − minth 1 avgQ < minth minth ≤ avgQ < maxth maxth ≤ avgQ P 0 avgQ − minth Concept • Parameter tuning problem • Actual queue length fluctuation Upon packet loss if (now - last_update >freeze_t) Pm = pm + d1 last_update = now Decouple congestion control from queue length Use only loss and idle event as an indicator Maintains a single drop prob., pm Drawback upon link idle if (now - last_update >freeze_t) Pm = pm - d2 last_update = now To avoid drawbacks of RED Can not avoid some degree of multiple packet loss and/or low utilization Algorithm AQM (5) : BLUE Concept psred = (1 / 4) pmax 0 (1 / 3) B ≤ q < B (1 / 6) B ≤ q < (1 / 3) B q < (1 / 6) B P(i)-1 is not a good estimator for heterogeneous traffic Parameter tuning problem: Psred, Pzap, etc. Stabilize queue occupancy when traffic load is high. What happen when traffic load is low ? Drawbacks pmax stabilize queue occupancy use actual queue length Penalize misbehaving flows ith arriving packet is compared with a randomly selected one from Zombie list Hit = 1, if they are from same flow = 0, if NOT p(i)=hit frequency=(1-α)p(i-1)+αHit p(i)-1: estimator of # of active flows Packet drop probability 1 ) Pzap = Psred * min(1, ( 256 × P(i )) 2 Algorithm AQM (6) : SRED Adapt aggresiveness of RED according to the traffic load change adapt maxp based on queue behavior Increase maxp when avgQ crosses above maxth Decrease maxp when avgQ crosses below minth freeze maxp after changing to prevent oscillation Operation AQM (7) : ARED RED fail to regulate unresponsive flows UDP do not adjust sending rate upon receiving congestion signal UDP flows consumes more bandwidth than fair share FRED [Lin & Morris, 1997] Tracks the # of packets in the queue from each flow maintain logical queues for each active flows in a FIFO queue Fair share for a flow is calculated dynamically Unresponsive flows are identified and penalized Responsive (TCP) vs. unresponsive flows (UDP) More about AQM Drop packets proportional to bandwidth usage See TCP-friendly website (http://www.psc.edu/networking/tcp_friendly.html) RIO (RED In and Out) [Clark98] CBT (Class based Thresholds) [Floyd1995] Try to support a multitude of transport protocol (TCP, UDP, etc.) Classify several types of services rather than one best-effort service. Then, apply different AQM control to each services classes. Examples: Supporting QoS and DiffServ with AQM More about AQM (2) Separate flows into two classes: IN and OUT service profile Router maintains two different statistics for each service profiles. RIO (RED in and out) [Clark 1998] More about AQM (3) Different parameters and average queue lengths Avgs: for IN packet: avgIN, for OUT profile: avgTOTAL When congested, apply different control to each classes Drop Prob. 1 Pmax_OUT Pmax_IN Minth_OUT Maxth_OUT = Minth_IN Maxth_IN avg Fairness problem in case of changing traffic mix static threshold setting Total utilization can be fluctuated Dynamic-CBT [Chung2000] Track the number of active flows of each class dynamically adjust threshold values of each class Drawbacks packets are classified into several classes maintain a single queue but allocate fraction of capacity to each class Apply AQM (RED) based control to each class Once a class occupies its capacity, discard all arriving packets CBT [Floyd 1995] More about AQM (4)