helping hand or hidden hurdle: proxy-assisted …nikca89/papers/mascots13a.slides.pdfhelping hand or...

77
Helping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan Krishnamoorthi 1 , Niklas Carlsson 1 , Derek Eager 2 , Anirban Mahanti 3 , Nahid Shahmehri 1 1 Linköping University, Sweden 2 University of Saskatchewan, Canada 3 NICTA, Australia Proc. MASCOTS, San Francisco, USA, August 15, 2013

Upload: others

Post on 13-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Helping Hand or Hidden Hurdle:

Proxy-assisted HTTP-based Adaptive

Streaming Performance

Vengatanathan Krishnamoorthi1, Niklas Carlsson1,

Derek Eager2, Anirban Mahanti3, Nahid Shahmehri1

1 Linköping University, Sweden

2 University of Saskatchewan, Canada

3 NICTA, Australia

Proc. MASCOTS, San Francisco, USA, August 15, 2013

Page 2: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Video streaming

4060% of Internet traffic

• Content delivery over the Internet is massive …

• Consume significant resources

• How to make scalable and efficient?

Page 3: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

HTTP-based streaming

• HTTP-based streaming

• Allows easy caching, NAT/firewall traversal, etc.

• Use of TCP provides natural bandwidth adaptation

• Split into fragments, download sequentially

• Some support for interactive VoD

3

Page 4: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

HTTP-based adaptive streaming (HAS)

• HTTP-based adaptive streaming

• Multiple encodings of each fragment (defined in manifest file)

• Clients adapt quality encoding based on (buffer and network) conditions

4

Page 5: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

5

• High playback quality

• Small stall times

• Few buffer interruptions

• Few quality switches

Clients’ want

Page 6: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

6

• High playback quality

• Small stall times

• Few buffer interruptions

• Few quality switches

Clients’ want HAS is increasingly responsible

for larger traffic volumes

Network and service providers

may consider integrating HAS-

aware proxy policies

Page 7: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

7

• High playback quality

• Small stall times

• Few buffer interruptions

• Few quality switches

• High QoE of customers/clients

Clients’ want Network providers’ want

Page 8: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

8

• High playback quality

• Small stall times

• Few buffer interruptions

• Few quality switches

• High QoE of customers/clients

• Low bandwidth usage

• High hit rate

Clients’ want Network providers’ want

Page 9: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

9

• High playback quality

• Small stall times

• Few buffer interruptions

• Few quality switches

• High QoE of customers/clients

• Low bandwidth usage

• High hit rate

Clients’ want Network providers’ want

Page 10: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

10

• Evaluation of proxy-assisted HAS policies

In this paper …

Page 11: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

11

• Evaluation of proxy-assisted HAS policies

In this paper …

Page 12: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

12

• Evaluation of proxy-assisted HAS policies

In this paper …

Page 13: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

13

• Evaluation of proxy-assisted HAS policies

In this paper …

Page 14: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Problem: Proxy-assisted HAS

14

• Evaluation of proxy-assisted HAS policies

In this paper …

Page 15: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example: Default “best-effort”

15

Page 16: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example: Default “best-effort”

16

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Client Proxy

Page 17: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example: Default “best-effort”

17

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Client 1

Proxy before

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Proxy after

Page 18: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example: Default “best-effort”

18

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Client 1

Proxy before

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Proxy after

Page 19: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example: Default “best-effort”

19

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Client 2

Proxy before

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Proxy after

Page 20: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example: Default “best-effort”

20

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Client 2

Proxy before

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Proxy after

Page 21: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example: Default “best-effort”

21

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Client 3

Proxy before

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Proxy after

Page 22: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example: Default “best-effort”

22

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Client 3

Proxy before

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Proxy after

Page 23: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Policies and policy classes

23

• Empty cache

• Full cache (preload all versions)

• Best effort (default, as previous example)

Baseline policies

Page 24: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Policies and policy classes

24

• 1-ahead

• N-ahead

• Priority-based

Quality and content-aware prefetching policies

Page 25: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Policies and policy classes

25

• 1-ahead

• N-ahead

• Priority-based

Quality and content-aware prefetching policies

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Client 2

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Proxy

Page 26: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Policies and policy classes

26

• 1-ahead

• N-ahead

• Priority-based (based on likely switches)

Quality and content-aware prefetching policies

• If client switches to a higher encoding and it is not the first time that the

client is requesting this quality, then prefetch: (i) current quality, (ii) one

quality level below, (iii) one quality level above, and (iv) no prefetching.

• Else prefetch: (i) current quality, (ii) one quality level above, (iii) one quality

level below and (iv) no prefetching.

Page 27: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Policies and policy classes

27

• 1-ahead

• N-ahead

• Priority-based (based on likely switches)

Quality and content-aware prefetching policies

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Client 2

1,4

1,3

1,2

1,1

2,4

2,3

2,2

2,1

3,4

3,3

3,2

3,1

4,4

4,3

4,2

4,1

5,4

5,3

5,2

5,1

6,4

6,3

6,2

6,1

7,4

7,3

7,2

7,1

Proxy

Page 28: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Policies and policy classes

28

• Buffer oblivious (priority-based prefetching)

• Buffer aware (conservative quality during low buffer conditions)

Client-proxy cooperation policies

I have these

fragments

I have this buffer

occupancy Proxy works ahead using prefetching

Client picks from these qualities

(when possible)

Page 29: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Policy overview

29

• Buffer oblivious (priority-based prefetching)

• Buffer aware (conservative quality during low buffer conditions)

Client-proxy cooperation policies

• 1-ahead

• N-ahead

• Priority-based (based on likely switches)

Quality and content-aware prefetching policies

• Empty cache

• Full cache (preload all versions)

• Best effort (default, as previous example)

Baseline policies

Page 30: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Evaluation and Instrumentation

30

• Evaluation of proxy-assisted HAS policies

In this paper …

Page 31: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

31

• Evaluation of proxy-assisted HAS policies

In this paper …

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths,

delays, packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Page 32: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

32

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Page 33: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

33

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Page 34: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

34

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Page 35: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

35

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Player Container Type Open Source

Instrumentation

Page 36: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

36

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Player Container Type Open Source

Microsoft Smooth

Streaming

Silverlight

Chunk

Instrumentation

Page 37: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

37

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Player Container Type Open Source

Microsoft Smooth

Streaming

Silverlight

Chunk

Netflix player Silverlight Range

Instrumentation

Page 38: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

38

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Player Container Type Open Source

Microsoft Smooth

Streaming

Silverlight

Chunk

Netflix player Silverlight Range

Apple HLS QuickTime Chunk

Instrumentation

Page 39: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

39

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Player Container Type Open Source

Microsoft Smooth

Streaming

Silverlight

Chunk

Netflix player Silverlight Range

Apple HLS QuickTime Chunk

Adobe HDS Flash Chunk

Instrumentation

Page 40: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

40

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Adobe Flash

media server 4.5

Adobe’s OSMF

v1.6 and v 2.0

Page 41: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

41

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Adobe Flash

media server 4.5

Adobe’s OSMF

v1.6 and v 2.0

New player (v 2.0) better for

all metrics and scenarios

(also looked at buffer size)

Page 42: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

42

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Page 43: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

43

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Page 44: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

44

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Open source squid

proxy (2.7 stable 9)

Page 45: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

45

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Page 46: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

46

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 47: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

47

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 48: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

48

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 49: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

49

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 50: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

50

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 51: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

51

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 52: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

52

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 53: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

53

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 54: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

54

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 55: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

55

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 56: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

56

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 57: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

57

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 58: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

58

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 59: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

59

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 60: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

60

• Clients: Measure performance/service

• Proxy: Implementing policies and measure performance

• Network: Capture network conditions (bottlenecks, bandwidths, delays,

packet losses, etc.)

… for this we need instrumentation of …

Instrumentation

Dummynet to control network conditions

- delays

- packet losses

- bandwidth and bottlenecks

Page 61: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Bandwidth scenarios

61

Slow variations Fast variations Static

Synthetic traces

Bus Ferry Metro Tram

Real-world traces

Page 62: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Client-proxy bottleneck

• Proxies provide only limited performance advantages

under client-proxy bottleneck

• Some performance improvements to prefetching (but

penalty to excessive prefetching)

62

Quality level Stall times

Page 63: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Client-proxy bottleneck

• Proxies provide only limited performance advantages

under client-proxy bottleneck

• Some performance improvements to prefetching

63

Quality level Stall times

Page 64: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Client-proxy bottleneck

• Proxies provide only limited performance advantages

under client-proxy bottleneck

• Some performance improvements to prefetching

64

Quality level Stall times

Page 65: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Proxy-server bottleneck

• Large performance potential for proxy caching

• Significant performance improvement with the best effort policy

• Naive prefetching results in penalty

• Need for more intelligent prefetching policies (cooperative)

65

(a) Quality level (b) Stall time

Quality level Stall times

Page 66: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Proxy-server bottleneck

• Large performance potential for proxy caching

• Significant performance improvement with the best effort policy

• Naive prefetching results in penalty

• Need for more intelligent prefetching policies (cooperative)

66

(a) Quality level (b) Stall time

Quality level Stall times

Page 67: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Proxy-server bottleneck

• Large performance potential for proxy caching

• Significant performance improvement with the best effort policy

• Naive prefetching results in penalty

• Need for more intelligent prefetching policies (cooperative)

67

(a) Quality level (b) Stall time

Quality level Stall times

Page 68: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Proxy-server bottleneck

• Large performance potential for proxy caching

• Significant performance improvement with the best effort policy

• Naive prefetching results in penalty

• Need for more intelligent prefetching policies (cooperative)

68

(a) Quality level (b) Stall time

Quality level Stall times

Page 69: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Transient hit rate analysis

• Best effort has the smallest hit rate

• Prefetching bandwidth benefit future clients

• Hits and high client-proxy bandwidth may cause costly penalties due

to limited bandwidth at misses (more variability and lower hit rates)

69

Client-proxy bottleneck Proxy-server bottleneck

Page 70: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Transient hit rate analysis

• Best effort has the smallest hit rate

• Prefetching bandwidth benefit future clients

• Hits and high client-proxy bandwidth may cause costly penalties due

to limited bandwidth at misses (more variability and lower hit rates)

70

Client-proxy bottleneck Proxy-server bottleneck

Page 71: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Transient hit rate analysis

• Best effort has the smallest hit rate

• Prefetching bandwidth benefit future clients

• Low proxy-server bandwidth may cause costly penalties due to slow

downloads at misses (more variability and lower hit rates)

71

Client-proxy bottleneck Proxy-server bottleneck

Page 72: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Transient hit rate analysis

• Best effort has the smallest hit rate

• Prefetching bandwidth benefit future clients

• Low proxy-server bandwidth may cause costly penalties due to slow

downloads at misses (more variability and lower hit rates)

72

Client-proxy bottleneck Proxy-server bottleneck

Page 73: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Client-proxy cooperation

• For client-proxy bottleneck, both policies slightly outperform all baseline

and quality-aware prefetching policies

• For proxy-server bottleneck, both policies vastly outperform all baseline

and quality-aware prefetching policies

73

Client-proxy bottleneck Proxy-server bottleneck

Page 74: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example trace: Client-proxy cooperation

• Cooperative policy quickly adapt cache content such as to best serve the

clients, without penalizing early clients

74

Quality level of each client (proxy-server bottleneck)

Page 75: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Example trace: Client-proxy cooperation

• Cooperative policy quickly adapt cache content such as to best serve the

clients, without penalizing early clients

75

Quality level of each client (proxy-server bottleneck)

Page 76: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

Conclusions

• Performance impact of HAS-aware proxy policies

• Baseline policies

• Quality and content-aware prefetching

• Client-proxy cooperation

• Bottleneck location and network conditions play central roles in

which policy choices are most advantageous

• Large benefits to cooperative policies when proxy-server bottleneck

• Careful proxy design and policy selection very important

• Future work include adaptive policies

• Bottleneck and their conditions may change

76

Page 77: Helping Hand or Hidden Hurdle: Proxy-assisted …nikca89/papers/mascots13a.slides.pdfHelping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive Streaming Performance Vengatanathan

www.liu.se

Helping Hand or Hidden Hurdle:

Proxy-assisted HTTP-based Adaptive

Streaming Performance

Vengatanathan Krishnamoorthi (LiU)

Niklas Carlsson (LiU)

Derek Eager (U of S)

Anirban Mahanti (NICTA)

Nahid Shahmehri (LiU)