,30XOWLFDVW7XWRULDO Ahmed Helmy Assistant Professor of Computer Engineering University of Southern California helmy@ceng.usc.edu http://ceng.usc.edu/~helmy
2XWOLQH - Motivation and Background - Multicast vs. unicast - Multicast Applications - Delivery of Multicast - Local delivery and multicast addressing - WAN delivery and its model - Group Membership Protocol (IGMP) - Multicast Algorithms and Concepts - Flooding, Spanning Tree, Reverse Path Broadcasting (RPB), Truncated RPB, Reverse Path Multicasting, Center-Based Trees Ahmed Helmy - USC 2
2XWOLQH&RQWG - Multicast Routing Protocols - Dense vs. Sparse Multicast - DVMRP - MOSPF - PIM (PIM-DM, PIM-SM) - Multicast and the Internet - The MBONE - Recent deployment - Multicast and IP-Mobility Ahmed Helmy - USC 3
Session 1 8:30-10:00 Multicast vs. Unicast Multicast Applications Multicast Delivery and Host Model Ahmed Helmy - USC 4
8QLFDVWYV0XOWLFDVW Multicast provides multipoint-to-multipoint communication Today majority of Internet applications rely on point-to-point transmission (e.g., TCP). IP-Multicast conserves bandwidth by replicating packets in the network only when necessary Ahmed Helmy - USC 5
8QLFDVWYV0XOWLFDVW S S R1 R2 R1 R2 R3 R4 R3 R4 Multiple unicasts Multicast Ahmed Helmy - USC 6
5HGXFLQJ1HWZRUN/RDG Stock ticker application transmits packets to 100 stations within an organization's network. Unicast transmits100 packets where many packets may traverse the same links. Multicast transmits one packet that is replicated distributed by the multicast delivery tree. Ahmed Helmy - USC 7
([DPSOH0XOWLFDVW$SSOLFDWLRQV One-to-Many Scheduled audio/video distribution: lectures, presentations Push media: news headlines, weather updates Caching: web site content & other file-based updates sent to distributed replication/caching sites Announcements: network time, configuration updates Monitoring: stock prices, sensor equipment Ahmed Helmy - USC 8
,30XOWLFDVW$SSOLFDWLRQVFRQWG Many-to-One Resource discovery Data collection and sensing Auctions Polling Ahmed Helmy - USC 9
,30XOWLFDVW$SSOLFDWLRQVFRQWG Many-to-Many Multimedia Teleconferencing (audio, video, shared whiteboard, text editor) Collaboration Multi-Player Games Concurrent Processing Chat Groups Distributed Interactive Simulation Ahmed Helmy - USC 10
- Currently: The Multicast Backbone (MBONE) carries audio and video multicasts of IETF meetings, NASA space shuttle missions,.. etc. Ahmed Helmy - USC 11
+RZGRKRVWVNQRZDERXWQHZJURXSV" - The Session Directory (SD) tool lists active multicast sessions on MBONE and allows to join a conference using MBONE tools: - vat (visual audio tool), rat (robust audio tool) - vic (video tool) - wb (shared white board) - nte (network text editor),.. etc. Ahmed Helmy - USC 12
Ahmed Helmy - USC 13
Ahmed Helmy - USC 14
Ahmed Helmy - USC 15
Ahmed Helmy - USC 16
0RUH$SSOLFDWLRQV Resource Discovery Multicast may be used (instead of broadcast) to transmit to group members on the same LAN. Multicast may be used for resource discovery within a specific scope using the TTL field in the IP header. Ahmed Helmy - USC 17
0XOWLFDVW6FRSH&RQWURO TTL Expanding-Ring Search to reach or find a nearby subset of a group s 1 2 3 Ahmed Helmy - USC 18
0XOWLFDVW6FRSH&RQWURO Administrative TTL Boundaries to keep multicast traffic within an administrative domain, e.g., for privacy reasons the rest of the Internet an administrative domain TTL threshold set on interfaces to these links, greater than the diameter of the admin. domain Ahmed Helmy - USC 19
0XOWLFDVW6FRSH&RQWURO Administratively-Scoped Addresses RFC 1112 uses address range 239.0.0.0 239.255.255.255 the rest of the Internet an administrative domain address boundary set on interfaces to these links Ahmed Helmy - USC 20
7UDQVPLVVLRQDQG'HOLYHU\RI 0XOWLFDVW'DWDJUDPV Over the same (LAN): The source addresses the IP packet to the multicast group The network interface card maps the Class D address to the corresponding IEEE-802 multicast address Receivers notify their IP layer to receive datagrams addressed to the group. Key issue is addressing & filtration Ahmed Helmy - USC 21
Over different subnets: Routers implement a multicast routing protocol that constructs the multicast delivery trees and supports multicast data packet forwarding. Routers implement a group membership protocol to learn about the existence of group members on directly attached subnets. Hosts implement the group membership protocol that provides the IP-multicast host model Ahmed Helmy - USC 22
$GGUHVVLQJ Types of IP addresses: Unicast: used to transmit packets to one destination. Broadcast: used to send datagrams to entire subnet. Multicast: used to deliver datagrams to a set of hosts (members of a multicast group) in various scattered subnets. Ahmed Helmy - USC 23
IP-Multicast is a best-effort service. Reliable/ordered delivery are not guaranteed. Reliability may be provided by upper-layer protocols (e.g., reliable multicast protocols). IP-Multicast packets include a "group address" (Class D) in the Destination field of the IP header. Ahmed Helmy - USC 24
0XOWLFDVW$GGUHVVLQJ An IP multicast group is identified by a Class D address. Multicast group addresses range from (224.0.0.0) to (239.255.255.255). Ahmed Helmy - USC 25
The Internet Assigned Numbers Authority (IANA) registers IP multicast groups. The block of multicast addresses ranging from (224.0.0.1) to (224.0.0.255) is reserved for local LAN multicast: used by routing protocols and other low-level topology discovery or maintenance protocols E.g., "all-hosts" group (224.0.0.1), "all-routers group (224.0.0.2), "all DVMRP routers", etc. The range (239.0.0.0) to (239.255.255.255) are used for site-local "administratively scoped" applications. Ahmed Helmy - USC 26
0DSSLQJ&ODVV'WR(WKHUQHW $GGUHVV All multicast addresses in IANA's reserved block begin with 01-00-5E (hex) Mapping between a Class D and an Ethernet multicast address is obtained by: placing the low-order 23 bits of the Class D address into the low-order 23 bits of IANA's reserved address block. Ahmed Helmy - USC 27
How multicast group address 224.10.8.5 (E0-0A-08-05) is mapped into an Ethernet (IEEE-802) multicast address. The mapping may place up to 32 different IP groups into the same Ethernet address because the upper five bits of the IP multicast group ID are ignored. Ahmed Helmy - USC 28
7KH0XOWLFDVW+RVW0RGHO Hosts can join or leave a group at any time A host may be a member of multiple groups Senders need not be members of the group Participants do not know about each other The two components of IP-multicast: the group membership protocol the multicast routing protocol Ahmed Helmy - USC 29
Ahmed Helmy - USC 30
*URXS0HPEHUVKLS3URWRFRO Routers need to learn about the presence of group members on directly attached subnets When a host joins a group: it transmits a group membership message for the group(s) that it wishes to receive sets its IP process and network interface card to receive packets sent to those groups. Ahmed Helmy - USC 31
This receiver-initiated join process scales well: as the group size increases, it becomes more likely for a new member to locate a nearby branch of the multicast distribution tree. Ahmed Helmy - USC 32
0XOWLFDVW5RXWLQJ3URWRFROV Run on routers and establish the multicast distribution tree to forward packets from sender(s) to group members. Based on unicast routing concepts: DVMRP is a distance-vector routing protocol, MOSPF is an extension to the OSPF link-state unicast routing protocol. Center-based trees (e.g., CBT & PIM-SM) introduce the notion of the tree core. Ahmed Helmy - USC 33
Session 2 10:15-12:00 IGMP Multicast Algorithms Ahmed Helmy - USC 34
,QWHUQHW*URXS0DQDJHPHQW 3URWRFRO,*03 IGMP runs between hosts and their immediately neighboring multicast routers. The protocol allows a host to inform its first-hop router that it wishes to receive packets destined to a specific group. Ahmed Helmy - USC 35
5RXWHU2SHUDWLRQLQ,*03 Routers periodically query the LAN to determine if group members are still active. One router per LAN is elected as "querier" to query for group members. Through IGMP a router determines which multicast traffic needs to be forwarded to each of its "leaf" subnets. Ahmed Helmy - USC 36
,*039HUVLRQ RFC-1112 To determine local group membership: Multicast routers periodically transmit Host Membership Query messages Queries are ddressed to the all-hosts group (224.0.0.1) with TTL = 1 (i.e., not forwarded by any other multicast router). Ahmed Helmy - USC 37
+RVWV-RLQLQJ*URXSV Upon receiving a Query, a host responds with a Host Membership Report for each group that it wishes to Join Observation: The router only needs to know of at least one group member on the leaf subnet Ahmed Helmy - USC 38
5HSRUW6XSSUHVVLRQ0HFKDQLVP To avoid Report implosion: Each host starts a random delay timer for its Reports. If during the delay period another Report is heard for the same group, the host resets its timer Otherwise, the host transmits a Report causing other group members to reset their timers Thus, Reports are spread out over time and Report traffic is minimized Ahmed Helmy - USC 39
IGMP-Query Message Ahmed Helmy - USC 40
8SGDWLQJ/RFDO0HPEHUVKLS The querier periodically transmit Queries to update local membership If no Report is received for a group after a number of Queries, the router assumes that members are no longer present on that LAN the group is removed from the membership list of that interface/subnet Ahmed Helmy - USC 41
5HGXFLQJ-RLQ/DWHQF\ When a host first joins a group, it immediately transmits a Report for the group rather than waiting for a router Query. Ahmed Helmy - USC 42
,*039HUVLRQ,*039 IGMP V2 was part of IP-mcast (V3.3-3.8) spec <draft-ietf-idmr-igmp-v2-01.txt> IGMP V2 enhances IGMP V1 IGMP V2 elects one querier for each LAN, the router with the lowest IP address. In V1, the querier election was done by the multicast routing protocol (different multicast routing protocol used different methods). Ahmed Helmy - USC 43
IGMP V2 defines a new Query message, the Group-Specific Query, to Query a specific group rather than all groups Ahmed Helmy - USC 44
5HGXFLQJ/HDYH/DWHQF\ To reduce leave latency V2 defines a Leave Group message When a host leaves a group, it sends a Leave Group to the all-routers group (224.0.0.2) with the group field set to the group to be left. Upon receiving a Leave from a LAN, the querier sends Group-Specific Query on that LAN. If there are no Reports in response to the Group- Specific Query, the group is removed from the membership list of that subnet. Ahmed Helmy - USC 45
Observation: With IGMP V1 and V2, if a host wants to receive any sources from a group, the traffic from all sources for the group has to be forwarded onto the subnet. Ahmed Helmy - USC 46
,*039HUVLRQ,*03Y Spec: <draft-ietf-idmr-igmp-v3-03.txt> IGMP V3 supports Group-Source Reports: A host can elect to receive traffic from specific sources of a multicast group. An inclusion Group-Source Report specifies the sources a host wants to receive. An exclusion Group-Source Report identifies the sources a host does not want to receive. Ahmed Helmy - USC 47
IGMP v3 enhances support for Leave Group messages to support Group-Source Leave messages: A host can leave an entire group or specific (source, group) pair(s). Ahmed Helmy - USC 48
0XOWLFDVW)RUZDUGLQJ $OJRULWKPV A multicast routing protocol is responsible for the establishment of the multicast distribution tree and for performing packet forwarding. Ahmed Helmy - USC 49
Several algorithms may be employed by multicast routing protocols: Flooding Spanning Trees Reverse Path Broadcasting (RPB) Truncated Reverse Path Broadcasting (TRPB) Reverse Path Multicasting (RPM) Core-Based Trees Ahmed Helmy - USC 50
These algorithms are implemented in the most prevalent multicast routing protocols in the Internet today. Distance Vector Multicast Routing Protocol (DVMRP) Multicast OSPF (MOSPF) Protocol-Independent Multicast (PIM) [PIM- DM and PIM-SM] Ahmed Helmy - USC 51
)ORRGLQJ The simplest technique for multicast delivery. When a router receives a multicast packet it determines whether or not this is the first time it has seen this packet. On first reception, a packet is forwarded on all interfaces except the one on which it arrived. If the router has seen the packet before, it is discarded. Ahmed Helmy - USC 52
A router does not maintain a routing table, but needs to keep track of recently seen packets. Flooding does not scale for Internet-wide application: - Generates a large number of duplicate packets and uses all available paths across the internetwork. - Routers maintain a distinct table entry for each recently seen packet (consumes memory). Ahmed Helmy - USC 53
6SDQQLQJ7UHH More effective than flooding Defines a tree structure where one active path connects any two routers on the Internet. Spanning Tree rooted at R Ahmed Helmy - USC 54
A router forwards each multicast packet to interfaces that are part of the spanning tree except the receiving interface. A spanning tree avoids looping of multicast packets and reaches all routers in the network. Ahmed Helmy - USC 55
A spanning tree algorithm is easy to implement However, a spanning tree solution: may centralize traffic on small number of links may not provide the most efficient path between the source and the group members. Ahmed Helmy - USC 56
5HYHUVH3DWK%URDGFDVWLQJ 53% More efficient than building a single spanning tree for the entire Internet. Establishes source-rooted distribution trees for every source subnet. A different spanning tree is constructed for each active (source, group) pair. Ahmed Helmy - USC 57
53%$OJRULWKP For each (source, group) pair if a packet arrives on a link that the router considers to be the shortest path back to the source of the packet then the router forwards the packet on all interfaces except the incoming interface. Otherwise, the packet is discarded. Ahmed Helmy - USC 58
The interface over which a router accepts multicast packets from a particular source is called the "parent" link. The outbound links over which a router forwards the multicast packets are called the "child" links. Ahmed Helmy - USC 59
Reverse Path Broadcasting (RPB) Forwarding Ahmed Helmy - USC 60
Enhancement to reduce packet duplication: A router determines if a neighboring router considers it to be on the shortest path back to the source. If Yes, the packet is forwarded to the neighbor. Otherwise, the packet is not forwarded on that potential child link. Ahmed Helmy - USC 61
To derive the parent-child information: link-state routing protocol already has it (since each router maintains a topological database for the entire routing domain). distance-vector routing protocol uses poison reverse : a neighbor can either advertise its previous hop for the source subnet as part of its routing update messages or "poison reverse" the route. Ahmed Helmy - USC 62
([DPSOHRI5HYHUVH3DWK%URDGFDVWLQJ Ahmed Helmy - USC 63
%HQHILWV Reasonably efficient and easy to implement. Does not require keeping track of previous packets, as flooding does. Multicast packets follow the "shortest" path from the source to the group members. Avoids concentration over single spanning tree Ahmed Helmy - USC 64
/LPLWDWLRQV Does not take into account group membership when building the distribution tree. As a result, packets may be unnecessarily forwarded to subnets with no group members. Ahmed Helmy - USC 65
7UXQFDWHG5HYHUVH3DWK %URDGFDVWLQJ753% Using IGMP, routers discover group members and avoid forwarding packets onto leaf subnets with no members. The spanning delivery tree is "truncated" if a leaf subnet has no group members. Ahmed Helmy - USC 66
Truncated Reverse Path Broadcasting (TRPB) Ahmed Helmy - USC 67
TRPB eliminates unnecessary traffic on leaf subnets But it does not consider group membership when building the branches of the distribution tree. Ahmed Helmy - USC 68
5HYHUVH3DWK0XOWLFDVWLQJ 530 RPM enhances TRPB. RPM creates a delivery tree that spans only: -Subnets with group members -Routers and subnets along the shortest path to group members In RPM, non-member branches are pruned Packets are forwarded only along branches leading to group members. Ahmed Helmy - USC 69
530 2SHUDWLRQ The first multicast packet is forwarded (using TRPB) to all routers in the network. Routers at edges of the network with no downstream routers are called leaf routers. A leaf router with no downstream members sends a "prune" message on its parent link to stop packet flow down that branch. Ahmed Helmy - USC 70
Prune messages are sent hop-by-hop back toward the source. A router receiving a prune message stores the prune state in memory. A router with no local members that receives prunes on all child interfaces sends a prune one hop back toward the source. This succession of prune messages creates a multicast forwarding tree that contains only branches that lead to group members. Ahmed Helmy - USC 71
Reverse Path Multicasting (RPM) Ahmed Helmy - USC 72
To adapt to membership/network dynamics, the prune state is timed out periodically, and packets are broadcast throughout the network. This may result in a burst of prune messages. Ahmed Helmy - USC 73
/LPLWDWLRQV Despite improvements over RPM, there are scaling issues and limitations: Multicast packets are periodically forwarded to every router in the network. Routers maintain prune state off-tree for all (source,group) pairs. These limitations are amplified with increase in number of sources and groups. Ahmed Helmy - USC 74
&HQWHU&RUH%DVHG7UHHV &%7 Earlier algorithms build source-based trees CBT builds a single delivery tree (rooted at the core) that is shared by all group members. Multicast traffic for each group is sent and received over the shared tree, regardless of the source. Ahmed Helmy - USC 75
&%72SHUDWLRQ A core-based tree involves one or more cores in the CBT domain. Each leaf-router of a group sends a hop-byhop "join" message toward the "core tree" of that group. Routers need to know the group core to send the join request. Ahmed Helmy - USC 76
Intermediate routers process the join request: The interface on which the join was received is added to the delivery tree. Intermediate routers forward join requests toward the core until the join reaches a core or a router on the distribution tree. Senders unicast their packets toward the core. When the unicast packet reaches a member of the delivery tree, the packet is multicast to all outgoing interfaces that are part of the tree. Ahmed Helmy - USC 77
%HQHILWV Advantages over RPM, in terms of scalability: A router maintains state information for each group, not for each (source, group) pair. Multicast packets only flow down branches leading to members (not periodically broadcast). Only join state is kept on-tree Ahmed Helmy - USC 78
/LPLWDWLRQV CBT may result in traffic concentration near the core since traffic from all sources traverses the same set of links as it approaches the core. A single shared delivery tree may create suboptimal routes resulting in increased delay. Core management issues dynamic core selection core placement strategies Ahmed Helmy - USC 79
Session 3 1:00-2:15 Multicast Routing Protocols Dense vs. Sparse Multicast DVMRP MOSPF Ahmed Helmy - USC 80
0XOWLFDVW5RXWLQJ3URWRFROV In general, there are two classes of multicast routing protocols: Dense-mode protocols (broadcast-and-prune) DVMRP, PIM-DM, (MOSPF!) Sparse-mode protocols (explicit-join) PIM-SM, CBT, BGMP Ahmed Helmy - USC 81
'HQVHYV6SDUVH0RGH0XOWLFDVW S R1 R2 R3 R4 Dense-Mode Multicast Ahmed Helmy - USC 82
'HQVHYV6SDUVH0RGH0XOWLFDVW S S R1 R2 R1 R2 Root R3 R4 R3 R4 Dense-Mode Multicast Sparse-Mode Multicast Ahmed Helmy - USC 83
'LVWDQFH9HFWRU0XOWLFDVW 5RXWLQJ3URWRFRO'9053 DVMRP constructs source-rooted trees using variants of RPM. Many MBONE routers run DVMRP DVMRP was first defined in RFC-1075. The original spec was derived from the Routing Information Protocol (RIP) and used TRPB. Mrouted version 3.8 uses RPM. Ahmed Helmy - USC 84
Physical/Tunnel Interfaces and Scoping: The ports of a DVMRP router may be either a physical interface to a directly attached subnet or a tunnel interface to another multicast island. Interfaces are configured with a TTL threshold that limits the scope of a multicast transmission. Each tunnel interface is configured with the IP address of the remote router's interface. Ahmed Helmy - USC 85
A router forwards a packet only if: TTL Packet > TTL threshold of interface TTL Scope Values Ahmed Helmy - USC 86
'9053%DVLF2SHUDWLRQ DVMRP implements RPM. The first packet for any (source, group) pair is broadcast to the entire network, providing the packet's TTL permits. Leaf routers with no local members send prune messages back toward the source. Ahmed Helmy - USC 87
Prune messages cause the removal of branches that do not lead to group members The result is source-specific shortest path tree with all leaves having group members. After a period of time, the pruned branches grow back and the packets are broadcast throughout the network. A graft mechanism helps to quickly reestablish previously pruned branches. Ahmed Helmy - USC 88
A new member joining the group causes the first-hop router to send a graft message to the group's previous-hop router. When an upstream router receives a graft message, it removes the prune state. Graft messages may cascade back toward the source allowing previously pruned branches to be restored. Ahmed Helmy - USC 89
([DPSOH'90536FHQDULR g g s Ahmed Helmy - USC 90 g
,QLWLDO%URDGFDVWXVLQJ7UXQFDWHG %URDGFDVW g g s Ahmed Helmy - USC 91 g
3UXQHQRQPHPEHUEUDQFKHV g g prune (s,g) s prune (s,g) Ahmed Helmy - USC 92 g
*UDIWQHZPHPEHUV g g g report (g) graft (s,g) s graft (s,g) Ahmed Helmy - USC 93 g
'9053'LVWULEXWLRQ7UHH g g g s Ahmed Helmy - USC 94 g
$YRLGLQJORRSVRQ/$1V To avoid duplicates, one router per LAN is elected the Dominant Router Ahmed Helmy - USC 95
The router with lowest metric to the source subnet (with the lowest IP address as tie breaker) becomes the Dominant router A dominant router is the forwarder for the LAN for traffic from the source subnet Ahmed Helmy - USC 96
'9053)RUZDUGLQJ7DEOH Entries in a typical DVMRP forwarding table: Source Subnet Multicast Group InPort - The parent port for the (S, G) pair. A "Pr" indicates that a prune was sent to upstream. OutPorts - The child ports over which packets for the (S, G) pair are forwarded. A p indicates prune message received on that interface. Ahmed Helmy - USC 97
'9053)RUZDUGLQJ7DEOH Ahmed Helmy - USC 98
0XOWLFDVW([WHQVLRQVWR 263)0263) OSPF V2 is defined in RFC-1583. OSPF is a unicast routing protocol that distributes topology information and calculates routes for a single domain. MOSPF is defined in RFC-1584. MOSPF routers maintain a current image of the network topology through the unicast OSPF link-state routing protocol. Ahmed Helmy - USC 99
MOSPF does not support tunnels Basic MOSPF runs in a single OSPF domain MOSPF uses IGMP to discover members on directly attached subnets. The Designated Router (DR) is responsible for sending membership information to all routers in the OSPF domain. The DR floods Group-Membership Link State Advertisements (LSAs) throughout the OSPF domain. Ahmed Helmy - USC 100
%XLOGLQJWKH6KRUWHVW3DWK7UHH The shortest path tree for (S, G) pair is built "on demand" when a router receives the first packet for (S,G). When the initial packet arrives, the source subnet is located in MOSPF link state database. MOSPF LS-DB = OSPF LS-DB + Group-Membership LSAs Ahmed Helmy - USC 101
Source-rooted shortest-path tree is constructed using Dijkstra's algorithm. To forward packets to downstream members, each router determines its position in the shortest path tree After the tree is built, Group-Membership LSAs are used to prune those branches that do not lead to group members. Ahmed Helmy - USC 102
All routers within an OSPF domain calculate the same shortest path trees. MOSPF LS-DB allow a router to perform RPM computation "in memory". No need for broadcast and prune. Ahmed Helmy - USC 103
)RUZDUGLQJ&DFKH Forwarding cache entry contains the (source, group) pair, the upstream node, and the downstream interfaces. MOSPF Forwarding Cache Ahmed Helmy - USC 104
The forwarding cache contains: Destination: The group address Source: The packet s source subnet. Upstream: The interface from which (S,G) packets are received. Downstream: The interfaces to which (S,G) packets are forwarded TTL: min. number of hops a packet needs to reach the group members. [This allows the router to discard packets with no chance of reaching the members.] Ahmed Helmy - USC 105
The forwarding cache is not aged. The forwarding cache will change when: The topology of the OSPF network changes, forcing all of the datagram shortest-path trees to be recalculated. There is a change in the Group-Membership LSAs indicating that the distribution of individual group members has changed. Ahmed Helmy - USC 106
/LPLWDWLRQV Limited to OSPF domains Flooding membership information does not scale well for Internet-wide multicsat Ahmed Helmy - USC 107
Session 4 2:30-3:45 Protocol Independent Multicast (PIM) PIM Dense Mode PIM Sparse Mode RP and Bootstrap Mechanisms Ahmed Helmy - USC 108
3URWRFRO,QGHSHQGHQW Design Rationale: 0XOWLFDVW3,0 Broadcast and prune keeps state off-tree and is suitable when members are densely distributed Explicit join/center-based approach keeps state on-tree and is suitable when members are sparsely distributed PIM attempts to combine the best of both worlds Ahmed Helmy - USC 109
'HVLJQ&KRLFHV Shared trees or shortest path trees? Both: use shared trees to Rendezvous then switch to shortest path to deliver DV or LS for routing? Use routing tables regardless of which protocol created them (hence the name Protocol Independent ) Ahmed Helmy - USC 110
3,02SHUDWLRQ0RGHV PIM provides both dense-mode (DM) and sparse-mode (SM) protocols PIM-DM: similar to DVMRP but does not build its own routing table PIM-SM: similar to CBT but provides switching to SPT and bootstrap mechanism for electing the tree center dynamically Ahmed Helmy - USC 111
+RZ3,0'0ZRUNV Packets initially flow on broadcast tree Forwarded away from source using the RPF algorithm A router forwards a multicast datagram if received on the interface used to send unicast datagrams to the source Then, Prunes are sent up the tree to remove branches with no members Ahmed Helmy - USC 112
+RZ3,0'0ZRUNV Source A B G C D F H Receiver 1 E I Receiver 2 Ahmed Helmy - USC 113
+RZ3,0'0ZRUNV Source A B G C Prune D F H Receiver 1 E I Receiver 2 Ahmed Helmy - USC 114
+RZ3,0'0ZRUNV Source A B G C Asserts D F H Receiver 1 E I Receiver 2 Ahmed Helmy - USC 115
+RZ3,0'0ZRUNV Source A B G C D F H Receiver 1 E I Receiver 2 Ahmed Helmy - USC 116
+RZ3,0'0ZRUNV Source A B Prune G C D F Join Override Prune H E I Receiver 1 Receiver 2 Ahmed Helmy - USC 117
+RZ3,0'0ZRUNV Source A B G C D F H Receiver 1 E I Receiver 2 Ahmed Helmy - USC 118
+RZ3,0'0ZRUNV Source A B G C D F Graft H Receiver 1 E I Receiver 3 Receiver 2 Ahmed Helmy - USC 119
+RZ3,0'0ZRUNV Source A B G C D F H Receiver 1 E I Receiver 2 Receiver 3 Ahmed Helmy - USC 120
+RZ3,060ZRUNV A Rendezvous Point (RP) is chosen as tree center per group to enable members and senders to meet Members send their explicit joins toward the RP Senders send their packets to the RP Packets flow only where there is join state (*,G) [any-source,group] state is kept in routers between receivers and the RP Ahmed Helmy - USC 121
+RZ3,060ZRUNV When should we use shared-trees versus sourcetrees? Source-trees tradeoff low-delay from source with more router state Shared-trees tradeoff higher-delay from source with less router state Switch to the source-tree if the data rate is above a certain threshold Ahmed Helmy - USC 122
+RZ3,060ZRUNV Source A B RP D C Receiver 1 E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 123
+RZ3,060ZRUNV Source A B RP D C Receiver 1 (*, G) Join E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 124
+RZ3,060ZRUNV Source A B RP D C Receiver 1 E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 125
+RZ3,060ZRUNV Source Register A B RP D C Receiver 1 E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 126
+RZ3,060ZRUNV Source (S, G) Join (S, G) Join A B RP D C Receiver 1 E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 127
+RZ3,060ZRUNV Source Register-Stop A B RP D C Receiver 1 E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 128
+RZ3,060ZRUNV Source A B RP D (S, G) Join C Receiver 1 E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 129
+RZ3,060ZRUNV Source (S, G) Prune A B RP D C Receiver 1 (S, G) RP Bit Prune E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 130
+RZ3,060ZRUNV Source A B RP D C Receiver 1 (*, G) Join E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 131
+RZ3,060ZRUNV Source A B RP D C Receiver 1 E Receiver 2 Link (*,G) Data (S,G) Data Control Ahmed Helmy - USC 132
2. IGMP Host- Membership Report for G Host Receiver 5HFHLYHUV-RLQLQJWKH6KDUHG7UHH LAN 3. Create (*,G) entry: Multicast address=g RP-address=C,WC=1,RP=1 outgoing interface list={1} incoming interface=2 1. IGMP Host- Membership Query 4. Send Join/Prune message to B: Multicast address=g Join={C,WC,RP} Prune=Null D 1 2 1 2 3 1 A B C PIM DR/IGMP Querier for LAN 5. Create (*,G) entry: Multicast address=g RP-address=C,WC=1,RP=1 outgoing interface list={1} incoming interface=3 7. Create (*,G) entry: Multicast address=g RP-address=C,WC=1,RP=1 outgoing interface list={1} incoming interface=null Rendezvous Point (RP) for group G 6. Send Join/Prune message to C: Multicast address=g Join={C,WC,RP} Prune=Null Ahmed Helmy - USC 133...
Host Receiver 1 A 5. If (*,G) state exists then decapsulate Registers and forward packets to oiflist (*,G) 6. If Register data rate > Threshold then create (S,G) entry: outgoing list=oiflist (*,G)-{2} incoming interface=2 RP=0,SPT=0 11. When receive (S,G) native packets set SPT bit for (S,G) entry, & trigger Register-Stop message to D +RVW6HQGLQJWRWKH*URXS 2 1 C 2. Create (S,G) entry incoming interface=1 3. Encapsulate Data packets in Register messages and unicast to RP(C) 4. Initiate (S,G) packet counter Rendezvous Point (RP for group G 1 2 7. Send Join/Prune message to X: Multicast address=g Join={S}, Prune=Null X DR for LAN(B) 2 Ahmed Helmy - USC 134 2 D 1 10. Update (S,G) entry: add 2 to outgoing interface list 9. Send Join/Prune message to D: Multicast address=g Join={S},Prune=Null 8. Create (S,G) entry: outgoing list={1} incoming interface=2 LAN(B) 1. Data packets for G Source Host 12. When receiver Register-Stop stop encapsulating packets
1. Receive S s packets on shared RP tree Initiate packet count If data rate > Threshold then: Create (S,G) entry: outgoing interface list={1} incoming interface=2 RP=0,WC=0,SPT=0 Host Receiver LAN 6ZLWFKLQJWRWKH6KRUWHVW3DWK7UHH 2. Send Join/Prune message to B: Multicast address=g Join={S} Prune=Null 1 2 1 PIM DR/IGMP Querier for LAN 5. Add interface 2 to the outgoing interface list of (S,G) entry 4. Send Join/Prune message to D: Multicast address=g Join={S} Prune=Null 2 A B C 6. After receiving packets from D: Set (S,G) s SPT-bit=1 and, send Join/Prune message to C: 3. Create (S,G) entry: outgoing interface list={1} incoming interface=2 Multicast address=g RP=0,WC=0,SPT=0 Ahmed Helmy - USC 135 2 First Hop Router for S D 1 3 1 Join=Null Prune={S,RP-bit} 7. Create (S,G) entry: oif list=oif(*,g)-{1} RP-bit=1 2 Host Source (S) Rendezvous Point (RP) for group G
7KH53%RRWVWUDS3UREOHP Which router to use as RP for a group? A set of well-connected routers are configured as Candidate-RPs for group(s) per domain A manageable number of RPs is chosen RPs advertise candidacy for group-prefix (not per group), for scalability Periodic advertisement of candidacy to capture dynamics and unreachability Who maintains/updates/distributes this info? Ahmed Helmy - USC 136
53%RRWVWUDS'HVLJQ5DWLRQDOH Host model: hosts need only logical multicast group address to send or receive RP address is network (not logical) address Routers should map group address to RP address and adapt to unreachability/change of RP Ahmed Helmy - USC 137
53%RRWVWUDS'HVLJQ5DWLRQDOH No on-demand retrieval of RP info to avoid start-up phase can t join or send until DR gets RP address bursty source problem: packets are lost until DR identifies active RP global distribution of explicit group to RP mapping and reachability not scalable Use a-priori status distribution like unicast routing, periodic liveness tracking distribute RP-list throughout the domain Ahmed Helmy - USC 138
&KRRVLQJ53V7KH%RRWVWUDS 0HFKDQLVP PIMv2 has a Bootstrap router election procedure The Bootstrap router receives Candidate-RP messages from potential RPs Bootstrap router sends Bootstrap messages which contain a list of reachable Candidate-RPs All PIM routers receive these Bootstrap messages DRs obtain group-to-rp mapping (when hosts join or send to the group) through a hash algorithm Ahmed Helmy - USC 139
53%RRWVWUDS0HFKDQLVP RP location need not be optimized, but consistent RP mapping and adaptation to failures is criticial all routers (within PIM domain) must associate a single active RP with a multicast group Routers use algorithmic mapping of Group address to RP from manageablysmall set of RPs known throughout domain Ahmed Helmy - USC 140
53%RRVWVWUDS0HFKDQLVP Each candidate RP indicates liveness to the Bootstrap Router in the PIM domain Bootstrap Router distributes set of reachable candidate RPs to all PIM routers in domain. Each PIM router uses the same hash function and set of RPs to map a particular multicast group address to that group s RP. Ahmed Helmy - USC 141
'\QDPLF%RRWVWUDS5RXWHU (OHFWLRQ Simple bridge-like spanning-tree election algorithm A set of well-connected routers are configured as Candidate Bootstrap Routers (C-BSRs) per domain C-BSRs originate PIM hop-by-hop Bootstrap messages with IP address and preference value. Bootstrap messages are exchanged by all PIM routers within domain (flooded with RPF check) Most preferred (or highest numbered) reachable C-BSR is elected Ahmed Helmy - USC 142
5RXWHUVXVHKDVKIXQFWLRQWRPDS *URXSDGGUHVVWR53 Hash function input: group address G and address of each candidate RP in RP set (with optional Mask) output: Value computed per candidate RP in RP set RP with highest value is the RP for G Desirable characteristics minimize remapping when RP reachability changes remap only those that lost RP load spreading of groups across RPs Ahmed Helmy - USC 143
$GDSWDWLRQWR538QUHDFKDELOLW\ When Candidate RP fails/unreachable Bootstrap Router times it out Bootstrap message distributed with updated RP set Routers hash affected groups to different RP Ahmed Helmy - USC 144
5HIHUHQFHV RFC 2362/2117 http://catarina.usc.edu/pim Ahmed Helmy - USC 145
Session 5 4:00-5:00 Multicast and the Internet The MBONE Recent Deployment BGMP Ahmed Helmy - USC 146
0XOWLFDVWDQGWKH,QWHUQHW Initially there was the MBONE Short-term inter-domain solution based on PIM-SM, MBGP and MSDP Longer-term architecture BGMP Ahmed Helmy - USC 147
7KH,QWHUQHWV0XOWLFDVW %DFNERQH0%21( The MBONE is an interconnect of subnets and routers that support IP-multicast. The goal of the MBONE was: initially: to construct an IP multicast test-bed as it became popular: gradual deployment of multicast applications without waiting for the ubiquitous Internet multicast deployment Ahmed Helmy - USC 148
The MBONE is rapidly growing 40 subnets in 4 countries in 92 > 2800 subnets in over 25 countries in April 96 The MBONE is a virtual network layered on top of a subset of the Internet. It is composed of islands of multicast-capable routers connected to other islands by virtual point-to-point links called tunnels. Ahmed Helmy - USC 149
7XQQHOLQJ - Tunnels allow multicast traffic to pass through the non-multicast-capable parts of the Internet. - Multicast packets are encapsulated as IP-in- IP, so they look like normal unicast packets to intermediate routers. - Encapsulation is added on entry to a tunnel and stripped off on exit from a tunnel. Ahmed Helmy - USC 150
0XOWLFDVWLVODQGVFRQQHFWHGWKURXJKWXQQHOV Ahmed Helmy - USC 151
The MBONE and the Internet have different topologies, so: multicast routers execute a separate routing protocol to forward multicast packets. - Much of the MBONE routers run DVMRP - Portions of the MBONE run: - MOSPF - Protocol-Independent Multicast (PIM) Ahmed Helmy - USC 152
Ahmed Helmy - USC 153
0%21(/LPLWDWLRQV Mbone currently using DVMRP, which was never intended for, and is ill-suited to, this task known problems of DV with large networks broadcast & prune approach undesirable for interdomain routing, S. Deering. Suggested solution: Use sparse-mode concepts Use 2-level hierarchy (as in unicast) Ahmed Helmy - USC 154
5HFHQW'HSOR\PHQW Use PIM-SM as intra-domain multicast routing protocol Use MBGP (Multicast BGP) to distribute inter-domain multicast routes Use MSDP (Multicast Source Discovery Protocol) between RPs in different domains Ahmed Helmy - USC 155
0%*3 BGP (RFC 1771) used for unicast routing to: aggregate and abstract routes for scalability provide inter-domain routing policies BGP4+ (RFC 2283) can carry multicast routes multicast routers need only know - internal topology and - paths to reach other domains provides topology info for multicast routes that may be different than unicast routes Ahmed Helmy - USC 156
3UREOHP&RQQHFWLQJ3,060GRPDLQV 6RXUFHVUHJLVWHUZLWK53LQWKHLUGRPDLQ DQGUHFHLYHUVMRLQWRZDUGVWKH53LQWKHLUGRPDLQ 6 53 $ 53 % 5 'RPDLQ$3,060 'RPDLQ%3,060 1RZD\IRUUHFHLYHULQGRPDLQ%WRNQRZDERXW VRXUFHVLQGRPDLQ$DQGYLFHYHUVD Ahmed Helmy - USC 157
06'3 To tie PIM-SM trees in different domains every RP has MSDP peers (RPs in other domains) when a source registers to the RP it conveys this info to its MSDP peers through TCP and SA messages this info is RPF-flooded to other domains an RP with members in its domain joins towards src Ahmed Helmy - USC 158
1RUPDO60 AS 2 AS 1 (S,G) Joins towards RP2 RP2 Receiver R RP1 Source S RP1 Creates State Last hop router sends (S,G) Register to RP1
3HHULQJ RP2 MSDP Peering RP1 MSDP Peering o Between RPs o Over TCP Receiver R Source S
6HQGLQJ6$0VJV RP1 Sends (S,G) SA message (S,G) Joins towards RP2 RP2 MSDP Peering RP1 RP1 Creates State Receiver R Source S Last hop router sends (S,G) Register to RP1
-RLQLQJWKH6RXUFH7UHH RP2 J oins (S,G) Source Tree (S,G) Joins towards RP2 RP2 (S,G) Joins RP1 RP1 Creates State Receiver R Source S Last hop router sends (S,G) Register to RP1
)RUZDUGLQJ3DFNHWV RP2 RP1 Receiver R Source S
/LPLWDWLRQV Short-term solution that doesn t scale well! Ahmed Helmy - USC 164
1HZ'HYHORSPHQWVLQ,QWHU 'RPDLQ0XOWLFDVW5RXWLQJ BGMP (Border Gateway Multicast Protocol): PIM-SM-like inter-domain multicast routing protocol builds bi-directional shared trees of domains each tree has a root domain (like an RP) MASC (Multicast Address Set Claim): mechanism to associate addresses with root domains MBGP: extends BGP to convey address-range to root mapping to border routers Ahmed Helmy - USC 165
%*03 Bi-directional shared trees rooted at domains Border routers send joins and data toward root domain for mcast address in packet Mapping of multicast address to root domain obtained from BGP4+ MRIB Source specific branches only where needed Ahmed Helmy - USC 166
AS1 ISP 1 Sender/Rcvr Group Initiator BGMP tree Ahmed Helmy - USC 167
2WKHU,VVXHVLQWKH,QWHU 'RPDLQ0XOWLFDVW$UFKLWHFWXUH Multicast address allocation Multicast state aggregation Security and authentication (always an issue!!) For more references: Sigcomm 99 [Kumar et al.] http://catarina.usc.edu/multicast Ahmed Helmy - USC 168
Session 6 8:30-10:00 Mobile IP Multicast and IP-Mobility Ahmed Helmy - USC 169
0RELOH,3 Each mobile node has a home network, home address and home agent Correspondent Node Home Network Home Agent (HA) Mobile Node Ahmed Helmy - USC 170
When mobile node (MN) moves to a foreign network it obtains a care-of-address (COA) from the foreign agent (FA) that registers it with the home agent (HA) COA is used by HA to forward packets destined to MN Correspondent Node Foreign Agent (FA) Advertisement (FA,COA) Foreign Network Solicitation Register Mobile Node Register (HA) Home Agent Home Network Ahmed Helmy - USC 171
Packets sent by MN go directly to CN Correspondent Node (CN) Mobile Node (MN) Packets to MN are picked up by the HA and tunneled to MN Home Agent (HA) Triangle Routing in Mobile-IP Ahmed Helmy - USC 172
0XOWLFDVWDQG,30RELOLW\ Common issues in both paradigms Location independent communication/addressing Location discovery/management Packet forwarding Ahmed Helmy - USC 173
/RFDWLRQ,QGHSHQGHQW$GGUHVVLQJ IP-Multicast Single logical multicast group D-class address Senders do not know where receivers are Receivers do not know where senders are Mobile-IP Permanent home address Temp care-of-address(es) Address mapping done through the home agent Ahmed Helmy - USC 174
/RFDWLRQ0DQDJHPHQW IP-Multicast Membership location Done thru IGMP & routing (e.g., RP) Meet through the multicast tree Mobile-IP Mobile node location Done thru home agent Meet thru registration of new address Ahmed Helmy - USC 175
3DFNHW)RUZDUGLQJ IP-Multicast Multicast forwarding Tunnel through the multicast tree (e.g., RP) Mobile-IP Unicast forwarding Tunnel through home agent Ahmed Helmy - USC 176
6XJJHVWHG3DUDGLJP6KLIW 0XOWLFDVWIRU0RELOLW\ Instead of obtaining a new COA and registering with the new foreign agent (and subsequently with the home agent) and deregistering the old one Use the same logical multicast group address and join/leave the group as you move Ahmed Helmy - USC 177
'LVWULEXWLRQWUHHG\QDPLFVZKLOHURDPLQJ CH CH: Correspondent host (sender) Wireless link Mobile Node Ahmed Helmy - USC 178
-RLQ3UXQHG\QDPLFVWRPRGLI\GLVWULEXWLRQ CH CH: Correspondent host (sender) Wireless link Mobile Node Ahmed Helmy - USC 179
6PRRWK+DQGRII BS1 BS2 Ahmed Helmy - USC 180
3RWHQWLDO$GYDQWDJHV Avoiding triangle routing problem Avoiding the need for home/foreign agents Smooth hand-off using standard join/prune Using shortest path by source-specific trees Ahmed Helmy - USC 181
,VVXHVDQG2SHQ'LVFXVVLRQ Dynamics of the multicast tree during mobility Scoped multicast Crossing domain boundaries (inter-domain movement) Join/Leave latency and smooth hand-off other issues Ahmed Helmy - USC 182