A Wireless Sensor Network (WSN) is a collection of small, self-contained electro-mechanical devices that monitor the environment conditions. These sensors can span a large geographical area. These nodes can communicate with each other via hops in an ad-hoc manner. The sensors are battery operated, so they have limited power. Energy is major concern among the Wireless Sensor Networks. There are many design issues for WSNs such as deployment, mobility, infrastructure, network topology, network size and density, connectivity, lifetime, node addressability, data aggregation etc. WSNs can be of flat or hierarchical architecture and the roles played by nodes vary in both of these architectures. In flat architecture, all the nodes are peers. The hierarchical architecture involves cluster heads which control the sensor nodes in their clusters. In both of the architectures, the data collected by each sensor is communicated through the network to a single processing center called base station that uses all reported data to determine characteristics of the environment or detect an event.