## 4 Working Mechanism of ESRVR
### Neighbors' Recognition  
In this second phase, a single node broadcasts a hello packet (HP), which comprises of the time stamp, depth, and ID of the node, as shown in Figure 2. The time stamp indicates the transmission time of the HP by the node broadcasting it. It also contains the maximum time after which the packet would be expired. This time stamp is computed by calculating the distance by which a farthest node is located away from the node that broadcasts the HP plus the delay due to the transmission and processing of the packets by the nodes. This delay is fixed for every node as a manufacturing characteristic, keeping in view the information stream with a certain number of data packets. Since the nodes are usually manufactured under the same conditions, nodes have almost identical delay in packets' processing and transmissions. To avoid computational complexity and unnecessary delay in routing, the acoustic speed is kept constant at 1500 m/s in the computation of the time stamp. The farthest node's distance makes it possible for the HP to reach all the neighbors of the broadcasting node.  
At the completion of the exchange of hello packets among nodes, every node recognize its neighbors along with their corresponding depth values and IDs. Then, every node makes a routing table that contains the time stamp, depth values and IDs of its neighbors and broadcasts it. The time stamp again indicates the broadcasting time and determines the duration after which the routing table would expire. The time stamp for the routing table is made in such a manner that the table had enough time to reach the two hop neighbors of the node that broadcasts it. Every node goes through this process. As a result, nodes come to know about the depth values and IDs of their own, as well as of two hop neighbors.  
The process of broadcasting of the routing table is shown in Figure 3, in which Nodes 1 and 5 are the broadcaster nodes. Node 1 has three neighbors: Nodes 2, 3, and 4. Node 5, on the other hand, has two neighbors: Nodes 6 and 7. Node 1 and Node 5 both obtain the depth and IDs information of their neighbors by exchanging hello packets with their corresponding neighbors. Then, both Node 1 and Node 5 create their routing tables, which contain the depth and IDs of their neighbors.  
Figure 3: Nodes 1 and 6 create their routing tables and broadcast. Node 1’s routing table is sent to its two hop neighbor, Node 7, via its neighbor Node 4. Node 6’s routing table is sent to its two hop neighbor, Node 4, via its neighbor Node 7.  
Figure 2: Structure of a hello packet.  
These routing tables are then broadcast. When the routing table broadcast by Node 1 is received by its neighbors, every neighbor stores the information in the routing table in its memory. Then, every neighbor further forwards the original routing table of Node 1 to its neighbors. For instance, Node 4, being a neighbor of Node 1, receives the routing table of Node 1. Then, Node 4 forwards the routing table of Node 1 to Node 6 (neighbor of Node 4). In this way, the routing table of Node 1 is sent to Node 6, a two hop neighbor of Node 1. In a similar fashion, the routing table of Node 5 is sent to Node 4, a two hop neighbor of Node 5, via Node 6. Every node undergoes this process. In essence, nodes are aware of the depth and IDs of the neighbors up to two hops. This information is later used in deciding the best nodes for routing the packets.