Congestion Control in Distributed Media Streaming Lin Ma and - - PowerPoint PPT Presentation

congestion control in distributed media streaming
SMART_READER_LITE
LIVE PREVIEW

Congestion Control in Distributed Media Streaming Lin Ma and - - PowerPoint PPT Presentation

Congestion Control in Distributed Media Streaming Lin Ma and Wei Tsang Ooi National University of Singapore What is Distributed Media Streaming? (aka multi-source streaming) Multiple senders collaboratively stream media content to


slide-1
SLIDE 1

Congestion Control in Distributed Media Streaming

Lin Ma and Wei Tsang Ooi National University of Singapore

slide-2
SLIDE 2

What is “Distributed Media Streaming”?

(aka multi-source streaming)

slide-3
SLIDE 3

Receiver Sender 1 Sender 2 Sender 3

Multiple senders collaboratively stream media content to a receiver.

slide-4
SLIDE 4

Sender 1, please send me data packets x, y, z. Sender 2, ...

Receiver coordinates between the senders using a pull-based protocol to request different segments from different senders.

slide-5
SLIDE 5
  • Exploits path diversity and server

diversity to increase resilient to congestion and sender failure

  • Using media coding scheme such

as MDC, the receiver can still playback continuously (at a lower quality) if a sender fails.

slide-6
SLIDE 6

Congestion Control in Distributed Media Streaming

slide-7
SLIDE 7

Per-flow Congestion Control ?

slide-8
SLIDE 8

Using multiple flows is unfair to

  • ther single flow applications.
slide-9
SLIDE 9
  • Similar problem observed in parallel

TCP flows:

  • 1. TCP-P (Soonghyun Cho et al)
  • 2. TCP-ROME (Roger Karrer et al)
  • 3. Multi-priority TCP (Ronald Tse et al)
slide-10
SLIDE 10
  • The total bandwidth of flows, belonging to

the same task, on a link should be no larger than other TCP flows on the same link (experiencing similar network conditions).

Task-level TCP Friendliness

  • fi∈L

Bi ≤ BT CP

slide-11
SLIDE 11

Task-Level TCP Friendliness

Bottleneck

slide-12
SLIDE 12

The Challenges

  • Different media flows may

experience different congested links

  • How to determine the “fair”

throughput of a media flow?

slide-13
SLIDE 13

DMSCC : Congestion Control Algorithm

slide-14
SLIDE 14

Receiver Suppose (i) we know the topology, and (ii) the topology is a tree.

slide-15
SLIDE 15

Receiver

  • 1. Find out where the congested link(s) are.

congestion

slide-16
SLIDE 16

Receiver

  • 2. Control the rate of the flows on congested links.

Each flow should consume half the bandwidth of a TCP flow

slide-17
SLIDE 17

Identifying Congested Links

Given end-to-end measurements on a set of flows, determine which flows share bottleneck link(s).

Controlling Throughput

Given a set of flows on a bottleneck link, how to control the throughput of the flows so that they satisfy

  • fi∈L

Bi ≤ BT CP

slide-18
SLIDE 18

Identifying Congested Links

Given end-to-end measurements on a set of flows, determine which flows share bottleneck link(s).

Controlling Throughput

Given a set of flows on a bottleneck link, how to control the throughput of the flows so that they satisfy

  • fi∈L

Bi ≤ BT CP

slide-19
SLIDE 19

Identifying Congested Links

  • Non-trivial problem for one shared

bottleneck

  • Rubenstein (TON’02), Kim (SIGCOMM ‘04)
  • Even harder for multiple bottlenecks.
  • We use Rubenstein’s method as a building

block.

slide-20
SLIDE 20

Rubenstein’s Method

  • SHARE( f, g ): Does two flows f and g

share the same bottleneck?

  • Observe the packet delay of flow f and g.
  • Yes, if cross-correlation of f and g is larger

than auto-correlation of f.

slide-21
SLIDE 21

Congestion Location (one bottleneck)

  • Suppose a packet from flow f is lost
  • Find all other flows g such that

SHARE( f, g ) = true

  • Find all common links of these flows
  • Return the link furthest away from receiver
slide-22
SLIDE 22

Congestion Location

A packet from this flow is lost.

slide-23
SLIDE 23

Congestion Location

These two flows share a bottleneck

slide-24
SLIDE 24

Congestion Location

Common links for both flows

slide-25
SLIDE 25

Congestion Location

Shared bottleneck

slide-26
SLIDE 26

Congestion Location (multiple bottlenecks)

  • Keep a history of h previous bottleneck

detections.

  • All links in this set are presumed to be

congested.

slide-27
SLIDE 27

Identifying Congested Links

Given end-to-end measurements on a set of flows, determine which flows share bottleneck link(s).

Controlling Throughput

Given a set of flows on a bottleneck link, how to control the throughput of the flows so that they satisfy

  • fi∈L

Bi ≤ BT CP

slide-28
SLIDE 28

Sender 1, please send me data packets x, y, z. Sender 2, ...

Recall that we are running a pull-based protocol

slide-29
SLIDE 29

To control the throughput, the receiver maintains a “congestion window” for each sender and never pulls more than the window allows.

window of sender 1 is 5 window of sender 2 is 6 ..

slide-30
SLIDE 30

The window is adjusted according to AIMD when packet transmission is successful or lost.

window of sender 1 is 5 window of sender 2 is 6 ..

slide-31
SLIDE 31

How to adjust window?

  • If we follows TCP’s algorithm, then we will

achieve similar throughput to a single TCP flow.

  • To achieve k (k < 1) times the throughput
  • f a TCP flows, we need to be less

aggressive in increasing our window.

slide-32
SLIDE 32

Congestion Window (pkt) Time W W/2 The window increases by α for every RTT; Packet loss occur every 1/p packet .

slide-33
SLIDE 33

Congestion Window (pkt) Time W W/2 The window increases by α for every RTT; Packet loss occur every 1/p packet . W/(2α)

slide-34
SLIDE 34

3W 2 8α = 1 p W = √α 8 3p

Considering the area under the curve, we get To get k times the throughput of a TCP flow, the increasing factor α should be k2

slide-35
SLIDE 35

Identifying Congested Links

Given end-to-end measurements on a set of flows, determine which flows share bottleneck link(s).

Controlling Throughput

Given a set of flows on a bottleneck link, how to control the throughput of the flows so that they satisfy

  • fi∈L

Bi ≤ BT CP

slide-36
SLIDE 36

DMSCC : Congestion Control Algorithm

slide-37
SLIDE 37

DMSCC Algorithm

On packet loss

  • Find the set of bottleneck links
  • For each bottleneck links l

let n be number of flows on l set α of each flow on l to min(α, 1/n2) If no packet loss for some time t

  • Reset all α to 1
slide-38
SLIDE 38

Simulation and Results

slide-39
SLIDE 39

Network Topology

L0 L1 L2 L3

slide-40
SLIDE 40

Background Traffic

L0 L1 L2 L3

Time 0 to 50

L0 L1 L2 L3 L0 L1 L2 L3

Time 50 to 100 Time 100 to 150

slide-41
SLIDE 41

Background Traffic

L0 L1 L2 L3

Time 150 to 200

L0 L1 L2 L3

Time 250 to 350

L0 L1 L2 L3

Time 200 to 250

slide-42
SLIDE 42

5 10 15 20 1 51 101 151 201 251 301 351 DMS TCP 10 20 30 40 1 51 101 151 201 251 301 351 20 40 60 1 51 101 151 201 251 301 351 20 40 60 80 1 51 101 151 201 251 301 351

L0 L1 L2 L3

slide-43
SLIDE 43

5 10 15 20 1 51 101 151 201 251 301 351 DMS TCP 10 20 30 40 1 51 101 151 201 251 301 351 20 40 60 1 51 101 151 201 251 301 351 20 40 60 80 1 51 101 151 201 251 301 351

L0 L1 L2 L3

slide-44
SLIDE 44

5 10 15 20 1 51 101 151 201 251 301 351 DMS TCP 10 20 30 40 1 51 101 151 201 251 301 351 20 40 60 1 51 101 151 201 251 301 351 20 40 60 80 1 51 101 151 201 251 301 351

L0 L1 L2 L3

slide-45
SLIDE 45

5 10 15 20 1 51 101 151 201 251 301 351 DMS TCP 10 20 30 40 1 51 101 151 201 251 301 351 20 40 60 1 51 101 151 201 251 301 351 20 40 60 80 1 51 101 151 201 251 301 351

L0 L1 L2 L3

slide-46
SLIDE 46

5 10 15 20 1 51 101 151 201 251 301 351 DMS TCP 10 20 30 40 1 51 101 151 201 251 301 351 20 40 60 1 51 101 151 201 251 301 351 20 40 60 80 1 51 101 151 201 251 301 351

L0 L1 L2 L3

slide-47
SLIDE 47

5 10 15 20 1 51 101 151 201 251 301 351 DMS TCP 10 20 30 40 1 51 101 151 201 251 301 351 20 40 60 1 51 101 151 201 251 301 351 20 40 60 80 1 51 101 151 201 251 301 351

L0 L1 L2 L3

slide-48
SLIDE 48

5 10 15 20 1 51 101 151 201 251 301 351 DMS TCP 10 20 30 40 1 51 101 151 201 251 301 351 20 40 60 1 51 101 151 201 251 301 351 20 40 60 80 1 51 101 151 201 251 301 351

L0 L1 L2 L3

slide-49
SLIDE 49

5 10 15 20 1 51 101 151 201 251 301 351 DMS TCP 10 20 30 40 1 51 101 151 201 251 301 351 20 40 60 1 51 101 151 201 251 301 351 20 40 60 80 1 51 101 151 201 251 301 351

L0 L1 L2 L3

slide-50
SLIDE 50

5 10 15 20 1 51 101 151 201 251 301 351 DMS TCP 10 20 30 40 1 51 101 151 201 251 301 351 20 40 60 1 51 101 151 201 251 301 351 20 40 60 80 1 51 101 151 201 251 301 351

L0 L1 L2 L3

slide-51
SLIDE 51

Summary

  • Distributed media streaming needs task-

level congestion control.

  • Two sub-problems: identify congested links

and control sending rates.

slide-52
SLIDE 52

If link A and B are congested at the same time, shared congestion at B might not be detected.

B A

slide-53
SLIDE 53

Time W W/2 The window increases by α for every RTT; Packet loss occur every 1/p packet .

Throughput control not as accurate when packet losses are bursty.

slide-54
SLIDE 54

Sender 1, please send me data packets x, y, z. Sender 2, ...

Pull-based protocol might not be the right thing to do.

slide-55
SLIDE 55

The End