# Adaptive Power-Controlled Depth-Based Routing Protocol for Underwater Wireless Sensor Networks
## 3 The Proposed Protocol
### Detailed Design of APCDBRP
#### 3.3.2 Data Transmission Phase  
In this section, we first introduce the calculation method for the forwarding factor. We then describe the implicit routing update mechanism, followed by a detailed explanation of the data forwarding process. Figure 4: Route establishment example. Forwarding Factor Calculation  
The forwarding factor will be used for selecting relay nodes, and the selection of relay nodes plays a crucial role in improving energy-efficient data transmission. In order to make the protocol address both energy reduction and energy balance, we propose a forwarding factor that comprehensively considers energy efficiency, node remaining energy, and the success rate of node forwarding, aiming to select the optimal next-hop node. Next, we will illustrate how to calculate the forwarding factor. Let node A be the current node and node B be the neighboring node. The specific steps to calculate the forwarding factor from node A to node B are as follows:  
Firstly, node A receives the packet (such as the BEACON packet) sent by node B and measures the received signal strength (R\({}_{SS}\)) of the packet, Equation (6). \[\text{R}s\text{s}=10\log P_{r} \tag{6}\]  
Here, \(P_{r}\) is the received signal power at node A. Let \(P_{t}\) be the power at which node B transmits the BEACON packet. The path loss between node A and node B, denoted as \(L_{AB}\), can be represented as follows:  
\[L_{AB}=\frac{P_{t}}{P_{r}} \tag{7}\]  
The optimal transmitting power from node A to node B, denoted as \(P_{optAB}\), can be calculated as:  
\[P_{optAB}=L_{AB}P_{th} \tag{8}\]  
Here, \(P_{th}\) represents the signal reception threshold in watts. The transmitting power level \(P_{ABL}\) for communication between node A and node B is determined by \(P_{optAB}\), that is:  
\[P_{ABL}\gets P_{optAB} \tag{9}\]  
The energy consumed when node A sends a data packet to node B can be calculated as follows:  
\[E_{AB}=P_{ABL}\frac{L}{Ra} \tag{10}\]  
It should be noted that node B also consumes energy when receiving data. However, since the receiving power of the node is much lower than the transmitting power, we can neglect this energy consumption when calculating the forwarding factor. Let the normalized residual energy of node A be expressed as \(E_{re}\), and the normalized energy efficiency from node A to node B be expressed as \(E_{qAB}\).The forwarding factor from node A to node B is given by  
\[f_{AB}=p_{B}\big{(}\alpha E_{qAB}+\beta E_{re}\big{)}\ \ E_{re},E_{\eta AB}\in(0,1] \tag{11}\]  
The above formula represents the calculation method of the forwarding factor, describing the specific quantification of the node forwarding success rate, energy efficiency, and remaining energy. In this formula, \(p_{B}\) denotes the forwarding success rate of node B, initially set to 1. After the node forwards a certain number of data packets, this value is updated to the ratio of successfully forwarded data packets to the total number of data packets the node attempted to forward. To balance the impact of energy efficiency and remaining energy, we introduce system parameters \(\alpha\) and \(\beta\), representing the weights for energy efficiency and remaining energy, respectively. These parameters are used to adjust the relative importance of the two metrics in the forwarding factor. To ensure the effectiveness of parameters \(\alpha\) and \(\beta\), and to guarantee that the forwarding factor reasonably considers the influence of both remaining energy and energy efficiency, we set their values within the range of 0 to 1, and they satisfy the condition \(\alpha+\beta=1\). In theory, a larger value of \(\alpha\) leads to better energy efficiency for the routing. Conversely, a larger value of \(\beta\) resultsin better energy balancing performance for the routing. The energy efficiency \(E_{\eta AB}\) can be calculated using the following equation:  
\[E_{\eta AB}=\frac{\Delta d_{AB}}{E_{AB}} \tag{12}\]  
.