Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
webRTC: from API to solution
Dr. Alex Gouaillard,
CTO Temasys
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the tec...
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
Very well addressed by peter, will do it fast
W3C Working Groups address ...
IETF
group name status last version
AVT RTP/RTCP MUX RFC5761
MMUSIC ICE RFC5245 2010
MMUSIC ICE TCP RFC6544 2012
MMUSIC SD...
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the tec...
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1 2
1. Connect to an URL
initiator
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. s...
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. s...
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. s...
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. s...
Anatomy of a simple solution: appRTC
Alice Bob
GAE
GAE
channel
Google 1. Connect to an URL
2. Connect to the sig. server
3...
Extension of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig....
Extension of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig....
DONEFROZENINCALLCONNECTIONHANDSHAKE(SDPO/A).
new
checking
connected
disconnected
failed
Completed
close
new
gathering
comp...
Limits of p2p mesh approach
Alice Bob
Alice Bob
Chris
Alice Bob
Chris David
2
6
12
Alic
e
Bob
Chris
EdDave
20
n(n-1) O(n^2)
Business as usual MCU: multiplexing streams
- wow, super bandwidth !
- Hum, what about latency?
- What happen if peers are...
Smarter topology ?
- bandwidth optimization WITH layout freedom
0
100
200
300
400
500
600
2 7 12 17 22
type
Streams
IN
Str...
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the tec...
Reference code: appRTC / appRTCDEMO
Desktop
chrome firefox IE Safari Opera ref client
GUM 18+ 17+
Temasys Plugin
12+
Temas...
Reference code: appRTC / appRTCDEMO
Desktop
chrome firefox IE Safari Opera ref client
GUM 18+ 17+
Temasys Plugin
12+
Temas...
Reference code: appRTC / appRTCDEMO
Desktop
chrome firefox IE Safari Opera ref client
GUM 18+ 17+
Temasys Plugin
12+
Temas...
Firewall Traversal
current firefox stable: 26 OK
updated on 1/13/13 Done, not deployed
FAIL
chrome firefox Skype
LAN, no f...
Firewall Traversal
IETF standards chrome firefox skyway
ports optimization
rfc5761: RTP/RCTP MUX Bug 907353
draftxxx: BUND...
Other Features: screen sharing and recording
- Screen sharing => drama. In and out.
- Available as a privileged API in chr...
Warning … controversial topics
This is the coverage you get when ignoring security
That raises concerns about open sourcing some webRTC code that touches...
Upcoming SlideShare
Loading in …5
×

Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC

1,559 views

Published on

Published in: Technology
  • Be the first to comment

Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC

  1. 1. webRTC: from API to solution Dr. Alex Gouaillard, CTO Temasys
  2. 2. webRTC vs RTCweb (w3c vs IETF, API vs protocols) The missing pieces for a simple App (appRTC example) The state of the technology
  3. 3. webRTC vs RTCweb (w3c vs IETF, API vs protocols) Very well addressed by peter, will do it fast W3C Working Groups address the in-browser javascript API - Device API WG - webRTC WG - with a common task force: Media capture and stream (getUserMedia) NOTE: Community group can be set up by anyone, and cannot define a standard: ORTC. IETF: RTCWeb but also other groups (BUNDLE, RMCAT, ….) - define use cases - security - qos - CODECS …… NOTE: W3C membership is required for some discussion, whereas joining the IETF mailing list makes you an IETF “member”.
  4. 4. IETF group name status last version AVT RTP/RTCP MUX RFC5761 MMUSIC ICE RFC5245 2010 MMUSIC ICE TCP RFC6544 2012 MMUSIC SDP O/A RFC3264 2002 BEHAVE STUN RFC5389 2008 RTCWEB STUN-URI RFC7064 2013 BEHAVE TURN RFC5766 2010 BEHAVE TURN-URI RFC7065 2013 RTCWEB JSEP draft HyBi WS Protocol RFC6455 2011 URI RFC3986 2005 BEHAVE TURN RFC5928 2010 RMCAT Congestion control 2013 RMCAT REMB 2013 RTCWEB 11 docs to fill BEHAVE TURN WS 2013 BEHAVE TURN TCP RFC6062 2010
  5. 5. webRTC vs RTCweb (w3c vs IETF, API vs protocols) The missing pieces for a simple App (appRTC example) The state of the technology
  6. 6. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1 2 1. Connect to an URL initiator
  7. 7. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server initiator
  8. 8. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice send offer 4. Server relays to bob 5. Bob send answer persistent initiator
  9. 9. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice send offer 4. Server relays to bob 5. Bob send answer 6. Handshake / ICE One time initiator
  10. 10. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice send offer 4. Server relays to bob 5. Bob send answer 6. Handshake / ICE 7. Media streams, life is good media
  11. 11. Anatomy of a simple solution: appRTC Alice Bob GAE GAE channel Google 1. Connect to an URL 2. Connect to the sig. server 3. Alice send offer 4. Server relays to bob 5. Bob send answer 6. Handshake / ICE 7. Media streams, life is good media
  12. 12. Extension of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice sends “hello” 4. Server relays to bob 5. Bob sends “welcome” 6. Handshake / ICE 7. Only 1 PC per peer. 8. Media streams, life is goodmedia
  13. 13. Extension of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice says “hello” 4. Server relays to ALL 5. ALL says “welcome” 6. Handshake / ICE with all 7. Only 1 PC per peer 8. Media streams, life is good Cyndi
  14. 14. DONEFROZENINCALLCONNECTIONHANDSHAKE(SDPO/A). new checking connected disconnected failed Completed close new gathering complete CALLER SIG-SERVER CALLEE stable have-local-offer stable Close CHAT ENTER WELCOME OFFER ANSWER Create PC Add local stream(s) Create offer <modify sdp> SetLocal(offer) Sending offer Create PC SetRemote(offer) addRemoteStream(s) Add local stream(s) Create answer <modify sdp> SetLocal(answer) Send answer stable Have-remote- offer stable new gathering complete onIceCandidate <Filter candidates> Send candidate <Filter candidates> addIceCandidate onIceCandidate <Filter candidates> Send candidate <Filter candidates> addIceCandidate new checking connected disconnected failed Completed close Close © Temasys Communications, pvt, ltd, 2014 Document provided under CC BY-NC 4.0 CANDIDATES Peer Connection ICE Connection ICE Gathering SetRemote(answer) addRemoteStream BYE
  15. 15. Limits of p2p mesh approach Alice Bob Alice Bob Chris Alice Bob Chris David 2 6 12 Alic e Bob Chris EdDave 20 n(n-1) O(n^2)
  16. 16. Business as usual MCU: multiplexing streams - wow, super bandwidth ! - Hum, what about latency? - What happen if peers are far away …. ? Alic e Bob Chris EdDave MCU 5 n O(n)
  17. 17. Smarter topology ? - bandwidth optimization WITH layout freedom 0 100 200 300 400 500 600 2 7 12 17 22 type Streams IN Streams OUT p2p N-1 N-1 MCU 1 1 Hybrid N-1 1
  18. 18. webRTC vs RTCweb (w3c vs IETF, API vs protocols) The missing pieces for a simple App (appRTC example) The state of the technology
  19. 19. Reference code: appRTC / appRTCDEMO Desktop chrome firefox IE Safari Opera ref client GUM 18+ 17+ Temasys Plugin 12+ Temasys appRTCDesk PC 20+ 22+ 18+ DC 26+ 22+ 18+ GAE N/A iOS safari firefox chrome Opera ref client against apple policy …….. Temasys contributions N/A Android firefox chrome Opera ref client 24+ 29+ 18+ appRTCDEMO 24+ 29+ 18+ 24+ 29+ 18+ N/A
  20. 20. Reference code: appRTC / appRTCDEMO Desktop chrome firefox IE Safari Opera ref client GUM 18+ 17+ Temasys Plugin 12+ Temasys appRTCDesk PC 20+ 22+ 18+ DC 26+ 22+ 18+ GAE N/A iOS safari firefox chrome Opera ref client against apple policy …….. Temasys contributions N/A Android firefox chrome Opera ref client 24+ 29+ 18+ appRTCDEMO 24+ 29+ 18+ 24+ 29+ 18+ N/A
  21. 21. Reference code: appRTC / appRTCDEMO Desktop chrome firefox IE Safari Opera ref client GUM 18+ 17+ Temasys Plugin 12+ Temasys appRTCDesk PC 20+ 22+ 18+ DC 26+ 22+ 18+ GAE N/A iOS safari firefox chrome Opera ref client Temasys webkit upgrade crowdfunding Temasys contributions N/A Android firefox chrome Opera ref client 24+ 29+ 18+ appRTCDEMO 24+ 29+ 18+ 24+ 29+ 18+ N/A
  22. 22. Firewall Traversal current firefox stable: 26 OK updated on 1/13/13 Done, not deployed FAIL chrome firefox Skype LAN, no firewall fully open firewal (just IP/port mapping) complicated firewall (in term of IP/port mapping) firewall that blocks all UDP Bug 906968 => FF28 TCP port 80 tunneling TLS port 443 tunneling support http proxy application layer restrictions: HTTP/HTTPS TURN WS ? application layer restriction DPI no way to escape settings Different firewall scenarii
  23. 23. Firewall Traversal IETF standards chrome firefox skyway ports optimization rfc5761: RTP/RCTP MUX Bug 907353 draftxxx: BUNDLE Bug 784491 Basic connection (LAN) p2p rfc5245: ICE draftxxx: faster "trickle" ICE Bug 842549 => FF27 rfc6544: ICE TCP Bug 891551 Normal Connection rfc5389: STUN Good Connection Relayed rfc5766: TURN over UDP Great Connection rfc5766: TURN over TCP Bug 906968 => FF28 not ON rfc5766: TURN over TLS/TCP ? not ON HTTP proxy support Bug 949703 The future draftxxx: TURN WS connectivity feature support
  24. 24. Other Features: screen sharing and recording - Screen sharing => drama. In and out. - Available as a privileged API in chrome only (=> extension) - Mozilla pushing hard => will be in the specs, as a separate document - Recording - In the specs already - Available in yesterday’s firefox 30!
  25. 25. Warning … controversial topics
  26. 26. This is the coverage you get when ignoring security That raises concerns about open sourcing some webRTC code that touches security cases described in the IETF document, for example: plugins.

×