Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

WebRTC

An architectural introduction to WebRTC
by

Enrico Marocco

on 21 August 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of WebRTC

"RTC" as in
"Realtime Communications"
"Web" as in ... errr ... "The Web"
but also...
"Web" as in "App"
Software libraries for building WebRTC-compatible apps on major mobile platforms
"Web" as in "Embedded"
"Web" as in
"The sky's the limit"
blah
blah
blah
blah
blah
blah
blah
blah
blah
blah
blah
blah
"WebRTC" as in
"Peer-to-peer* realtime communications
between web browsers**"

** and mobile apps, embedded devices...
* peer-to-peer... "with a little help from my servers"
TURN
ICE servers for NAT and Firewall traversal
Interactive Connectivity Establishment
Enabled by default in Chrome and Firefox since June 2013
blxh bxxh
a ah b lah
blah blah
... because the Internet is a mess!
STUN
HTTP
Web server(s) implementing the application logic
Web Application Server
This is where browsers retrieve the application logic and user interface
HTML, css, images...
JavaScript
Minimum load:
Few one-shot transactions in a client lifetime
1 box for ~10^5 clients
Web Signaling Server
Clients stay connected here to send and receive event notifications
Medium load:
A live connection for each active client
1 box for ~10^4 clients
E.g.:
"someone is calling"
"change UI layout"
"display a notification"
E.g.:
"place a call to..."
"user hit button X"
The
devil's
in
(signaling)
details
Detail #1:
* Deployed in browsers, but not in proxies**
** Incl. transparent proxies, common in mobile networks
Signaling needs to be bi-directional and MUST happen over HTTP(S)
but HTTP is inherently mono-directional!

Two options:
Well-established BOSH/COMET "hacks"
Immature* WebSocket standard
Detail #2:
Signaling is fully delegated to the application

The application logic (i.e. the JavaScript code) implements the signaling protocol
According to its very specific needs
It's a feature!
Two emerging approaches
JSON
over
WebSocket (+ BOSH + COMET)
Natively interpreted by browsers
Fall-back, if something goes wrong
The language of the web
+ WebRTC- and application-specific signaling on the same channel
Network info for establishing peer-to-peer media connections
+ enables fast connection setup
Trickle ICE!
+ does not impose any identity scheme on the application
+ easy reliability in "broken-network" scenarios
Using popular hack-wrapping libraries (e.g. socket.io)
SIP
over
WebSocket
The protocol of IP communication services
+ easy to make existing communication services accessible from browsers
- slow, often
VoIP telephony
Video Conferencing / Telepresence
Adding support for WebSocket transport to SIP
(already available for UDP, TCP, SCTP)
Vendors love this!
- no WebSocket, no party
- poor flexibility
no custom signalling
imposes SIP identity scheme
No Trickle ICE!
Telco equipment vendors
Internet Co's
Web Signaling Gateway
Translates the web app signaling into other communication services lingo
SIP, possibly XMPP
Medium load:
A live connection for each active session
1 box for ~10^4 sessions
Web Media Gateway
Translate WebRTC media toward other communication services
High load:
(En+de)cryption and (poss.) transcoding for each active session
1 box for ~10-10^3 sessions
Simple, plain RTP
ICE + SRTP
Easy job if web apps speak SIP over WebSocket
VoIP telephony
Video Conferencing / Telepresence
This is complicated!
And possibly transcoding
This is VERY complicated!
(OPTIONAL)
(OPTIONAL)
Full transcript