\subsection{Energy-Efficient Routing:}
-\indent The energy-efficient routing is a significant factor to the design of WSN protocols in order to satisfy the main constraints in the hardware, power, and other resources of wireless sensor nodes~\cite{ref42}. There are many challenging factors need to be taken into consideration during designing a routing protocol for WSN, like: Limited energy capacity, Node deployment, Sensor location, Dynamic network, Hardware resource constraints, Data aggregation and gathering, Latency, Scalability, and Fault tolerance.
+\indent The energy-efficient routing is a significant factor to the design of WSN protocols in order to satisfy the main constraints in the hardware, power, and other resources of wireless sensor nodes~\cite{ref42}. Many challenging factors need to be taken into consideration during designing a routing protocol for WSN, like: Limited energy capacity, node deployment, sensor location, dynamic network, hardware resource constraints, data aggregation and gathering, latency, scalability, and fault tolerance.
-\subsubsection{Routing Metric based on Residual Energy:} Lifetime maximization can be achieved by using the residual power of wireless sensor node as a routing metric and take it into account during executing the routing protocol in WSNs. So, the routing protocols should concentrate on the remaining power of sensor nodes during taking the decision to select the next hop toward the destination and not depend on the shortest path solution. It prioritizes routes on the basis of an energy metric (sometimes with other routing metrics) so it is called energy-aware routing protocols~\cite{ref45,ref46}.
+\subsubsection{Routing Metric based on Residual Energy:} Lifetime maximization can be achieved by using the residual power of wireless sensor node as a routing metric that should be taken into account during executing the routing protocol in WSNs. The routing protocols should be concentrated on the remaining power of sensor nodes during taking the decision to select the next hop toward the destination. They should not only depend on the shortest path solution. They prioritize routes on the basis of an energy metric (sometimes with other routing metrics), therefore, it is called energy-aware routing protocols.~\cite{ref45,ref46}.
-\subsubsection{Multipath Routing:} Efficient strategy that can provides reliability, security and load balancing in order to forward packets in a limited energy and constrained resources(computation, communication, and storage) networks like WSNs~\cite{ref50}. The single path routing is simple and scalable but it is not efficient for energy constrained networks such as WSNs . There are many multipath routing protocol are summarized in~\cite{ref50,ref51}.
+\subsubsection{Multipath Routing:} Efficient strategy that provides reliability, security, and load balancing in order to forward packets in a limited energy and constrained resources(computation, communication, and storage) networks like WSNs~\cite{ref50}. The single path routing is simple and scalable but it is not efficient for energy constrained networks such as WSNs. Many multipath routing protocol are summarized in~\cite{ref50,ref51}.
\subsection{Cluster Architectures:}
\indent In this strategy, the wireless sensor nodes are grouped into several groups that called clusters, each group of wireless sensor nodes are managed by a single sensor node, which is called cluster head. The cluster head takes the responsibility of manging the activities of the wireless sensor nodes with the cluster and it communicates and coordinates with other cluster heads or the base station in the WSN. This mechanism conserves the energy in WSNs by means of~\cite{ref43,ref22}:
\begin{enumerate}[(a)]
-\item Grouping the wireless sensor nodes into clusters led to decrease the communication range within the cluster and therefore minimize the energy needed to communication among the nodes inside the cluster.
+\item Grouping the wireless sensor nodes into clusters is led to decrease the communication range within the cluster and therefore minimize the energy needed to communication among the nodes inside the cluster.
\item Minimizing the energy hungry operations such as collaboration and aggregation to the cluster head.
\item Limiting the number of communications (transmitting and receiving) due to the fusion operation carried out by the cluster head.
-\item The continuous changing of cluster head according to residual energy led to balancing energy consumption among wireless sensor nodes inside the cluster.
+\item The continuous changing of cluster head according to residual energy is led to balance the energy consumption among wireless sensor nodes inside the cluster.
\item Some nodes can be turned-off within the same cluster whilst the cluster head manage the responsibilities.
\end{enumerate}
-\indent In addition, the clustering supports network scalability in WSNs~\cite{ref43,ref44}. The clustering approach represents an efficient mechanism for scalability of WSN and providing energy-efficient data aggregation by minimizing the consumption of a limited energy by means of grouping the sensor nodes and organizing them hierarchically. There are several important design considerations that should be taken into account during designing clustering algorithms, such as: limited energy, network lifetime, limited abilities, application dependency, secure communication, cluster formation and CH selection, synchronization, data aggregation, repair mechanisms, and Quality of Service (QoS)~\cite{ref161}.
+\indent In addition, the clustering supports network scalability in WSNs~\cite{ref43,ref44}. The clustering approach represents an efficient mechanism for scalability of WSN and providing energy-efficient data aggregation by minimizing the consumption of a limited energy by means of grouping the sensor nodes and organizing them hierarchically. Several important design considerations that should be taken into account during designing clustering algorithms, such as: limited energy, network lifetime, limited abilities, application dependency, secure communication, cluster formation, and cluster head selection, synchronization, data aggregation, repair mechanisms, and Quality of Service (QoS)~\cite{ref161}.
\subsection{Scheduling Schemes:}
-\indent Many scheduling schemes have been suggested so as to decrease the energy depletion and improve the lifetime of WSNs~\cite{ref58,ref59}. These schemes have dealt with scheduling the states of wireless sensor nodes and putting the idle sensor nodes into sleep mode (i.e, turn off the radio unit) to save the energy. Figure~\ref{wsns} summarizes the Scheduling Schemes in WSNs. In this figure, the scheduling schemes are classified into two main branches~\cite{ref56,ref57}: (i) wake up scheduling aims to manage the wireless sensor node states (sleep/wake up) in WSN by selecting a set of time intervals for a sensor nodes to be awake from continuous time duration. and (ii) topology control in which a set of a wireless sensor nodes are chose to be awake from a given sensor nodes in WSN.
+\indent Many scheduling schemes have been suggested so as to decrease the energy depletion and improve the lifetime of WSNs~\cite{ref58,ref59}. These schemes have dealt with scheduling the states of wireless sensor nodes and putting the idle sensor nodes into sleep mode (i.e, turn off the radio unit) to save the energy. Figure~\ref{wsns} summarizes the Scheduling Schemes in WSNs. In this figure, the scheduling schemes are classified into two main branches~\cite{ref56,ref57}: (i) wake up scheduling aims to manage the wireless sensor node states (sleep/wake up) in WSN by selecting a set of time intervals for a sensor nodes to be awake from continuous time duration. and (ii) topology control in which a set of a wireless sensor nodes are chosen to be awake from a given sensor nodes in WSN.
\begin{figure}[h!]
\centering
\includegraphics[scale=0.5]{Figures/ch1/WSN-S.pdf}
\subsubsection{Wake up Scheduling Schemes:}
-\indent This section demonstrates the scheduling schemes from point of view of schedule Composition process and the framework of the wake up schedule. In these scheduling schemes, the wake up interval refers to the period of time at which the radio unit is turned on so as to sends or receives the packets. Whilst the sleep interval refers to a period of time at which the radio unit is turned off so as to retain the energy of wireless sensor node. Some schemes divide the time into equal length durations of time that called slotted schemes; on the other hand, the other schemes works with the time in continuous way that called unslotted schemes. The sleep and wake up intervals are defined for the unslotted schemes whilst for the slotted schemes, these intervals are represented as multiples of slots. The wake up schedule represents a set of a wake up and sleep intervals, which are produced for one period. Those schedule replicates to each period and it can be changed by the wake up scheduling scheme during the different periods of time. The final goal of those wake up schedule is to permit to exchange of data among the wireless sensor nodes in WSN during the wake up interval. As shown in figure~\ref{wsns}, the requirement for synchronization has been categorized the wake up scheduling into three categories:
+\indent This section demonstrates the scheduling schemes from point of view of schedule composition process and the framework of the wake up schedule. In these scheduling schemes, the wake up interval refers to the period of time at which the radio unit is turned on so as to sends or receives the packets. Whilst, the sleep interval refers to a period of time at which the radio unit is turned off so as to retain the energy of wireless sensor node. Some schemes divide the time into equal length durations of time that called slotted schemes; on the other hand, the other schemes works with the time in continuous way that called unslotted schemes. The sleep and wake up intervals are defined for the unslotted schemes, whilst for the slotted schemes, these intervals are represented as multiples of slots. The wake up schedule represents a set of a wake up and sleep intervals, which are produced for one period. This schedule replicates to each period and it can be changed by the wake up scheduling scheme during the different periods of time. The final goal of this wake up schedule is to permit to exchange the data among the wireless sensor nodes in WSN during the wake up interval. As shown in figure~\ref{wsns}, the requirement for synchronization has been categorized the wake up scheduling into three categories~\cite{ref57}:
\begin{enumerate} [(I)]
-\item \textbf{Synchronous schemes:} The time synchronization among wireless sensor nodes is required. Several synchronous approaches have been suggested that based on the time synchronization in their work. The majority of synchronous schemes work in periodic way by preparing the same wake up schedule for every period unless a change by wake up scheduling algorithm. On the other hand, the aperiodic schemes does not apply the periodic schedule.
+\item \textbf{Synchronous Schemes:} The time synchronization among wireless sensor nodes is required. Several synchronous approaches have been suggested that based on the time synchronization in their work. The majority of synchronous schemes work in periodic (cyclic) way by preparing the same wake up schedule for every period unless a change by wake up scheduling algorithm. On the other hand, the aperiodic schemes does not apply the periodic schedule.
\begin{enumerate} [(A)]
-\item The periodic wakeup scheduling schemes can be operate in slotted and unslotted way, where the period is divided into equal-length slots in the slotted schemes. The major challenge in periodic wakeup scheduling is to select and activate the best time interval(s) in a period so as to the wireless sensor node performs the communication (sending and receiving). This is from point of view of Wireless sensor node whilst from the standpoint of the WSN, choosing the time intervals through the wireless sensor nodes to satisfy a certain performance factor in WSN seems to be difficult. This performance can be carried out from the cooperation among the sensor nodes in WSN to produce the wake up schedule. The periodic wakeup scheduling schemes are classified into five groups based on the degree of the cooperation~\cite{ref57}:
+\item The periodic wakeup scheduling schemes work either in slotted and unslotted way, where the period is divided into equal-length slots in the slotted schemes. The major challenge in periodic wakeup scheduling is to select and activate the best time interval(s) in a period so as to the wireless sensor node performs the communication (sending and receiving). This is from point of view of wireless sensor node, whilst from the standpoint of the WSN, choosing the time intervals through the wireless sensor nodes to satisfy a certain performance factor in WSN seems to be hard task. This performance can be carried out from the cooperation among the sensor nodes in WSN to produce the wake up schedule. The periodic wakeup scheduling schemes are classified into five groups based on the degree of the cooperation~\cite{ref57}:
\begin{enumerate} [(i)]
-\item Neighbor-coordinated in which the wireless sensor node generate its own wake up schedule taking into consideration the wake up schedules of its neighbor sensor nodes.
+\item Neighbor-coordinated in which the wireless sensor node generates its own wake up schedule taking into consideration the wake up schedules of its neighbor sensor nodes.
%The protocols that used this approach like : S-MAC protocol, Timeout MAC (T-MAC), Pattern-MAC (PMAC), Dynamic S-MAC (DSMAC), and ESC;
\item Path-coordinated is suggested to allow the wireless sensor nodes along the path to collaborate to manage their wake up schedules so as to permit to packets passing on the path without delay. The sleep interval represents the main problem for the duty-cycling WSNs that participating in end-to-end delay.
%Some examples used this approach~\cite{ref65,ref66,ref67};
\end{enumerate}
-\item \textbf{Asynchronous schemes:} The time among the wireless sensor nodes do not needs synchronization. The wireless sensor node wake up to send packets with out taking into account whether the receiving sensor nodes are wake up and ready to receive. The major advantages received from these schemes in that they do not need time synchronization that lead to remove the energy consumption required by applying the periodic resynchronization of time among the sensor nodes~\cite{ref74}. Another benefit come from using the asynchronous schemes that they do not need high exploitation for wireless sensor resources (processing, memory, and radio) because there is no shared wake up schedules to be exchanged or saved in the memory. So, exchanging the packets among the wireless sensor nodes, which are not aware of each other's wake up schedules have been considered a major challenge in asynchronous schemes. These schemes can be categorized into three groups~\cite{ref57}:
+\item \textbf{Asynchronous Schemes:} The time among the wireless sensor nodes do not needs synchronization. The wireless sensor node wake up to send packets with out taking into account whether the receiving sensor nodes are wake up and ready to receive. The major advantages received from these schemes in that they do not need time synchronization that lead to remove the energy consumption required by applying the periodic resynchronization of time among the sensor nodes~\cite{ref74}. Another benefit come from using the asynchronous schemes that they do not need high exploitation for wireless sensor resources (processing, memory, and radio) because there is no shared wake up schedules to be exchanged or saved in the memory. Therefore, exchanging the packets among the wireless sensor nodes, which are not aware of each other's wake up schedules have been considered a major challenge in asynchronous schemes. These schemes can be categorized into three groups~\cite{ref57}:
\begin{enumerate} [(A)]
\item Transmitter-initiated: a special frame is sent by the transmitting sensor node to inform the receiving sensor node that it has a data frame to send. If the receiving sensor node is hearing the the special frame during one of its wake up intervals, it waits for sending the data frame. The major advantages of these schemes represented by the low requirement of the memory and processing whilst the major disadvantages are low-duty cycle and the sleep latency is non-deterministic.