I. Introduction
Wireless sensor networks (WSNs) consist of a large number of limited-energy resources sensor nodes which are equipped with various kinds of sensors, processing units, storage devices and communication modules. Nodes are either randomly or determinately deployed to cooperatively sense, process, and transmit all kind of monitored data [1]. In recent years, substantial research effort is undertaken to design sensor nodes which are severely constrained in both processing capability and energy resources. As the nodes are battery powered, designing an efficient transmission protocol that conserves scarce energy resources and maximize the network lifetime while meeting the application specific Quality of Service (QoS) constraints such as reliability, packet loss and throughput is one of the most important issues of WSNs. Indeed, many transmission protocols which are promising in terms of energy efficiency, have been proposed in the literature [2]–[6]. Nevertheless, most of them do not guarantee QoS required by real-time and communication-heavy applications. As a result, there is a strong need to design a protocol that balances, as far as possible, between energy efficiency and transmission reliability. Furthermore, successful delivery of a packet in a large-scale WSN is in dire need for many applications such as environmental monitoring and water pipelining which will be our target application. In fact, many industrial and environmental applications have very strict requirements on communication reliability and packet delivery time [7]. For instance, due to an unreliable communication link, irregular or delayed pressure reports and/or a failure to deliver a warning about leakage detection can cause a waste of substantial amount of water and thus will damage the strict requirements of WSN functionality.