Unmanned aerial vehicles (UAVs) have gained popularity for diverse applications and services in both the military and civilian domains. For cooperation and collaboration among UAVs, they can be wirelessly interconnected in an ad hoc manner, resulting in a UAV network. UAV networks have unique features and characteristics that are different from mobile ad hoc networks and vehicular ad hoc networks. The dynamic behavior of rapid mobility and topology changes in UAV networks makes the design of a routing protocol quite challenging. In this paper, we review the routing protocols for UAV networks, in which the topology-based, position-based, hierarchical, deterministic, stochastic, and social-network-based routing protocols are extensively surveyed. The routing protocols are then compared qualitatively in terms of their major features, characteristics, and performance. Open issues and research challenges are also discussed in the perspective of design and implementation.INDEX TERMS Unmanned aerial vehicle network, flying ad hoc network, drone ad hoc network, routing protocol, rapid mobility, dynamic topology, scalability.