The continuous growth in applications that require communications among a group of hosts or simultaneous dissemination of data to multiple sites on the Internet has led to considerable interest in multicast communication. These applications have different quality of service requirements such as deadlines to response time and tolerance to data loss. Internet multicast protocols provide a spectrum of services to cater for the needs of a wide array of multicast applications. The design alternatives of a multicast protocol for a particular application may lead to different performance characteristics, for example higher utilization of network bandwidth vs lower protocol processing requirements. Therefore a framework is required to various design choices available to design multicast protocols and evaluate the performance tradeoffs associated with these alternatives. Motivated by such a need and by the evolution of multicast applications over the Internet, this article presents a taxonomy of multicast protocols and a common framework to evaluate their performance.