Delay Tolerant Networks (DTNs) differ from the traditional Mobile Ad Hoc networks (MANETs) in that DTNs are not always interconnected. The issue of routing data in a DTN is considered here. Many routing protocols exist for DTNs. Some are based on comparing nodes to each other, whereas others focus on the internal properties of the messages they hold. There are wide ranges of protocols, and they perform differently depending on the environment they reside within. This paper examines most of the well-known existing routing protocols as well as attempting to develop new protocols to improve performance. A comprehensive performance analysis is conducted upon a group of 10 routing protocols consisting of existing and new protocols. Future research directions and possibilities in the field of DTN routing are also discussed.