helping hand or hidden hurdle proxy assisted http based
play

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


  1. 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

  2. Video streaming 40  60% of Internet traffic • Content delivery over the Internet is massive … • Consume significant resources • How to make scalable and efficient?

  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

  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

  5. Problem: Proxy-assisted HAS Clients’ want • High playback quality • Small stall times • Few buffer interruptions • Few quality switches 5

  6. Problem: Proxy-assisted HAS Clients’ want HAS is increasingly responsible • High playback quality for larger traffic volumes • Small stall times Network and service providers may consider integrating HAS- • Few buffer interruptions aware proxy policies • Few quality switches 6

  7. Problem: Proxy-assisted HAS Clients’ want Network providers’ want • • High playback quality High QoE of customers/clients • Small stall times • Few buffer interruptions • Few quality switches 7

  8. Problem: Proxy-assisted HAS Clients’ want Network providers’ want • • High playback quality High QoE of customers/clients • • Small stall times Low bandwidth usage • • Few buffer interruptions High hit rate • Few quality switches 8

  9. Problem: Proxy-assisted HAS Clients’ want Network providers’ want • • High playback quality High QoE of customers/clients • • Small stall times Low bandwidth usage • • Few buffer interruptions High hit rate • Few quality switches 9

  10. Problem: Proxy-assisted HAS In this paper … • Evaluation of proxy-assisted HAS policies 10

  11. Problem: Proxy-assisted HAS In this paper … • Evaluation of proxy-assisted HAS policies 11

  12. Problem: Proxy-assisted HAS In this paper … • Evaluation of proxy-assisted HAS policies 12

  13. Problem: Proxy-assisted HAS In this paper … • Evaluation of proxy-assisted HAS policies 13

  14. Problem: Proxy-assisted HAS In this paper … • Evaluation of proxy-assisted HAS policies 14

  15. Example: Default “best - effort” 15

  16. Example: Default “best - effort” 1,4 2,4 3,4 4,4 5,4 6,4 7,4 1,4 2,4 3,4 4,4 5,4 6,4 7,4 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 1,1 2,1 3,1 4,1 5,1 6,1 7,1 Client Proxy 16

  17. Example: Default “best - effort” 1,4 2,4 3,4 4,4 5,4 6,4 7,4 6,3 1,3 2,3 3,3 4,3 5,3 7,3 6,2 1,2 2,2 3,2 4,2 5,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 1,4 2,4 3,4 4,4 5,4 6,4 7,4 Proxy before 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 6,4 1,4 2,4 3,4 4,4 5,4 7,4 Client 1 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 6,1 1,1 2,1 3,1 4,1 5,1 7,1 Proxy after 17

  18. Example: Default “best - effort” 1,4 2,4 3,4 4,4 5,4 6,4 7,4 6,3 1,3 2,3 3,3 4,3 5,3 7,3 6,2 1,2 2,2 3,2 4,2 5,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 1,4 2,4 3,4 4,4 5,4 6,4 7,4 Proxy before 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 6,4 1,4 2,4 3,4 4,4 5,4 7,4 Client 1 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 6,1 1,1 2,1 3,1 4,1 5,1 7,1 Proxy after 18

  19. Example: Default “best - effort” 1,4 2,4 3,4 4,4 5,4 6,4 7,4 6,3 1,3 2,3 3,3 4,3 5,3 7,3 6,2 1,2 2,2 3,2 4,2 5,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 1,4 2,4 3,4 4,4 5,4 6,4 7,4 Proxy before 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 6,4 1,4 2,4 3,4 4,4 5,4 7,4 Client 2 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 6,1 1,1 2,1 3,1 4,1 5,1 7,1 Proxy after 19

  20. Example: Default “best - effort” 1,4 2,4 3,4 4,4 5,4 6,4 7,4 6,3 1,3 2,3 3,3 4,3 5,3 7,3 6,2 1,2 2,2 3,2 4,2 5,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 1,4 2,4 3,4 4,4 5,4 6,4 7,4 Proxy before 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 6,4 1,4 2,4 3,4 4,4 5,4 7,4 Client 2 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 6,1 1,1 2,1 3,1 4,1 5,1 7,1 Proxy after 20

  21. Example: Default “best - effort” 1,4 2,4 3,4 4,4 5,4 6,4 7,4 6,3 1,3 2,3 3,3 4,3 5,3 7,3 6,2 1,2 2,2 3,2 4,2 5,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 1,4 2,4 3,4 4,4 5,4 6,4 7,4 Proxy before 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 6,4 1,4 2,4 3,4 4,4 5,4 7,4 Client 3 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 6,1 1,1 2,1 3,1 4,1 5,1 7,1 Proxy after 21

  22. Example: Default “best - effort” 1,4 2,4 3,4 4,4 5,4 6,4 7,4 6,3 1,3 2,3 3,3 4,3 5,3 7,3 6,2 1,2 2,2 3,2 4,2 5,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 1,4 2,4 3,4 4,4 5,4 6,4 7,4 Proxy before 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 6,4 1,4 2,4 3,4 4,4 5,4 7,4 Client 3 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 6,1 1,1 2,1 3,1 4,1 5,1 7,1 Proxy after 22

  23. Policies and policy classes Baseline policies • Empty cache • Full cache (preload all versions) • Best effort (default, as previous example) 23

  24. Policies and policy classes Quality and content-aware prefetching policies • 1-ahead • N-ahead • Priority-based 24

  25. Policies and policy classes Quality and content-aware prefetching policies • 1-ahead • N-ahead • Priority-based 1,4 2,4 3,4 4,4 5,4 6,4 7,4 1,4 2,4 3,4 4,4 5,4 6,4 7,4 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 1,1 2,1 3,1 4,1 5,1 6,1 7,1 Proxy Client 2 25

  26. Policies and policy classes Quality and content-aware prefetching policies • 1-ahead • N-ahead • Priority-based (based on likely switches) • 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. 26

  27. Policies and policy classes Quality and content-aware prefetching policies • 1-ahead • N-ahead • Priority-based (based on likely switches) 1,4 2,4 3,4 4,4 5,4 6,4 7,4 1,4 2,4 3,4 4,4 5,4 6,4 7,4 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,3 2,3 3,3 4,3 5,3 6,3 7,3 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,2 2,2 3,2 4,2 5,2 6,2 7,2 1,1 2,1 3,1 4,1 5,1 6,1 7,1 1,1 2,1 3,1 4,1 5,1 6,1 7,1 Proxy Client 2 27

  28. Policies and policy classes I have these fragments I have this buffer occupancy Proxy works ahead using prefetching Client picks from these qualities (when possible) Client-proxy cooperation policies • Buffer oblivious (priority-based prefetching) • Buffer aware (conservative quality during low buffer conditions) 28

  29. Policy overview Baseline policies • Empty cache • Full cache (preload all versions) • Best effort (default, as previous example) Quality and content-aware prefetching policies • 1-ahead • N-ahead • Priority-based (based on likely switches) Client-proxy cooperation policies • Buffer oblivious (priority-based prefetching) • Buffer aware (conservative quality during low buffer conditions) 29

  30. Evaluation and Instrumentation In this paper … • Evaluation of proxy-assisted HAS policies 30

  31. Instrumentation In this paper … • Evaluation of proxy-assisted HAS policies … for this we need instrumentation of … • Clients: Measure performance/service • Proxy: Implementing policies and measure performance • Network: Capture network conditions (bottlenecks, bandwidths, delays, packet losses, etc.) 31

  32. Instrumentation … for this we need instrumentation of … • Clients: Measure performance/service • Proxy: Implementing policies and measure performance • Network: Capture network conditions (bottlenecks, bandwidths, delays, packet losses, etc.) 32

  33. Instrumentation … for this we need instrumentation of … • Clients: Measure performance/service • Proxy: Implementing policies and measure performance • Network: Capture network conditions (bottlenecks, bandwidths, delays, packet losses, etc.) 33

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend