Title: IP-Multicast (outline)
1IP-Multicast (outline)
- Motivation and Background
- Multicast vs. unicast
- Multicast Applications
- Delivery of Multicast
- Local delivery and multicast addressing
- WAN delivery and its model
- Group Membership Protocol (IGMP)
- Multicast Algorithms and Concepts
- Flooding, Spanning Tree, Reverse Path
Broadcasting (RPB), Truncated RPB, Reverse Path
Multicasting, Center-Based Trees
2Outline (Contd.)
- Multicast Routing Protocols
- Dense vs. Sparse Multicast
- DVMRP
- MOSPF
- PIM (PIM-DM, PIM-SM)
- Multicast and the Internet
- The MBONE
- Recent deployment
3Unicast vs. Multicast
- Multicast provides multipoint-to-multipoint
communication - Today majority of Internet applications rely on
point-to-point transmission (e.g., TCP). - IP-Multicast conserves bandwidth by replicating
packets in the network only when necessary
4Unicast vs. Multicast
S
S
R1
R1
R2
R2
R3
R3
R4
R4
Multiple unicasts
Multicast
5Example Multicast Applications
- One-to-Many
- Scheduled audio/video distribution lectures,
presentations - Push media news headlines, weather updates
- Caching web site content other file-based
updates sent to distributed replication/caching
sites - Announcements network time, configuration
updates - Monitoring stock prices, sensor equipment
6IP Multicast Applications (contd.)
- Many-to-One
- Resource discovery
- Data collection and sensing
- Auctions
- Polling
7IP Multicast Applications (contd.)
- Many-to-Many
- Multimedia Teleconferencing (audio, video, shared
whiteboard, text editor) - Collaboration
- Multi-Player Games
- Concurrent Processing
- Chat Groups
- Distributed Interactive Simulation
8- Currently The Multicast Backbone (MBONE) carries
audio and video multicasts of IETF meetings, NASA
space shuttle missions,.. etc.
9- How do hosts know about new groups?
- The Session Directory (SD) tool lists active
multicast sessions on MBONE and allows to join a
conference using MBONE tools - vat (visual audio tool), rat (robust audio tool)
- vic (video tool)
- wb (shared white board)
- nte (network text editor), .. etc.
10(No Transcript)
11(No Transcript)
12(No Transcript)
13(No Transcript)
14More Applications ...
- Resource Discovery
- Multicast may be used (instead of broadcast) to
transmit to group members on the same LAN. - Multicast may be used for resource discovery
within a specific scope using the TTL field in
the IP header.
15Multicast Scope ControlTTL Expanding-Ring Search
- to reach or find a nearby subset of a group
s
1
2
3
16Multicast Scope Control Administrative TTL
Boundaries
- to keep multicast traffic within an
administrative domain, e.g., for privacy reasons
the rest of the Internet
TTL threshold set oninterfaces to these
links,greater than the diameterof the admin.
domain
an administrative domain
17Multicast Scope Control Administratively-Scoped
Addresses
- RFC 1112
- uses address range 239.0.0.0 239.255.255.255
the rest of the Internet
address boundary set oninterfaces to these links
an administrative domain
18Transmission and Delivery of Multicast Datagrams
- Over the same (LAN)
- The source addresses the IP packet to the
multicast group - The network interface card maps the Class D
address to the corresponding IEEE-802 multicast
address - Receivers notify their IP layer to receive
datagrams addressed to the group. - Key issue is addressing filtration
19- Over different subnets
- Routers implement a multicast routing protocol
that constructs the multicast delivery trees and
supports multicast data packet forwarding. - Routers implement a group membership protocol to
learn about the existence of group members on
directly attached subnets. - Hosts implement the group membership protocol
that provides the IP-multicast host model
20Addressing
- Types of IP addresses
- Unicast used to transmit packets to one
destination. - Broadcast used to send datagrams to entire
subnet. - Multicast used to deliver datagrams to a set of
hosts (members of a multicast group) in various
scattered subnets.
21- IP-Multicast is a best-effort service.
- Reliable/ordered delivery are not guaranteed.
- Reliability may be provided by upper-layer
protocols (e.g., reliable multicast protocols). - IP-Multicast packets include a "group address"
(Class D) in the Destination field of the IP
header.
22Multicast Addressing
- An IP multicast group is identified by a Class D
address. - Multicast group addresses range from (224.0.0.0)
to (239.255.255.255).
23- The Internet Assigned Numbers Authority (IANA)
registers IP multicast groups. - The block of multicast addresses ranging from
(224.0.0.1) to (224.0.0.255) is reserved for
local LAN multicast - used by routing protocols and other low-level
topology discovery or maintenance protocols - E.g., "all-hosts" group (224.0.0.1),
"all-routers group (224.0.0.2), "all DVMRP
routers", etc. - The range (239.0.0.0) to (239.255.255.255) are
used for site-local "administratively scoped"
applications.
24Mapping Class D to Ethernet Address
- All multicast addresses in IANA's reserved block
begin with 01-00-5E (hex) - Mapping between a Class D and an Ethernet
multicast address is obtained by - placing the low-order 23 bits of the Class D
address into the low-order 23 bits of IANA's
reserved address block.
25- How multicast group address 224.10.8.5
(E0-0A-08-05) is mapped into an Ethernet
(IEEE-802) multicast address. - The mapping may place up to 32 different IP
groups into the same Ethernet address because the
upper five bits of the IP multicast group ID are
ignored.
26 The Multicast Host Model
- Hosts can join or leave a group at any time
- A host may be a member of multiple groups
- Senders need not be members of the group
- Participants do not know about each other
- The two components of IP-multicast
- the group membership protocol
- the multicast routing protocol
27(No Transcript)
28Group Membership Protocol
- Routers need to learn about the presence of group
members on directly attached subnets - When a host joins a group
- it transmits a group membership message for the
group(s) that it wishes to receive - sets its IP process and network interface card to
receive packets sent to those groups.
29- This receiver-initiated join process scales well
- as the group size increases, it becomes more
likely for a new member to locate a nearby branch
of the multicast distribution tree.
30- Multicast Routing Protocols
- Run on routers and establish the multicast
distribution tree to forward packets from
sender(s) to group members. - Based on unicast routing concepts
- DVMRP is a distance-vector routing protocol,
- MOSPF is an extension to the OSPF link-state
unicast routing protocol. - Center-based trees (e.g., CBT PIM-SM) introduce
the notion of the tree core.
31Internet Group Management Protocol (IGMP)
- IGMP runs between hosts and their immediately
neighboring multicast routers. - The protocol allows a host to inform its
first-hop router that it wishes to receive
packets destined to a specific group.
32Router Operation in IGMP
- Routers periodically query the LAN to determine
if group members are still active. - One router per LAN is elected as "querier" to
query for group members. - Through IGMP a router determines which multicast
traffic needs to be forwarded to each of its
"leaf" subnets.
33IGMP Version 1
- RFC-1112
- To determine local group membership
- Multicast routers periodically transmit Host
Membership Query messages - Queries are ddressed to the all-hosts group
(224.0.0.1) with TTL 1 (i.e., not forwarded by
any other multicast router).
34Hosts Joining Groups
- Upon receiving a Query, a host responds with a
Host Membership Report for each group that it
wishes to Join - Observation The router only needs to know of at
least one group member on the leaf subnet
35Report Suppression Mechanism
- To avoid Report implosion
- Each host starts a random delay timer for its
Reports. - If during the delay period another Report is
heard for the same group, the host resets its
timer - Otherwise, the host transmits a Report causing
other group members to reset their timers - Thus, Reports are spread out over time and Report
traffic is minimized
36 37Updating Local Membership
- The querier periodically transmits Queries to
update local membership - If no Report is received for a group after a
number of Queries, the router assumes that
members are no longer present on that LAN - the group is removed from the membership list of
that interface/subnet
38Reducing Join Latency
- When a host first joins a group, it immediately
transmits a Report for the group rather than
waiting for a router Query.
39IGMP Version 2 (IGMP V2)
- IGMP V2 was part of IP-mcast (V3.3-3.8)
- spec ltdraft-ietf-idmr-igmp-v2-01.txtgt
- IGMP V2 enhances IGMP V1
- IGMP V2 elects one querier for each LAN, the
router with the lowest IP address. - In V1, the querier election was done by the
multicast routing protocol (different multicast
routing protocol used different methods).
40- IGMP V2 defines a new Query message, the
Group-Specific Query, to Query a specific group
rather than all groups
41Reducing Leave Latency
- To reduce leave latency V2 defines a Leave
Group message - When a host leaves a group, it sends a Leave
Group to the all-routers group (224.0.0.2) with
the group field set to the group to be left. - Upon receiving a Leave from a LAN, the querier
sends Group-Specific Query on that LAN. - If there are no Reports in response to the
Group-Specific Query, the group is removed from
the membership list of that subnet.
42- Observation With IGMP V1 and V2, if a host wants
to receive any sources from a group, the traffic
from all sources for the group has to be
forwarded onto the subnet.
43IGMP Version 3 (IGMP v3)
- Spec ltdraft-ietf-idmr-igmp-v3-03.txtgt
- IGMP V3 supports Group-Source Reports
- A host can elect to receive traffic from specific
sources of a multicast group. - An inclusion Group-Source Report specifies the
sources a host wants to receive. - An exclusion Group-Source Report identifies the
sources a host does not want to receive.
44- IGMP v3 enhances support for Leave Group messages
to support Group-Source Leave messages - A host can leave an entire group or specific
(source, group) pair(s).
45Multicast Forwarding Algorithms
- A multicast routing protocol is responsible for
the establishment of the multicast distribution
tree and for performing packet forwarding.
46- Several algorithms may be employed by multicast
routing protocols - Flooding
- Spanning Trees
- Reverse Path Broadcasting (RPB)
- Truncated Reverse Path Broadcasting (TRPB)
- Reverse Path Multicasting (RPM)
- Core-Based Trees
47- These algorithms are implemented in the most
prevalent multicast routing protocols in the
Internet today. - Distance Vector Multicast Routing Protocol
(DVMRP) - Multicast OSPF (MOSPF)
- Protocol-Independent Multicast (PIM) PIM-DM and
PIM-SM
48Flooding
- The simplest technique for multicast delivery.
- When a router receives a multicast packet it
determines whether or not this is the first time
it has seen this packet. - On first reception, a packet is forwarded on all
interfaces except the one on which it arrived. - If the router has seen the packet before, it is
discarded.
49- A router does not maintain a routing table, but
needs to keep track of recently seen packets. - Flooding does not scale for Internet-wide
application - Generates a large number of duplicate packets and
uses all available paths across the internetwork.
- Routers maintain a distinct table entry for each
recently seen packet (consumes memory).
50 Spanning Tree
- More effective than flooding
- Defines a tree structure where one active path
connects any two routers on the Internet. - Spanning Tree rooted at R
51- A router forwards each multicast packet to
interfaces that are part of the spanning tree
except the receiving interface. - A spanning tree avoids looping of multicast
packets and reaches all routers in the network.
52- A spanning tree algorithm is easy to implement
- However, a spanning tree solution
- may centralize traffic on small number of links
- may not provide the most efficient path between
the source and the group members.
53Reverse Path Broadcasting (RPB)
- More efficient than building a single spanning
tree for the entire Internet. - Establishes source-rooted distribution trees for
every source subnet. - A different spanning tree is constructed for each
active (source, group) pair.
54RPB Algorithm
- For each (source, group) pair
- if a packet arrives on a link that the router
considers to be the shortest path back to the
source of the packet - then the router forwards the packet on all
interfaces except the incoming interface. - Otherwise, the packet is discarded.
55- The interface over which a router accepts
multicast packets from a particular source is
called the "parent" link. - The outbound links over which a router forwards
the multicast packets are called the "child"
links.
56- Reverse Path Broadcasting (RPB) Forwarding
57- Enhancement to reduce packet duplication
- A router determines if a neighboring router
considers it to be on the shortest path back to
the source. - If Yes, the packet is forwarded to the neighbor.
- Otherwise, the packet is not forwarded on that
potential child link.
58- To derive the parent-child information
- link-state routing protocol already has it (since
each router maintains a topological database for
the entire routing domain). - distance-vector routing protocol uses poison
reverse - a neighbor can either advertise its previous hop
for the source subnet as part of its routing
update messages or "poison reverse" the route.
59- Example of Reverse Path Broadcasting
60Benefits
- Reasonably efficient and easy to implement.
- Does not require keeping track of previous
packets, as flooding does. - Multicast packets follow the "shortest" path from
the source to the group members. - Avoids concentration over single spanning tree
61 Limitations
- Does not take into account group membership when
building the distribution tree. - As a result, packets may be unnecessarily
forwarded to subnets with no group members.
62Truncated Reverse Path Broadcasting (TRPB)
- Using IGMP, routers discover group members and
avoid forwarding packets onto leaf subnets with
no members. - The spanning delivery tree is "truncated" if a
leaf subnet has no group members.
63- Truncated Reverse Path Broadcasting (TRPB)
64- TRPB eliminates unnecessary traffic on leaf
subnets - But it does not consider group membership when
building the branches of the distribution tree.
65Reverse Path Multicasting (RPM)
- RPM enhances TRPB.
- RPM creates a delivery tree that spans only
-Subnets with group members-Routers and subnets
along the shortest path to group members - In RPM, non-member branches are pruned
- Packets are forwarded only along branches leading
to group members.
66RPM Operation
- The first multicast packet is forwarded (using
TRPB) to all routers in the network. - Routers at edges of the network with no
downstream routers are called leafrouters. - A leaf router with no downstream members sends a
"prune" message on its parent link to stop packet
flow down that branch.
67- Prune messages are sent hop-by-hop back toward
the source. - A router receiving a prune message stores the
prune state in memory. - A router with no local members that receives
prunes on all child interfaces sends a prune one
hop back toward the source. - This succession of prune messages creates a
multicast forwarding tree that contains only
branches that lead to group members.
68- Reverse Path Multicasting (RPM)
69 - To adapt to membership/network dynamics, the
prune state is timed out periodically, and
packets are broadcast throughout the network. - This may result in a burst of prune messages.
70Limitations
- Despite improvements over RPM, there are scaling
issues and limitations - Multicast packets are periodically forwarded to
every router in the network. - Routers maintain prune state off-tree for all
(source,group) pairs. - These limitations are amplified with increase in
number of sources and groups.
71Center/Core-Based Trees (CBT)
- Earlier algorithms build source-based trees
- CBT builds a single delivery tree (rooted at the
core) that is shared by all group members. - Multicast traffic for each group is sent and
received over the shared tree, regardless of the
source.
72CBT Operation
- A core-based tree involves one or more cores in
the CBT domain. - Each leaf-router of a group sends a hop-by-hop
"join" message toward the "core tree" of that
group. - Routers need to know the group core to send the
join request.
73- Intermediate routers process the join request
- The interface on which the join was received is
added to the delivery tree. - Intermediate routers forward join requests toward
the core until the join reaches a core or a
router on the distribution tree. - Senders unicast their packets toward the core.
- When the unicast packet reaches a member of the
delivery tree, the packet is multicast to all
outgoing interfaces that are part of the tree.
74Benefits
- Advantages over RPM, in terms of scalability
- A router maintains state information for each
group, not for each (source, group) pair. - Multicast packets only flow down branches leading
to members (not periodically broadcast). - Only join state is kept on-tree
75Limitations
- CBT may result in traffic concentration near the
core since traffic from all sources traverses the
same set of links as it approaches the core. - A single shared delivery tree may create
sub-optimal routes resulting in increased delay. - Core management issues
- dynamic core selection
- core placement strategies
76Multicast Routing Protocols
- In general, there are two classes of multicast
routing protocols - Dense-mode protocols (broadcast-and-prune)
- DVMRP, PIM-DM, (MOSPF!)
- Sparse-mode protocols (explicit-join)
- PIM-SM, CBT, BGMP
77Dense vs. Sparse Mode Multicast
S
R1
R2
R3
R4
Dense-Mode Multicast
78Dense vs. Sparse Mode Multicast
S
R1
Root
R2
R3
R4
Sparse-Mode Multicast
79Distance Vector Multicast Routing Protocol (DVMRP)
- DVMRP constructs source-rooted trees using
variants of RPM. - Many MBONE routers run DVMRP
- DVMRP was first defined in RFC-1075.
- The original spec was derived from the Routing
Information Protocol (RIP) and used TRPB. - Mrouted version 3.8 uses RPM.
80DVMRP Basic Operation
- DVMRP implements RPM.
- The first packet for any (source, group) pair is
broadcast to the entire network, providing the
packet's TTL permits. - Leaf routers with no local members send prune
messages back toward the source.
81- Prune messages cause the removal of branches that
do not lead to group members - The result is source-specific shortest path tree
with all leaves having group members. - After a period of time, the pruned branches grow
back and the packets are broadcast throughout the
network. - A graft mechanism helps to quickly
re-establish previously pruned branches.
82- A new member joining the group causes the
first-hop router to send a graft message to the
group's previous-hop router. - When an upstream router receives a graft message,
it removes the prune state. - Graft messages may cascade back toward the source
allowing previously pruned branches to be
restored.
83Example DVMRP Scenario
g
g
s
g
84Initial Broadcast using Truncated Broadcast
g
g
s
g
85Prune non-member branches
g
g
prune (s,g)
prune (s,g)
s
g
86Graft new members
g
g
g
report (g)
graft (s,g)
graft (s,g)
s
g
87DVMRP Distribution Tree
g
g
g
s
g
88Avoiding duplicates on LANs
- To avoid duplicates, one router per LAN is
elected the Dominant Router
89- The router with lowest metric to the source
subnet (with the lowest IP address as tie
breaker) becomes the Dominant router - A dominant router is the forwarder for the LAN
for traffic from the source subnet
90DVMRP Forwarding Table
- Entries in a typical DVMRP forwarding table
- Source Subnet
- Multicast Group
- InPort - The parent port for the (S, G) pair. A
"Pr" indicates that a prune was sent to upstream.
- OutPorts - The child ports over which packets
for the (S, G) pair are forwarded. A p
indicates prune message received on that
interface.
91DVMRP Forwarding Table
92Multicast Extensions to OSPF (MOSPF)
- OSPF V2 is defined in RFC-1583.
- OSPF is a unicast routing protocol that
distributes topology information and calculates
routes for a single domain. - MOSPF is defined in RFC-1584.
- MOSPF routers maintain a current image of the
network topology through the unicast OSPF
link-state routing protocol.
93- MOSPF does not support tunnels
- Basic MOSPF runs in a single OSPF domain
- MOSPF uses IGMP to discover members on directly
attached subnets. - The Designated Router (DR) is responsible for
sending membership information to all routers in
the OSPF domain. - The DR floods Group-Membership Link State
Advertisements (LSAs) throughout the OSPF domain.
94Building the Shortest Path Tree
- The shortest path tree for (S, G) pair is built
"on demand" when a router receives the first
packet for (S,G). - When the initial packet arrives, the source
subnet is located in MOSPF link state database. - MOSPF LS-DB OSPF LS-DB Group-Membership LSAs
95- Source-rooted shortest-path tree is constructed
using Dijkstra's algorithm. - To forward packets to downstream members, each
router determines its position in the shortest
path tree - After the tree is built, Group-Membership LSAs
are used to prune those branches that do not lead
to group members.
96- All routers within an OSPF domain calculate the
same shortest path trees. - MOSPF LS-DB allow a router to perform RPM
computation "in memory". - No need for broadcast and prune.
97Forwarding Cache
- Forwarding cache entry contains the (source,
group) pair, the upstream node, and the
downstream interfaces. - MOSPF Forwarding Cache
98- The forwarding cache contains
- Destination The group address
- Source The packets source subnet.
- Upstream The interface from which (S,G) packets
are received. - Downstream The interfaces to which (S,G)
packets are forwarded - TTL min. number of hops a packet needs to reach
the group members. This allows the router to
discard packets with no chance of reaching the
members.
99- The forwarding cache is not aged. The forwarding
cache will change when - The topology of the OSPF network changes, forcing
all of the datagram shortest-path trees to be
recalculated. - There is a change in the Group-Membership LSAs
indicating that the distribution of individual
group members has changed.
100Limitations
- Limited to OSPF domains
- Flooding membership information does not scale
well for Internet-wide multicsat
101Protocol-Independent Multicast (PIM)
- Design Rationale
- Broadcast and prune keeps state off-tree and is
suitable when members are densely distributed - Explicit join/center-based approach keeps state
on-tree and is suitable when members are sparsely
distributed - PIM attempts to combine the best of both worlds
102Design Choices
- Shared trees or shortest path trees?
- Both use shared trees to Rendezvous then
switch to shortest path to deliver - DV or LS for routing?
- Use routing tables regardless of which protocol
created them (hence the name Protocol
Independent)
103PIM Operation Modes
- PIM provides both dense-mode (DM) and sparse-mode
(SM) protocols - PIM-DM similar to DVMRP but does not build its
own routing table - PIM-SM similar to CBT but provides switching to
SPT and bootstrap mechanism for electing the tree
center dynamically
104How PIM-DM works
- Packets initially flow on broadcast tree
- Forwarded away from source using the RPF
algorithm - A router forwards a multicast datagram if
received on the interface used to send unicast
datagrams to the source - Then, Prunes are sent up the tree to remove
branches with no members
105How PIM-DM works
Source
Receiver 1
Receiver 2
106How PIM-DM works
Source
Prune
Receiver 2
Receiver 1
107How PIM-DM works
Source
Asserts
Receiver 2
Receiver 1
108How PIM-DM works
Source
Receiver 2
Receiver 1
109How PIM-DM works
Source
Prune
Join Override
Prune
Receiver 2
Receiver 1
110How PIM-DM works
Source
Receiver 1
Receiver 2
111How PIM-DM works
Source
Graft
Receiver 2
Receiver 1
Receiver 3
112How PIM-DM works
Source
Receiver 1
Receiver 2
Receiver 3
113How PIM-SM works
- A Rendezvous Point (RP) is chosen as tree center
per group to enable members and senders to meet - Members send their explicit joins toward the RP
- Senders send their packets to the RP
- Packets flow only where there is join state
- (,G) any-source,group state is kept in routers
between receivers and the RP
114How PIM-SM works
- When should we use shared-trees versus
source-trees? - Source-trees tradeoff low-delay from source with
more router state - Shared-trees tradeoff higher-delay from source
with less router state - Switch to the source-tree if the data rate is
above a certain threshold
115How PIM-SM works
Source
116How PIM-SM works
Source
B
A
D
RP
E
C
(, G) Join
Receiver 2
Receiver 1
117How PIM-SM works
Source
B
A
D
RP
E
C
Receiver 2
Receiver 1
118How PIM-SM works
Source
Register
B
A
D
RP
E
C
Receiver 2
Receiver 1
119How PIM-SM works
Source
(S, G) Join
(S, G) Join
B
A
D
RP
E
C
Receiver 2
Receiver 1
120How PIM-SM works
Source
Register-Stop
B
A
D
RP
E
C
Receiver 2
Receiver 1
121How PIM-SM works
Source
B
A
D
RP
(S, G) Join
E
C
Receiver 2
Receiver 1
122How PIM-SM works
Source
(S, G) Prune
B
A
D
RP
E
C
(S, G) RP Bit Prune
Receiver 2
Receiver 1
123How PIM-SM works
Source
B
A
D
RP
E
C
(, G) Join
Receiver 2
Receiver 1
124How PIM-SM works
Source
B
A
D
RP
E
C
Receiver 2
Receiver 1