Fair queueing and congestion control

advertisement
Workshop on Congestion Control
Hamilton Institute, Sept 2005
Fair queueing and congestion
control
Jim Roberts (France Telecom)
Joint work with Jordan Augé
Fairness and congestion control
s
fair sharing: an objective as old as congestion control
Qcf. RFC 970, Nagle, 1985
Qnon-reliance on user cooperation
Qpainless introduction of new transport protocols
Qimplicit service differentiation
s
fair queueing is scalable and feasible
Qaccounting for the stochastics of traffic
Qa small number of flows to be scheduled
Qindependent of link speed
s
performance evaluation of congestion control
Qmust account for realistic traffic mix
Qimpact of buffer size, TCP version, scheduling algorithm
Flow level characterization of
Internet traffic
s
traffic is composed of flows
Qan instance of some application
Q(same identifier, minimum packet spacing)
s
flows are "streaming" or "elastic"
Qstreaming SLS = "conserve the signal"
Qelastic SLS = "transfer as fast as possible"
start
end
inter-packet < T
streaming
silence > T
elastic
Characteristics of flows
s
arrival process
QPoisson session arrivals: succession of flows and think times
s
size/duration
Qheavy tailed, correlation
think times
start of
session
flow
arrivals
end of
session
Characteristics of flows
s
arrival process
QPoisson session arrivals: succession of flows and think times
s
size/duration
Qheavy tailed, correlation
s
flow peak rate
Qstreaming: rate  codec
Qelastic: rate  exogenous limits (access link,...)
rate
rate
duration
duration
Three link operating regimes
"transparent"
"elastic"
"congested"
negligible
loss and delay
excellent for elastic,
some streaming loss
low throughput,
significant loss
flows
overall
rate
FIFO
sufficient
need
scheduling
need
overload control
Performance of fair sharing without rate
limit (ie, all flows bottlenecked)
s
a fluid simulation:
QPoisson flow arrivals
Qno exogenous peak rate limit  flows are all bottlenecked
Qload = 0.5 (arrival rate x size / capacity)
start
incoming flows
end
average
rate
high
link
rate
low
20 seconds
The process of flows in progress
depends on link load
30
flows in progress
20
10
0
high
load 0.5
low
The process of flows in progress
depends on link load
30
flows in progress
20
10
0
high
load 0.6
low
The process of flows in progress
depends on link load
30
flows in progress
20
10
0
high
load 0.7
low
The process of flows in progress
depends on link load
30
flows in progress
20
10
0
high
load 0.8
low
The process of flows in progress
depends on link load
30
flows in progress
20
10
0
high
load 0.9
low
Insensitivity of processor sharing: a
miracle of queuing theory !
s
link sharing  behaves like M/M/1
Qassuming only Poisson session arrivals
s
if flows are bottlenecked, E [flows in progress] = r/(1-r)
Qi.e., average  9 for r  0.9, but   as r  1
s
but, in practice, r < 0.5 and E [flows in progress] = O(104) !
20
E [flows in progress]
r/(1-r)
15
10
5
0
0
.2
.4
.6
.8
load, r
Trace data
s
an Abilene link (Indianapolis-Clevelend) – from NLANR
QOC 48, utilization 16 %
Qflow rates  (10 Kb/s, 10 Mb/s)
Q~7000 flows in progress at any time
>2.5 Mb/s
2.5 Gb/s
< 250 Kb/s
10 sec
Most flows are non-bottlenecked
s
s
each flow emits packets rarely
little queueing at low loads
QFIFO is adequate
Qperformance like a modulated M/G/1
s
at higher loads, a mix of bottlenecked and non-bottlenecked flows...
15 Mb/s
~1 ms
~7000 flows
2.5 Gb/s
~5 µs
Fair queueing is scalable and
feasible
s
fair queueing deals only with flows having packets in queue
Q<100 bottlenecked flows (at load < 90%)
QO(100) packets from non-bottlenecked flows (at load < 90%)
s
scalable since number does not increase with link rate
Qdepends just on bottlenecked/non-bottlenecked mix
s
feasible since max number is ~500 (at load < 90%)
Qdemonstration by trace simulations and analysis (Sigmetrics 2005)
s
can use any FQ algorithm
QDRR, Self-clocked FQ,...
Qor even just RR ?
Typical flow mix
s
many non-bottlenecked flows (~104)
Qrate limited by access links, etc.
s
a small number of bottlenecked flows (0, 1, 2,...)
QPr [  i flows] ~ ri with r the relative load of bottlenecked flows
s
example
Q 50% background traffic
– ie, E[flow arrival rate] x E[flow size] / capacity = 0.5
Q0, 1, 2 or 4 bottlenecked TCP flows
– eg, at overall load = 0.6, Pr [ 5 flows]  0.003
Simulation set up (ns2)
s
one 50 Mbps bottleneck
QRTT = 100ms
s
25 Mbps background traffic
QPoisson flows: 1 Mbps peak rate
Qor Poisson packets (for simplicity)
s
1, 2 or 4 permanent high rate flows
QTCP Reno or HSTCP
s
buffer size
Q20, 100 or 625 packets (625 = b/w x RTT)
s
scheduling
QFIFO, drop tail
QFQ, drop from front of longest queue
Results:
- 1 bottlenecked flow,
- Poisson flow background
FIFO + Reno
1000
20 packets
625 packets
cwnd
(pkts)
0
1
utilization
0
100s
100s
FIFO + Reno
1000
cwnd
(pkts)
20 packets
100 packets
Severe throughput loss with small buffer:
- realizes only 40% of available capacity
0
1
utilization
0
100s
100s
FIFO + 100 packet buffer
1000
cwnd
(pkts)
Reno
HSTCP
HSTCP brings gain in utilization,
higher loss for background flows
0
1
utilization
0
100s
100s
Reno + 20 packet buffer
1000
cwnd
(pkts)
FIFO
FQ
FQ avoids background flow loss,
little impact on bottlenecked flow
0
1
utilization
0
100s
100s
Results:
- 2 bottlenecked flows,
- Poisson packets background
FIFO + Reno + Reno
1000
20 packets
625 packets
Approximate fairness with Reno
cwnd
(pkts)
0
1
utilization
0
100s
100s
FIFO + HSTCP + HSTCP
1000
20 packets
625 packets
cwnd
(pkts)
0
1
utilization
0
100s
100s
FIFO + HSTCP + Reno
1000
20 packets
625 packets
HSTCP is very unfair
cwnd
(pkts)
0
1
utilization
0
100s
100s
Reno + HSTCP + 20 packet buffer
1000
FIFO
FQ
cwnd
(pkts)
0
1
utilization
0
100s
100s
Reno + HSTCP + 625 packet buffer
1000
cwnd
(pkts)
FIFO
FQ
Fair queueing is effective (though
HSTCP gains more throughput)
0
1
utilization
0
100s
100s
Results:
- 4 bottlenecked flows,
- Poisson packet background
All Reno + 20 packet buffer
1000
cwnd
(pkts)
1 flow
4 flows
Improved utilization with 4 bottlenecked flows,
approximate fairness
0
1
utilization
0
100s
100s
All Reno + 625 packet buffer
1000
1 flow
4 flows
Approximate fairness
cwnd
(pkts)
0
1
utilization
0
100s
100s
All HSTCP + 625 packet buffer
1000
1 flow
4 flows
Poor fairness, loss of throughput
cwnd
(pkts)
0
1
utilization
0
100s
100s
All HSTCP + 625 packet buffer
1000
cwnd
(pkts)
FIFO
FQ
Fair queueing restores fairness,
preserves throughput
0
1
utilization
0
100s
100s
Conclusions
s
there is a typical traffic mix
Qsmall number of bottlenecked flows (0, 1, 2,...)
Qlarge number of non-bottlenecked flows
s
fair queueing is feasible
QO(100) flows to schedule for any link rate
s
results for 1 bottlenecked flow + 50% background
Qsevere throughput loss for small buffer
QFQ avoids loss and delay for background packets
s
results for 2 or 4 bottlenecked flows + 50% background
QReno approximately fair
QHSTCP very unfair, loss of utilization
QFQ ensures fairness for any transport protocol
s
alternative transport protocols ?
Download