Evaluating Google's Congestion Control for WebRTC

23d1ad8982616babb4d5b60470eea8a4?s=47 Varun Singh
November 06, 2013

Evaluating Google's Congestion Control for WebRTC

Varun Singh*, Albert Lozano, Joerg Ott.
Vancouver, IETF88
RMCAT WG.

23d1ad8982616babb4d5b60470eea8a4?s=128

Varun Singh

November 06, 2013
Tweet

Transcript

  1. Receiver-side Real-Time Congestion Control (RRTCC) Google Congestion Control Algorithm IETF

    88, Vancouver 06th November Varun Singh, Albert Lozano, Jörg Ott
  2. Outline •  Related Drafts: –  draft-alvestrand-rmcat-congestion –  draft-alvestrand-rmcat-remb-02 •  Single

    Flow –  Different losses, latency, queue length •  3 RMCAT flows –  Start together –  Start at 30s apart •  RMCAT vs long TCP flows 2
  3. Evaluation Setup Chrome Browser v27.01453.12 Foreman CIF, 30FPS 5-10 minutes

    fakevideosource! Chrome Browser v27.01453.12 Network Video, FEC, RETX à ß RTCP Feedback (every 1s) http://media.xiph.org/video/derf/ 3 StatsAPI (every 1s) tcpdump! https://github.com/vr000m/ConMon
  4. Single flow •  Fixed capacity with different 1.  path latencies

    2.  path losses 3.  router queue size 4
  5. Different Latencies 0 500 1000 1500 2000 2500 3000 3500

    4000 0 50 100 150 200 250 300 Observed rate [kbps] Time [s] 50ms 100ms 200ms 500ms 5
  6. Different Loss 0 500 1000 1500 2000 2500 3000 3500

    0 50 100 150 200 250 300 Observed rate [kbps] Time [s] 1% 5% 10% 20% 6
  7. Different Queue Size 7 Link Capacity = Link Capacity =

  8. 3 RMCAT streams 8 0 200 400 600 800 1000

    1200 1400 1600 1800 2000 2200 0 50 100 150 200 250 300 Observed rate [kbps] Time [s] Call 1 Call 2 Call 3 0 500 1000 1500 2000 2500 0 50 100 150 200 250 300 Observed rate [kbps] Time [s] Call 1 Call 2 Call 3
  9. 3 RMCAT flows (time-shifted arrival) 0 500 1000 1500 2000

    2500 3000 0 50 100 150 200 250 300 Observed rate [kbps] Time [s] Call 1 Call 2 Call 3 9 In all the cases, the first call reduced its rate In 20% of the cases it recovered after ~50s.
  10. TCP and RMCAT 10 0 200 400 600 800 1000

    1200 1400 1600 1800 0 50 100 150 200 250 300 Observed rate [kbps] Time [s] Stream A->B Stream B->A 0 0.2 0.4 0.6 0.8 1 0 50 100 150 200 250 300 Delay Variation [s] time [s] Stream A->B Stream B->A
  11. Observations •  Up to 20% the average send rate can

    be FEC •  Retransmissions (retx) – Used extensively in low latency scenarios. •  Observed starvation when competing with TCP traffic •  In self-fairness, first flow starves sometimes. 11
  12. Additional Reading •  Performance Analysis of Receive-Side Real-Time Congestion Control

    for WebRTC, Singh et al. http://www.netlab.tkk.fi/~varun/singh2013rrtcc.pdf •  Experimental Investigation of the Google Congestion Control for Real-Time Flows, Cicco et al. http://conferences.sigcomm.org/sigcomm/2013/papers/fhmn/p21.pdf •  Performance analysis of topologies for Web- based Real-Time Communication (WebRTC), A. Lozano https://aaltodoc.aalto.fi/bitstream/handle/123456789/11093/master_Abell%C3%B3_Lozano_Albert_2013.pdf?sequence=1 •  Understanding the Dynamic Behaviour of the Google Congestion Control, Cicco et al. 12 Initial NS-2 Results: http://www.netlab.tkk.fi/~varun/rrtcc-tcp-competition-00.pdf