Title: CS640 Introduction to Computer Networks Multicast
1CS640Introduction to Computer NetworksMulticast
- Nov 29th, 1999Prof. Lawrence H. LandweberProf.
Jun Murai
2One to many communication
- Application level one to many communication
- multiple unicasts
R
R
S
S
R
R
R
R
3Why Multicast
- When sending same data to multiple receivers
- better bandwidth utilization
- less host/router processing
- quicker participation
- Application
- Video/Audio broadcast (TV, radio type)
- Video conferencing
- Real time news distribution
4IP multicast service model
- RFC1112 Host Extensions for IP Multicasting
- Transmission of an IP datagram to a "host group",
- host group identified by a class D IP address
- Members of the group could be present anywhere in
the Internet - Members join and leave the group and indicate
this to the routers - Senders and receivers are distinct i.e., a
sender need not be a member - Routers listen to all multicast addresses and use
multicast routing protocols to manage groups
(IGMP, Internet Group Management Protocol,
RFC2236)
5IP multicast group address
- Class D address space
- high-order three 3bits are set
- 224.0.0.0 239.255.255.255
- Well-known address designated by IANA
- RFC1700
- 224.0.0.0 224.0.0.25
- 224.0.0.1 (ALL-SYSTEMS.MCAST.NET)
- all multicast hosts on the subnet
- 224.0.0.2 (ALL-ROUTERS.MCAST.NET)
- all multicast routers on the subnet
6IGMP Joining a group
- Example R joins to Group 224.2.0.1
- R sends IGMP Membership-Reportto 224.2.0.1
- DR receives it. DR will start forwarding packets
for 224.2.0.1 to Network A - DR periodically sends IGMP Membership-Query to
224.0.0.1 (ALL-SYSTEMS.MCAST.NET) - R answers IGMP Membership-Report to 224.2.0.1
IGMP Membership-Report
R
Network A
DR
Data to 224.2.0.1
Network B
R ReceiverDR Designated Router
7IGMP Leaving a group
- Example R leaves from a Group 224.2.0.1
- R sends IGMP Leave-Group to 224.0.0.2
(ALL-ROUTERS.MCAST.NET) - DR receives it.
- DR stops forwarding packets for 224.2.0.1 to
Network A if no more 224.2.0.1 group members on
Network A.
IGMP Leave-Group
R
Network A
DR
Data to 224.2.0.1
Network B
R ReceiverDR Designated Router
8Challenges in this model
- How to select receivers by a sender ?
- need authentication, authorization
- encryption of data
- key distribution
- still under research phase
9IP multicast routing
- Purpose share a Group information among routers,
to implement a better routing for data
distribution - Distribution tree structure
- Source tree vs shared tree
- Data distribution policy
- ACK type vs NACK type
10Source distribution tree
S
Source
Notation (S, G) S Source G Group
E
C
R
R
Receiver 1
Receiver 2
11Shared distribution tree
S1
Source
Notation (, G) all sources G
Group
Shared Root
S2
E
C
R
R
Receiver 1
Receiver 2
12Source tree characteristics
- Source tree
- More memory O (G x S ) in routers
- optimal path from source to receiver, minimizes
delay - good for
- small number of senders, many receivers such as
Radio broadcasting application
13Shared tree characteristics
- Shared tree
- less memory O (G) in routers
- Sub-optimal path from source to receiver, may
introduce extra delay (source to root) - May have duplicate data transfer (possible
duplication of a path from source to root and a
path from root to receivers) - good for
- Many senders with low bandwidth
- environment such as most part of the shared tree
is identical to the source tree
14Data distribution policy
- NACK type
- Start with broadcasting then prune brunches
with no receivers, to create a distribution tree - a lot of un-used traffic when small receivers in
wide area - ACK type
- forward only to the hosts which explicitly joined
to the group - latency by join propagation and high costs when
many receivers
15Protocol types
- Dense mode protocols
- assumes dense group membership
- Source distribution tree and NACK type
- DVMRP (Distance Vector Multicast Routing
Protocol) - PIM-DM (Protocol Independent Multicast, Dense
Mode) - Sparse mode protocol
- assumes sparse group membership
- Shared distribution tree and ACK type
- PIM-SM (Protocol Independent Multicast, Sparse
Mode) - CBT
16DVMRPexchange distance vector
- Maintain multicast routing table by exchanging
distance vector information among routers - consistent view of a tree among all routers
- convenient to have separate paths for unicast
versus multicast datagrams( ie tunnelings) - Dependent routers information
- information about responsible downstream routers
for a source - A downstream router send poison Reverse to a
selected upstream router to indicate the
dependency. - Poison Reverse metric 32 (inf)
- entry will be removed from the list by prune
message - Designated Forwarder
- multiple routers on the same LAN
- lower metric or lower IP address becomes the
designated forwarder (discover when exchanging
metric info.)
17DVMRPbroadcast prune
- Forward multicast packets based on RPF (Reverse
path forwarding) rule - leaf routers check and sends prune message to
upstream router when no group member on the
network - upstream router prune the interface with no
dependent downstream router. - Graft message to create a new branch for late
participants - Restart forwarding after prune lifetime (standard
720 minutes) - draft-ietf-idmr-dvmrp-v3-09.txt (September 1999)
18RPF(reverse path forwarding)
- RPF check
- A packet received through interface I, from S
(source) to G (multicast group) packet (S,G) - A router looks into the routing table to find an
interface used to send packet to S, I(parent). - If I ! I (parent), I is a wrong interface to
receive (S,G). - if I I(parent), I is a correct interface to
receive (S, G). - If the RPF check succeeds, the datagram is
forwarded to all interfaces except I. - If the RPF check fails, the datagram is typically
silently discarded - Packet is never forwarded back out the RPF
interface!
19DVMRP (1) form a source tree by exchanging metric
source tree
S
Source
DF
R1
Receiver 1
20DVMRP (2) broadcast
source tree
S
datagram
Source
DF
R1
Receiver 1
21DVMRP (3) prune
source tree
S
datagram
Source
IGMP DVMRP-Prune
DF
R1
Receiver 1
22DVMRP (4) X and Y pruned
source tree
S
datagram
Source
DF
X
Y
R1
Receiver 1
23DVMRP (4) New member
source tree
S
datagram
Source
IGMP DVMRP-Graft
DF
X
Y
R1
R2
Receiver 1
Receiver 2
24DVMRP (4) New branch
source tree
S
datagram
Source
IGMP DVMRP-Graft
DF
X
Y
R1
R2
Receiver 1
Receiver 2
25PIM
- PIM Protocol Independent Multicast
- independent of particular unicast routing
protocol - Pros simple, less overhead
- Cons may cause more broadcast-and-prunes
- All routers in a domain support PIM
- No multicast tunnel
- PIM v2 is assigned new protocol 103
26PIM DM overview(1)
- Broadcast and prune ideal for dense group
- Source tree created on demand based on RPF rule
- If the source goes inactive, the tree is torn
down - Easy plug-and-play
- Branches that dont want data are pruned
27PIM DM overview(2)
- Grafts used to join existing source tree
- Uses Asserts to determine the forwarder for
multi-access LAN - Prunes on non-RPF P2P links
- Rate-limited prunes on RPF P2P links
28PIM DM Forwarding
- PIM DM interfaces are placed on the oilist for
a multicast group if - PIM neighbor heard on interface
- Host on this interface has just joined the group
- Interface has been manually configured to join
group - Packets are flooded out all interfaces in
oilist - If a PIM neighbor is present, DM assumes EVERYONE
wants to receive the group so it gets flooded to
that link by definition
29PIM Assert Mechanism
- Routers receive packet on an interface in their
oilist - Only one router should continue sending to avid
duplicate packets. - Routers sends PIM assert messages
- Compare distance and metric values
- Router with best route to source wins
- If metric distance equal, highest IP addr wins
- Losing router stops sending (prunes interface)
30PIM DM State Maintenace
- State is maintained by the flood and prune
behavior of Dense mode. - Received Multicast packets reset(S,G) entry
expiration timers. - When (S,G) entry expiration timers count down
to zero, the entry is deleted. - Interface prune state timers out every 210
seconds causing periodic reflooding and pruning
31PIM-DM(1)Initial flood of data
S
Source
A
B
G
F
C
D
H
I
E
R1
R2
Receiver 1
Receiver 2
32PIM-DM(2)prune non-RPF p2p link
S
IGMP PIM-Prune
Source
A
B
G
F
C
D
H
I
E
R1
R2
Receiver 1
Receiver 2
33PIM-DM(3) C and D Assert to DetermineForwarder
for the LAN, C Wins
S
IGMP PIM-Assertwith its own IP address
Source
A
B
G
F
C
D
H
I
E
R1
R2
Receiver 1
Receiver 2
34PIM-DM(4)I, E, G send PruneH send Join to
override Gs Prune
S
IGMP PIM-Prune
Source
IGMP PIM-Join
A
B
G
F
C
D
H
I
E
R1
R2
Receiver 1
Receiver 2
35PIM-DM(5)I Gets PrunedEs Prune is IgnoredGs
Prune is Overridden
S
Source
A
B
G
F
C
D
H
I
E
R1
R2
Receiver 1
Receiver 2
36PIM-DM(6)New Receiver, I send Graft
S
IGMP PIM-Graft
Source
A
B
G
F
C
D
H
I
E
R1
R2
Receiver 1
R3
Receiver 2
Receiver 3
37PIM-DM(6)new branch
S
IGMP PIM-Graft
Source
A
B
G
F
C
D
H
I
E
R1
R2
Receiver 1
R3
Receiver 2
Receiver 3
38PIM-SM overview (1)
- Shared Tree for a group with RP (Rendez-Vous
Point) as a root - Explicit Join Model
- Receivers send Join towards the RP
- Sender Register with RP
- Last hop routers can join source tree if the data
rate warrants by sending joins to the source - RPF check depends on tree type
- For shared trees, uses RP address
- For source tress, uses Source address
39PIM-SM overview(2)
- Only one RP is chosen for a particular group
- RP statically configured or dynamically learned
(Auto-RP, PIM v2 candidate RP advertisements) - Data forwarded based on the source state (S, G)
if it exists, otherwise use the shared state (,
G) - RFC2362 PIM Sparse Mode Protocol Spec
(experimental) - Internet Draft draft-ietf-pim-v2-sm-00.txt
(October 1999)
40PIM-SM Basics
- PIM Neighbor Discovery
- PIM SM Forwarding
- PIM SM Joining
- PIM SM REgistering
- PIM SM SPT-Swichover
- PIM SM Pruning
- PIM SM Bootstrap
- PIM SM State Maintenance
41PIM Neighbor Discovery
- PIM Hellos are multicast to the All-PIM-Routers
(224.0.0.13, ff02d) multicast group address
periodically - Highest IP address elected as DR (Designated
Router) - If DR times-out, a new DR is elected
42PIM SM Bootstrap
- A set of routers are configured as candidate
Bootstrap Router(BSR)s - single BSR is selectd for the domain
- Candidate RPs periodically unicast
Candidate-RP-Advertisement messages (C-RP-Advs)
to BSR - The BSR periodically sends Bootstrap messages
containing the set of Candidate-RPs - Bootstrap message are flooded in the domain
- Routers receive and store Bootstrap messages
originated by the BSR.
43PIM SM State Maintenance
- Periodic Join/Prunes are sent to all PIM
neighbors - Periodic Joins refresh interfaces in a PIM
neighbors oilists - Periodic Prunes refresh prune state in a PIM
neighbor - Received Multicast packets reset(S,G) entry
expiration timers.
44PIM-SM(1)
S
Source
A
B
RP
D
C
E
R2
R1
Receiver 1
Receiver 2
45PIM-SM(2)
S
Receiver 1 Joins Group GC Creates (, G) State,
Sends(, G) Join to the RP
Source
A
B
RP
D
Join
C
E
R2
R1
Receiver 1
Receiver 2
46PIM-SM(3)
S
RP Creates (, G) State
Source
A
B
RP
D
C
E
R2
R1
Receiver 1
Receiver 2
47PIM-SM(4)
S
Source Sends DataA Sends Registers to the RP
Source
Register
Data
A
B
RP
D
C
E
R2
R1
Receiver 1
Receiver 2
48PIM-SM(5)
S
RP de-encapsulates RegistersForwards Data Down
the Shared TreeSends Joins Towards the Source
Source
join
join
A
B
RP
D
C
E
R2
R1
Receiver 1
Receiver 2
49PIM-SM(6)
S
RP Sends Register-Stop OnceData Arrives Natively
Source
Register-Stop
A
B
RP
D
C
E
R2
R1
Receiver 1
Receiver 2
50PIM-SM(7)SPT Switchover
S
C Sends (S, G) Joins to Join theShortest Path
(SPT) Tree
Source
A
B
RP
D
join
C
E
R2
R1
Receiver 1
Receiver 2
51PIM-SM(8)
S
C starts receiving Data natively
Source
A
B
RP
D
C
E
R2
R1
Receiver 1
Receiver 2
52PIM-SM(9)
S
C Sends Prunes Up the RP tree forthe Source. RP
Deletes (S, G) OIF andSends Prune Towards the
Source
Source
Prune
Prune
A
B
RP
D
Prune
C
E
R2
R1
Receiver 1
Receiver 2
53PIM-SM(10)
S
B, RP pruned
Source
A
B
RP
D
C
E
R2
R1
Receiver 1
Receiver 2
54PIM-SM(11)
S
Source
New receiver2 joinsE Creates State and Sends (,
G) Join
A
B
RP
D
C
E
join
R2
R1
Receiver 1
Receiver 2
55PIM-SM(12)
S
Source
C Adds Link Towards E to the OIFList of Both (,
G) and (S, G)Data from Source Arrives at E
A
B
RP
D
C
E
R2
R1
Receiver 1
Receiver 2
56PIM-SM(13)
S
Source
C Adds Link Towards E to the OIFList of Both (,
G) and (S, G)Data from Source Arrives at E
A
B
RP
D
C
E
R2
R1
Receiver 1
Receiver 2
57Inter-Domain Multicast Routing
- BGP4 (Multicast BGP) for short-term solution
- MASC Multicast Address Set and Claim
- BGMP Border Gateway Multicast Protocol
58MASC
- Hierarchical multicast address allocation
- dynamic allocation (lease) by set and claim with
collision
domain A
domain E
domain B
domain C
domain D
59MASC
- Assume Addr(A) is allocated to domain A, A notify
to B C and E. - B selects Addr(B) , subset of Addr(A) and send
Claim (addr(B)) message to A and C - A forward it to all children except B.
- If As children is already using Addr(B), report
collision to A. - A notify the collision to B to select other
address space. - B wait for a certain period before using it.
- Address space information is used to create
distribution tree using BGMP. - Stored in M-RIB (Multicast Routing Information
Base)
60BGMP
- Use a PIM-like protocol between domains (BGP for
multicast) - BGMP builds shared tree of domains for a group
- So we can use a rendezvous mechanism at the
domain level - Shared tree is bidirectional
- Root of shared tree of domains is at root domain
- Runs in routers that border a multicast routing
domain - Runs over TCP like BGP
- Joins and prunes travel across domains
- Can build unidirectional source trees
- M-IGP(multicast Intra-Gateway Protocol) tells the
borders about group membership
61BGMPA host in C joins to Group G
DomainE
DomainD
E1
D1
A1
A4
DomainA
join
A3
M-IGP
Root domain
A2
DomainB
join
B1
B2
M-IGP
join
C1
DomainC
DomainF
F2
F1
62BGMPTree constructed, data goes to C
DomainE
DomainD
E1
D1
A1
A4
DomainA
A3
Root domain
A2
DomainB
B1
B2
C1
DomainC
DomainF
F2
F1
63BGMPDomain E joins to G
DomainE
DomainD
E1
join
D1
A1
A4
DomainA
join
A3
A2
DomainB
B1
B2
C1
DomainC
DomainF
F2
F1
64BGMPtree constructed. Data goes to E
DomainE
DomainD
E1
D1
A1
A4
DomainA
A3
A2
DomainB
B1
B2
C1
DomainC
DomainF
F2
F1
65Multicast Routers
- mrouted (Xerox PARC) DVMRP
- GateD (Merit) DVMRP, PIM-DM, PIM-SM
- Cisco IOS DVMRP, PIM-DM, PIM-SM
66M-Bone
- Wide area IP multicast test bed using IP-in-IP
tunneling technology - Routing protocol
- DVMRP is used
- Transition to PIM (DM, SM) is ongoing
- Started in March 1992 for audio broadcasting of
IETF meeting (San Diego) - Latest tolopology
- ftp//ftp.parcftp.xerox.com/pub/net-research/mbone
/maps/mbone-map-big.ps - About 6000 (S,G) entries
- Discussion in by mbone_at_isi.edu
67M-BONE in 1994
68M-BONE in 1996
69M-BONE in 1998
70Future Mulicast Service
- Current multicast service - latency and packet
drop - Research for Reliable multicast is actively
going on for - large scale interactive game on the Internet
- Distributed database
- large scale news distribution etc.
71Reliable multicast technology
- SRM ( scalable Reliable Multicast)
- multicast with re-transmit (with random back-off)
- All nodes can re-transmit datagram
(Multicast/Unicast) - MTP (Multicast Transport Protocol RFC1301)
- FEC (Forward Error Correction)
- error packet recovery by redundant packets
72IPv6 Multicast Test10sites in Japan PIM-SM over
IPv6 (KAME)Digital Video streaming
Nov 27th, 1999
73(No Transcript)