© Janice Regan, CMPT 128, CMPT 371 Data Communications and Networking Multicast routing
Janice Regan © Reverse path forwarding When a source wishes to flood a message across the network to reach all routers Determine which interface the packet should arrive through Extract the source address Consult the routing table to determine which interface the packet would be sent through in if was to be forwarded to the source address. This is the reverse path interface If the packet arrives on the reverse path interface flood it through all other interfaces If the packet arrives on any interface other than the reverse path interface drop it
Janice Regan © A DVMRP example: RPF STEP 1: RPF at A mrouted s A B C D E F A A P Q
Janice Regan © A DVMRP example: RPF STEP 2: RPF from B, C, and F mrouted s A B C D E F A A P Q
Janice Regan © A DVMRP example: RPF STEP 2: RPF from E, P, and Q mrouted s A B C D E F A A P Q
Janice Regan © Reverse path forwarding: problems Using the RPF algorithm the packet will be flooding throughout the internet reaching all potential group members Multiple copies of each packet may reach any given network. Copies of the packet are sent to networks that are not part of the path from source to receiver and have no members in the multicast group
Janice Regan © True Multicast (spanning tree broadcast) Determine least cost path to each network that has host in group Gives spanning tree configuration containing networks with group members Transmit single packet along spanning tree Routers replicate packets at branch points of spanning tree
Janice Regan © Multicast Example Stallings 2003:figure 19.2
Janice Regan © Stallings 2003: Table 19.1
Janice Regan © Building a CBT (center based tree) A spanning tree avoids the problems of reverse path forwarding. The spanning tree includes a single least cost path to each other router in the network. So only one copy of the packet will reach each destination. A core based tree is one possible type of spanning tree, let’s consider how to build such a tree Begin with a rendezvous point (RP) A rendezvous point is a preselected router that will become the ‘core’ or centre of our spanning tree A receiver is added to the tree by adding links one by one, along the unicast route to the rendezvous point. Links are added until a router that is already part of the receiver portion of the shared distribution tree to all receivers is encountered. Packets can be sent from the RP to all receivers by broadcasting down the constructed core based tree
Janice Regan © Adding a receiver to the CBT: PIM PIM (Protocol idependent multicast) New receiver unicasts join to RP. At each router F pim-SM RP New receiver Unicast join message Resulting shared tree
Janice Regan © Adding a receiver to the CBT New receiver unicasts join to RP. At each router pim-SM RP New receiver Unicast join message Resulting shared tree
Janice Regan © Adding a source to the CBT A multicast sender sends data. The sender's local router (DR) takes those data packets, unicast-encapsulates them, and sends them directly to the RP. The RP receives these encapsulated data packets, decapsulates them, and forwards them onto the shared tree to the receivers The packets then follow the shared multicast tree, being replicated wherever the RP Tree branches, and eventually reaching all the receivers for that multicast group. The process of encapsulating data packets to the RP is called registering, and the encapsulation packets are known as PIM Register packets
Janice Regan © Adding a source Unicast encapsulated data from local router to RP. Continue to unicast encapsulated data directly to RP while building a source based tree F pim-SM RP receiver shared tree New source Source tree join messages Data distribution down shared tree pim-SM RP
Adding a Source The RP sends messages to the local router of the new sender. These messages build a branch of the tree that connects the sender to the rendezvous point. Once the new branch of the tree is built the RP send a stop registration message to the local router of the new sender. The router of the new sender then begins sending packets through the new CBT branch rather than sending them inside registration packets Janice Regan ©
Janice Regan © Adding a source Multicast data can now travel through the source based tree. Send register stop message to stop encapsulated delivery F pim-SM RP receiver shared tree New source source tree Data distribution down shared tree
Janice Regan © Multicasting Multicasting is useful in several contexts SSM, source specific multicast: Information is sent to all members or the multicast group from a single source, members do not communicate directly with each other. Multimedia “broadcast” to many destinations (hosts and networks) Multicast to hosts on a local network for resource discovery ASM, any source multicast: many sources and many destinations Teleconferencing, gaming, distributed computing SFM, source filtered multicast: Specify the group and the members of the group from which incoming data will be accepted, Specify hosts from which multicast data will not be accepted
Janice Regan © Multicasting Transmit to a group of hosts on several networks. This group of hosts includes a subset of hosts on each of the several networks. Membership in the group is dynamic. Hosts may join or leave groups as they wish. A multicast router is used to route packets between networks with members in a multicast group, Unicast routers may or may not be multicast routers It is the responsibility of the multicast router to monitor and update changes in membership of groups, both within and outside the attached networks A single multicast address refers to the group of hosts
Janice Regan © Multicasting Within a Local LAN Many LANs provide hardware support for broadcast or multicast To send Protocol stack on the host must map the IP multicast address onto the appropriate (MAC) multicast or broadcast addresses. To receive the protocol’s network layer must keep track of processes belonging to each multicast group (allowing processes to join or leave the group) If the LAN does not provide hardware support map the multicast addresses to local link layer address of a multicast router. The router can then send the appropriate unicast messages to group members
Janice Regan © Implementing multicast: N-way-Unicast Send packet to each member of the multicast group using the members unicast address Limits the need for extra protocols, but adds some complexity to the unicast routing protocols. May require multiple copies of the packet to be sent through the same link (inefficient) Must know destination addresses of all members of the multicast group NOT DESIRABLE: However, May be needed locally in networks with hardware that does not support broadcast. In this case it would be the local router that translates from multicast to M-way unicast for the M member of the multicast group on its local network.
Janice Regan © Multicasting Requirements 1 Addressing Scheme: locally autonomous assignment of addresses with global applicability IPv4 - Class D - start 1110 Address range – IPv6 - 8 bit prefix, all 1, 4 bit flags field (permanently assigned or dynamic using IGMP), 4 bit scope field (single network to global), 112 bit group identifier A multicast address can only be a destination address, not a source address. A multicast datagram cannot generate an ICMP message
Janice Regan © Multicasting Requirements 2 Effective notification and delivery Hosts need a mechanism to notify routers about which groups are of interests to them (IGMP), that is a mechanism to join and leave multicast groups Routers need a mechanism to deliver the multicast packets to the hosts on their directly attached networks Router must translate between IP multicast address and network multicast address (reception) in networks with hardware support for multicasting Router must deliver packets by broadcast or multiple unicast in networks that do not have hardware support
Janice Regan © IGMP Internet Group Management Protocol Governs exchange of multicast group information between hosts and multicast routers, Two types of Messages transmitted in IP datagrams Membership Query: sent by router to monitor group membership Membership Report: sent by hosts to join or leave groups, or to reply to a membership query and indicate desire to remain a member of the group
Janice Regan © IGMP Operation – Joining To join group, host sends IGMP membership report message Sent in IP datagram with IP Destination Address in the encapsulating IP header being the multicast group address of the multicast group to be joined. The multicast routers attached directly to the hosts network segment will then add the host to the list of hosts connected to its attached networks that are already part of the requested multicast group
Janice Regan © IGMPv2 Operation – Remaining Routers periodically issue IGMP general query message to all group members on their attached nets Hosts that wish to remain in groups must read datagrams with this all-hosts address Host responds by preparing a report message for each group to which it claims membership. One host on each network will send its prepared report. Router does not need to know every host in a group Needs to know at least one group member still active Each host in group sets timer with random delay Host that hears another claim membership cancels own report If timer expires, host sends report Only one member of each group reports to router Hosts periodically update information with
Janice Regan © Multicasting Requirements 3 An Efficient, Dynamic Forwarding Facility Router must translate between IP multicast addresses and list of networks containing group members Routers must exchange information Which networks include members of given group at a given time Sufficient path cost information to work out shortest path to each network Routers must determine ‘shortest’ routing paths based on source and destination addresses
Janice Regan © Delivering to a multicast group Constraints for efficient multicast routing: Every member host of a multicast group should receive one copy of the packet No host not a member of the multicast group should receive the packet Each router should receive the packet only once Determine least cost path to each network that has host in group subject to these constraints Gives spanning tree configuration containing networks with group members Transmit packets along the resulting spanning tree