# RECRP: An Underwater Reliable Energy-Efficient Cross-Layer Routing Protocol +
## 3 RECRP Description
### Routing Updating Phase  
In RECRP, each sink node periodically broadcasts a routing update message to start the routing update phase. When a node receives a routing update message, it updates its routing table information and broadcasts a new route broadcast message. During the routing update phase, all nodes broadcast with maximum power and lower channel frequency to achieve the maximum communication range. The update message contains packet type, node ID, node level, and residual energy. According to packet type, packets are divided into updating packets, data packets, and data responsepackets (acknowledgement packet, ACK). The node level is the minimum hop count to sink nodes, and the level of each sink node is 0. Since each node needs to update its own routing table and broadcast a new updating message after receiving a routing update message, each node sends only one routing update message during the updating phase in order to avoid loops. In RECRP, since each node sends a routing update message in the next time slot after receiving the message, when a node receives the second updating message, it only records the node in the routing table. Each node maintains a routing table as shown in Table 1. Each record contains the information used in the routing phase, such as the neighbor node ID, the distance to the neighbor node, the relative speed, and the residual energy. When a sensor node receives an updating message, data message, or ACK, it updates the corresponding entry in the routing table according to the received information. In order to adapt to the dynamic underwater network, each entry in the routing table corresponds to a timer for periodically clearing nodes that have not communicated recently. When the timer expires, the corresponding entry is removed from the routing table, which means that the node corresponding to the entry might move out of the communication range or become energy exhausted. To obtain the distance between neighbor nodes, the combination of the path attenuation model, the received channel strength, and the transmission strength in data packets are utilized. The path attenuation model [21] for underwater acoustic communication with frequency \(f\) between two nodes at distance \(l\) is:  
\[A(l,f)=A_{0}l_{k}a(f)^{l}, \tag{1}\]  
where \(A_{0}\) is a unit-normalizing constant, \(k\) is a propagation factor which represents the geometry of propagation, for spherical propagation \(k=2\), for cylindrical propagation \(k=1\) (here \(k=1.5\)[22]), and \(a(f)\) is the absorption coefficient. If expressed in \(dB\), the underwater acoustic path loss is:  
\[10\text{log}A(l,f)/A_{0}=k10\text{log}l+l10\text{log}a(f). \tag{2}\]  
The first item on the right side of the formula indicates the propagation consumption, and the second item indicates the absorption of the medium. The absorption coefficient is often set empirically, and the absorption coefficient of the sound signal with frequency \(f\) in dB/km is defined by the Thorps formula [23]:  
\[10\text{log}a(f)=0.11f^{2}/(1+f^{2})+44f^{2}/(4100+f^{2})+2.75*10^{-4}f^{2}+0. 003. \tag{3}\]  
The above formula is often used to represent signals with frequencies above a few hundred Hz. For low-frequency signals, the following form is often used:  
\[10\text{log}a(f)=0.002+0.11f^{2}/(1+f^{2})+0.011f^{2}. \tag{4}\]  
The relationship between absorption coefficient and frequency is shown in Figure 3.  
Equation (2) describes the attenuation of the underwater acoustic signal without obstacles in the propagation path. If a hydro-acoustic signal of frequency \(f\) is transmitted with power \(P\) along an unblocked path, the received signal strength is \(P/A(l,f)\), so we can roughly estimate the distance between two nodes by the received signal strength. \begin{table}
\begin{tabular}{c c c c c c} \hline \hline
**ID** & **Velocity** & **Distance** & **Energy** & **Level** & **Timer** \\ \hline
1 & 0.2 & 1.3 & 30 & 1 & 12 \\
3 & 0.1 & 0.8 & 15 & 3 & 17 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Routing table.