SlideShare a Scribd company logo
WebRTC
Introduction
& Basics
WebRTC
 WebRTC is FOSS that provides browsers and mobile applications with Real Time Communication
capabilities via simple API’s
 It is supported by almost all modern browsers
 Mobile applications & desktop applications can also embed WebRTC without much hassle
 It leverages multiple protocols and standards like
 TURN/STUN(Traversal Using Relay NAT/Session Traversal Utilities for NAT)
 ICE(Interactive Connectivity Establishment)
 SIP(Session Initiation Protocol)
 SDP(Session Description Protocol)
 It is a project supported by Google, Mozilla & Opera
WebRTC
 It can be used for low cost, high quality audio, video & data communication
 WebRTC itself is written in C++
 Available for android and iOS integration without any hassle
 RTCPeerConnection is the heart of WebRTC, handles lots of things including
Connection Process
 Caller creates an offer SDP using some constraints
 Send this SDP to the callee via some signaling mechanism
 Callee accepts the offer and generate an answer SDP
 Answer SDP is sent to caller using some signaling mechanism
 Meanwhile both caller and callee discovers ICE candidates and exchange them with each others
using signaling mechanism
 Both machines have 2 SDP’s, i.e. local and remote
 Both machines have ICE candidates from each other
 WeRTC connects both machines using ICE Candidates
 Connection is Peer-Peer.
Signaling Mechanism
 Signaling is required to transmit following from caller to callee and vice versa
 Session Description
 ICE Candidates
 It can use any protocol & messaging mechanism
 XMPP has an XEP for this called Jingle
 You can use WebSockets for this as well.
 WebRTC doesn’t restrict any protocol
 Signaling is lightweight, it doesn’t transmit voice, video or data, instead it only transmits SDP’s
and Candiates
Sample SDP
Microsoft
Word Document
Both
machines
are in same
network
NAT
 Network Address Translation is a process in which a device(usually firewall) assigns a public IP to a
computer or group of computers inside a private network.
 Main purpose of NAT is to limit the number of public IP addresses a network or organization
must use.
 Symmetric NAT also map a specific port network’s public IP, every time a new connection is made
a new port will be mapped.
NAT continued
 If systems are behind NAT then simply sending candidates doesn’t work
 If candidates are local IP addresses and ports and both machines resides on different private
networks then they won’t be able to connect.
 We somehow need to know the public IP of the caller and a port mapped to that public IP.
 Similarly we need to know the same information on second public
Both
machines
are behind
NAT
STUN
 STUN(Session Traversal Utilities for NAT) provides a set of tools for NAT traversal.
 It actually probes your public IP, bind a port on NAT machine to your local machine
 It requires a server for NAT traversal
NAT with
STUN
TURN
 Sometimes peer-peer connection fails because of some of the following reasons
 Firewalls blocking peer-peer connections because of custom ports
 NAT device not allowing ports binding
 State restrictions based on type of traffic
 TURN(Traversal Using Relay Network) provide a fallback mechanism if peer-peer connection fails
 It requires a Relay Server to act as a relay data among different machines
 Ensures that calling works in almost all of the environments
NAT with
TURN
ICE(Interactive Connectivity Establishment)
 ICE is basically a mechanism to find multiple paths to communicate
 It also provides costs of different paths so that all parties use optimal paths to communicate and
user experience is improved
 Intention is to find best route between caller and callee.
 It leverages STUN to find routes
Topologies
supported
One-One Call
Mesh: Small N-way call
Star: Medium N-way call
MCU(Multipoint Conferencing Unit):
N-way call
Questions?

More Related Content

PPTX
Communication Mechanisms, Past, Present & Future
PPTX
Transmission Control Protocol and User Datagram protocol
PPTX
Client server chat application
PPTX
Client server chat application
PPTX
Multiuser chat application using java
PPT
Multi user chat system using java
PPTX
Html5 rtc 2
PPTX
Chat server nitish nagar
Communication Mechanisms, Past, Present & Future
Transmission Control Protocol and User Datagram protocol
Client server chat application
Client server chat application
Multiuser chat application using java
Multi user chat system using java
Html5 rtc 2
Chat server nitish nagar

What's hot (20)

PDF
Messaging for IoT
PPT
Lan chat system
PDF
Websocket
PDF
JavaZone 2016 : MQTT and CoAP for the Java Developer
PPTX
web communication protocols in IoT
PPTX
Socket programming in C#
PPTX
PPTX
Networking Project(FINAL)
PDF
RIPP Notes
PPT
Client server chat
PPT
Web services
PDF
Software Defined Networking - 1
PPTX
video conference (peer to peer)
PPTX
Socket programming or network programming
PPT
Networking chapter II
PDF
Internet layer security protocol & IPsec
PPTX
Network testing course
PPTX
ProMan(Project Management in python language using KIVY platform)
PPTX
Networking protocols
PPT
Lecture application layer
Messaging for IoT
Lan chat system
Websocket
JavaZone 2016 : MQTT and CoAP for the Java Developer
web communication protocols in IoT
Socket programming in C#
Networking Project(FINAL)
RIPP Notes
Client server chat
Web services
Software Defined Networking - 1
video conference (peer to peer)
Socket programming or network programming
Networking chapter II
Internet layer security protocol & IPsec
Network testing course
ProMan(Project Management in python language using KIVY platform)
Networking protocols
Lecture application layer
Ad

Similar to WebRTC Introduction & Basics (20)

PPTX
WebRTC presentation
PPTX
Nat traversal in WebRTC context
PDF
Exploring the Possibilities of Sencha and WebRTC
PPTX
WebRTC
PDF
WebRTC: Building plugin-free, real-time web applications
PPTX
WebRTC overview
PDF
Spring Boot for WebRTC Signaling Servers: A Comprehensive Guide
PPT
Web-RTC Based Conferencing Application
PDF
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
PDF
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
PDF
WebRTC Videobroadcasting
PPTX
WebRTC in action
PPTX
Intro to WebRTC
PPTX
WebRTC Seminar Report
PPTX
Webrtc in Real world
PDF
WebRTC eduCONF
PDF
GÉANT TURN pilot
PDF
Unified_Cloud_Comm_Presentation anil singh ppt
PDF
WebRTC
PDF
Janus/SIP @ OpenSIPS 2019
WebRTC presentation
Nat traversal in WebRTC context
Exploring the Possibilities of Sencha and WebRTC
WebRTC
WebRTC: Building plugin-free, real-time web applications
WebRTC overview
Spring Boot for WebRTC Signaling Servers: A Comprehensive Guide
Web-RTC Based Conferencing Application
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
GiacomoVacca - WebRTC - troubleshooting media negotiation.pdf
WebRTC Videobroadcasting
WebRTC in action
Intro to WebRTC
WebRTC Seminar Report
Webrtc in Real world
WebRTC eduCONF
GÉANT TURN pilot
Unified_Cloud_Comm_Presentation anil singh ppt
WebRTC
Janus/SIP @ OpenSIPS 2019
Ad

More from Muhammad Ali (8)

PPTX
Introduction to Architectural Katas
PPTX
Domain Driven Design
PPTX
DBMS Modeling & Optimization
PPTX
Android architectural components
PDF
Architectural katas
PDF
Software Architecture Meetup introduction
PDF
Practicing DDD & CQRS
PDF
Introduction to Domain driven design
Introduction to Architectural Katas
Domain Driven Design
DBMS Modeling & Optimization
Android architectural components
Architectural katas
Software Architecture Meetup introduction
Practicing DDD & CQRS
Introduction to Domain driven design

Recently uploaded (20)

PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
System and Network Administraation Chapter 3
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
System and Network Administration Chapter 2
PDF
Digital Strategies for Manufacturing Companies
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Introduction to Artificial Intelligence
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPT
Introduction Database Management System for Course Database
PPTX
ai tools demonstartion for schools and inter college
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Nekopoi APK 2025 free lastest update
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Odoo Companies in India – Driving Business Transformation.pdf
System and Network Administraation Chapter 3
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Design an Analysis of Algorithms I-SECS-1021-03
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
System and Network Administration Chapter 2
Digital Strategies for Manufacturing Companies
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
2025 Textile ERP Trends: SAP, Odoo & Oracle
Which alternative to Crystal Reports is best for small or large businesses.pdf
Introduction to Artificial Intelligence
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Wondershare Filmora 15 Crack With Activation Key [2025
Introduction Database Management System for Course Database
ai tools demonstartion for schools and inter college
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Nekopoi APK 2025 free lastest update

WebRTC Introduction & Basics

  • 2. WebRTC  WebRTC is FOSS that provides browsers and mobile applications with Real Time Communication capabilities via simple API’s  It is supported by almost all modern browsers  Mobile applications & desktop applications can also embed WebRTC without much hassle  It leverages multiple protocols and standards like  TURN/STUN(Traversal Using Relay NAT/Session Traversal Utilities for NAT)  ICE(Interactive Connectivity Establishment)  SIP(Session Initiation Protocol)  SDP(Session Description Protocol)  It is a project supported by Google, Mozilla & Opera
  • 3. WebRTC  It can be used for low cost, high quality audio, video & data communication  WebRTC itself is written in C++  Available for android and iOS integration without any hassle  RTCPeerConnection is the heart of WebRTC, handles lots of things including
  • 4. Connection Process  Caller creates an offer SDP using some constraints  Send this SDP to the callee via some signaling mechanism  Callee accepts the offer and generate an answer SDP  Answer SDP is sent to caller using some signaling mechanism  Meanwhile both caller and callee discovers ICE candidates and exchange them with each others using signaling mechanism  Both machines have 2 SDP’s, i.e. local and remote  Both machines have ICE candidates from each other  WeRTC connects both machines using ICE Candidates  Connection is Peer-Peer.
  • 5. Signaling Mechanism  Signaling is required to transmit following from caller to callee and vice versa  Session Description  ICE Candidates  It can use any protocol & messaging mechanism  XMPP has an XEP for this called Jingle  You can use WebSockets for this as well.  WebRTC doesn’t restrict any protocol  Signaling is lightweight, it doesn’t transmit voice, video or data, instead it only transmits SDP’s and Candiates
  • 8. NAT  Network Address Translation is a process in which a device(usually firewall) assigns a public IP to a computer or group of computers inside a private network.  Main purpose of NAT is to limit the number of public IP addresses a network or organization must use.  Symmetric NAT also map a specific port network’s public IP, every time a new connection is made a new port will be mapped.
  • 9. NAT continued  If systems are behind NAT then simply sending candidates doesn’t work  If candidates are local IP addresses and ports and both machines resides on different private networks then they won’t be able to connect.  We somehow need to know the public IP of the caller and a port mapped to that public IP.  Similarly we need to know the same information on second public
  • 11. STUN  STUN(Session Traversal Utilities for NAT) provides a set of tools for NAT traversal.  It actually probes your public IP, bind a port on NAT machine to your local machine  It requires a server for NAT traversal
  • 13. TURN  Sometimes peer-peer connection fails because of some of the following reasons  Firewalls blocking peer-peer connections because of custom ports  NAT device not allowing ports binding  State restrictions based on type of traffic  TURN(Traversal Using Relay Network) provide a fallback mechanism if peer-peer connection fails  It requires a Relay Server to act as a relay data among different machines  Ensures that calling works in almost all of the environments
  • 15. ICE(Interactive Connectivity Establishment)  ICE is basically a mechanism to find multiple paths to communicate  It also provides costs of different paths so that all parties use optimal paths to communicate and user experience is improved  Intention is to find best route between caller and callee.  It leverages STUN to find routes
  • 16. Topologies supported One-One Call Mesh: Small N-way call Star: Medium N-way call MCU(Multipoint Conferencing Unit): N-way call