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. 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. 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. webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the technology
6. Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1 2
1. Connect to an URL
initiator
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. 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. 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. 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. 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. 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. 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
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. 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. 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. webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the technology
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. 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
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. 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. 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!
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.