## 3 Proposed Quality of Service Routing Protocol (QoSRP) in UWSNs
### Packets Forwarding Scheme (UIWPF)
#### 3.4.4 Routes Reconstruction Procedure  
Generally, the forwarders switch to sleep mode if they do not have more data to transmit to the sink. On the other hand, continue data transmission for a long time can drain relay nodes energy, particularly for those who are nearer to the sink. Moreover, in most cases these relay nodes are facing congestion issues because they are forwarding a huge amount of data coming from the rest of the network. In addition, the possibility of transmission failures cannot be ignored since the wireless links are unreliable in the harsh UWEs. In the first and last cases, if the receiver relay node did not reply to the sender in a predefined amount of time and then it sends the request again to the sender and wait for a predefined amount of time longer than the previous waiting time. The receiver node is declared as an inactive forwarder if the sender did not receive any reply from the destination node. In the second case, the congested node first set up the time and then sends a buffer overflow \((\mathcal{B}\,o\,f\_msg)\) to its neighbors nodes. The nodes correctly received the \(\mathcal{B}\,o\,f\_msg\) messages set the sender node buffer overflow priority to zero and update the entries in their routing table. This means that the forwarding node currently is not available for packets transmissions in the network. Then, the source node based on its local information launches another route-discovery process in the affected region in the network. In that case, the sender sends a route discovery message to the second highest priority node in the routing table in the upward direction and waits for the predefined time.  
The packets transmission begins as soon as the acknowledgment message is received from the receiver in the network. The buffer overflow priority of the selected destination relay node is set to one in the routing table since it is ready to receive packets. Finally, the data with the new relay nodes information is delivered to the sea surface sink, which sends an \(\alpha\&\_msg\) message to the downstream senders to inform them about this new route, including the identity of each forwarding and new selected relay node, and delivers it to the source node. Then each new acoustic relay node which receives an \(\alpha\&\_msg\) message from the sea surface sink first checks and decides either it was the selected next-hop forwarder along a distinct routing path in the upstream direction. If this is the case, the relay node confirms that it is on the newly constructed reverse path to the source node and marks itself as a reverse forwarder candidate in the network. Then, the forwarder candidate updates its records and after setting the priority in the routing table and forwards the received message to its downstream link candidates located on the lower levels. The designed mechanism by diverting the incoming traffic to another suitable routing path provides load balancing when the offered data traffic load exceeds the available node's buffer capacity in UWSNs. This avoids the data packets loss in UWSNs. During a new route discovery process, each iteration in the routing table is confirmed with their priorities so that no lower priority candidate is selected as the next hop relay node in the network. This entire mechanism guarantees transmission reliability even when a certain percentage of acoustic sensor nodes die in the network.