What is WebRTC

What is WebRTC

Aug 7, 2020

communicate in 200ms for live video.

pieced to gether unrelated parts

Generic Description: real time communication between browsers and mobile.

now used to conferencing apps. talk from one persone to another.

  • can do many interesting things:
    • TOR’s snowflake. censorship circumvention (p2p traffic not dependent on server)
    • server-side proccessing (realtime processing of video/audio. subtitles etc)
    • P2P data transfer. http://pyget.com/about.html
    • augmented reality(hololense)

WebRTC API

  • SDP session description protocol declare properties about self.
    • I support these codecs
    • this is my ip
    • these are the streams (tracks) I am going to send you

How do I talk to you.

you have an IP that I cant directly access. I have no idea where you are. STUN server.

  • send a UDP packet to StunServer on :5000<>:5000 punches a permanent hole through NAT sned a packet to NATB forwarded through to browser.
  • now can reply

ORTC API

RTCPeenConnection

  • SRTP

    Sending video buffers of UDP losing 3% randomly stopping

    • Jitter buffer
    • ability to account for loss
      • adjust amount of delay dynamically.
        • waits for packets to arrive
        • raise and lower latency
        • ask for resending of lost packets.
          • inside the latency time frame

DATAChannel

  • SCTP

    • Data transfer
    • send binary back and forward, account for loss.
    • negotiate a channel
      • decide the parameters of the channel (lossy?)

DTLS

How do we communicate with people listening in the middle

  • TLS that accounts for loss
  • DH encryption
  • share states even if someone is eves-dropping they can’t steal

ICE

  • how do I talk to you?

STUN

punched hole through NAT

  • UDP

    • Lossy connection
    • enables it to be fast?

TURN

B establish session with turn server A sends packets through turn server.

  • TCP

  • RTP Framing

Ever changing.

Pion-webrtc

Current WebRTC designed with incumbent application in mind

  • no access to send arbitrary video
  • no access to bring own decoder.

All in Go.