Wireless Sensor Networks (WSNs) are becoming very common technology which combine sensing, processing, and wireless multi-hop networking. This paper provides a wide review of the present state about WSNs at the time of its writing. Following a topdown approach, WSNs concept, definition and applications is provided. Furthermore, an overview of WSNs constrains and judgment metrics such as lifetime and latency is given. Then, the communication protocol stack for WSNs is described, and protocols developed for each layer are discussed. Finally, this paper provides review and comparisons of current simulation programs All of these features make the paper valuable for an extensive variety of possible readers, researchers in WSNs, students stating research in WSNs, specialists wanting to offer WSN solutions, and WSN application designers.