**A Randomized Online Algorithm for Bandwidth** **Utilization**

**A Randomized Online Algorithm for Bandwidth**

**Utilization**

Sanjeev Arora and Bo Brinkman Princeton University

A Randomized Online Algorithm for Bandwidth Utilization – p.1/17

**Motivation: Computer Networks**

**Motivation: Computer Networks**

Goal: Send data as quickly as possible without any central

authority distributing bandwidth

## ?

“Find” the unused bandwidth

Use dropped packets as implicit information about bandwidth availability

**Motivation: Computer Networks**

**Motivation: Computer Networks**

Goal: Send data as quickly as possible without any central authority distributing bandwidth

## ?

“Find” the unused bandwidth

Use dropped packets as implicit information about bandwidth availability

A Randomized Online Algorithm for Bandwidth Utilization – p.2/17

**Motivation: Computer Networks**

**Motivation: Computer Networks**

Goal: Send data as quickly as possible without any central authority distributing bandwidth

Bottleneck

“Find” the unused bandwidth Use dropped packets as implicit information about

bandwidth availability

**Motivation: Computer Networks**

**Motivation: Computer Networks**

Goal: Send data as quickly as possible without any central authority distributing bandwidth

Bottleneck

“Find” the unused bandwidth

Use dropped packets as implicit information about bandwidth availability

A Randomized Online Algorithm for Bandwidth Utilization – p.2/17

**Previous Work**

**Previous Work**

AIMD (Additive Increase, Multiplicative Decrease) promotes the social good

[Jacobson ’88] “Congestion avoidance and control”

[CJ ’89] “Analysis of increase and decrease algorithms for congestion avoidance in computer networks”

Developing theoretical models for congestion control problems [KKPS ’00] “Algorithmic problems in congestion control”

**Previous Work**

**Previous Work**

AIMD (Additive Increase, Multiplicative Decrease) promotes the social good

[Jacobson ’88] “Congestion avoidance and control”

[CJ ’89] “Analysis of increase and decrease algorithms for congestion avoidance in computer networks”

Developing theoretical models for congestion control problems [KKPS ’00] “Algorithmic problems in congestion control”

A Randomized Online Algorithm for Bandwidth Utilization – p.3/17

**Main Model [Karp et al]**

**Main Model [Karp et al]**

At each step

*i*

:
The available bandwidth on the network is

*b*

_{i}The algorithm, not knowing

*b*

*, attempts to send*

_{i}*x*

*bytes If*

_{i}*x*

_{i}*b*

*, the algorithm succeeds. Otherwise, no data is transmitted*

_{i}The sequence

*b*

*is chosen by a non-adaptive adversary Total available bandwidth,*

_{i}*B*

^{de f}*∑b*

*i*, is offline optimal (

*opt*

)
**Main Model [Karp et al]**

**Main Model [Karp et al]**

At each step

*i*

:
The available bandwidth on the network is

*b*

_{i}The algorithm, not knowing

*b*

*, attempts to send*

_{i}*x*

*bytes If*

_{i}*x*

_{i}*b*

*, the algorithm succeeds. Otherwise, no data is*

_{i}transmitted

The sequence

*b*

*is chosen by a non-adaptive adversary Total available bandwidth,*

_{i}*B*

^{de f}*∑b*

*i*, is offline optimal (

*opt*

)
A Randomized Online Algorithm for Bandwidth Utilization – p.4/17

**Main Model [Karp et al]**

**Main Model [Karp et al]**

At each step

*i*

:
The available bandwidth on the network is

*b*

_{i}The algorithm, not knowing

*b*

*, attempts to send*

_{i}*x*

*bytes If*

_{i}*x*

_{i}*b*

*, the algorithm succeeds. Otherwise, no data is transmitted*

_{i}The sequence

*b*

*is chosen by a non-adaptive adversary Total available bandwidth,*

_{i}*B*

^{de f}*∑b*

*i*, is offline optimal (

*opt*

)
**Main Model [Karp et al]**

**Main Model [Karp et al]**

At each step

*i*

:
The available bandwidth on the network is

*b*

_{i}The algorithm, not knowing

*b*

*, attempts to send*

_{i}*x*

*bytes If*

_{i}*x*

_{i}*b*

*, the algorithm succeeds. Otherwise, no data is transmitted*

_{i}The sequence ^{}

*b*

_{i}^{}is chosen by a non-adaptive adversary Total available bandwidth,

*B*

^{de f}*∑b*

*i*, is offline optimal (

*opt*

)
A Randomized Online Algorithm for Bandwidth Utilization – p.4/17

**Main Model [Karp et al]**

**Main Model [Karp et al]**

At each step

*i*

:
The available bandwidth on the network is

*b*

_{i}The algorithm, not knowing

*b*

*, attempts to send*

_{i}*x*

*bytes If*

_{i}*x*

_{i}*b*

*, the algorithm succeeds. Otherwise, no data is transmitted*

_{i}The sequence ^{}

*b*

_{i}^{}is chosen by a non-adaptive adversary Total available bandwidth,

*B*

^{de f}^{}

*∑b*

*i*, is offline optimal (

*opt*

)
**Restricted Adversaries**

**Restricted Adversaries**

Karp et al consider three restricted adversaries:

*a*

^{}

*b*

^{}-fixed-range: Adversary must pick

*b*

*from a fixed range*

_{i}^{}

*a*

^{}

*b*

^{}

### α β

-additive: For some constants### α β 0

, adversarymust pick

*b*

_{i}*b*

_{i 1}*α b*

_{i 1}### α

, with### β

as a lower bound.*µ*

-multiplicative: For some constant *µ* 1

, adversary must
pick *b*

_{i}

^{b}

^{i 1}

_{µ}*µb*

_{i 1}A Randomized Online Algorithm for Bandwidth Utilization – p.5/17

**Restricted Adversaries**

**Restricted Adversaries**

Karp et al consider three restricted adversaries:

*a*

^{}

*b*

^{}-fixed-range: Adversary must pick

*b*

*from a fixed range*

_{i}^{}

*a*

^{}

*b*

^{}

### α

^{}

### β

^{}-additive: For some constants

### α

^{}

### β

^{ }

### 0

, adversarymust pick

*b*

_{i}^{}

^{}

*b*

_{i}^{}

_{1}

^{}

### α

^{}

*b*

_{i}^{}

_{1}

^{ }

### α

^{}, with

### β

as a lower bound.*µ*

-multiplicative: For some constant *µ* 1

, adversary must
pick *b*

_{i}

^{b}

^{i 1}

_{µ}*µb*

_{i 1}**Restricted Adversaries**

**Restricted Adversaries**

Karp et al consider three restricted adversaries:

*a*

^{}

*b*

^{}-fixed-range: Adversary must pick

*b*

*from a fixed range*

_{i}^{}

*a*

^{}

*b*

^{}

### α

^{}

### β

^{}-additive: For some constants

### α

^{}

### β

^{ }

### 0

, adversarymust pick

*b*

_{i}^{}

^{}

*b*

_{i}^{}

_{1}

^{}

### α

^{}

*b*

_{i}^{}

_{1}

^{ }

### α

^{}, with

### β

as a lower bound.*µ*

-multiplicative: For some constant *µ*

^{ }

### 1

, adversary must pick*b*

_{i}^{}

^{}

^{b}

^{i}

_{µ}^{}

^{1}

^{}

*µb*

_{i}^{}

_{1}

^{}

A Randomized Online Algorithm for Bandwidth Utilization – p.5/17

**Results**

**Results**

**Theorem (Upper Bound)**

A randomized algorithm exists which achieves competitive ratio

83

*lgµ*

^{ }

### 16

^{against a}

*µ*

-multiplicative adversary.
**Theorem (Lower Bound)**

No randomized algorithm can achieve competitive ratio better than

*lnµ 1*

^{against a}

*µ*

-multiplicative adversary.
**Theorem [Karp et al]**

No randomized algorithm can achieve competitive ratio better than

### ln

^{b}

_{a}### 1

^{against a}

*a b*

-fixed-range adversary.
**Results**

**Results**

**Theorem (Upper Bound)**

A randomized algorithm exists which achieves competitive ratio

83

*lgµ*

^{ }

### 16

^{against a}

*µ*

-multiplicative adversary.
**Theorem (Lower Bound)**

No randomized algorithm can achieve competitive ratio better than

*lnµ*

^{ }

### 1

^{against a}

*µ*

-multiplicative adversary.
**Theorem [Karp et al]**

No randomized algorithm can achieve competitive ratio better than

### ln

^{b}

_{a}### 1

^{against a}

*a b*

-fixed-range adversary.
A Randomized Online Algorithm for Bandwidth Utilization – p.6/17

**Results**

**Results**

**Theorem (Upper Bound)**

A randomized algorithm exists which achieves competitive ratio

83

*lgµ*

^{ }

### 16

^{against a}

*µ*

-multiplicative adversary.
**Theorem (Lower Bound)**

No randomized algorithm can achieve competitive ratio better than

*lnµ*

^{ }

### 1

^{against a}

*µ*

-multiplicative adversary.
**Theorem [Karp et al]**

No randomized algorithm can achieve competitive ratio better than

### ln

^{b}

_{a}^{ }

### 1

^{against a}

^{}

*a*

^{}

*b*

^{}-fixed-range adversary.

**Lower Bound**

**Lower Bound**

**Proof [Karp et al]**

Randomized adversary picks

*b*

_{i}^{}

^{}

*a*

^{}

*b*

^{}.

*P*

^{}

*y*

^{}

^{}

^{y}

^{a}^{2}

*if y*

^{}

*b*

*a**b*

*if y*

^{}

*b*

*E*

^{}

*b*

_{i}^{}

^{}

^{b}*a*

*ay*

*y*

^{2}

*dy*

^{ }

*b* *a* *b*

*a*

^{}

### ln *b*

*a*

### 1

^{}

^{}

A Randomized Online Algorithm for Bandwidth Utilization – p.7/17

**Lower Bound contd.**

**Lower Bound contd.**

Algorithm tries to send

*x*

*, expected throughput is:*

_{i}*x*

_{i}

^{b}*x*_{i}

*a*

*y*

^{2}

*dy*

^{ }

*x*

_{i}*a* *b*

*x*

_{i}^{}

*a*

*x*

_{i}

*a* *b*

*x*

_{i}*a* *b*

*a*

^{}

Competitive ratio is

### ln

^{b}

_{a}^{ }

### 1

independent of*x*

*. Lower bound is a simple corollary: The adversary could restrict*

_{i}itself to the fixed range

*b*

_{0}

*µb*

_{0}.

**Lower Bound contd.**

**Lower Bound contd.**

Algorithm tries to send

*x*

*, expected throughput is:*

_{i}*x*

_{i}

^{b}*x*_{i}

*a*

*y*

^{2}

*dy*

^{ }

*x*

_{i}*a* *b*

*x*

_{i}^{}

*a*

*x*

_{i}

*a* *b*

*x*

_{i}*a* *b*

*a*

^{}

Competitive ratio is

### ln

^{b}

_{a}^{ }

### 1

independent of*x*

*.*

_{i}Lower bound is a simple corollary: The adversary could restrict
itself to the fixed range ^{}

*b*

_{0}

^{}

*µb*

_{0}

^{}.

A Randomized Online Algorithm for Bandwidth Utilization – p.8/17

**Our (Barely) Randomized Algorithm**

**Our (Barely) Randomized Algorithm**

This version has competitive ratio

*4lgµ*

^{ }

### 8

. Set*x*

_{0}(amount of bandwidth requested during the first step)

to a uniformly random power of

### 2

^{in}

*1 2µ*

When algorithm succeeds, multiply amount requested by

*2µ*

When it fails, divide by

### 2

**Our (Barely) Randomized Algorithm**

**Our (Barely) Randomized Algorithm**

This version has competitive ratio

*4lgµ*

^{ }

### 8

.Set

*x*

_{0}(amount of bandwidth requested during the first step) to a uniformly random power of

### 2

^{in}

^{}

### 1

^{}

*2µ*

^{}

When algorithm succeeds, multiply amount requested by

*2µ*

When it fails, divide by

### 2

A Randomized Online Algorithm for Bandwidth Utilization – p.9/17

**Our (Barely) Randomized Algorithm**

**Our (Barely) Randomized Algorithm**

This version has competitive ratio

*4lgµ*

^{ }

### 8

.Set

*x*

_{0}(amount of bandwidth requested during the first step) to a uniformly random power of

### 2

^{in}

^{}

### 1

^{}

*2µ*

^{}

When algorithm succeeds, multiply amount requested by

*2µ*

When it fails, divide by

### 2

**Our (Barely) Randomized Algorithm**

**Our (Barely) Randomized Algorithm**

This version has competitive ratio

*4lgµ*

^{ }

### 8

.Set

*x*

_{0}(amount of bandwidth requested during the first step) to a uniformly random power of

### 2

^{in}

^{}

### 1

^{}

*2µ*

^{}

When algorithm succeeds, multiply amount requested by

*2µ*

When it fails, divide by

### 2

A Randomized Online Algorithm for Bandwidth Utilization – p.9/17

**Bandwidth Constant**

**Bandwidth Constant**

µ

width (bytes)

x 2x

band−

**Bandwidth Constant**

**Bandwidth Constant**

µ width

(bytes)

x

time (steps) 2xµ

lg band−

A Randomized Online Algorithm for Bandwidth Utilization – p.10/17

**Brief Spaces**

**Brief Spaces**

µ x band−

width (bytes)

x

**Brief Spaces**

**Brief Spaces**

time (steps) µ

x band−

width (bytes)

lgµ x

A Randomized Online Algorithm for Bandwidth Utilization – p.11/17

**Brief Spaces**

**Brief Spaces**

µ x band−

width (bytes)

x

**Brief Spaces**

**Brief Spaces**

time (steps) µ

x band−

width (bytes)

lgµ x

A Randomized Online Algorithm for Bandwidth Utilization – p.11/17

**Analysis**

**Analysis**

Consider the

*lgµ*

^{ }

### 2

algorithms as if they were run in parallel2µ requests)

1 2 4 8 16

step i step i+1 (bandwidth

4µ requests)

2 4 8 16

1 2 4 8 16

2µ 2µ

Bandwidth Available

step i step i+1 (bandwidth

Algorithms stay in lock-step Bandwidth achieved

is at least ^{1}_{2} available amount

**Analysis**

**Analysis**

Consider the

*lgµ*

^{ }

### 2

algorithms as if they were run in parallel2µ requests)

1 2 4 8 16

step i step i+1 (bandwidth

4µ requests)

2 4 8 16

1 2 4 8 16

2µ 2µ

Bandwidth Available

step i step i+1 (bandwidth

Algorithms stay in lock-step Bandwidth achieved

is at least ^{1}_{2} available amount

A Randomized Online Algorithm for Bandwidth Utilization – p.12/17

**Analysis**

**Analysis**

Consider the

*lgµ*

^{ }

### 2

algorithms as if they were run in parallel4µ requests)

2 4 8 16

1 2 4 8 16

2µ 2µ

Bandwidth Available

step i step i+1 (bandwidth

Algorithms stay in lock-step Bandwidth achieved

is at least ^{1}_{2} available amount

**Analysis**

**Analysis**

Consider the

*lgµ*

^{ }

### 2

algorithms as if they were run in parallel4µ requests)

2 4 8 16

1 2 4 8 16

2µ 2µ

Bandwidth Available

step i step i+1 (bandwidth

Algorithms stay in lock-step Bandwidth achieved

is at least ^{1}_{2} available amount

A Randomized Online Algorithm for Bandwidth Utilization – p.12/17

**Analysis contd.**

**Analysis contd.**

Bandwidth increasing or constant: Ensemble succeeds again

µ 1 2µ

step i+1 (bandwidth

requests)

2 4 8 16

1 4 8 16

x=2

2µ 4µ 2µ

step i

Bandwidth decreases

to less than

*x*

and ensemble fails
In the next step if ensemble
misses again, bandwidth ^{x}_{2}
Total missed bandwidth

is bounded by

*x*

_{2}

^{x}_{4}

^{x}*2x*

**Analysis contd.**

**Analysis contd.**

Bandwidth increasing or constant: Ensemble succeeds again

µ 1 2µ

step i+1 (bandwidth

requests)

2 4 8 16

1 4 8 16

x=2

2µ 4µ 2µ

step i

Bandwidth decreases

to less than

*x*

and ensemble fails
In the next step if ensemble
misses again, bandwidth ^{x}_{2}
Total missed bandwidth

is bounded by

*x*

_{2}

^{x}_{4}

^{x}*2x*

A Randomized Online Algorithm for Bandwidth Utilization – p.13/17

**Analysis contd.**

**Analysis contd.**

Bandwidth increasing or constant: Ensemble succeeds again

µ 1 2µ

step i+1 (bandwidth

requests)

2 4 8 16

1 4 8 16

x=2

2µ 4µ 2µ

step i

Bandwidth decreases

to less than

*x*

and ensemble fails
In the next step if ensemble
misses again, bandwidth ^{} ^{x}_{2}
Total missed bandwidth

is bounded by

*x*

_{2}

^{x}_{4}

^{x}*2x*

**Analysis contd.**

**Analysis contd.**

Bandwidth increasing or constant: Ensemble succeeds again

µ 1 2µ

step i+1 (bandwidth

requests)

2 4 8 16

1 4 8 16

x=2

2µ 4µ 2µ

step i

Bandwidth decreases

to less than

*x*

and ensemble fails
In the next step if ensemble
misses again, bandwidth ^{} ^{x}_{2}
Total missed bandwidth

is bounded by

*x*

^{ }

^{x}_{2}

^{ }

_{4}

^{x}^{ }

^{}

^{}

^{}

*2x*

A Randomized Online Algorithm for Bandwidth Utilization – p.13/17

**Analysis contd.**

**Analysis contd.**

Putting it together:

In step

*i*

ensemble sends *x*

Total available in step

*i*

Total missed until next success

Finally, pick one of the algorithms from ensemble at random:

*E*

bandwidth found by random algorithm *opt*

*4 lgµ 2*

**Analysis contd.**

**Analysis contd.**

Putting it together:

In step

*i*

ensemble sends *x*

Total available in step

*i*

^{}

*2x*

Total missed until next success

Finally, pick one of the algorithms from ensemble at random:

*E*

bandwidth found by random algorithm *opt* *4 lgµ 2*

A Randomized Online Algorithm for Bandwidth Utilization – p.14/17

**Analysis contd.**

**Analysis contd.**

Putting it together:

In step

*i*

ensemble sends *x*

Total available in step

*i*

^{}

*2x*

Total missed until next success ^{}

*2x*

Finally, pick one of the algorithms from ensemble at random:

*E*

bandwidth found by random algorithm *opt*

*4 lgµ 2*

**Analysis contd.**

**Analysis contd.**

Putting it together:

In step

*i*

ensemble sends *x*

Total available in step

*i*

^{}

*2x*

Total missed until next success ^{}

*2x*

Finally, pick one of the algorithms from ensemble at random:

*E*

^{}bandwidth found by random algorithm

^{}

^{ }

*opt*

### 4

^{}

*lgµ*

^{ }

### 2

^{}

A Randomized Online Algorithm for Bandwidth Utilization – p.14/17

**Final Details**

**Final Details**

Remove assumption that

*µ*

is a power of ### 2

:*lgµ*

^{ }

### 3

algorithms, competitive ratio

*4lgµ*

^{ }

### 12

Instead of powers of

### 2

, use powers of*c*

: Competitive ratio
83

*lgµ 16*

Algorithm also works for additive adversaries: Lower bound on competitive ratio is

*ln*

^{α β}

_{β}

### 1

, algorithm achieves83

### lg

^{α β}

_{β}

### 16

. (Use algorithm with*µ*

^{α β}

_{β})

**Final Details**

**Final Details**

Remove assumption that

*µ*

is a power of ### 2

:*lgµ*

^{ }

### 3

algorithms, competitive ratio

*4lgµ*

^{ }

### 12

Instead of powers of

### 2

, use powers of*c*

: Competitive ratio
83

*lgµ*

^{ }

### 16

Algorithm also works for additive adversaries: Lower bound on competitive ratio is

*ln*

^{α β}

_{β}

### 1

, algorithm achieves83

### lg

^{α β}

_{β}

### 16

. (Use algorithm with*µ*

^{α β}

_{β})

A Randomized Online Algorithm for Bandwidth Utilization – p.15/17

**Final Details**

**Final Details**

Remove assumption that

*µ*

is a power of ### 2

:*lgµ*

^{ }

### 3

algorithms, competitive ratio

*4lgµ*

^{ }

### 12

Instead of powers of

### 2

, use powers of*c*

: Competitive ratio
83

*lgµ*

^{ }

### 16

Algorithm also works for additive adversaries: Lower bound on competitive ratio is

*ln*

^{}

^{α}

_{β}

^{}

^{β}

^{}

^{ }

### 1

, algorithm achieves83

### lg

^{}

^{α}

_{β}

^{}

^{β}

^{}

^{ }

### 16

. (Use algorithm with*µ*

^{}

^{}

^{α}

_{β}

^{}

^{β})

**MIMD**

**MIMD**

Interesting fact: Our algorithm is Multiplicative Increase, Multiplicative Decrease

[CJ ’89] observe that Multiplicative Increase algorithms are
*efficient (dynamical systems argument)*

*Also show that MIMD algorithms do not converge to fairness*
Is this a case where the optimal behavior for individuals is
anti-social?

A Randomized Online Algorithm for Bandwidth Utilization – p.16/17

**MIMD**

**MIMD**

Interesting fact: Our algorithm is Multiplicative Increase, Multiplicative Decrease

[CJ ’89] observe that Multiplicative Increase algorithms are
*efficient (dynamical systems argument)*

*Also show that MIMD algorithms do not converge to fairness*
Is this a case where the optimal behavior for individuals is
anti-social?

**MIMD**

**MIMD**

Interesting fact: Our algorithm is Multiplicative Increase, Multiplicative Decrease

[CJ ’89] observe that Multiplicative Increase algorithms are
*efficient (dynamical systems argument)*

*Also show that MIMD algorithms do not converge to fairness*
Is this a case where the optimal behavior for individuals is

anti-social?

A Randomized Online Algorithm for Bandwidth Utilization – p.16/17

**MIMD**

**MIMD**

Interesting fact: Our algorithm is Multiplicative Increase, Multiplicative Decrease

[CJ ’89] observe that Multiplicative Increase algorithms are
*efficient (dynamical systems argument)*

*Also show that MIMD algorithms do not converge to fairness*
Is this a case where the optimal behavior for individuals is
anti-social?

**Interesting Questions**

**Interesting Questions**

How “predictable” is real network traffic?

Can we incorporate feedback effects into this model?

Is end-to-end congestion control sufficient for fair and efficient network usage?

If not, what should we do in routers? (Floyd and Fall, Shenker)

A Randomized Online Algorithm for Bandwidth Utilization – p.17/17

**Interesting Questions**

**Interesting Questions**

How “predictable” is real network traffic?

Can we incorporate feedback effects into this model?

Is end-to-end congestion control sufficient for fair and efficient network usage?

If not, what should we do in routers? (Floyd and Fall, Shenker)

**Interesting Questions**

**Interesting Questions**

How “predictable” is real network traffic?

Can we incorporate feedback effects into this model?

Is end-to-end congestion control sufficient for fair and efficient network usage?

If not, what should we do in routers? (Floyd and Fall, Shenker)

A Randomized Online Algorithm for Bandwidth Utilization – p.17/17

**Interesting Questions**

**Interesting Questions**

How “predictable” is real network traffic?

Can we incorporate feedback effects into this model?

Is end-to-end congestion control sufficient for fair and efficient network usage?

If not, what should we do in routers? (Floyd and Fall, Shenker)