*3.1. Topology Control Layer*

The topology control method that we propose is individually applied to each UAV in the network separately, but the final network appears as a comprehensive network topology. As shown in Figure 3, our topology control process is functioning between the network layer (L3) and the data link layer (L2). Since the topology control is compatible with various routing protocols in the network layer and many other flow control models in the data link layer, it can be well used in the conventional OSI network system. We assume that each UAV is equipped with a global navigation module, such as GPS, to determine the relative position between the UAVs. The topology control layer periodically broadcasts its position information, so each UAV can seize the nearby UAV positions. For example, as shown in Figure 3, let us assume that a UAV collects the positions of the four neighbor UAVs, from the beacon message reception by L2. The topology control layer *filters out* the link among these four available links, such as *L*<sup>2</sup> and *L*3, and reports the information of the link *L*<sup>1</sup> and *L*<sup>4</sup> to the L3. L3 operates its routing algorithm and creates the routing table. After L3 determines the link to send the packet, the topology control layer forwards the designated transmission power to L2, so the packet reaches the next hop or the destination with a proper amount of signal power. Note that if *P*<sup>1</sup> < *P*4, then there is a possibility that UAV 0 does not interfere with UAV 1 while using *L*4, which has advantages in the congestion release of the wireless medium.

**Figure 3.** Topology control layer as *L2.5* in the Network OSI model.

Compared to the fully connected topology (e.g., Figure 1a), some advantages can be made when adopting topology control layer. First, transmission power per each link is adapted. Of course, enough of the transmission power is needed for higher throughput, but excessively large power can be redundant at the viewpoint of the network lifetime. Second, a routing table is simplified and more effective. Due to the link filtering of the topology control layer, the number of the routes decreases, so the routing table calculation overhead also decreases. On the other hand, compared to the global MST topology (e.g., Figure 1b), there are other improvements, as in the case of fully connected topology. Due to the packet-level power control, each UAV can handle more links than the MST case. Also, there

are more capabilities to cope with the congestion or the failure of the links, since the topology control layer periodically observes the neighboring UAVs and considers the substitute route for networking.

Now, we should consider how to filter the links from the available ones. If the criteria of the filter are only the distances from the destination UAVs, then a part of the UAV network can be isolated due to unexpected link pruning, as shown in Figure 4. Section 3.2 discusses our strategy to build stabilized and efficient topologies by collecting only the positions of nearby UAVs.

**Figure 4.** Wrong case of the link pruning.

## *3.2. Space Partition Method*

To distribute the neighbor links direction evenly, we propose a novel space partition method as a solution of the link selection problem. Assuming that the maximum transmission range of a UAV is shaped as a sphere, the spherical space can be divided into several partitions with the same volume, which includes the origin of the sphere. By selecting the closest links from each partition, the UAV gets a set of links that are evenly distributed in all directions. With this observation, we designed an algorithm for the proposed space partition scheme as shown in Algorithm 1.

Figure 5 shows the overall steps of Algorithm 1. Our proposed system runs two processes in parallel, the one addressed at lines 3 to 11, and the other one addressed at lines 13 to 32. The system globally allocates a memory to monitor the location of the nearby UAVs in the maximum transmission range, named *P*. The function NeighborUpdation periodically broadcasts the beacon message containing its position information, and receives the nearby UAV's beacon message to update *P*. With the updated position information, the function LinkSelection prunes the links according to the space partition method and designates the transmission power of each link. We address the sequence of the algorithm in detail.

At first, the algorithm should secure a set of vectors *S*, which contains the vectors, each of which projects the partitioned surface of a sphere, known as *partition vector*. To get *S*, we divide the sphere sized with the maximum transmission range into *n* partitions. For the uniform distribution of the links, we set ground rules for partitioning:


**Algorithm 1** Topology control layer.

```
1: P ← φ -
                                                       Neighbors' position vectors
2:
3: function NEIGHBORUPDATION
4: while exception occurred do
5: −→p0 ← UpdatePos()
6: BroadcastPosition(
                       −→p0 )
7: P ← ReceiveBeaconMessages()
8: Update P with P
9: Sleep for a cycle
10: end while
11: end function
12:
13: function LINKSELECTION
14: S ← Normal vectors of n planes. -
                                                               Partition vectors
15: while exception occurred do
16: Ai ← φ where 0 < i < n
17: Hi ← φ where 0 < i < n
18: Txi ← 0 where 0 < i < n
19: for −→p in P do
20: −→d ← −→p − −→p0
21: −→s ∗ ← arg max−→s ∈S
                         −→s ·
                            −→d
22: h ← IndexOf(
                    −→s ∗)
23: append IndexOf(
                       −→p ) in Ah
24: end for
25: for i where 0 < i < n do
26: Construct an MST of the components in Ai regarding −→p0 as a root
27: Hi ← the children of −→p0
28: Txi ← GetTxOfRange(Hi)
29: end for
30: Sleep for a cycle
31: end while
32: end function
```
**Figure 5.** Graphical representation of Algorithm 1. (**a**) Finding the belonging partition of a link; (**b**) Select the nearest link from each partition.

The examples of the partitioning are represented in Figure 6, where *n* = {2, 4, 8, 12, 20}. For visibility, we expressed the partitions as the shape of the original ingredients of the solid figure,

such as cube, icosahedron, and so on. The actual partitions are the ones trimmed by the sphere inscribed in the colored solid. For instance, if *n* = 2, a set *S* is composed of two vectors, which are (1, 0, 0) and (−1, 0, 0), respectively. On the other hand, if *n* = 8, a set *S* is composed of eight vectors, which are (±1, ±1, ±1). In the cases of *n* = 12 and *n* = 20, we used known regular polyhedrons which have the same area of the faces and can be closely fitted to the sphere, such as dodecahedron and icosahedron, respectively. The normal vectors of each case can be derived from the known equations, such as

$$\begin{aligned} S &= \{ (\pm 1, \pm 1, \pm 1), \\ (0, \pm (1+h), \pm (1-h^2)), \\ (\pm (1+h), \pm (1-h^2), 0), \\ (\pm (1-h^2), 0, \pm (1+h)) \} \\ &\text{where } h = \frac{\sqrt{5}-1}{2}, \end{aligned}$$

when *n* = 20.

Topology control layer periodically updates the position of nearby UAVs by NeighborUpdation, and determine what partition each UAV belongs to, in LinkSelection. For each UAV's position −→*p* , the algorithm derives −→*<sup>d</sup>* <sup>=</sup> −→*<sup>p</sup>* <sup>−</sup> −→*p*<sup>0</sup> , and selects a normal vector *<sup>s</sup>*<sup>∗</sup> from *<sup>S</sup>* which results the maximum inner product value with −→*<sup>d</sup>* (Figure 5a). After categorizing all links, the algorithm constructs an MST composing the UAV itself and the other UAVs in each partition, then collects the one-hop links from them (Figure 5b). Finally, the UAV reserves the number of the selected links, each of which is the nearest UAV in a partition. In the aforementioned case of Figure 4, the far-range link will be one of the selected one, since the neighbor UAV is within a transmission range, and it will be the only one link of a specific partition.

After the suggested topology control process, multi-hop communication can be performed with any desired routing protocol. For instance, the shortest path algorithm, such as the Dijkstra or Bellman–Ford algorithm, can be used to derive the routing path to the other UAV connections in distributed routing protocols. As an overall assessment, our topology control method can reduce the number of unnecessary links by effectively dividing the surrounding space into several partitions. Also, it has an advantage in transmission power because each UAV only needs to consider the nearest UAVs.
