Presentation is loading. Please wait.

Presentation is loading. Please wait.

IP Multicasting Let one packet go to multiple addresses and you can save much bandwidth. That’s the promise of IP multicasting…

Similar presentations


Presentation on theme: "IP Multicasting Let one packet go to multiple addresses and you can save much bandwidth. That’s the promise of IP multicasting…"— Presentation transcript:

1 IP Multicasting Let one packet go to multiple addresses and you can save much bandwidth. That’s the promise of IP multicasting…

2 Applications with multiple receivers
Many applications transmit the same data at one time to multiple receivers Broadcasts of Radio or Video Videoconferencing Shared Applications A network must have mechanisms to support such applications in an efficient manner

3 Multicasting Multicast communications refers to one-to-many or many-to-many communications. Unicast Broadcast Multicast IP Multicasting refers to the implementation of multicast communication in the Internet Multicast is driven by receivers: Receivers indicate interest in receiving data

4 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

5 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

6 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)

7 Semantics of IP Multicast
Multicast groups are identified by IP addresses in the range (class D address) Every host (more precisely: 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

8 The IP Protocol Stack IP Multicasting only supports UDP as higher layer There is no multicast TCP ! User Layer Socket Layer Stream Sockets Datagram Sockets Multicast Sockets UDP TCP IP IP Multicast Network Interface

9 IP Multicasting There are three essential components of the IP Multicast service: IP Multicast Addressing IP Group Management Multicast Routing

10 Multicast Addressing All Class D addresses are multicast addresses:
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.

11 Types of Multicast addresses
The range of addresses between and , inclusive, is reserved for the use of routing protocols and other low-level topology discovery or maintenance protocols Multicast routers should not forward any multicast datagram with destination addresses in this range. Examples of special and reserved Class D addresses, e.g,

12 Multicast Address Translation
In Ethernet MAC addresses, a multicast address is identified by setting the lowest bit of the “most left byte” Not all Ethernet cards can filter multicast addresses in hardware - Then: Filtering is done in software by device driver.

13 Multicast Address Mapping

14 Host-Router Signaling: IGMP
The Internet Group Management Protocol (IGMP) is a simple protocol for the support of IP multicast. IGMP is defined in RFC 1112. 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 How hosts tell routers about group membership. Routers solicit group membership from directly connected hosts. Host sends IGMP Report to join group

15 IGMP Protocol A host sends an IGMP report when it joins a multicast group (Note: 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 Changed in version 2 A multicast router regularly multicasts an IGMP query to all hosts (group address is set to zero). A host responds to an IGMP query with an IGMP report. Multicast router keeps a table on the multicast groups that have joined hosts. The router only forwards a packet, if there is a host still joined. Note: Router does not keep track which host is joined. Router sends periodic Queries to One member per group per subnet reports Other members suppress reports.

16 IGMP Packet Format IGMP messages are only 8 bytes long
Type: 1 = sent by router, 2 = sent by host

17 IGMP Protocol Periodically, by default every 125 seconds, a router sends an IGMP general query to all hosts on each of the networks that the router is connected to. The query is sent by setting the destination IP address to all hosts group with IP address If a host is a member of multicast groups it responds to an IGMP query with an IGMP membership report. To prevent duplication of reports, each host waits a random amount of time before sending a membership report. If during the waiting time, another host sends a report for the same group, the host suppresses the transmission of its report. In this fashion, generally only one host responds to a general query. A host always sends an IGMP membership report when it joins a multicast group. If multiple applications on the same host join the same multicast group, and IGMP report is sent only for the first application that joins. A host with multiple network interfaces can join a multicast group on any of its interfaces.

18 IGMP Protocol

19 IGMP Leave Message (in IGMP version 2)
If a host leaves a multicast group, and it was the last one to send a report, it sends a LEAVE Group message Router follows up by a group specific query to make sure that there is indeed no other host in the group

20 IGMPv3 Version 3 adds the ability to join a multicast group only for specific source addresses Can also exclude source addresses This permits the implementation of Source Specific Multicasting (SSM)

21 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).

22 Multicast Routing Protocols
Goal: Build a spanning tree between all members of a multicast group

23 Multicast routing as a graph problem
Problem: Embed a tree such that all multicast group members are connected by the tree

24 Multicast routing as a graph problem
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

25 Multicast routing as a graph problem
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)

26 Multicast routing in practice
Routing Protocols implement one of two approaches: 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 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 Multicast routing is backwards from Unicast routing. Unicast routing is concerned about where the packet is going. Multicast routing is concerned about where the packet came from. Unicast vs. Multicast Forwarding Unicast forwarding Destination IP address directly indicates where to forward packet. Forwarding is hop-by-hop Unicast routing table determines interface and next-hop router to forward packet. Multicast Forwarding Destination IP address (group) doesn’t directly indicate where to forward packet. Forwarding is connection-oriented Receivers must first be “connected” to the source before traffic begins to flow. Connection messages (PIM Joins) follow unicast routing table toward multicast source. Build Multicast Distribution Trees that determine where to forward packets. Distribution trees rebuilt dynamically in case of network topology changes.

27 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 The RPF Calculation The multicast source address is checked against the unicast routing table. This determines the interface and upstream router in the direction of the source to which PIM Joins are sent. This interface becomes the “Incoming” or RPF interface. A router forwards a multicast datagram only if received in the RPF interface.

28 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 Routing table entries for source-based trees and for core-based trees are different. In a source-based tree, a routing table entry contains a source address as well as group address. This is often called a (Source, Group) or (S, G) entry. Since a source-based tree has one distribution tree for each source there may be multiple routing entries for the same multicast group. Routing entries for a core-based tree do not list a source IP address in the source IP column. An arriving multicast packet must match the source address and the group address in an (S, G) entry and the group address in an (*, G) entry. When a match is found the router verifies that the packet arrived on the incoming interface listed. This is called the RPF check. IF successful, one copy of the datagram is forwarded on each interface listed in the outgoing interface list. If there is no match in the routing table or if the RPF check failed, the packet is discarded.

29 Multicast routing in practice
Routing algorithms in practice implement one of two approaches: Source Based Tree Tree: Establish a reverse path to the source Core-based Tree: Establish a reverse path to the core router

30 Building a source-based tree
Set routing tables according to RPF forwarding Flood-and-Prune Each host is connected to a router via an Ethernet network and routers are connected by point-to-point links. H1 is the source of a multicast group and host H3 and H4 are receivers that have joined the multicast group. The arrows in the figure indicate the reverse shortest path for all routers in the network. Data transmissions in the source-based distribution tree for H1 follows the opposite direction of the reverse shortest paths. The paths for H3 and H4 are H1 -> R1 -> R2 -> R5 -> H3 and H1 -> R1 -> R3 -> R7 -> H4, respectively. Since the RPF interface tells each router the upstream neighbor in the distribution tree, but not the downstream neighbors in a distribution tree, additional protocol mechanisms are needed to determine the outgoing interfaces in the multicast routing tables. One method to achieve this is flood-and-prune, which starts out by forwarding multicast packets on all its interfaces and then deletes interfaces which are not part of the distribution tree.

31 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 When a router receives a packet on an interface that is different from the RPF interface for S, it discards the packet.

32 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 The figure shows how multicast packets from H1 are forwarded. Arrows indicate transmission of packets and crosses show where packets are discarded. Due to the flooding of messages many routers receive multiple copies of the same packet. All but the copy arriving on the RPF interface are discarded. A router connected to a LAN, forwards a datagram to the LAN only if some hosts on the LAN are multicast group members. IN the figure these are the LANs where the multicast group members H3 and H4 reside. A router knows about group members on a LAN from IGMP messages.

33 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 downstream Prune message disables routing table entry The second phase of the flood-and-prune method ensures datagrams are delivered to a router only if the router is on a path to a multicast group member. This second phase Is called pruning and works as follows. Whenever a router receives a multicast packet on an interface that is not the RPF interface, the router sends a prune message on that interface. A router sends a prune message on its RPF interface if it is not connected to a LAN with group members and one of the following holds: (1) the router does not have a downstream neighbor in the distribution tree, or (2) the router has received prune messages from all downstream neighbors. When a router receives a prune message fro an (S, G) entry on an interface, it stops forwarding multicast packets for group G from source S on that interface. The figure illustrates the transmission of prune messages. R2 sends a prune message to R4 since the packet from R4 is not the RPF for source H1. R8 sends a Prune message because it does not have a group member in its LAN and it also does not have downstream neighbors. The prune message from R6 to R3 is sent because R6 has received prune messages from all downstream neighbors.

34 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) As a result of pruning, routers receive multicast messages only if they have group members in their connected LANs, or if they are on the reverse shortest path from a multicast group member to the source. Since a multicast group is dynamic and new hosts may join or leave the multicast group, prune message stop the forwarding on an interface only temporarily and reinstate a pruned link, and packets are forwarded over a previously pruned link. This may trigger the transmission of another prune message.

35 Building a source-based tree
When a receiver joins, one needs to re-activate a pruned routing table entry Grafting Sending a Graft message disables prune, and re-activates routing table entry. Since the waiting time until the timeout of a pruned link may be long, a second method exists by which a pruned link is reinstated before the timeout of the pruned link. This is called grafting. A graft message is sent on the RPF interface and voids the pruning of a link. A router that receives a graft message forwards the graft message on its RPF interface, until a router is reached that is part of the distribution tree. The transmission of graft messages is shown in the figure.

36 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 When H3 and H4 want to receive multicast packets from H1, the connected routers R5 and R7, send a join message to the router on their RPF interfaces. When a router receives a join message, it adds the interface where the join message was received to the list of outgoing interfaces of the (S, G) routing table entry. If an (S, G) routing entry does not exist, it will be created when the join message arrives. When R2 receives a join message from R5, it adds the interface that connects to R5 to the outgoing interface list. As with graft messages, a router forwards a join message on its RPF interface only if the router is not part of the distribution tree. When a router in the distribution tree receives a join message, it does not forward the join message. This method of explicit-join messages avoids the transmission of duplicate packets as in flood-and-prune. On the other hand, building source-based trees with explicit join messages assume that routers know the identity of host that transmit to a multicast group.

37 Building a core-based tree
One router is designated as the core Receiver sends a Join message to RPF neighbor with respect to core Join message creates (*, G) routing table entry Build a reverse shortest path tree with the core as the root of the tree. The core becomes the central hub for disseminating multicast packets sent to the group. When a source transmits a packet to a multicast group, the packet is sent to the core. When the packet reaches the core, it is forwarded using the reverse shortest path tree. The construction of the core-based tree is as follows: Each receiver that joins a multicast group sends a join message to the core router of the group. The message is sent on the RPF interface with respect to the core. If the join message reaches a router that is not part of the tree, the router adds an (*, G) entry to the multicast routing table, adds the interface where the join message arrived to the outgoing interface list, and sets the incoming interface to the RPF interface. Then the router forwards the join message on its RPF interface in the direction of the core. If the router is already part of the shared tree for group G, the router, upon receiving the join message, adds the interface where the join message arrived to the outgoing interface list of the corresponding (*, G) entry, but does not forward the join message. Since join messages are sent on the reverse path, the resulting distribution tree is a reverse shortest-path tree rooted at the core. The figure shows the transmission of join messages with router R4 as core, and hosts H3, H4 and H5 as members of the multicast group.

38 Building a core-based tree
Source sends data to the core Core forwards data according to routing table entry Forwarding of multicast packets in core-based trees is illustrated. When H1 transmits a multicast packet, the packet is forwarded on the unicast shortest path to the core. A possible route is H1 -> R2 -> R4. When the packet reaches the tree at the core, it is sent downstream in the core-based tree. Sending packets always to the core and inserting packets into the distribution tree only at the core can be inefficient. For example, suppose the path from R1 to R4 is through R3. Then, a packet from H1 to H5 takes the route H1 -> R1 -> R3 -> R4-> R3 -> R6 -> R8. Here it would be better to have R3, instead of forwarding the packet to the core, forward the datagram using the core-based tree. R3 should forward the datagram downstream the tree to R6, as well as upstream the tree to R4. However, that is prone to routing loops and special precautions are necessary to avoid such loops. The main advantage of using core-based trees is that only one distribution tree is required for each multicast group. This reduces the complexity of the routing tables, as well as the volume of multicast routing protocol messages. The main disadvantage of core-based tree is that, dependent on the placement of the core, the paths from the sender to the receivers through the core can be much longer than the direct path between a source and a receiver.

39 Multicast routing protocols in the Internet
Distance Vector Multicast Routing Protocol (DVMRP): First multicast routing protocol Assumes an “overlay” topology of multicast routers 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 Link state advertisements for multicast groups raises scalability concerns 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. DVMRP can operate in an environment where some, but not all, routers are multicast capable. DVMRP runs a separate unicast routing algorithm, similar to RIP, to determine the shortest-path between all multicast-capable routers MOSPF: requires OSPF be used for unicast routing. Multicast routers broadcast link state advertisements (LSAs) to all other multicast routers. Then, as in unicast OSPF, each multicast router calculates routes independently. MOSPF computes shortest-path trees for each sender in the multicast group. A router computes a shortest-path tree for asource only if there is traffic from that sender. CBT builds a shared tree using reverse-path forwarding, without making assumptions on the unicast routing protocol used. The core of a group is either statically configured, or determined as the outcome of a selection process from a candidate set. Different multicast groups may use different core-based trees. Distribution trees in CBT are bidirectional that is, routers are capable of forwarding multicast packets downstream away from the core as well as upstream towards the core. PIM-DM and PIM-SM are in several aspects similar to DVMRP and CBT. Just like CBT, PIM can operate on top of any unicast routing protocol, hence the name protocol independent multicast. A consequence of this is that PIM must assume that all routers in the network are multicast enabled. An important difference between the core-based trees of PIM and CBT is that the trees in PIM are unidirectional, that is, sources always forward packets to the core, and the core transmits packets downstream the core-based tree. All the protocols support any host transmitting to all multicast groups. This model makes multicast routing complex. Source-specific multicast service model simplifies the protocols. Hosts join a multicast group separately for each source. This service model is called Source Specific Multicast (SSM). SSM requires that a host, when it joins a multicast group G, also specifies the source S from which it wishes to receive multicast packets. This allows to use a subset of existing protocols.

40 MBONE - Original Multicast Deployment
MBone (Multicast Backbone) started multicast deployment in 1992 MBone consists of multicast routers that exchange IP multicast datagrams over a unicast IP network DVMRP is the routing protocol for the MBone DVMRP is the multicast algorithm of the MBONE (Multicast Backbone). It solved the problem of wide-area IP multicast on the Internet where only few routers were multicast capable. It set up a virtual network of multicast routers that are connected by unicast paths. The multicast routers exchanged multicast IP datagrams that were encapsulated in IP unicast datagrams, using IP-in-IP option in the IP header. MBONE is a virtual network where each link between two multicast routers consists of a complete unicast path. As more routers supported multicast, the need for a virtual multicast network disappeared.

41 Tunneling MBone routers connect via IP tunnels
With tunneling, IP packets are encapsulated by another IP header (IP-in-IP encapsulation)

42 PIM Messages (PIM version 2)
PIM-DM messages Type PIM-DM PIM-SM Hello Register 1 Register-Stop 2 Join/Prune 3 Bootstrap 4 Assert 5 Graft 6 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 is reserved as the ALL-PIM-Routers group PIMv2 protocol messages are encapsulated in IP datagrams with protocol number 103. All messages have a 4 byte long header, which is followed by type-specific fields. Message types Hello, Join/Prune, Bootstrap, Assert and Graft are sent as multicast packets to address with the TTL field in the IP header set to 1. Note that the same message type is used for Join and Prune messages. All other message types are sent as unicast messages. The third byte of the header is unused. The last two bytes of the header are chechsum.

43 PIM-DM: PIM Dense Mode PIM-DM implements flood-and-prune
Orange packet: Multicast packet (=Data) Blue packet: PIM message Host S1 is a multicast source for group G and host H2 is a group member. When source S1 starts sending IP datagrams to group G, the datagram is flooded to all routers. Each router that processes the packet, creates an (S1, G) multicast routing table entry, where the incoming interface is set to the RPF interface for source S1, and the outgoing interface list contains all other interfaces. For example at router R2, the multicast entry is: Source IP: S1, Multicast Group: G, Incoming Interface: I1, Outgoing Interface List: I2, I3. According to the flood-and-prune algorithm, router R4 which is not connected to a network with group members sends a Prune message on its RPF interface to router R2. The Prune message contains the multicast address G and the address of the pruned source S. When R2 receives the prune message, it marks the corresponding outgoing interface is pruned: Source IP: H1, Multicast Group: G, Incoming Interface: S1, Outgoing Interface list: I2, I3 (pruned). A router does not forward multicast packets on pruned interfaces. There is a timer associated with each pruned interface. When the timer expires, the router reinstates interface I3, and resumes sending datagrams the interface. When host H3 wants to join multicast group G, it sends an IGMP message to R4. R4 in turn sends a Graft message for (S1, G) on the RPF interface for S1. R4 must keep track of all previously sent Prune message, otherwise, R4 does not know that is necessary to send a Graft message. A Graft message has the effect of reinstating a pruned entity. The Graf message is forwarded on the reverse shortest path until a router is reached that has an (S1, G) entry. In PIM-DM Graft messages are ack with Graft-ACK messages.

44 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. PIM-SM initially builds a core-based tree routing protocol for a multicast group, which is shared by all sources. When the traffic from a source exceeds a threshold, PIM constructs a source-based tree for that source. A core router is called rendezvous point (RP) and a core-based tree is called rendezvous-point tree (RPT). The RPT in POM-SM is unidirectional, that is, multicast packets are forwarded only downstream in the RPT and sources send multicast packets to the RP. The RPs can either be statically configured or it can be dynamically determined via an advertisement mechanism, which is part of PIM-SIM. When a host joins a multicast group, the Designated Router (DR) for that host sends a Join message on the reverse path to the RP. In the figure, the DR for host H2, router R3, sends a Join(*, G) message to R2, its RPF neighbor for RP. Assuming that R2 does not have a multicast entry for (*, G) when R2 receives the Join message, it sets up a (*, G) routing table entry, and sends a Join (*, G) message to R5. When the RP receives the Join message, it adds the outgoing interface that connects to R2 to the routing table entry for (*, G). As with Prune messages, Join messages are sent periodically, about once per minute. The routing entries created with a Join message have a limited lifetime, and a router deletes an entry if no new Join message has been received for some time.

45 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. When host H3 joins the multicast group G, router R4 sends a Join (*, G) message to R2. Since R2 already has an entry for (*, G), the R2 does not forward the Join message to the RP, and simply adds interface I2 to the outgoing interface list for the (*, G) routing table entry.

46 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 Host S1 sends a multicast packet to its DR (Designated Router), R1. R1 encapsulates the datagram in a Register message, and sends the message as a unicast message to the RP. The RP extracts the multicast packet from the register message, and forwards the message to the RP. The RP extracts the multicast packet from the register message, and forwards the message in the RPT. In the figure we assume that only host H1 has joined the multicast group G , and the RPT consists of the path R5->R2->R3. Then, the RP sends a Join(S1, G) to the DR of the source. When R1 receives the Join message it sets up an (S1, G) routing table entry, and begins forwarding native multicast packets, that is, regular IP datagrams with the destination set to G, to the RP.

47 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) R1 Continues sending multicast packets encapsulated in Register messages to the RP. As soon as the first native multicast packet reaches R5, R5 sends a Register-stop message to R1. This stops the transmission of Register messages with encapsulated multicast packets.

48 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.

49 PIM-SM: Data transmission
Resulting, one copy of data flows: From S1 to RP From RP to R3

50 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

51 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

52 Interdomain multicast routing
Three protocols involved: PIM-SM Multicast Source Discover (MDSP) Multiprotocol Extensions for BGP (MBGP). In PIM-SM a domain is composed of a set of routers that use the same RPs for multicasting. Generally, the scope of a PIM-SM domain is an autonomous system. In each domain, PIM-SM intradomain multicasting routing builds a multicast distribution tree. In the figure we show two PIM-SM domains, AS1 and and AS2. The rendezvous points in the domain are R2 in AS1 and R3 in AS3. The protocol MSDP is used by an RP to inform the RPs in other domains about currently active sources. Specifically, when an RP receives a PIM Register message from a new source, it sends an MSDP Source Active message to a remote RP. The MSDP Source Active message contains an encapsulated multicast packet. In the figure, suppose that H1 becomes a new multicast source for group G. Then the DR of H1, R1, sends a PIM Register message to R2, the RP (Rendezvous Point) in AS1. The RP sends a MSDP Source Active message to R6, the RP in AS2. MSDP messages are sent over TCP connections that are established between RPs. Once the MSDP message is received by the remote RP, the multicast packet is extracted and transmitted downstream the RPT. When the DR for a multicast group member, for example, router R7, receives a multicast packet from H1, it sends a PIM Join(H1, G) message on the RPF interface for H1. This initiates setting up a source-based tree from H1 to H2. The Join message traverses the path R7->R5->R4->R1. In this way, a source-based tree is setup from R1 to R7. The role of MBGP is to provide control over the routing paths between domains. Suppose that in the network for some administrative reason, multicast traffic between AS1 and AS2 should traverse the link between R3 and R5, instead of the link between R4 and R5. Since PIM Join messages from receivers always follow the reverse shortest path, there is a need for protocol which advertises a reverse path that is different from the unicast routing path selected by PIM-SM. This is accomplished by MBGP. MBGP is an extension to BGP, which permits a router to advertise multicast routes that are different from unicast routes. Using MBGP, router R3 can advertise itself as the next hop for the reverse path from AS2 to AS1.


Download ppt "IP Multicasting Let one packet go to multiple addresses and you can save much bandwidth. That’s the promise of IP multicasting…"

Similar presentations


Ads by Google