Active Queue Management (AQM) based Internet Congestion Control October 1 2002 ()

advertisement
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)
Download