## 4 Routing Layer
### Mobility  
In this sub-section, routing protocols that support mobility are discussed. There are many underwater networks applications where mobility is required at least in certain nodes; hence, different authors have tried to cope with this problem. In depth-based routing (DBR)for underwater sensor networks [96], each sensor calculates the forwarding action, taking into account its depth and the depth of the previous node. In this greedy algorithm, when a node has data to send, it broadcasts the message. Depth calculation and comparison are executed by neighbor nodes. In this line, nodes with shallower depths than the sender accept messages while dropping the other ones. The main disadvantage of DBR is that all nodes need a depth sensor, increasing the consumption and cost. The required broadcasting is another disadvantage. Finally, it is important to show the significant difference in performance when the node density changes. A similar approach is the one given by HydroCast [97], which is intended as an alternative to geographic routing, by using anycast routing and the pressure level with the goal of forwarding the data messages up to the surface. In this manner, is not necessary to implement an expensive distributed  
Figure 6: Classification of routing protocols. localization mechanism. HydroCast takes routing decisions after a depth information comparison, forwarding packets in a greedy manner towards a node with minor pressure using its neighbors. HydroCast assures that each local maximum node maintains a recovery path towards a neighbor with shallower depth. In this manner, a data packet can be routed out of the void region being switched back to the greedy mode. Simulation results show that HydroCast provides elevated delivery ratios with reduced delays. Instead of using depth sensors, in a hop-by-hop dynamic-addressing-based (H2-DAB) protocol [98], data is sent from nodes towards the water surface in a greedy fashion, assuming multiple buoys on the surface, which collect data from nodes deployed at different depths. Each floating node is assigned a dynamic 'hop_id', and anchored nodes have only one static 'hop_id'. On the other hand, surface and floating nodes have two addresses. On the water surface are located the sinks which must send 'hello' messages with the maximum hop count to other nodes to allow them to achieve the 'hop_ids'. The 'hop_id' of the floating nodes can change only after the reception of a 'hello' message. The node forwards the 'hello' message and the changed 'hop_id', after the 'hop_id' upgrade, to its neighbor and decreases the value of the hop-count. When the 'hello' message is received by an anchored node or the hop count is zero, the procedure is finalized. Evaluation results conclude that the density of the nodes does not influence the delivery ratio; the main drawback of this protocol is the high delay. A well-known location-based routing protocol for USNs is the vector-based forwarding protocol (VBF) [99]. VBF connects a routing pipe between the sender and receiver. All data transmission must use this pipe, with each packet containing the position of the sender, forwarder, receiver, and a 'range' field used for mobility implementation. Results show that VBF is intended for a dense USN, reducing the size of the pipe for network traffic. On the other hand, for VBF, disadvantages are possible in that node density influences the pipe efficiency. It is possible that in sparse networks, the pipe does not have sufficient nodes to forward messages. A clustering approach is described by the distributed underwater clustering scheme (DUCS) [100], which is intended for scenarios with random mobility that do not use geographical information. DUCS organizes nodes into clusters, and each node is one hop away from a cluster head. The head role is alternated. The protocol operation is divided into two phases: configuration and communication. The cluster head receives data from the cluster nodes executing aggregation. Finally the heads send the data to the sink by means of multi-hop.