Wireless sensor networks are composed of small, low-cost sensor nodes that are densely deployed to monitor environmental conditions. Each node has sensing, processing and communication capabilities. Sensor networks have many applications including military surveillance, environmental monitoring, health monitoring, smart homes/offices, and inventory management. Routing data efficiently in sensor networks faces challenges due to the large number of nodes, limited energy/resources of nodes, and dynamic network topology changes. Common routing architectures include layered architectures where nodes are organized in layers based on distance from the base station, and clustered architectures where nodes are organized into clusters with cluster heads routing data.