Multicasting on the Internet
 
 
-an introduction to the principles of multicasting and the protocols that are used for multicasting on the Internet.
 
http://www.e.kth.se/~e94_rab/multicasting.html
 

by Ralf Boström
 
 
Abstract

Until now most Internet applications have been running between one server and one client. Traditional Internet applications like webbrowsers and email all use this one-to-one communication. This kind of communication between one sender and one receiver is called unicasting. Today applications were one or more sender transmit data to a group of receivers are becoming more common. This way to communicate, where there can be several receivers and several senders, is called multicasting. Examples on applications that use multicasting are video conferencing applications, applications that simultaneously transfer files to a group of receivers and radio and TV transmissions over the Internet. Since the protocols in the TCP/IP protocol suite were designed to support unicast applications they don't work very well together with these new multicast applications. Thus there is a need for new protocols that can handle multicast traffic in a better way. A lot of work is being done to develop new multicasting protocols and a number of protocols are already in use on the Internet. This report will give an introduction to the principles of multicasting and give an overview of the different multicasting protocols that are used on the Internet today.

Section one of this report will give a brief introduction to the concept of multicasting. Here the new group addressing scheme that are used by multicast protocols will be described.

In section two IP Multicast, an extension to IP that allows transmission of datagrams to a set of hosts by introducing a this new type of group addresses, will be described.

Section three describes the Internet Group Membership Protocol (IGMP). This protocol makes it possible for a router to manage multicast groups on it's directly connected subnetwork.

The principles of multicast routing will be described in section four of this report. Here some examples on multicast routing protocols will also be given.

Section five gives a short description of the Internet's Multicast Backbone (MBone) which is a collection of routers on the Internet that supports multicast. In this section a technique called tunnelling, which is used to transport multicast packet between routers that don't support multicasting, will also be described.

In section six the reader will be introduced to the special requirements that a transport protocol that is used for delivery of multicast packets has to fulfil. Here the Multicast File Transfer Protocol (MFTP) will be given as an example on a multicast transport protocol. MFTP is a recently developed protocol that can deliver large data files simultaneously and reliable to thousands of receivers.
 

Table of contents
 
1........................................................................................ Introduction
2............................................................................................. IP Multicast
3............................................................................................. Internet Group Management Protocol (IGMP)
4............................................................................................. IP Multicast Routing
4.1.......................................................................................... Multicast forwarding Techniques
4.1.1....................................................................................... Simple minded Techniques
4.1.2....................................................................................... Source-based Tree Techniques
4.1.3....................................................................................... Shared Tree Techniques
4.2.......................................................................................... Examples om routing protocols
4.2.1....................................................................................... Dense mode routing protocol
4.2.2....................................................................................... Spare mode routing protocols
5............................................................................................. The Internet's Multicast Backbone (MBone)
6............................................................................................. Higher level protocols used with IP Multicast
6.1.......................................................................................... Unicast transport protocols
6.2.......................................................................................... Multicast transport protocols
6.3.......................................................................................... Multicast File Transfer Protocol (MFTP)
6.3.1....................................................................................... MFTP groups
6.3.2....................................................................................... MFTP messages
6.3.2.1.................................................................................... MDP messages
6.3.2.2.................................................................................... MCP messages
7............................................................................................. References
 

1. Introduction

When using multicasting one packet is sent to several receivers at the same time. This differs from the usual way to communicate on the Internet, unicasting, where a packet is sent to one receiver at a time. On a network that supports multicasting the sender can distribute information to a large group of receivers by just sending out one single packet. The multicast packets are sent to an address, a group address, that is common to all receivers. Thus the sender doesn't have to know the IP adresses of all receivers. This makes the communication very scaleable as the number of receivers grow. Multicasting has two major benefits compared to unicasting when used in one-to-many applications; it reduces the bandwidth that is used by the application and it reduces the load on the sending server.
 

2. IP Multicast

IP Multicast (RFC 1112) is a development of IP that makes it possible to use multicast addresses on the Internet. The multicast addresses are called class D addresses. Every class D address identifies a group of receivers that receives identical packets from a common sender. All group members are allotted the same group address. A class D address is not permanent like a unicast address (class A, B and C addresses) just temporary. When a host joins a multicast group it is allotted the group's multicast address. The host can at any time leave the mulicast group by handing over the multicast address.
 

3. Internet Group Membership Protocol (IGMP)

Internet Group Membership Protocol (IGMP) is used for distributing group membership information between the router and the hosts on a local area network (LAN). IGMP lets the router know which hosts currently belong to which multicast groups. There are two different types of IGMP messages:

Host Membership Query message: This message is regularly sent out on the network by the router to see if any host currently belong to a multicast group.

Report message: The report message is sent by a host as a response to a Host Membership Query message. If the host belongs to a multicast group the message contains the multicast address of that group. If the host currently belongs to several groups one report message is sent for each group. If the host doesn't belong to any group no report message is sent.

A multicast router keeps a table where the information about the host's group membership are stored. The table is regulary updated by the information that are received from the report messages. IGMP has become an Internet standard (RFC 1112) and is used by all routers on the Internet that support multicast.
 

4. IP Multicast Routing

A router that supports multicast applications on its directly connected subnet has to support both IP Multicast and IGMP. However if multicast traffic is going to be sent across an internet between hosts on different subnets the routers also need a way to distribute group membership information between themselves. With this information the routers can establish routes between themselves, so called routing trees, over which they send the multicast traffic. When routers exchange group membership information they communicate using a multicast routing protocol.

4.1 Multicast forwarding techniques

There are a number of different algorithms that can be used by the multicast routing protocols to forward multicast datagrams. These techniques can be divided into three main groups: Simpleminded Techniques, Source-Based Tree Techniques (SBT) and Shared-Tree Techniques. Below I will give a short description of these algorithms.

4.1.1 Simple minded Techniques

Within this group there are two different techniques:

Flooding: This is a relatively uncomplicated algorithm. When a multicast packet arrives at a router the router checks if it has seen this specific packet before. If it has the packet is simply disregarded and not forwarded. If this is the first time that this packet has arrived to this router the packet is forwarded on every interface, except the interface that the packet arrived on. Thus a protocol that employs this algorithm will send the multicast packets on every link of the entire network. The routing tree will consist of the entire network. Obviously this technique will use a great deal of the network's total bandwidth. Therefor flooding is most suitable for relatively small networks with little traffic.

Spanning trees: Like the flooding algorithm this algorithm builds a routing tree that connects all routers on the network. Thus the routing tree will include all routers on the entire network. But within this tree, the spanning tree, there is only one route between every two routers. Because of this not all links of the network will be used for the multicast traffic. Compared with the flooding algorithm a smaller part of the network's bandwidth will be used. One disadvantage compared with the flooding algorithm is that a packet might have to take a longer path between the sender and the receiver, since it's not certain that the spanning tree contains the shortest path between every two hosts.

4.1.2 Source-Based Tree Techniques

There are three types of algorithms within this group: Reverse Path Broadcasting (RPB), Truncated Reverse Path Broadcasting (TRPB) and Reverse Path Multicasting (RPM). These algorithms describes different techniques to build so called source-based trees.

Reverse Path Broadcasting (RPB): When using this algorithm an optimised spanning tree is constructed for each possible source. The spanning tree that is used for distributing the packets is chosen depending on the source. The reverse path broadcasting algorithm is more efficient then the spanning tree algorithm since it uses spanning trees that are optimised for the source, source-based trees, instead of spanning trees that is common for all sources.

Truncated Reverse Path Broadcasting (TRPB): This algorithm is a development of the RPM algorithm. It builds source-based trees like RPB. A router on a leaf network is only included if the leaf network contains one or more hosts that participates in some multicast communication. By using this technique unnecessary traffic on the leaf networks can be eliminated.

Reverse Path Multicasting (RPM): Like TRPB this algorithm builds source-based trees that only include those leaf networks that contains hosts that currently are active in some multicast communication. However this protocol includes only routers and subnetworks along the shortest path to subnetworks with group members in the trees.

4.1.3 Shared Tree Techniques

Protocols that employs this algorithm builds spanning trees that are based on groups instead of sources. One spanning tree is constructed for each multicast group. The multicast traffic for a certain multicast group is sent over the same tree regardless of the source.

4.2 Examples of multicast routing protocols

There are two kinds of multicast routing protocols: dense mode routing protocols and spare mode routing protocols. Dense mode routing protocols use flooding techniques to propagate information between the routers. When using flooding techniques the routing information is propagated to every router on the network. Thus these protocols use a lot of bandwidth and is most suited for networks where the multicast group members are densely distributed. The spare mode routing protocols use techniques that demands less bandwidth to propagate the routing information. These techniques are said to be selective which means that they use different methods to select the routers to which the routing information is propagated. Since the spare mode routing protocols are designed not to burden the network with to much traffic they are well suited for networks where bandwidth are not necessarily widely available. The first multicast routing protocols that were designed all relayed on some unicast routing protocol. Today routing protocols that are independent of the mechanism provided by any particular unicast protocol are designed.

4.2.1 Dense mode routing protocols

Dense-mode routing protocols use a data-driven approach to construct the routing trees. The routers periodically floods out routing information on the network.

Distance Vector Multicast Routing Protocol (DVRMP): This protocol creates its routing trees according to the RPM forwarding technique. DVRMP relays on information that is provided from some unicast protocol when creating its routing trees. Originally DVRMP was used as routing protocol throughout the whole MBone and is defined in RFC-1075.

Multicast Extensions to Open Shortest Path First (MOSPF): MOSPF is standardised in RFC- 1584. MOSPF is only used within autonomous systems, e.g. networks that is controlled by a single organisation. Each MOSPF router has complete knowledge of the network's topology. Based on this knowledge the routers construct the routing trees. MOSPF is a development of OSPF which is a unicast routing protocol for autonomous systems.

Protocol Independent Multicast - Dense Mode (PIM-DM): PIM is a unicast independent multicast routing protocol that is under development by an IETF working group. PIM-DM comes in two versions, one dense mode and one spare mode. PIM-DM is the dense mode version of PIM. Like DVRMP PIM-DM constructs routing trees based on the RPM technique.

4.2.2 Spare mode routing protocol

Spare mode routing protocols is usually receiver-initiated. This means that a router is only included in a routing tree if it explicitly asks for it. By using an receiver-initiated technique these protocols avoids burdening routers that don't participate in the multicast communication with routing information. Thus a lot of the network's bandwidth is saved.

Core Based Trees (CBT): This protocol builds routing trees based on the shared tree technique. Consequently one shared tree is constructed for each multicast group. Every tree contains a core router which constitute the tree's root. Routers joins the shared tree by sending a join message to the core router. CBT does not relay on any unicast routing protocol. CBT does not relay on any unicast routing protocol.

Protocol Independent Multicast - Sparse Mode (PIM-SM): PIM-SM is the spare mode version of PIM. Like CBT PIM-SM constructs routing trees that are shared by all members of a multicast group. When a router joins a multicast group it registers at the group's Rendezvous Point Multicast Router (RP).Once the routing tree is constructed a router can change it's connection to the tree. This can be advantageous if the router receives a lot of packets from a certain host a would like to have a connection closer to that host. As mentioned above PIM-SM is a unicast independent routing protocol.
 

5. The Internet's Multicast Backbone (MBone) and tunnelling

Not all routers on the Internet supports mulicast traffic. If a number of hosts wish to participate in multicast applications and one or more router in the part of Internet that separates the hosts does not support multicast a technique called tunnelling is used for transporting the packets through the intervening routers that cant forward packets with a multicast addresses. The tunnelling technique works as follows:

Before the multicast packet is sent out on the part of Internet that dont support multicast it is encapsulated in the data area of a regular IP packet. The IP packet's header contains the IP address of the receiving multicast router. The encapsulated multicast packet is then sent over the Internet. To the intervening unicast routers the packet will look like an ordinary unicast packet. When the packet reaches the receiving multicast router the multicast packet is extracted from the IP packet. The route through the unicast routers is called a tunnel.

These tunnels binds together the multicast routers on the Internet and form a virtual network of multicast routers that is called The Internet's Multicast Backbone (MBone). In the future most routers will support multicasting. Therefor the MBone is just a temporarily solution that will become obsolete in the future when multicasting becomes a standard feature on the Internet.
 

6. Higher level protocols used with IP Multicast

All Internet applications use some kind of transport protocol to send packets over Internet. A transport protocol's main task is to make sure that the packets are delivered to the right process at the receiving host. This is achieved by labelling all packets with a so-called port number. The port number identifies the process that the packet is intended for. This feature is called port multiplexing. In addition to port multiplexing most transport protocols also provide some means of error correction, packet ordering, flow control and congestion control.

Error correction means that the transport protocol try to discover and correct errors that have occurred in the packets during the transfer. Error correction can be implemented according to two different principles: Receiver-initiated error correction and Sender-initiated error correction. Receiver-initiated error correction is based on the agreement that the receiver informs the sender (negative acknowledgement, NACK) when a packet that is defect in some way has been received. In a protocol that uses sender-initiated error correction the receiver sends a positive acknowledgement (ACK) to the receiver for every packet that arrives without defects. The sender counts these ACKs to see if some packet is not acknowledged and needs to be sent once more.

In an IP network, like the Internet, its not certain that the packets arrive in the same order as they were sent since the packet can follow different paths over the network. The transport protocols use the feature of packet ordering in order to let the receiver know in which order the packets should be assembled. This is achieved by labelling each packet with a order number.

Transport protocols use flow control to make sure that the receiver is not flooded with packets. Flow control can be implemented in a wide variety of ways.

Congestion control is used by the transport protocols to adjust their transmission rate to avoid congestion on the networks.

6.1 Unicast transport protocols

For regular unicast traffic on the Internet two different transport protocols are used: UDP and TCP. TCP (Transmission Control Protocol) is the transport protocol that is used when transferring files with FTP and when sending email when SMTP. TCP is a complex protocol that provides advanced methods for error correction, flow control and congestion control. TCP's error correction is based on a sender-initiated scheme with positive acknowledgements. UDP (User Datagram Protocol) is a much simpler protocol and only provides the basic features of port multiplexing and packet ordering. Since no error correction is provided UDP cant give any guaranties that the packets will arrive without errors. Thus the applications that relay on UDP as transport protocol either provides some error correction themselves or, like some real time applications, don't need a totally error free transfer.

6.2 Multicast transport protocols

A multicast routing protocol has to account for the behavior of several simultaneous receivers. Therefor the requirements on a multicast transport protocol is quite different from the requirements on a unicast routing protocol. The most significant difference is the large amount of control packets that a multicast protocol has to deal with. When using a unicast transport protocol the control packets represent a small part of the packets that are sent. However a multicast transport protocol receives control packets from a potentially large number of receivers and the amount of control messages can be significant. Thus when designing a multicast transport protocol one tries to minimise the number of control packets that are sent. This is the reason why most multicast transport protocols use receiver initiated error correction with negative acknowledgement. The majority of the multicast transport protocols implement error correction themselves but relay on UDP for port multiplexing, packet ordering, flow control and congestion control. There are two types of multicast transport protocols: reliable and unreliable. The reliable protocols provides an error free transfer and can be used for example to transfer files to a number of receivers. The unreliable protocols are mainly used by real time applications which are more sensitive to delays than bit errors. RTP, RTCP, RTSP and RSVP are examples on unreliable multicast protocols. These protocols are all described in RFCs. So far no RFC has been written about reliable multicast protocols. Thought there exist a few Internet-drafts that describes reliable multicast protocols and the IRTF (Internet Research Task Force) has formed a group that are working with the standardisation of reliable multicast protocols.

6.3 Multicast File Transfer Protocol (MFTP)

MFTP is a transport protocol for reliable multicast traffic that is specialised on file transfers. The protocol has been designed by Stardust Technologies and is specified in an Internet-draft. MFTP is rate based which means that the transmission rate can be configured. By limiting the transmission rate one can reserve bandwidth to other protocols. MFTP uses a NACK based error correction scheme where the sender is constantly sending data and never has to wait for acknowledgements from the receivers. This makes MFTP specially suited for transmission over slow links, like for example satellite links. But this behaviour also means that MFTP is unsuitable for real time applications. MFTP runs over UDP and can manage up to 50 000 simultaneous receivers. There are three basic concepts within MFTP communication: block, MTU and pass:

Block: Before the file is transferred it is divided into blocks. How many bytes these block should contain can be configured manually.

MTU (Maximum Transfer Unit): Each block is divided into a number of MTUs before it's sent out.

Pass: The file is transferred in a sequence of passes. In the first pass the whole file is transferred to all receivers. The receivers send a NACK message to the sender for every block that is received with some error. In the second pass the sender transfers the blocks that were negatively acknowledged. The sender keeps sending the blocks in passes until all receivers has received a faultless copy of the file.

6.3.1 MFTP groups

The MFTP server (the sender) transfers the file to groups of clients (the receivers). There are three kinds of groups:

Open Limited Group: all clients that supports MFTP is allowed to join an open limited group. To join a file transfer the clients has to register at the server.

Open Unlimited Group: all clients are allowed to join a open unlimited group and they don't have to register at the server. Thus the server doesn't no which clients belongs to the group.

Closed Group: The server decides which clients are allowed to join a closed group. The clients that are allowed and wants to join the group has to register at the server.

6.3.2 MFTP messages

MFTP consists of two protocols; MCP and MDP. MCP (Multicast Control Protocol) is used for handling the groups and MDP (Multicast Data Protocol) administrates the actual data transfer. MFTP messages can either be send in multicast or unicast mode. Unicast is used to send messages that are only meant for one single client. This is used for example when the server tells a client that he no longer is allowed to participate in the file transfer. The way these protocols works is easiest understood by studying the types of messages that they use.

6.3.2.1 MDP messages

Announcement message: The MFTP server sends out this message to a specific public group address before the file transfer begins. Clients that would like to join the file transfer listens on this address to pick up these messages. The announcement message contains information about the file that are to be transferred. The message also contains a response address. This is the address to which clients should send their register messages if they would like to participate in the transfer. The announcement message also contains a third address, the private address, which is the multicast group address to which the file is actually transferred. Thus interested clients should join the multicast group which has the private address as group address. If the file transfer will be performed within a closed group the announcement message also contains a list with the IP addresses of those clients that are allowed to participate in the transfer.

Register message: Clients that would like to receive the file registers at the server by sending a register message to the server. The message is sent to the response address that were specified in the server's announcement message.

Status Request Message: When the server has completed the transfer of a complete block it sends a status request message to the clients. This message the clients to inform the server if the transfer was successful.

NACK Response Message: If the received block contained some errors this message is sent by the client as a response to the status request message from the server.

Done message: When the client has received an faultless copy of the file it lets the server know this by sending a done message to the servers response address.

Completion message: The server sends this message to a client after it has received a done message from that client.

End message: The end message is sent out on the public adress by the server when the file transfer is completed. Since there is no response to this message it is sent out four times to make sure that all clients receives it.

Quit message: With this messages a client lets the server know that it no longer wants to participate in the file transfer.

Abort message: The server can at any time decide that a client is no longer permitted to receive the file. The reason for this can be that the client cant manage to receive the blocks at the transmission rate that the server use. By sending an abort message to the client the server lets the client know that it is no longer permitted to participate in the file transfer.

6.3.2.2 MCP messages

Query Group message: This message is sent to the servers IP address by clients that would like to know the servers public address where the server's announcement messages are sent out.

Join Group message: Is sent by a server as a response to a Query Group Message. The message contains the servers public address.

Leave Group message: Sent by the server to clients that are no longer are permitted to participate in the file transfer.

Echo message: This message can be sent by any host that participates in a MFTP file transfer. Is used to see if there are contact between a client and the server.

Echo response: Is sent by a host as a response to a echo message.
 

7. References

IP Multicast Backgrounder
  by Vicki Johnson and Majory Johnson, Stardust Technologies.

How IP Multicast Works
  by Vicki Johnson and Majory Johnson, Stardust Technologies.

Introduction to IP Multicast Routing
  by Vicki Johnson and Majory Johnson, Stardust Technologies.

Higher Level Protocols used with IP Multicast
  by Vicki Johnson and Majory Johnson, Stardust Technologies.

Implementing IP Multicast in Different Network Infrastructures
  by Vicki Johnson, Majory Johnson and Ken Miller, Stardust Technologies.

Introduction to IP Multicast Routing
  by T. Maufer and C. Semeria, 3Com Corporation, Internet- draft.

A Comparison of Architecture and Performance between Reliable Multicast Protocols over the MBone
  by Christoph Hänle, Diploma Thesis.

StarBurst Multicast File Transfer Protocol (MFTP) Specification
  by K. Miller, K. Robertson, A. Tweedly and M. White, Internet-draft.

StarBurst MFTP An Efficient, Scalable Method for Distributing Information Using IP Multicast
  StarBurst Technologies.

MBONE: Multicasting Tomorrows's Internet
  by Kevin Savetz, Neil Randall and Yves Lepage.

TCP/IP Illustrated, Volume 1: The Protocols
  by W. Richard Stevens.

Internetworking with TCP/IP Vol. 1
  by D. Comer

Routing on the Internet
  by C. Huitema