# RECRP: An Underwater Reliable Energy-Efficient Cross-Layer Routing Protocol +
## 3 RECRP Description
### Routing Phase  
In the routing phase, collected data is sent to sink nodes through relay nodes. To ensure end-to-end transmission, it is necessary to ensure the successful transmission of each hop in the routing phase. When a node receives a packet, it sends an ACK to inform that the packet has been successfully received. If the sending node does not receive ACK from the receiving node within a certain period, the packet is sent repeatedly until ACK is received or retransmission times exceed the threshold. In order to update path information in time, each ACK packet and data packet contain residual energy and transmission power information to inform neighboring nodes to update their corresponding routing table entries. When a node receives a packet, whether it is the next hop node or not, it always updates its routing table according to the information in the packet, and resets the corresponding timer. Figure 3: The relationship between absorption coefficient and frequency. In order to transmit data successfully and energy-efficiently, the probability of success in sending packets is estimated at different frequencies and powers during each transmission. First of all, we need to estimate the impact of noise on the underwater transmission. Underwater ambient noise is mainly caused by four sources, including turbulence, shipping, waves, and thermal noise. We use \(N_{t}(f)\), \(N_{s}(f)\), \(N_{w}(f)\), and \(N_{th}(f)\) to represent these noises, respectively, where \(f\) is the underwater acoustic frequency used for packet transmission. The relationship of the four noises with frequency \(f\) can be described by the following formulae:  
\[10\text{log}N_{t}(f) =17-30\text{log}f, \tag{5}\] \[10\text{log}N_{s}(f) =40+20(s-0.5)+26\text{log}f-60\text{log}(f+0.03),\] (6) \[10\text{log}N_{w}(f) =50+7.5w^{(1/2)}+20\text{log}f-40\text{log}f(f+0.4),\] (7) \[10\text{log}N_{t}h(f) =-15+20\text{log}f. \tag{8}\]  
Turbulent noise can only affect underwater acoustic signals with frequencies below 10 Hz. Shipping noise is the main noise between 10 and 100 Hz, and is described by shipping activity factor \(s\). The value of \(s\) is between 0 and 1, and the smaller the value is, the less the shipping activity will be. Wave noise caused by sea breeze is the main noise between 100 Hz and 100 kHz. In the above formula, \(w\) is the sea breeze speed in m/s. Thermal noise is the main source of noise above 100 kHz. Figure 4 shows the relationship between transmission frequency and noise. The total ambient noise is [21; 28; 29]:  
\[N(f)=N_{t}(f)+N_{s}(f)+N_{w}(f)+N_{th}(f). \tag{9}\]  
Given the attenuation \(A(l,f)\) and noise \(N(f)\), the signal-to-noise ratio (SNR) can be observed over a distance \(l\) at frequency \(f\) and power \(P\):  
\[SNR(l,f,P)=\frac{P/A(l,f)}{N(f)}=\frac{P}{A(l,f)N(f)}. \tag{10}\]  
Figure 4: Schematic diagram of underwater noise variation with transmission frequency. The received packet can be correctly decoded when the SNR at the receiver is greater than the detection threshold. In addition to the SNR, the transmission of data packets should also account for the error probability of data transmission. It is assumed that binary phase shift keying (BPSK) is used to modulate the underwater acoustic data. In BPSK, each symbol represents one bit, then the probability of an error of one bit of data over distance \(l\) with sending power \(P\) at frequency \(f\) is [30; 31]:  
\[p_{e}(l,f,P)=\frac{1}{2}(1-\sqrt{\frac{SNR(l,f,P)}{1+SNR(l,f,P)}}). \tag{11}\]  
For any two nodes with distance \(l\) on sending power \(P\) and communicating at frequency \(f\), the probability of correctly delivering a packet with the size of \(n\) bits can be calculated as follows:  
\[p(l,f,P,n)=(1-p_{e}(l,f,P))^{n}. \tag{12}\]  
Packet error rate can be reduced by an error correction code. Error correction codes (ECCs) are used for controlling errors in data over unreliable or noisy communication channels [32].