## 3 Triangle Metric Based Multi-Layered Routing Protocol
### Information Acquisition  
In this stage, unlike MRP, we form one layer around the supernodes placed at the highest supernodes. Through this layer, the neighbor nodes of the supernodes are assigned with layer ID. The process of assigning this layer ID can be done as follows. The supernode placed at the highest depth broadcasts a tiny hello packet with transmission power level p1. This hello packet contains the layer ID (i.e., ID1). The nodes that receive this packet will be assigned as layer ID1, as shown in Figure 4. This critical point is that once we have data to send, these nodes will forward the data packets directly to the supernodes.  
Figure 4: An illustration of assigning layer ID for neighbor of supernode (NSN).  
Figure 3: Triangle metric based link quality estimation in underwater networking.  
Second, other sensors without IDs broadcast a hello packet to its neighbors including the node's ID, residual energy, and depth, as shown in Figure 5. The sensor nodes then extract the depth embedded with the received packet and compare it with its depth. If the extracted depth is less than the node's depth, the extracted information is stored in the NIT. Otherwise, it ignores the packet. Specifically, each sensor collects the primary information that helps in the forwarding process and store them in NIT. Next, each node then calls the TM algorithm to measure the \(\Delta d\) for nodes in the table, as discussed in the previous section by broadcasting tiny packets including node ID. Finally, the calculated distance is added to the NIT on the highest distance based on the highest rank.  
At the end of this segment, NSN is assigned with ID. Each sensor node turns out to be aware of their elected neighbors' information including residual energy, depth, and calculated distance.  
Algorithm 1 describes the step by step process of executing the information acquisition phase in the routing framework. As shown in the algorithm, the first procedure _GenerateProb_ (lines 1 to 8) is employed in a specific interval of time by _SuperNode_ to generate a probe packet and broadcast it to its one-hop neighbors with power transmission level P1. Moreover, the second procedure _ReceiveProb_ (lines 10 to 12) is called to check the probe packet and take the proper action based on the steps mentioned in previous paragraphs. The third procedure _GenerateHello_ (lines 14 to 21) is also employed in a specific interval of time by all sensors (\(node_{i}\)) to generate a hello packet and broadcast it to its one-hop neighbors. Finally, the fourth procedure _ReceiveHello_ (lines 23 to 34) is called to extract the hello packet and take the suitable action based on steps mentioned in previous paragraphs. In this procedure, TM has been called to calculate the link quality (line 30).  
Due to the nodes' movement in UWSNs, it is stated that the nodes' location frequently changes. However, some nodes may join another node's range, or some current neighbors may go out of node range. Therefore, the nodes that have been inserted in NIT should be updated. More specifically, the information acquisition phase is periodically called to update the NIT of each sensor node at a given time interval. At the end of this process, the NSN is identified, and each sensor node becomes aware of the information about their neighbors such as depth, residual energy, and TM-based on distance.