Introduction:


The figure below shows quite well the principle of multicasting. Quite simply it?s taking the same packet sent only once by the user to a multiple number of other user on the network. This can obviously be helpful to reduce the use of the network and increase the efficiency use of the network bandwidth. We will talk about different aspects of multicasting in this tutorial. We will touch the basic technical side touching the addressing mode and IP addresses, then we will talk about some of the different algorithm that are now in use with multicasting. Some other algorithm are also used today, but we will limit ourselves to the one which coming out the most often in our research. We will then explain some of the different protocol used with this transmission method. Finally we will explore the latest areas of development, and different technologies being developed for multicasting.


Figure 43-1: Multicast Transmission Sends a Single Multicast Packet Addressed to All Intended Recipients


Technical :


For a start the multicast addressing is entering in a different group than the usual internet addressing mode. The usual package addressing is made in unicast message using the class A, B and C IP address. The multicast addressing mode needs to use the class D IP address mode. This means the address for the multicasting are limited between 224.0.0.0 and 239.255.255.255 which are the address used by the class D.



As can be seen in the figure above the four most significant bits of the class D address are always set to 1110, the rest of the 28 bits are called the multicast group ID. Some of the address range are already reserved by some group or for some predefined purposes, the rest are available for uses.



Routing Algorithms:


There are several types of algorithms which are proposed for building multicast trees. These can eventually be used to implement the multicast routing protocol. We will take a closer look at four of those algorithms. The two simpler ones will be the spanning trees algorithm, and the flooding tree algorithm. Then we will look at the Reverse path broadcasting algorithm, and the Steiner tree algorithm.


Spanning Tree:


This algorithm has already been used by the IEEE-802 MAC bridges, it is powerful and quite easy to implement. This algorithm defines a subset of internetwork links to define a tree structure such that there is never more than one active path between two routers. The name of this algorithm comes from the fact that this tree spans to all node in the internetwork. When a router receives a multicast packet it sends it on all the links which belong to the spanning tree except the one from which it just arrived from. This method ensure that every router in the internetwork receives the packet. The only information which is kept by the router is a Boolean value which says which links belongs to the tree. The algorithm has drawbacks, it centralize all of the traffic on a small set of links and the group membership are not being considered.



Figure : Spanning Tree




Flooding:


This algorithm is the simplest one to deliver multicast packet to internetwork router on a network. When the router receives a packet it would first check if this specific packet has been received before or if it?s the first time this packet has been received before. If it?s the first time the packet has been received it will send it to all the other links of that tree except the one from which it came from. Otherwise it will simply get rid of the package and wait for the next one. This ensure that all the routers on the network receive at least one copy of each packet. This algorithm though as a great set back when it comes to memory usage in the router. Keeping track of each packet that was received before necessitate the router to keep a separate memory for reference. Also sending all the node the package each time is an inefficient use of the network bandwidth.


Reverse Path Broadcasting:


This algorithm whis is currently being used in the multicast backbone is a derivation of the spanning tree algorithm.The biggest difference in the use of this algorithm is tha t if a router X receives a packet from Y then it will first check if the link is the shortest route for the packet to reach it's destination. If the route is the shortest one then the packet is forwarded to all the link in the group except the one from which it came from. Otherwise the packet is discarted and the router wait again. This algorithm is quite efficient at using the bandwidth of the network since the routers always use the shorter route to send every packet. The picture below gives a good idea of how the algorithm works overall.



Figure : RPB Tree




Steiner Tree:


In the previous algorithm, the reverse path broadcasting, we ensure that the shortest route is always used in such a way that the packets are always delivered in the fastest possible way. However there is nothing which done to minimize the use of the network resources.


.


Figure : Steiner Tree



In the figure above it can be seen that the second tree uses a smaller number of links than the first one. Even though this would be slower than the first tree it would use fewer links. This is an example of a Steiner tree. The idea behind this algorithm is to make sure that every packets is sent through a minimum number of links such that the network resourses uses are minimized. Even though the Steiner algorithm reduce the number of links used, it's complexity for constructing a delivery tree as made it of little practical importance. The algorithm is also very unstable due to the links joining and leaving the groups on real time.


Conclusion:


In conclusion, we can see that there are many possibilities of uses for multicasting and that this approach to communication could very become more and more used. The areas that seems to have taken advantage the most right now of this communication mode are online education, corporate teleconferencing and the real time online stock market.

Multicast Protocols

The main protocol in use by multicasting applications is the Internet Group Management Protocol (IGMP). This governs the basic method in which multicasting is performed, and is the basis for other, more sophisticated protocols.

Basically, in order for multicasting to be possible, it is necessary for the multicast group to be defined. In IGMP, hosts join the multicast group by sending a message to the routers immediately next to it in the network indicating that it wishes to join the group. Once this occurs, the host is considered to be an active member of the multicast group. The router will periodically check the hosts to ensure that they are all active. Inactive hosts (hosts that no longer wish to be part of the group) are removed from the database. If there are multiple routers on the network, then one is chosen to query the hosts' for their status. This is called the ?querier?.

Once the database is built, the multicast operation is quite simple. A source node sends a message to the multicast group, and it is delivered to all the routers immediately connected to that node. The routers then check the database to see if any of its child nodes are members of the multicast group. If some are members, then the message is delivered to them. If there are no members of the group, then the message is discarded.

The requirements of the host are quite simple. It has to support transmission to and reception from Class D address, support enhanced UDP so that multicast will be possible, and support IGMP.

There are three main versions of IGMP, all of which have the same basic operation as just described, but with some improvements.


Version 1

In Version 1 IGMP, a host joins a group as described above, by sending an IGMP ?report? to the router. The router periodically sends queries to the subnet and waits for a reply. If there is no reply for a number of queries, then the host is removed from the group list.


Version 2

In Version 2, there is a method for choosing a querier, rather than choosing it arbitrarily. The router with the lowest IP address is chosen as the querier. The querier still periodically queries the nodes on the network for their status, however, an additional way in which to be removed from the multicast group is to send a ?leave? message to the router. This is similar in concept to the message sent to join the group.


Version 3

This is a recent addition and is still in its early stages of development. In this version, hosts are able to specify a set of sources within the multicast group from which it wishes to receive messages.


Multicast Routing Protocols

In addition to IGMP, it is also necessary to have routing protocols. For multicasting, these include DVMRP, MOSPF, PIM-DM and PIM-SM, all of which are described next.


Distance Vector Multicast Routing Protocol (DVMRP)

This protocol includes methods for removing and adding members to the group. The source sends the first packet to the whole network. Then ?prune? messages are sent to eliminate branches to which group members are not connected. Similarly, if a host joins on a branch, then that branch sends a ?graft? message to add a previously pruned branch back into the group.

When a message is sent, the router closest to the source is put in charge of forwarding on the message. If there are more than one router the same distance from the source, then the one with the lowest IP address sends on the message.


Multicast Extension to OSPF (Open Shortest Path First) (MOSPF)

OSPF is a unicast protocol, which, as the name suggests, selects the shortest route to the destination. The multicast version of this constructs a tree of the shortest paths between nodes using information from IGMP and OSPF. These trees are built on demand when a source begins to send a message to a multicast group.

Within the MOSPF are three main routing protocols, described next.


Intra-Area Routing

In this protocol, the group information is entered into a database using IGMP. Together with information gathered from OSPF, the group information is used to construct a shortest path tree. From this tree, unused routers are detected and pruned.


Inter-Area Routing

It is necessary to use Inter-Area Routing if the source or group members are located in a different part of the Autonomous System (AS). The Area Border Routers (ABR) are set as the Inter-Area Multicast Forwarders, and connected to the backbone area. They forward summarized data about the group membership to the backbone.


Inter-AS Routing

This protocol is very similar to Inter-Area Routing, but it is implemented on a larger scale. It is necessary to use Inter-AS Routing when the source or group members are located in a different Automated Systems. The AS Boundary Routers (ASBR) are set as the Inter-AS Multicast Forwarders to send on the multicast messages.


Protocol-Independent Multicast (PIM)

The Inter-Domain Multicast Routing (IDMR) work group, part of the IETF, is working on this protocol, planning to provide internet-wide support for multicasting, regardless of the individual unicast routing protocols in the various subnets.

There are two main types of PIM, described next.


Protocol-Independent Multicast ? Dense Mode (PIM-DM)

This is similar to DVMRP, but with a few differences. Since PIM-DM is protocol independent, it does not matter what unicast routing protocol the individual subnets use. It is necessary for a unicast routing protocol to be present, however, so that routes back to the source can be found.

PIM-DM also forwards all multicast messages on all subnets until a prune image is received. DVMRP delivers the message to all child nodes.


Protocol-Independent Multicast ? Sparse Mode (PIM-SM)

This protocol is used for situations where multicast messaging isn't used as often as with the previously mentioned. In this case, routers have to explicitly announce their desire to receive multicast messages, rather than just assuming that all routers will. Each domain contains a ?rendezvous points? (RP), which are a group of routers that forward multicast messages on to the rest of the network.

Each host is connected to the network through a Designated Router (DR), which is the router with the highest IP address of that subnet. When an IGMP message is sent to the DR, it packages it into a PIM-SM-Register packet and sends it on to the RP of the group as a unicast message. The RP then sends back a PIM-Join message to the DR, and all routers in between add the source-group pair to their multicast forwarding table. This sets up a connection to make the transmission of subsequent messages from that source easier.



New Areas of Development

IP multicasting is becoming extremely popular for a new group of Internet service providers, including FastWeb in Italy, Hong Kong Broadband Network Ltd. (HKBN), and Bredbandsbolaget (B2) in Sweden. These companies are typically making use of Cisco metro Ethernet switching or Spatial Reuse Protocol (SRP) packet ring technology to build networks that provide10-Mbps, 100-Mbps, or even 1000-Mbps connections for clients [1].

FastWeb is Italy?s largest broadband telecommunications company that makes use of Cisco?s ETTx, which is a new fibre technology that is essential to high bandwidth applications that need multicast. FastWeb provides homes and businesses in Bologna, Genoa, Turin, Milan, Naples, and Rome with Internet connectivity at rates of 10, 100, and 1000 Mbps, using ETTx. Over this connection, FastWeb provides its clients with Internet surfing capabilities using standard unicast, but switches to multicast for applications requiring more bandwidth. For example, FastWeb can offer selected TV channels to as many as 30,000 subscribers without overtaxing its network. Providing this service with unicast would require 30,000 individual unicast streams, a feat which is at this point unrealizable and unnecessary [1].

Another service provider making use of IP multicasting is Hong Kong broadband Network Ltd. HKBN has built the world's largest metro Ethernet broadband network. It will link most of the public housing estates and private residential buildings. It provides standard Internet surfing capabilities, a telephone network, and a digital television network delivered by Cisco IP multicasting.
Another area of multicasting that is under development is the Internet Group Management Protocol (IGMP). This protocol is responsible for adding and deleting nodes from multicast groups. Version 2 is currently in use. Version 3, which is in its preliminary stage, makes it possible for a host to join a group and specify a set of sources from which it wants to receive multicast messages [2].

Constraints

Despite its advantages, there are a number of problems associated with IP multicasting that are preventing it from becoming a dominant means of data delivery. One of these is that packets sent by the source can be dropped by the network. This can be caused by either of two situations. If a bad packet is received, the node discards it without notifying the user. Packets can also be dropped without notice if the incoming packet does not fit within the receive buffer [6]. Due to scalability issues and the end-to-end requirements, there cannot be any acknowledgement of reception from receivers, so reliability has to be provided by the source retransmitting all packets into a multicast group [3]. A related issue is that error-checking capability is limited. Receivers accept and to some extent try to process packets containing errors [6]. If at some point the packets with errors are recognized, the receiver cannot inform the source and request a resend.

Another disadvantage is that every router and switch in between the source and the destination must be multicast enabled. This could require in some cases extra software and hardware [4]. In an effort to avoid this problem, the Multicast Backbone (MBone) has been constructed on top of the already existing Internet. Multicast packets are sent disguised as regular IP packets until they reach a multicast router, which then sends them on as multicast messages. A side effect of this is that no single entity controls the entire infrastructure [4].

Another fairly important disadvantage is that to date, there are no real security measures to protect multicast traffic. This means that a rogue transmitter could send bad packets throughout the multicast groups. At the moment, companies that want to transfer sensitive information such as financial data or employee briefings using multicast technology have no way of encrypting data as it is sent across the wire, making it vulnerable to interception [5].

Scalability and overhead are also important issues. Some of the multicast algorithms (such as the flooding algorithm) generate an excessive number of duplicate packets, wasting the system bandwidth [2]. Others, like the spanning tree algorithm, centralize all the traffic on a small set of links without consideration for IP Group memberships [2].


References


[1] http://news.com.com/2100-1033-207898.html?tag=bplst


[2] http://www.cis.ohio-state.edu/~jain/cis788-97/ip_multicast/index.htm


[3] www.iosc.org/inet99/proceedings/4b/4b_1.htm


[4] www.nwfusion.com/archive/2000/84038_01-10-2000.html


[5] www.nwfusion.com/archive/2000/87487_02_-14-2000.html


[6] http://students.cec.wustl.edu/~cs542/SP2001/Presentations/BadMC.pdf


All graphics obtained from:

http://www.cis.ohio-state.edu/~jain/cis788-97/ip_multicast/index.htm