13 Congestion Avoidance
13 Congestion Avoidance
½ congestion window
½ congestion window
More TCP
• Congestion avoidance
Application
• TCP timers Presentation
Session
• TCP lifeline Transport
Network
Data Link
Physical
1
Congestion Control vs Avoidance
2
Router Model: “FCFS with Tail Drop”
Arriving Next to
packet transmit
Drop
FCFS
P6 P5 P4 P3 P2 P1 Scheduler
ͻ >ĂƌŐĞƋƵĞƵĞƐŝŶƌŽƵƚĞƌƐŝƐ䇾ĂďĂĚƚŚŝŶŐ䇿
ʹ ĞůĂLJ͗ĞŶĚͲƚŽͲĞŶĚůĂƚĞŶĐLJĚŽŵŝŶĂƚĞĚďLJůĞŶŐƚŚŽĨ
ƋƵĞƵĞƐĂƚƐǁŝƚĐŚĞƐŝŶŶĞƚǁŽƌŬ
ͻ ůůŽǁŝŶŐƋƵĞƵĞƐƚŽŽǀĞƌĨůŽǁŝƐ䇾ĂďĂĚƚŚŝŶŐ䇿
ʹ &ĂŝƌŶĞƐƐ͗ĐŽŶŶĞĐƚŝŽŶƐƚƌĂŶƐŵŝƚƚŝŶŐĂƚŚŝŐŚƌĂƚĞƐĐĂŶ
ƐƚĂƌǀĞĐŽŶŶĞĐƚŝŽŶƐƚƌĂŶƐŵŝƚƚŝŶŐĂƚůŽǁƌĂƚĞƐ
3
Random early packet drop (RED)
FCFS
P6 P5 P4 P3 P2 P1 Scheduler
tŚĞŶƋƵĞƵĞůĞŶŐƚŚĞdžĐĞĞĚƐƚŚƌĞƐŚŽůĚ͕ĚƌŽƉƉĂĐŬĞƚƐ
ǁŝƚŚƋƵĞƵĞůĞŶŐƚŚĚĞƉĞŶĚĞŶƚƉƌŽďĂďŝůŝƚLJ
ʹ ƉƌŽďĂďŝůŝƐƚŝĐƉĂĐŬĞƚĚƌŽƉ͗ĨůŽǁƐƐĞĞƐĂŵĞůŽƐƐƌĂƚĞ
ʹ ƉƌŽďůĞŵ͗ďƵƌƐƚLJƚƌĂĨĨŝĐ;ďƵƌƐƚĂƌƌŝǀĞƐǁŚĞŶƋƵĞƵĞŝƐ
ŶĞĂƌƚŚƌĞƐŚŽůĚͿĐĂŶďĞŽǀĞƌƉĞŶĂůŝnjĞĚ
Queue Drop
length probability
Max
queue length
Forced drop
Max
threshold Probabilistic
early drop
Min
threshold No drop
Time
ͻ hƐĞĞdžƉŽŶĞŶƚŝĂůĂǀĞƌĂŐĞ ŽĨƋƵĞƵĞůĞŶŐƚŚƚŽĚĞƚĞƌŵŝŶĞ
ǁŚĞŶƚŽĚƌŽƉ
ʹ ĂǀŽŝĚŽǀĞƌůLJƉĞŶĂůŝnjŝŶŐƐŚŽƌƚͲƚĞƌŵďƵƌƐƚƐ
ʹ ƌĞĂĐƚƚŽůŽŶŐĞƌƚĞƌŵƚƌĞŶĚƐ
4
RED summary: why random drop?
ͻ WƌŽǀŝĚĞŐĞŶƚůĞƚƌĂŶƐŝƚŝŽŶĨƌŽŵŶŽͲĚƌŽƉƚŽĂůůͲĚƌŽƉ
ʹ WƌŽǀŝĚĞ䇾ŐĞŶƚůĞ䇿 ĞĂƌůLJǁĂƌŶŝŶŐ
ʹ ǀŽŝĚƐLJŶĐŚƌŽŶŝnjĞĚůŽƐƐďƵƌƐƚƐĂŵŽŶŐƐŽƵƌĐĞƐ
ͻ WƌŽǀŝĚĞƐĂŵĞůŽƐƐƌĂƚĞƚŽĂůůƐĞƐƐŝŽŶƐ͗
ʹ tŝƚŚƚĂŝůͲĚƌŽƉ͕ůŽǁͲƐĞŶĚŝŶŐͲƌĂƚĞƐĞƐƐŝŽŶƐĐĂŶďĞ
ĐŽŵƉůĞƚĞůLJƐƚĂƌǀĞĚ
ͻ ĂŶǁĞĂǀŽŝĚĐŽŶŐĞƐƚŝŽŶǁŝƚŚŽƵƚůŽƐƐ͍
ͻ ĂŶƚŚĞƌŽƵƚĞƌƐƐŝŐŶĂůƚŚĞŚŽƐƚƐ;ƚŚŝƐŝƐĂďŝƚŽĨĨĨƌŽŵ
ƚŚĞĞŶĚͲƚŽͲĞŶĚĂƌŐƵŵĞŶƚͿ
ʹ ŽŶŽƚǁĂŶƚƚŽƐĞŶĚĂĚĚŝƚŝŽŶĂůƉĂĐŬĞƚƐ͘
Lretrans.10
5
Explicit Congestion Notification (ECN)
ͻ EƐŝŐŶĂůƐĐŽŶŐĞƐƚŝŽŶǁŝƚŚĂďŝƚŝŶƚŚĞ/WŚĞĂĚĞƌ
ͻ ZĞĐĞŝǀĞƌƌĞƚƵƌŶƐŝŶĚŝĐĂƚŝŽŶƚŽƚŚĞƐĞŶĚĞƌ͕ǁŚŽƐůŽǁƐ
ʹ EĞĞĚƚŽƐŝŐŶĂůƚŚŝƐƌĞůŝĂďůLJŽƌǁĞƌŝƐŬŝŶƐƚĂďŝůŝƚLJ
ͻ EĞƚǁŽƌŬͲĂƐƐŝƐƚĞĚĐŽŶŐĞƐƚŝŽŶĐŽŶƚƌŽů
6
ZddǀĂƌŝĂŶĐĞŝŶ>EƐǀĞƌƐƵƐ/ŶƚĞƌŶĞƚ
ͻ /ŶƚŚĞůŝŵŝƚ͕ĞĂƌůLJƌĞƚƌĂŶƐŵŝƐƐŝŽŶƐůĞĂĚƚŽĐŽŶŐĞƐƚŝŽŶ
ĐŽůůĂƉƐĞ
ʹ ^ĞŶĚŝŶŐŵŽƌĞƉĂĐŬĞƚƐŝŶƚŽƚŚĞŶĞƚǁŽƌŬǁŚĞŶŝƚŝƐ
ŽǀĞƌůŽĂĚĞĚĞdžĂĐĞƌďĂƚĞƐƚŚĞƉƌŽďůĞŵŽĨĐŽŶŐĞƐƚŝŽŶ
ʹ EĞƚǁŽƌŬƐƚĂLJƐďƵƐLJďƵƚǀĞƌLJůŝƚƚůĞƵƐĞĨƵůǁŽƌŬŝƐďĞŝŶŐ
ĚŽŶĞ
ͻ dŚŝƐŚĂƉƉĞŶĞĚŝŶƌĞĂůůŝĨĞΕϭϵϴϳ
ʹ >ĞĚƚŽsĂŶ:ĂĐŽďƐŽŶ䇻ƐdWĂůŐŽƌŝƚŚŵƐ͕ǁŚŝĐŚĨŽƌŵƚŚĞ
ďĂƐŝƐŽĨĐŽŶŐĞƐƚŝŽŶĐŽŶƚƌŽůŝŶƚŚĞ/ŶƚĞƌŶĞƚƚŽĚĂLJ
^ĞĞ䇾ŽŶŐĞƐƚŝŽŶǀŽŝĚĂŶĐĞĂŶĚŽŶƚƌŽů䇿͕^/'KDD䇻ϴϴ
7
Estimating RTTs
ͻ /ĚĞĂ͗ĚĂƉƚƌĞƚƌĂŶƐŵŝƐƐŝŽŶƚŝŵĞƌďĂƐĞĚŽŶƌĞĐĞŶƚƉĂƐƚ
ŵĞĂƐƵƌĞŵĞŶƚƐ
ͻ ^ŝŵƉůĞĂůŐŽƌŝƚŚŵ͗
ʹ &ŽƌĞĂĐŚƉĂĐŬĞƚ͕ŶŽƚĞƚŝŵĞƐĞŶƚĂŶĚƚŝŵĞĂĐŬƌĞĐĞŝǀĞĚ
ʹ ŽŵƉƵƚĞZddƐĂŵƉůĞƐĂŶĚĂǀĞƌĂŐĞƌĞĐĞŶƚƐĂŵƉůĞƐĨŽƌ
ƚŝŵĞŽƵƚ
ʹ ƐƚŝŵĂƚĞĚZddсα α džƐƚŝŵĂƚĞĚZddн;ϭͲ αͿdž^ĂŵƉůĞZdd
ʹ dŚŝƐŝƐĂŶĞdžƉŽŶĞŶƚŝĂůůLJͲǁĞŝŐŚƚĞĚŵŽǀŝŶŐĂǀĞƌĂŐĞ;ůŽǁ
α сϬ͘ϴ
ƉĂƐƐĨŝůƚĞƌͿƚŚĂƚƐŵŽŽƚŚĞƐƚŚĞƐĂŵƉůĞƐ͘dLJƉŝĐĂůůLJ͕α
ƚŽϬ͘ϵ͘
ʹ ^ĞƚƚŝŵĞŽƵƚƚŽƐŵĂůůŵƵůƚŝƉůĞ;ϮͿŽĨƚŚĞĞƐƚŝŵĂƚĞ
ƐƚŝŵĂƚĞĚZddс;ϭͲ αͿΎƐƚŝŵĂƚĞĚZddнαΎ^ĂŵƉůĞZdd
350
300
)s
dn
s)d o
no c
250
ecs e
lii s i
( l
TT i
m
Rm
200
(
TT
150
R
sampleRTT
EstimatedRTT
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
time (seconds)
SampleRTT Estimated RTT Transport Layer
Kurose and Ross
8
Karn/Partridge Algorithm
• SampleRTT
Solution: Don䇻t measure RTT for retransmitted packets and do not
relax backed of timeout until valid RTT measurements
Jacobson/Karels Algorithm
• Problem:
– Variance in RTTs gets large as network gets loaded
– So an average RTT isn䇻t a good predictor when we need it most
Lretrans.18
9
So far we saw Loss-based TCP
ͻ ǀŽůƵƚŝŽŶŽĨůŽƐƐͲďĂƐĞĚdW
ʹ dĂŚŽĞ
ʹ ZĞŶŽ
ʹ ^ĞůĞĐƚŝǀĞĐŬŶŽǁůĞĚŐŵĞŶƚ;ĞdžƉůĂŝŶĞĚŝŶŶĞdžƚ
ƐůŝĚĞͿ
ͻ Y͗ǁŚĂƚŝĨůŽƐƐŶŽƚĚƵĞƚŽĐŽŶŐĞƐƚŝŽŶ͍
Selective ACKS
Extend ACKs with a vector to describe received
segments and hence losses
– Allows for more accurate retransmissions / recovery
10
ĞůĂLJͲďĂƐĞĚdWsĞŐĂƐ
ͻ hƐĞƐĚĞůĂLJĂƐĂƐŝŐŶĂůŽĨĐŽŶŐĞƐƚŝŽŶ
ʹ /ĚĞĂ͗ƚƌLJƚŽŬĞĞƉĂƐŵĂůůĐŽŶƐƚĂŶƚŶƵŵďĞƌŽĨ
ƉĂĐŬĞƚƐĂƚďŽƚƚůĞŶĞĐŬƋƵĞƵĞ
ʹ džƉĞĐƚĞĚсtͬĂƐĞZdd
ʹ ĐƚƵĂůсtͬƵƌZdd
ʹ ŝĨĨсdžƉĞĐƚĞĚͲ ĐƚƵĂů
ʹ dƌLJƚŽŬĞĞƉŝĨĨƐŵĂůů
ͻ ĞůĂLJͲďĂƐĞĚdWŶŽƚǁŝĚĞůLJƵƐĞĚƚŽĚĂLJ
Wireless Issues
Wireless links lose packets due to transmission errors
– Do not want to confuse this loss with congestion
– Or connection will run slowly over wireless links!
One Strategy:
– Wireless links use ARQ, which masks errors
CN5E by Tanenbaum & Wetherall, © Pearson Education-Prentice Hall and D. Wetherall, 2011
11