Multicasting is a mechanism to send data to multiple receivers in an efficient way. We give a comprehensive survey on network and transport layer issues of Internet multicast. We begin with an introduction to the current Internet protocol multicast model-the "host group" model and the current Internet multicast architecture, then discuss in depth the following three research areas: (1) scalable multicast routing; (2) reliable multicast; and (3) multicast flow and congestion control. Our goal is to summarize the state of the art in Internet multicast and to stimulate further research in this area