coms/csee 4140 networking laboratory lecture 11
DESCRIPTION
COMS/CSEE 4140 Networking Laboratory Lecture 11. Salman Abdul Baset Spring 2008. Announcements. Prelab 10 and Lab report 9 due next week before your lab slot Weekly project reports due before Friday 5pm. Agenda. Multicast why multicast? multicast groups terminology (S,G) notation - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/1.jpg)
COMS/CSEE 4140 Networking Laboratory
Lecture 11
Salman Abdul BasetSpring 2008
![Page 2: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/2.jpg)
2
Announcements Prelab 10 and Lab report 9 due next week
before your lab slot Weekly project reports due before Friday
5pm
![Page 3: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/3.jpg)
3
Agenda Multicast
why multicast? multicast groups terminology (S,G) notation
Addressing IGMP Source and core-based trees PIM
PIM-DM PIM-SM
![Page 4: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/4.jpg)
4
Many applications transmit the same data at one time to multiple receivers
Broadcasts of radio or video (streaming) Video conferencing (interactive video) Shared applications (data, file transfer)
A network “must” have mechanisms to support such applications in an efficient manner
Applications with Multiple Receivers
![Page 5: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/5.jpg)
5
Multicasting Multicast communications refers to one-to-
many or many-to-many communications.
IP Multicasting refers to the implementation of multicast communication in the Internet
Multicast is driven by receivers: Receivers indicate interest in receiving data
Unicast Broadcast Multicast
![Page 6: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/6.jpg)
6
Multicasting over a Packet Network Without support for multicast at the
network layer:
Multiple copies of the same message is transmitted on the same link
![Page 7: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/7.jpg)
7
Multicasting over a Packet Network With support for multicast at the
network layer:
• Requires a set of mechanisms: (1) Packet forwarding can send multiple copies of same packet(2) Multicast routing algorithm which builds a spanning tree (dynamically)
![Page 8: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/8.jpg)
Why IP Multicast?
Cost-efficient distribution of data Timely distribution of data Robust distribution of data
“Data” here could be Files Streamed Audio or Video
Source: Internet2 workshop
![Page 9: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/9.jpg)
Cost Efficient Data Distribution This is the core of the streaming case.
Unicast streaming is just too expensive. This is true either on the commodity
Internet or on the Intranet. Multicast is especially compelling for
video.
Question: Is multicast a good model for YouTube? Live video streaming?
Source: Internet2 workshop
![Page 10: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/10.jpg)
Timely Distribution of Data An argument for multicast in financial
services. Though reliability is an issue.
In unicast, it takes time to send packets separately to each receiver. Even if cost is not a problem, time may be. 100 Mb/s link, takes 22 hours to distribute a
100 MB file t0 10,000 machines. With multicast, it will take eight seconds.
Alternate solution is to have huge upstream bw But…
Multicasting is compelling here if timely distribution is important. Source: Internet2 workshop
![Page 11: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/11.jpg)
Robust Distribution of Data Handle sudden large increases in load
streaming data distribution
Multicast was designed to handle sudden large increases in load.
Source: Internet2 workshop
![Page 12: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/12.jpg)
12
Multicast Groups The set of receivers for a multicast
transmission is called a multicast group A multicast group is identified by a multicast
address A user that wants to receive multicast
transmissions joins the corresponding multicast group, and becomes a member of that group
After a user joins, the network builds the necessary routing paths so that the user receives the data sent to the multicast group
![Page 13: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/13.jpg)
13
IP Multicasting: Key questions What IP address / Ethernet address to
send multicast packets to? How to manage groups? How to route multicast packets?
![Page 14: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/14.jpg)
14Network Interface
IP IP Multicast
UDPTCP
Socket Layer
Stream Sockets Datagram Sockets Multicast Sockets
User Layer
The IP Protocol Stack IP Multicasting only supports UDP as
higher layer There is no multicast TCP !
![Page 15: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/15.jpg)
Essential Multicast Terminology
source = origin of multicast streammulticast address = an IP address in the Class D range (224.0.0.0 –
239.255.255.255), used to refer to multiple recipients. A multicast address is also called a multicast group or channel.
multicast stream = stream of IP packets with multicast address for IP destination address. All multicast uses UDP packets.
receiver(s) = recipient(s) of multicast streamtree = the path taken by multicast data. Routing loops are not allowed, so
there is always a unique series of branches between the root of the tree and the receivers.
IP source = IP unicast addrEthernet source = MAC addr
IP destination = IP multicast addr Ethernet dest = MAC addr
source
Multicast stream
receivers
e.g., video server
Source: Internet2 workshop
![Page 16: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/16.jpg)
(S,G) notation For every multicast source there must
be two pieces of information: the source IP address, S, and the group address, G. These correspond to the sender and
receiver addresses in unicast. This is generally expressed as (S,G). Also commonly used is (*,G) - every source
for a particular group.
Source: Internet2 workshop
![Page 17: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/17.jpg)
17
Multicast Protocols
Senders
Delivery tree
Receivers
Group Management Protocol - enables hosts to dynamically join/leave multicast groups. Receivers send group membership reports to the nearest router.
Multicast Routing Protocol - enables routers to build a delivery tree between the sender(s) and receivers of a multicast group.
Group Management Protocol (e.g. IGMP)
Multicast Routing Protocol (e.g. PIM-SM)
![Page 18: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/18.jpg)
18
Agenda Multicast
why multicast? multicast groups terminology (S,G) notation
Addressing IGMP Source and core-based trees PIM
PIM-DM PIM-SM
![Page 19: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/19.jpg)
19
Multicast Addressing Multicast address
IP addresses in the range 224.0.0.0 - 239.255.255.255 (class D address)
Multicast group: same as multicast address Every host (interface) can join and leave a
multicast group dynamically no access control
Every IP datagram send to a multicast group is transmitted to all members of the group no security, no “floor control” Sender does not need to be a member of the group
The IP Multicast service is unreliable
![Page 20: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/20.jpg)
20
Multicast Addressing
Class D 1 multicast group id28 bits
01 1
• All Class D addresses are multicast addresses:
Class From To
D 224.0.0.0 239.255.255.255
• Multicast addresses are dynamically assigned.
• An IP datagram sent to a multicast address is forwarded to everyone who has joined the multicast group
• If an application is terminated, the multicast address is (implicitly) released.
![Page 21: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/21.jpg)
21
Types of Multicast Addresses RFC 3171
http://www.iana.org/assignments/multicast-addresses Examples:
224.0.0.0 - 224.0.0.255 (224.0.0/24) - reserved & not forwarded
224.0.0.1 - All local hosts 224.0.0.2 - All local routers 224.0.0.4 - DVMRP 224.0.0.5 - OSPF 224.0.0.9 - RIP2 224.0.0.13 – PIM 224.0.0.22 – IGMP
232.0.0.0 - 232.255.255.255 (232/8) - SSM 239.0.0.0 - 239.255.255.255 (239/8) - Administrative Scoping
(RFC 2365) Site-local scope: 239.253.0.0/16 Organization-local scope: 239.192.0.0/14
“Ordinary” multicasts don’t have to request a multicast address from IANA.
![Page 22: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/22.jpg)
22
Multicast Address Translation In Ethernet MAC addresses, a multicast
address is identified by setting the lowest bit of the “most left byte”
-------1-------- -------- -------- -------- --------
Not all Ethernet cards can filter multicast addresses in hardware- Then: Filtering is done in
software by device driver.
![Page 23: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/23.jpg)
23
Multicast Address Mapping
0000000100000000 01011110 0------- EthernetAddress
1110xxxx x------- -------- -------- Class DIP Address
Identifes
Class DIgnored 23-bit
address
-------- --------
Ethernet Addresses
with 01:00:5e in the
first 3 bytes are
reserved for IP
multicast
![Page 24: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/24.jpg)
24
Agenda Multicast
why multicast? multicast groups terminology (S,G) notation
Addressing IGMP Source and core-based trees PIM
PIM-DM PIM-SM
![Page 25: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/25.jpg)
25
Multicast Protocols
Senders
Delivery tree
Receivers
Group Management Protocol - enables hosts to dynamically join/leave multicast groups. Receivers send group membership reports to the nearest router.
Multicast Routing Protocol - enables routers to build a delivery tree between the sender(s) and receivers of a multicast group.
Group Management Protocol (e.g. IGMP)
Multicast Routing Protocol (e.g. PIM-SM)
![Page 26: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/26.jpg)
26
IGMP (RFC 1112) The Internet Group Management Protocol
(IGMP) is a simple protocol for the support of IP multicast.
IGMP operates on a physical network (e.g., single Ethernet Segment.
IGMP is used by multicast routers to keep track of membership in a multicast group.
Support for: Joining a multicast group Query membership Send membership reports
![Page 27: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/27.jpg)
27
A host sends an IGMP report when it joins a multicast group Multiple processes on a host can join. A report is sent only for the first process.
No report is sent when a process leaves a group A multicast router regularly multicasts an IGMP
query to all hosts (group address is set to 0.0.0.0). A host responds to an IGMP query with an IGMP
report.
Multicast router keeps a table of the multicast groups that have joined hosts. The router only forwards a packet, if there is a host still joined.
IGMP Protocol
![Page 28: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/28.jpg)
28
IGMP Packet Format IGMP messages are only 8 bytes long
Ethernet Header IP headerIGMP
Message
8 bytes20 bytes14 bytes
Type Max resp. time
Multicast group address
Checksum
IGMPv20x11 Membership query (group addr: 0.0.0.0)0x16 Membership report0x17 Leave group
![Page 29: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/29.jpg)
29
IGMP Protocol
IGMP query
IGMP Report
R1Ethernet
H1 H2
![Page 30: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/30.jpg)
30
IGMP Protocol
R1Ethernet
IGMP general queryIGMP group address = 0.0.0.0Destination IP address = 224.0.0.1Source IP address = router's IP address
IGMP membership reportIGMP group address = group addressDestination IP address= group addressSource IP address = host's IP address
H1 H2
IGMP group-specific queryIGMP group address = group addressDestination IP address = group addressSource IP address = router's IP address
![Page 31: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/31.jpg)
31
Networks with multiple multicast routers Only one router
responds to IGMP queries (Querier) Router with
smallest IP address becomes the querier on a network.
One router forwards multicast packets to the network (Forwarder).
Ethernet
Host
Querier Forwarder
Multicast Network
IGMP query
Multicastpacket
![Page 32: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/32.jpg)
32
Agenda Multicast
why multicast? multicast groups terminology (S,G) notation
Addressing IGMP Source and core-based trees PIM
PIM-DM PIM-SM
![Page 33: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/33.jpg)
33
Multicast Protocols
Senders
Delivery tree
Receivers
Group Management Protocol - enables hosts to dynamically join/leave multicast groups. Receivers send group membership reports to the nearest router.
Multicast Routing Protocol - enables routers to build a delivery tree between the sender(s) and receivers of a multicast group.
Group Management Protocol (e.g. IGMP)
Multicast Routing Protocol (e.g. PIM-SM)
![Page 34: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/34.jpg)
34
Multicast Routing Protocols Goal: Build a spanning tree between all
members of a multicast group
![Page 35: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/35.jpg)
35
Multicast routing as a graph problem
S Problem: Embed a tree
such that all multicast group members are connected by the tree
![Page 36: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/36.jpg)
36
Multicast routing as a graph problem
(c) Minimum-cost tree
S Problem: Embed a tree such
that all multicast group members are connected by the tree
Solution 1: Shortest Path Tree or source-based tree Build a tree that minimizes the path cost from the source to each receiver Good tree if there is a single sender If there are multiple senders, need one
tree per sender Easy to compute
![Page 37: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/37.jpg)
37
Multicast routing as a graph problem
S Problem: Embed a tree such
that all multicast group members are connected by the tree
Solution 2: Minimum-Cost Tree Build a tree that minimizes the total cost of the edges Good solution if there are multiple
senders Very expensive to compute (not
practical for more than 30 nodes)
![Page 38: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/38.jpg)
38
Multicast routing in practice Routing Protocols implement one of two
approaches:1. Source Based Tree:
– Essentially implements Solution 1. – Builds one shortest path tree for each sender– Tree is built from receiver to the sender reverse shortest
path / reverse path forwarding (RPF)
2. Core-based Tree: – Build a single distribution tree that is shared by all senders– Does not use Solution 2 (because it is too expensive)– Selects one router as a “core” (also called “rendezvous
point”)– All receivers build a shortest path to the core reverse
shortest path / reverse path forwarding
![Page 39: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/39.jpg)
39
Reverse Path Forwarding (RPF) RPF builds a shortest path tree in a distributed fashion by taking
advantage of the unicast routing tables. Main concept: Given the address of the root of the tree (e.g., the
sending host), a router selects as its upstream neighbor in the tree the router which is the next-hop neighbor for forwarding unicast packets to the root.
This concept leads to a reverse shortest path from any router to the sending host. The union of reverse shortest paths builds a reverse shortest path tree.
RPF Forwarding:Forward a packet only if it is receives from an RPF neighbor
H1
Source
R1
R3
R4
R2
R5
RPFinterface
for H1
RPFneighbor of R3
for H1
Unicast routing table of router R3: Destination Next Hop H1 …
R2
![Page 40: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/40.jpg)
40
Multicast Routing table Routing table entries for source-based trees
and for core-based trees are different Source-based tree: (Source, Group) or (S, G)
entry. Core-based tree: (*, G) entry.
Source IP address
Multicast group
Incoming interface(RPF interface)
Outgoing interface
list
S1 G1 I1 I2, I3
* G2 I2 I1, I3
![Page 41: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/41.jpg)
41
Multicast routing in practice Routing algorithms in practice implement
one of two approaches:
1. Source Based Tree Tree: – Establish a reverse path to the source
2. Core-based Tree: – Establish a reverse path to the core router
![Page 42: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/42.jpg)
42
Building a source-based tree Set routing
tables according to RPF forwarding
Flood-and-Prune
H2
H3
H5H4
H1
Source
R1
R2
R6
R4
R5
R3
R8R7
joined
joined
IGMP
![Page 43: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/43.jpg)
43
H2
H3
H5H4
H1
Source
R1
R2
R6
R4
R5
R3
R8R7
joined
joined
Building a source-based tree Set routing
tables according to RPF forwarding
Flood-and-Prune
Flood= Forward packets that arrive on RPF interface on all non-RPF interfaces
![Page 44: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/44.jpg)
44
H2
H3
H5H4
H1
Source
R1
R2
R6
R4
R5
R3
R8R7
joined
joined
Building a source-based tree Set routing tables
according to RPF forwarding
Flood-and-Prune
Flood= Forward packets on all non-RPF interfaces
Receiver drops packets not received on RPF interface
![Page 45: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/45.jpg)
45
H2
H3
H5H4
H1
Source
R1
R2
R6
R4
R5
R3
R8R7
Prune
joined
joined
Prune
Prune
PrunePrune
Prune
Prune
Prune
Prune
Prun
e
Prune
Prune
Building a source-based tree Set routing tables
according to RPF forwarding
Flood-and-Prune
Prune= Send a prune message when a packet is received on a non-RPF interface or when there are no receivers downstreamPrune message disables routing table entry
![Page 46: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/46.jpg)
46
Pruning Prune message temporarily disables a routing
table entry Effect: Removes a link from the multicast tree No multicast messages are sent on a pruned link Prune message is sent in response to a multicast packet Question: Why is routing table only temporarily disabled?
Who sends prune messages? A router with no group members in its local network and no
connection to other routers (sent on RPF interface) A router with no group members in its local network which has
received a prune message on all non-RPF interfaces (sent on RPF interface)
A router with group members which has received a packet from a non-RPF neighbor (to non-RPF neighbor)
![Page 47: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/47.jpg)
47
H2
H3
H5H4
H1
Source
R1
R2
R6
R4
R5
R3
R8R7
joined
joined
Gra
ft
Graft
joined
Building a source-based tree When a
receiver joins, one needs to re-activate a pruned routing table entry
GraftingSending a Graft message disables prune, and re-activates routing table entry.
![Page 48: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/48.jpg)
48
H2
H3
H5H4
H1
Source
R1
R2
R6
R5
R3
R8R7
joined
joined
Join
JoinJoin
Join
R4
Alternative method for building a source-based tree This only
works if the receiver knows the source
Explicit-Join Receiver sends
a Join message to RPF neighbor
Join message creates (S,G) routing table entry
Join message is passed on
![Page 49: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/49.jpg)
49
H2
H3
H5H4
H1
Source
R1
R2
R6
R4
R5
R3
R8R7
joined
joined
Join
Join
joined
Core
Join
Join
Join
Building a core-based tree One route is
the core
Receiver sends a Join message to RPF neighbor with respect to core
Join message creates (*, G) routing table entry
![Page 50: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/50.jpg)
50
H2
H3
H5H4
H1
Source
R1
R2
R6
R4
R5
R3
R8R7
joined
joined joined
Core
Building a core-based tree Source sends
data to the core
Core forwards data according to routing table entry
![Page 51: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/51.jpg)
51
Agenda Multicast
why multicast? multicast groups terminology (S,G) notation
Addressing IGMP Source and core-based trees PIM
PIM-DM PIM-SM
![Page 52: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/52.jpg)
52
Multicast routing protocols in the Internet Distance Vector Multicast Routing Protocol (DVMRP):
First multicast routing protocol Implements flood-and-prune
Multicast Open Shortest Path First (MOSPF): Multicast extensions to OSPF. Each router calculates a
shortest-path tree based on link state database Not widely used
Core Based Tree (CBT): First core-based tree routing protocol
Protocol Independent Multicast (PIM): Runs in two modes: PIM Dense Mode (PIM-DM) and PIM
Sparse Mode (PIM-SM). PIM-DM builds source-based trees using flood-and-prune PIM-SM builds core-based trees as well as source-based trees
with explicit joins.
![Page 53: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/53.jpg)
53
PIM Messages (PIM version 2)Version
(= 2)Type Reserved Checksum
32 bit
Message type specific part
PIM-DM messages Type PIM-DM PIM-SM Description
Hello 0 Similar to periodic keep-alive
Register 1 Sent by designated router to rendezvous point.
Register-Stop 2
Join/Prune 3 Creates/negates forwarding state
Bootstrap 4
Assert 5
Graft 6 Reinstate a previously pruned branch
Graft-Ack 7
Candidate-RP-Advertisement
8
• Encapsulated in IP datagrams with protocol number 103.
• PIM messages can be sent as unicast or multicast packet
• 224.0.0.13 is reserved as the ALL-PIM-Routers group
![Page 54: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/54.jpg)
54
PIM-DM: PIM Dense Mode PIM-DM
implements flood-and-prune
Orange packet: Multicast packet (=Data)
Blue packet: PIM message
H3H2
S1Source
R1
R3
joined
R4
R2
src: S1dest: G
src: S1dest: G
src: S1dest: G
src: S1dest: G
src: S1dest: G
prune (S1, G)
I1
I1 I3
![Page 55: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/55.jpg)
55
PIM-SM: PIM Sparse Mode Core is called
rendezvous-point (RP)
Receivers know RP (statically configured or dynamically elected)
When receiver joins, a Join message is sent to RP on RPF. H3H2
S1Source
R3
joined
R4
H3H2
S1Source
R3
joined
R4
I1
I1 I3
I1
I2 I3
(a) PIM-SM: H2 joins (b PIM-DM: H3 joins
RP
R1
R2 R5
IGMP
joined
join (*, G)
join (*, G)
IGMP
join (*, G)
I1
I1 I3
RP
R5
R1
R2
![Page 56: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/56.jpg)
56
PIM-SM: PIM Sparse Mode Host H3 joins:
Join message is only forwarded until the first router that is part of the core-based tree.
H3H2
S1Source
R3
joined
R4
I1
I1 I3
RP
R1
R2 R5
IGMP
join (*, G)
![Page 57: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/57.jpg)
57
H3H2
S1Source
R3
joined
R4
src: S1dest: G
src: S1dest: G
I1
I1 I3
RP
R1
R2 R5
src: S1dest: G
src: S1dest: G
H3H2
S1Source
R3
joined
R4
src: S1dest: G
src: S1dest: G
I1
I1 I3
(a) PIM-SM: Register message to RP (b) PIM-SM: Register Stop message to S1
RP
R1
R2 R5
join (S1,G)
register(S1, G)
src: S1dest: G
src: S1dest: G
src: S1dest: G
src: S1dest: G
register stop (S1,G)
register(S1, G)
src: S1dest: G
PIM-SM: Data transmission Source sends
multicast packet to RP Packet is attached to
an RP Register message
When packet reaches RP, it is forwarded in the tree
Also: RP sends a Join message on reverse path to S1
![Page 58: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/58.jpg)
58
H3H2
S1Source
R3
joined
R4
src: S1dest: G
src: S1dest: G
I1
I1 I3
RP
R1
R2 R5
src: S1dest: G
src: S1dest: G
H3H2
S1Source
R3
joined
R4
src: S1dest: G
src: S1dest: G
I1
I1 I3
(b) PIM-SM: Register Stop message to S1
RP
R1
R2 R5
src: S1dest: G
src: S1dest: G
src: S1dest: G
register(S1, G)
src: S1dest: G
PIM-SM: Data transmission When Join
messages reaches R1, it sends a native multicast packet to the RP (in addition to the packet attached to the register message)
![Page 59: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/59.jpg)
59
H3H2
S1Source
R3
joined
R4
src: S1dest: G
src: S1dest: G
I1
I1 I3
RP
R1
R2 R5
src: S1dest: G
src: S1dest: G
H3H2
S1Source
R3
joined
R4
src: S1dest: G
src: S1dest: G
I1
I1 I3
(b) PIM-SM: Register Stop message to S1
RP
R1
R2 R5
src: S1dest: G
src: S1dest: G
src: S1dest: G
register stop (S1,G)
register(S1, G)
src: S1dest: G
PIM-SM: Data transmission When RP receives
native multicast packet it sends a register stop message to R1. This message stops the transmission of register messages from R1.
![Page 60: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/60.jpg)
60
H3H2
S1Source
R3
joined
R4
I1
I1 I3
(a) PIM-SM: R3 switches to a SPT
RP
R1
R2 R5
join (S1,G)
join (S1,G)
src: S1dest: G
src: S1dest: G
src: S1dest: G
src: S1dest: G
src: S1dest: G
PIM-SM: Switching to source-based tree When data to receivers
exceeds a threshold, routers switch to a source-based tree
This is done by sending an explicit join message to the source
There may be duplicate packets being sent for some time
![Page 61: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/61.jpg)
61
PIM-SM: Switching to source-based tree When data arrives
from source (as opposed to RP), a Prune message is sent to the RPT
Now: data is forwarded only along the shortest-path tree
src: S1dest: G
H3H2
S1Source
R3
joined
R4
I1
I1 I3
RP
R1
R2 R5
(b) PIM-SM: Data follows a SPT
src: S1dest: G
prune (S,G,RPT)
src: S1dest: G
prune (S,G,RPT)
src: S1dest: G
![Page 62: COMS/CSEE 4140 Networking Laboratory Lecture 11](https://reader035.vdocuments.us/reader035/viewer/2022062500/5681586a550346895dc5c950/html5/thumbnails/62.jpg)
62
Conclusion Multicast Addressing IGMP Source and core-based trees PIM (SM vs. DM)