3.1. Problem Definition
As mentioned in
Section 2.2, when Ext-Desync is operated in MANET environments, collisions of firing messages may occur due to node mobility. Node
i (
) can detect the collision of its firing message by monitoring the firing message from other node
j within its one-hop range during the next periods whether its identifier is included in
(
).
Figure 2 shows an example scenario to illustrate this situation more clearly. There are 12 nodes denoted
(
i = 1,2,⋯,12), and
is moving while other nodes are not.
Figure 2a,b show the network topologies in (
t − 1)-th and
t-th periods before and after
moves, respectively.
In
Figure 2a, example topology and timelines of the firing messages from both all nodes and
’s perspective at (
t − 1)-th period before
moves are shown. Since nodes
,
, and
are three-hop distances from each other, collision does not occur though they have the same firing phase [
36,
37]. Node
has
and
.
When
moves into the one-hop range of
at
t-th period as shown in
Figure 2b, since
’s firing phase overlap with
’s one, firing messages from
and
are collided at
.
makes its firing message
. After
and
receive the firing message from
, they can acknowledge the collision of their firing messages.
After the collision is detected by
and
during
t-th period, the possible cases where they can resolve the collision by changing their firing phases are shown in
Figure 3.
Figure 3a shows one case where both
and
change their firing phases. Nodes
and
do not transmit any messages, but
to the firing messages from neighbors during (
)-th period. No node can utilize the slot allocated for
and
previously, which are denoted by the dotted line, and thus the slot is wasted. They calculate timelags, randomly choose one among them, and proceed with the join process to determine their slots in the network during (
)-th period as described in
Section 2.2. Then, they can transmit data on their determined slots from (
)-th period.
Figure 3b shows the case where
changes its firing phase while
does not. In this case,
can continuously utilize its slot previously assigned, no slot is wasted, unlike
Figure 3a. However, after the listen and join processes,
can transmit its data from (
)-th period. The case where only
changes its firing phase is shown in
Figure 3c. In this case, the opposite situation appears for
and
as in
Figure 3b.
Figure 3d shows the case where both
and
do not change their firing phases. Then, since their firing messages collide again during (
)-th period, they should repeat one of
Figure 3a–d from (
)-th period, and the slot is wasted.
3.2. Criterion of Firing Phase Change to Maximize Slot Utilization
The frequent change of firing phases due to collisions may cause significant degradations of Ext-Desync networking performances, especially from the viewpoints of the slot utilization as described in
Section 3.1. The authors in [
25] suggested that nodes that detect the collision may change their firing phases with a certain probability of 50% as a trade-off between reliability and latency. However, when the probability is fixed like that, there always exists the possibility that collided nodes change their firing phases simultaneously to equal phases, which results in collisions again and the waste of slots as shown in
Figure 3.
In this Section, to overcome the problem by the fixed probability model as in [
25], we derive an effective criterion model for collided nodes to determine the probabilities that they can change their firing phases dynamically by considering collision situations in order to maximize the slot utilization. The variables to explain the model are illustrated in
Table 2.
For the convenience of the model derivation, it is assumed that
acknowledges its firing message collision in the 0-th period, i.e.,
t = 0. As shown in
Figure 3a, when
changes its firing phase, since it can obtain the slot for data transmission in the following second period after the change of the firing phase, the slot is wasted for the periods. On the other hand, if
does not change its firing phase, it can utilize the slot assigned to it continuously, as shown in
Figure 3b,c.
Let
be the probability that
changes its firing phase in the
k-th period.
. Then, the expected slot size for
when it changes its firing phase before
n-th period (
) is written as
where
denotes the slot size for
, when it changes its firing phase in the
k-th period and
=0.
We also have the expected slot size for
when it does not change its firing phase until the
n-th period as
From Equations (
9) and (
10), the expected value of
is written as
The collision may occur by the hidden terminal problem, for example, between
and
shown in
Figure 2b. Since firing messages are broadcast, the collision of other nodes’ firing messages can be recognized by monitoring
from others in the next period. Let
be the number of those hidden nodes that cause the collision to
’s firing message in the
n-th period. For example, nodes
and
are hidden terminals each other in
Figure 2b. Accordingly, for
, we have
=1 and
. On the other hand,
and
for
. With
, the expected value of
can be calculated by
s (
) can be estimated consecutively using
and the firing messages received from its one-hop neighbors in the
n-th period as follows:
Using Equations (
11) and (
12), the expected value of
is calculated as
Assuming that
acknowledges the collision of its firing message in the 0-th period and changes the firing phase with probability
p (
) in the next 1-st period, let define
as the expected amount of total data successfully transmitted up to the
n-th period. With Equations (
11) to (
14), it can be written as
where
and
.
Then, we have the criterion to determine the probability that changes its firing phase to maximize as following:
Proposition 1. When acknowledges first the collision of its firing message in a period, is maximized when it changes its firing phase in the next period with the probability of = 0 or 1.
Proof of Proposition 1. From Equation (
15), we have
and
when
= 0 and 1, respectively, as follows
To validate the that or are always greater than for , we consider the following two cases.
Case 1. :
In this case, from Equations (
16) and (
17), we have
. For
, the inequity of
can be obtained. With the inequalities and Equation (
15), we have the relationship between
and
as follows
Case 2. :
This case is equivalent to
. For
, we have
. With the inequalities and Equation (
15), the following relationship between
and
holds for this case.
Cases 1 and 2 indicate that either of or is always larger than for . In other words, is maximized when changes its firing phase with the probability of 0 or 1, not determining probabilistically between 0 and 1. □
To show the effectiveness of the
, the values of
for various
and
when
n = 5 and
= 10 are shown in
Figure 4. For the convenience, it is assumed that the slot size of each node is set to 1, i.e.,
= 1, for
and
. As shown in
Figure 4,
shows different aspects for each
and
and is maximized when
is 1 or 0, and it appears differently depending on
.
That is, when
s are lower than around 0.2,
s show the increasing pattern as
increases, and thus
s become maximum at
= 1. On the other hand, when
s are greater than around 0.2,
s show a decreasing pattern as
increases, which results in the maximums of
s at
= 0. Likewise, ES becomes its maximum at
= 0 or 1 depending on
. As mentioned earlier, it is not possible for
to know
. The method to estimate
is explained in
Section 3.3 as one of our proposed methods in this paper.
With the
, we have the optimal criterion to determine the probability for changing its firing phase as follows
3.3. Ext-Desync TDMA with Optimal Criterion of Firing Phase Change
Here, algorithms for determining the optimal criterion of firing phase change illustrated in the previous section are explained. For better understanding, the relationships among the functions used in the algorithms and their operational processes concerning cycle periods are shown in
Figure 5. Since the proposed method operates asynchronously, like Ext-Desync, the algorithms also operate asynchronously. A detailed explanation of the operation is explained later.
ListenMode(T) in Algorithm 1 is executed every period, and The algorithm’s operation starts from
ListenMode(T) in Algorithm 1 every period by receiving firing messages from nodes and detecting whether its firing message collided or not.
The period executing
ListenMode(T) is denoted as the 0-th period for convenience. The blue line and text in
Figure 5 are the main functions used in Algorithm 1 showing their interrelationship on operations according to subsequent periods following the 0-th period. Among Algorithm 1 functions,
OnSlotStart( ) operation depends on the result of
DeterminePhaseChange( ) function performed in Algorithm 2. The red line and text indicate the process of Algorithm 1 according to the result of Algorithm 2.
The overall procedure of Ext-Desync TDMA with the adaptive change of the firing phase from the viewpoints of a node () in the network is shown in Algorithm 1 with five main functions such as Init(), OnListenPeriodEnd(), OnReceive- FiringMessage(), OnFiringPhase(), and OnSlotStart(). Since Algorithm 1 operates repeatedly, the period index is expressed to 0. Notations of and refer to the parameters of the current and the following periods, respectively.
Init() is done when is initially joining the network and starts to execute the adaptive firing phase change mode.
OnListenPeriodEnd() is called at the end of the listen period, i.e., at the end of
ListenMode() in
Init(), which is mentioned in
Section 3.1.
is initialized by
, which is one of the system parameters and used in
DeterminePhaseChange() of Algorithm 2. The firing phase in the following period,
, is randomly selected by
SelectTimelag() as illustrated in
Figure 3.
Algorithm 1: Proposed Ext-Desync TDMA Procedure with Optimal Criterion of Firing Phase Change. |
|
OnReceiveFiringMessage() is called whenever receives a firing message from an one-hop neighbor denoted by with . Then, is increased by one, and and are updated using and by UpdatePhaseLists(). To update , it calls DetectCollision(), in which it is increased by one when is not included in .
In
OnFiringPhase(),
sends its firing message, initializes
and
to 0. Then, it calculates and allocates its slot in the following period using Equations (
7) and (
8).
OnSlotStart() is invoked at the slot start time set by
SetSlotTime( ). According to the decision on
by
DeterminePhaseChange(), which is explained in Algorithm 2, it enters the listen period to reconnect with other devices in the network if
is 1, as shown in
Figure 3 in
Section 3.1. On the other hand, it sets the next firing phase.
Algorithm 2: Determination of Firing Phase Change with Optimal Criterion. |
|
Algorithm 2 shows the procedures to determine whether to change the firing phase in the following period or not. It utilizes , , and obtained from OnSlotStart() in Algorithm 1. The purpose of Algorithm 2 is to derive the probability for changing the firing phase, . Accordingly, we can have the probability of as the result of Algorithm 2.
In
DeterminePhaseChange(), it computes
(
) sequentially using Equation (
13). From the
and Equation (
20),
is determined. Then, it calls
Neighbor Change- Prob() to update
using
.
In NeighborChangeProb(), calculates based on . When , will enter the listen mode in the following period by setting to . Thus, no further action for this case is needed in NeighborChangeProb(). The case where and means that the neighbors caused the collision will not change their firing phases. Then, is set to , where denotes the initialization parameter of , which are determined as the system operational parameters by the administrator. On the other hand, i.e., if = 0, is set to since no collision occurred. It is noted that s, for , are calculated at the next period in the same way.
Since the proposed method follows the same process of Ext-Desync, the complexity for running time of the proposed method is the same as that for Ext-Desync. Therefore, it becomes
according to [
10], where
and
are the average number of one-hop and two-hop neighbors, respectively.