Multicast Outline Multicast revisited Protocol Independent Multicast - SM Future Directions Multicast Revisited • Motivation: multiple hosts wish to receive the same data from one or more senders • Multicast routing defines extensions to IP routers to support broadcasting data in IP networks – Until now IP has only facilitated a point to point routing • Multicast data is sent and received at a multicast address which defines a group – Simple notion of a group is a TV channel • Data is sent and received in multicast groups via routing trees from sender(s) to receivers. – Protocols are principally concerned with setting up and maintaining trees • Note: All multicast messaging is sent via unicast Fall, 2001 CS 640 2 Protocol types • Dense mode protocols – – – – – assumes dense group membership Source distribution tree and NACK type DVMRP (Distance Vector Multicast Routing Protocol) PIM-DM (Protocol Independent Multicast, Dense Mode) Example: Company-wide announcement • Sparse mode protocol – – – – Fall, 2001 assumes sparse group membership Shared distribution tree and ACK type PIM-SM (Protocol Independent Multicast, Sparse Mode) Examples: a Shuttle Launch CS 640 3 PIM-SM overview (1) • Developed due to scaling issues – Flooding is generally a real bad idea • Based on creating routing tree for a group with Rendezvous Point (RP) as a root for the tree – RP is a focus for both senders and receivers • Explicit join model – Receivers send Join towards the RP – Sender send Register towards the RP • Supports both shared (default) and source trees • RPF check depends on tree type – For shared tree (between RP and receivers), uses RP address – For source tree (between RP and source), uses Source address Fall, 2001 CS 640 4 PIM-SM overview(2) • Only one RP is chosen for a particular group • RP statically configured or dynamically learned (Auto-RP, PIM v2 candidate RP advertisements) • Data forwarded based on the source state (S, G) if it exists, otherwise use the shared state (*, G) – (*,G) means all senders • RFC2362 – “PIM Sparse Mode Protocol Spec” (experimental) • Internet Draft: draft-ietf-pim-v2-sm-00.txt (October 1999) Fall, 2001 CS 640 5 PIM-SM Basics • • • • • • • • PIM Neighbor Discovery PIM SM Forwarding PIM SM Joining PIM SM Registering PIM SM SPT-Swichover PIM SM Pruning PIM SM Bootstrap PIM SM State Maintenance Fall, 2001 CS 640 6 PIM SM Tree Maintenance • Periodic Join/Prunes are sent to all PIM neighbors • Periodic Joins refresh interfaces in a PIM neighbor’s downstream list • Periodic Prunes refresh pruned state of a PIM neighbor – There is a designated router (DR) for each local network and all other routers get pruned • Received multicast packets reset (S,G) entry expiration timers. – (S,G) entries are deleted if timers expire Fall, 2001 CS 640 7 PIM-SM(1) S Source A B RP C R1 Fall, 2001 D E Receiver 1 CS 640 R2 Receiver 2 8 PIM-SM(2) S Receiver 1 Joins Group G C Creates (*, G) State, Sends (*, G) Join to the RP Source A B RP D Join C R1 Fall, 2001 E Receiver 1 CS 640 R2 Receiver 2 9 PIM-SM(3) S RP Creates (*, G) State Source A B RP C R1 Fall, 2001 D E Receiver 1 CS 640 R2 Receiver 2 10 PIM-SM(4) S Source Register Source Sends Data A Sends Registration to the RP IP tunnel between A and RP since multicast tree is not established Data A B RP C R1 Fall, 2001 D E Receiver 1 CS 640 R2 Receiver 2 11 PIM-SM(5) S RP decapsulates Registration Forwards Data Down the Shared Tree Sends Joins Towards the Source Source join A join B RP C R1 Fall, 2001 D E Receiver 1 CS 640 R2 Receiver 2 12 PIM-SM(6) S RP Sends Register-Stop Once Data Arrives Natively Source Register-Stop A B RP C R1 Fall, 2001 D E Receiver 1 CS 640 R2 Receiver 2 13 PIM-SM(7) SPT Switchover S C Sends (S, G) Joins to Join the Shortest Path Tree (SPT) Source A B RP D join C R1 Fall, 2001 E Receiver 1 CS 640 R2 Receiver 2 14 PIM-SM(8) S C starts receiving Data natively Source A B RP C R1 Fall, 2001 D E Receiver 1 CS 640 R2 Receiver 2 15 PIM-SM(9) S C Sends Prunes Up the RP tree for the Source. RP Deletes (S, G) OIF and Sends Prune Towards the Source Source Prune A Prune B RP D Prune C R1 Fall, 2001 E Receiver 1 CS 640 R2 Receiver 2 16 PIM-SM(10) S B, RP pruned Source A B RP C R1 Fall, 2001 D E Receiver 1 CS 640 R2 Receiver 2 17 PIM-SM(11) S New receiver2 joins E Creates State and Sends (*, G) Join Source A B RP C D E join R1 Fall, 2001 Receiver 1 CS 640 R2 Receiver 2 18 PIM-SM(12) S C Adds Link Towards E to the OIF List of Both (*, G) and (S, G) Data from Source Arrives at E Source A B RP C R1 Fall, 2001 D E Receiver 1 CS 640 R2 Receiver 2 19 Inter-Domain Multicast Routing • BGP4+ (Multicast BGP) for short-term solution – Tweeks to BGP4 to support multicast • Multicast Address Set and Claim (MASC) – Hierarchical multicast address allocation at domain level – Dynamic allocation (not permanent) of addresses by “set and claim with collision” • Border Gateway Multicast Protocol (BGMP) – Use a PIM-like protocol between domains (“BGP for multicast”) Fall, 2001 CS 640 20 MASC • Assume Addr(A) is allocated to domain A and domains B and C sit “below” A in a domain hierarchy • B selects Addr(B) which is subset of Addr(A) and send claim (addr(B)) message to A and C • A forwards claim to all children except B. • If any of A’s children is already using Addr(B) they will report a collision to A. • A will notify B of the collision and B will select other address space. • Address space information is used to create distribution tree using BGMP. • Stored in M-RIB (Multicast Routing Information Base) Fall, 2001 CS 640 21 BGMP • BGMP builds shared tree of domains for a group – Uses a rendezvous mechanism at the domain level – Shared tree is bidirectional – Root of shared tree of domains is at root domain • • • • • Runs in routers that border a multicast routing domain Runs over TCP Joins and prunes travel across domains Can build unidirectional source trees M-IGP (multicast Intra-Gateway Protocol) tells the borders about group membership Fall, 2001 CS 640 22 Multicast Routers • mrouted (Xerox PARC) : DVMRP • GateD (Merit) : DVMRP, PIM-DM, PIM-SM • Cisco IOS : DVMRP, PIM-DM, PIM-SM Fall, 2001 CS 640 23 M-Bone • Wide area IP multicast test bed using IP-in-IP tunneling • Routing protocol – DVMRP is used – Transition to PIM (DM, SM) is ongoing • Started in March 1992 for audio broadcasting of IETF meeting (San Diego) • Latest tolopology – ftp://ftp.parcftp.xerox.com/pub/net-research/mbone/maps/mbone-map-big.ps – About 6000 (S,G) entries • Discussion list: mbone@isi.edu Fall, 2001 CS 640 24 Session Directory Fall, 2001 CS 640 25 Example Session Fall, 2001 CS 640 26 M-BONE in 1994 Fall, 2001 CS 640 27 M-BONE in 1996 Fall, 2001 CS 640 28 M-BONE in 1998 Fall, 2001 CS 640 29 Future Mulicast Service • Current multicast service - latency and packet drop • Research for “Reliable multicast” is actively going on for; – large scale interactive gaming on the Internet – Distributed databases – large scale news distribution etc. Fall, 2001 CS 640 30 Reliable multicast technology • SRM ( Scalable Reliable Multicast) – multicast with re-transmit (with random back-off) – All nodes can re-transmit datagram (Multicast/Unicast) • MTP (Multicast Transport Protocol: RFC1301) • FEC (Forward Error Correction) – error packet recovery by redundant packets Fall, 2001 CS 640 31