# DOW-PR DOlphin and Whale Pods Routing Protocol for Underwater Wireless Sensor Networks (UWSNs)
## 4 Proposed Scheme
### Whale Pods Routing Protocol  
Our proposed DOW-PR scheme divides the whole transmission region into two levels of nodes distribution. One level in which the nodes are in closest proximity to the surface sinks and the other is the nodes that are in closest proximity to the sink deployed underwater. There are nine sinks that are placed at the sea surface, while one is placed inside the water. The anchored nodes are fixed at the bottom that can generate and transmit a packet towards PFZ. The relay nodes are transportable with the water current in horizontal direction. These nodes are capable of generating, forwarding and receiving a packet from other nodes. Whenever the node transmits or receives a packet, the first and foremost step followed by the forwarder is to calculate its distance with the sink set D. The node compares the distance between itself and the rest of the sinks from the set D sequentially and finds PFNs lying in the hemisphere in the direction of the minimal distinct sink. The direction of data packet flow will be towards the sink lying at its closest proximity. If the separation between forwarding node and sink deployed on the sea surface is less than the sink deployed underwater, then the holding time computation will be carried out for the nodes present in the hemisphere in the direction of the surface sink D. On the other hand, if the source node is in closest proximity to the embedded sink \(D_{EM}\), then the holding time computation will be carried out for the nodes present in the hemisphere in the direction of the embedded sink \(D_{EM}\).  
The above-mentioned phenomena can be further elaborated by a scenario shown in Figure 8. For example, in the network initialization phase, node N1 will first lookup for a sink in its closest proximity. For instance, after necessary computation in the initialization phase, it finds embedded sink \(D_{EM}\) is the nearest sink i.e., \(d2<d1\). Node N1 will identify the PFNs in the hemisphere centered on the virtual vector connecting it with sink \(D_{EM}\). The best forwarder node will be selected using the same holding time computation described earlier in the dolphin pod technique. Likewise, if node A in Figure 8 has \(d4<d3\), then it will find PFNs in the direction of the surface sink D. Algorithm 1 described the best forwarder selection technique i.e., valid for both dolphin pods routing and whale pods routing protocol.  
Figure 8: Network architecture for whale pods routing.  
```
for\(i\gets 1\)toNodes by \(1\)do broadcast\(\_id=S(i).id\) \(PFNs=S(S(i).id).PFN\) Flag = \(1\) whileFlagdo for\(j\gets 1\)to\(Sink\_Nodes\)by \(1\)do find distance \(D\)] with sink(j) if\(D\)\(i<t\_range\)then Packet successfully delivered Flag = \(0\) Break if\(PFNs==0\)then broadcast\(\_id=broadcast\_id-Tr\_Energy\) SUPs \(=S(S(i).id).SUPs\) if\(SUPs\
eq 0\)then Chk\(\_\)FSUP = \(0\) for\(k\gets 1\)to\(SUPs\)by \(1\)do  Cache Fitness Function \((FF_{k}^{i})\) value for k\({}_{th}\) suppressed node Chk\(\_\)FSUP = FF\({}_{k}\) ifChk\(\_\)FSUP < FF\({}_{k}\)then Chk\(\_\)FSUP = FF\({}_{k}\) broadcast\(\_id=S(S(i).ID)SUP(k)\) Flag = \(0\) Break else Drop the packet Flag = \(0\) Break if\(PFNs==1\)then broadcast\(\_id=broadcast\_id-Tr\_Energy\) broadcast\(\_id=PFN\_ID\) if\(PFNs>1\)then for\(j\gets 1\)to\(Sink\_Nodes\)by \(1\)do find distance \(D\)] with sink(j) if\(D\)\(i<t\_range\)then Packet successfully delivered Flag = \(0\) Temp = \(1\) Break Check = \(0\)\(Suitable\_FF=\infty\) for\(s\gets 1\)to\(PFNs\)by \(1\)do  Cache Fitness Function \((FF_{k})\) value for s\({}_{th}\) PFN node broadcast\(\_id=broadcast\_id-Tr\_Energy\) if\(FF_{i}^{s}<Suitable\_FF\)then Selected\(\_id=S(S(S(i).ID).PFN(s)).ID\) \(Suitable\_FF=FF_{k}\) Temp = \(1\); ifCheck\(==1\)then broadcast\(\_id=Selected\_id\)  Calculate Holding time according to \(Suitable\_FF\)
```  
**Algorithm 1**Algorithm for selecting the forwarder among potential forwarding nodes.