Although many QoS-based multicast routing protocols have been proposed in recent years, most of them are based on per-flow resource reservation, which cannot be deployed within differentiated services(DiffServ) domains. In this paper, we propose a new QoS-aware multicast routing protocol called QMD, which is designed for DiffServ environments. QMD can provide scalable QoS-aware multicast services while greatly alleviating the core routers' multicast routing burden. In QMD, we separate the control and data forwarding functions. The edge routers are involved in multicast control plane functions: processing joining and leaving events, searching QoS-satisfied branch, and making resource reservation. Only a set of on-tree routers (key nodes) maintain multicast routing states and forward multicast data traffic. The key nodes of one multicast group are a subset of all the on-tree routers, which uniquely identify a QoS-satisfied multicast tree connecting the group members. Though the othe...