24
06/27/22 [email protected] 1 Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State? Ashish Goel Stanford University Joint work with Sung-Woo Cho http://www.stanford.edu/~ashishg

Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

Embed Size (px)

DESCRIPTION

Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State? Ashish Goel Stanford University Joint work with Sung-Woo Cho. http://www.stanford.edu/~ashishg. Window size. t. Bandwidth allocation. Consider N best-effort, long-lived flows sharing the Internet - PowerPoint PPT Presentation

Citation preview

Page 1: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 1

Bandwidth Allocation with Multiple ObjectivesOr

What Can We Do with Per-Flow State?

Ashish Goel

Stanford University

Joint work with Sung-Woo Cho

http://www.stanford.edu/~ashishg

Page 2: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 2

Bandwidth allocation

Consider N best-effort, long-lived flows sharing the Internet

Each flow only cares about its bandwidth allocation

xi = bandwidth allocated to the i-th flow

TCP: Additive Increase Multiplicative Decrease

maxW

2maxW

t

Window size

Page 3: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 3

Primal-Dual approach to B/W allocation

• Constraints: Can not exceed capacity on any link

• Convert 0/1 capacity constraints into “smooth” costs– pj = price for link j

– Artificial. Known variously as dual costs, shadow prices etc.

• Compute the total price wi of all the links in path of i-th flow

• Primal update (real):

wi high => decrease xi

wi low => increase xi

• Recompute pj, wi; iterate

• Primal-Dual algorithm: compute prices, decide increase/decrease rule

Page 4: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 4

Computing dual prices

j = Fractional occupancy of link j

pj must be an increasing function of j

Example: exponential prices, pj = aj

x1

x2

x3

x4

Four flows sharing

a 1Gbps linkSuppose x1 = x2 = x3 = x4 = 100Mbps

=> pj = a0.4 = very small

Suppose x1 = x2 = x3 = x4 = 300Mbps

=> pj = a1.2 = very large

Notice the lack of per-flow state

Page 5: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 5

Computing wi

• Imagine a field called “dual cost” in IP header– TCP sender initializes this to 0

– Every link along the way can add its own price to this header

– TCP recipient sends this field back to the sender in the ACK

– Sender can then use this field to modify its rate

• Very powerful framework– Question: what can we do with per-flow state?

– First, focus on what we can do without per-flow state

Page 6: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 6

Example: maximize total throughput[Bartal, Byers, Raz; Plotkin, Shmoys, Tardos; Garg, Konemann]

• Use exponential dual prices

• Flow i increases xi if its total cost wi is less than 1 and decreases it otherwise

• Upon convergence, the algorithm maximizes i xi

• Can be made to converge very fast– polylogarithmic time

Page 7: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 7

Maximizing throughput: contd

v1v3v2

x1

x3x2

e f

=0.9

=1

p=1

p=1/2

p

Initially, x1 = x2 = x3 = 0

pe, pf ¼ 0, x1,x2, x3 increase

Intermediate step: x1 = x2 = x3 = 0.45+

pe, pf > 0.5, x1,x2 increase, x3 now decreases

Finally, x1 = x2 = 1, x3 = 0

pe, pf = 1 , x1,x2, x3 at equilibrium

Page 8: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 8

Some perspective

Page 9: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 9

Example: congestion minimization[Plotkin, Shmoys, Tardos; Garg, Konemann]

• Set OSPF weights using exponential costs• Send packets on shortest paths using these weights• With fixed traffic pattern, congestion (i.e. maximum

link occupancy) is minimized

Page 10: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 10

Example: utility maximization[Kelly, Maullo, Tan]

Goal: maximize i Ui(xi)

• Ui = utility function for flow i

– Ui is assumed to be concave, non-decreasing, non-negative

• Primal-dual algorithm results in utility maximization– Simple rule for updating xi

– Prices pj depend only on j

– Convergence understood, but not in complete detail [Johari,Tan; Vinnicombe]

Page 11: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 11

Example: TCP as implicit primal-dual[Kelly, Maullo, Tan; Low, Peterson, Wang]

• TCP reacts to drops– pj = drop probability, which depends only on j

– TCP AIMD: reacts to wi = aggregate drop probability along the route

– Example: basic TCP approximately follows the dynamics

dxi/dt = a - bxi2 wi

– Can be interpreted as a primal-dual algorithm

• TCP Vegas: implicitly maximizes i log xi

• Another variant: maximizes i tan-1xi

Page 12: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 12

Bandwidth allocation: goals

1. Leverage existing theory– Get a “dual cost” field into the IP header

– Teach primal-dual algorithms for resource allocation• Algorithmic (Goel: Topics in network algorithms, winter 2006)

• Economic (Johari)

2. Does per-flow state give us additional power?

Page 13: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 13

Which utility function to maximize?

• It is not apriori clear which utility function to maximize i log xi

i tan-1xi i xi

– mini xi (or max-min fairness; achieved by fair queueing at each router or by the poor stealing from the rich)

– Pk(x) = sum of the k smallest xi’s (Prefix functions)

• All the above choices are reasonable– And there are many, many more

– Need a “fair” allocation

– Need to maximize efficiency

• Different choices lead to dramatically different allocations

Page 14: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 14

Example

v1 vn+1v3v2

n-1 long connections

n short (1-hop) connections

The average of the two solutions is good for both criteria

Max-min fair solution: Everyone gets bandwidth 1/n, total ¼ 2 Max-average solution: Long connections get 0, total = n

Page 15: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 15

Another example

•How to split a pie?

•But what if there are more constraints?•Alice and Eddy want only apple pie

•Frank: allergic to apples

•Cathy: equal portions of both pies

•David: twice as much apple pie as lemon

How do we measure the “goodness” of an allocation?

Page 16: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 16

Goal: simultaneous optimization

• Suppose the utility function is U(x1,x2,…,xN)

• Canonical Utility Functions: Assume that U is– Concave (the law of diminishing returns)

– Non-decreasing (more bandwidth can not harm)

– Symmetric in x1,x2,…,xN

– Includes all the utility functions we have seen in this talk, and all the fairness functions we found in the literature

• Simultaneous optimization: (Approximately) maximize U(x) simultaneously for all canonical U

Page 17: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 17

Why simultaneous optimization?

• Often, the utility function is poorly understood, but is likely to be canonical, e.g. customer satisfaction

• Consider the following three allocations of bandwidths to two users 1. ha,bi2. hb,ai3. h(a+b)/2,(a+b)/2i

• If f measures fairness, then intuitively,f(a,b) = f(b,a) · f((a+b)/2,(a+b)/2)

1. Hence, f is a symmetric concave function2. Simultaneous optimization promotes all reasonable measures of fairness

Page 18: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 18

Simultaneous optimization[Goel, Meyerson]

• A bandwidth allocation x = hx1,x2,…,xNi is an -approximation for a class of functions if for all feasible allocations y and all functions U in the class,

U(x) ¸ U(y)

• Pk(x) = sum of the k smallest xi’s (prefix functions)• Theorem: x is an -approximation for the class of all canonical

functions if and only if it is an -approximation for the class of all N prefix functions– Gives us some hope

• Theorem: There exists an efficient centralized algorithm to ensure = O(log N), and this is the best possible

• Question: Can we obtain a TCP-like protocol that does the same thing?

Page 19: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 19

Why do we need per-flow state?

v1v3v2

x1

x3x2

e f

=0.9

=1

p=1

p=1/2

p

Initially, x1 = x2 = x3 = 0

pe, pf ¼ 0, x1,x2, x3 increase

Intermediate step: x1 = x2 = x3 = 0.45+

pe, pf > 0.5, x1,x2 increase, x3 now decreases

Finally, x1 = x2 = 1, x3 = 0

pe, pf = 1 , x1,x2, x3 at equilibrium

Page 20: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 20

Dual prices with per-flow state

x1

x2

x3

x4

Four flows sharing

a 1Gbps linkSuppose x1 = 100, x2 = 200, x3 = 300, x4 = 400 Mbps

Assume that the link knows x1,x2,x3,x4

Dual price computation uses simple exponential costs a but with different link occupancy values for different flows

For flow 1: Pretend x1 = x2 = x3 = x4 = 100, = 0.4, pj = a0.4

For flow 2: Pretend x1 = 100, x2 = x3 = x4 = 200, = 0.7, pj = a0.7

For flow 3: Pretend x1 = 100, x2 = 200, x3 = x4 = 300, = 0.9, pj = a0.9

For flow 4: x1 = 100, x2 = 200, x3 = 300, x4 = 400, = 1.0, pj = a

Page 21: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 21

Primal updates with per-flow state

• Really simple:– wi < 1 => increase xi

– wi > 1 => decrease xi

• Example rule: dxi/dt = -log wi

• At equilibrium, for all canonical utility functions U, U(x) ¸ U(y) for all feasible y and with = O(log N)

Page 22: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 22

How good is = O(log N)?

• Pretty good, for a simultaneous optimization

v1 vn+1v3v2

n-1 long connections

n short (1-hop) connections

TCP-RENO ¼ n1/2

Max-Min ¼ n

MAX-SUM = 1

TCP-VEGAS ¼ n1/2 (*)

Page 23: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 23

Convergence time

• Primal-dual algorithm converges exponentially fast with single bottleneck link per flow

• If we start from the all zeroes point, we need only polylogarithimic number of iterations (really small)

Page 24: Bandwidth Allocation with Multiple Objectives Or What Can We Do with Per-Flow State?

04/19/23 [email protected] 24

Conclusion

• Principled tradeoff of different utility functions and performance measures

• Extensions– Convergence time

– Heterogeneity: Assume user i has individual utility function fi. Then maximize U(f1(x1), f2(x2), …, fN(xN)) for all canonical U

• Clean-Slate directions– Primal-dual as a paradigm to think about networks

– Original spirit of TCP: don’t over-optimize for any one feature