Distributed control and resource pricing Richard Gibbens (University of Cambridge) Peter Key (Microsoft Research, Cambridge) ACM SigComm 2000, Stockholm: Tuesday, 29 August Introduction Overview Presentation format Tutorial overview Demonstrations Multi-disciplinary: Mathematics, Computer Science, Engineering and Economics Copyright © 2000 by Gibbens & Key Distributed control and resource pricing Introduction and history of DC in the Internet Primary motivations Differential QoS in IP networks End-to-end flow control TCP congestion avoidance algorithm Sharing scarce resources Copyright © 2000 by Gibbens & Key Major problem areas Adaptive applications (elastic) Flow control Non-adaptive applications (non-elastic) Admission control Sharing scarce resources Willingness-to-pay Incentives Fairness Copyright © 2000 by Gibbens & Key Resource allocation and resource pricing Background ideas and concepts TCP example User Response Users can do what they want NB: “Users” may be applications Incentive to back-off when marked Get better service by “paying” more Eg: adjust sending rate by difference between amount willing to pay and rate of marking How much is this data worth to you? Copyright © 2000 by Gibbens & Key Sharing scarce resources Examples Internet (bandwidth, output ports etc) Servers / Computers (processors, memory) Wireless (channel capacity) Copyright © 2000 by Gibbens & Key Service Requirements & Bandwidth sharing (Shenker) Utility Utility U(x) Convex “Hard” real time bandwidth Elastic/ Data Real Time Limited capacity Rejection Limited capacity Copyright © 2000 by Gibbens & Key Share out bandwidth Resource system (‘network’) Resource j J Capacity Cj User /route r R Ajr links users to resources Copyright © 2000 by Gibbens & Key Features of an “ideal” allocation system “Fair” Incentive compatible (encourages user/agent to chose best action ) Optimal (in a system sense) Those who want/can pay more can get more … Copyright © 2000 by Gibbens & Key Incentive compatible Provide the “correct” signals to users, who are encouraged to do what is best for them, ie Not to “cheat”. And there is no incentive for them to misrepresent their preferences Copyright © 2000 by Gibbens & Key What is fair?? Max-min fairness popular Proportional fairness advocated by eg Kelly Revenue maximisation another option Max-min and Max utilisation are like “boundary” conditions Copyright © 2000 by Gibbens & Key Max-Min Fairness Maximises the minimum amount (of resource) that each user receives Implies increasing allocation to a user must decrease allocation to a user who has less Simple algorithm: fill up all end-to-end paths/sessions not saturated at uniform rate, When a resource saturates, sessions using this bottleneck resource are saturated repeat until no unsaturated sessions Seen as desirable by ATM forum, IETF etc… Generalises to weighted max-min fairness Copyright © 2000 by Gibbens & Key Proportional Fairness Allocation is proportionally fair if for any other allocation, aggregate of proportional changes is non-positive Eg if xr is allocation, and yr another, then require yr xr r x 0 r Generalises to weighted proportional fairness (multiply above by wr inside summation) Copyright © 2000 by Gibbens & Key Game theoretic properties User has Utility Ur(x) with allocation x Then Proportional fairness = Nash Bargaining scheme with Ur xr wr log xr Nash Bargaining is the only arbitration scheme to satisfy certain axioms of Pareto optimality Linearity “Irrelevant alternatives” (contentious) Symmetry Copyright © 2000 by Gibbens & Key Fairness and Bankruptcy If bankrupt has $1000, but owes me $400 and you $2000, is it fair if I get $400 and you $600? Copyright © 2000 by Gibbens & Key Fairness Examples, eg ½ ½ ½ 2/ 1/ Proportional 1 0 3 3 Max-min 1 3 2/ 0.6 0.6 0.4 Max Throughput TCP approx Copyright © 2000 by Gibbens & Key Fairness Examples, eg ½ ½ ½ 2/ 1/ 3 3 Proportional U x Log x 0.6 0.6 Max-min U x Log x 1 1 0 3 2/ 0.4 Max load U x Log 1 x TCP approx x 2 U x 2 arctan or U ( x ) x 2 Copyright © 2000 by Gibbens & Key Fairness Examples, prop. fair prices ½ ½ ½ 2/ w2 Max-min 1 1/ w 1 w 1 Proportional 1 0.6 w0 0.6 w 4 0.4 w 1 Max load 3 3 w 1 0 3 2/ w 1 TCP approx Copyright © 2000 by Gibbens & Key 3 TCP as a motivation example Throughput control by “windows” We concentrate on congestion window, cwnd Two phases: slow start (to find an operating point) Congestion avoidance (steady state behaviour) Copyright © 2000 by Gibbens & Key TCP in one slide Congestion Avoidance (Linear) Packets per RTT (“window”) 25 Window Halved on Packet Loss 20 Loss 15 10 “Slow Start” (exponential) 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Time (in round-trip times) Copyright © 2000 by Gibbens & Key 22 23 24 25 26 27 28 29 30 TCP Congestion Avoidance Congestion window W= cwnd Idealised behaviour: Window increases by 1/W per ACK Window halves per packet loss (or ECN mark) Idealised as can take 3 duplicates to detect loss, delayed ACKs etc Hence increases by at most 1 per RTT Normalise units so W in units of MSS (ie segments, real counter is in bytes). Think of MSS as 500B or 1KB to get units Copyright © 2000 by Gibbens & Key Simple TCP model for CA Window increases by (1/W ) per ACK, and decrease by (Wp/ 2) where p is packet loss But if T is the RTT, then this occurs in time (T/W ), hence 2 dW 1 W p dt T 2T Gives steady state: Throughput: W 1 T T W 2 p Copyright © 2000 by Gibbens & Key 2 p Fairness and TCP 0.6 0.6 0.4 Each resource marks with probability 1 1 0 p Max Throughput TCP approx as p increases For n links in series, small p, horizontal gets share 1 n 1 Compare with Proportional share : Copyright © 2000 by Gibbens & Key 1 n 1 Rate model TCP model for CA Rate of packet send is x=W/T dx 1 dW 1 x 2p 2 dt T dt T 2 As if user is trying to maximize net utility=utility – cost, where Utility: 2 U x K 2 T x Cost (penalty) = px Copyright © 2000 by Gibbens & Key Proof: U(x)-px is a convex function, maximum where derivative is zero, ie where U (x ) p 2 p 2 2 T x 1 x T Copyright © 2000 by Gibbens & Key 2 p Utility functions for different RTT 1000 10ms Utility 900 50ms 800 100ms 700 Net Utility 600 1s 0 200 400 600 Rate 800 1000 p 0.1 1000 950 900 850 800 750 Utility(x) – 0.1 x 0 200 400 600 800 1000 Rate Copyright © 2000 by Gibbens & Key Refined TCP model for CA Window increases by (1/W ) per ACK, and decreases by (Wp/ 2) where p is packet loss But if T is the RTT, then this occurs in time (T/W ), hence 2 dW 1 p W p dt T 2T Gives steady state: Throughput: W 1 2(1 p ) T T p Copyright © 2000 by Gibbens & Key 2(1 p ) W p Refined Rate model TCP model for CA Rate of packet send, is x=W/T dx 1 dW 1 p x 2 p 2 dt T dt T 2 As if user is trying to maximise net utility =utility – cost where Utility: 2 xT U x arctan T 2 Cost (penalty) = px Copyright © 2000 by Gibbens & Key Utility Utility functions for different RTT (Refined TCP model) 100 80 60 40 20 0 10ms 50ms 100ms 1s Net Utility 0 125 100 75 50 25 0 25 50 100 200 300 400 500 Rate p 0.1 Utility(x) – 0.1 x 0 100 200 300 400 500 Rate Copyright © 2000 by Gibbens & Key Comments on TCP Utility function heavily influenced by RTT (weights RTT more heavily than bandwidth) Behaviour results in a dependence on 1/p whereas 1/p more natural Increase and decrease behaviour induces a large variance Copyright © 2000 by Gibbens & Key Different Users Suppose a number of different users, indexed by r, round trip times Tr utility functions becomes 2 Ur xr Kr 2 Tr xr More generally, users can increase window at rate mr per RTT, decrease window by 2mr equivalently 2mr Ur xr Kr 2 Tr xr Copyright © 2000 by Gibbens & Key Different Users Network: number of resources J, feedback signal pj, aggregate feedback to user r is def pr Example: p j : j r j pj represents packet loss, loss approximately additive for small pj and losses are independent pj represents a marking signal with additive marks Copyright © 2000 by Gibbens & Key Theorem If each user independently updates their rates/window, then system converges to the unique equilibrium, where each user has mean rate mr xr Tr 2 pr Hence have can think of TCP as performing an implicit optimisation Equivalently system is maximising Utility (user ) users Congestion_cost resources Copyright © 2000 by Gibbens & Key Economics of congestion pricing Economic perspectives Scarce restricted in quantity, size or amount Congestion A crowding together or accumulation which disorganizes regular and healthy activity; congested or overcrowded condition, as of population, traffic, etc. OED Copyright © 2000 by Gibbens & Key Externalities Externality An externality occurs where the actions of one agent directly affect the environment of another agent. Reference: Varian, Microeconomic analysis Copyright © 2000 by Gibbens & Key Simple example Agent 1: competitive market with output x, price p and costs c(x) Agent 1 imposes a cost e(x) on agent 2 Then the profits are given by 1 max px c x x 2 e x Copyright © 2000 by Gibbens & Key Equilibrium behaviour Equilibrium output, x given by p cxq Output too large: agent 1 takes account of private costs, c(x), but ignores remainder of the social costs, e(x). Price, p, is given by marginal private cost Merge agents to determine efficient amount: internalize the externality Copyright © 2000 by Gibbens & Key Internalized costs Profits of merged agent max px c x e x x New output xe given by p c xe e xe Price equals marginal social cost Copyright © 2000 by Gibbens & Key Example: road tolls Costs: private and social N2: D meets PC, cost C2 N1: D meets SC, cost C3 Toll: C3-C1 Well-being improved Congestion still present Cost per D Vehicle hour SC PC C4 C3 C2 C1 N0 N1 N2 Trips per hour Copyright © 2000 by Gibbens & Key Potential solutions Taxes Missing markets M&A Compensation mechanisms Copyright © 2000 by Gibbens & Key Using taxes Agent 1 is using the wrong prices so just add a tax, t, so that p c x t Should choose t e xe Problem: requires knowledge of externality cost function, e(x) Copyright © 2000 by Gibbens & Key Missing markets Agent 2 cares about level of output of agent 1 but has no way to influence it – hence, add a market 1 max px1 rx2 c x1 x1 2 max rx2 e x2 x2 Copyright © 2000 by Gibbens & Key Missing markets – cont. First-order conditions: p r c x1 r e x2 Supply and demand match when x1 x2 giving previous conditions with internalized costs Copyright © 2000 by Gibbens & Key Compensation mechanisms Aim is to set up a market which encourages agents to correct reveal costs (externalities) that they impose Two stage process: Announcement: agent i names a tax ti Choice: If agent 1 produces output x, it pays a tax t2x while agent 2 receives t1x Copyright © 2000 by Gibbens & Key Compensation – penalties and profits Additionally, each agent pays a penalty depending on the difference in taxes, 2 say, t1 t 2 Final profits given by 1 max px c x t2 x t1 t2 2 x 2 t1 x e x t1 t2 2 Copyright © 2000 by Gibbens & Key Equilibrium behaviour Work backwards: fix taxes t1, t2 and consider second stage Agent 1 chooses output x=x(t2) s.t. p c x t 2 In first stage, if agent 2 chooses t2 then agent 1 wants to choose t1=t2 Copyright © 2000 by Gibbens & Key Equilibrium – (cont) Finally, in first stage agent 2 will name tax t2 s.t. 2 t2 t1 e x xt2 2t2 t1 0 p c x e x Again giving the earlier conditions where costs are internalized Copyright © 2000 by Gibbens & Key Incentives Agent 1 always wants to match announcement by agent 2 Agent 2 If agent 2 thinks agent 1 will choose t1 high then it wants to tax agent 1 as little as possible (yielding as much output as possible) Alternatively, if agent 2 thinks agent 1 will choose t1 low then agent 2 wants agent 1 taxed as much as possible Copyright © 2000 by Gibbens & Key How will incentives align? Agent 2 is indifferent to agent 1’s output if agent 2 is exactly compensated, at the margin, for the externality costs Copyright © 2000 by Gibbens & Key Congestion pricing Simple model: n users of shared resource with capacity K n x User i uses bandwidth xi, with X j 1 j Utilization, Y=X/K, of the resource governs performance (delay or packet loss) User i receives utility ui xi , Y considered in MacKie-Mason & Varian (1995) Copyright © 2000 by Gibbens & Key Efficient pattern of usage Aggregate net benefit given by total benefit minus costs n W ( K ) max u j x j , Y c K x1 ,... xn j 1 Optimal solution satisfies first order conditions ui xi , Y 1 u j x j , Y pc , say xi K j 1 Y n Copyright © 2000 by Gibbens & Key Role of shadow prices, pc Suppose user i is charged usage price pc (to cover externality costs) Usage would then be given by decentralized optimization problems max ui xi , Y pc xi xi Copyright © 2000 by Gibbens & Key Solution to decentralized problem First order conditions give ui xi , Y 1 ui xi , Y pc xi K Y ui xi , Y pc xi Same as for centralized efficient pattern of usage: decentralized solution with congestion charges produces social optimum Copyright © 2000 by Gibbens & Key Capacity expansion Suppose capacity K is allowed to change: address impact of changes by differentiating aggregate net benefit, W(K) n u x , Y X j j W K c K 2 Y K j 1 X W K pc c K K Copyright © 2000 by Gibbens & Key When to upgrade? Hence W K 0 pc X cK K 0 That is, capacity expansion is socially beneficial if and only if the revenue in congestion fees (pcX) exceeds the value of the capacity (c’(K)K), where capacity is valued using the marginal cost of capacity Copyright © 2000 by Gibbens & Key Congestion (shadow) prices Classic dual roles measure social costs of increased usage at fixed capacity determine value of a change in capacity Copyright © 2000 by Gibbens & Key Resource pricing models Resource pricing: basic model Set of resources, J; set of routes, R A route r is a subset r J. Let 1 jr A jr 0 otherwise Capacity of resource j is Cj. Copyright © 2000 by Gibbens & Key User: rate and utility Each route has a user: if xr is the rate on route r, then the utility to user r is Ur(xr). Ur() --- increasing, strictly concave, continuously differentiable on xr [0 , ) --- elastic traffic Let C=(Cj, j J), x=(xr, r R) then Ax C. Copyright © 2000 by Gibbens & Key System problem Maximize aggregate utility, subject to capacity constraints max U x r rR subject to over r Ax C x0 Copyright © 2000 by Gibbens & Key User problem User r chooses an amount to pay per unit time wr, and receives in return a flow xr = wr/r wr max U r wr r over wr 0 Copyright © 2000 by Gibbens & Key Network problem As if the network maximizes a logarithmic utility function, but with constants (wr, rR) chosen by the users max w log x rR subject to over r Ax C x0 Copyright © 2000 by Gibbens & Key r Three optimization problems SYSTEM(U,A,C) USERr(Ur;r) NETWORK(A,C;w) Copyright © 2000 by Gibbens & Key Decomposition theorem There exist vectors , w and x such that 1. 2. 3. wr = rxr for r R wr solves USERr(Ur; r) x solves NETWORK(A, C; w) The vector x then also solves SYSTEM(U, A, C). Copyright © 2000 by Gibbens & Key Thus the system problem may be solved by solving simultaneously the network and user problems Copyright © 2000 by Gibbens & Key Max-min fairness x=(xr, r R) is feasible if x 0 & Ax C x is max-min fair if it is feasible, and if, for any other feasible vector y r :yr xr s : ys xs xr Copyright © 2000 by Gibbens & Key Proportional fairness x=(xr, r R) is proportionally fair if it is feasible, and if, for any other feasible vector y, the aggregate of proportional changes is zero or negative: rR y r xr xr 0 Copyright © 2000 by Gibbens & Key Proportionally fair per unit charge x=(xr, r R) is proportionally fair per unit charge if it is feasible, and if, for any other feasible vector y y r xr 0 wr xr rR w=(wr, r R) is a vector of weights, or charges Copyright © 2000 by Gibbens & Key Result A vector x solves NETWORK(A, C; w) if and only if it is proportionally fair per unit charge Copyright © 2000 by Gibbens & Key Solution of network problem Strategy: design algorithms to implement proportional fairness Several algorithms possible: try to mimic design choices made in existing standards Copyright © 2000 by Gibbens & Key Primal algorithm d xr t wr xr t j t dt rR j t p j xs t s: js Copyright © 2000 by Gibbens & Key Interpretation of primal algorithm Resource j generates feedback signals at rate j(t) signals sent to each user r whose route passes through resource j multiplicative decrease in flow xr at rate proportional to stream of feedback signals received linear increase in flow xr at rate proportional to wr Copyright © 2000 by Gibbens & Key Global stability theorem Let U x wr log xr rR jJ s: js xs p y dy j 0 Then the unique value of x maximizing U(x) is a stable point of the system, to which all trajectories converge NB stability of primal algorithms is an important area of research Copyright © 2000 by Gibbens & Key Marking Algorithms Marking Algorithms Can be based on damage caused by loss … or delay Copyright © 2000 by Gibbens & Key Marking Algorithms? Probability Probability Q 1 1 RED Threshold 0 0 Queue Length Queue Length Probability Probability 1 Capacity Q 1 Headroom Proportional 0 0 Queue Length Arrivals Rate Copyright © 2000 by Gibbens & Key Marking on loss /threshold Equivalent to marking when (output port) buffer exceeds a threshold Slow to react/insensitive unless buffer(threshold) is small Marking Prob 1 0.8 1 0.6 5 0.4 10 0.2 50 0 0.2 0.4 0.6 Load 0.8 1 Threshold Copyright © 2000 by Gibbens & Key Buffer =100 Marking: loss based Simple analysis: if c is capacity of resource, y the load, proportion of packet marked is (y c ) y as if cost function of resource is (y c ) c (log y logc ) With cost as lost packets, mark if Cost is y c (y c ) Marking strategies based on loss typically mark at least an order of magnitude fewer packets than those which mark all packets when the capacity is exceeded Copyright © 2000 by Gibbens & Key RED (Random Early Detection) RED keeps some average of queue size (so sensitive to RTTs…) and marks Probabilistically, when above low threshold All packets above high threshold Eg, if low threshold is buffer/4, high threshold (3/4)buffer then for load<1 can mark at most (3/4) of packets Designed to desynchronise sources Resource does the averaging, so problems with different round trip times Copyright © 2000 by Gibbens & Key How to Mark? Virtual Queue Create a “Virtual Queue” which runs at less than real rate (factor <1, eg =0.8) Mark if threshold K exceeded Gives “Early warning” of problems Threshold K Fixed Service Rate x packets Copyright © 2000 by Gibbens & Key Virtual Queue Example Suppose we want to track derivative of queue, (or suppose cost=P[exceed thresh] eg to keep delay bounded) M/M/1 P [buffer exceeds K ] K For virtual queue, rate , thresh K, then if we take derivatives, result is we put 1 K 1 1 K Copyright © 2000 by Gibbens & Key Virtual queue thresholds K Load (p mark =0.2) 5 , reduction factor .7 10 .78 .67 50 .92 .90 100 .96 .94 .5 Copyright © 2000 by Gibbens & Key Single bit vs. Multiple bit marking At low marking (eg if end-to-end marking rate<10%), little difference between single bit and multiple bit Multiple-bit marking the ideal For proportional fair strategies, single bit marking reduces to max-min fairness at high making loss rates, … while TCP reduces to max-loading under these conditions Copyright © 2000 by Gibbens & Key Flow control experiments with resource pricing Experiments with slotted time models Consider a resource having a capacity per slot to cope with N packets, with any excess lost. Suppose the load upon the resource, Y, in a given slot, is generated by adding together the loads generated in that slot, X1,X 2, … ,Xm, by m users, m Y Xi 1 and let the number of marks fed back to source i at the end of the slot be X i I Y N We describe some simple models of a user and examine the interaction between users and a resource. Copyright © 2000 by Gibbens & Key Shadow Prices (slotted time) Capacity 10 packets Mark all packets whenever demand exceeds capacity Demand Capacity 10 0 1 2 3 4 5 6 7 8 9 Slotted Time Copyright © 2000 by Gibbens & Key 10 Elastic User (w) Elastic-user (w) transmits X (t ) x(t ) z (t ) packets in the slot (t,t+1) where z (t 1) x(t ) z (t ) - X (t ) x(t 1) x(t ) w - f t f(t) is the number of marks received at the end of slot (t,t+1) and is a small positive constant. The recursion attempts to stabilize the rate x(t) around a value where the expected charge per slot is w. Copyright © 2000 by Gibbens & Key Scenario 1 10000 2000 0.20 0.19 0.20 0.19 0.18 0.17 0.16 0.15 6000 0.14 0.13 0.12 0.11 4000 0.10 0.09 0.08 0.07 2000 0.06 0.05 0.04 0.03 0.02 0.01 0 0 2000 4000 6000 8000 total number of marked packets 0.17 8000 total number of packets 0.18 0.16 1500 0.15 0.14 0.13 0.12 0.11 1000 0.10 0.09 0.08 0.07 0.06 500 0.05 0.04 0.03 0.02 0.01 0 0 2000 4000 6000 8000 slots slots Copyright © 2000 by Gibbens & Key Intermittent-user (w) Intermittent-user(w) is active and behaves as Elastic-user(w) for a random period with mean 1000, and then sleeps (that is, transmits no packets) for a random period with mean 4000. Successive periods are independent and geometrically distributed. Following the end of each sleep period, the internal state(x(t),z(t)) is reset to its value at the end of the last active period. Copyright © 2000 by Gibbens & Key Scenario 2 As before the resource has the capacity to serve N=10 packets per slot but now handling100 users. There were five independent copies of Intermittent-user wi , for each of the twenty values of wi used in Scenario 1. Copyright © 2000 by Gibbens & Key Results for Scenario 2 number of packets Demand w 5 4 3 2 1 0 2000 4000 6000 12 10 8 6 4 2 0 8000 2000 4000 5 4 3 2 1 0 2000 4000 6000 8000 slots packets lost (%) number of marked packets slots 6000 8000 12 10 8 6 4 2 0 2000 4000 slots 6000 slots Copyright © 2000 by Gibbens & Key 8000 File-transfer(F, W ) This user has a file of size F to transfer, an amount W to spend, and wants to transfer the file as soon as possible. The algorithm tries to pay a price W/F per packet on average. If the average shadow price is currently higher than this, the algorithm waits until the shadow price decreases, otherwise the algorithm increases its rate. Copyright © 2000 by Gibbens & Key File-transfer(F, W ) algorithm At time t, let F(t) be the size of the file remaining to be transferred, and let W(t) be W less the number of marks so far received. It calculates a parameter w(t) according to the following w(t 1) max x(t ) W (t ) / F (t ), wmin and updates x(t), z(t) and the number of packets transmitted X(t) just as Elastic-user(w), but with w replaced by w(t). Copyright © 2000 by Gibbens & Key 280 320 260 300 360 400 380 340 Scenario 3 5 number of marked packets packets transferred 1000 800 600 400 200 0 0 2000 4000 6000 8000 4 3 2 1 0 0 2000 slots 4000 6000 8000 slots As for Scenario2 plus 10 File Transfer(F, Wj) users where F=1000 and Wj= 200+20j, all starting their transfers at slot 0. Copyright © 2000 by Gibbens & Key Sample Path shadow prices critical congestion interval 10 queue length 8 6 4 2 0 A 141900 B 141950 142000 142050 142100 C 142150 142200 time Repeat the earlier experiments with a queueing resource which has a buffer capacity of N=10. If a packet is marked then the mark is fed back to the source 100 time units after the packet was transmitted by the source. Copyright © 2000 by Gibbens & Key Unresponsive-user(g) While active this user transmits a packet in each slot with probability g, independently from slot to slot; while sleeping, this user transmits no packets. Successive active and sleep periods are independent and geometrically distributed with mean 1000. Copyright © 2000 by Gibbens & Key Scenario 4 Intermittent-users: There were two independent copies of Intermittent-user(wi), where =0.001 and wi =i 0.001, for i=1,2, …,20. Active periods had mean 10000, while sleep periods had mean 40000. Intermittent-file-transfers: Such a user behaves as Filetransfer(F,Wj) while a file transfer is in progress, and then sleeps for a random period with mean40000. Sleep periods are independent and geometrically distributed. There were ten intermittent-file-transfers, with F=1000, wmin =0.001 and Wj=150+20j, for j=1,2,… ,10. Unresponsive-users: There were ten such users, namely Unresponsive-user(gk) for k=1,2,…,10, where gk =0.01k. Copyright © 2000 by Gibbens & Key Results for Scenario 4 5000 0.20 packets transferred 4000 0.15 3000 0.10 2000 0.05 1000 0 0.0 0 50000 100000 time 150000 200000 0 1 2 3 4 5 6 7 8 9 10 queue size The proportion of packets marked was 0.18, while the proportion of packets lost was 0.014. The resource utilization was 0.84. Copyright © 2000 by Gibbens & Key Two-Node Example User 1 User 2 pkts marks pkts marks pkts User 3 marks pkts 100 of each user type Copyright © 2000 by Gibbens & Key pkts Two-Node Example, Delays User 1 50 User 2 50 50 marks 50 50 marks User 3 100 marks Copyright © 2000 by Gibbens & Key 50 Distributed Admission Control for Packet-Based Networks Subplot … Can guarantees for flows/connections be provided using only feedback (or pricing signals) ? With Frank Kelly, and Stan Zachary Distributed Admission Control, preprint http://www.research.microsoft.com/research/network/publications/dac.htm Copyright © 2000 by Gibbens & Key Guaranteed Flows / Streams? Probabilistic guarantees OK, provided proportion of adaptive traffic adequate Just a question of risk-brokers (cf fixed rate mortgages) Futures market: a reservation is a (European) call option for an amount of bandwidth, where fair price = Integral of expected price over expected lifetime Copyright © 2000 by Gibbens & Key Outline Connection level models Packet level models Extensions Copyright © 2000 by Gibbens & Key An alternative approach Put the intelligence in the end-systems Let the users/application decide whether to enter the system Uses feedback signals (congestion marks) to make decisions Copyright © 2000 by Gibbens & Key Admission Control in the Internet ISP Copyright © 2000 by Gibbens & Key User policy M probe packets User /route A connection Is rejected if any probe packets are marked Otherwise stays for duration of holding time Copyright © 2000 by Gibbens & Key Applications In an Intranet In a VPN Within a service class (eg DiffServ) But could integrate in a Congestion pricing framework Copyright © 2000 by Gibbens & Key Notation Let J be a set of resources R be a set of routes Poisson arrivals, rate nr, unit holding time Occupancy Acceptance mj (n ) nr r j ar m a j m j r Copyright © 2000 by Gibbens & Key Product form distribution Assume: Poisson arrivals, rate n Let a(mj) be probability accepted at node j independently, then equilibrium distribution has a product form Equilibrium distribution for the number of calls in progress na(n-1) na(n) n n-1 n n+1 n+1 Can approximate and analyse via a set of Fixed Point Equations Copyright © 2000 by Gibbens & Key Example: Traditional Loss networks Let Cj be the capacity of resource j a j mj mj C j 1 0 otherwise Copyright © 2000 by Gibbens & Key Dynamics With x(t)=n(t) for a large system, consider dx r (t ) nr aj dt j r xs t x r (t ) s j Theorem: Can construct a Lyapunov function, hence all trajectories converge to the (unique) fixed point. Copyright © 2000 by Gibbens & Key Interpretation As if users attempting to maximise a aggregate utility function – a network cost, where individual utility xr Ur (x ) xr 1 log nr Copyright © 2000 by Gibbens & Key Acceptance Probabilities Packet Level models Assume connections generates packets m connections, generate packets at rate , hence load m Mark according to queue dynamics (eg when queue above a threshold, etc) Copyright © 2000 by Gibbens & Key Example, voice on a VPN, video on a MAN Suppose application sends 20 pps average (bursty) over a VPN with capacity 1200 pps then where is mean packet service time = 1/60, as if capacity =60 Run queue at loading of 0.7 (effective capacity 42) Copyright © 2000 by Gibbens & Key Rejection Probabilities & DF for VQ marking 1.0 0.8 Occupancy distribution 0.6 Pr Occupancy /Rejection Prob 0.4 0.2 Rej prob 0.0 0 Setup: n=50, threshold 5 10 20 30 n 40 Rej prob with perfect knowledge Copyright © 2000 by Gibbens & Key 50 60 Occupancy density functions Pr Pr 0.2 0.12 0.1 0.15 0.08 0.06 0.1 0.04 0.05 0.02 10 20 30 40 50 60 n 10 20 30 40 50 60 n n Design load Setup: n=50, thresholds 5,10 Very High load Setup: n=100, thresholds 5,10 Copyright © 2000 by Gibbens & Key Comparison with perfect knowledge DAC Pr 0.7 0.6 0.5 0.4 0.3 Perfect CAC 0.2 0.1 40 60 80 100 120 140 Copyright © 2000 by Gibbens & Key v But Capacity Savings Load v 20 Marks (rejection) 0.001 Savings (if count…) 25% 30 .024 17% 40 .106 13% 50 .215 8% 60 .313 6% Copyright © 2000 by Gibbens & Key Blocking vs. Marking (price) & Differential QoS VQ marking, threshold K=10, capacity (1/)=100 Pr Pr 0.6 Blocking 0.6 0.5 0.5 0.4 0.4 0.3 0.3 0.2 0.2 0.1 0.1 50 75 100 1 Probe packet 125 150 175 200 n marking 50 75 100 125 150 5 Probe packets Copyright © 2000 by Gibbens & Key 175 200 n Blocking vs. Marking (price) & Differential QoS, Integrated Suppose one stream sends 1 probe packet, another sends 5, and both share a common resource. Each stream enters only if no packets are marked. The stream sending 5 packets sees a higher rejection probability. Pr 0.5 0.4 M 5 Rej 0.3 Marks 0.2 0.1 20 40 60 80 100 v Copyright © 2000 by Gibbens & Key Mixing adaptive and nonadaptive traffic Simple model: two types of traffic Non-adaptive traffic, requires unit bandwidth Adaptive traffic: reacts to signals can halve its bandwidth requirement Suppose price (congestion marking probability) not to go above 0.2 Gives acceptance boundaries Copyright © 2000 by Gibbens & Key Price regions 1 0.75 Price 0.5 0.25 0 0 30 20 n2 10 20 n1 40 60 0 Copyright © 2000 by Gibbens & Key Acceptance Boundaries n2 8 Target Excedeence Prob 0.010 , C = 25.54 < 15 12.5 10 Overload 7.5 5 Underload 2.5 n1 5 10 15 20 25 30 35 Copyright © 2000 by Gibbens & Key Bandwidth Exchanges 9 Interconnection operators (clearing houses, brokers etc) Band-X, London 1997 RateXchanges, anonymous, PSTN voice, VOIP, b/width Option pricing (futures market for bandwidth) Copyright © 2000 by Gibbens & Key Games and a distributed Game Network vs Users “My work is a game, a very serious game” Escher Data/Info Network Signals Users Copyright © 2000 by Gibbens & Key Distributed Multi-player Game Internet MSR Cambridge Copyright © 2000 by Gibbens & Key The Internet “In-a-Box” TCP TCP TCP TCP TC P MSR Cambridge Network Simulator … “self-centred behaviour” is encouraged! Copyright © 2000 by Gibbens & Key Information flow Request Ack User Start & type of game Copyright © 2000 by Gibbens & Key Game / controller Protocol <destination><token><pkt size> =pckt User <token><marks> =ACK “Network” <time> Notes: •All single word (32bit) unsigned, •pkt size integer •marks integer •Time=sec.sec •Token generated by user •Corrupted/lost token=packet drop Copyright © 2000 by Gibbens & Key Protocol structures User’s Algorithm Interface / Stub Telnet C++ /Java Game Protocol ASCII based TCP TCP Network /Game Copyright © 2000 by Gibbens & Key Bandwidth Proportional to cost. Iterative Approach New User plays on test harness Plays 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 Copyright © 2000 by Gibbens & Key Evaluation Environment A distributed multi-user game Users try to beat the (simulated) network Users try to beat each other Network tries to recover upgrade costs Simulates at (below) the packet level Bake-off various algorithms Marking schemes Congestion Avoidance schemes Queuing disciplines Copyright © 2000 by Gibbens & Key Example Objectives Assumes notified cost per mark Maximise (ave. thruput - ave. cost) Max Discounted (thruput - cost) For given utility function, max (utility - cost) Transfer an amount of data F(file) at min cost Transfer F in set time T at min cost Transfer F as quickly as possible at min cost Given fixed budget, maximise transfer Copyright © 2000 by Gibbens & Key Example Game Transfer a given amount of data F at minimum cost in time T Strategies: CBR, if stationary regime, optimal if price “convex” in region (lightly loaded) else, have to predict fluctuations Copyright © 2000 by Gibbens & Key Specific FT Game Transfer a given amount of data F at minimum cost in time T, maximum rate P eg F=1000pkts, T=100s, P=20pps Background load of 100 WTP users alternating on and off periods (10 & 30 s) Willing to pay different amounts 600 pps bottleneck link (eg 5Mb/s) shadow queue marking (threshold 9, cap 540 pps) Repeated runs Copyright © 2000 by Gibbens & Key WTP background users ‘Willing-to-pay’ an amount w per unit time Elastic users — adjust rate of sending to keep marking rate close to w Defines a packet-send strategy Copyright © 2000 by Gibbens & Key Marking periods 10 20 9 18 8 14 7 12 6 Buffer Buffer 16 10 8 6 5 4 3 4 2 2 1 0 60 61 62 63 64 65 0 60 61 Time Shadow queue 62 63 Time Real queue Copyright © 2000 by Gibbens & Key 64 65 A baseline Strategies CBR : send at constant rate If in stationary regime, this is an optimal strategy if price function “convex” in region wrt load (lightly loaded) and prices iid, or a Martingale Copyright © 2000 by Gibbens & Key A last packet strategy (like titfor-tat) Use feedback to dynamically adjust rate If (last packet not marked /dropped) {send at high rate = peak rate } else {send at low rate} A variant is … Copyright © 2000 by Gibbens & Key A last-2 packet strategy Attempts to determine non-marking periods If (last 2 packets not marked /dropped) {send at high rate = peak rate } else {send at low rate} Copyright © 2000 by Gibbens & Key Sending rates example 1000 900 800 Packets 700 Last 2 Last 1 Constant rate 600 500 Estimator Marks 400 300 200 100 0 50 70 90 110 130 Time Copyright © 2000 by Gibbens & Key 150 Results for high load, T=100 Marks vs Time Marks 300 250 200 Constant Rate Last-1 150 Last 2 Esimate 100 50 0 50 60 70 80 90 100 Raw FTP sends in 5 seconds, cost 410 Copyright © 2000 by Gibbens & Key time to complete Results for high load, T=10 450 Marks 400 350 300 Constant Rate 250 Last-1 200 Last 2 Esimate 150 100 50 0 0 5 10 15 Raw FTP sends in 5 seconds, cost 410 Copyright © 2000 by Gibbens & Key time to complete A “Slow start game” Given a “short-lived connection”, how to maximize net throughput (throughputcost)? Possible approaches Slow start Binary chop History using Bayesian updates Copyright © 2000 by Gibbens & Key Open issues Experiments suggest simple strategies are powerful (cf Axelrod’s work) Simulation environment with ‘game playing’ enables strategies to be compared and developed Future work will look at different and mixed objectives The Internet is a non-cooperative game, but the right signals can encourage effective cooperation Copyright © 2000 by Gibbens & Key Implementation and testbeds Implementation: issues and example Architectural open issues: Create new adaptive applications or use 3rd party “congestion manager”? 1, 2 or multiple bits per packet? How should marks be aggregated for multi-hop paths? How to assure “Security” of marking information across domains (for pricing and to prevent Denial of Service attacks). Copyright © 2000 by Gibbens & Key Audio / Video Policy scheduler Network Copyright © 2000 by Gibbens & Key User/ end system Current Status: ECN is an IETF RFC Routers are capable of performing marking functionality (much like RED algorithms) ECN and ECN/RED router support exist for Linux and FreeBSD. Will be in future release of Windows Prototype support for IPv6 Copyright © 2000 by Gibbens & Key ECN and Resource pricing ECN could be used as a vehicle to convey resource pricing information Note that current ECN RFC only describes TCP reaction to ECN We advocate allowing a range of reactions, by different applications, treating ECN as an IP-level signal and enabling differential QoS Copyright © 2000 by Gibbens & Key Example Experimental Implementation Built on top of Windows 2000 Ref: Neil Stratford / Paul Barham, MSR Cambridge, http://www.acu.rl.ac.uk/msn2000/talks/Neil_Stratford.pdf Copyright © 2000 by Gibbens & Key Source Architecture Willingness To Pay App1 Traffic Controller Marks Rates App2 AppX Packet Shaper 3rd party Traffic Controller programs W2k packet shaper Copyright © 2000 by Gibbens & Key MSRC Cluster Cluster of 16 nodes connected to a private switched network Windows 2000 on each node Kernel module on IP forwarding path implements marking strategy (uses TOS bits) Packet shaper can reduce line rate to avoid artificial contention Careful choice of routing tables and IP address allocation! Copyright © 2000 by Gibbens & Key Sink Architecture Mark Packet Data+Marks Marks Mark Reflector Mark Val Port No Reflect marks back to source Implemented as promiscuous socket Uses a different return path Copyright © 2000 by Gibbens & Key Cross Traffic Routers are output buffered Cross traffic discarded at second hop Copyright © 2000 by Gibbens & Key 8bit Marking Marks range from –128 to 127 zero marks at (capacity – headroom) Headroom adjusted by Queue length History WTP is per packet target mark value Copyright © 2000 by Gibbens & Key Total Packets/s Queue Length Packets/s 200 Flows, different WTP and RTTs + 10% Random Traffic Queue Length Arrivals + Capacity 1600 Departures Zero Marks - Time/s 10 Fixed WTP TCP Flows 10 TCP flows end to end Fixed WTP for each flow Headroom style 8 bit marking Maximum mark value propagates No cross traffic 1 2 3 4 5 6 Traffic Controller 7 Mark Reflector Copyright © 2000 by Gibbens & Key What the Traffic Controller Did 1e+06 First flow sees no marks 800000 600000 Stability after 5 seconds 400000 200000 0 Bps 0 5 10 15 20 25 30 Time (s) Copyright © 2000 by Gibbens & Key 35 40 45 10 Random WTP TCP Flows 1e+06 800000 600000 WTP Change 400000 200000 0 Bps 0 5 10 15 20 25 Time (s) 30 Copyright © 2000 by Gibbens & Key 35 40 45 Contacts Peter Key http://research.microsoft.com/users/pbk/ Richard Gibbens http://www.statslab.cam.ac.uk/~richard/ Copyright © 2000 by Gibbens & Key References Refs 1 Eitan Altman, Flow Control using the theory of Zero sum Markov games, IEEE Trans. Automatic Control, 1994, 39(4), 814--818 Robert Axelrod, The Evolution of Cooperation, 1984, Basic Books, NY S. Bajaj, L. Breslau & S. Shenker, Is service priority useful in networks?, 1998, http://www.cs.wpi.edu/~sigmet98/bajaj.ps Sandeep Bajaj, Lee Breslau & Scott Shenker, Uniform versus Priority Dropping for Layered Video, Computer Communication Review, 1998, 28(4), 131-143 Dimitri P. Bersekas & Robert Gallager, Data Networks, 1992, Prentice Hall G. Bianchi, A. Capone & C. Petrioli, Throughput analysis of end-to-end measurement based admission control in IP, IEEE INFOCOM 2000, http://www.comnet.technion.ac.il/infocom2000 R. Braden, D. Clark & S. Shenker, Integrated Services in the Internet Architecture: An Overview, RFC 1633, 1994 Copyright © 2000 by Gibbens & Key Refs 2 Lee Breslau & Scott Shenker, Best-Effort versus Reservations: A Simple Comparative Analysis, Computer Communication Review, 1998, 28(4), 316 Jon Crowcroft & Phillipe Oechslin, Differentiated End-to-End Services using a Weighted Proportional Fair Share TCP, Computer Communication Review, 1998, 28(3), 53-69 P. Dubey, Inefficiency of Nash Equilibria, Mathematics of Operations Research, 1986, 11(1), 1-8 V. Elek, G. Karlsson & R Ronngren, Admission control based on end-to-end measurements, IEEE INFOCOM 2000, http://www.comnet.technion.ac.il/infocom2000 S. Floyd, TCP and Explicit Congestion Notification, ACM Computer Communication review, 1994, 24(5), 10-23, http://wwwnrg.ee.lbl.gov/papers/tcp_ecn.4.pdf Copyright © 2000 by Gibbens & Key Refs 3 Sally Floyd & Kevin Fall, Router mechanisms to support end-to-end congestion control, Laurence Berkeley National Laboratory, Technical Report, 1997, ftp://ftp.ee.lbl.gov/papers/collapse.ps S. Floyd & V. Jacobson, Random Early Detection Gateways for Congestion Avoidance, IEEE/ACM Transactions on Networking, 1993, 1(4), 397-413, http://www-nrg.ee.lbl.gov/floyd/red.html S. Floyd & V. Jacobson, Link-sharing and Resource Management Models for Packet Networks, IEEE/ACM Transactions on Networking, 1995, 3(4), 365386, http://ftp.ee.lbl.gov/floyd/cbq.html Roy Gardner. Games for Business and Economics, Wiley, 1995. R. J. Gibbens, F. P. Kelly & P. B. Key, A decision-theoretic approach to call admission control in ATM networks, 1995, IEEE Journal on Selected Areas in Communications, special issue on Advances in the Fundamentals of Networking, 13(6), 1101-1114 Copyright © 2000 by Gibbens & Key Refs 4 R. J. Gibbens & F. P. Kelly, Measurement-based connection admission control, Proceedings International Teletraffic Congress 15, 1997, 879-888, editors V. Ramaswami & P. Wirth, Elsevier R. J. Gibbens & F. P. Kelly, Distributed connection acceptance control for a connectionless network, Proceedings International Teletraffic Congress 16, 1999, 941--952, editors P. B. Key & D. G. Smith, Elsevier R. J. Gibbens & F. P. Kelly, Resource pricing & the evolution of congestion control, 1999, Automatica, 35, 1969-1985, http://www.statslab.cam.ac.uk/~frank/PAPERS/evol.html R. J. Gibbens & P. B. Key, The use of games to assess user strategies for differential Quality of Service in the Internet, 1999, Workshop on Internet Service Quality Economics, MIT, http://research.microsoft.com/research/network/publications/gibkey1999 Matthias Grossglauser & David N. C. Tse, A framework for robust measurement-based admission control, IEEE/ACM Transactions on Networking, 1999, 7, 293-309 Copyright © 2000 by Gibbens & Key Refs 5 V. Jacobson, Congestion avoidance & control, Proceedings ACM SIGCOMM '88, 1988, 314—329, An updated version is available from ftp://ftp.ee.lbl.gov/papers/congavoid.ps.Z R. Jain & K. K. Ramakrishnan, Congestion Avoidance in Computer Networks with a Connectionless Network Layer: Concepts, Goals and Methodology, Proceedings IEEE Comp. Networking Symposium, 1988, 134-143 S Jamin & S Shenker, Measurement-based admission control algorithms for controlled-load service: a structural examination, University of Michigan, 1997, Technical Report, CSE-TR-333-97, http://irl.eecs.umich.edu/jamin/papers/ E. Kalai & M. Smorodinsky, Other Solutions to Nash's Bargaining Problem, 1975, Econometrica, 3(43), 513-518 Copyright © 2000 by Gibbens & Key Refs 6 F. P. Kelly, Charging and accounting for bursty connections, In Internet Economics, MIT Press, 1997, 253--278, editors Lee W. McKnight & Joseph P. Bailey F. P. Kelly, Charging and rate control for elastic traffic, European Transactions on Telecommunications, 1997, 8, 33--37 F. P. Kelly, A. K. Maulloo & D. K. H Tan, Rate control in communication networks: shadow prices, proportional fairness and stability, Journal of the Operational Research Society, 1998, 49, 237--252, http://www.statslab.cam.ac.uk/~frank/rate.html F. P. Kelly, Mathematical modelling of the Internet, Proceedings of the Fourth International Congress on Industrial and Applied Mathematics, 2000 F. P. Kelly, Models for a self-managed Internet, Philosophical Transactions Royal Society, A, 2000, http://www.statslab.am.ac.uk/~frank/smi.html Copyright © 2000 by Gibbens & Key Refs 7 F. P. Kelly, P. B. Key & S. Zachary, Distributed Admission Control, IEEE Journal on Selected Areas in Communications, 2000, http://research.microsoft.com/research/network/publications/dac.htm P. B. Key, Implied cost methodology & software tools for a fully connected network with DAR and trunk reservation, British Telecom Technology Journal, 1988, 6, 52-65 Peter B. Key, Connection admission control in ATM networks, BT Technology Journal, 1995, 13(3) P. B. Key & D. R. McAuley, Differential QoS and pricing in networks: where flow control meets game theory, IEE Proceedings Software, 1999, 146(2), 3943 Peter Key, Derek McAuley, Paul Barham & Koenraad Laevens, Congestion Pricing for Congestion Avoidance, Microsoft Research Technical Report, MSRTR-99-15, 1999, http://research.microsoft.com/pubs/ Copyright © 2000 by Gibbens & Key Refs 8 Richard La and Venkat Anantharam. Charge-sensitive TCP and rate control in the Internet. In INFOCOM 2000. http://www.ieeeinfocom.org/2000/papers/402.pdf. P. B. Key & L. Massoulie, User Policies in a Network Implementing Congestion Pricing, Workshop on Internet Service Quality Economics, 1999, MIT, http://research.microsoft.com/research/network/publications/ S. Kunniyur & R. Srikant, End-to-End Congestion Control Schemes: Utility Functions, Random Losses and ECN Marks, IEEE INFOCOM 2000 D. E. Lapsley and S. H. Low (1999). Random Early Marking: an optimisation approach to Internet congestion control. Proceedings of IEEE ICON'99, Brisbane, Australia. S. H. Low and D.E. Lapsley. Optimization flow control — I: Basic algorithm and convergence. IEEE/ACM Transactions on Networking, 7(6):861-874, Dec 1999. Copyright © 2000 by Gibbens & Key Refs 9 J.K. MacKie-Mason & H.R. Varian, Pricing the Internet, Public Access to the Internet, 1994, editors B. Kahin & J. Keller, Prentice-Hall, New Jersey J. K. MacKie-Mason & H. R. Varian, Pricing congestible network resources, IEEE Journal of Selected Areas in Communications, 1995, 13(7), 1141—1149 L. Massoulie & J. Roberts, Bandwidth sharing: objectives and algorithms, IEEE INFOCOM99 Matthew Mathis, Jeffrey Semke, Jamshid Mahdavi & Teunis Ott, The Macroscopic Behavior of the Congestion Avoidance Algorithm, Computer Communications Review, 27(3),1997 R. Mazumbdar, L.G. Mason & C. Douglieris, Fairness in network optimal control: optimality of product forms, IEEE Trans. Communications, 1991, 39, 775-782 Copyright © 2000 by Gibbens & Key Refs 10 John F Nash, The Bargaining Problem, Econometrica, 1950 A. Odlyzko, A modest proposal for preventing Internet congestion, 1997, http://www.research.att.com/amo/doc/modest.proposal.ps T. Ott and J. Kemperman & M. Mathis, The stationary behavior of ideal TCP congestion avoidance, 1997, ftp://ftp.bellcore.com/pub/tjo/TCPwindow.ps Jitendra Padhye, Victor Firoiu, Don Towsley & Jim Kurose, Modeling TCP Throughput: A Simple Model and its Empirical Validation, Computer Communication Review/Proceedings Sigcomm 98, 1998, 28(4), 303--315, http://www.acm.org/sigcomm/sigcomm98/tp/abs_25.html Copyright © 2000 by Gibbens & Key Refs 11 K. Ramakrishnan & S. Floyd, A Proposal to add Explicit Congestion Notification (ECN) to IP, RFC 2481, 1999, ftp://ftp.isi.edu/in-notes/rfc2481.txt S. Shenker, Fundamental design issues for the future Internet, IEEE Journal on Selected Area Communications, 1995, 13, 1176-1188 S. Shenker, C. Partridge & R. Guerin, Specification of Guaranteed Quality of Service, RFC 2212, 1997 D. K. H. Tan, Mathematical models of rate control for communication networks, University of Cambridge, 1999, http://www.statslab.cam.ac.uk/~dkht2/phd.html Z. R. Turanyi & L. Westberg, Load control: lightweight provisioning of Internet resources, 1999, http://www.ericsson.co.hu/ethzrt/ Copyright © 2000 by Gibbens & Key Refs 12 Hal R Varian, Microeconomic Analysis, 1992, W W Norton, New York Damon Wischik, How to mark fairly, Workshop on Internet Service Quality Economics, 1999, MIT J. Wroclawski, Specification of the Controlled-Load Network Element Service, RFC 2211, 1997 Final Report COST224 Performance evaluation and design of multiservice networks, 1992, editor J. W. Roberts, Commission of the European Communities Copyright © 2000 by Gibbens & Key