## 3 Network Model and Network Initialization
### Network Initialization  
In the initialization phase of the network, the sink node starts to broadcast periodically HELLO packets. A HELLO packet is identified by using the sequence number (HELLO_seq_num) and involves some key information of the sending node, such as ID, layer, and residual energy. The information of the sending node is updated hop-by-hop, and the node receiving the HELLO packet updates its layer and neighbor information table according to the information from the received packets, which is described later. The structure of a HELLO packet is shown in Table 1[17], in which SN represents the sending node and RN represents the receiving node. S_ID and R_ID are the IDs of the sending node and receiving node, respectively.  
When an underwater node hears a HELLO packet, it stores the ID, layer, and residual energy of the sending node in the neighbor information table and records the HELLO_seq_num. The receiving node compares the layer of the sending node with its layer to determine whether to update its layer and forward the HELLO packet. Only the nodes with larger  
\begin{table}
\begin{tabular}{c c c c c c c c c} \hline \hline Bits & 8 & 16 & 8 & 16 & 2 &... & 16 & 8 &... \\ \hline \multirow{3}{*}{Fields} & \multirow{2}{*}{Layer} & \multirow{2}{*}{S\_ID} & \multirow{2}{*}{Layer} & \multirow{2}{*}{R\_ID} & Packet type & & & \\  & & & & & 0:DATA &... & Er & ND &... \\ \cline{2-10}  & & & & & 1: ACK & & & & \\ \cline{2-10}  & & SN & & RN & 2: HELLO & & & & \\ \hline Position & & & & Head & & & & Load \\ \hline \hline \end{tabular}
\end{table}
Table 1: The format of the HELLO packet.  
Figure 1: Network model.  
layers than the sending node are allowed to update and forward the HELLO packet, which avoids packet collisions and saves energy. Significantly, the information in the HELLO packet is updated hop-by-hop. In this way, the nodes in the network can discover their neighbor nodes. The sink node periodically floods the HELLO packets, which allow the underwater nodes to update their neighbor information tables in time. Each node can only forward the HELLO packet once within a flooding cycle period. In this paper, the flooding cycle period \(T_{\textit{flood}}\) of the HELLO packets is defined according to the communication radius and the average movement speed of underwater nodes:  
\[T_{\textit{flood}}=\frac{\frac{R}{2}}{V_{\textit{are\_mov}}}+\textit{Rand}() \tag{1}\]  
where \(R\) is the communication radius of the node, \(V_{\textit{are\_mov}}\) denotes the average moving speed of nodes, and \(\textit{Rand}\) () is the random function with a range of \((0,10]\).  
As mentioned earlier, each node maintains a neighbor information table in which the ID, the layer \(L_{n}\), the residual energy \(E_{r}\), and RH_flag of the neighbors are recorded. The structure of the neighbor information table is shown in Table 2, in which the RH_Flag is used to indicate whether HELLO packets have been received from neighboring nodes and has been described in detail in Section 4. \(N_{n\_c}\) denotes the number of HELLO packets forwarded normally, \(N_{n\_c}\) denotes the number of HELLO packets forwarded abnormally, \(N_{n\_d}\) represents the number of DATA packets forwarded normally, and \(N_{n\_d}\) represents the number of the DATA packets forwarded abnormally. The definitions of HELLO/DATA packets normally/abnormally forwarded have been given in Section 4.  
All the information stored in the neighbor information table will be used to calculate DTV and select the best forwarding node.