the next generation of protocols and apis that could change streaming video

25
The next generation of network and browser APIs that could change video streaming Streaming Forum London February 28, 2017 12:00 to 12:25 pm

Upload: erica-beavers

Post on 12-Apr-2017

114 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: The next generation of protocols and APIs that could change streaming video

The next generation of network and browser APIs that could change video streamingStreaming Forum LondonFebruary 28, 201712:00 to 12:25 pm

Page 2: The next generation of protocols and APIs that could change streaming video

Streamroot peer-accelerated delivery enables large-scale content providers to increase the quality of online video while drastically

improving the economics of OTT business.

Who are we?

Page 3: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.Infinite scale, limitless delivery.

1. Network-side standards & protocolsa. Application layer protocol: HTTP/2b. Transport layer protocol: QUIC

2. Client-side APIsa. Fetch APIb. Service workers

Where we’re going and what we’re going to talk about.

Page 4: The next generation of protocols and APIs that could change streaming video

Network protocols1

Page 5: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Where are we now?http/1.1

PROs

Ubiquitous, enabled large scale caching infrastructure (CDN)

CONs

Congestion proneMultiple connectionsRTT sensitive Client pull approachVerbose headers

RESULT: induces network, server & client overhead, latency for streaming video

Page 6: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Http/2 improvementsRequest / response multiplexingSeveral asynchronous HTTP requests over a single TCP connection

Page 7: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Http/2 improvementsRequest / response multiplexingSeveral asynchronous HTTP requests over a single TCP connection

Page 8: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Http/2 improvements

Binary framing: streams, messages and frames

Request message

Response message

Stream 1

Stream N

HEADERS frame (stream 1)

:status::version::server:

:vary:...

200HTTP/2.0nginx/1.0.11Accept-Encoding...

DATA frame (stream 1)

...response payload...

HEADERS frame (stream 1):method:

:path::version::scheme:

:user-agent:

GET/index.htmlHTTP/2.0httpsChrome/26.0.1410.65

TCP Connection

Page 9: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Http/2 improvements

Request prioritization

Flow control

Server push

Header compression

Additional improvements

Eliminate HoL blocking / congestion

Minimize protocol overhead

Lower latency

Page 10: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Http/1.1 - Http/2 stacks

http1/1

TLS Session

http1/1

TLS Session

http1/1

TLS Session

http1/1

TLS Session

IP Network

TCP Connecti

on

TCP Connecti

on

TCP Connecti

on

TCP Connecti

on

http1/1

http1/1

http1/1

http1/1

TCP Connection

TLS Session

HTTP/2Connecti

on

HTTP/2Strea

m

HTTP/2Strea

m

HTTP/2Strea

m

HTTP/2Strea

m

IP Network

Browser Browser

Page 11: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Http/2 in the fieldCurrent browser support

Total: 74% full support; 5% partial

IE

11

Edge

14

Firefox

51

Chrome

56

Safari

10

Opera

42

iOS Safari

10.2

Opera Mini

all

Android browser

53

Chrome for Android

55

15 52 57 10.1 43

50 55 9.3 4.4.4

Deployed on top websites: Twitter, Facebook, Yahoo, Google...

Page 12: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Http/2 for streaming video

Possibilities

● Better startup-time● Lower latency● Potential quicker ABR switches

Further R&D

● Server push & segment prioritization logic● Flow control logic

Limitations

● Still subject to TCP constraints...

Page 13: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Quic

Transport protocol developed by Google to be optimized for HTTP2Replacement for TCP based on UDP to reduce RTT sensitivity

HTTP/2HTTP/2

TLS 1.2 QUIC

UDPTCP

QUIC

uickDPnternetConnections

IP NetworkIP Network

Page 14: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Quic

Key features:

● Shorter RTT connection times

● Multiplexing and flow control to avoid head of line

blocking

● Forward error correction

● Improved congestion control

● Connection semantics & reliability equivalent to TCP

● Encryption over the entire channel

QUIC

uickDPnternetConnections

Page 15: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Quic deployment status

Deployment largely limited to Google stack; default on Chromium

QUIC Working Group at IETF - not yet standard

Support on Google websites, including Youtube

QUIC

uickDPnternetConnections

Page 16: The next generation of protocols and APIs that could change streaming video

Browser-side APIs2

Page 17: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

XHR

Fetch

● Modern alternative to XMLHttpRequest (XHR)● Relies heavily on Streams API

What is the fetch API?

ArrayBuffer

SourceBuffer

fetch()

SourceBuffer

Readable Stream

Page 18: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

FetchCurrent browser support

Total: 63% full support

IE

11

Edge

14

Firefox

51

Chrome

56

Safari

10

Opera

42

iOS Safari

10.2

Opera Mini

all

Android browser

53

Chrome for Android

55

15 52 57 10.1 43

50 55 9.3 4.4.4

Page 19: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Service Workers

● Programmable network proxy in form of a script running between web pages/ network

● Intercepts, handles, modifies, redirects, etc. programmatically changing requests / responses

● Relies heavily on Promises

What is it?

● DVR / offline viewing● Content prediction / pre-caching● Transmuxing / transcoding...

Applications to video streaming

Page 20: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Service WorkersCurrent browser support

● HTTPS only● Fetch only, no XHR● Beware of API support

Limitations

Total: 62% partial supportIE

11

Edge

14

Firefox

51

Chrome

56

Safari

10

Opera

42

iOS Safari

10.2

Opera Mini

all

Android browser

53

Chrome for Android

55

Page 21: The next generation of protocols and APIs that could change streaming video

So what happens when we use it all together…?

Page 22: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Page 23: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

HTTP2

QUIC

fetch()

Service workers

Faster startupLower latencyLess network / device overheadLower CPU useHigher bandwidthQuicker seekingLow-latency use casesTransmuxingTranscodingDVROffline viewingPre-caching...

All together...

Page 24: The next generation of protocols and APIs that could change streaming video

Thank you!

Infinite scale, limitless delivery.

Page 25: The next generation of protocols and APIs that could change streaming video

© 2017 Streamroot - All rights reserved

Infinite scale, limitless delivery.

Resources / contact us!

Erica Beavers, Head of Partnerships & Marketing [email protected]

Resources:

HTTP/2 overview from `High Performance Browser Networking` (Ilya Grigorik) https://hpbn.co/http2/HTTP/2 github pages maintained by the IETF HTTP working group https://http2.github.io/QUIC overview (Matttias Genar) https://ma.ttias.be/googles-quic-protocol-moving-web-tcp-udp/QUIC FAQ for geeks: https://docs.google.com/document/d/1lmL9EF6qKrk7gbazY8bIdvq3Pno2Xj_l_YShP40GLQE/editHTTP/2 & QUIC : TEACHING GOOD PROTOCOLS TO DO BAD THINGS (Kate Pearce/ Carl Vincent) : https://www.blackhat.com/docs/us-16/materials/us-16-Pearce-HTTP2-&-QUIC-Teaching-Good-Protocols-To-Do-Bad-Things.pdf Using Fetch: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_FetchService Worker API: https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API