1 Chapter 16b Chapter 16b Multicasting Multicasting
Jan 12, 2016
1
Chapter 16bChapter 16b
MulticastingMulticasting
Chapter 16b Multicasting2
Multicasting ApplicationsMulticasting ApplicationsMultimediaMultimedia
– television, presentations, etc.television, presentations, etc.TeleconferencingTeleconferencing
– voice and videovoice and videoDatabaseDatabase
– replication and updatesreplication and updatesDistributed computing and real-Distributed computing and real-
time workgrouptime workgroup– exchange of results, files, graphics, exchange of results, files, graphics,
messages, etc.messages, etc.
QoS
Att
rib
ute
s
Chapter 16b Multicasting3
Multicast Example - Multicast Example - BroadcastBroadcast(or “Flooding”)(or “Flooding”)
Chapter 16b Multicasting4
Multiple Unicast ExampleMultiple Unicast Example
Chapter 16b Multicasting5
Multicast StrategiesMulticast Strategies
Chapter 16b Multicasting6
True MulticastTrue MulticastSource knows network location of Source knows network location of
multicast group membersmulticast group members– identifies identifies least cost pathleast cost path to each to each
membermember– establishes a establishes a partial spanning treepartial spanning tree to to
reach all group member networksreach all group member networksSource node sends Source node sends single packetsingle packet
along tree pathalong tree pathPacket is Packet is replicatedreplicated by routers by routers at at
each branch pointeach branch point in path in path
Chapter 16b Multicasting7
True Multicast ExampleTrue Multicast Example
Chapter 16b Multicasting8
Multicast Operation Multicast Operation
Spanning Tree from Source Multicast Group Packets Generated for Transmission
Chapter 16b Multicasting9
Multicast StrategiesMulticast Strategies
Chapter 16b Multicasting10
Multicast RequirementsMulticast Requirements Unique Unique multicast addressingmulticast addressing scheme scheme
– IPv4 Class D addresses: 1110, followed by 28-bit IPv4 Class D addresses: 1110, followed by 28-bit group identifiergroup identifier
– IPv6: 11111111, 3 flag bits, 4 scope bits, and IPv6: 11111111, 3 flag bits, 4 scope bits, and 112-bit group identifier112-bit group identifier
NodesNodes must be able to translate between multicast must be able to translate between multicast addressesaddresses and list of networks that have membersand list of networks that have members
RoutersRouters must translate between multicast address must translate between multicast address and subnetwork addressing (e.g. MAC multicast)and subnetwork addressing (e.g. MAC multicast)
Must have mechanism for Must have mechanism for hosts hosts to inform routers to inform routers of group membership/exclusionof group membership/exclusion
Routers Routers must have mechanism for determining must have mechanism for determining and applying multicast routing paths (multiple and applying multicast routing paths (multiple outbound paths for the same received packet)outbound paths for the same received packet)
Chapter 16b Multicasting11
Multicast Operation - Multicast Operation - Duplication AvoidanceDuplication Avoidance
Spanning Tree from Router C to Multicast Group
How do you avoid this problem?
Chapter 16b Multicasting12
Multicast Operation - Multicast Operation - Duplication AvoidanceDuplication Avoidance Multicast routing is Multicast routing is
based on based on knowledge knowledge of source as well as of source as well as multicast destinationmulticast destination
Each router must Each router must calculate calculate spanning spanning tree for source nodetree for source node and route on that and route on that basisbasis
Multicast routing Multicast routing algorithms must algorithms must support this support this capabilitycapability
Spanning Tree from Source Multicast Group
Chapter 16b Multicasting13
Internet Multicast Service Internet Multicast Service ModelModel
multicast group concept: use of multicast group concept: use of indirectionindirection– hosts addresses IP datagram to multicast hosts addresses IP datagram to multicast
groupgroup– routers forward multicast datagrams to routers forward multicast datagrams to
hosts that have “joined” that multicast hosts that have “joined” that multicast groupgroup
128.119.40.186(source)
128.59.16.12 (m/c group member)
128.34.108.63 (m/c group member)
128.34.108.60(m/c group member)
multicast group
226.17.30.197
Chapter 16b Multicasting14
class D Internet addresses reserved for class D Internet addresses reserved for multicast:multicast:
host group semantics:host group semantics: anyone can “join” (receive) multicast anyone can “join” (receive) multicast
groupgroup anyone can send to multicast groupanyone can send to multicast group no network-layer identification to hosts no network-layer identification to hosts
of membersof members needed:needed: infrastructure to deliver mcast- infrastructure to deliver mcast-
addressed datagrams to all hosts that addressed datagrams to all hosts that have joined that multicast grouphave joined that multicast group
Multicast groupsMulticast groups
Chapter 16b Multicasting15
Multicast Routing Multicast Routing MechanismsMechanisms Group-Shared or Center-Group-Shared or Center-Based TreeBased Tree– Single optimum (shortest path) Single optimum (shortest path)
shared tree for all senders/ shared tree for all senders/ receiversreceivers
– Typically based on use of a Typically based on use of a ““centercenter” (rendezvous point) of ” (rendezvous point) of the treethe tree
Source-Based TreeSource-Based Tree– Optimum routing tree for each Optimum routing tree for each
source (sender) in a multicast source (sender) in a multicast groupgroup
– Typically uses Typically uses reverse path reverse path forwardingforwarding
Chapter 16b Multicasting16
Center-Based Routing Center-Based Routing TreesTreesSingle delivery tree shared by allSingle delivery tree shared by allOne router identified as One router identified as “center”“center” of of
tree, designated thetree, designated the rendezvous rendezvous pointpoint
1.1. edge router sends unicastedge router sends unicast join-msgjoin-msg addressed to the rendezvous point addressed to the rendezvous point (center router)(center router)
2.2. join-msg join-msg “processed” by “processed” by intermediate routers and forwarded intermediate routers and forwarded towards centertowards center
3.3. join-msgjoin-msg either hits existing tree either hits existing tree branch for this center, or arrives at branch for this center, or arrives at centercenter
4.4. path taken bypath taken by join-msgjoin-msg becomes new becomes new branch of tree for this routerbranch of tree for this router
Chapter 16b Multicasting17
Center-Based Routing Center-Based Routing ExampleExampleSuppose R6 chosen as center:
R1
R2
R3
R4
R5
R6 R7
router with attachedgroup member
router with no attachedgroup member
path order in which join messages generated
LEGEND:
21
3
1
Chapter 16b Multicasting18
Source-Based Trees with Source-Based Trees with Reverse Path ForwardingReverse Path Forwarding
if if (mcast datagram received on (mcast datagram received on incoming link on shortest path back to incoming link on shortest path back to sender)sender)
thenthen flood flood datagram onto all datagram onto all outgoing outgoing
linkslinks elseelse ignoreignore datagram datagram
Rely on router’s knowledge of Rely on router’s knowledge of unicast shortest path from it to unicast shortest path from it to sendersender
Each router has simple forwarding Each router has simple forwarding behavior:behavior:
Chapter 16b Multicasting19
Reverse-Path Forwarding Reverse-Path Forwarding ExampleExample
R1
R2
R3
R4
R5
R6 R7
LEGENDS: source
router with attachedgroup member
router with no attachedgroup memberdatagram will be forwarded
datagram will not be forwarded
Chapter 16b Multicasting20
Reverse-Path Forwarding Reverse-Path Forwarding ExampleExample
forwarding tree contains forwarding tree contains subtrees with no subtrees with no multicast group membersmulticast group members– no need to forward datagrams down subtreeno need to forward datagrams down subtree– ““prune” messagesprune” messages are sent upstream by are sent upstream by
router with no downstream group membersrouter with no downstream group members
R1
R2
R3
R4
R5
R6 R7
router with attachedgroup member
router with no attachedgroup member
prune message
LEGENDS: source
links with multicastforwarding
P
P
P
Chapter 16b Multicasting21
IGMPv4 Message FormatIGMPv4 Message Format
TypeType– Membership Query: learn group members on networkMembership Query: learn group members on network– Membership Report: declare group membershipMembership Report: declare group membership– Leave Group: declare departure from groupLeave Group: declare departure from group
Max Response TimeMax Response Time– in Membership Query onlyin Membership Query only– max time before sending response in 1/10 second unitsmax time before sending response in 1/10 second units
Checksum:Checksum: 16-bit ones complement 16-bit ones complement Group Address: Group Address: IP multicast address (zero in IP multicast address (zero in
request message)request message)
RFC 2236RFC 2236
Chapter 16b Multicasting22
IGMP OperationIGMP Operation Hosts send Hosts send Membership Report Membership Report to join groupsto join groups
– sent in IP datagram with IP destination address sent in IP datagram with IP destination address equal to Group Addressequal to Group Address
– therefore, routers and other hosts are informed of therefore, routers and other hosts are informed of new membernew member
Multicast routers periodically broadcast Multicast routers periodically broadcast Membership QueryMembership Query to maintain current list to maintain current list– hosts must reply with Report for each group in hosts must reply with Report for each group in
which it wants to remainwhich it wants to remain– if a host hears another Membership Report for one if a host hears another Membership Report for one
of its groups within a random timer value (< of its groups within a random timer value (< maximum response time) , it cancels its report maximum response time) , it cancels its report ((why??why??))
Hosts send Hosts send LeaveLeave when it leaves a group when it leaves a group– Routers then use group-specific Query to determine Routers then use group-specific Query to determine
if any other member of this group are leftif any other member of this group are left
Chapter 16b Multicasting23
IPv6 Group MembershipIPv6 Group Membership
IGMP-like functions incorporated IGMP-like functions incorporated into new version of ICMP for IPv6 into new version of ICMP for IPv6 ((ICMPv6ICMPv6))
ICMPv6 includes group ICMPv6 includes group membership query and report membership query and report messages, and a new group messages, and a new group membership termination messagemembership termination message
Chapter 16b Multicasting24
Multicast Routing Multicast Routing AlgorithmsAlgorithms DVMRPDVMRP: distance vector source-: distance vector source-
based with RPF/RPM, based on RIPbased with RPF/RPM, based on RIP MOSPFMOSPF: link-state source-based, : link-state source-based,
extension of OSPFextension of OSPF CBT: core-based tree CBT: core-based tree PIM-DM: protocol independent, densePIM-DM: protocol independent, dense PIM-SMPIM-SM: protocol independent, : protocol independent,
sparsesparse MBONE: tunneling via backboneMBONE: tunneling via backbone
Chapter 16b Multicasting25
Distance-Vector Multicast Distance-Vector Multicast Routing Protocol (DVMRP)Routing Protocol (DVMRP) The first and, arguably, most widely-The first and, arguably, most widely-
deployed multicast routing algorithm deployed multicast routing algorithm used in the Internetused in the Internet
Straightforward implementation of Straightforward implementation of source-based treessource-based trees – with reverse-path forwarding and pruningwith reverse-path forwarding and pruning– pruned branches automatically restored pruned branches automatically restored
after specified “prune lifetime”after specified “prune lifetime” Uses distance-vector algorithm to Uses distance-vector algorithm to
determine next hop for best path back determine next hop for best path back to the sourceto the source
Chapter 16b Multicasting26
Multicast Extensions to Multicast Extensions to OSPFOSPF
Direct Direct extension extension to OSPF unicast routing to OSPF unicast routing MOSPFMOSPF is designed to operate within a single is designed to operate within a single
AS to generate AS to generate source-specificsource-specific, pre-pruned, , pre-pruned, least-cost treesleast-cost trees for each multicast group for each multicast group
Multicast spanning trees calculated Multicast spanning trees calculated on on demanddemand using using Dijkstra’s algorithmDijkstra’s algorithm
Routers periodically Routers periodically flood group membership flood group membership informationinformation to all other routers in its area to all other routers in its area
– added to the link-state advertisements that added to the link-state advertisements that are used with OSPFare used with OSPF
Chapter 16b Multicasting27
MOSPF RoutingMOSPF Routing
Chapter 16b Multicasting28
Protocol Independent Protocol Independent Multicast (PIM)Multicast (PIM) More general solution to multicast routingMore general solution to multicast routing
– Key assumption: members of any given Key assumption: members of any given multicast group are few and widely-dispersedmulticast group are few and widely-dispersed
Independent of underlying unicast routing Independent of underlying unicast routing algorithmalgorithm
Uses multiple shortest-path unicast Uses multiple shortest-path unicast routing approachrouting approach
Two modes of operation (actually, two Two modes of operation (actually, two separate algorithms):separate algorithms):– dense mode: intra-ASdense mode: intra-AS– sparse mode: inter-ASsparse mode: inter-AS
Chapter 16b Multicasting29
PIM: Protocol Independent PIM: Protocol Independent MulticastMulticast
not dependent on any specific underlying not dependent on any specific underlying unicast routing algorithm (works with all)unicast routing algorithm (works with all)
two different multicast distribution scenarios :two different multicast distribution scenarios :
DenseDense:: group members group members
densely packed, in densely packed, in “close” proximity.“close” proximity.
bandwidth more bandwidth more plentifulplentiful
Sparse:Sparse: # networks with group # networks with group
members small wrt # members small wrt # interconnected networksinterconnected networks
group members “widely group members “widely dispersed”dispersed”
bandwidth not plentifulbandwidth not plentiful
Chapter 16b Multicasting32
Sparse-mode PIM OperationSparse-mode PIM Operation One router is designated as the One router is designated as the RP RP
(rendezvous point)(rendezvous point) for each multicast group for each multicast group (center-based tree, like CBT algorithm)(center-based tree, like CBT algorithm)
Group destination routersGroup destination routers send send Join Join messages to RP requesting membership for messages to RP requesting membership for its hosts in the RP’s groupits hosts in the RP’s group– uses a unicast shortest path route selection (e.g. RIP)uses a unicast shortest path route selection (e.g. RIP)– reverse of this pathreverse of this path becomes part of that RP’s shared becomes part of that RP’s shared
distribution treedistribution tree Source nodes send messages intended for Source nodes send messages intended for
a group to the RP for that groupa group to the RP for that group– uses a uses a unicast shortest pathunicast shortest path route from source to RP route from source to RP– RP routes packets, RP routes packets, using theusing the group-shared tree group-shared tree, back , back
toward routers that have “Join”ed that grouptoward routers that have “Join”ed that group
Chapter 16b Multicasting33
PIM - Sparse ModePIM - Sparse Mode center-based approachcenter-based approach Group router(s) send Group router(s) send joinjoin
msg to the rendezvous msg to the rendezvous point (RP)point (RP)– intermediate routers intermediate routers
update state and update state and forward the forward the joinjoin
after joining via RP, after joining via RP, router can switch from router can switch from the group-shared tree to the group-shared tree to a source-specific treea source-specific tree– increased increased
performance: less performance: less concentration, shorter concentration, shorter pathspaths
R1
R2
R3
R4
R5
R6R7
join
join
join
rendezvouspoint
Chapter 16b Multicasting34
PIM - Sparse ModePIM - Sparse ModeMulticast sources(s):Multicast sources(s): ““Register” with RPRegister” with RP
• RP can extend the RP can extend the multicast tree multicast tree upstream to a upstream to a sourcesource
Send data to RP, via Send data to RP, via unicast path, which unicast path, which then distributes then distributes data down RP-data down RP-rooted treerooted tree
RP can send RP can send stopstop msg to a source if msg to a source if all receivers “leave” all receivers “leave” a groupa group– ““no one is listening!”no one is listening!”
R1
R2
R3
R4
R5
R6R7
all data multicastfrom RendezvousPoint
RP
Source
Chapter 16b Multicasting35
PIM Routing ExamplePIM Routing Example