Peter Key Microsoft Research, Cambridge Fairness, Flow Control & Multi-User Games
Partners zFrank Kelly, Richard Gibbens (Stats Lab) zDerek McAuley, Dave Stewart (Microsoft Res Ltd)
Current Solutions eg ATM zPolice users zTight QoS guarantees zToo complex for users zC.O. (inelastic bias) z eg Internet z Best effort (!)=1 QoS z Low usage users subsidise heavy users z Relies on nice users (eg compliant TCP) z Fails to account for congestion externality
What is QoS? zCurrent thinking tends toward definitions involving mappings on a multidimensional space (eg CCITT series of recommendations have a whole layered structure) zMost SLAs for telecommunications define quantities that are not measurable (especially by provider). zIs this complexity necessary - other services are differentiated by a few criteria? zOnly need to be have non-identical measures to apply Cake-slicing theorem!
Resource system (network) Resource j Capacity C j User /route r A jr links users to resources
Service Requirements (Shenker) Utility U(x) Utility bandwidth Real Time Limited capacity Rejection Data No calls rejected Share bandwidth The Internet! Telcos
The problem of the commons
Fairness zThere are lots of ways to be fair! zIn a network context, Max-Min and Max- Utilisation are like boundary values zProportional fairness has links with Nash arbitration scheme
What is fair?? zAs many definitions as utility functions (preference functions on x s.t Ax C) zMax-min fair popular zProportional fairness advocated by eg Kelly zRevenue maximisation another option
Fairness Examples zTwo resources zEach with capacity normalised to 1 zVertical streams use one resource zHorizontal streams use two resources
Fairness Examples, eg Max-min ½ ½ ½ Proportional 1/31/3 2/32/3 2/32/ TCP approx Max load
Fairness Examples, eg Max-min ½ ½ ½ Proportional 1/31/3 2/32/3 2/32/ TCP approx Max load
Fairness Examples, prop. fair prices Max-min ½ ½ ½ Proportional 1/31/3 2/32/3 2/32/ TCP approx Max load
Some problems with TCP (CA mode) zLose cells xhence keeps network at high load (but …) xslow to react (queue size rather than rate) zIf p is probability lose cell, throughput 1/ p (should be 1/p) zDoes not scale, eg if double capacity xwrong shadow prices xonly 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), window= RTT=1ms, cap=1MB/s, C=244
Framework (Gibbens &Kelly) zUsers generate load zFeedback signal is sample shadow price yeg in simple slotted model, mark every packet if load exceeds capacity: shadow price as describes effect of adding extra packet yif a buffered system, mark packets from start of busy period to last packet lost in this period
Sample Path Shadow Prices C Time Capacity pkts C slotted time
Sample path Shadow prices, buffered model Pkts
Shadow path shadow prices - buffered model B B Pkts
Features of Efficient Pricing Scheme zThose with the highest cost of delay get served first zPrices send the right signals for capacity expansion xIf 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 zeg Smart market approach of Mackie- Mason/Varian, though some issues with their model zPrices related to congestion
Optimisation Framework (for fairness) System optimum U is utility User optimum C is cost function,eg
Solution Consistent set of taxes (prices) and load exist s.t. Eg Network chooses taxes, user chooses load, solution is network, user and System optimal. But dependent on Utility function, so ….
Example Hence mark packet if exceed capacity
Adaptive (prop fair) scheme Suggests the adaptive approach maximises
Example - elastic control eg
TCP & TCP like schemes TCP w=1 w=0.05 TCP with shadow price
Single node network
Buffered Model
Distributed multi-player game Internet MSR Cambridge
Protocol structures Users Algorithm Interface / Stub Game Protocol TCP C++ /J++ ASCII based Telnet Network /Game
Information flow User Game / controller Request Ack Destination Start & type of game virtual pckt ack,mark,time virtual pckt ack,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 =pckt =ACK Network
Example Objectives Assumes notified cost per mark zMaximise (ave. thruput - ave. cost) zMax Discounted (thruput - cost) zFor given utility function, max (utility - cost) zTransfer an amount of data F(file) at min cost zTransfer F in set time T at min cost zTransfer F as quickly as possible at min cost zGiven fixed budget, maximise transfer
Iterative Approach zNew User plays on test harness zPlays against controlled load (eg against copies of single game or against sample from random population) zPlays against other users each with same objective zPlays against others with multiple objectives
Disciplines zComputer science zControl Theory zGame Theory / econometrics zStochastic Decision Theory zOptimisation / Dynamic Programming
Let the games begin!