Title: Congestion Control contd: Brief Version
1Congestion Control (contd) Brief Version
- Shivkumar Kalyanaraman
- Rensselaer Polytechnic Institute
- shivkuma_at_ecse.rpi.edu
- http//www.ecse.rpi.edu/Homepages/shivkuma
- Based in part upon slides of Prof. Raj Jain
(OSU), Srini Seshan (CMU), J. Kurose (U Mass),
I.Stoica (UCB)
2Overview
- Queue Management Schemes RED, ARED, FRED, BLUE,
REM - TCP Congestion Control (CC) Modeling, TCP
Friendly CC - Accumulation-based Schemes TCP Vegas, Monaco
- Static Optimization Framework Model for
Congestion Control - Explicit Rate Feedback Schemes (ATM ABR ERICA)
- Refs Chap 13.21, 13.22 in Comer textbook
- Floyd and Jacobson "Random Early Detection
gateways for Congestion Avoidance" - Ramakrishnan and Jain, A Binary Feedback Scheme
for Congestion Avoidance in Computer Networks
with a Connectionless Network Layer, - Padhye et al, "Modeling TCP Throughput A Simple
Model and its Empirical Validation" - Low, Lapsley "Optimization Flow Control, I
Basic Algorithm and Convergence" - Kalyanaraman et al "The ERICA Switch Algorithm
for ABR Traffic Management in ATM Networks" - Harrison et al "An Edge-based Framework for Flow
Control"
3Queuing Disciplines
- Each router must implement some queuing
discipline - Queuing allocates bandwidth and buffer space
- Bandwidth which packet to serve next
(scheduling) - Buffer space which packet to drop next (buff
mgmt) - Queuing also affects latency
Traffic Sources
Traffic Classes
Class A
Class B
Class C
Drop
Scheduling
Buffer Management
4Typical Internet Queuing
- FIFO First-In-first-out
- Simplest choice
- Used widely in the Internet
- Implies single class of traffic
- Drop-tail
- Arriving packets get dropped when queue is full
regardless of flow or importance - Important distinction
- FIFO scheduling discipline
- Drop-tail drop (buffer management) policy
5Active Queue Management (AQM)
6FIFO Drop-tail Problems
- FIFO Issues In a FIFO discipline, the service
seen by a flow is convoluted with the arrivals of
packets from all other flows! - No isolation between flows full burden on e2e
control - No policing send more packets ? get more service
- Drop-tail issues
- Need large buffers to maintain high utilization
- Larger buffers gt larger steady state
queues/delays - Synchronization end hosts react to same events
because of burst loss patterns - Lock-out few flows can monopolize queue space
7Design Objectives
- Keep throughput high and delay low (i.e. knee)
- Accommodate bursts
- Queue size should reflect ability to accept
bursts rather than steady-state queuing - Improve TCP performance with minimal hardware
changes
8Queue Management Ideas/Mechanisms
- Synchronization, lock-out
- Random drop drop a randomly chosen packet
- High steady-state queuing vs burstiness
- Early drop Drop packets before queue full
- Do not drop packets too early confusion
between burstiness and overload - Misbehaving vs Fragile flows
- Drop packets proportional to queue occupancy of
flow - Explicitly protect fragile flows from packet loss
(eg color them or classify them on the fly) - Drop packets vs Mark packets
- Dropping packets interacts w/ reliability
mechanisms - Mark packets need to trust end-systems to
respond!
9Packet Drop Dimensions
Aggregation
Single class
Per-connection state
Class-based queuing
Drop position
Tail
Head
Random location
Early drop
Overflow drop
10Random Early Detection (RED)
Min thresh
Max thresh
Average Queue Length
P(drop)
1.0
maxP
minth
maxth
Avg queue length
11Random Early Detection (RED)
- Maintain running average of queue length
- Low pass filtering
- If avg Q lt minth do nothing
- Low queuing, send packets through
- If avg Q gt maxth, drop packet
- Protection from misbehaving sources
- Else mark (or drop) packet in a manner
proportional to queue length bias to protect
against synchronization - Pb maxp(avg - minth) / (maxth - minth)
- Further, bias Pb by history of unmarked packets
- Pa Pb/(1 - countPb)
12RED Issues
- Issues
- Breaks synchronization well
- Extremely sensitive to parameter settings
- Wild queue oscillations upon load changes
- Fail to prevent buffer overflow as sources
increases - Does not help fragile flows (eg small window
flows or retransmitted packets) - Does not adequately isolate cooperative flows
from non-cooperative flows - Isolation
- Fair queuing achieves isolation using per-flow
state - RED penalty box Monitor history for packet
drops, identify flows that use disproportionate
bandwidth
13REM Athuraliya Low 2000
- Main ideas
- Decouple congestion performance measure
- Price adjusted to match rate and clear buffer
- Marking probability exponential in price
REM
RED
1
Avg queue
14Comparison of AQM Performance
15Explicit 1-bit Feedback ECN
16Explicit 1-bit Feedback DECbit
- Basic ideas
- Mark packets instead of dropping them
- Special support at both routers and e2e
- Scheme
- On congestion, router sets congestion indication
(CI) bit on packet - Receiver relays bit to sender
- Sender adjusts sending rate
- Key design questions
- When to set CI bit?
- How does sender respond to CI?
17Setting CI Bit
Queue length
Current time
Time
Previous cycle
Current cycle
Averaging interval
AVG queue length (previous busyidle current
interval)/(averaging interval)
18DECbit Source
- Source averages across acks in window
- Congestion if gt 50 of bits set
- Will detect congestion earlier than TCP
- Additive increase, multiplicative decrease
- Decrease factor 0.875
- Increase factor 1 packet
- After change, ignore DECbit for packets in flight
(vs. TCP ignore other drops in window) - No slow start
19Congestion Control Models
- Loss-based TCP Reno etc
- Accumulation-based schemes TCP Vegas, Monaco
- Use per-flow queue contribution (backlog) as a
congestion estimate instead of loss rate - Explicit rate-based feedback
- Controller at bottleneck assigns rates to each
flow - Packet Pair congestion control Not covered
- WFQ at bottlenecks isolates flows, and gives fair
rates - Packet-pair probing discovers this rate and sets
source rate to that.
20TCP Reno (Jacobson 1990)
window
time
CA
SS
SS Slow Start CA Congestion Avoidance
21TCP Vegas (Brakmo Peterson 1994)
window
time
CA
SS
- Converges, no retransmission
- provided buffer is large enough
22Accumulation-Based Congestion Control (a.k.a
delay-based)
23Accumulation-based Congestion Control
- Allocate bandwidth by managing queue
- Packet buffered is a necessary condition for
being serviced - For FIFO scheduling, this is also a sufficient
condition - gt we can control buffered packets to control
flow rates
queue
link
router
router
source
destination
23
24Queue vs Accumulation Behavior
- queue qij(t) -- info of flow i queued in a fifo
router j
- accumulation ai(t) -- info of flow i queued in a
set of fifo routers 1J
- the collective queuing behavior of a set of fifo
routers looks similar to that of one single fifo
router
24
25Accumulation-Based Control Policy
- control objective keep
- if ,no way to probe increase of available
bw
25
26Accumulation Single Queue
- flow i at router j
- arrival curve Aij(t)
- service curve Sij(t)
- cumulative
- continuous
- non-decreasing
- if no loss, then
26
27Accumulation Series of Queues
27
28Accumulation Distributed, Time-shifted Sum
29Accumulation Estimation Monaco
time
1
j
j1
J
30Accumulation Estimation Monaco
1
jf
Jf
jf1
djf
fi
data
µij
?i,j1
µi
?i
ctrl
Jb
jb1
jb
1
djb
ctrl
out-of-bd ctrl
classifier
fifo
in-band ctrl, data pkt
30
31Monaco Congestion Control Scheme
- congestion estimation
- out-of-band and in-band control packets
- congestion response
- if qm lt a, cwnd(k1) cwnd(k) 1
- if qm gt ß, cwnd(k1) cwnd(k) 1 1 a lt ß
3
31
32TCP Vegas
- congestion estimation
- define qv ( cwnd / rttp cwnd / rtt ) rttp
- where rttp is round trip propagation delay
(basertt) - congestion response
- if qv lt a, cwnd(k1) cwnd(k) 1
- if qv gt ß, cwnd(k1) cwnd(k) 1 1 a lt ß
3
32
33Vegas Accumulation Estimator
- the physical meaning of qv
- rtt rttp rttq rttq is queuing time
- qv ( cwnd / rttp cwnd / rtt ) rttp
- ( cwnd / rtt ) ( rtt rttp )
- ( cwnd / rtt ) rttq if rtt is typical
- sending rate rttq littles law
- packets backlogged littles law again
- so vegas maintains a ß number of packets queued
inside the network - it adjusts sending rate additively to achieve this
33
34Accumulation Estimation Vegas
34
35Vegas vs. Monaco estimators
- Vegas accumulation estimator
- ingress-based
- round trip (forward data path and backward ack
path) - sensitive to ack path queuing delay
- sensitive to round trip propagation delay
measurement error - Monaco accumulation estimator
- egress-based
- one way (only forward data path)
- insensitive to ack path queuing delay
- no need to explicitly know one way propagation
delay
36Queue, Utilization w/ Basertt Errors
36
37Explicit Rate (ER) Feedback Based Congestion
Control
38ATM ABR Explicit Rate Feedback
RM Cell
Source
Destination
- Sources regulate transmission using a rate
parameter - Feedback scheme
- Every (n1)th cell is an RM (control) cell
containing current cell rate, allowed cell rate,
etc - Switches adjust the rate using rich information
about congestion to calculate explicit, multi-bit
feedback - Destination returns the RM cell to the source
- Control policy Sources adjust to the new rate
39ERICA Design Goals
- Allows utilization to be 100 (better tracking)
- Allows operation at any point between the knee
and the cliff - The queue length can be set to any desired value
(tracking). - Max-min fairness (fairness)
100
Link Utilization
Throughput
Time
Load
QueueLength
Delay
50
Load
40Efficiency vs Fairness OSU Scheme
- Efficiency high utilization
- Fairness Equal allocations for contending
sources - Worry about fairness after utilization close to
100 utilization . Target Utilization (U) and
Target Utilization Band (TUB).
overload region
worry about fairness here
999591
TotalLoad
TUB
U
underload region
Time
41ERICA Switch Algorithm
- Overload Input rate/Target rate
- Fair Share Target rate/ of active VCs
- This VCs Share VCs rate /Overload
- ER Max(Fair Share, This VCs Share)
- ER in Cell Min(ER in Cell, ER)
- This is the basic algorithm.
- Has more steps for improved fairness, queue
management, transient spike suppression,
averaging of metrics.
42TCP Rate Control Eg Packeteer
- Step 1 Explicit control of window
Congestion window (CWND)
W
Actual Window Min(Cwnd, Wr)
- Step 2 Control rate of acks (ack-bucket)
Tradeoff ack queues in reverse path for fewer
packets in forward path
r
pkts
W
acks
R
Time
43TCP Modeling Stochastic Approach TCP
Friendliness Concept
44TCP Modeling
- Given the congestion behavior of TCP can we
predict what type of performance we should get? - What are the important factors
- Loss rate
- Affects how often window is reduced
- RTT
- Affects increase rate and relates BW to window
- RTO
- Affects performance during loss recovery
- MSS
- Affects increase rate
45Overall TCP Behavior
- Lets focus on steady state (congestion
avoidance) with no slow starts, no timeouts and
perfect loss recovery - Some additional assumptions
- Fixed RTT
- No delayed ACKs
Window
Time
46Derivation
window
t
- Each cycle delivers 2w2/3 packets
- Assume each cycle delivers 1/p packets 2w2/3
- Delivers 1/p packets followed by a drop
- gt Loss probability p/(1p) p if p is small.
- Hence
47 Law
- Equilibrium window size
- Equilibrium rate
- Empirically constant a 1
- Verified extensively through simulations and on
Internet - References
- T.J.Ott, J.H.B. Kemperman and M.Mathis (1996)
- M.Mathis, J.Semke, J.Mahdavi, T.Ott (1997)
- T.V.Lakshman and U.Mahdow (1997)
- J.Padhye, V.Firoiu, D.Towsley, J.Kurose (1998)
48Implications
- Applicability
- Additive increase multiplicative decrease (Reno)
- Congestion avoidance dominates
- No timeouts, e.g., SACKRH
- Small losses
- Persistent, greedy sources
- Receiver not bottleneck
- Implications
- Reno equalizes window
- Reno discriminates against long connections
- Halving throughput gt quadrupling loss rate!
49Refinement (Padhye, Firoin, Towsley Kurose
1998)
- Renewal model including
- FR/FR with Delayed ACKs (b packets per ACK)
- Timeouts
- Receiver wnd limitation
- Source rate
- When p is small and Wr is large, reduces to
50TCP Friendliness
- What does it mean to be TCP friendly?
- TCP is not going away
- Any new congestion control must compete with TCP
flows - Should not clobber TCP flows and grab bulk of
link - Should also be able to hold its own, i.e. grab
its fair share, or it will never become popular
51Binomial Congestion Control
- In AIMD
- Increase Wn1 Wn ?
- Decrease Wn1 (1- ?) Wn
- In Binomial
- Increase Wn1 Wn ?/Wnk
- Decrease Wn1 Wn - ? Wnl
- k0 l1 ? AIMD
- l lt 1 results in less than multiplicative
decrease - Good for multimedia applications
52Binomial Congestion Control
- Rate 1/ (loss rate)1/(kl1)
- If kl1 ? rate 1/p0.5
- TCP friendly if kl 1
- AIMD (k0, l1) is the most aggressive of this
class - SQRT (k1/2,l1/2) and IIAD (k1,l0)
- Good for applications that want to probe quickly
and can use any available bandwidth
53Optimization Models for Congestion Control
54Model
- Sources s
- L(s) - links used by source s
- Us(xs) - utility if source rate xs
- Network
- Links l of capacities cl
-
55Example
56Static Optimization Framework
pl(t)
xi(t)
- Duality theory ? equilibrium
- Source rates xi(t) are primal variables
- Congestion measures pl(t) are dual variables
- Congestion control is optimization process over
Internet
57Overview equilibrium
- Interaction of source rates xs(t) and congestion
measures pl(t) - Duality theory
- They are primal and dual variables
- Flow control is optimization process
- Example congestion measure
- Loss (Reno)
- Queueing delay (Vegas)
58Overview equilibrium
- Congestion control problem
- TCP/AQM protocols (F, G)
- Maximize aggregate source utility
- With different utility functions Us(xs)
59Primal problem
- Assumptions
- Strictly concave increasing Us
- Unique optimal rates xs exist
- Direct solution impractical
60Duality Approach
61Gradient algorithm
Theorem (Low, Lapsley, 1999) Converges to
optimal rates in an asynchronous environment
62Active queue management
- Idea provide congestion information by
probabilistically marking packets - Issues
- How to measure congestion (p and G)?
- How to embed congestion measure?
- How to feed back congestion info?
63RED (Floyd Jacobson 1993)
- Congestion measure average queue length
- pl(t1) pl(t) xl(t) - cl
- Embedding p-linear probability function
marking
1
Avg queue
64REM (Athuraliya Low 2000)
- Congestion measure price
- pl(t1) pl(t) g(al bl(t) xl (t) - cl
) - Embedding exponential probability function
65Key features
- Clear buffer and match rate
Theorem (Paganini 2000) Global asymptotic
stability for general utility function (in the
absence of delay)
66AQM Summary
67Reno F
for every ack (ca) W 1/W for every
loss W W/2
Primal-dual algorithm
x(t1) F( p(t), x(t) ) p(t1) G( p(t),
x(t) )
68Reno Implications
- Equilibrium characterization
- Duality
- Congestion measure p loss
- Implications
- Reno equalizes window wi ti xi
- inversely proportional to delay ti
- dependence for small p
- DropTail fills queue, regardless of queue
capacity
69Reno gradient algorithm
- TCP approximate version of gradient algorithm
70Summary
- Active Queue Management (AQM) RED, REM etc
- Alternative models
- Accumulation-based schemes Monaco, Vegas
- Explicit Rate-based Schemes
- TCP stochastic modeling
- Static (Duality) Optimization Framework