# Geographic Routing Decision Method for Flying Ad Hoc Networks Based on Mobile Prediction
## 3 System Model
### Neighbors Discovered  
In a flying ad hoc network, the high-speed movement of nodes leads to challenges in accurately reflecting the actual position changes of neighbor nodes in the neighbor node list, causing neighbor node information to become outdated. To address this issue, this section proposes an efficient neighbor node discovery algorithm. The core objective of this algorithm is to rapidly eliminate outdated neighbor information and dynamically adjust the sending interval of Hello packets to ensure timely discovery of new messages while reducing the overhead of Hello packet probing.The node sends a Hello packet to its neighboring nodes, which contains its own GPS coordinate information, speed information, and adjacency table. The neighboring nodes also need to respond to their Hello packet once they receive it. Each node maintains a network topology graph in the form of an adjacency table, and uses EKF to predict the neighbor positions of one hop within the interval of Hello packets. As the neighbor discovery process progresses, the adjacency table is continuously updated, and each node in the network will know its reachability to other nodes. Assuming the distance between two nodes is \(d_{ij}(t)\), the coordinates of node \(j\) at time \(t\) are \((x_{j}(t),y_{j}(t),z_{j}(t))\), and the coordinates of node \(i\) at time \(t\) are \((x_{i}(t),y_{i}(t),z_{i}(t))\), then the distance formula between the two nodes at time \(t\) is expressed as follows:  
\[d_{ij}(t)=\sqrt{(x_{j}(t)-x_{i}(t))^{2}+(y_{j}(t)-y_{i}(t))^{2}+(z_{j}(t)-z_{i }(t))^{2}} \tag{9}\]  
If \(d_{ij}(t)\) is greater than the transmission range \(R\), it is deemed that the position of neighbor node \(j\) of node \(i\) at time \(t\) is invalid. Node \(i\) will then delete the corresponding neighbors and their connections. Sending Hello messages in dynamic time slots greatly reduces the overhead of neighbor discovery compared to sending Hello messages in fixed time slots, and nodes can also perceive neighbor departures in a timely manner. If the predictable inter-node distance \(d_{ij}(t)\) is less than the transmission range \(R\), in order to ensure the timely capture of new messages, we dynamically adjust the transmission time of Hello packets. Given the limitations of periodic broadcast of Hello packets in responded highly dynamic mobile environments, nodes can estimate the expected duration of the link after obtaining their own and neighbors' location information. The Hello packet transmission interval is flexibly adjusted based on the minimum link duration. Through this approach, when the relative distance between two nodes is expected to exceed the transmission range, the algorithm can more effectively adapt to rapid changes in network topology, ensuring the continuity and timeliness of communication. The link maintenance time between two nodes is represented as follows:  
\[L_{t(i,j)}=\frac{|R-d_{ij}(t_{2})|}{\triangle d_{ij}/(t_{2}-t_{1})} \tag{10}\]  
\[\triangle d_{ij}=d_{ij(t_{2})}-d_{ij(t_{1})} \tag{11}\]  
where \(L_{t(i,j)}\) represents the link duration between node \(i\) and node \(j\), \(d_{ij}\) represents the displacement difference between node \(i\) and node \(j\) over two time intervals, \(\triangle d_{ij}/(t_{2}-t_{1})\) represents the relative velocity between the two nodes, and \(|R-d_{ij}(t_{2})|\) represents the distance at which the communication range will be exited. Each node measures the minimum link duration with all its neighbor nodes. Based on the link duration of neighbor nodes, the Hello packet transmission interval needs to be set as follows:  
\[T_{h}=\min_{j\in neighbor(i)}L_{t(i,j)} \tag{12}\]  
\[Hello_{t}=\tau*T_{h},\quad 0<\tau<1 \tag{13}\]  
where \(\tau\) is the time update coefficient. By dynamically adjusting the transfer time of Hello packets, it is possible to promptly detect the arrival of new neighbors, laying the foundation for routing decisions.