Wireless sensor networks basically consist of low cost sensor nodes which collect data from environment and relay them to a sink, where they will be subsequently processed. Since wireless nodes are severely power-constrained, the major concern is how to conserve the nodes' energy so that network lifetime can be extended significantly. Employing one static sink can rapidly exhaust the energy of sink neighbors. Furthermore, using a non-optimal single path together with a maximum transmission power level may quickly deplete the energy of individual nodes on the route. This all results in unbalanced energy consumption through the sensor field, and hence a negative effect on the network lifetime. In this paper, we present a comprehensive taxonomy of the various mechanisms applied for increasing the network lifetime. These techniques, whether in the routing or cross-layer area, fall within the following types: multi-sink, mobile sink, multi-path, power control and bio-inspired algorithms, depending on the protocol operation. In this taxonomy, special attention has been devoted to the multi-sink, power control and bio-inspired algorithms, which have not yet received much consideration in the literature. Moreover, each class covers a variety of the state-of-the-art protocols, which should provide ideas for potential future works. Finally, we compare these mechanisms and discuss open research issues.