Route discovery in mobile ad hoc networks is challenging since frequent change in network topology causes a large amount of network overhead. In this thesis, we propose a route discovery algorithm, called Contact-history Assisted Route Discovery (CARD), for mobile ad hoc networks. Most existing routing protocols in ad hoc networks use a flooding technique to route the request packets. In CARD, nodes keep the most recent contact history about all other nodes in the network. When a source wants to establish a route to a destination, it floods the routing packet attaching the most recent contact history with the destination. Upon receiving the packet, an intermediate node forwards it further if the node has contacted with the destination more recently than the sending node. Since only the nodes which have contacted with the destination more recently than the sending node can continue flooding the control packet, CARD can considerably decrease the route discovery overhead comparing to existing techniques.