Using Application Layer Multicast to Distribute Streaming Video
Ryan Braud

The work described below has been used in the context of a larger joint project, Scalable Resilient Media Streaming. The URL for this project is: ps

It is well known that multicast is not enabled on most routers in the Internet. As a result, a lot of effort has been put into developing application layer multicast protocols. That is, hosts that are part of a multicast group are responsible for forwarding the data to other hosts in the group. In this manner, no additional support is needed from the network to implement the functionality that multicast provides.

For my project, I integrated an implementation of a specific application layer multicast protocol (NICE) into an open source streaming video player (MPEG4IP). I used Apple's Darwin Streaming Server to broadcast the video to the multimedia clients. In a traditional video streaming environment, each client that wants to receive a feed connects to the server. It is the server's responsibility to send the data to all clients that want to receive it. With multicast, and more specifically in my system, each client initially contacts the server to establish a session but the data is delivered by a peer in the multicast group. In this way, the server only streams data to one client, greatly reducing overhead at the server regardless of group size. In order to achieve these results, I completed the following tasks:

After testing this system in a distributed environment with up to 50 clients, we found that the system was fairly resilient to hosts joining/leaving the group and was able to maintain a high (>95%) data delivery rate to all hosts.

Many application layer multicast protocols have been designed and implemented over the past few years, but they all suffer data delivery problems when hosts join or leave. In a video streaming environment, a high data delivery rate is imperative for users to be "happy" with their service. NICE attempts to minimize these effects by taking proactive measures against data delivery failures. As a result, the NICE/MPEG4IP combination does a good job of maintaining a stable multimedia stream as hosts join and leave a group.

Suman Banerjee, Seungjoon Lee, Bobby Bhattacharjee, Aravind Srinivasan, Ryan Braud "Scalable Resilient Media Streaming" UMCP College Park 2003