In this section, a novel optimized link-state routing scheme with greedy and perimeter forwarding capability called OLSR+GPSR is presented in flying ad hoc networks. The proposed method includes three phases:
5.2. Selecting MPR Nodes
In OLSR+GPSR, the MPR selection algorithm is used to obtain the information of MPRs associated with each . The task of MPRs in OLSR+GPSR is different from their task in OLSR. In OLSR, these nodes broadcast TC messages throughout the network so that network topology information is globally available to all UAVs to calculate routing paths and update their routing table. This work is extremely costly in terms of communication overhead and energy consumption and increases delay in the routing process. Furthermore, this information is often invalid quickly due to the highly mobility of UAVs in FANET, and the routes formed between UAVs are often broken even without use in the data transmission process and must be updated again. According to the mentioned points, OLSR+GPSR seeks to reduce the tasks of MPRs to lower energy consumption and improve network lifetime. In this regard, MPRs do not need to propagate TC messages throughout the network and UAVs do not need to calculate all routes in the network. In OLSR+GPSR, MPRs are responsible for sending data packets to the destination in a greedy manner. They use the routing technique provided in GPSR to reduce routing overhead and delay. In this regard, each must specify its own MPR set, i.e., so that has at least one communication path to its two-hop neighbors through its MPRs. Note that the number of in is equal to M. To achieve this MPR set, must first make two sets, namely a one-hop neighbor set and a two-hop neighbor set . This process includes two steps:
5.2.1. Calculating the Score of One-Hop Neighboring Nodes
In OLSR, each determines its MPRs (, so that ) only based on the neighbor degree, whereas it is not enough because MPRs such as may go out of the communication range of in a very short time due to the high mobility of UAVs in FANET. As a result, communication links are quickly cut and the information about the entire network topology must be updated. This is associated with a lot of communication overhead, high energy consumption, and a lot of delay. For this reason, this problem has been solved in OLSR+GPSR. Hence, in addition to the neighbor degree, each should pay attention to node stability, occupied buffer capacity, and residual energy to choose each . To achieve this goal, calculates a score for each one-hop neighbor (where ) based on these four components.
Neighbor degree (): In OLSR+GPSR, similar to OLSR,
pays attention to the neighbor degree of
(i.e.,
), which is equal to the number of its one-hop neighbor to determine
.
is obtained from its neighbor table. This component represents the number two-hop neighboring UAVs of
that
covers in the network. Thus,
can choose suitable one-hop neighbors such as
as
because
with high
has more communication links with other nodes and creates stable paths in the network. This decreases routing overhead.
and
are directly related to each other. Therefore,
increases the score of
, which has a higher
so that
gets a higher priority to be selected as
.
uses Equation (
8) to perform a normalization operation on
corresponding to
(where
) so that this element is limited to
.
Here, is the normalized value of , and is equal to the maximum degree of the one-hop neighbors in (i.e., ).
Node stability (): In OLSR+GPSR,
measures the stability of
(i.e.,
) based on the effective distance, relative velocity, and movement direction of
to determine the most stable
in
.
is calculated according to Equation (
9).
Here, and , , and are the weight coefficients to determine the effect of each component (i.e., effective distance, relative velocity, and movement direction) on . In OLSR+GPSR, the effect of all three parameters, including effective distance (), relative velocity (), and movement direction (), on is the same (i.e., ). These three parameters are explained below.
- –
Effective distance (): The distance between
and
has an important effect on node stability. If this distance is close to the effective area of
,
is a stable neighbor. Otherwise, it is not suitable to choose this node as the MPR. In
Figure 7, the white area shows the effective area of
.
In general, the stability of
and its effective distance have a direct relationship with each other. Hence, if the distance between
and
is very short (i.e.,
), the selection of
as
is not a useful option because
plays the role of the next-hop node in the routing process, and its proximity to
will cause an excessive increase in the number of hops in the route. In
Figure 7, the distance between
and
is less than
. Thus,
should not be selected as an MPR node. On the other hand, if the distance between
and
is very long (i.e.,
), the selection of
as
is not appropriate because it may go out of the communication range of
very quickly. In
Figure 7, the distance between
and
is more than
. Thus,
should not be selected as an MPR node, whereas if the distance between
and
is in the effective range (i.e.,
), the selection of
as
is a very good option. In
Figure 7, the distance between
and
is between
and
. Thus,
is a stable neighbor and can be selected as an MPR node. This issue is stated in Equation (
10).
where
R is the communication radius of UAVs, and
is the Euclidean distance between
and
obtained from Equation (
11).
- –
Relative velocity (): The relative velocity of
with regard to
is an important factor in determining node stability. This factor determines whether these two UAVs (i.e.,
and
) fly at a relatively similar velocity. If this factor approaches zero, then the velocities of
and
are similar. Therefore, they do not leave the neighboring area of each other quickly. In this case,
is a stable one-hop neighbor, which can create stable paths and decrease the number of path failures. Now, if the relative velocity is large,
has weak stability. The length of the relative velocity of
with regard to
(i.e.,
) is calculated according to Equation (
12).
where
and
are the velocity vectors of
and
, respectively.
is normalized through Equation (
13).
Here, is the normalized value of . is the maximum relative velocity of one-hop neighbors in , i.e., .
- –
Movement direction (): The direction of
relative to
(i.e.,
) is an effective factor to evaluate the stability of
. If
moves in the opposite direction to
,
is known as an unstable node, and vice versa.
is calculated based on Equation (
14).
where
and
are the velocity vectors of
and
, respectively.
Now,
is normalized based on Equation (
15).
So is the normalized value of in .
Occupied buffer capacity (): In OLSR+GPSR, the occupied buffer capacity of
(i.e.,
) is used to determine
in
.
is calculated based on the ratio of the number of data packets in the buffer queue to the size of the buffer. This parameter is exchanged through hello messages. There is an inverse relationship between
and
because if
is a large value, it shows the presence of congestion and high traffic in
. This congestion decreases energy efficiency and network lifetime. As a result,
gives a lower score to
with a higher
so that
has a lower priority to be selected as
.
uses Equation (
16) to perform a normalization operation on
corresponding to
(
) to limit this element to
.
Here, is the normalized value of , and is equal to the maximum occupied buffer capacity of one-hop neighbors in (i.e., ).
Residual energy (): In OLSR+GPSR,
applies the remaining energy of
(i.e.,
) to determine
in
. When deciding on MPRs, this component is really vital for calculating the score of
because each MPR node such as
experiences higher routing overhead than other nodes. Hence, its energy consumption is high.
is obtained from the neighbor table, and there is a direct relationship between
and
. If
is high,
is more stable and has priority to be selected as
.
normalizes
corresponding to
(
) through Equation (
17) so that this parameter is limited to
.
Here, is the normalized value of , and is equal to the maximum remaining energy in (i.e., ).
Therefore, the score of each
(
) is obtained from Equation (
18).
Here, , , , and are the weight coefficients to express the effect of each parameter (i.e., neighbor degree, node stability, occupied buffer capacity, and remaining energy) on and . In OLSR+GPSR, the effect of all four parameters is considered to be the same (i.e., ).
5.2.2. MPR Selection Algorithm
In OLSR+GPSR, the MPR selection algorithm includes the following steps:
1. makes three sets, , , and .
2. calculates
for each
in
according to
Section 5.2.1.
3. If finds a with , it inserts into . Willingness is an index recorded in hello messages to determine the willingness of UAVs to transmit traffic, and its value is limited to . Nodes with are never selected as an MPR, whereas nodes with always become an MPR.
4. If and have only one communication path through , should select as a .
5. is responsible for removing all one-hop neighboring nodes determined as from .
6. is responsible for removing all two-hop neighbors , which have at least one communication path to through MPRs, from .
7. This step is repeated until is empty (i.e., ):
sorts the members of (i.e., so that ) based on .
If some of have the same score, those with a higher neighbor degree have a higher priority.
chooses a with the highest score (the first member of , i.e., ) and inserts it as into .
removes determined as from .
All IDs of two-hop neighbors (such as ) that have at least one communication path to through MPRs in are removed from .
The pseudo-code related to this phase is described in Algorithm 2. The time complexity of this algorithm is
so that
P and
Q indicate the sizes of two sets
and
, respectively.
Algorithm 2 The selection process of multi-point relays (MPRs) |
Input: : |
: Default period of time for propagating hello messages in . |
: |
: A one-hop neighbor of . |
: The score of . |
|
|
Output: |
Begin |
1: for to P do |
2: : Obtain corresponding to from its neighbor table; |
3: : Normalized according to Equation (8); |
4: : Gain corresponding to based on Equation (9); |
5: : Extract corresponding to from its neighbor table; |
6: : Calculate the normalized (i.e., ) based on Equation (16); |
7: : Obtain corresponding to from its neighbor table; |
8: : Get the normalized (i.e., ) in accordance with Equation (17); |
9: : Compute the score () related to according to Equation (18); |
10: end for |
11: : Consider an empty set to record the selected MPRs; |
12: for to Q do |
13: for to P do |
14: if in has then |
15: : Determine this as a member of ; |
16: : Delete this from ; |
17: : Remove the 2-hop neighbors () covered by from ; |
18: else if there is a in covered only by then |
19: : Determine this as a member of ; |
20: : Eliminate this from ; |
21: : Delete the 2-hop neighbors () covered by from ; |
22: end if |
23: end for |
24: end for |
25: while do |
26: : Sort the members of based on their ; |
27: if two one-hop neighbor have the same then |
28: : Prioritize these one-hop neighbors based on their ; |
29: end if |
30: : Select the first member of as ; |
31: : Eliminate this from ; |
32: : Delete the 2-hop neighbors () covered by from ; |
33: end while |
End |