Title: Multicast Routing
1Multicast Routing Protocols
- Acute Communication Corp.
- Edward Jin-Ru Chen
- jzchen_at_acutecomm.com.tw
2Content
- Introduction
- Algorithms
- Flooding, Spanning Tree, Reverse Path Broadcast,
Reverse Path Multicast and Core Based Tree - Routing Protocols
- DVMRP, MOSPF, PIM-SM, PIM-DM and CBT
- Testing Issue
3Why Multicast Routing?
- Reduce the bandwidth waste
D
D
S
S
D
D
Broadcast
Multicast
4Sender-base VS Receiver-base
- Whether the sender or the receiver establishes
the connections necessary for forming a multicast
group - Sender-Based
- Suitable for small group
- Hard to extend to large or dynamic groups
- Receiver-Based
- Source no need to maintain receiver lists
- Easier to make group dynamic
5Sender-based multicasting
Conformation
Source
Receivers
Join requests
6Receiver-based multicasting
Data
Data
Data
Receivers
Source
Join requests
7Multicast Backbone
- MBONE is an interconnected set of subnetworks and
routers that support the delivery of IP multicast
traffic - Start from 40 subnets in four different countries
in 1992 - Connect each island through virtual
point-to-point links called tunnels
8IP Multicast Address
- Class D address
- Address assignment
- 224.0.0.0 is reserved and cannot be assigned to
any group - 224.0.0.1 to 224.0.0.255 is reserved for the use
of routing protocols and other low-level topology
discovery or maintenance protocol - 224.0.1.0 to 239.255.255.255 are assigned to
various multicast applications - 239.0.0.0 to 239.255.255.255 are to be reserved
for site-local administratively scoped
applications
9Multicast Path Decision
- Source to router
- Transmit to direct connected router
- Router to router
- Base on multicast routing protocol
- Such as DVMRP, MOSPF ...
- Router to destinations
- Base on local membership register protocol
- Such as IGMP (Version1, 2, 3)
10Multicast Routing Concept
- Class of routing protocols
- Dense - lots of receivers nearby
- Sparse - few receivers spread out
- Delivery Trees can be
- Source- rooted (one per sending host) or,
- Shared one delivery tree that all senders use
- Establishment of a delivery tree triggered when
- Multicast data sent out from the sender or
- Receivers joining a multicast group
11Source-Rooted Trees
12Source-Rooted Trees (II)
- Source- rooted delivery tree built for each
(Source, Group Address) multicast pair - also called a shortest- path tree (SPT)
- Routers must maintain O( S x G) state
- Better performance and optimal path from sender
to receivers via shortest- path trees (SPT) but
routers have to maintain more information
13Shared Trees
14Shared Trees (II)
- Single delivery tree (per group) is built rooted
at Core - Routers must maintain O( G) state
- Routers must maintain less information but Core
performance, locality and control could be issues
15Dense Mode Protocol
- Group membership is dense
- Data- driven from Source
- SPT is not built until multicast data begins to
flow from sender - packets are forwarded to all subnets until
routers prune interfaces/ links - Use Flood and Prune
- Suitable for campus LANs and corporate intranets
16Sparse Mode Protocol
- Group membership is sparse
- Flood and Prune wastes bandwidth and resources
- Better to use shared tree approach
- Data is not sent from the Core/ RP router to a
downstream router unless that router joins the
shared tree (by sending an explicit JOIN towards
the CORE/ RP) - Suitable for large corporate intranets and the
Internet
17Switch VS Protocol
- Cooperation between protocol engine and
forwarding engine - Protocol engine
- Used to be real-time OS working over processor
- Forwarding engine
- ASIC
- FPGA
- ASIC with embedded micro-processor
18Switch VS Protocol (II)
- Protocol engine decide the forwarding ports and
tell the forwarding engine - Forwarding engine just follow the known
information to forwarding the multicast packet - Based on exactly match to do address search
19Multicast Forwarding Algorithm
- Flooding
- Spanning Trees
- Reverse Path Broadcasting (RPB)
- Truncated Reverse Path Broadcasting (TRPB)
- Reverse Path Multicasting (RPM)
- Core-Based Trees (CBT)
20Flooding Algorithm
- Simplest technique
- Flood the received packet to interfaces other
than the receiving interface - Avoid the forwarding of looped packet
21Spanning Tree Algorithm
- What is the spanning tree?
- A subset of the Internet topology that forms a
loop free tree - Forward the received packet to other interfaces
belong to the spanning tree - Filter out the received packet when received from
interfaces not belong to the spanning tree - No loop free mechanism required
- Powerful and relatively easy, but centralize
packet flow and path is not the most efficient
22Reverse Path Broadcasting
- Build a group-specific spanning tree for each
potential source - Construct source-rooted delivery trees
- Operation
- For each packet arrives on a link that the router
considers to be the shortest patch back to the
source, forward the packet on all interfaces
except the incoming interface
23RPB (II)
- Reverse Path Broadcasting - Forwarding Algorithm
24Enhanced RPB
- Enhanced to reduce unnecessary packet duplication
based on whether the neighboring router is on the
shortest path back to the source - Intuitive on link-state protocol
- Use Poison Reverse on distance-vector protocol
A
B
C
D
F
E
25Truncated Reverse Path Broadcasting
- To overcome the limitations of Reverse Path
Broadcasting - Use IGMP to determine the group memberships on
each leaf - The spanning delivery tree is truncated by the
router if a leaf does not have group members
26TRPB (II)
27Reverse Path Multicasting
- RPM creates a delivery tree that spans only
- Subnetworks with group members
- Routers and subnetworks along the shortest path
to subnetworks with group members
28RPM (II)
29RPM (III)
- Receive packet for (source, group), the first one
is forwarded as TRPB - Router at the edge of the network is called leaf
router - If the group member is on the leaf network
- Forward packet based on IGMP information
- If no subnetwork has group member
- Transmit a prune message on its parent link
- Prune messages are sent only one hop back
- When all leaf are pruned, parent node sends prune
message
30RPM (IV)
- The membership and network topology are
dynamically changed - Remove the pruned branch periodically
- Limitations
- Periodically forward multicast packet to all
routers - States of each source and group pair must be
maintained
31Core-Based Tree (CBT)
- Construct a single delivery tree that is shared
by all members of a group - Different group can have different tree
32CBT (II)
- Construct a CBT backbone
- Join the group must send join message to core
tree - Potential group member only need to know the
address of the groups core router - Unicast join request
- By passed router record the passed interface to
construct the branch of core tree
33CBT (III)
- Benefits
- Only need one router to record state information
for each group - No periodic flooding and pruning requirement
- Limitation
- Traffic concentration and bottlenecks near core
routers - May create suboptimal routes
- Need to manage the selection and replacement of
cores
34Distance Vector Multicast Routing Protocol (DVMRP)
- Distance-vector routing protocol
- Origin defined in RFC1075
- Derived from RIP
- Use Truncated Reverse Path Broadcasting algorithm
- Difference from RIP
- RIP calculates the next hop to a destination
- DVMRP calculate the previous hop back to a source
- Version 3.8 and vender implementations employ
Reverse Path Multicasting
35DVMRP Tunneling
- Supports tunneling of multicast packets through
non- multicast routers - IP over IP encapsulation
- Enables IP Multicast islands to communicate
- Contributes to increased network utilization
- DVMRP tunnels are manually configured between
end-points
36DVMRP Operation
37DVMRP Scope Control
- Use TTL value to limit the scope of transmission
38DVMRP Operation
- First datagram for any (source, group) pair is
forwarded to entire internetwork - The prune messages result in the removal of
branches from the tree - After a period of time, the pruned branch grow
back and the next datagram flood again - If a pruned branch has newly added group member,
the graft message is send
39DVMRP Routing Table
40DVMRP Forwarding Table
41Multicast Extensions to OSPF (MOSPF)
- Multicast Extensions to OSPF
- not actually a separate multicast routing
protocol - Leverages already existing OSPF topology database
to compute source-rooted shortest path delivery
tree - Defines Group Membership LSA that is added to
topology database and propagated throughout OSPF
AS
42MOSPF (II)
- Generates a source- rooted delivery tree that
branches out to all members-only subnetworks - calculates as soon as first multicast packet hits
the router - because MOSPF routers maintain the same topology
database in an area, they will calculate the same
delivery tree - RFC1584
43MOSPF Characteristics
- Not supported on all routers
- MOSPF can interoperate with OSPF to support
unicast but MOSPF does not support tunnels - Does not support equal cost paths
44MOSPF Characteristics(II)
- Advantages
- SPT is calculated "in memory" thus initial
multicast packets are not flooded - leverages existing OSPF function
- Disadvantages
- may require router CPU to calculate each SPT as
number of senders increases - Group Membership LSAs are propagated throughout
network
45MOSPF Inter-Area routing
46Inter-Area Routing (II)
- Area border routers are configured as wild- card
multicast receivers (WCMR) and inter- area
multicast forwarders (IAMF) - WCMR receives all multicast packets and forwards
to the next area - must not be pruned from the
source- rooted SPT - IAMF forwards group membership from non- backbone
areas to the backbone - Inter- area delivery trees built using
information supplied by inter- area multicast
forwarders and summary- links LSAs
47Protocol Independent Multicast (PIM)
- Supports both a Dense Mode and Sparse Mode
function - Dense mode to operate under both group members
are relatively densely packed and bandwidth is
plentiful - Sparse mode to operate under group members are
widely dispersed across the Internet - Independent of any underlying unicast routing
protocol - Require a unicast routing protocol to provide
routing table information and to adapt to
topology changes
48PIM (II)
- Design objectives
- provide scalable inter-domain multicast routing
- efficient sparse group support
- shared- tree or SPT support
- routing protocol independent
- dense mode support
- robustness - uses soft- state
- interoperability with other multicast routing
protocols
49PIM - Dense Mode
- Designed for Dense multicast regions
- Uses Reverse Path Multicasting
- Default operation is to send
- implicit join (everybody is a member) with
explicit prunes - Simple to implement
50PIM - DM (II)
- Differs from DVMRP in the following
- forwards out all interfaces until explicit
pruning or truncating occurs DVMRP uses parent-
child relationship, uses split- horizon to
recognize downstream routers - independent of specific unicast routing
technology but rely on unicast routing protocol
to adapt to topology changes DVMRP uses distance
vectors - does not support tunnels DVMRP does
51PIM - Sparse Mode
- Designed for Sparse multicast regions
- RFC2362
- Basic concept is that multicast data is blocked
unless a downstream router explicitly asks for it - controls the amount of traffic that traverses
network - Similar to the Core-Based Tree (CBT) approach
- Employs the concept of a rendezvous point (RP)
where receivers meet sources - Only one RP for each multicast group
52PIM - SP Rendezvous Point
- Rendezvous Point (RP)
- RP-list contains a primary RP and a small ordered
set of alternative RPs - single active RP per group but backups can exist
- Routers need to maintain RP-list before the
arrival of data packets - senders must register their existence with RP
- receivers must join RP- rooted tree
53PIM - SP RP (II)
- Shared RP tree is initially used to distribute
data but PIM routers with members may switch over
to Source-Rooted Shortest Path Tree - for better network performance and utilization
54PIM - SM Operation
- PIM Routers locate RP via Bootstrap Mechanism
- downstream PIM routers need to know address of RP
so that they can send PIM JOIN messages - PIM Routers with local members Join group-
specific multicast tree rooted at RP - PIM Routers with local senders encapsulate data
and send it (unicast) to RP - PIM Routers with local members may initiate and
switch-over to source-rooted shortest-path tree
55PIM Register
- PIM Routers with local senders encapsulate
multicast packets in PIM- Register messages and
forward to RP - RP de-encapsulates messages and forwards out
multicast delivery tree - RP may option to send PIM JOIN and PIM
REGISTER-STOP messages to source PIM router. This
enables source PIM router to send native
multicast packets to RP
56PIM Register (II)
57PIM Join - SPT
- Based on a threshold, PIM routers with local
members send PIM Join messages towards the source - Source-rooted shortest path tree is built
- PIM routers with local members continue to
receive packets from both the source and the RP
58PIM Join - SPT (II)
59PIM Shared Tree to SPT Switch
- After PIM routers receive multicast packets from
both the SPT and RP delivery trees, PIM Prune
messages are sent upstream towards the RP to
prune the RP-tree. Now multicast data from the
Source will only flow over the source- rooted SPT
towards group members.
60PIM Shared Tree to SPT Switch (II)
61Core Base Tree
- RFC 2189
- CBT protocol builds and maintains a shared
multicast distribution tree that spans only those
networks and links leading to interested
receivers. - Core router is a "meeting point" between a sender
and group receivers - An on-tree router, which is part of a CBT
distribution tree, maintains active state for the
group
62CBT Operation
Join_Request
Join_ACK
S
Data Flow
Core
R
R
63CBT Receiver Operation
- Use IGMP to register membership of a group
- CBT router generates JOIN_REQUEST message to next
hub to the core router - Acknowledge message (JOIN_ACK) is sent from
- the core router
- another on-the-path router which itself has
already joined the tree - The host is on-tree after receiving JOIN_ACK
64CBT Sender Operation
- Non-member sender data is encapsulated (IP-in-IP)
by the first-hop router, and is unicast to the
group's core router
65Protocol Verification
- Packet Format
- Lower protocol parameter setting
- Entry field validity
- Timer
- Preciseness of each timer
- Algorithm
- Using entered packet to generate virtual
environment to trigger algorithm calculation and
performs respected packet forwarding
66Protocol Verification
- Input process
- Check the processing result of different input
packets - Output process
- Check the processing result when router generate
packets
67Protocol Verification
- Cooperation between unicast routing protocol
- Such as MOSPF, PIM
- The information exchange must be correct
- Interoperability
- Using routers produced by different venders,
connect them and check the working result - Using different interface setting and multicast
member register to verify the interoperability
68Verification Example
- DVMRP needs to send out routing information every
60 sec - Test procedure
- Send in routing information
- Listen for 60 sec
- The DUT must send out routing information
contains the same information
69Benchmark
- RFC2432
- Benchmark items
- Multicast Speedup Index (MSI)
- Multicast Latency (ML)
- Group Join Delay (GJD)
- Group Leave Delay (GLD)