Multicast Routing Wed. 28 MAY. 2003 Introduction based on number of receivers of the packet or massage: “A technique for the efficient distribution of identical packet streams to groups of selected workstations on one or more LANs.” (Penn State network and systems administrators) Implementation » Multiple unicast Wast Network bandwidth, Registering mechanism. » Multiple addresses in a packet Can be only one instance(why Can?), Limited size of packet limits the max number of recipient Much more processing in a router(List of Addresses) Only partially help in the bandwidth wasting problem of the previous method » Multicast address The sender does not need to know the recipients, Must use connectionless UDP on top of IP Implementation (Cont’s) • Saving the network link bandwidth is left to the routers, • the group does not have any physical or geographical boundaries. • Hosts that are interested in receiving data flowing to a particular group must join the group using IGMP. Unicast/Multicast Unicast Host Router Multicast Host Router CISCO Systems Internet Group Management Protocol • IGMP provides the means for a host to inform its attached router • Given that, the scope of IGMP interaction is limited to a host and its attached router • Another protocol is clearly required to coordinate the multicastrouter throughout the internet, that accomplished by the networklayered multicast routing algorithms such as PIM, DVMRP and MOSPT. • Router queries the local hosts for m-cast group membership info • Hosts respond with membership reports: actually, the first host which responds, speaks for all IGMP protocol • IGMPv1, there are just two different type of IGMP message: Membership QUERY and Membership REPORT When there is no reply to three consecutive IGMP membership queries, the router times out group an stops forwarding traffic directed toward group. • IGMPv2, there are four types.basically the same as version 1. the main difference: 1) The hosts communicate to the local multicast router when intention to leave the group. 2) The router then sends out a group-specific query and determines whether there are any remaining host. IP Multicast Addresses • Multicast addresses specify an arbitrary group of IP hosts that have joined the group and want to receive traffic sent to this group. • The Internet Assigned Numbers Authority (IANA) controls the assignment of IP multicast addresses. • all IP multicast group addresses will fall in the range of 224.0.0.0 to 239.255.255.255.(IPv4 D-classful) 224.0.0.0 - 244.0.0.255 link local scope 224.0.1.0 - 238.255.255.255 global scope 239.0.0.0 - 239.255.255.255 Reserved for local scope 239.192.0.0 - 239.194.255.255 organization local scope 239.253.0.0 - 239.255.255.255 site local scope Routing protocol Multicast • Problem: find the best (e.g., min cost) tree which interconnects all the members Multicast Tree Option • GROUP SHARED TREE: single tree for all senders(entire multicast group); bidirectional links • SOURCE BASED TREE: each source is the root of its own tree connecting to all members; thus separate trees for different senders Group Shared Tree • Uses a single common root placed at some chosen point in the network (rendezvous point). • Source must send their traffic to the root, and then the traffic is forwarded down the shared tree to reach all receivers. • Message are replicated only where the tree branch • Member can any time join or leave, so the distribution trees must be dynamically update.(Prune,graft) • finding a minimum cost tree is known as the Steiner tree problem(NP-complete) • Alternate: Center-based approach - under some circumstances,the paths might not be the optimal paths - Network designers must carefully consider the placement of the RP when implementing an environment with only shared trees. Source-based Tree • Source is the root of the multicast tree and whose branches form a spanning tree through the network to the receivers. • Also known as Short Path Tree(SPT) because tree uses the shortest path through the network. • SPT creating the optimal path between the source and receivers. This guarantees the minimum amount of network latency. • Routers must maintain the state of each link (link-state) • A simpler multicasting routing algorithm,need much less link state information, is the Reverse Path Forwarding(RPF). Reverse Path forwarding • RPF makes use of the existing unicast routing table • A router forwards a multicast packet only if it is received on the up stream interface. Multicast Routing Algorithms and Protocols • Flooding a router that receives a packet with multicast destination address, simply sends to all interfaces, expect the interface where the packet came to the router. Challenge: Routing Loops News: uses a article path history OSPF: uses link state database Using a list of last seen packets would need a lot of memory in current high speed routers and the checking if the packet is in the list would slow down the router. IP TTL is usually the best way to take care of this problem. TTL local host……………. 0 local network segment.. 1 site…………………… 15 region………………… 31 country………………..48 continent(Europe)……. 63 world ………………... 127 Multicast Routing Alg.s and Prot.s (Cont’s) • Spanning tree Building a logical network on top of the real network by creating a loopless graph between all nodes resolves the looping problem in flooding . bandwidth waster but robust and simple to implement • Reverse-path forwarding,RPF The basic idea is to generate an implicit spanning tree for each source in the network starting from the source to other nodes. using shortest paths gives the fastest possible delivery, not concentrate the traffic on some network links. Do not really use the group membership information, so waste bandwidth. Multicast Routing Alg.s and Prot.s (Cont’s) • RPF and Prunes When the first packet in a multicast transmission reaches the end leaves in the routing tree, the leaf router sends a pruning message upstream if it does not have any group members attached to it. Likewise, if a any router in the tree receives a prune message from all of its downstream interfaces it sends a prune message upstream. The purpose of the prune message is to prevent sending unneeded following packets in that group to the pruned branch. There is still a one bad point the first packet in a group is always flooded in the whole network. Multicast Routing Alg.s and Prot.s (Cont’s) • Steiner trees The idea of steiner trees is to build an overlay network that connects all nodes in a group with minimum total number of links It is not usually suitable in real networks The computing of the tree is hard and it must be done again each time a node joins or leaves a group. • Core-based trees Each multicast group has a core, The traffic of one group concentrates on certain links. There is not that first flood message in a group Routing protocol Multicast • Intra domain - MOSPF - DVMRP (Flood & Prune) - PIM - Sparse mode - Dense mode • Inter domain - MBGP + MSDP Currently used - BGMP + MASC Protocol Independent Multicast(PIM) Why independent? Independent of the underlying unicast routing protocol EIGRP, OSPF, BGP, or static routes. • Dense mode many or most of routers in the area need to be involved in routing multicast datagram. • Sparse mode the number of routers with attached group members is small with respect to total number of routers. Dense Mode PIM Example Source A Link Data Control B G C D F H E Receiver 1 I Receiver 2 Dense Mode PIM Example Source Initial Flood of Data and Creation of State A B G C D F H E Receiver 1 I Receiver 2 Dense Mode PIM Example Source Prune to Non-RPF Neighbor A B Prune C G D F H E Receiver 1 I Receiver 2 Dense Mode PIM Example Source C and D Assert to Determine Forwarder for the LAN, C Wins A B G C D F Asserts H E Receiver 1 I Receiver 2 Dense Mode PIM Example Source I Gets Pruned E’s Prune is Ignored G’s Prune is Overridden A Prune B G C D F Prune E Receiver 1 Join Override H I Receiver 2 Dense Mode PIM Example Source New Receiver, I Sends Graft A B G C D F Graft E H I Receiver 1 Receiver 2 Receiver 3 Dense Mode PIM Example Source A B G C D F H E I Receiver 1 Receiver 2 Receiver 3 Sparse Mode PIM Example Link Data Control Source A B C Receiver 1 D RP E Receiver 2 Sparse Mode PIM Example Receiver 1 Joins Group G C Creates (*, G) State, Sends (*, G) Join to the RP Source A B D RP Join C Receiver 1 E Receiver 2 Sparse Mode PIM Example RP Creates (*, G) State Source A B C Receiver 1 D RP E Receiver 2 Sparse Mode PIM Example Source Sends Data A Sender Registers to the RP Source Register A B C Receiver 1 D RP E Receiver 2 Sparse Mode PIM Example RP de-encapsulates Registers Forwards Data Down the Shared Tree Sends Joins Towards the Source Source Join A Join B C Receiver 1 D RP E Receiver 2 Sparse Mode PIM Example RP Sends Register-Stop Once Data Arrives Natively Source Register-Stop A B C Receiver 1 D RP E Receiver 2 Sparse Mode PIM Example C Sends (S, G) Joins to Join the Shortest Path (SPT) Tree Source A B D RP (S, G) Join C Receiver 1 E Receiver 2 Sparse Mode PIM Example When C Receives Data Natively, It Sends Prunes Up the RP tree for the Source. RP Deletes (S, G) OIF and Sends Prune Towards the Source Source (S, G) Prune A B D RP (S, G) RP Bit Prune C Receiver 1 E Receiver 2 Sparse Mode PIM Example New Receiver 2 Joins E Creates State and Sends (*, G) Join Source A B D RP (*, G) Join C Receiver 1 E Receiver 2 Sparse Mode PIM Example C Adds Link Towards E to the OIF List of Both (*, G) and (S, G) Data from Source Arrives at E Source A B C Receiver 1 D RP E Receiver 2 Sparse Mode PIM Example New Source Starts Sending D Sends Registers, RP Sends Joins RP Forwards Data to Receivers through Shared Tree Source Register A B C Receiver 1 D RP E Receiver 2 Source 2 Hope be useful Thanks Hassan Salmani