The definition of reliable multicast has varied widely, going from requirements for absolute data reliability, strong group membership control, strong ordering guarantees, multiple senders, and small group sizes, to protocols with weaker data reliability, little or no group membership control, no ordering guarantees, single senders, and large to very large group sizes. The first group tends to have a flat error-recovery structure, and the second group tends to use a hierarchical error-recovery structure. A review of 8 representative "reliable multicast" protocols, each with a different definition of reliability, has identified a number of common characteristics, and distinct differences. As a step towards the definition of a protocol that is applicable to a wider range of applications, a new architecture is proposed in this thesis. It combines a central core operating as a fully-reliable, many-to-many protocol, providing communication among a group of "significant receivers", with a hierarchical, scalable, one-to-many protocol, providing distribution of the core data to a set of "simple receivers". The protocol is designed as a set of mechanisms to be invoked, or ignored, as needed. A mapping of the architecture to the representative protocols is presented.