In this paper we propose a new taxonomy for Delay Tolerant Networks (DTNs) routing protocols and a thorough quantitative evaluation of many protocols proposed in the literature.We categorize DTN protocols, according to their use of three main techniques: queue management, forwarding and replication. Queue management orders and manages the messages in the node's buffer, forwarding selects the messages to be delivered when there is a contact and finally replication bounds the number of replicas in the network.Contrary to most previous papers, where either only qualitative comparisons have been presented or only a single category of protocols have been analysed, in our work we discuss the results of our experimental activity on many of the DTN protocols in the literature. Our results show that, an effective combination of the proposed techniques, can significantly improve the performance of the protocols in terms of delivery ratio, overhead and delay.