March 24, 2006 1
Joint Optimization of Scheduling and Congestion Control in
Communication Networks
Matthew AndrewsBell Labs
2
S1S2
t2
S3
t3 t1
Congestion control and scheduling
Scheduling: Decide which data should
be served at each internal queue
Congestion control Decide how much data
should be injected into each flow
i.e. choose x1, x2, x3
Inj rate x2
Inj rate x3Inj rate x1
3
S1S2
t2
S3
t3 t1
Wireline networks
In wireline networks, scheduling and congestion control are typically only loosely coupled
Scheduling: Simple FIFO is often used No dependence on flow rates
Congestion control TCP only uses coarse info from
scheduler, e.g. RTTs, packet losses TCP operates without knowledge of
exact scheduling algorithm used
Inj rate x1
Inj rate x2
Inj rate x3
4
Wireless networks
This talk: Three benefits to a tighter
coupling of scheduling and congestion control in wireless networks
Pointer to algorithm that achieves this coupling
5
Congestion Control
Does it make sense to talk about alternatives to TCP?
In wireless networks… maybe… 3G networks employ proprietary congestion control
over the wireless link (e.g. www.venturiwireless.com)
Non-TCP based congestion control could be used in a self-contained ad-hoc network
6
Congestion Control
One well known issue with TCP that I won’t discuss…
In wireless networks, TCP interprets losses due to interference as congestion and backs off too much
Well-studied issue Well-known solutions
Snoop protocol ( Balakrishnan, Seshan, Amir, Katz)
Loss prevention (FEC, HARQ, DARQ, link-level retransmissions etc.)
7
Joint Congestion Control + Scheduling
Three benefits of joint congestion control + scheduling in wireless networks
1. Enables effective buffer sizing. Prevents excessive queue buildups.
2. Prevents conflicts between rate allocation due to congestion control and rate allocation due to link scheduler
3. Allows for network utility maximization, even in presence of complex queueing dynamics
(Applies to wireline as well as wireless networks)
8
1. Buffer sizing
Standard rule for buffer sizing in wireline networks Buffer size = bandwidth delay product (BDP) Enables full utilization of link rate
In wireless networks BDP ill defined due to variable link bandwidth
Buffer sizing difficult Buffer too small – don’t utilize bandwidth when link rate is
high Buffer too large – excessive delays when link rate is low
link rate C(t)
end2end prop delay
d
9
1. Buffer sizing example
Two link rates, 1Mbps and 20kbps 35KB buffer = 1Mbps x 280ms = 20kbps x 14s Downlink packet latencies for download of CNN homepage
1Mbps20kbps
1s 10s
10
1. Buffer sizing
Another example Chakravorty and Pratt (2002) observed queues >30s in
GPRS networks Leads to unacceptable delays for other flows sharing same
buffer
What would be better? Have large buffers to deal with high bandwidth case Recognize when link has low bandwidth
Make sure congestion control does not send too much data in this case
11
service rate vector(r1(t),…,rn (t))
ri (t)
rj (t)
t
Opportunistic scheduling At each time step, pick one user to serve If user i chosen, serve at rate ri (t) Ri (t) = ave service rate to user i
2. Scheduling vs congestion control
12
service rate vector(r1(t),…,rn (t))
ri (t)
rj (t)
t
Proportional Fair wireless scheduling algorithm At each time step, serve user argmax ri (t) / Ri (t) Aim is to maximize i log Ri (t)
2. Scheduling vs congestion control
13
2. Scheduling vs congestion control
Conflict between scheduling and cong. control!!
Link scheduler tries to do optimal rate allocation among flows E.g. Prop Fair aims to maximize i log Ri
TCP also tries to do rate allocation among flows Whenever RTTs are low, TCP increases sending rate to try and get more bandwidth But TCP can’t get more bandwidth than wireless link scheduler allows All we get are bigger queues
R1 R2
R3
Rates provided by Prop Fair
14
2. Scheduling vs congestion control
Better solution Scheduling and congestion control work jointly to find
optimal rate allocation
15
3. Network Utility Maximization
Wireline networks
max Ui(xi)
subject to .
Q i xi cQ
xi = inj rate into path i cQ = capacity of server Q Ui(.) = utility function (e.g. log)
Kelly-Maulloo-Tan, Low-Lapsley, Low-Peterson-Wang… “TCP is a primal dual algorithm for solving this problem”
S1 server A
S2
t2
server B
S3
t3
t1
16
Kelly, Maulloo, Tan
Example
: ( )
( )
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 = price for congestion at router Q
17
3. Network Utility Maximization
Wireless networks
max Ui(xi)
subject to .( …, xi , … ) C
C = system capacity region (convex) Depends on power assignments, interference etc.
Chiang Joint power control and congestion control for solving problem
18
3: Convergence vs oscillations
S1 Server A
S2
t2
S3
t3
t1
Prior work: Congestion of server Q = F(injection rates of flows that use Q) For example, congestion is signaled before queues buildup
(e.g. via ECN) Arrival rate of flow at server = flow injection rate Allows for convergence results
Server B
Inj rate x2 Inj rate x3
Inj rate x1Cong at server A
= x1 + x2
19
3: Convergence vs oscillations
A-Slivkins (Infocom 06) Suppose congestion causes queue buildups Flow arrival rate at server not necessarily equal to flow
injection rate Do convergence results still hold?
S1S2
t2
S3
t3 t1
20
3: Sending rates vs arrival rates
due to queues that are upstream,in general arrival rates arr1(t), arr2(t), arr3(t)are different from sending rates inj1(t), inj2(t), inj3(t)
Suppose we use the true arrival rates i.e. cong = arr1(t) + arr2(t) + arr3(t)
server
S1 S3
t1 t2 t3
S2
arri(t)
inji(t)
21
3: Convergence vs oscillations
Result: for any TCP-like congestion control mechanism,there exists a network of (wireline) servers and a set of flows such that starting from a certain initial state, system oscillates in a suboptimal state
at all times, for each server, the total sending rate
of all flows that use this server is less than its capacity
at all times, for each server, the total sending rate
of all flows that use this server is less than its capacity
22
Joint scheduling + cong control How should we do joint scheduling
and congestion control?
Problem definition Model queues explicitly
When data served by one server, passes to next server on flow route
Design scheduling + cong control max Ui(xi)
subject to . All queues are stable
xjxi
23
Joint scheduling + cong control Greedy Primal Dual Algorithm (Stolyar)
Simple version Flow Routes are given Set of routes to destination d form
rooted tree At most 1 pckt into each flow per
time step Per destination queues
Qv,d = amount of dest d data at node i
nv,d = next hop for Qv,d data rv,w(t) = data rate between nodes v,w
xjxi
24
Joint scheduling + cong control Greedy Primal Dual Algorithm (Stolyar)
Scheduling Node v serves data from queue
that maximizes(Qv,d – Qnv,d,d) rv, nv,d
(t)
Scheduling Flow i injects a packet whenever
U’(xi(t)) – b.Qibegin < 0
b = small parameter
Qibegin = first queue on path of flow i
xjxi
25
Joint scheduling + cong control Greedy Primal Dual Algorithm
(Stolyar)
Solves the utility maximization problem max Ui(xi)
subject to . All queues are stable
Works for wireless networks Joint scheduling and cong control
Collaboration via queues sizes Do not get excessive queue buildup
Scheduling creates “backpressure”
xjxi
26
Conclusions
Three reasons why joint scheduling and congestion control make sense in wireless networks
Sketched one possible method for doing this (Stolyar) Related work due to Eryilmaz-Srikant and Neely-
Modiano-Li
27
Conclusions Implementation issues?
Need communication between scheduler and cong control E.g. in Greedy Primal Dual algorithm, need to exchange
queue sizes between neighbors For wireless networks, need to exchange channel state
information for optimal throughput Could piggyback queue state info on channel state info
Different channel models? Optimality of Greedy Primal Dual proved for stationary
channels What about adversarial channels?
28
Backup slides Oscillating example of A-Slivkins 2006.
29
??
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
30
The basic gadget: high-level idea
Q1 Q4Q2 Q3S t
Q1 Q4Q2 Q3S tfinish1
1capacity 1<1 <1
Q1 Q4Q2 Q3S t1
start
31
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
32
Q1 Q4Q2 Q3S t
1capacity 1<1 <1
The basic gadget: animation
S’
t’
rate = 0rate = 0
init rate
init rate
33
Q1 Q4Q2 Q3S t
1capacity 1<1 <1
The basic gadget: animation
S’
t’
rate = 0rate = 0
rate rate
34
Q1 Q4Q2 Q3S t
1capacity 1<1 <1
The basic gadget: animation
S’
t’
rate = 0rate = 0
rate = 0
rate = 0
1
35
Q1 Q4Q2 Q3S t
1capacity 1<1 <1
The basic gadget: animation
S’
t’
rate = 0rate = 0
rate rate
36
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
37
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!
38
Row of gadgets
1 2 3 1 2 3 1 2 3 1 2 3S1 t1
a better processa better process
39
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
40
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
41
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
42
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
43
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 ???
44
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
45
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
46
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
47
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
48
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 !!!
Top Related