Fairness, Flow Control & Multi-User Games
description
Transcript of Fairness, Flow Control & Multi-User Games
Peter KeyMicrosoft Research, Cambridge
Fairness, Flow Control & Multi-User Games
Partners
Frank Kelly, Richard Gibbens (Stats Lab)
Derek McAuley, Dave Stewart (Microsoft Res Ltd)
Current Solutions
eg ATM‘Police users’Tight QoS
guaranteesToo complex for
usersC.O. (inelastic bias)
eg Internet ‘Best effort’ (!)=1 QoSLow usage users
subsidise heavy usersRelies on ‘nice’ users
(eg compliant TCP)Fails to account for
congestion externality
What is QoS?
Current thinking tends toward definitions involving mappings on a multidimensional space (eg CCITT series of recommendations have a whole layered structure)
Most SLAs for telecommunications define quantities that are not measurable (especially by provider).
Is this complexity necessary - other services are differentiated by a few criteria?
Only need to be have non-identical measures to apply Cake-slicing theorem!
Resource system (‘network’)
Resource j
Capacity Cj
User /route r Ajr links users to resources
Service Requirements (Shenker)
Convex
“Hard”real time
Utility U(x) Utility
bandwidthbandwidth
Real TimeLimited capacity Rejection
DataNo calls rejectedShare bandwidthThe Internet!
Telcos
The problem of the commons
Fairness
There are lots of ways to be fair!In a network context, Max-Min and
Max-Utilisation are like “boundary” values
Proportional fairness has links with Nash arbitration scheme
What is fair??
As many definitions as utility functions (preference functions on x s.t Ax C)
Max-min fair popularProportional fairness advocated by
eg KellyRevenue maximisation another
option
Fairness Examples
Two resourcesEach with capacity
normalised to 1Vertical streams
use one resourceHorizontal streams
use two resources
Fairness Examples, eg
Max-min
½
½ ½
Proportional
1/3
2/32/3
0
1 1
TCP approx
0.4
0.6 0.6
Max load
Fairness Examples, eg
Max-min
½
½ ½
Proportional
1/3
2/32/3
0
1 1
TCP approx
0.4
0.6 0.6
Max load
xxU Log
xxU 1Log 2/3Log xxU
xxU Log
Fairness Examples, prop. fair prices
Max-min
½
½ ½
Proportional
1/3
2/32/3
0
1 1
TCP approx
0.4
0.6 0.6
Max load
1w
2w
1w
0w
1w
1w
1w
34w
Some problems with TCP (CA mode)
Lose cellshence keeps network at high load (but …)slow to react (queue size rather than rate)
If p is probability lose cell, throughput 1/p
(should be 1/p)
Does not scale, eg if double capacitywrong shadow pricesonly works if “capacity” > number of sources,
where capacity = (bottleneck x rtt/mss)
Simple TCP model with feedback
Resource loses excess load, n number of sources,
nC capacity (=n x resource capacity*RTT/MSS),
12JC+�8+C2Nwindow=
RTT=1ms, cap=1MB/s, C=244
2 4 6 8 10C=capacity � sources0.2
0.4
0.6
0.8
1window � C Asymptotic loss rate
Framework (Gibbens &Kelly)
Users generate loadFeedback signal is “sample shadow
price” eg in simple slotted model, mark every
packet if load exceeds capacity: shadow price as describes effect of adding extra packet
if a buffered system, mark packets from start of busy period to last packet lost in this period
Sample Path Shadow Prices
C
1 2 3 4 5 6 7 8 9 10
Time
Capacity
pktsC slotted time
Sample path Shadow prices, buffered model
Time
Bu
ffer
Co
nte
nt
Pkts
Shadow path shadow prices -buffered model
Time
Bu
ffer
Co
nte
nt
B
B
Pkts
Features of Efficient Pricing Scheme
Those with the highest cost of delay get served first
Prices send the right signals for capacity expansion
If all of the congestion revenues are reinvested in new capacity,then capacity will be expanded to the point where its marginal value is equal to its marginal cost
eg “Smart market” approach of Mackie-Mason/Varian, though some issues with their model
Prices related to congestion
Optimisation Framework (for fairness)
CAxts
xUMaxr
r
..
U System optimum
U is utility
rr txxUMax User optimum
rr
jr
jj
rr
xAy
yCxUMax
U C is cost function,eg
C y Cj j c h
Solution
Consistent set of taxes (prices) and load exist s.t.
rr
jj
jj
rrj
jr
txU
dy
dC
onstraineddC
d
xxU
nedunconstrai
case c
0 if
U
Eg Network chooses taxes, user chooses load,solution is network, user and System optimal.But dependent on Utility function, so ….
Example
jrr
jj
jjj
cYxcYIxE
yYEY
cYdy
dCcYEyC
Pr
Also,
. andPoisson if
Pr
Hence mark packet if exceed capacity
jrr
rrr
cYxw
xwxU
Pr
then),Log( If
Adaptive (prop fair) scheme
Suggests the adaptive approach
ttxtwtxdt
d
rjjrrrr
maximises
yjyC j is load when resourceon function cost is
rjr
jjr
rr xCxU
ypyCdy
dtxpt jj
rjrj
, where j
Example - elastic control
tfwxx ttt 1
network thefrom receivedfeedback is
pay, toss willingnereflects
tf
wt
0 else )overloaded bottleneck (resource/ if txtf
eg
TCP & TCP like schemes
80 100 120 140 160 180 200N
120
140
160
180
200
Load
100 150 200 250 300N
86
88
90
Load
80 100 120 140N
200
400
600
800
Load
TCP w=1
w=0.05
80 100 120 140
120
140
160
180
200
TCP with shadow price
Single node network
Buffered Model
Distributed multi-player game
Internet
MSRCambridge
Protocol structures
User’s Algorithm
Interface / Stub
Game Protocol
TCP
TCP
C++ /J++
ASCII basedTelnet
Network /Game
Information flow
User Game / controller
Request
Ack
Destination
Start & type of game
virtual pcktack,mark,time
virtual pcktack,mark,time
End of game
Protocol
Notes:•All single word (32bit) unsigned,•pkt size integer•marks integer •Time=sec.sec•Token generated by user•Corrupted/lost token=packet drop
User<destination><token><pkt size>
<token><marks>
=pckt
=ACK “Network”
<time>
Example Objectives
Assumes notified cost per markMaximise (ave. thruput - ave. cost)Max Discounted (thruput - cost)For given utility function, max (utility - cost)Transfer an amount of data F(file) at min
costTransfer F in set time T at min costTransfer F as quickly as possible at min costGiven fixed budget, maximise transfer
Iterative Approach
New User plays on test harnessPlays against controlled load
• (eg against copies of single game or against sample from random population)
Plays against other users each with same objective
Plays against others with multiple objectives
Disciplines
Computer scienceControl TheoryGame Theory / econometricsStochastic Decision TheoryOptimisation / Dynamic
Programming
Let the games begin!