Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions webrtc-explained.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,10 @@ Protocol used by WebRTC Data Channels.

Provides:
- multiple streams
- partial reliability
- configurable reliability
- no head-of-line blocking

Runs inside DTLS.
Runs inside DTLS. Can be configured to be TCP-like or UDP-like or anything in between.

## DTLS (Datagram TLS)
TLS over UDP.
Expand All @@ -78,6 +78,8 @@ Used for:
- securing SCTP
- securing SRTP

DTLS does not typically go through CA Root Verification in WebRTC; it is verified in the signalling phase using the key fingerprint.

## mDNS
Masks local LAN IP addresses for privacy (e.g. *.local hostnames).

Expand Down Expand Up @@ -126,3 +128,13 @@ Commonly includes:
- timers
- UUID helpers


## Interoperability
Check [WebRTC interoperability tests](https://github.com/sipsorcery/webrtc-interop) for samples in other WebRTC libraries like libwebrtc, pion, SipSorcery and whether they can interoperate with each other.

## Extras
### Selective Forwarding Unit (SFU)
This is not peer-to-peer WebRTC; a central server manages the media streams. This is how certain "mute" functions or noise detection is implemented in multiuser video conferencing. Used to restrict audio/video flow from users, due to administrative controls or due to being "idle" in a video/audio call.

### Multipoint Control Unit (MCU)
This is an alternate architecture to the above, still not peer to peer but the central server itself takes the responsibility to mix/re-encode the streams.
6 changes: 3 additions & 3 deletions webrtc-signaling-explained.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ This includes exchanging:
WebRTC peers cannot discover each other on their own.

They need to:
- agree on codecs and media setup
- agree on codecs, media and datachannel setup
- share network information
- exchange security fingerprints

Expand Down Expand Up @@ -75,7 +75,7 @@ Contain:
6. Peer B sends Answer back via signaling channel
7. Both sides exchange ICE Candidates
8. ICE finds a working route
9. Peers connect directly
9. Peers connect directly (or through a TURN relay, but still end-to-end encrypted)


## Signaling Server Responsibilities
Expand All @@ -95,7 +95,7 @@ It does *not*:

Once the WebRTC connection is established:
- the signaling server is no longer required
- peers communicate directly (unless TURN is used)
- peers communicate directly (unless TURN is used when the peers are behind restrictive NAT)


## Simplified Diagram
Expand Down
Loading