The design, implementation, and evaluation of a multicast session layer

Multicast technology has long promised to revolutionize the development of multi-party applications. Yet, in spite of great excitement in the research community a decade ago, development of multicast infrastructure and applications has declined in recent years. Many designers anticipated the development of a ubiquitous, global multicast service when multicast was first explored as a serious research topic, Despite many efforts, this goal has not been achieved. Nevertheless, there is still intense demand for multicast technology and applications, and multicast technology is in fact in widespread use today. Although there is little support for multicast within the network, popular applications such as live video streaming, video conferencing, peer-to-peer file sharing, and even web browsing, are all inherently multicast applications since they require that the same data be transmitted to many different endpoints simultaneously. This range of multicast applications demonstrates that, in spite of the lack of a ubiquitous multicast service on the Internet, there is still great demand for multicast technology. Because application developers cannot rely on widespread support for multicast within the network, they have developed their own techniques for providing multicast services. Consequently, recent work on multicast has fragmented into countless schemes tuned for specific applications and operating environments. Few of these approaches are interoperable and few work outside the narrow environment for which they were designed. This proliferation of divergent approaches to implementing multicast service threatens to undermine deployment of a common multicast infrastructure that can be used by a variety of applications. This dissertation examines the design issues surrounding multicast technology. Based on lessons learned from previous techniques for implementing multicast, we propose a new multicast service called Aspen. Aspen combines the most promising ideas and techniques from network-level multicast with emerging application-level multicast technology to provide a service that, is efficient and scalable, and also flexible enough to support a range of multicast applications. This approach of splitting the implementation of a multicast service into separate network- and application-level components is called hybrid multicast . One important lesson from past efforts to implement multicast is that, given the wide range of multicast applications, a narrow service interface will leave the implementation layer with insufficient information about the behavior of the application to implement the service efficiently. To address this problem, we propose a novel scheme by which applications can convey hints and requirements to the implementation layer. Incorporating this information from applications into the implementation of a multicast session is an integral part of the Aspen architecture. In addition to proposing this hybrid multicast architecture, we describe a specific protocol and implementation. The architecture and implementation are evaluated through a combination of analysis, simulation, and live experiments.