# DOW-PR DOlphin and Whale Pods Routing Protocol for Underwater Wireless Sensor Networks (UWSNs)
## 4 Proposed Scheme
### Holding Time Estimation  
When neighbors of a source node receive data packets, it decodes and extracts the depth information of a source node and compares it with its own depth field DP. If DP value of the receiver is greater than DP value of the source node, and also the void announcement VA field has a value of 1, then it will forward the packet after necessary holding time calculation when no PFN is available to source. For the case, if PFNs are available, then each PFN will calculate the holding time according to the Fitness Function (HH) value, which is described below. The proposed scheme not only considers the sum of depth difference of the two hops (H), but also considers the number of PFNs (\(PFN_{num}\)), number of suppressed nodes (\(SUP_{num}\)), and the hop count from PFN to sink, which is best in favor of performance metrics. Thus, the proposed scheme will consider all of the above-mentioned factors in selecting the next forwarding node. To find the Fitness Function (HH) value, we mapped the \(PFN_{num}\), \(SUP_{num}\) into arbitrary values called as division factors represented by \(DIV_{PFN}\) and \(DIV_{SUP}\), respectively. This is further elaborated in the simulation analysis section:  
\[H=\alpha h+(1-\alpha)h1, \tag{9}\]  
where \(h\) is the depth difference of the source node to its PFN and \(h1\) is the depth difference of the PFN to the next expected hop and \(\alpha\) is weighting coefficient and its value is between 0 and 1. For node A, h is the depth difference of the source node S and itself A and h1 is the depth difference of node A and E as shown in Figure 7. The Fitness Function is then calculated as:  
\[HH=\frac{H}{((DIV_{PFN}+DIV_{SUP})\times HOP_{\textit{losink}})}. \tag{10}\]  
The holding time is a function of the fitness value:  
\[T(H)=k*(HH)+\beta, \tag{11}\]  
\[T(H)=k\frac{H}{((DIV_{PFN}+DIV_{SUP})\times HOP_{\textit{losink}})}+\beta. \tag{12}\]  
Let Figure 7 nodes A (transmission range specified by red circle), B and C have the same number of suppressed nodes. For Node A : H = 8, \(PFN_{num}\) = 8, \(HOP_{\textit{losink}}\) = 4 so \(DIV_{PFN}\) = 1. For Node B : H = 16, \(PFN_{num}\) = 90, \(HOP_{\textit{losink}}\) = 4 so \(DIV_{PFN}\) = 15. For Node C :H = 12, \(PFN_{num}\) = 40, \(HOP_{\textit{losink}}\) = 4 so \(DIV_{PFN}\) = 7. According to \(\mathrm{WDFAD-DBR}\), node B will be selected as a next forwarder, but it has a large number of PFNs, which will consume a lot of receiving energy and generate a large number of duplicate packets. In DOW-PR protocol, the node having highest Fitness Function (HH) value will be selected as the next forwarder. Thus, Fitness Function (HH) calculates for Nodes A,B and C as follows:  
Node A:  
\[HH=\frac{8}{1\times 4}=2,\]  
Node B :  
\[HH=\frac{16}{15\times 4}=\frac{16}{60},\]  
Node C :  
\[HH=\frac{12}{7\times 4}=\frac{12}{28}.\]  
If source node S broadcasts a packet, then all the neighbor nodes i.e., A, B, C, M and N shown in Figure 7 acquire this packet. The suppressed nodes M and N will temporarily hold or drop the packet depending on the presence or absence of node(s) in Potential ForwardingZone (PFZ). Nodes A, B and C are PFNs of source S and will compute the holding time and start timers. If a duplicate packet is not encountered until expiry of the timer, then this specific PFN will be selected and readily forward the packet. On the other hand, if it does not receive the duplicate, then it simply drops it. For the scenario, in which node A and B receives the packet at t1 and t2, respectively, and the duration of the packet propagated from A to B is t12. As fitness value (HH) for node A is greater than node B, then the following condition is satisfied:  
\[T[HH_{A}]<T[HH_{B}]. \tag{13}\]  
The holding time between two neighboring nodes should be different in such a way that the forwarder node that has a greater fitness function (HH) value transmits the packet before the transmission of the same packet from other nodes. For instance, if node A has the highest fitness function value, then it will transmit prior to node B.