IP multicast is an effective technology for one-to-many and many-to-many communications. Multicast applications use UDP (User Datagram Protocol) as transport protocol and have responsibility for reliable communications. It is difficult to apply these implementations to other applications because implementations of multicast protocols have been pushed into application programs. We propose a reliable multicast architecture which extracts the process for reliability from multicast applications. We also designed a procedure for dynamic protocol selection which is the main part of our architecture. Thus, we show the effect of applying the dynamic protocol selection by using simulation and consider the overhead of dynamic protocol selection. We were able to achieve a high performance using this architecture as a result of these considerations.