CS640 Introduction to Computer Networks Multicast Nov 29 th, 1999 Prof. Lawrence H. Landweber Prof....
-
Upload
katherine-jodie-mcdaniel -
Category
Documents
-
view
214 -
download
0
Transcript of CS640 Introduction to Computer Networks Multicast Nov 29 th, 1999 Prof. Lawrence H. Landweber Prof....
CS640Introduction to Computer Networks
Multicast
Nov 29th, 1999Prof. Lawrence H. Landweber
Prof. Jun Murai
One to many communication
• Application level one to many communication• multiple unicasts
• IP multicast
S S
R
R
R
R
R
R
Why 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
IP 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)
IP 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
IGMP – Joining a group
R
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
R: ReceiverDR: Designated Router
Data to 224.2.0.1
IGMP Membership-Report
Network A
Network B
DR
IGMP – Leaving a group
R
DR
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.
R: ReceiverDR: Designated Router
Data to 224.2.0.1
IGMP Leave-Group
Network A
Network B
Challenges in this model
• How to select receivers by a sender ?– need authentication, authorization– encryption of data– key distribution– still under research phase
IP 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
Source distribution tree
Receiver 1
E
BA D F
SourceNotation: (S, G) S = Source G = Group
C
Receiver 2
S
R R
Shared distribution tree
Receiver 1
E
BA D F
Source
Notation: (*, G) * = all sources G = Group
C
Receiver 2
S1
R R
Shared Root
S2
Source 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
Shared 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 identi
cal to the source tree
Data 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
Protocol 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
DVMRPexchange 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 data
grams;( ie tunnelings)• ‘Dependent routers’ information
– information about responsible downstream routers for a source– A downstream router send “poison Reverse” to a selected upstrea
m 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 forwarde
r (discover when exchanging metric info.)
DVMRPbroadcast & 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)
RPF(reverse path forwarding)
• RPF check– A packet received through interface I, from S (source) to G (multicas
t 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 nevernever forwarded back out the RPF interface!
DVMRP (1) form a source tree by exchanging metric
Source
Receiver 1
S
R1
DF
source tree
DVMRP (2) broadcast
Source
Receiver 1
S
R1
DF
source treedatagram
DVMRP (3) prune
Source
Receiver 1
S
R1
DF
source treedatagramIGMP DVMRP-Prune
DVMRP (4) X and Y pruned
Source
Receiver 1
S
R1
DF X
Y
source treedatagram
DVMRP (4) New member
Source
Receiver 1
S
R1
DF X
Y
source treedatagram
R2
Receiver 2
IGMP DVMRP-Graft
DVMRP (4) New branch
Source
Receiver 1
S
R1
DF X
Y
source treedatagram
R2
Receiver 2
IGMP DVMRP-Graft
PIM• 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
PIM 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 don’t want data are pruned
PIM 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
PIM 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 EVERYON
E wants to receive the group so it gets flooded to that link by definition
PIM Assert Mechanism
• Routers receive packet on an interface in their “oilist”– Only one router should continue sending to avid duplic
ate 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)
PIM DM State Maintenace
• State is maintained by the “flood and prune” behavior of Dense mode.– Received Multicast packets reset(S,G) entry “ex
piration” timers.– When (S,G) entry “expiration” timers count do
wn to zero, the entry is deleted.
• Interface prune state timers out every 210 seconds causing periodic reflooding and pruning
PIM-DM(1)Initial flood of data
Source
Receiver 2
Receiver 1
S
R1
A
R2
B
C D F
G
H
IE
PIM-DM(2)prune non-RPF p2p link
Source
Receiver 2
Receiver 1
S
R1
A
R2
B
C D F
G
H
IE
IGMP PIM-Prune
PIM-DM(3) C and D Assert to Determine
Forwarder for the LAN, C Wins
Source
Receiver 2
Receiver 1
S
R1
A
R2
B
C D F
G
H
IE
IGMP PIM-Assertwith its own IP address
PIM-DM(4)I, E, G send Prune
H send Join to override G’s Prune
Source
Receiver 2
Receiver 1
S
R1
A
R2
B
C D F
G
H
IE
IGMP PIM-PruneIGMP PIM-Join
PIM-DM(5)I Gets Pruned
E’s Prune is IgnoredG’s Prune is Overridden
Source
Receiver 2
Receiver 1
S
R1
A
R2
B
C D F
G
H
IE
PIM-DM(6)New Receiver, I send Graft
Source
Receiver 2
Receiver 1
S
R1
A
R2
B
C D F
G
H
IE
IGMP PIM-Graft
Receiver 3
R3
PIM-DM(6)new branch
Source
Receiver 2
Receiver 1
S
R1
A
R2
B
C D F
G
H
IE
IGMP PIM-Graft
Receiver 3
R3
PIM-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
PIM-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)
PIM-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
PIM Neighbor Discovery
• PIM Hellos are multicast to the “All-PIM-Routers” (224.0.0.13, ff02::d) multicast group address periodically
• Highest IP address elected as “DR” (Designated Router)
• If “DR” times-out, a new “DR” is elected
PIM 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.
PIM SM State Maintenance
• Periodic Join/Prunes are sent to all PIM neighbors
• Periodic Joins refresh interfaces in a PIM neighbor’s oilists
• Periodic Prunes refresh prune state in a PIM neighbor
• Received Multicast packets reset(S,G) entry expiration timers.
PIM-SM(1)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
PIM-SM(2)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
Receiver 1 Joins Group GC Creates (*, G) State, Sends(*, G) Join to the RP
Join
PIM-SM(3)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
RP Creates (*, G) State
PIM-SM(4)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
Source Sends DataA Sends Registers to the RP
Register
Data
PIM-SM(5)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
RP de-encapsulates RegistersForwards Data Down the Shared TreeSends Joins Towards the Source
joinjoin
PIM-SM(6)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
RP Sends Register-Stop OnceData Arrives Natively
Register-Stop
PIM-SM(7)SPT Switchover
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
C Sends (S, G) Joins to Join theShortest Path (SPT) Tree
join
PIM-SM(8)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
C starts receiving Data natively
PIM-SM(9)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
C Sends Prunes Up the RP tree forthe Source. RP Deletes (S, G) OIF andSends Prune Towards the Source
Prune
PrunePrune
PIM-SM(10)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
B, RP pruned
PIM-SM(11)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
join
New receiver2 joinsE Creates State and Sends (*, G) Join
PIM-SM(12)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
C Adds Link Towards E to the OIFList of Both (*, G) and (S, G)Data from Source Arrives at E
PIM-SM(13)
Receiver 1
Source
Receiver 2
S
R1
A B RP D
C E
R2
C Adds Link Towards E to the OIFList of Both (*, G) and (S, G)Data from Source Arrives at E
Inter-Domain Multicast Routing
• BGP4+ (Multicast BGP) for short-term solution
• MASC : Multicast Address Set and Claim
• BGMP : Border Gateway Multicast Protocol
MASC
• Hierarchical multicast address allocation
• dynamic allocation (lease) by “set and claim with collision”
domain A
domain B domain Cdomain E
domain D
MASC• 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)) m
essage to A and C• A forward it to all children except B.• If A’s 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)
BGMP• Use a PIM-like protocol between domains (“BGP for multicas
t”)• 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
BGMPA host in C joins to Group G
DomainA
DomainE
DomainC
DomainD
DomainB
DomainF
Root domain
C1
A2
E1
A1A4
A3
D1
B1B2
F1F2
M-IGPjoin
join
M-IGPjoin
BGMPTree constructed, data goes to C
DomainA
DomainE
DomainC
DomainD
DomainB
DomainF
Root domain
C1
A2
E1
A1A4
A3
D1
B1B2
F1F2
BGMPDomain E joins to G
DomainA
DomainE
DomainC
DomainD
DomainB
DomainF
join
C1
A2
E1
A1A4
A3
D1
B1B2
F1F2
join
BGMPtree constructed. Data goes to E
DomainA
DomainE
DomainC
DomainD
DomainB
DomainF
C1
A2
E1
A1A4
A3
D1
B1B2
F1F2
Multicast Routers
• mrouted (Xerox PARC) : DVMRP
• GateD (Merit) : DVMRP, PIM-DM, PIM-SM
• Cisco IOS : DVMRP, PIM-DM, PIM-SM
M-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 [email protected]
M-BONE in 1994
M-BONE in 1996
M-BONE in 1998
Future 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.
Reliable multicast technology
• SRM ( scalable Reliable Multicast)– multicast with re-transmit (with random back-off)– All nodes can re-transmit datagram (Multicast/Unica
st)
• MTP (Multicast Transport Protocol: RFC1301)
• FEC (Forward Error Correction)– error packet recovery by redundant packets
IPv6 Multicast Test10sites in Japan
PIM-SM over IPv6 (KAME)Digital Video streaming
Nov 27th, 1999