Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MPRTP: Multipath Considerations for Real-time Media

MPRTP: Multipath Considerations for Real-time Media

Presented at MMSys'13. http://www.mmsys.org/?q=node/83/#10

Varun Singh

March 01, 2013
Tweet

More Decks by Varun Singh

Other Decks in Research

Transcript

  1. MPRTP: Multipath Considerations for Real-time Media Varun Singh, Saba Ahsan,

    Jörg Ott Aalto University {firstname.lastname}@aalto.fi MMSys, 2013 (Oslo, Norway) 01 March 2013
  2. Quick Introduction to Real-time Transport Protocol (RTP) •  Widely used

    for telephony, conferencing … •  Often used over best-effort UDP/IP networks •  RTP provides playout timing and packet sequencing •  Reception quality feedback every few seconds (RTCP) •  RTCP provides higher-level summary feedback ( jitter, fractional loss, RTT, last packet received packets sent, octets sent)
  3. Basic Idea of MPRTP •  Exploit multiple (at least partly

    disjoint) paths between two unicast RTP endpoints A B Multiple paths = multiple interfaces
  4. Goals: What to use them for? •  Aggregate Throughput • 

    Load balancing – Instead of reducing the rate, shift it to other paths. •  Fault tolerance
  5. Goals: Compatibility •  Keep the “application interface” of RTP – i.e.,

    do not require applications to do anything •  Keep the RTP/RTCP flow properties – i.e., do not confuse middleboxes, monitors, … that see packets on a single path only
  6. Why Extend RTP? •  RTCP stats are insufficient to perform

    scheduling •  Don’t know which packets were scheduled on which path?
  7. Contributions •  Scheduling algorithm •  Adaptive playout (for mismatch in

    path RTT) •  Performance analysis in various scenarios •  System Considerations – Session setup
  8. Scheduling Algorithm •  Calculate Receiver Rate for each path • 

    Sort paths based on •  Characterize paths based on loss and discards* –  No Losses or discards: non-congested –  RTCP reports losses/discards: mildly congested –  3 consecutive RTCP reports of losses/discards: congested •  Ignore paths where RTT > max_end_to_end_delay [CB] http://tools.ietf.org/html/draft-ietf-avtcore-rtp-circuit-breakers *discards: packets that arrive late are discarded throughput delay
  9. Scheduling Algorithm •  If an I-frame/NACK, schedule on path with

    –  Available throughput –  High –  lowest loss rate. •  All packets belonging to a video frame are sent on the same subflow •  Fractional Distribution for each path is Path_ RR Path_ RR ∑ × Media_ Rate throughput delay
  10. Evaluation Setup MPRTP Sender MPRTP Receiver Router A1 Router B1

    Router C1 Router A2 Router B2 Router C2 NETEM to vary Path Characteristics Video: Foreman Average Rate: 1Mbps, FPS: 30, Duration: 265s Only I- and P-frames
  11. Paths with different RTT Bit rate Ratio per path time

    in sec 0 0.2 0.4 0.6 0.8 1 0 50 100 150 200 250 max_end_to_end_delay = 400ms optimum_end_to_end_delay = 150ms 50 ms 150 ms 250 ms Use path for ARQ, I-frames Increasing traffic distribution
  12. WLAN + 3G Ratio time (s) 0 0.2 0.4 0.6

    0.8 1 0 20 40 60 80 100 120 140 160 180 200 220 240 260 bitrate (kbps) Path A (3G) Link Capacity 0 250 500 750 1000 bitrate (kbps) Path B (WLAN) 0 250 500 750 1000 PSNR: MPRTP: 46.72 ± 0.21 (Single path): 48.427
  13. Conclusions •  Exploiting multiple paths without performance degradation •  Enables

    load distribution and capacity aggregation – Scheduling algorithm – Adaptive playout •  Future Work: Coupled Congestion Control
  14. Call to action [Extra Slide] •  Extend your RTP library

    with MPRTP extensions: •  Review/Comment/Feedback –  http://tools.ietf.org/html/draft-singh-avtcore-mprtp –  http://tools.ietf.org/html/draft-singh-mmusic-mprtp- sdp-extension •  Implement MPRTP in diverse usage scenarios –  SVC, Group communication, etc…
  15. Alpha and Beta [Extra Slide] 0 10 20 30 40

    50 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 stabilizing time (s) α β<0.7 β=0.7 β=0.8 β=0.9
  16. Adaptive RTCP Interval [Extra Slide] 0 1 2 3 4

    5 6 0 10 20 30 40 50 60 70 80 90 100 RTCP Interval (s) time (s) Startup Congestion MPRTCP timeout
  17. Where Do Paths Come From? [Extra Slide] •  Multiple host

    interfaces – Learned from the OS – Learned from ICE procedures •  Overlay paths (e.g., TURN) •  Network paths – Learned by some routing magic