Multicast for Video Streaming


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • b
  • Multicast for Video Streaming

    1. 1. Multicast for Video Streaming EE290T Spring 2002 Puneet Mehra [email_address]
    2. 2. IP Multicast Overview <ul><li>Semantics </li></ul><ul><ul><li>1 -> Many or Many -> Many </li></ul></ul><ul><li>Approach </li></ul><ul><ul><li>Build tree connecting source and receivers on </li></ul></ul><ul><li>Current Infrastructure in Net [1] </li></ul><ul><ul><li>Group Addressing – provides flexibility </li></ul></ul><ul><ul><ul><li>Receivers/senders unaware of each other </li></ul></ul></ul><ul><ul><li>Packets delivered throughout tree. </li></ul></ul><ul><ul><li>Dynamic changes to tree </li></ul></ul><ul><ul><ul><li>New Receiver -> graft path onto tree </li></ul></ul></ul><ul><ul><ul><li>Receiver leaving -> pruning path from tree </li></ul></ul></ul><ul><ul><li>Uses UDP – so no reliability </li></ul></ul><ul><li>Challenges </li></ul><ul><ul><li>Efficient routing of data to receivers </li></ul></ul>
    3. 3. Video Multicast Over Net[1] <ul><li>Issues in Multicast over Best Effort </li></ul><ul><ul><li>Fixed Frame Rate – regardless of delay/jitter </li></ul></ul><ul><ul><li>Losses – degradation, possibly ungraceful </li></ul></ul><ul><ul><li>Heterogeneity of receivers </li></ul></ul><ul><li>Approaches to Multicast </li></ul><ul><ul><li>QoS resource reservation for Multicast </li></ul></ul><ul><ul><li>Adaptive Rate Control </li></ul></ul><ul><li>Techniques for Rate Adaptation </li></ul><ul><ul><li>Single Stream Video Multicast </li></ul></ul><ul><ul><li>Replicated Stream Video Multicast </li></ul></ul><ul><ul><li>Layered Video Multicast </li></ul></ul>
    4. 4. Single Stream Video Multicast <ul><li>Only send 1 stream to all receivers. </li></ul><ul><li>Pros: </li></ul><ul><ul><li>Easy To Implement </li></ul></ul><ul><li>Cons: </li></ul><ul><ul><li>Ignores Receiver Heterogeneity </li></ul></ul><ul><ul><li>Feedback Implosion </li></ul></ul><ul><li>INRIA Video Conferencing System </li></ul><ul><ul><li>Feedback Problem handled through probabilistic receiver response </li></ul></ul><ul><ul><li>Tradeoff granularity of control vs B/W efficiency </li></ul></ul>
    5. 5. Efficiency Tradeoff in Single Stream Approach
    6. 6. Replicated-Stream Video Multicast <ul><li>Destination Set Group (DSG) </li></ul><ul><ul><li>Small # of video streams of varying quality sent to different multicast groups </li></ul></ul><ul><ul><li>Intra-stream Rate control to adjust stream rate by receivers </li></ul></ul><ul><ul><li>Inter-stream protocol used by receivers to switch streams </li></ul></ul><ul><li>Pros: </li></ul><ul><ul><li>deals with heterogeneity – more fair </li></ul></ul><ul><ul><li>Scalable since receiver-driven </li></ul></ul><ul><li>Cons: Network carries redundant info </li></ul>
    7. 7. Layered Video Multicast <ul><li>Receiver-Driven Layered Multicast (RLM) </li></ul><ul><ul><li>Send different “layers” to multicast groups, and receiver subscribes as needed -> scalable solution </li></ul></ul><ul><ul><li>Congestion -> layer dropping </li></ul></ul><ul><ul><li>Spare B/W -> layer adding </li></ul></ul><ul><ul><li>Receivers conduct group join experiments and share info with others. </li></ul></ul>
    8. 8. Layered Video Multicast Cont. <ul><li>Layered Video Multicast with Retrans. (LVMR) </li></ul><ul><ul><li>Improve reception w/in a layer by retransmission </li></ul></ul><ul><ul><li>Deal w/ congestion using Hierarchical Rate Control </li></ul></ul><ul><li>Hierarchical Rate Control (HRC) </li></ul><ul><ul><li>Congestion info distributed at both sender/receivers </li></ul></ul><ul><ul><li>Intelligent partitioning of info -> concurrent experiments w/ less overhead </li></ul></ul><ul><ul><li>Use hierarchy to only inform those who need to know about an experiment – affected regions </li></ul></ul><ul><ul><li>Collaborative layer drop – better approach to congestion </li></ul></ul>
    9. 9. Error Control in Video Multicast <ul><li>Pure FEC </li></ul><ul><li>ARQ – From LVMR </li></ul><ul><ul><li>Local Recovery - designated receivers at each level in tree help w/ rtx. of pkts -> lower latency </li></ul></ul><ul><ul><li>Don’t rtx packets past deadline </li></ul></ul><ul><ul><li>Receivers can trade reliability/latency by picking parent with desired attributes </li></ul></ul>
    10. 10. Multicast Routing [2,3] <ul><li>Routing – construct efficient tree from source to receivers </li></ul><ul><li>Theoretical Results [3] </li></ul><ul><ul><li>Steiner Tree – minimize total cost of a multicast tree. NP-Complete. So use heuristics to provide a “good” approx. to Steiner Tree. </li></ul></ul><ul><ul><li>Constrained Steiner Tree – impose b/w delay constraints on links to receivers. Also NP-Complete. So must use heuristics </li></ul></ul><ul><ul><li>All practical algorithms based on shortest path tree – minimize sum of weights on links along each path from source to receiver </li></ul></ul>
    11. 11. Intra-Domain Routing <ul><li>Source-based Routing </li></ul><ul><ul><li>Tree rooted at source </li></ul></ul><ul><ul><li>Dense-mode routing – works best when topology densely populated with receivers </li></ul></ul><ul><li>Core-based Approach </li></ul><ul><ul><li>Select a Rendezvous Point (RP) to root the tree </li></ul></ul><ul><ul><li>Sparse Mode Routing – More efficient than dense mode when few, wide-spread receivers </li></ul></ul>
    12. 12. Dense Mode Protocols <ul><li>Distance Vector Multicast Routing Protocol </li></ul><ul><ul><li>Uses broadcast & prune technique to build reverse shortest path trees (RSP) </li></ul></ul><ul><ul><li>Steps: </li></ul></ul><ul><ul><ul><li>Src bcasts pkt on Lan. Local router fwds pkt on all ifaces </li></ul></ul></ul><ul><ul><ul><li>If pkt received on RPF iface, then it is forwarded. </li></ul></ul></ul><ul><ul><ul><li>Leaf routers send prune toward src if no attached receivers </li></ul></ul></ul><ul><ul><ul><li>Prune message forwarded to source, and send own prune if receive prune message on all ifaces. </li></ul></ul></ul><ul><ul><li>A lot of state info kept in ALL routers in net. </li></ul></ul><ul><li>Multicast extensions to OSPF </li></ul><ul><ul><li>Uses IGMP locally, then floods info along with link state to net. </li></ul></ul><ul><li>PIM-DM </li></ul><ul><ul><li>Less complex than DVMRP since no RPF check is done. More inefficient as a result </li></ul></ul>
    13. 13. Tree Construction in DVMRP [3] <ul><li>S = Source. Black Circles = Receivers </li></ul><ul><li>Periodically flood net w/ datagrams </li></ul><ul><li>Leaf routers send prune toward source if there are no group members on leaf subnet </li></ul><ul><li>Final Tree is shown in (d). </li></ul>
    14. 14. Core-Based Routing <ul><li>General Approach </li></ul><ul><ul><li>A core, or rendezvous point (RP) is configured for a multicast group </li></ul></ul><ul><ul><li>Info about the RP & mapping from group to RP is discovered by routers using bootstrap protocol (also finds alternate RP in case of failure) </li></ul></ul><ul><ul><li>Receivers explicitly join tree -> contact RP </li></ul></ul><ul><ul><li>Src sends data to RP which sends down tree </li></ul></ul><ul><ul><li>More efficient since state only kept in routers on path from src/receivers to RP. </li></ul></ul><ul><li>Examples </li></ul><ul><ul><li>CBT – Core-Based Trees </li></ul></ul><ul><ul><li>PIM-SM – Protocol Independent Multicast/Sparse Mode </li></ul></ul>
    15. 15. Tree construction in CBT <ul><li>The Join Process for a new node </li></ul><ul><li>Receiver Contacts Local Router </li></ul><ul><li>Router sends JOIN_REQUEST to the core router </li></ul><ul><li>When msg reaches on-tree router, a JOIN_ACK is sent back </li></ul><ul><li>every router receiving JOIN_ACK updates state information </li></ul><ul><li>Periodically send echo-request to parent router. If echo not received in time, then router sends quit-notification upstream and deletes state information. </li></ul>
    16. 16. Inter-Domain Routing <ul><li>Probs w/ multicast described </li></ul><ul><ul><li>Large flat topology -> complexity and instability since no BGP-like protocol </li></ul></ul><ul><ul><li>No mechanism to build hierarchical mcast routing </li></ul></ul><ul><li>Solution – Immediate Future </li></ul><ul><ul><li>Introduce Hierarchy – multi-protocol extensions to BGP (MBGP) </li></ul></ul><ul><ul><ul><li>Each router only knows topology of its own domain & how to reach other domains </li></ul></ul></ul><ul><ul><ul><li>Used to determine next hop for a host </li></ul></ul></ul>
    17. 17. Inter-Domain Routing Cont. <ul><li>What if you have a src in one domain & receivers in others? </li></ul><ul><li>Multicast Source Discovery Protocol </li></ul><ul><ul><li>When src registers w/ RP -> a source active (SA) msg is sent to MSDP peers </li></ul></ul><ul><ul><li>Prevent loops w/ per-RPF flooding (ie: if msg received on correct iface -> flood) </li></ul></ul><ul><ul><li>If MSDP is aware of local group members (use IGMP), then it will send a join to the src </li></ul></ul>
    18. 18. Long-Term Inter-Domain Proposals <ul><li>Border Gateway Multicast Protocol </li></ul><ul><ul><li>Bidirectional shared trees between domains with single root. Need strict allocation of addresses among domains. </li></ul></ul><ul><ul><li>Address Allocation Protocols </li></ul></ul><ul><ul><ul><li>Multi Address Set Claim – Helps allocate addresses dynamically across domains </li></ul></ul></ul><ul><ul><ul><li>GLOP – a “glop” of addresses statically allocated among domains </li></ul></ul></ul>
    19. 19. Problems Deploying IP Multicast [4] <ul><li>Complexity </li></ul><ul><ul><li>Can’t put it in core routers </li></ul></ul><ul><ul><li>Hardware more difficult to manage (probs w/ firewalls) </li></ul></ul><ul><li>Makes old routers useless </li></ul><ul><ul><li>disrupts ISP router migration model (routers generally migrate from core to edge) </li></ul></ul><ul><li>Domain Independence </li></ul><ul><ul><li>ISPs don’t want to rely on remote RPs </li></ul></ul><ul><ul><li>Don’t want to be RP for non-customers </li></ul></ul><ul><li>Security – anyone can send/listen </li></ul><ul><li>Address Allocation – anyone can pick a class D addr. </li></ul>
    20. 20. References <ul><li>[1] “Video Multicast over the Internet.” Xue Li et al. IEEE Network. 1999. </li></ul><ul><li>[2] “The Evolution of Multicast: From the MBone to Interdomain Multicast to Internet2 Deployment.” Kevin Almeroth. IEEE Network. 2000. </li></ul><ul><li>[3] “Multicast Routing and Its QoS Extension: Problems, Algorithms, and Protocols.” Bin Wang and Jennifer C. Hou. IEEE Network. 2000. </li></ul><ul><li>[4] “Deployment Issues for the IP Multicast Service and Architecture.” Christophe Diot et Al . IEEE Network. 2000. </li></ul>