MulticastEECS 122: Lecture 16
Department of Electrical Engineering and Computer Sciences
University of California
Berkeley
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
2
Broadcasting to Groups
Many applications are not one-one Broadcast Group collaboration Proxy/Cache updates Resource Discovery
Packets must reach a Group rather than a single destination Group membership may be dynamic More than one group member might be
a source Idea: After a group is established
Interested receivers join the group The network takes care of group
management Recall RSVP
WebcastsRadio/TVPush/IE Channels
ChatsVideo ConferencingAudio Conferencing
Caches and Proxies
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
3
The Multicast service Model
Membership access control open group: anyone can
join closed group: restrictions on
joining Sender access control
anyone can send to group anyone in group can send
to group only one host can send to
group Packet delivery is best effort
R0 joins G
R1 joins G
Rn-1 joins G
S
R0
R1
.
.
.
[G, data]
[G, data]
[G, data]
[G, data]
Rn-1
Net
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
4
Multicast and Layering
Multicast can be implemented at different layers
data link layer e.g. Ethernet multicast
network layer e.g. IP multicast
application layer e.g. as an overlay network like Kazaa
Which layer is best?
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
5
Multicast Implementation Issues How are multicast packets addressed? How is join implemented? How is send implemented?
How does multicast traffic get routed? This is easy at the link layer and hardest at the network
layer
How much state is kept and who keeps it?
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
6
Ethernet Multicast
Reserve some Ethernet MAC addresses for multicast To join group G
network interface card (NIC) normally only listens for packets sent to unicast address A and broadcast address B
to join group G, NIC also listens for packets sent to multicast address G (NIC limits number of groups joined)
implemented in hardware, so efficient To send to group G
packet is flooded on all LAN segments, like broadcast can waste bandwidth, but LANs should not be very large
Only host NICs keep state about who has joined scalable to large number of receivers, groups
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
7
Limitations of Data Link Layer Multicast Single LAN
limited to small number of hosts limited to low diameter latency essentially all the limitations of LANs compared to
internetworks Broadcast doesn’t cut it in larger networks
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
8
IP Multicast: Interconnecting LANS
Interconnected LANs LANs support link-level
multicast Map globally unique
multicast address to LAN-based multicast address (LAN-specific algorithm)
IP Group addresses are class D addresses
1110/28 or 224.0.0.0 to 239.255.255.255
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
9
Internet Group Management ProtocolIGMP Operates between Router and local Hosts,
typically attached via a LAN (e.g., Ethernet) Query response architecture
1. Router periodically queries the local Hosts for group membership information Can be specific or general
2. Hosts receiving query set a random timer before responding
3. First host to respond sends membership reports
4. All the other hosts observe the query and suppress their own repots.
To Join send a group send an unsolicited Join Start a group by joining it
To leave don’t have to do anything Soft state
Query to 224.0.0.1Report
SuppressesReport
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
10
Naïve Routing Option: Don’t change anything
S
R0
R1
.
.
.
[R0, data]
[R1, data]
[Rn-1, data]
[R0, data]
[R1, data]
[Rn-1 , data]
Rn-1
Net
Group abstraction not implemented inthe network
Point-to point routing
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
11
This approach does not scale…
BackboneISP
BroadcastCenter
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
12
Instead build trees
BackboneISP
BroadcastCenter
Copy data at routersAt most one copy of a data packet per link
•Routers keep track of groups in real-time•“Path” computation is Tree computation
•LANs implement layer 2 multicast by broadcasting
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
13
Routing: Approaches
Kinds of Trees Shared Tree Source Specific Trees
Tree Computation Methods Intradomain Update methods
Build on unicast Link State: MOSPF Build on unicast Distance Vector: DVMRP Protocol Independent: PIM
Interdomain routing: BGMP This is still evolving…
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
14
Source Specific Trees
6
7
8
5
4
31
2
12
10
13
11
Each source is the route of its own tree.
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
15
Source Specific Trees
6
7
8
5
4
31
2
12
10
13
11
Each source is the route of its own tree. One tree for each source
Can pick “good” trees but lots of state at the routers!
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
16
Shared Tree
6
7
8
5
4
31
2
12
10
13
11
One tree used by all
Can’t pick “good” trees but minimal state at the routers
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
17
Tree Computation
6
7
8
5
4
31
2
12
10
13
11
12
23
21
22
11
15
12
21
2
12
2
7
2
2
•A tree which connects all the group nodes is a Steiner Tree •Finding the min cost Steiner Tree is NP hard
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
18
Tree Computation
6
7
8
5
4
31
2
12
10
13
11
12
23
21
22
11
15
12
21
2
12
2
7
2
2
•A tree which connects all the group nodes is a Steiner Tree •Finding the min cost Steiner Tree is NP hard
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
19
Tree Computation
6
7
8
5
4
31
2
12
10
13
11
12
23
21
22
11
15
12
21
2
12
2
7
2
2
•A tree which connects all the group nodes is a Steiner Tree •Finding the min cost Steiner Tree is NP hard•The tree does not span the network•Heuristics are known
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
20
Tree Computation
6
7
8
5
4
31
2
12
10
13
11
12
23
21
22
11
15
12
21
2
12
2
7
2
2
•A tree that connects all of the nodes in the graph is a spanning tree•Finding a minimum spanning tree is much easier
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
21
Tree Computation
6
7
8
5
4
31
2
12
10
13
11
12
23
21
22
11
15
12
21
2
12
2
7
2
2
•A tree that connects all of the nodes in the graph is a spanning tree•Finding a minimum spanning tree is much easier
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
22
Tree Computation
6
7
8
5
4
31
2
12
10
13
11
12
23
21
22
11
15
12
21
2
12
2
7
2
2
•A tree that connects all of the nodes in the graph is a spanning tree•Finding a minimum spanning tree is much easier•Prune back to get a multicast tree
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
23
Tree Computation
6
7
8
5
4
31
2
12
10
13
11
12
23
21
22
11
15
12
21
2
12
2
7
2
2
•A tree that connects all of the nodes in the graph is a spanning tree•Finding a minimum spanning tree is much easier•Prune back to get a multicast tree
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
24
Link State Protocols e.g. MOSPF Use in conjunction with a link state protocol
for unicast Enhance the LSP updates with group
membership Compute best tree from source Flood Membership in link state
advertisements Dynamics are a problem
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
25
Distance Vector Multicast Routing An elegant extension to DV routing Use shortest path DV routes to determine if
link is on the source-rooted spanning tree
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
26
Distance Vector Multicast
Extension to DV unicast routing Packet forwarding
iff incoming link is shortest path to source
out all links except incoming Reverse Path Flooding (RPF) packets always take shortest path
assuming delay is symmetric Issues
Every link receives each multicast packet, even if no interested hosts: Pruning
Some links (LANs) may receive multiple copies: Reverse Path Broadcasting
s:2s:2
ss
s:1s:1
s:3s:3
s:2s:2
s:3s:3
rr
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
27
Example
Flooding can cause a given packet to be sent multiple times over the same link
Solution: Reverse Path Broadcasting
xx yy
zz
SS
a
b
duplicate packet
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
28
Reverse Path Broadcasting (RPB) Extend DV to eliminate
duplicate packets Choose parent router for each
link router with shortest path to
source lowest address breaks ties each router can compute
independently from already known information
each router keeps a bitmap with one bit for each of its links
Only parent forwards onto link
s:2s:2
ss
s:1s:1
s:3s:3
s:2s:2
s:3s:3
rr
P
C
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
29
Identify Child Links
Routing updates identify parent Since distances are known, each router can
easily figure out if it's the parent for a given link
In case of tie, lower address wins
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
30
Reverse Path Broadcasting (RPB)
xx yy
zz
SS
a
b
5 6
child link of xfor S
forward onlyto child link
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
31
Don’t really want to flood!
This is still a broadcast algorithm – the traffic goes everywhere
Need to “Prune” the tree when there are subtrees with no group members
Strategy
1. Identify leaf networks with no members IGMP
2. Propagate this information up the subtree
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
32
How much to Prune?
Truncated Reverse Path Broadcasting: Prunes to prevent flooding of all packets
Reverse Path Multicasting: More aggressive. Scale router state with the number of active groups Use on-demand pruning so that router group state
scales with number of active groups (not all groups)
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
33
Pruning Details
Prune (Source,Group) at leaf if no members Send Non-Membership Report (NMR) up tree
If all children of router R prune (S,G) Propagate prune for (S,G) to parent R
On timeout: Prune dropped Flow is reinstated Down stream routers re-prune
Note: again a soft-state approach
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
34
Pruning Details
How to pick prune timers? Too long large join time Too short high control overhead
What do you do when a member of a group (re)joins?
Issue prune-cancellation message (grafts)
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
35
What to do if most of the routers in the internet are not multicast enabled?
Tunnel between multicast enabled routers
Creates an “overlay” network but both operate at Level 3…
This is how multicast was first deployed
MBONE
IP
IPM
IPM
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
36
RMP Scaling
State requirements: O(Sources Groups) active state
How to get better scaling? Hierarchical Multicast Core-based Trees
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
37
Core Based Trees (CBT)
Pick a “rendevouz point” for the group called the core.
Shared tree Unicast packet to core and bounce it back to
multicast group Tree construction is receiver-based
Joins can be tunneled if required Only nodes on One tree per group tree involved
Reduce routing table state from O(S x G) to O(G)
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
38
Example
Group members: M1, M2, M3 M1 sends data
root
M1
M2 M3
control (join) messagesdata
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
39
Disadvantages
Sub-optimal delay Single point of failure
Core goes out and everything lost until error recovery elects a new core
Small, local groups with non-local core Need good core selection Optimal choice (computing topological center) is
NP complete
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
40
PIM
Popular intradomain method UUNET streaming using this
Recognizes that most groups are very sparse Why have all of the routers participate in keeping
state? Two modes
Dense mode: flood and prune Sparse mode: Core-based shared tree approach
with a twist
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
41
PIM Sparse Mode
Routers explicitly issue JOIN and Prune messages to the Core Recievers typically send a Join message of the form (*,G)
As it propagates towards the core it establishes a new branch of the shared tree
To send on the tree, tunnel to the core and then traverse the shared tree This can lead to bad performance
To optimize sending from S, the core can send Join message of the form (S,G) to S. Creates a specific path from S to the core
Receivers can send (S,G) messages as well to S and gradually replace the shared tree with a source specific tree
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
42
Problems with Network Layer Multicast Scales poorly with number of groups
A router must maintain state for every group that traverses it
many groups traverse core routers Supporting higher level functionality is difficult
NLM: best-effort multi-point delivery service Reliability and congestion control for NLM
complicated Deployment is difficult and slow
Difficult to debug problems given the service model
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
43
NLM Reliability
Assume reliability through retransmission Sender can not keep state about each receiver
e.g., what receivers have received number of receivers unknown and possibly very large
Sender can not retransmit every lost packet even if only one receiver misses packet, sender must
retransmit, lowering throughput N(ACK) implosion
described next
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
44
(N)ACK Implosion
(Positive) acknowledgements ack every n received packets what happens for multicast?
Negative acknowledgements only ack when data is lost assume packet 2 is lost
SS
R1R1
R2R2
R3R3
123
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
45
NACK Implosion
When a packet is lost all receivers in the sub-tree originated at the link where the packet is lost send NACKs
SS
R1R1
R2R2
R3R3
3
3
3
2?
2?
2?
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
46
Scalable Reliable Multicast (SRM) Randomize NACKs (request repairs) All traffic including request repairs and repairs are
multicast A repair can be sent by any node that heard the
request A node suppresses its request repair if another node
has just sent a request repair for the same data item
A node suppresses a repair if another node has just sent the repair
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
47
Avoiding NACK Implosions
Every node estimates distance (in time) from every other node
Information is carried in session reports (< 5% of bandwidth)
Nodes use randomized function of distance to decide when to
Send a request repair Reply to a request repair
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
48
ISPs charge by bandwidth
BackboneISP
BroadcastCenter
They make more money without multicast
Remember whatinterdomain protocolsoptimize for….
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
49
Application Layer Multicast
Provide multicast functionality above the IP unicast Gateway nodes could be the hosts or multicast
gateways in the network Advantages
No multicast dial-tone needed Performance can be optimized to application
Loss, priorities etc. More control over the topology of the tree Easier to monitor and control groups
Disadvantages Scale Performance if just implemented on the hosts (not
gateways)
March 18, 2003 A. Parekh, EE122 S2003. Revised and enhanced F'02 Lectures
50
Summary
Large amount of work on multicast routing Major problems
preventing flooding minimizing state in routers denial-of-service attacks deployment
Multicast can be implemented at different layers lower layers optimize performance higher layers provide more functionality
IP Multicast still not widely deployed Ethernet multicast is deployed application layer multicast systems are promising