Helping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive - - PowerPoint PPT Presentation

helping hand or hidden hurdle proxy assisted http based
SMART_READER_LITE
LIVE PREVIEW

Helping Hand or Hidden Hurdle: Proxy-assisted HTTP-based Adaptive - - PowerPoint PPT Presentation

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 Linkping University, Sweden 2 University of


slide-1
SLIDE 1

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
slide-2
SLIDE 2

Video streaming

4060%

  • f Internet traffic
  • Content delivery over the Internet is massive …
  • Consume significant resources
  • How to make scalable and efficient?
slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

Problem: Proxy-assisted HAS

5

  • High playback quality
  • Small stall times
  • Few buffer interruptions
  • Few quality switches

Clients’ want

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

Problem: Proxy-assisted HAS

10

  • Evaluation of proxy-assisted HAS policies

In this paper …

slide-11
SLIDE 11

Problem: Proxy-assisted HAS

11

  • Evaluation of proxy-assisted HAS policies

In this paper …

slide-12
SLIDE 12

Problem: Proxy-assisted HAS

12

  • Evaluation of proxy-assisted HAS policies

In this paper …

slide-13
SLIDE 13

Problem: Proxy-assisted HAS

13

  • Evaluation of proxy-assisted HAS policies

In this paper …

slide-14
SLIDE 14

Problem: Proxy-assisted HAS

14

  • Evaluation of proxy-assisted HAS policies

In this paper …

slide-15
SLIDE 15

Example: Default “best-effort”

15

slide-16
SLIDE 16

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

slide-17
SLIDE 17

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

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

Policies and policy classes

23

  • Empty cache
  • Full cache (preload all versions)
  • Best effort (default, as previous example)

Baseline policies

slide-24
SLIDE 24

Policies and policy classes

24

  • 1-ahead
  • N-ahead
  • Priority-based

Quality and content-aware prefetching policies

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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.

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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

  • ccupancy

Proxy works ahead using prefetching Client picks from these qualities (when possible)

slide-29
SLIDE 29

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

slide-30
SLIDE 30

Evaluation and Instrumentation

30

  • Evaluation of proxy-assisted HAS policies

In this paper …

slide-31
SLIDE 31

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

slide-32
SLIDE 32

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

slide-33
SLIDE 33

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

slide-34
SLIDE 34

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

slide-35
SLIDE 35

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

slide-36
SLIDE 36

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

slide-37
SLIDE 37

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

slide-38
SLIDE 38

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

slide-39
SLIDE 39

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

slide-40
SLIDE 40

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

slide-41
SLIDE 41

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)

slide-42
SLIDE 42

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

slide-43
SLIDE 43

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

slide-44
SLIDE 44

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)

slide-45
SLIDE 45

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

slide-46
SLIDE 46

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
slide-47
SLIDE 47

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
slide-48
SLIDE 48

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
slide-49
SLIDE 49

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
slide-50
SLIDE 50

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
slide-51
SLIDE 51

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
slide-52
SLIDE 52

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
slide-53
SLIDE 53

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
slide-54
SLIDE 54

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
slide-55
SLIDE 55

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
slide-56
SLIDE 56

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
slide-57
SLIDE 57

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
slide-58
SLIDE 58

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
slide-59
SLIDE 59

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
slide-60
SLIDE 60

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
slide-61
SLIDE 61

Bandwidth scenarios

61

Slow variations Fast variations Static

Synthetic traces

Bus Ferry Metro Tram

Real-world traces

slide-62
SLIDE 62

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

slide-63
SLIDE 63

Client-proxy bottleneck

  • Proxies provide only limited performance advantages

under client-proxy bottleneck

  • Some performance improvements to prefetching

63

Quality level Stall times

slide-64
SLIDE 64

Client-proxy bottleneck

  • Proxies provide only limited performance advantages

under client-proxy bottleneck

  • Some performance improvements to prefetching

64

Quality level Stall times

slide-65
SLIDE 65

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

slide-66
SLIDE 66

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

slide-67
SLIDE 67

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

slide-68
SLIDE 68

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

slide-69
SLIDE 69

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

slide-70
SLIDE 70

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

slide-71
SLIDE 71

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

slide-72
SLIDE 72

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

slide-73
SLIDE 73

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

slide-74
SLIDE 74

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)

slide-75
SLIDE 75

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)

slide-76
SLIDE 76

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

slide-77
SLIDE 77

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)