Multicast & Multimedia CS731 Wei Tsang Ooi Overview • What is Multicast ? • Group Management (IGMP) • Routing Protocols (DVMRP, MOPSF, CBT, PIM-DM, PIM-SM) • Adaptivity (DSG, RLM, ThinStreams, SCUBA, MEGA) What is Multicast ? What is Multicast ? • Sending a packet to multiple destination using a single address Unicast S A B C Router A Router Router Router C B Multicast S G A Router Router Router Router C B Multicast S A G Router Router Router G C Router B Multicast S G A Router Router Router G Router C B Questions • How does a router know if some host in its subnet is member of some group ? • How does a router know where to forward a packet ? • What if a packet is lost ? • What if the members have different network capacity ? Questions • How does a router know if some host in its subnet is member of some group ? • How does a router know where to forward a packet ? • What if a packet is lost ? • What if the members have different network capacity ? Group Management Group Management • Routers maintain “local host group membership table” • “which group has a member in my subnet ?” IGMP v1.0 • JOIN message A : “I want to join group G.” • QUERY message R : “Which group have you joined ?” IGMP v1.0 • MEMBERSHIP Report A : “I am a member of group G” A : “I am a member of group H” B : “I am a member of group G” Avoiding Implosion • Select random delay t • After time t, if nobody belongs to the same group, send membership report. • Resend the report after some delay just to be safe. Leave • If nobody tell the router that they belongs to some group G after a few query messages, G will be removed from local host membership table. • Long leave latency (minutes) IGMP v2.0 • LEAVE message “I want to leave group G” • Group-Specific Query “Anybody else belongs to group G ?” IGMP v3.0 • Group-Source Inclusion “I want to listen to S from group G” • Group-Source Exclusion “I do not want to listen to S from group G” Questions • How does a router know if some host in its subnet is member of some group ? • How does a router know where to forward a packet ? • What if a packet is lost ? • What if the members have different network capacity ? Routing Protocols Routing Protocols • Generic Methods : – Form a tree to all routers with members – Deliver the packets along the tree Rounting Protocols • • • • DVMRP MOSPF CBT PIM Rounting Protocols • DVMRP • MOSPF • CBT • PIM From S to G Q R P T Is R on the shortest path to S ? Q R P T If no.. ignore the packet Q R P T If yes.. continue Where should I forward it to ? Q R P T Q R P T Q R P T Truncation • Router checks local host membership table. • Duplicate the packets only if there is a member in the subnet. R ? Q ? T P S R U ? Q ? T P Exchanging Routing Table • Routers periodically sends routing tables to their neighbours • If neighbour is going to ignore my packets, don’t need to send the packets to it. Pruning • Default : Always send to neighbouring routers, unless told otherwise. • Routers who received a “useless” packet send a prune message back. “Don’t send me packet addressed to G anymore !” Q R P T Q R P PRUNE T Q R P T Q R P GRAFT T Q R P T Q PRUNE R P T Problems of DVMRP • One tree for each pair (source, group) • Rebuilt tree periodically • So need to exchange routing tables periodically • First packet may visits more routers than it needs to Rounting Protocols • DVMRP • MOSPF • CBT • PIM MOSPF • Based on OSPF • For intra-gateway routing • Routers flood membership infomation to all other routers MOPSF • All routers must have the same topological/group members information. • Each of them compute a shortest path tree. Problems of MOSPF • Different minimal tree leads to wastage. P Q P R Q R Solution • Some convention to make sure all tree computed are the same Problems of MOSPF • One tree for each (source, group) pair • Computational intensive Solution • Compute the tree when received the first packet. Example of MOSPF P Q R U T P computes the tree P Q R U T Q computes the tree P Q R U T R & U compute the tree P Q R U T T computes the tree P Q R U T MOSPF vs DVMRP • MOSPF only forward packets down the path that leads to members. Problems with MOSPF/DVMRP • Not scalable O(SG) • Does not work well over sparsely distributed group • Also known as dense-mode routing protocols Rounting Protocols • DVMRP • MOSPF • CBT • PIM Core Based Tree • Designed for – sparse-mode – better scalability • A router is desinated as a core (how?) Join U R join Q core P V Join U R ack Q core P V Intercept Join U R (G, v, core) join Q core P V Intercept Join U R ack Q core P V Send (on the tree) U R Q core P V Send (not on the tree) U R Q core P V Send (not on the tree) U R Q core P V Core Router Discoveries • Position of core affect performance. • No perfect solutions in choosing core. Core Discovery - Bootstrap • A router is elected as Bootstrap Router • Other routers send “core candidate” message to the bootstrap router • Bootstrap router send a vector of candidate core routers to all routers • Routers hash the group address, index into the vector to find the core router. Core Discovery - Manual • Configure each routers with (core, group) table. CBT Summaries • One shared tree per group • Scalablity O(G) • No need to broadcast routing tables or flood link states • Worst case delay is twice of the shortest path tree (average 1.4 times) • Single point of failure Rounting Protocols • DVMRP • MOSPF • CBT • PIM Protocol Independent Multicast • Get the best of both world : – dense mode : shortest path – sparse mode : shared tree • Independent of unicast routing protocols. Join R P Q join core Send (SM) S R P Q core Switch S R switch P Q core Switch S R P Q core Send (DM) S R P Q core Questions • How does a router know if some host in its subnet is member of some group ? • How does a router know where to forward a packet ? • What if a packet is lost ? • What if the members have different network capacity ? Questions • How does a router know if some host in its subnet is member of some group ? • How does a router know where to forward a packet ? • What if a packet is lost ? • What if the members have different network capacity ? Multicasting over Heterogenous Network Problems • Different receivers reside on different networks with different capacities, what should the source transmit ? S ISDN T3 28.8K Modem Solutions • Source decides what to send based on feedback from receivers • Receivers decides what to receive from the source • Network decides what the receivers will received Source Driven • Source decides what to send based on feedback from receivers • Receivers decides what to receive from the source • Network decides what the receivers will received Jean Bolot et. al. (1994) • Networks condition is categorized as : – Unloaded – Loaded – Congested • Objectives : Stays in loaded region Naive Approach • If sender received one complain about congestions in the network, sender reduce the sending rate. • Works in unicast case but not in the case of multicase. A Better Solution • If at least x% of the receivers are congested, reduce sending rate. • If at least y% of the receivers are loaded, do nothing. • Else increase sending rate How to Get Feedback ? • Sender cannot ask all receivers at once and receivers cannot all answer at once. Bolot’s Idea • Senders and receivers generate random 16-bit “key” • If a the first k bit of receiver’s key match the first k bit of the sender’s, the receivers responds. Bolot’s Idea • First iteration, senders use the receiver responds to estimate the group size. • Subsequently, receivers only responds if the network condition is worst than the sender thought. Receiver Driven • Source decides what to send based on feedback from receivers • Receivers decides what to receive from the source • Network decides what the receivers will received Destination Set Grouping S.Y. Cheung et. al. 1995 • Source transmit same data in different streams with different quality • Receivers can feedback to the source, to adjust the rate of a stream (intrastream), or they can move to different streams (inter-stream) Simulcast Streams stream 1 2 3 high low Problems • Receivers might decide to join higher quality streams, but later find out that they are not able to handle it. • Side Effects : quality of streams might be lowered. Solutions • inter-stream switch is by “invitation” of source only • punishment : cannot switch again within a time inverval RLM McCanne et. al. 1996 • Source transmits data in different “layers”. • One layer per group • Need better quality, add a layer • Congestion, drop a layer Join-Experiment • Receivers find out if they can join the next higher layer by experiments. • Join the layer, if congested, drop it. Join Experiment 4 3 2 1 tjoin Problems • If two or more receivers perform experiments at once, they interfere with each other. Solutions • Before performing an experiment, a receiver announce its intention to others. • Others will refrain from performing the experiment. More Problems • New receiver needs to quickly subscribe to layers. Solution • join-experiments for lower layer is allowed to overlap with higher layer experiments. • The receivers needs to compensate for the overlapping when analyzing the result of the experiment. Problems • Buffer space needed by router is : layerBandwidth*totalExperimentTime • Packets lost if buffer space is not large enough • Congestions is detected after it occurs. ThinStreams Linda, Brian & Rosen 1997 • Each layer is thin has a fixed thickness • Use throughput as a measurement instead of packet losses • Use clock signal to sync join-experiment • Enforce link-sharing by making it harder to join higher group. SCUBA Elan Amir et. al 1997 • Reflect receiver’s interest in adapting bandwidth • Receiver sends interest report to source. • Source adjust bandwidth according to its weight SCUBA Example S1 R1 R2 S2 R3 Interest Report S1 S2 R1 0.8 0.2 R2 0.8 0.2 R3 0.5 0.5 S1’s weight =( 0.8 + 0.8 + 0.5 )/ 3 = 0.7 S2’s weight =( 0.2 + 0.2 + 0.5 )/ 3 = 0.3 Result • S1 will transmit at 70% total bandwidth • S2 will transmit at 30% total bandwidth Others will share the rest of 5% Problems • Receiver Heterogeneity Solution • Layered Multicast Layers S0 S1 4 4 3 3 2 2 1 1 Network Driven • Source decides what to send based on feedback from receivers • Receivers decide what to receive from the source • Network decides what the receivers will received MeGa Elan Amir et. al. 1995 • Position a application level gateway at strategic point in the network. S 100Mbps MeGa 64Kbps The End