## 1 Introduction  
Owing to the advances and growth in Micro-Electro-Mechanical System (MEMS) technology and wireless communication technology, wireless sensor networks (WSNs) are becoming increasingly attractive for numerous application areas, such as military reconnaissance, disaster management, security surveillance, habitat monitoring, medical and health, industrial automation, _etc._[1, 2]. Thus, WSNs have managed to establish the connection between the physical world, the computing world and human society. In general, a WSN consists of a large number of tiny sensor nodes distributed over a large area with one or more powerful sinks or base stations (BSs) collecting information from these sensor nodes. All sensor nodes have limited power supply and have the capabilities of information sensing, data processing and wireless communication. Routing is one of the critical technologies in WSNs. Opposed to traditional _ad hoc_ networks, routing in WSNs is more challenging as a result of their inherent characteristics [3, 4]. Firstly, resources are greatly constrained in terms of power supply, processing capability and transmission bandwidth. Secondly, it is difficult to design a global addressing scheme as Internet Protocol (IP). Furthermore, IP cannot be applied to WSNs, since address updating in a large-scale or dynamic WSN can result in heavy overhead. Thirdly, due to the limited resources, it is hard for routing to cope with unpredictable and frequent topology changes, especially in a mobile environment. Fourthly, data collection by many sensor nodes usually results in a high probability of data redundancy, which must be considered by routing protocols. Fifthly, most applications of WSNs require the only communication scheme of many-to-one, _i.e._, from multiple sources to one particular sink, rather than multicast or peer to peer. Finally, in time-constrained applications of WSNs, data transmissions should be accomplished within a certain period of time. Thus, bounded latency for data transmissions must be taken into consideration in this kind of applications. Nevertheless, energy conservation is more important than quality of service (QoS) in most applications in that all sensor nodes are constrained with energy which is directly related to network lifetime. Based on network structure, routing protocols in WSNs can be coarsely divided into two categories: flat routing and hierarchical routing. In a flat topology, all nodes perform the same tasks and have the same functionalities in the network. Data transmission is performed hop by hop usually using the form of flooding. The typical flat routings in WSNs include Flooding and Gossiping [5], Sensor Protocols for Information via Negotiation (SPIN) [6], Directed Diffusion (DD) [7], Rumor [8], Greedy Perimeter Stateless Routing (GPSR) [9], Trajectory Based Forwarding (TBF) [10], Energy-Aware Routing (EAR) [11], Gradient-Based Routing (GBR) [12], Sequential Assignment Routing (SAR) [13], _etc_. In small-scale networks flat routing protocols are relatively effective. However, it is relatively undesirable in large-scale networks because resources are limited, but all sensor nodes generate more data processing and bandwidth usage. On the other hand, in a hierarchical topology, nodes perform different tasks in WSNs and typically are organized into lots of clusters according to specific requirements or metrics. Generally, each cluster comprises a leader referred to as cluster head (CH) and other member nodes (MNs) or ordinary nodes (ONs), and the CHs can be organized into further hierarchical levels. In general, nodes with higher energy act as CH and perform the task of data processing and information transmission, while nodes with low energy act as MNs and perform the task of information sensing.