September 27, 2005 1
Instabilities and Oscillations in Networks of Queues
Matthew AndrewsBell Labs
Joint work with Alex Slivkins (Cornell)
2
Network of routers and sessions
session: sender fixed flow path receiver router: intersection inside the network
S1 router A
S2
t2
router B
S3
t3
t1
3
Queueing Model
Model router as simple queue
Each queue has a capacity = service rate
if total arrival rate capacitythen all traffic is routedwithout congestion or queuing
else, congestion occurs:queue builds up, traffic is delayed
S1 S2 S3
t1 t2 t3
4
S1 router A
S2
t2
router B
S3
t3
t1 modeled as
S1S2
t2
S3
t3 t1
Network of Queues
5
FIFO Queue
FIFO queue serves packets in order received
We consider idealized model in which packet size 0
Study rate at which data arrives at/departs from queue
S1 S2 S3
t1 t2 t3
6
Fluid-based FIFO queue
session = continuous flow, not a discrete stream of packets what is a fluid-based FIFO queue? [Bramson]
h(t) = height of the queue at time t = [total amount of fluid] / [capacity C]
given arrival rates in1(t), in2(t), in3(t)what is h(t) and what are exit rates outi(t)?
S1 S2 S3
t1 t2 t3
h
C
if h(t) = 0 and j inj(t) C thenall flow just comes through: outi(t) = ini(t)
else, capacity is divided proportionally,and the excessive fluid is queued up
outi(t+h(t)) = ini(t) C / j inj(t)
7
Part 1: Traffic generated by external arrival process Study “queueing theoretic stability” Can we keep the queue sizes bounded? Result: FIFO can be unstable at arbitrarily small network loads
Part 2: Traffic controlled by end-to-end congestion control (e.g. TCP) Study “control theoretic stability” Does the system oscillate? Result: end-to-end congestion control can cause oscillations
Talk Outline
8
Network of FIFO queues, external traffic arrivals
Definitions Stable: queuesizes remain bounded
Unstable: queuesizes are unbounded
We would like queues to be stable as long as no queue is overloaded
Part 1: FIFO stability
Tota
l queuesi
zeTota
l queuesi
ze
Time
Time
Stable
Unstable
??
9
Each session i has rate i
Injection rate into session i equals i at all times Sum of session rates passing through capacity C queue rC r = network load parameter Interesting case is r 1
Permanent sessions: Constant arrivals
S1S2
t2
S3
t3 t1
0.450.45
0.45
r = 0.9
Thm: (Bramson ‘96)FIFO stable for all r 1
Thm: (Bramson ‘96)FIFO stable for all r 1
10
Each session i has rate i
Injection rate into session i at most i at all times Sum of session rates passing through capacity C queue rC Standard model in networking literature, e.g.
Fair Queueing literature (e.g. Parekh-Gallager), Network calculus (e.g. Cruz, Le Boudec-Thiran book)
Permanent sessions: Bounded arrivals
S1S2
t2
S3
t3 t1
0.450.45
0.45
r = 0.9
11
Permanent sessions: Bounded arrivals
S1S2
t2
S3
t3 t1
0.20.45
0.1
r = 0.9
Each session i has rate i
Injection rate into session i at most i at all times Sum of session rates passing through capacity C queue rC Standard model in networking literature, e.g.
Fair Queueing literature (e.g. Parekh-Gallager), Network calculus (e.g. Cruz, Le Boudec-Thiran book)
12
Permanent sessions: Bounded arrivals
S1S2
t2
S3
t3 t1
0.450.3
0.45
r = 0.9
Thm: (‘00)FIFO can be unstable for r > 0.999999997
Thm: (‘00)FIFO can be unstable for r > 0.999999997
Each session i has rate i
Injection rate into session i at most i at all times Sum of session rates passing through capacity C queue rC Standard model in networking literature, e.g.
Fair Queueing literature (e.g. Parekh-Gallager), Network calculus (e.g. Cruz, Le Boudec-Thiran book)
13
Main Result
What happens at small network loads?
Is there some network load below which FIFO is stable? No!!!!
Thm: For all > 0, there exists network and injection pattern s.t.
Network load is r < The network is unstable
14
Transfer Process
How can we move fluid from one FIFO queue to another?
Injection rate
Existing fluidof height 1
15
Transfer Process
How can we move fluid from one FIFO queue to another?
Injection rate
Total arrival rate 1 +
Departure rate / 1 + Departure rate
/ 1 +
Arrival rate / 1 +
Departure rate 1
16
Transfer Process
How can we move fluid from one FIFO queue to another?
Injection rate
Total arrival rate 1 +
Departure rate / 1 + Departure rate
/ 1 +
Arrival rate / 1 +
Departure rate 1
17
Transfer Process
How can we move fluid from one FIFO queue to another?
Injection rate
Total arrival rate 1 +
Departure rate / 1 + Departure rate
/ 1 +
Arrival rate / 1 +
Departure rate 1
18
Transfer Process
How can we move fluid from one FIFO queue to another?
Injection rate
19
Transfer Process
How can we move fluid from one FIFO queue to another?
Injection rate
20
Transfer Process
How can we move fluid from one FIFO queue to another?
Injection rate
21
Transfer Process
How can we move fluid from one FIFO queue to another?
Injection rate
22
Can repeat transfer process indefinitely
Repeated Transfer Process
23
Can repeat transfer process indefinitely
Repeated Transfer Process
24
Can repeat transfer process indefinitely
Repeated Transfer Process
25
Repeated Transfer Process
Can repeat transfer process indefinitely Two problems:
Want amount of fluid to grow! Sessions are of finite length: some fluid eventually departs
26
Transfer Process Revisited
Replace departing fluid
Injection rate Injection rate
Departure rate <
27
Injection rate
Replace departing fluid
Transfer Process Revisited
Injection rate
Departure rate <
28
Injection rate
Replace departing fluid
Transfer Process Revisited
Injection rate
Departure rate <
29
Injection rate
Replace departing fluid
Transfer Process Revisited
Injection rate
Departure rate <
Works but network load r >> 1
Works but network load r >> 1
30
Parallel Transfers
Injection rate
Departure rate ~
Arrival rate ~
1 2 3 4
Transfer process between queues 1 & 3 Transfer process between queues 2 & 4 Newly injected traffic passes through queues 1&2 Queues 1&2 are decreasing: hence rate amplification!!!
31
Parallel Transfers
Injection rate
Departure rate ~
Arrival rate ~
1 2 3 4
For a sufficiently large number of parallel transfers Can make arriving traffic have higher rate than departing traffic Instability!!!
32
Part 1 of talk: External arrival process Injection patterns could be independent of queueing
behavior Part 2 of talk:
Injection patterns governed by congestion control (e.g. TCP)
Does TCP converge? Can it oscillate?
S router A router B t
Part 2: Stability of congestion control
33
sender does not know in advance how much bandwidth will be available at a given time, needs to adjust dynamically
goal: use available bandwidth, but avoid congestion if all routers on session path have some bandwidth
available,source should increase the sending rate
if one of the routers on session path is congested,source should decrease the sending rate
S router A router B t
End-to-end congestion control
rate ? rate ?
rate ? rate ?
34
End-to-end congestion control
design principle: routers do not give feedback to senders sender does not know what goes on inside the Internet
however, sender can get limited feedback from the receiver
can determine whether congestion occurred on the path TCP protocol: additive increase, multiplicative decrease
no congestion increase sending rate by 1 congestion decrease sending rate by half
S router A router B t
rate ? rate ?
rate ? rate ?
35
Network as dynamical system
system = {network of routers and fixed set of sessions} state = {sending rates of sessions, composition of queues} dynamics: TCP-like congestion control, FIFO queues
choose initial state and let the system run we’d like the system to converge, preferably to some nice
state
S1 router
S2
t2
router
S3
t3
t1
36
Convergence vs oscillations Prior work: for a version of TCP,
system converges to a social optimumstarting from any initial state
[Kelly, Maulloo, Tan ’98],[Low et al.]and a large body of follow-up work
S1 router
S2
t2
router
S3
t3
t1
However, this work uses an approximation of FIFO dynamics: congestion of a queue Q = F(sending rates of sessions that use Q)
in reality it is a function of arrival rates, which may be different
we model congestion as a function of arrival rates
37
Kelly, Maulloo, Tan
Example prior work
: ( )
( )
2
( ) ( ) ( )
( ) ( )
( ) ( 1 ) /
i i i QQ i S Q
Q Q ii S Q
Q
x t w x t t
t p x t
p y y
xi (t) = injection rate into flow i at time t pQ = “shadow price” for congestion at router Q
38
Convergence vs oscillations Prior work: for a version of TCP,
system converges to a social optimumstarting from any initial state
[Kelly, Maulloo, Tan ’98] + follow-ups approximation of FIFO dynamics
S1 router
S2
t2
router
S3
t3
t1
Our contribution: for any TCP-like congestion control mechanism,there exists a network of routers and a set of sessions such thatstarting from a certain initial state, system oscillates
at all times, for each router, the total sending rate of all sessions that use this router is less than its capacity
at all times, for each router, the total sending rate of all sessions that use this router is less than its capacity
39
Fluid-based FIFO queue
session = continuous flow, not a discrete stream of packets
h(t) = height of the queue at time t = [total amount of fluid] / [capacity C]
given arrival rates in1(t), in2(t), in3(t)what is h(t) and what are exit rates?FIFO
queue
S1 S2 S3
t1 t2 t3
h
C
if h(t) = 0 and j inj(t) C thenall flow just comes through
else, capacity is divided proportionally,and the excessive fluid is queued up
40
Sending rates vs arrival rates
due to queues that are upstream,in general arrival rates in1(t), in2(t), in3(t)are different from sending rates
all convergence results from prior workuse sending rates instead of arrival rates
we use the true arrival rates
FIFOqueue
S1 S3
t1 t2 t3
h
C
S2
ini(t)
41
??
Parameterized congestion control
sender detects congestion using feedback from receiver yes decrease sending rate; no increase sending rate
S t
no congestion: all queues are empty
S t
congestion: at least one queue is non-empty
42
Parameterized congestion control
discrete-time TCP: additive increase, multiplicative decrease yes decrease rate by half; no increase rate by 1
we use a continuous-time approximation yes congestion sending rate f(t) = f(0) et
no congestion sending rate g(t) = g(0) + t is the damping parameter that controls the rate of
change generalization: (almost) any flow increase function g(t),
any f(t) that satisfies some axioms, e.g. f(t) = f(0) t
sender detects congestion using feedback from receiver yes decrease sending rate; no increase sending rate
43
Main result
Theorem For any given congestion control {f(t), g(t)} there exists: damping parameter (same for all sessions) a network of routers, a set of sessions, and an initial state such that system oscillates and for each router, the total sendingrate of all sessions that use this router is always less than its
capacityNote routers are almost FIFO: each session is in one of the two priority classes FIFO scheduling for sessions within the same class
we are extending our construction to the all-FIFO case
we are extending our construction to the all-FIFO case
44
The basic gadget: high-level idea
Q1 Q4Q2 Q3S t
Q1 Q4Q2 Q3S tfinish1
1capacity 1<1 <1
Q1 Q4Q2 Q3S t1
start
45
The basic gadget: animation
Q1 Q4Q2 Q3S t
1capacity 1<1 <1
S’
t’
init rate 0
init rate 0
init rate
init rate
1
46
Q1 Q4Q2 Q3S t
1capacity 1<1 <1
The basic gadget: animation
S’
t’
rate = 0rate = 0
init rate
init rate
47
Q1 Q4Q2 Q3S t
1capacity 1<1 <1
The basic gadget: animation
S’
t’
rate = 0rate = 0
rate rate
48
Q1 Q4Q2 Q3S t
1capacity 1<1 <1
The basic gadget: animation
S’
t’
rate = 0rate = 0
rate = 0
rate = 0
1
49
Q1 Q4Q2 Q3S t
1capacity 1<1 <1
The basic gadget: animation
S’
t’
rate = 0rate = 0
rate rate
50
Connect two gadgets
identify Q4 from one gadget with Q1 from another
1 42 3
1 42 3
before
after 1 2 3 1 42 3
51
Row of gadgets
1 2 3 1 2 3 1 2 3 1 2 3S1 t1
fluid eventually reaches its destination, and the process stopsnot too exciting!
fluid eventually reaches its destination, and the process stopsnot too exciting!
52
Row of gadgets
1 2 3 1 2 3 1 2 3 1 2 3S1 t1
a better processa better process
53
Row of gadgets
1 2 3 1 2 3 1 2 3 1 2 3S1 t1
refill
a better processa better process
and now a refill happensand now a refill happens
54
Row of gadgets
1 2 3 1 2 3 1 2 3 1 2 3S1 t1
refill
a better processa better process
... and so on... and so on
55
Rows of gadgets
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
S1
S2
S3
t1
t2
t3
each row is running the same process, shifted in timeeach row is running the same process, shifted in time
56
Rows of gadgets
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
S1
S2
S3
t1
t2
t3
refill
refill
refill
each row is running the same process, shifted in timeeach row is running the same process, shifted in time
now a refill happensnow a refill happens
57
Rows of gadgets
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
S1
S2
S3
t1
t2
t3
refill
... and so on... and so on
Wait a sec... how do the refills happen ???Wait a sec... how do the refills happen ???
58
Refills and vertical sessions
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
S1
S2
S3
t1
t2
t3
1 2 3 1 2 3 1 2 3 1 2 3S4 t4
rate >0
rate >0
59
Refills and vertical sessions
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
S1
S2
S3
t1
t2
t3
1 2 3 1 2 3 1 2 3 1 2 3S4 t4
rate >0
rate >0
60
Refills and vertical sessions
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
S1
S2
S3
t1
t2
t3
1 2 3 1 2 3 1 2 3 1 2 3S4 t4
rate >0
rate >0
61
Refills and vertical sessions
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
S1
S2
S3
t1
t2
t3
1 2 3 1 2 3 1 2 3 1 2 3S4 t4
rate rate
62
Refills and vertical sessions
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
1 2 3 1 2 3 1 2 3 1 2 3
S1
S2
S3
t1
t2
t3
1 2 3 1 2 3 1 2 3 1 2 3S4 t4
rate = 0rate = 0
refilled !!!refilled !!!
63
Conclusions and open questionsEnd-to-end congestion control can cause oscillations prior work proved convergence but queueing dynamics not fully
captured with true queueing dynamics convergence is desirable but impossible
Our example is paranoid, but we need to replicate initial state exactly our result suggests that in practice convergence can be hard, too possible solution: integrate congestion control into routers,
e.g. Greedy Primal-Dual algorithm of Sasha Stolyar
Open questions: extension to the all-FIFO case non-FIFO schedulers, e.g. Generalized Processor Sharing
Top Related