## 3 Proposed ASVMR Protocol
### A Dynamic Timer  
The preceding section primarily focuses on selecting the most suitable next-hop node. However, in underwater environments, communication via single-path transmission is unreliable. To enhance the PDR, this model adopts an opportunistic routing approach. Furthermore, a dynamic timer is employed to correlate the waiting time with the distance between the current node and the optimal next-hop node, ensuring that the data packets can be transmitted to the previously selected optimal next-hop node.  
Opportunistic routing involves a node initially forwarding data packets to a group of potential nodes, each of which retains a copy of the data packets [31]. Subsequently, each potential node can set its own timer to determine how long it will keep the copy. When the timer expires, the respective node becomes the designated relay node, and the other potential nodes can observe this behavior and discard their copies. This mechanism improves the reliability of data transmission, reduces unnecessary redundancy, and helps conserve energy. Nevertheless, the inclusion of timers introduces additional latency into the end-to-end communication.  
To further decrease the end-to-end delay, an adaptive timer setting based on node distance is addressed in this paper. Specifically, closer nodes have shorter waiting times, allowing them to forward data packets more swiftly and reducing the end-to-end delay.  
Figure 3: Illustration of candidate forwarding set selection.  
Figure 4 depicts a scenario where node \(n_{i}\) has a set of neighboring nodes and where node \(n_{j}\) has the maximum decision value. In this case, node \(n_{i}\) selects node \(n_{j}\) as the next-hop node and transmits the data packet to it, along with the ID and position of node \(n_{j}\). Upon receiving the packet, node \(n_{j}\) immediately forwards it, while the other nodes store a copy and calculate their distance from node \(n_{j}\). If this distance is less than the maximum communication range \(R\), the node sets a timer. If a forwarding packet from node \(n_{j}\) is not received before the timer expires, it forwards the stored replica in the hope of reaching node \(n_{j}\). The variable \(W\) represents the routing pipe radius, and the size of the candidate forwarding set can be dynamically adjusted based on the routing pipe radius. The maximum value of \(W\) is \(R\).  
Assuming that node \(n_{k}\) is within the maximum communication range of both node \(n_{i}\) and node \(n_{j}\), the waiting time of node \(n_{k}\) can be constructed as  
\[T_{\text{wait}}(k)=\frac{d_{ij}+d_{jk}-d_{ik}}{v}+rand\bigg{(}0,\frac{R}{v} \bigg{)}. \tag{19}\]  
where \(d_{ij}\), \(d_{jk}\), and \(d_{ik}\) represent the distance between node \(n_{i}\) and node \(n_{j}\); node \(n_{j}\) and node \(n_{k}\); and node \(n_{i}\) and node \(n_{k}\), respectively; \(v\) is the sound speed in water; function \(rand(a,b)\) generates a random real number within range \((a,b)\). In (19), the first term reflects the waiting time required for node \(n_{k}\) to receive the data packet from node \(n_{i}\) and then from node \(n_{j}\). The second term represents a random waiting time set to avoid the occurrence of collisions between nodes with the same waiting time.