Supporting Quality of Service (QoS) in WSNs is still a largely unexplored research field. The commonly accepted QoS metrics include bandwidth, delay, delay jitter and reliability. Besides, whereas the majority of developed applications for WSNs are event-critical applications, achieving reliable data transfer as the main factor of dependability and quality of service seems vital. Also, in many applications, the reliability level required by the data packets is different. In this paper, we focus on building a routing protocol called DRRR which routes packets towards the destination node in a highly reliable manner by classifying data into differentiated classes. Using a nearly complete set of reliability metrics, DRRR tries to find the best nodes satisfying the level of reliability required by data in order to forward packets to them as the next nodes of reliable paths towards the sink. In order to improve the delivery ratio in the whole of the network in absence of a suitable next node, DRRR employs a new policy called re-routing policy which allows the packets of a specific class to be routed as the packets of a lower/higher reliability class.