Download presentation
Presentation is loading. Please wait.
Published byAlexander Ward Modified over 8 years ago
1
IP Multicast Lecture 4: PIM-SM Carl Harris Communications Network Services Virginia Tech
2
Looking Back IGMP –Internet Group Management Protocol –Used by hosts and routers to manage multicast group management –Triggers changes in forwarding states on last- hop routers. –Efficiency mechanisms Random delay before responding to queries Single IGMP Querier router IGMPv2 leave processing
3
Looking Back PIM-SM –Protocol Independent Multicast, Sparse-Mode –Rendezvous Point (RP): root of the shared tree for a group G –RP Tree (RPT): the shared tree for a group G, leading to all members of group G. –SP Tree: (SPT): the shortest path tree from a source S to a subset of the members of group G.
4
Looking Back PIM-SM –Join/Prune message: Sent by routers in response to changes in group membership, or receipt of packets from a source. Used to add branches to a tree (join) or remove branches from a tree (prune). Propogates from the leaves of a distribution tree towards the root. Not forwarded. Triggered by changes in forwarding states on the “downstream” router. Triggers changes in forwarding states on the router receiving the message.
5
Looking Back PIM-SM –Register messages: Unicast packets used to deliver multicast packets from a source to the root of the shared tree (RPT). Sent by the DR when multicast packets are received from a directly connected source. –Register-Stop messages: Sent by the RP to inhibit a first-hop DR from sending Register messages for a particular source. Sent when the RP joins the shortest path tree for a particular source.
6
Looking Back Forwarding states –Created and deleted dynamically by routers as a result of trigger events. Changes in group membership Discovery of new multicast sources for a group –(*,G) state: determines how packets received on the shared tree are forwarded. –(S,G) state: determines how packets received from a particular source are forwarded.
7
Looking Back Multicast Packet Forwarding –Reverse Path Forwarding (RPF): prevents forwarding loops. –Source discovery occurs as sources send packets to a group triggers changes in forwarding states on the receiving router leads to the construction of shortest path trees
8
Looking Forward Closer investigation of Join and Prune processing. Bootstrap: how PIM routers figure out which router is the Rendezvous Point (RP). PIM on Multi-access networks (we’ve only seen point-to-point). Assertion: how PIM routers deal with parallel routers on a particular subnet.
9
PIM Join/Prune Message Each Join/Prune message contains –Address of a group G whose distribution tree will be modified. –List of sources to forward on a particular link in the distribution tree for G. (join list) –List of sources to drop on a particular link of the distribution tree for G. (prune list) –Upstream (RPF) neighbor address, needed in multi-access network operation.
10
A Closer Look at PIM Join Consider the case of a PIM Join/Prune message for group G with a single source S in the join list and a null prune list. –We think of this as a PIM Join for source S sending to group G. –We’ll use the notation Join(S,G) to represent a PIM Join/Prune message with these contents.
11
A Closer Look at PIM Join Suppose a Join(S,G) message arrives on some interface X of a router. What does this mean? –There is at least one “downstream” receiver interested in receiving packets from source S addressed to group G.
12
Join What? There are two kinds of trees a downstream router might request to join: –shared tree (RPT) –shortest path tree (SPT) Any source can be forwarded via the shared tree, but only one source is forwarded on any given shortest path tree. –(*,G) vs. (S,G) –The Rendezvous Point is the source (root) for the shared tree.
13
Join What? So how does a PIM router distinguish a join for the shared tree from a join to a shortest path tree? –Shared tree: Set S = RP(G) Set RPT flag -- indicates that the Join message pertains to the shared tree. Set WC flag -- indicates that S is the address of the rendezvous point. –Notation: Join(*,G) means Join(RP,G)RPT,WC
14
Join What? We’ve seen that once a last hop router is receiving packets on the shortest path tree for a source, it doesn’t want to receive packets from the shared tree for that source –The last hop router sends a Prune(S,G)RPT towards the RP when the SPT-bit is set on the (S,G) state. –Later, the last hop router may want to rejoin the shared tree for that source; i.e. to undo the Prune(S,G)RPT.
15
Join What? To undo a previous Prune(S,G)RPT a router needs to send a join toward the rendezvous point that will permit packets from source S to be forwarded to that router via the shared tree. –This is denoted Join(S,G)RPT. –The WC flag is not set, because the router doesn’t necessarily want to cause all sources to be sent via the shared tree.
16
Add X to oif list for (S,G) Send a Join(S,G) toward S begin Is WC set ? Is it (S,G)RPT-bit ? Is RPT set ? Is RPT set ? Is RPT set ? end no yes no yes Create (*,G) if it doesn’t exist PIM Join Processing PIM router processing a Join/Prune message received on interface X with S in the Join list. Clear RPT-bit from (S,G) and set iif to RPF interface for S Does (S,G) exist ? error yes ignored Create (S,G) if it doesn’t exist Add X to oif list for existing G states yes Send a Join(*,G) toward RP(G) no yes
17
Add X to oif list for (S,G) Send a Join(S,G) toward S begin Is WC set ? Is it (S,G)RPT-bit ? Is RPT set ? Is RPT set ? Is RPT set ? end no yes no yes Create (*,G) if it doesn’t exist PIM Join Processing PIM router processing a Join/Prune message received on interface X with S in the Join list. Clear RPT-bit from (S,G) and set iif to RPF interface for S Does (S,G) exist ? error yes ignored Create (S,G) Add X to oif list for existing G states yes Send a Join(*,G) toward RP(G) Join(*,G) no yes
18
Add X to oif list for (S,G) Send a Join(S,G) toward S begin Is WC set ? Is it (S,G)RPT-bit ? Is RPT set ? Is RPT set ? Is RPT set ? end no yes no yes Create (*,G) if it doesn’t exist PIM Join Processing PIM router processing a Join/Prune message received on interface X with S in the Join list. Clear RPT-bit from (S,G) and set iif to RPF interface for S Does (S,G) exist ? error yes ignored Create (S,G) Add X to oif list for existing G states yes Send a Join(*,G) toward RP(G) Join(S,G) for new S no yes
19
Add X to oif list for (S,G) Send a Join(S,G) toward S begin Is WC set ? Is it (S,G)RPT-bit ? Is RPT set ? Is RPT set ? Is RPT set ? end no yes no yes Create (*,G) if it doesn’t exist PIM Join Processing PIM router processing a Join/Prune message received on interface X with S in the Join list. Clear RPT-bit from (S,G) and set iif to RPF interface for S Does (S,G) exist ? error yes ignored Create (S,G) Add X to oif list for existing G states yes Send a Join(*,G) toward RP(G) Join(S,G)RPT: undo a previous Prune(S,G)RPT no yes
20
Add X to oif list for (S,G) Send a Join(S,G) toward S begin Is WC set ? Is it (S,G)RPT-bit ? Is RPT set ? Is RPT set ? Is RPT set ? end no yes no yes no yes Create (*,G) if it doesn’t exist PIM Join Processing PIM router processing a Join/Prune message received on interface X with S in the Join list. Clear RPT-bit from (S,G) and set iif to RPF interface for S Does (S,G) exist ? error yes ignored Create (S,G) Add X to oif list for existing G states yes Send a Join(*,G) toward RP(G) Join(S,G)RPT update
21
Add X to oif list for (S,G) Send a Join(S,G) toward S begin Is WC set ? Is it (S,G)RPT-bit ? Is RPT set ? Is RPT set ? Is RPT set ? end no yes no yes Create (*,G) if it doesn’t exist PIM Join Processing PIM router processing a Join/Prune message received on interface X with S in the Join list. Clear RPT-bit from (S,G) and set iif to RPF interface for S Does (S,G) exist ? error yes ignored Create (S,G) Add X to oif list for existing G states yes Send a Join(*,G) toward RP(G) no yes Join(S,G) update
22
End of Lecture 4
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.