Multicast & Multimedia CS731 Wei Tsang Ooi

advertisement
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
Download