## 4 The Considered Nodes' Synchronization and Data Transmission Protocol
### Synchronization Protocol  
The presence of considerable clock offsets (see Figure 5) imposes the adoption of a synchronization protocol to make data transmission possible. As matter of fact, the clock offset leads to a misalignment in the waking up instants of two adjoining nodes: this means that one node may wake-up while the following is still sleeping, and then the transmitted packet is inevitably lost. Hence, we propose a synchronization protocol where, as in classical synchronous MAC protocols, the time is divided into SYNCH, DATA, and SLEEP periods. The SYNCH period is used to communicate the DATA transmission scheduling to the next node in the chain, following a SYNCH packets flooding mechanism, where a SYNCH packet is transmitted from node 1 to node \(S\) in the chain. Before discussing the proposed synchronization protocol, we first notice that in this setting a mechanism for informing the source node that the SYNCH packet is correctly received is mandatory. To this aim, LoRaWAN protocol provides an ACK mechanism that, however, requires the transmitter to remain active for the time of the reception of a whole additional packet [39]. In order to further optimize the power consumption, we propose instead an acknowledge mechanism based on a Low Power Listening (LPL) approach. To elaborate, we first note that, owing to the particular environment considered in this paper, each node can retransmit the SYNCH packet as soon as it receives it without the risk of incurring in a collision. Hence, the transmitter knows that, upon correctly receiving the SYNCH packet, \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**EN Sleeping Period** & **IN Sleeping Period** & **Transmitted Packets** & **Received Packets** & **Packet Loss Rate** \\ \hline
120 s & 116 s & 100 & 100 & 0\% \\
300 s & 296 s & 100 & 72 & 28\% \\
600 s & 596 s & 100 & 43 & 57\% \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Multi-hop data transmission. Packet loss rate in different conditions. the subsequent node immediately transmits it towards the next node in the chain. Accordingly, the transmitter may remain active for a short period _overhearing_ the channel to understand whether the next node transmits or not. The proposed procedure can be summarized as follows: node \(s-1\) broadcasts its SYNCH packet and steps down in LPL modality, overhearing the channel soon after it terminates the transmission. Node \(s\) receives the SYNCH packet and then forwards it to node \(s+1\) in broadcast modality; such transmission is detected also by node \(s-1\). Nevertheless, node \(s-1\) does not receive the whole packet: instead, after receiving the first byte it immediately starts the sleeping period, thus, reducing power consumption with respect to the classical ACK mechanism. In case node \(s-1\) did not detect the transmission of the SYNCH packet, it would retransmit it continuously, as in classical LPL schemes. Assume now that at a given initial time all nodes are synchronous. Then, after a supposedly long sleeping period, denoted by \(D_{long}\), \(s\)-th node in the chain should ideally schedule its re-activation with a given delay \(R_{s}\) with respect to node \(1\), to give the previous nodes time to transmit all the SYNCH packets. Ideally, node \(s\) would wake-up at the exact moment that node \(s-1\) starts its transmission. However, as a consequence of inevitable clock offsets, the exact delay time \(r_{s}\) when each node actually activates after the sleeping period will be different from \(R_{s}\). In particular, denoting by \(\delta_{s}\) the synchronization error for node \(s\), we have \(r_{s}=R_{s}+\delta_{s}\), where the entity of \(\delta_{s}\) will be strictly related to \(D_{long}\). Hence, a protocol for managing clock misalignments is required, so that packets can be successfully delivered to the Gateway and, at the same time, nodes are prevented from long idle listening that would rapidly determine node's batteries depletion. In the proposed approach, the SYNCH procedure is initiated by node \(1\).