# Void Avoidance Opportunistic Routing Protocol for Underwater Wireless Sensor Networks
## 3 EEDOR Void Avoidance with Hop Count Discovery Mechanism
### Description of the Proposed EEDOR-VA Protocol
#### 3.3.3 Data Packet Forwarding Phase  
In greedy protocols, the most appropriate node based on some criteria with the shortest holding time will transmit the data packet first. This approach can suppress other suitable candidates based on other criteria (e.g., energy, degree, hop count) from forwarding the data packets. As a result, the packet might become lost, decreasing the packet delivery ratio, and energy consumption may increase due to retransmission. Our proposal overcomes this weakness by checking if the next forwarding candidate node has a path to the sink(s) so it can carry on delivering the packet hop by hop or not. In this way, our proposal avoids selecting void/trapped nodes, which do not have a path to any of the sinks, to become one of the forwarding set candidates, as discussed in the previous step. Once the neighbor nodes receive the data packet integrated with the sorted list of forwarding candidate IDs, each neighbor node checks if its ID is one of the IDs attached to  
Figure 5: Forwarding set candidates selection. the data packet. If the neighbor node cannot find its ID, then it simply drops the packet. Otherwise, the node has been chosen as a forwarding candidate and it starts the next step by computing its holding time, as explained below using Equation (9). In EEDOR-VA, the node's hop count is considered as the first metric to determine the most appropriate forwarding node, and then the node's depth will be used as a second metric in case of a tie. The most appropriate forwarding node will have a short holding time before transmitting the data packet to continue the forwarding procedure. If the most appropriate node successfully forwards the packet, and other forwarding candidates overhear the transmission, they will drop the packet. If not, the next node in the sorted list will transmit the data packet, and so on. These steps will be repeated until the data packet reaches the sink or all the candidate nodes in the forwarding set fail. Holding Time calculation: We notice that a number of nodes may have the same depth and/or distance from the sinks or the sender node. This number increases with node density. A number of greedy protocols use the node's depth to calculate the node's holding time. Hence, the number of nodes with nearly equal transmission time increases and collisions and re-transmission also increase, resulting in excessive network energy consumption. Therefore, the holding time in our protocol, which is used to calculate the forwarding time, must fulfill the two following conditions: (1) A node's holding time should decrease with a decrease in node hop count to the sink and node depth; (2) The holding time must also be sufficiently long to allow the lower priority candidate nodes in the forwarding set to hear the packet transmission by higher priority nodes before they forward the same data packet. Our proposed protocol satisfies the above-mentioned conditions. First, all the candidates in the forwarding set are sorted by the source in ascending order based on their hop count to the sink, and their depth is used to break any ties. Then, they are given a rank based on their place in the sorted list. A node's rank increases with the increase in its hop count. Equation (9) is used to calculate the candidate's node holding time (_HT_). \[HT=\frac{\left(2\times\frac{R_{tx}}{s}\right)}{DD}\times(R_{tx}-DD)\times(Rank-1) \tag{9}\]  
where \(R_{tx}\) is the node's transmission range, \(s\) is the propagation speed of sound underwater (1500 m/s) and \(DD\) is the difference between the packet sender depth and the depth of its next forwarder. In Equation (9), the first term aims to balance the propagation delays from the current Pholder node to all the candidates in the forwarding set. The second term of the equation is used to guarantee that the closer the candidate node is to the surface, the shorter the holding time. Finally, the third term assures a unique holding time for each candidate node based on its Rank value.