Sunday, March 25, 2012

IP Multicast Routing

Many types of data can be transferred between devices over an IP network, eg: document files, image files, voice, video, etc. However, IP network is not efficient to deliver the same data to many destinations – the data is sent in unicast packets and being replicated for each destination, which would unnecessarily consume many network bandwidth resources.

IP multicast technology delivers data over networks to a group of destinations in the efficient way. The data is sent from the source as a single data stream that travels as far as it can in the network. Network devices only replicate the data when they need to send it out on multiple interfaces or segments to reach all members of the multicast group. Multicast traffic is generally unidirectional.

IP multicast groups are identified by the Class D IP addresses, which are in the range from 224.0.0.0 to 239.255.255.255. IP multicast introduced some new network protocols, including 2 for informing the network devices for which end systems require which multicast data stream – Internet Group Management Protocol (IGMP) and Cisco Group Management Protocol (CGMP); and a few for determining the best way to route multicast traffic (the multicast routing protocols) – Distance Vector Multicast Routing Protocol (DVMRP), Multicast OSPF (MOSPF), Core-Based Trees (CBT), and Protocol Independent Multicast (PIM).

When IP multicast is used to send packets to multiple receivers, the packets are not duplicated for every receiver, but instead are sent in a single stream using a single copy of each packet. Downstream routers and switches replicate the packets only upon links where receivers exist. The sender or source of multicast does not have to know the unicast addresses of the receivers. Unicast transmission sends multiple copies of data packets, one copy for each receiver.

Unicast vs Multicast

The most common types of multicast applications are one-to-many and many-to-many. In one-to-many applications, one sender sends data to many receivers, eg: applications used for audio or video distribution, push-media, announcements, monitoring, etc. If the sender of a one-to-many application needs feedback from the receivers, it becomes a many-to-many application. In many-to-many applications, multiple hosts can send data to the same multicast group, many receivers also act as senders, and a host can act as a sender and receiver at the same time. Receiving data from multiple sources increases the complexity of applications and introduces various management challenges. Using the many-to-many multicast concept, new applications, eg: collaboration, concurrent processing, distributed interactive simulations, can then be built.

Another model of multicast applications is many-to-one, mainly used in financial applications, in which many receivers are sending data back to one sender (via unicast of multicast) that may be used for resource discovery, data collection, auctions, polling, etc.

Many new multicast applications are emerging as demand. Real-time applications include live TV, radio, corporate broadcasts, financial data delivery, whiteboard collaboration, e-learning or distance learning, and videoconferencing. Non-real-time applications include file transfer, data and file replication, and video on demand (VoD). Ghosting multiple PC images simultaneously is a file transfer application. Some types of e-learning are also non-real-time.Note: Some web technologies, eg: webcasting – transmission of audio or video over the Internet, actually use unicast to deliver data to each individual media player through several data streams.

Below lists some advantages of multicast transmission over unicast transmission:

Enhanced efficiency. Available network bandwidth and end system resources are utilized more efficiently as multiple data streams are replaced with a single data stream.

Optimized performance. The sender requires much less processing resources and network bandwidth as fewer copies of data require forwarding and processing.

Support for distributed applications. Distributed multipoint applications using unicast transmission do not scale well as the demand and usage grows, as the traffic load and the number of clients increase proportionally at a 1:1 rate with unicast transmission. Multicast enables many new applications that were not possible with unicast.

Most multicast applications that are implemented based upon the User Datagram Protocol (UDP) have some disadvantages when compared to unicast applications implemented upon the Transmission Control Protocol (TCP). Below lists some disadvantages of multicast applications:

UDP does not have any reliability mechanisms. Reliability issues must be addressed by the multicast applications themselves if reliable data transmission is necessary.

UDP best-effort delivery without the acknowledgement process results in occasional packet drops. Multicast applications must not expect reliable data delivery and should be designed accordingly to handle reliable data transmission at the application layer.

UDP without any congestion control mechanism, eg: windowing and slow-start as in TCP, may result in network congestion and service degradation as the popularity and wide deployment of UDP-based multicast applications. Multicast applications should be designed to attempt to detect and avoid congestion conditions if possible.

Duplicate packets may be generated upon the changes of multicast network topologies. Multicast applications should be designed to expect occasional duplicate packets and handle them accordingly.

Out-of-order packet delivery may occur upon the convergence of the underlying network. Multicast applications should be designed to handle them accordingly.

Some security issues with multicast, eg: restricting multicast traffic to be delivered to a selected group of receivers to avoid eavesdropping, are not successfully addressed yet. Some commercial applications will become possible only when these issues are resolved.