Slide 1

Slide 1 text

RTC Performance Monitoring and Management Varun Singh @vr000m, @callstatsio Paris, 15th December 2014 Paris, 18th December 2014

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Latency kills http://geek-and-poke.com/ 3

Slide 4

Slide 4 text

4 The network burped

Slide 5

Slide 5 text

Gameplan •  Do nothing à It is someone else’s problem – Insufficient Capacity à upgrade plan – Misbehaving Browser à update or change – Or… NATs/Firewall – Other customer’s ISP 5

Slide 6

Slide 6 text

Gameplan 1.  Do nothing 2.  Wait for feedback/emails customers 3.  Active Monitoring –  RTCP monitoring –  WebRTC StatsAPI 6

Slide 7

Slide 7 text

Manual data gathering •  Use chrome://webrtc-internals •  User monitors their session 7

Slide 8

Slide 8 text

RTCP Monitoring 8 Endpoint Endpoint Middlebox MCU, SFU, TURN, … Monitor Monitor Monitor Third party Monitor Operations & Management System http://tools.ietf.org/html/rfc6792 https://tools.ietf.org/html/draft-ietf-xrblock-rtcweb-rtcp-xr-metrics Implement RTCP Extension Reports

Slide 9

Slide 9 text

WebRTC Stats API •  pc.getStats() – ICE Transport metrics – Audio metrics – Video metrics – Data channel metrics – … •  Configure settings via RtpSender and RtpReceiver. 9 http://w3c.github.io/webrtc-stats/

Slide 10

Slide 10 text

Performance Monitoring – Annoyances – Call setup time, call failures, NAT traversal •  Transport quality – Relayed or not – Session throughput, delay and loss •  Per-stream media quality – Quality Models, MoS, User feedback 10

Slide 11

Slide 11 text

Annoyances Your Infrastructure 11

Slide 12

Slide 12 text

Transport Metrics 12

Slide 13

Slide 13 text

13 Media Quality

Slide 14

Slide 14 text

Connectivity 14 NetradarActive measurement platform http://www.netradar.org/en

Slide 15

Slide 15 text

Adaptivity Sender Receiver RTP Media stream (coded media, FEC, repair) RTCP Sender Reports •  Timing, synchronization •  Data rate, packet count •  “Traffic characteristics” RTCP Receiver Reports •  Long-term rough statistics •  Detailed statistics •  Instant event notifications •  Congestion information •  Dejittering, sync, playout •  Monitoring + reporting •  Instant event notifications •  Local error concealment Short-term adaptation •  Retransmissions •  Adaptive FEC •  Congestion control •  Temporal scaling •  Adaptive or switching video Long-term adaptation •  Codec choice •  Packetization size •  Flexible FEC, interleaving •  Simulcast Set 3rd Party “QoS” Monitor

Slide 16

Slide 16 text

Stream unusable Follow this work in RMCAT WG, https://tools.ietf.org/wg/rmcat/

Slide 17

Slide 17 text

Management •  Endpoint –  Congestion control –  Simulcast/SVC –  DSCP markings •  WebRTC Infra management –  TURN server –  Conference server (MCU, SFU, …) •  Network Management –  DPI à SNMP –  SDN/NFV 17

Slide 18

Slide 18 text

Measurement Architecture 18 Browser Internals (WebRTC Stack) Browser Internals (WebRTC Stack) WebRTC API WebRTC API APP APP WebRTC Server Signaling Protocol (e.g., SIP, Jingle, …) PeerConnection SRTP/DTLS/UDP Data/SCTP/DTLS/UDP Network Monitoring •  TURN •  Gateway Client Monitoring STATS API Monitoring Server HTTP or WebSockets HTTP, IPFIX, or NetFlow RTCP XR

Slide 19

Slide 19 text

19 Gather Report Analyze FIX Deploy? webrtc-internal? via email? Has this been reported before? Did it solve the issue? Until next report? Collect Diagnose Fix Deploy

Slide 20

Slide 20 text

Scaling Infrastructure •  Monitoring meets adaptivity •  Docker or containers for signaling, SFUs, TURN infrastructures

Slide 21

Slide 21 text

Follow us: @vr000m, @callstatsio https://www.facebook.com/callstats.io