An Architecture for Wide-Area
Multicast Routing
(Protocol Independent Multicast -
PIM)
Computer Science
Deering, 6390
Estrin, – Advanced
Farinacci, Computer
Jacobson, Networks
Liu, Wei
[Link]
Jorge A. Cobb
94
Motivation
Receivers and senders of are often sparsely populated over a
very wide area.
An internetwork often contains many possible paths between a
source S and any receiver.
Flood and prune protocols discover receivers by sending
packets everywhere, and pruning back when there are no
receivers
• inefficient in the wide area
2
Shared and Shortest-Path (source) distribution trees
Shared tree is used by all receivers and senders of a group.
• Allows very large scale.
• All sources can send data via this tree
• All receivers receive data via this tree
• Routers only need to keep track of information for one tree
Shortest-Path (source) trees are possible
• A specific tree can be built for a source with much traffic
• Last hop routers can
• change to the shortest path tree for certain sources, and
• receive from the shared tree for other sources.
• Switch to shortest-path tree usually if the data rate of the
source is high
3
Receiver Driven
Trees are built using a form of reverse-path forwarding
• Your parent on the tree is the next-hop to the root.
Explicit join/prune tree management.
• Routers with local (same LAN) receivers send an explicit
join along the path to the root
• All routers along this path will join the multicast tree (if not
on it already)
• Prune messages remove tree branches if receivers are no
longer on their subtree
We say that PIM-SM is thus receiver driven.
4
Tree Construction
Designated routers send join messages along the next hop to root
Each router along the way
• records where the message is received from (i.e. who is the child)
• Forwards the join to the next hop to the root (its parent)
Tree edges are maintained by periodic refresh messages
Root
Tree
Join Tree
Join
Tree
Join edges
edges edges
R1 R2 R3
5
Routing protocol independence
Makes use of existing unicast routing functionality to guide tree
construction.
It is independent of the particular protocol used.
Only knowledge of the next-hop to a destination is needed.
6
Multicast forwarding states at routers
used to determine how a multicast packet will be forwarded
consists of several elements:
• source address – S ( S = * for the shared tree )
• group address - G
• incoming interface – iif (parent on the tree)
• outgoing interface list – oif list (children on the tree)
Only packets arriving on the iif are accepted
7
Deconstruction
Prune messages are used to remove edges from the tree
A router sends a prune message to its parent if it no longer
receives IGMP messages from its LANs and no refresh
messages from other routers.
8
Rendezvous Point (RP)
Each multicast group G has a router known as the rendezvous
point (RP).
• The RP is the root of the shared tree for group G.
• We also call this tree the RP tree (RPT).
• Every router must know the RP for every group G.
• In some cases, the same router is used as the RP for every
group.
There is only one RP for any group G at any time.
RP(G) denotes the unicast IP address of the RP of G
9
Overall Steps
A receiver sends an IGMP message to its designated router (DR)
wishing to join group G
DR joins the shared tree rooted at RP(G)
• Its join message indicates (*,G), i.e., wishes data from all
sources
Sources send data messages to RP(G) via encapsulation
• Data is encapsulated and routed to RP(G)
• RP(G) then decapsulates it and forwards it along the tree
10
Source RP(G)
Tree Tree
edges edges
R1 R2 R3
11
Shortest Path Trees
The shortest path tree (SPT) for a source S of a group G
• is a tree rooted at the designated router for S
• for every receiving host R,
• the path between R and S is the shortest path from R to S.
• Similarly defined if we used cost rather than hop count
• However, if we use cost, the optimum path from S to R
may not be the optimum path from R to S.
The SPT is built as before (root is S)
BOTH the SPT of S and the Shared Tree will co-exist.
Who should join the SPT of S?
12
RP(G) joins SPT of S
If the traffic from S is high, the RP(G) may wish to avoid
encapsulation/decapsulation
• The paper claims this is done upon RP(G) receiving the first
encapsulated message from S.
To do so, RP(G) joins the SPT of S
• I.e., RP(G) simply becomes a receiver of SPT of S
• If SPT of S does not exist, it is built on the fly, i.e. RP(G) is
the first receiver
Thus, RP(G) receives data messages from S through SPT of S
• RP(G) then forwards these messages along the shared tree
13
PIM-SM Example
Step 1: Building shared tree
Join G for S
Step 2: Source sending to
S RP RP
Step 3: Stop encapsulation
R1 R2 R3
14
Receiver Joins the SPT of S
Due to traffic load, the DR of a receiver may decide to join the
SPT of S.
• I.e., S DR will have the optimum path from DR to S
Thus, the DR will be connected to two trees.
• Shared Tree
• SPT of S
Once messages arrive along the SPT of S, DR PRUNES itself
from the Shared Tree
This prune is selective only for the source S
• Data from other sources will indeed be received via the
shared tree
15
PIM-SM Example
Step 1: Building shared tree
Join G for S
Step 2: Source sending to
S RP RP
Step 3: Stop encapsulation
Step 4: Switch to SPT
Step 5: Prune shared tree
R1 R2 R3
16
How does a source sends its data?
The Register message is one means by which packets from a
source S reach the root (RP) of the shared tree for group G.
• Register messages are sent as unicast PIM messages
addressed to the RP.
• The payload of a Register message is a complete multicast
packet (headers and all).
• The RP
• decapsulates the Register message,
• forwards the packet along the shared tree
• Sends a join message to S along the path to S.
17
How do routers discover sources?
A source S for group G is “discovered” by a router when the
router receives a packet from S addressed to group G.
• A router discovers a directly connected source S when
the router receives a packet from S on the same LAN and
addressed to group G.
• The router must encapsulate and register with RP(G)
• A router discovers a distant (non-connected) source
when the router receives a packet from the source along
the shared tree for group G.
• The router may choose to join the SPT of S.
18