The document reviews different routing protocols for mobile ad hoc networks (MANETs). It begins with an introduction to MANETs and discusses some of their key characteristics including decentralized operation and dynamic topology. It then reviews several popular routing protocol categories for MANETs - flat, hierarchical, and location-based. Flat protocols like distance vector and link state are discussed as well as their limitations in dynamic MANET environments. The review covers over a dozen different specific routing protocols that have been proposed.