Advances in portable computing and wireless technologies are opening up exciting possibilities for the future of wireless mobile networking. A mobile ad hoc network consists of mobile platforms which are free to move arbitrarily. Since the nodes are mobile, internode connectivity may change frequently. There is an increasing demand for applications like multiplayer online gaming, where players residing at different locations participate in the same gaming session through their handheld portable devices. Such applications are characterized by a close degree of collaboration, typical of ad hoc network scenarios. Multicasting could prove to be an efficient way of providing necessary services for these kinds of applications; hence, it is imperative to determine what is the best way to provide these services in an ad hoc environment. Due to the very diverse requirements of the applications and the unpredictable nature of ad hoc networks, it is necessary to investigate and discern the applicability of existing ad hoc multicast protocols and quantify which is more suitable for which type of application. We provide a detailed description and comparison of ad hoc multicast protocols. We hope that this discussion is helpful to application developers in selecting an appropriate multicast protocol and paves the way for further research.