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 ?
Sending a packet to multiple destination using a single address
Unicast Router A B C S A B C
Multicast Router A B C S G
Multicast Router A B C S G G
Multicast Router A B C S G 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 ?
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
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
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 RP Q T
RP Q T Is R on the shortest path to S ?
RP Q T If no.. ignore the packet
RP Q T If yes.. continue Where should I forward it to ?
RP Q T
RP Q T
Truncation Router checks local host membership table. Duplicate the packets only if there is a member in the subnet.
RP Q T ? ?
RP Q T U S ? ?
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 !”
RP Q T
RP Q T PRUNE
RP Q T
RP Q T GRAFT
RP Q T
RP Q T PRUNE
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 RQ P QR
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 QR TU
P computes the tree P QR TU
Q computes the tree P QR TU
R & U compute the tree P QR TU
T computes the tree P QR TU
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 corePQ RU V join
Join corePQ RU V ack
Intercept Join corePQ RU V join (G, v, core)
Intercept Join corePQ RU V ack
Send (on the tree) corePQ RU V
Send (not on the tree) corePQ RU V
Send (not on the tree) corePQ RU 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 PcoreQ R join
Send (SM) PcoreQ R S
Switch PcoreQ R S switch
Switch PcoreQ R S
Send (DM) PcoreQ R S
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 ? ISDN 28.8K Modem T3 S
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 Source transmit same data in different streams with different quality Receivers can feedback to the source, to adjust the rate of a stream (intra- stream), or they can move to different streams (inter-stream)
Simulcast Streams stream 123 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 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 t join
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 S2 R3 R2 R1
Interest Report S1’s weight =( )/ 3 = 0.7 S2’s weight =( )/ 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
S0S1 Layers
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 Position a application level gateway at strategic point in the network. MeGa S 64Kbps100Mbps
The End