SlideShare a Scribd company logo
1 of 17
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

What's hot

Lan chat system
Lan chat systemLan chat system
Lan chat systemWipro
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperMark West
 
web communication protocols in IoT
web communication protocols in IoTweb communication protocols in IoT
web communication protocols in IoTFabMinds
 
Socket programming in C#
Socket programming in C#Socket programming in C#
Socket programming in C#Nang Luc Vu
 
Networking Project(FINAL)
Networking Project(FINAL)Networking Project(FINAL)
Networking Project(FINAL)Priyojit Das
 
Client server chat
Client server chatClient server chat
Client server chatFreelancer
 
Software Defined Networking - 1
Software Defined Networking - 1Software Defined Networking - 1
Software Defined Networking - 1Pradeep Kumar TS
 
video conference (peer to peer)
video conference (peer to peer)video conference (peer to peer)
video conference (peer to peer)mohamed amr
 
Socket programming or network programming
Socket programming or network programmingSocket programming or network programming
Socket programming or network programmingMmanan91
 
Internet layer security protocol & IPsec
Internet layer security protocol & IPsecInternet layer security protocol & IPsec
Internet layer security protocol & IPsecKirti Ahirrao
 
Network testing course
Network testing courseNetwork testing course
Network testing coursetcpipguru
 
ProMan(Project Management in python language using KIVY platform)
ProMan(Project Management in python language using KIVY platform)ProMan(Project Management in python language using KIVY platform)
ProMan(Project Management in python language using KIVY platform)manojsonkar
 
Networking protocols
Networking protocolsNetworking protocols
Networking protocolsBalayogi G
 
Lecture application layer
Lecture application layerLecture application layer
Lecture application layerHasam Panezai
 

What's hot (20)

Messaging for IoT
Messaging for IoTMessaging for IoT
Messaging for IoT
 
Lan chat system
Lan chat systemLan chat system
Lan chat system
 
Websocket
WebsocketWebsocket
Websocket
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java DeveloperJavaZone 2016 : MQTT and CoAP for the Java Developer
JavaZone 2016 : MQTT and CoAP for the Java Developer
 
web communication protocols in IoT
web communication protocols in IoTweb communication protocols in IoT
web communication protocols in IoT
 
Socket programming in C#
Socket programming in C#Socket programming in C#
Socket programming in C#
 
Java
Java Java
Java
 
Networking Project(FINAL)
Networking Project(FINAL)Networking Project(FINAL)
Networking Project(FINAL)
 
RIPP Notes
RIPP NotesRIPP Notes
RIPP Notes
 
Client server chat
Client server chatClient server chat
Client server chat
 
Web services
Web servicesWeb services
Web services
 
Software Defined Networking - 1
Software Defined Networking - 1Software Defined Networking - 1
Software Defined Networking - 1
 
video conference (peer to peer)
video conference (peer to peer)video conference (peer to peer)
video conference (peer to peer)
 
Socket programming or network programming
Socket programming or network programmingSocket programming or network programming
Socket programming or network programming
 
Networking chapter II
Networking chapter IINetworking chapter II
Networking chapter II
 
Internet layer security protocol & IPsec
Internet layer security protocol & IPsecInternet layer security protocol & IPsec
Internet layer security protocol & IPsec
 
Network testing course
Network testing courseNetwork testing course
Network testing course
 
ProMan(Project Management in python language using KIVY platform)
ProMan(Project Management in python language using KIVY platform)ProMan(Project Management in python language using KIVY platform)
ProMan(Project Management in python language using KIVY platform)
 
Networking protocols
Networking protocolsNetworking protocols
Networking protocols
 
Lecture application layer
Lecture application layerLecture application layer
Lecture application layer
 

Similar to WebRTC Introduction & Basics

Computer networks - CBSE New Syllabus (083) Class - XII
Computer networks - CBSE  New Syllabus (083) Class - XIIComputer networks - CBSE  New Syllabus (083) Class - XII
Computer networks - CBSE New Syllabus (083) Class - XIIDeepak Singh
 
IMD 251 - Networking
IMD 251 - NetworkingIMD 251 - Networking
IMD 251 - Networkingisma ishak
 
Wireless application protocol
Wireless application protocolWireless application protocol
Wireless application protocolShweta Sharma
 
Network architecture
Network architectureNetwork architecture
Network architecturecsk selva
 
Networking Fundamentals
Networking Fundamentals Networking Fundamentals
Networking Fundamentals Vikas Gupta
 
Adhoc mobile wireless network enhancement based on cisco devices
Adhoc mobile wireless network enhancement based on cisco devicesAdhoc mobile wireless network enhancement based on cisco devices
Adhoc mobile wireless network enhancement based on cisco devicesIJCNCJournal
 
Introduction to Computer Networks and Network Security.pptx
Introduction to Computer Networks and Network Security.pptxIntroduction to Computer Networks and Network Security.pptx
Introduction to Computer Networks and Network Security.pptxShehanMarasinghe1
 
Networrrrrrrrkkkk secuiiirtyyyyyyyyyyyyyyyyyyyy
Networrrrrrrrkkkk secuiiirtyyyyyyyyyyyyyyyyyyyyNetworrrrrrrrkkkk secuiiirtyyyyyyyyyyyyyyyyyyyy
Networrrrrrrrkkkk secuiiirtyyyyyyyyyyyyyyyyyyyyAvishek Maitra
 
Network Security
Network SecurityNetwork Security
Network SecurityJaya sudha
 
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriyaIPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriyaVijiPriya Jeyamani
 
Introduction to OSI and QUIC
Introduction to OSI and QUICIntroduction to OSI and QUIC
Introduction to OSI and QUICFarzad Soltani
 
Network architecture - part-I
Network architecture - part-INetwork architecture - part-I
Network architecture - part-Icsk selva
 
BASIC TO ADVANCED NETWORKING TUTORIALS
BASIC TO ADVANCED NETWORKING TUTORIALSBASIC TO ADVANCED NETWORKING TUTORIALS
BASIC TO ADVANCED NETWORKING TUTORIALSVarinder Singh Walia
 
ETE405-lec7.pptx
ETE405-lec7.pptxETE405-lec7.pptx
ETE405-lec7.pptxmashiur
 
Basic ccna interview questions and answers ~ sysnet notes
Basic ccna interview questions and answers ~ sysnet notesBasic ccna interview questions and answers ~ sysnet notes
Basic ccna interview questions and answers ~ sysnet notesVamsi Krishna Kalavala
 
2014 innovaphone different protocols for different things
2014 innovaphone different protocols for different things2014 innovaphone different protocols for different things
2014 innovaphone different protocols for different thingsVOIP2DAY
 
Internet basics and Cloud Computing- Manish Jha
Internet basics and Cloud Computing- Manish JhaInternet basics and Cloud Computing- Manish Jha
Internet basics and Cloud Computing- Manish Jhamanish jha
 

Similar to WebRTC Introduction & Basics (20)

Computer networks - CBSE New Syllabus (083) Class - XII
Computer networks - CBSE  New Syllabus (083) Class - XIIComputer networks - CBSE  New Syllabus (083) Class - XII
Computer networks - CBSE New Syllabus (083) Class - XII
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 
IMD 251 - Networking
IMD 251 - NetworkingIMD 251 - Networking
IMD 251 - Networking
 
Wireless application protocol
Wireless application protocolWireless application protocol
Wireless application protocol
 
Network architecture
Network architectureNetwork architecture
Network architecture
 
Networking Fundamentals
Networking Fundamentals Networking Fundamentals
Networking Fundamentals
 
Adhoc mobile wireless network enhancement based on cisco devices
Adhoc mobile wireless network enhancement based on cisco devicesAdhoc mobile wireless network enhancement based on cisco devices
Adhoc mobile wireless network enhancement based on cisco devices
 
Introduction to Computer Networks and Network Security.pptx
Introduction to Computer Networks and Network Security.pptxIntroduction to Computer Networks and Network Security.pptx
Introduction to Computer Networks and Network Security.pptx
 
Mcse question
Mcse questionMcse question
Mcse question
 
Networrrrrrrrkkkk secuiiirtyyyyyyyyyyyyyyyyyyyy
Networrrrrrrrkkkk secuiiirtyyyyyyyyyyyyyyyyyyyyNetworrrrrrrrkkkk secuiiirtyyyyyyyyyyyyyyyyyyyy
Networrrrrrrrkkkk secuiiirtyyyyyyyyyyyyyyyyyyyy
 
Network Security
Network SecurityNetwork Security
Network Security
 
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriyaIPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
IPT Chapter 2 Web Services and Middleware - Dr. J. VijiPriya
 
Introduction to OSI and QUIC
Introduction to OSI and QUICIntroduction to OSI and QUIC
Introduction to OSI and QUIC
 
Network architecture - part-I
Network architecture - part-INetwork architecture - part-I
Network architecture - part-I
 
BASIC TO ADVANCED NETWORKING TUTORIALS
BASIC TO ADVANCED NETWORKING TUTORIALSBASIC TO ADVANCED NETWORKING TUTORIALS
BASIC TO ADVANCED NETWORKING TUTORIALS
 
ETE405-lec7.pptx
ETE405-lec7.pptxETE405-lec7.pptx
ETE405-lec7.pptx
 
Basic ccna interview questions and answers ~ sysnet notes
Basic ccna interview questions and answers ~ sysnet notesBasic ccna interview questions and answers ~ sysnet notes
Basic ccna interview questions and answers ~ sysnet notes
 
nv.ppt
nv.pptnv.ppt
nv.ppt
 
2014 innovaphone different protocols for different things
2014 innovaphone different protocols for different things2014 innovaphone different protocols for different things
2014 innovaphone different protocols for different things
 
Internet basics and Cloud Computing- Manish Jha
Internet basics and Cloud Computing- Manish JhaInternet basics and Cloud Computing- Manish Jha
Internet basics and Cloud Computing- Manish Jha
 

More from Muhammad Ali

Introduction to Architectural Katas
Introduction to Architectural KatasIntroduction to Architectural Katas
Introduction to Architectural KatasMuhammad Ali
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignMuhammad Ali
 
DBMS Modeling & Optimization
DBMS Modeling & OptimizationDBMS Modeling & Optimization
DBMS Modeling & OptimizationMuhammad Ali
 
Android architectural components
Android architectural componentsAndroid architectural components
Android architectural componentsMuhammad Ali
 
Architectural katas
Architectural katasArchitectural katas
Architectural katasMuhammad Ali
 
Software Architecture Meetup introduction
Software Architecture Meetup introductionSoftware Architecture Meetup introduction
Software Architecture Meetup introductionMuhammad Ali
 
Practicing DDD & CQRS
Practicing DDD & CQRSPracticing DDD & CQRS
Practicing DDD & CQRSMuhammad Ali
 
Introduction to Domain driven design
Introduction to Domain driven designIntroduction to Domain driven design
Introduction to Domain driven designMuhammad Ali
 

More from Muhammad Ali (8)

Introduction to Architectural Katas
Introduction to Architectural KatasIntroduction to Architectural Katas
Introduction to Architectural Katas
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
DBMS Modeling & Optimization
DBMS Modeling & OptimizationDBMS Modeling & Optimization
DBMS Modeling & Optimization
 
Android architectural components
Android architectural componentsAndroid architectural components
Android architectural components
 
Architectural katas
Architectural katasArchitectural katas
Architectural katas
 
Software Architecture Meetup introduction
Software Architecture Meetup introductionSoftware Architecture Meetup introduction
Software Architecture Meetup introduction
 
Practicing DDD & CQRS
Practicing DDD & CQRSPracticing DDD & CQRS
Practicing DDD & CQRS
 
Introduction to Domain driven design
Introduction to Domain driven designIntroduction to Domain driven design
Introduction to Domain driven design
 

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

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