Professional Documents
Culture Documents
of TCP/AQM
Steven Low
CS & EE, Caltech
netlab.caltech.edu
Sigcomm
August 2001
Introduction
TCP/AQM algorithms
Duality model
Equilibrium of TCP/AQM
Linear dynamic model
Dynamics of TCP/AQM
A scalable control
Schedule
Application Message
MSS
TCP Segment
TCP hdr TCP data
IP Packet 20 bytes
IP hdr IP data
Ethernet Frame 20 bytes
Transmission
Quality of Service
Can we provide QoS with simplicity?
Ethernet, ATM, POS, WDM, … Not with current TCP…
… but we can fix it!
IETF
Internet Engineering Task Force
Standards organisation for Internet
Publishes RFCs - Requests For Comment
standards track: proposed, draft, Internet
non-standards track: experimental, informational
best current practice
poetry/humour (RFC 1149: Standard for the transmission of
IP datagrams on avian carriers)
TCP should obey RFC
no means of enforcement
some versions have not followed RFC
http://www.ietf.org/index.html
Simulation
ns-2: http://www.isi.edu/nsnam/ns/index.html
Wide variety of protocols
Widely used/tested
SSFNET: http://www.ssfnet.org/homePage.html
Scalable to very large networks
Care should be taken in simulations!
Multiple independent simulations
confidence intervals
transient analysis – make sure simulations are long enough
Wide parameter ranges
All simulations involve approximation
Other Tools
tcpdump
Get packet headers from real network traffic
tcpanaly (V.Paxson, 1997)
Analysis of TCP sessions from tcpdump
traceroute
Find routing of packets
RFC 2398
http://www.caida.org/tools/
Part I
Algorithms
Outline
Introduction
TCP/AQM algorithms
Window flow control
Source algorithm: Tahoe, Reno, Vegas
Link algorithm: RED, REM
Duality model
Equilibrium of TCP/AQM
Linear dynamic model
Dynamics of TCP/AQM
A scalable control
Early TCP
Pre-1988
Go-back-N ARQ
Detects loss from timeout
Retransmits from lost packet onward
Receiver window flow control
Prevent overflows at receive buffer
Flow control: self-clocking
Why Flow Control?
RTT
Source 1 2 W 1 2 W
time
data ACKs
Destination 1 2 W 1 2 W
time
W MSS
Source rate = bps
RTT
load
Congestion Control
TCP seeks to
Achieve high utilization
Avoid congestion
Share bandwidth
Window flow control
Source rate = W packets/sec
RTT
Adapt W to network (and conditions)
W = BW x RTT
TCP Window Flow Controls
Receiver flow control
Avoid overloading receiver
Set by receiver
awnd: receiver (advertised) window
Network flow control
Avoid overloading network
Set by sender
Infer available network capacity
cwnd: congestion window
Set W = min (cwnd, awnd)
Receiver Flow Control
Introduction
TCP/AQM algorithms
Window flow control
Source algorithm: Tahoe, Reno, Vegas
Link algorithm: RED, REM
Duality model
Equilibrium of TCP/AQM
Linear dynamic model
Dynamics of TCP/AQM
A scalable control
TCP Congestion Control
Tahoe (Jacobson 1988)
Slow Start
Congestion Avoidance
Fast Retransmit
Reno (Jacobson 1990)
Fast Recovery
Vegas (Brakmo & Peterson 1994)
New Congestion Avoidance
RED (Floyd & Jacobson 1993)
Probabilistic marking
REM (Athuraliya & Low 2000)
Clear buffer, match rate
Others…
Variants
Tahoe & Reno
NewReno
SACK
Rate-halving
Mod.s for high performance
AQM
RED, ARED, FRED, SRED
BLUE, SFB
REM, PI
TCP Tahoe (Jacobson 1988)
window
time
SS CA
3
4
5
6
7
8
ACK
2 1 RTT
Packets
1 2 3 4 5 6 7
Acknowledgements
1 2 3 3 3 3
Fast Retransmit
Wait for a timeout is quite long
Immediately retransmits after 3 dupACKs
without waiting for timeout
Adjusts ssthresh
flightsize = min(awnd, cwnd)
ssthresh max(flightsize/2, 2)
Enter Slow Start (cwnd = 1)
Successive Timeouts
When there is a timeout, double the RTO
Keep doing so for each lost retransmission
Exponential back-off
Max 64 seconds1
Max 12 restransmits1
1 - Net/3 BSD
Summary: Tahoe
Basic ideas
Gently probe network for spare capacity
Drastically reduce rate on congestion
Windowing: self-clocking
Other functions: round trip time estimation, error
recovery
for every ACK {
if (W < ssthresh) then W++ (SS)
else W += 1/W (CA)
}
for every loss {
ssthresh = W/2
W = 1
}
TCP Tahoe (Jacobson 1988)
window
time
SS CA
window
time
SS CA
S 1 2 3 4 5 6 7 8 1 9 10 11
time
Exit FR/FR
R 0 0 0 0 0 0 0 8 time
cwnd 8 7 9 11 4
ssthresh 4 4 4 4
Fast retransmit
Retransmit on 3 dupACKs
Fast recovery
Inflate window while repairing loss to fill pipe
Summary: Reno
Basic ideas
Fast recovery avoids slow start
dupACKs: fast retransmit + fast recovery
Timeout: fast retransmit + slow start
dupACKs
congestion
avoidance FR/FR
timeout
S 1 2 3 4 5 6 7 8 9 0 1 3
time
D 0 0 0 0 0 2
time
8 9 5 timeout
8 unack’d pkts
Introduction
TCP/AQM algorithms
Window flow control
Source algorithm: Tahoe, Reno, Vegas
Link algorithm: RED, REM
Duality model
Equilibrium of TCP/AQM
Linear dynamic model
Dynamics of TCP/AQM
A scalable control
TCP Reno (Jacobson 1990)
window
time
SS CA
window
time
SS CA
Converges, no retransmission
… provided buffer is large enough
Vegas CA algorithm
for every RTT
{ if W/RTTmin – W/RTT < then W ++
if W/RTTmin – W/RTT > then W -- }
for every loss
queue size
W := W/2
Implications
Congestion measure = end-to-end queueing
delay
At equilibrium
Zero loss
Stable window at full utilization
Approximately weighted proportional fairness
Nonzero queue, larger for more sources
Convergence to equilibrium
Converges if sufficient network buffer
Oscillates like Reno otherwise
Outline
Introduction
TCP/AQM algorithms
Window flow control
Source algorithm: Tahoe, Reno, Vegas
Link algorithm: RED, REM
Duality model
Equilibrium of TCP/AQM
Linear dynamic model
Dynamics of TCP/AQM
A scalable control
RED (Floyd & Jacobson 1993)
nonadaptive
1 1
1
adaptive
1
Variant: SFB
Idea
A nonadaptive flow drives marking prob to 1
at all L bins it is mapped to
An adaptive flow may share some of its L bins
with nonadaptive flows
Nonadaptive flows can be identified and
penalized
REM 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
0.9
0.8 1
Link marking probability
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12 14 16 18 20
Avg queue
Link congestion measure
Part II
Models
Congestion Control
Heavy tail Mice-elephants
Internet
Elephant Mice
xi(t)
TCP & AQM
pl(t)
xi(t)
pl(t)
xi(t)
pl(t)
xi(t)
Introduction
TCP/AQM algorithms
Duality model
Equilibrium of TCP/AQM
Linear dynamic model
Dynamics of TCP/AQM
A scalable control
Overview: 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)
Overview: equilibrium
Congestion control problem
max
x 0
s
U s ( xs )
s
subject to x c,
l
l
l L
Primal-dual algorithm
x(t 1) F ( p (t ), x(t )) Reno, Vegas
Decouple congestion
& performance measure
DropTail
queue = 94%
REM
queue = 1.5 pkts
utilization = 92%
= 0.05, = 0.4, = 1.15
RED
min_th = 10 pkts
max_th = 40 pkts
max_p = 0.1
Overview: equilibrium
DropTail
High utilization
Fills buffer, maximize queueing delay
RED
Couples queue length with congestion measure
High utilization or low delay
REM
Decouple performance & congestion measure
Match rate, clear buffer
Sum prices
Overview: Vegas
Delay
Congestion measures: end to end queueing delay
ds
Sets rate sx (t ) s
qs (t )
Equilibrium condition: Little’s Law
Loss
No loss if converge (with sufficient buffer)
Otherwise: revert to Reno (loss unavoidable)
Fairness
Utility function U s
reno
( x ) d log x
s s s s
Proportional fairness
Model
Sources s
L(s) - links used by source s
Us(xs) - utility if source rate = xs
Network
Links l of capacities cl
x1
x1 x2 c1 x1 x3 c2
c1 c2
x2
x3
Primal problem
max
xs 0
U ( x )
s
s s
subject to x c,
l
l
l L
Assumptions
Strictly concave increasing Us
Unique optimal rates xs exist
Direct solution impractical
Prior Work
Formulation
Kelly 1997
Penalty function approach
Kelly, Maulloo and Tan 1998
Kunniyur and Srikant 2000
Duality approach
Low and Lapsley 1999
Athuraliya and Low 2000, Low 2000
Extensions
Mo & Walrand 1998
La & Anantharam 2000
Prior Work
Formulation
Kelly 1997
Penalty function approach
Kelly, Maulloo and Tan 1998
Kunniyur and Srikant 2000
Duality approach
Low and Lapsley 1999
Athuraliya and Low 2000, Low 2000
Extensions
Mo & Walrand 1998
La & Anantharam 2000
Example
max
xs 0
log x
s
s
Optimal: x1 = 1/3
x2 = x3 = 2/3
x1
1 1
x2
x3
Example
xs : proportionally fair
pl : Lagrange multiplier, (shadow) price, congestion
measure
How to compute (x, p)?
Relevance to TCP/AQM ??
x1
1 1
x2
x3
Example
xs : proportionally fair (Vegas)
pl : Lagrange multiplier, (shadow) price, congestion
measure
How to compute (x, p)?
Gradient algorithms, Newton algorithm, Primal-dual algorithms…
Relevance to TCP/AQM ??
p TCP/AQM
(t 1) protocols
p (t ) implement primal-dual
( x (t ) algorithms
x (t ) 1)
over Internet
1 1 1 2
p2 (t 1) p2 (t ) ( x1 (t ) x3 (t ) 1)
x1 Aggregate rate
1
x1 (t 1) ;
p1 (t ) p2 (t )
1 1 11
x2 (t 1) ; x3 (t 1) ;
x2 p1 (t ) p2 (t )
x3
Example
xs : proportionally fair (Vegas)
pl : Lagrange multiplier, (shadow) price, congestion
measure
How to compute (x, p)?
Gradient algorithms, Newton algorithm, Primal-dual algorithms…
Relevance to TCP/AQM ??
TCP/AQM protocols implement primal-dual algorithms over Internet
x1
1 1
x2
x3
Duality Approach
Primal : max
xs 0
U s ( xs )
s
subject to x l cl , l L
l
Dual : min D( p) max
p 0
xs 0
s s s l l l )
U ( x ) p ( c x
Primal-dual algorithm:
Primal-dual algorithm:
subject to x c,
l
l
l L
Primal-dual algorithm
x(t 1) F ( p (t ), x(t )) Reno, Vegas
Derivation
Derive (F, G) from protocol description
Fix point (x, p) = (F, G) gives equilibrium
Derive U
regard fixed point as Kuhn-Tucker condition
Introduction
TCP/AQM algorithms
Duality model (F, G, U)
Queue management G : RED, REM
TCP F and U : Reno, Vegas
Linear dynamic model
Dynamics of TCP/AQM
A scalable control
Active 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?
Avg queue
Embedding:
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12 14 16 18 20
Link congestion measure
Sum prices
1 pl ( t )
1 p s (t )
Introduction
TCP/AQM algorithms
Duality model (F, G, U)
Queue management G : RED, REM
TCP F and U : Reno, Vegas
Linear dynamic model
Dynamics of TCP/AQM
A scalable control
Utility functions
2 xi i
1
Reno U reno
( xi ) tan
i
i
2
Vegas U i
vegas
( xi ) i d i log xi
Reno: F
for every ack (ca)
{ W += 1/W }
for every loss
{ W := W/2 }
xs (t )(1 p (t )) ws (t )
ws t xs (t ) p (t )
ws 2
Primal-dual algorithm:
x(t+1) = F( p(t), x(t) ) Reno, Vegas
xs (t )(1 p (t )) ws (t )
ws t xs (t ) p (t )
ws 2
Primal-dual algorithm:
x(t+1) = F( p(t), x(t) ) Reno, Vegas
xs (t )(1 p (t )) ws (t )
ws t xs (t ) p (t )
ws 2
(1 p (t )) xs2 (t )
Fs p (t ), x (t ) xs (t ) 2
p (t )
Ds 2
Primal-dual algorithm:
x(t+1) = F( p(t), x(t) ) Reno, Vegas
RED
min_th = 10 pkts
p increasing in queue! max_th = 40 pkts
max_p = 0.1
Summary
DropTail
High utilization
Fills buffer, maximize queueing delay
RED
Couples queue length with congestion measure
High utilization or low delay
REM
Decouple performance & congestion measure
Match rate, clear buffer
Sum prices
Gradient algorithm
Gradient algorithm
source : xi (t 1) U i'1 (qi (t ))
link : pl (t 1) [ pl (t ) ( yl (t ) cl )]
Theorem (ToN’99)
Converge to optimal rates in asynchronous
environment
Reno & gradient algorithm
Gradient algorithm
source : xi (t 1) U i'1 (qi (t ))
link : pl (t 1) [ pl (t ) ( yl (t ) cl )]
(1 qi (t )) xi2 (t )
Fi qi (t ), xi (t ) xi (t ) qi (t )
i2 2
Reno & gradient algorithm
Gradient algorithm
source : xi (t 1) U i'1 (qi (t ))
link : pl (t 1) [ pl (t ) ( yl (t ) cl )]
U i'1 (qi (t ))
Outline
Introduction
TCP/AQM algorithms
Duality model (F, G, U)
Queue management G : RED, REM
TCP F and U : Reno, Vegas
Linear dynamic model
Dynamics of TCP/AQM
A scalable control
Vegas
for every RTT
{ if W/RTTmin – W/RTT < then W ++
if W/RTTmin – W/RTT > then W -- }
for every loss
queue size
W := W/2
1
F: xs t 1 xs (t ) 2 if ws (t ) d s xs (t ) s d s
Ds
1
xs t 1 xs (t ) 2 if ws (t ) d s xs (t ) s d s
Ds
xs t 1 xs (t ) else
U reno
s
( x ) d log x
s s s s
Proportional fairness
Vegas & Basic Algorithm
Basic algorithm
source : xs (t 1) U s'1 ( p(t ))
TCP smoothed version of Basic Algorithm …
Vegas & Gradient Algorithm
Basic algorithm
source : xs (t 1) U s'1 ( p(t ))
TCP smoothed version of Basic Algorithm …
Vegas
1
xs t 1 xs (t ) 2 if xs (t ) xs (t )
Ds
1
xs t 1 xs (t ) 2 if xs (t ) xs (t )
Ds
xs t 1 xs (t ) else
U s'1 ( p(t ))
Validation
meausred theory
xs t 1 xs (t ) else
Vegas/REM
To preserve Vegas utility function & rates
xs ds
s qs end2end queueing delay
REM
xs :
Clear buffer estimate
ds
s Ds of
ds ds
Sum prices : estimate of ps
Vegas/REM
1
xs t 1 xs (t ) 2 if xs (t ) xˆ s (t )
Ds
1
xs t 1 xs (t ) 2 if xs (t ) xˆ s (t )
Ds
xs t 1 xs (t ) else
Vegas/REM
To preserve Vegas utility function & rates
xs s ds
ps end2end price
REM
Clear buffer : estimate of ds
Sum prices : estimate of ps
Vegas/REM
1
xs t 1 xs (t ) 2 if xs (t ) xˆ s (t )
Ds
1
xs t 1 xs (t ) 2 if xs (t ) xˆ s (t )
Ds
xs t 1 xs (t ) else
Vegas/REM
To preserve Vegas utility function & rates
xs s ds
ps end2end price
REM
Clear buffer : estimate of ds
Sum prices : estimate of ps
Vegas/REM
1
xs t 1 xs (t ) 2 if xs (t ) xˆ s (t )
Ds
1
xs t 1 xs (t ) 2 if xs (t ) xˆ s (t )
Ds
xs t 1 xs (t ) else
Performance
peak = 43 pkts
utilization : 90% - 96%
Vegas/REM Vegas
Conclusion
Introduction
TCP/AQM algorithms
Duality model (F, G, U)
Equilibrium of TCP/AQM
Linear dynamic model
Stability of TCP/AQM
A scalable control
Model assumptions
Small marking probabilities
End to end marking probability
1 (1 pl ) pl
Congestion avoidance
l
dominates
l
Window
70
60
50
Window (pkts)
40
individual window
30
20
10
0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
time (ms)
Window
Ns-2 simulations, 50 identical FTP sources, single link 9 pkts/ms, RED marking
Stable: 20ms delay
60 700
600
50
40
individual window
400
30 average window
300
20
200
10
100
0 0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
time (ms) time (ms)
Window Queue
Ns-2 simulations, 50 identical FTP sources, single link 9 pkts/ms, RED marking
Unstable: 200ms delay
Window
70
individual window
60
50
Window (pkts)
40
30
20
10
0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
time (10ms)
Window
Ns-2 simulations, 50 identical FTP sources, single link 9 pkts/ms, RED marking
Unstable: 200ms delay
Window Instantaneous queue
70 800
individual window
60 700
600
50
40
400
Window
30
300
20
200
10
average window 100
0 0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
time (10ms) time (10ms)
Window Queue
Ns-2 simulations, 50 identical FTP sources, single link 9 pkts/ms, RED marking
Other effects on queue
Instantaneous queue Instantaneous queue (50% noise) Instantaneous queue (pkts)
800 800 800
0 0 0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
time (ms) time (sec) time (sec)
200ms
700
0 0 0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100
time (10ms) time (sec) time (sec)
Effect of instability
Larger jitters in throughput
Lower utilization
Mean and variance of individual window
160
140
120 variance
100
window
80
60
40
mean
20
0
No noise
20 40 60 80 100 120 140 160 180 200
delay (ms)
Linearized system
x y
Rf(s)
F1 G1
TCP Network AQM
FN GL
q p
Rb (s)
’
(1 qi (t )) xi2 (t )
Fi qi (t ), xi (t ) xi (t ) qi (t )
i2 2
~
Gl pl (t ), yl (t ) : Gl ( zl (t ), pl (t ), yl (t ))
Linearized system
x y
Rf(s)
F1 G1
FN GL
q p
Rb (s)
’
1 c 1
L( s ) e i s
p *
( s p w ) s c s 1
* *
xn n s
i i i
c n n
e
Nyquist plot of h(v, theta)
2
0
-2
-4
Im
-6
-8
-10
-10 -5 0 5 10 15
Re
Stability condition
Theorem
1
TCP/RED stable if c | H |
3 3
Nyquist plot of h(v, theta)
2
Small
-2
-4 Slow response
Im
Large delay
-6
-8
-10
-10 -5 0 5 10 15
Re
Stability condition
Theorem
1
TCP/RED stable if c | H |
3 3
10
Nyquist plot of h(v, theta) x 10 Stability condition
2 4.5
N=200 c=50 pkts/ms
4
0
3.5
2.5
-4 c=40
Im
-6 1.5 c=10
1 c=30
-8
0.5
c=20
-10 0
-10 -5 0 5 10 15 20 30 40 50 60 70 80 90 100
Re delay (ms)
Validation
Critical frequency (Hz)
Round trip propagation delay at critical frequency (ms) 5
100
4.5
95
4
90
3.5
85
80
3
frequency (model)
delay (model)
75 2.5
70 2
65 1.5
dynamic-link model
60 1
55 0.5
30 data points
50 0
50 55 60 65 70 75 80 85 90 95 100 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
delay (NS) frequency (NS)
Validation
Critical frequency (Hz)
Round trip propagation delay at critical frequency (ms) 5
100
4.5
95 static-link model
4
90
3.5
85
80 3
frequency (model)
delay (model)
75 2.5
70 2
65 1.5
dynamic-link model
60 1
55 0.5
30 data points
50 0
50 55 60 65 70 75 80 85 90 95 100 0 0.5 1 1.5 2 2.5 3 3.5 44 4.5
4.5 55
delay (NS) frequency (NS)
Stability region
Round trip propagation delay at critical frequency
100
N=20 N=60
95
Unstable for
90
Large delay
85
N=40 Large capacity
80 Small load
delay (ms)
75
70
N=30
65
60
N=20
55
50
8 9 10 11 12 13 14 15
capacity (pkts/ms)
Role of AQM
(Sufficient) stability condition
K co{ H ( ; ) }
-1
Role of AQM
(Sufficient) stability condition
K co{ H ( ; ) }
-1
c2 2
e j
TCP:
2N j p * w*
c 2 2 e j
TCP:
2N j p w * *
Problem!!
c e j1
RED:
1 j c
a2 e jj a1 / a2
REM/PI:
1 j
pl(t)
xi(t)
Scalable Control
REM
Stability Utilization Delay
Outline
Introduction
TCP/AQM algorithms
Duality model (F, G, U)
Equilibrium of TCP/AQM
Linear dynamic model
Stability of TCP/AQM
A scalable control
Delay compensation
Equilibrium
High utilization: itegrator at links
Low loss & delay: VQ, REM/PI
Stability
Integrator+network delay always unstable for high !
s 1
e
s s
Equilibrium
High utilization: itegrator at links
Low loss & delay: REM, PI (HMTG01a)
Stability
Integrator+network delay always unstable for high !
Delay invariance
Scale down gain by (known at sources)
This is self-clocking!
s 1
e
s
x0i
i c
1
Scalable control (Paganini, Doyle, Low 01)
i
qi ( t )
i mi
TCP: xi (t ) xi e
1
AQM: l (t )
p yl (t ) cl
cl
i
qi ( t )
i mi
TCP: xi (t ) xi e
1
AQM: l (t )
p yl (t ) cl
cl
Link marking probability
0.8
0.7
0.5
0.3
topology 0.2
0.1
Utility function
0
0 2 4 6 8 10 12 14 16 18 20
Link congestion measure
Stability
Individual window Instantaneous queue Instantaneous queue
20 500 1000
18 40ms, window 450 queue 900
54% noise
16 400 800
14 350
12 300 600
6 150 300
4 100 200
2 50 100
0 0 0
0 5 10 15 0 2 4 6 8 10 12 14 0 5 10 15
time (sec) time (sec) time (sec)
5000 5000
100
4000 4000
80
3000 3000
60
2000 2000
40
20 1000 1000
0 0
0 5 10 15 0
0 2 4 6 8 10 12 14 0 5 10 15 20
time (sec) time (sec) time (sec)
Papers
netlab.caltech.edu
Equilibrium rate a
x
D p
s
s
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)
J.Padhye, V.Firoiu, D.Towsley (1999)
Implications
Applicability
Additive increase multiplicative decrease (Reno)
Congestion avoidance dominates
No timeouts, e.g., SACK+RH
Small losses
Persistent, greedy sources
Receiver not bottleneck
Implications
Reno equalizes window
Reno discriminates against long connections
Derivation (I)
window
4w/3
w = (4w/3+2w/3)/2
2w/3
t
2w/3
Area = 2w2/3
w
w pw ( w 1)(1 pw )
2
w2 2 p
w 2 p
Simulations
Refinement (Padhye, Firoin, Towsley & Kurose 1998)
TCP
TCP
snooper
Snoop agent
Monitors packets in both directions
Detects loss by dupACKs or local timeout
Retransmits lost packet
Suppresses dupACKs
Disadvantages
Cannot shield all wireless losses
One agent per TCP connection
Source may timeout while BS retransmits
Explicit Loss Notification
Noncongestion losses are marked in ACKs
Source retransmits but do not reduce
window
Effective in improving throughput
Disadvantages
Overhead (TCP option)
May not be able to distinguish types of losses,
e.g., corrupted headers
REM (Athuraliya & Low 2000)
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 2 4 6 8 10 12 14 16 18 20
Link congestion measure
OR
B B
High utilization Low delay/loss
REM
match rate AND clear buffer
Goodput
Queue
Loss
Comparison with RED
REM RED
Goodput
Queue
Loss
Application: Wireless TCP
REM
Idea
REM clears buffer
Only noncongestion losses
Retransmits lost packets without reducing window
Performance
Goodput
Performance
Goodput
Food for thought
How to tailor utility to application?
Choosing congestion control automatically
fixes utility function
Can use utility function to determine
congestion control
Incremental deployment strategy?
What if some, but not all, routers are ECN-
capable
Acronyms
ACK Acknowledgement QoS Quality of Service
AQM Active Queue Management RED Random Early Detection/Discard
ARP Address Resolution Protocol RFC Request for Comment
ARQ Automatic Repeat reQuest RTT Round Trip Time
ATM Asynchronous Transfer Mode RTO Retransmission TimeOut
BSD Berkeley Software Distribution SACK Selective ACKnowledgement
B Byte (or octet) = 8 bits SONET Synchronous Optical NETwork
bps bits per second SS Slow Start
CA Congestion Avoidance SYN Synchronization Packet
ECN Explicit Congestion Notification TCP Transmission Control Protocol
FIFO First In First Out UDP User Datagram Protocol
FTP File Transfer Protocol VQ Virtual Queue
HTTP Hyper Text Transfer Protocol WWW World Wide Web
IAB Internet Architecture Board
ICMP Internet Control Message Protocol
IETF Internet Engineering Task Force
IP Internet Protocol
ISOC Internet Society
MSS Maximum Segment Size
MTU Maximum Transmission Unit
POS Packet Over SONET