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 \emph{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.