Upload
alex-gouaillard
View
553
Download
7
Tags:
Embed Size (px)
Citation preview
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 technology
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”.
IETFgroup name status last versionAVT RTP/RTCP MUX RFC5761MMUSIC ICE RFC5245 2010MMUSIC ICE TCP RFC6544 2012MMUSIC SDP O/A RFC3264 2002BEHAVE STUN RFC5389 2008RTCWEB STUN-URI RFC7064 2013BEHAVE TURN RFC5766 2010BEHAVE TURN-URI RFC7065 2013RTCWEB JSEP draftHyBi WS Protocol RFC6455 2011
URI RFC3986 2005BEHAVE TURN RFC5928 2010RMCAT Congestion control 2013RMCAT REMB 2013RTCWEB 11 docs to fillBEHAVE TURN WS 2013BEHAVE TURN TCP RFC6062 2010
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the technology
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 URL2. Connect to the sig. server
initiator
Anatomy of a simple solution
Alice Bob
Web server
Signaling server
STUN TURN
1. Connect to an URL2. Connect to the sig. server3. Alice send offer4. Server relays to bob5. Bob send answer
persistent
initiator
Anatomy of a simple solution
Alice Bob
Web server
Signaling server
STUN TURN
1. Connect to an URL2. Connect to the sig. server3. Alice send offer4. Server relays to bob5. Bob send answer6. Handshake / ICE
One time
initiator
Anatomy of a simple solution
Alice Bob
Web server
Signaling server
STUN TURN
1. Connect to an URL2. Connect to the sig. server3. Alice send offer4. Server relays to bob5. Bob send answer6. Handshake / ICE7. Media streams, life is good
media
Anatomy of a simple solution: appRTC
Alice Bob
GAE GAE channelGoogle 1. Connect to an URL
2. Connect to the sig. server3. Alice send offer4. Server relays to bob5. Bob send answer6. Handshake / ICE7. Media streams, life is good
media
Extension of a simple solution
Alice Bob
Web server
Signaling server
STUN TURN
1. Connect to an URL2. Connect to the sig. server3. Alice sends “hello”4. Server relays to bob5. Bob sends “welcome” 6. Handshake / ICE7. Only 1 PC per peer.8. Media streams, life is goodmedia
Extension of a simple solution
Alice Bob
Web server
Signaling server
STUN TURN
1. Connect to an URL2. Connect to the sig. server3. Alice says “hello”4. Server relays to ALL5. ALL says “welcome”6. Handshake / ICE with all7. Only 1 PC per peer8. Media streams, life is good
Cyndi
DO
NE
FR
OZE
N
IN C
ALL
CO
NN
ECTI
ON
HAN
DSH
AKE
(SD
P O
/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
PeerConnection
ICEConnection
ICEGathering
SetRemote(answer)addRemoteStream
BYE
Limits of p2p mesh approach
Alice Bob
Alice Bob
Chris
Alice Bob
Chris David
2
6
12
Alice
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 far away …. ?
Alice
Bob
Chris
EdDave
MCU
5
n O(n)
Smarter topology ? - bandwidth optimization WITH layout freedom
2 7 12 17 220
100
200
300
400
500
600
typeStreams
INStreams
OUT
p2p N-1 N-1
MCU 1 1
Hybrid N-1 1
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the technology
Reference code: appRTC / appRTCDEMO
Desktopchrome firefox IE Safari Opera ref client
GUM 18+ 17+Temasys Plugin
12+Temasys
appRTCDeskPC 20+ 22+ 18+DC 26+ 22+ 18+
GAE N/A
iOSsafari firefox chrome Opera ref client
against apple policy …….. Temasys
contributionsN/A
Androidfirefox chrome Opera ref client
24+ 29+ 18+
appRTCDEMO24+ 29+ 18+24+ 29+ 18+
N/A
Reference code: appRTC / appRTCDEMO
Desktopchrome firefox IE Safari Opera ref client
GUM 18+ 17+Temasys Plugin
12+Temasys
appRTCDeskPC 20+ 22+ 18+DC 26+ 22+ 18+
GAE N/A
iOSsafari firefox chrome Opera ref client
against apple policy …….. Temasys
contributions
N/A
Androidfirefox chrome Opera ref client
24+ 29+ 18+
appRTCDEMO24+ 29+ 18+24+ 29+ 18+
N/A
Reference code: appRTC / appRTCDEMO
Desktopchrome firefox IE Safari Opera ref client
GUM 18+ 17+Temasys Plugin
12+Temasys
appRTCDeskPC 20+ 22+ 18+DC 26+ 22+ 18+
GAE N/A
iOSsafari firefox chrome Opera ref client
Temasys webkit upgrade crowdfundingTemasys
contributionsN/A
Androidfirefox chrome Opera ref client
24+ 29+ 18+
appRTCDEMO24+ 29+ 18+24+ 29+ 18+
N/A
Firewall Traversal
current firefox stable: 26 OKupdated on 1/13/13 Done, not deployed
FAIL
chrome firefox SkypeLAN, 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
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 Connectionrfc5766: TURN over TCP Bug 906968 => FF28 not ONrfc5766: TURN over TLS/TCP ? not ONHTTP proxy support Bug 949703
The future draftxxx: TURN WS
connectivity feature support
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!
Warning … controversial topics
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.