3.1. Network Modem
We consider a large-scale multi-hop network designed for environmental monitoring. The network consists predominantly of sensor nodes and a limited number of sink nodes, as illustrated in
Figure 1. Each node is equipped with a half-duplex transducer, with sink nodes additionally featuring wireless radio frequency communication devices. We first cluster the sensor nodes. Then, the cluster members collect the environmental data and aggregate the data to the cluster head. It is assumed that all nodes possess their own location [
34] and data packets are generated at the beginning moment of the unit time.
In order to enhance the accuracy of environmental data, a considerable number of sensor nodes must be strategically deployed within a designated area. However, clustering these nodes based on their communication range may lead to clusters with an excessive nodes. Such a scenario can cause network congestion when the load within a cluster surpasses its information transmission capacity, as illustrated in
Figure 1. For instance, let us consider cluster 2, where node 1 serves as the cluster head with a maximum cluster members number of 5. However, the neighboring nodes of node 1, including nodes 2–8, amount to 7 nodes in total. If all of these nodes were to be incorporated into cluster 2, congestion could arise due to the potential inability to transmit certain data in a timely manner. To mitigate congestion, it becomes imperative to remove nodes 7 and 8 from cluster 2. Addressing this challenge, we propose LLCP that leverages both node load and location information to determine cluster members. By employing this approach, we aim to prevent congestion while optimizing network simplification.
Next, we give the definitions of the parameters in LLCP, as shown in
Table 1.
The workflow of the clustering protocol is as follows. First, nodes broadcast the neighbor query packet. Neighboring nodes that have not yet joined any clusters respond to this packet by sending a neighbor reply packet. Second, nodes utilize node load and location information from neighboring nodes to assign clustering priority to local cluster through node load and location-based cluster member number optimization mechanism and priority-based clustering mechanism. Next, redundant neighboring nodes are removed based on node degree and location-based cluster member selection mechanism. Finally, these steps are iteratively repeated until all nodes have been clustered.
3.2. Frame Structure
In this section, we further introduce LLCP by introducing the frame structure as illustrated in
Figure 2.
We define the following parameters in
Table 2 for easier understanding of the frame structure.
First, we introduce the concept of a time frame. In LLCP, a time frame primarily consists of two phases: the cluster formation phase and the data packet transmission phase. During the cluster formation phase, cluster formation is performed. The cluster head broadcasts the cluster formation results and channel access information. In the data packet transmission phase, sensor information is aggregated from cluster members to the cluster head. Each cluster member transmits the local data packet to the cluster head during this phase.
Next, we introduce the cluster formation packet. The cluster formation packet is composed of two parts: the cluster formation packet header and the cluster formation information. The cluster formation packet header includes the source node address, the destination node address, and the packet type. The source node address is the address of the node that sends the packet. The destination node address is the information of the receiving node of the packet. Since the cluster formation packet is a broadcast packet, the destination node address is a special address, such as 255. The packet type indicates the type of the packet, with the cluster formation packet type specifically identified as Type_Cluster_Formation. The cluster formation information includes address of all cluster members from cluster member 1 to cluster member and channel access information.
Finally, we introduce the data packet. The data packet consists of two parts: the data packet header and the sensor information. The data packet header is similar to cluster formation packet header and includes the source node address, the destination node address, and the packet type. The data packet type specifically identified as Type_Data. The sensor information is the data collected by the sensors configured on the cluster members.
The intra-cluster information transmission capacity is primarily limited by the idle waiting time of the cluster head. There are two main scenarios that lead to idle waiting time at the cluster head. The first scenario occurs when the arrival times of data packets from different cluster members to the cluster head are not continuous. If the distance between adjacent cluster members and the cluster head is significantly different or the load is relatively small, resulting in the next cluster member’s data packet not yet having arrived at the cluster head after the previous cluster member’s data packet has finished reception, there will be idle waiting time. The second scenario arises when there are few cluster members or when the cluster members have a low load, causing idle waiting time within a time frame even after the data packets of all nodes have been finished reception. In LLCP, we address these issues by selecting the optimal cluster members and the optimal number of cluster members. Ultimately, the purpose of maximizing the reduction of network complexity without congestion is achieved.
3.3. Node Load and Location-Based Cluster Member Number Optimization Mechanism
In this section, we illustrate how to determine the optimal number of cluster members based on node load and location. One of the main goals of clustering is to simplify the network. Network complexity can be reduced by minimizing the number of clusters in the network while avoiding congestion. However, if clustering is performed solely based on communication range without considering node load and location, it may result in numerous nodes being assigned to the same cluster. When the load within a cluster surpasses its information transmission capacity upper limit, congestion can occur, leading to a significant increase in end-to-end delay or even network collapse.
To address this issue, we propose node load and location-based cluster member number optimization mechanism. Initially, we compute the upper limit of intra-cluster information transmission capacity according to the channel access protocol being utilized. Then, we determine the maximum number of cluster members based on this calculated upper limit.
Cluster heads play a crucial role in gathering data within their designated clusters in UASNs. Consequently, upon completion of clustering, all data collected by cluster members will be directed towards the cluster head. Hence, the upper limit of intra-cluster information transmission capacity is primarily determined by the channel utilization of the cluster head. Assuming the network operates in single-channel mode, the expression for the upper limit of intra-cluster information transmission capacity
can be delineated as follows:
where
represents the max channel utilization of the cluster head and
R symbolizes the communication rate of the physical layer, indicating the amount of information the cluster head can receive per unit time.
The channel utilization of the cluster head is primarily affected by the idle waiting time. When the cluster head operates continuously within a single time frame, the channel utilization reaches its maximum. The max channel utilization of the cluster head
can be formulated as:
where
represents the duration of one time frame for the cluster head and
denotes the minimum idle time of the cluster head within one time frame, which is influenced by factors such as propagation delay, cluster member number, and channel access protocol.
Our protocol is designed for high-load scenarios where the TDMA protocol, known for its effective contention avoidance, performs admirably. Hence, we assume a TDMA-based channel access protocol within the cluster, omitting ACK for message confirmation. However, for cluster members
i and
, significant discrepancies in propagation delay to the cluster head might disrupt the cluster head’s continuous information reception, resulting in idle waiting time. Consequently, the idle waiting time of the cluster head caused by cluster member
i in the Mth time frame
can be expressed as:
where
denotes the time slot scheduling moment of cluster member
i in time frame
M,
denotes the time slot scheduling moment of cluster member
in time frame
M,
represents the time slot length of cluster member
i in time frame
M,
signifies the propagation delay from cluster member
i to the cluster head, and
indicates the propagation delay from cluster member
to the cluster head. Obviously, the occurrence of idle waiting time primarily depends on the difference in propagation delay between adjacent transmitting cluster member and the cluster head, as well as the length of time slot, which is mainly determined by the node load.
To achieve collision avoidance while minimizing idle waiting time, the scheduling moments of adjacent cluster members’ time slots can be expressed as:
where
is the guard interval.
When the propagation delay difference is sufficiently small or the node load is sufficiently high, i.e., , this means that cluster member needs to wait for a certain period after cluster member i starts transmitting. Otherwise, there is a risk of collisions, as the cluster head might not have finished receiving the data packet from cluster member i when the data packet from cluster member arrives. Conversely, when the propagation delay difference is significant or the node load is small enough, i.e., , indicating that cluster member can start transmitting simultaneously with cluster member i without causing collisions at the cluster head.
Furthermore, if there is a gap between the arrival time of the first data packet from the next time frame at the cluster head and the arrival time of the last cluster member’s data packet from the previous time frame, it can also lead to idle time for the cluster head. This idle time reduces the channel utilization of the cluster head. This period of time
can be expressed as:
where
denotes the number of cluster members and
usually corresponds to the interval between data packet generations of cluster members. Obviously, increasing the number of cluster members can effectively reduce this idle waiting time.
According to (
3) and (
5), the channel utilization of the cluster head in the Mth time frame can be represented as:
Obviously, channel utilization is mainly influenced by idle waiting time in two scenarios. In cases where the cluster head experiences idle time due to distant adjacent cluster members, starting information transmission from the nearest to the farthest based on their distance to the cluster head, and minimizing the distance between cluster members and the cluster head, can effectively reduce . As for , selecting an optimal number of cluster members can effectively reduce this idle waiting time.
Next, we analyze the maximum number of cluster members. The data packet generated by the cluster members within the current time frame needs to be transmitted within the current time frame, otherwise part of the data packets cannot be transmitted in time leading to network congestion. In order to avoid congestion, the first cluster member should transmit the data packet at the beginning moment of the time frame. At the same time, the moment when the last cluster member’s data packet completes reception at the cluster head is smaller than the arrival moment of the first cluster member’s data packet in the next time frame. Therefore, the congestion avoidance constraints are as follows:
where
is the time slot length of the cluster head in the time frame M, which is used to transmit the data packets aggregated to the cluster head.
As the number of cluster members increases, the duration for the cluster head to receive data packets also lengthens. This implies that the time to receive data packet from the last cluster member in the current time frame approaches the time when the data packet from the first cluster member for the next time frame arrives. Consequently, the idle waiting time for the cluster head diminishes. Under the condition of no congestion, the constraint on the maximum number of cluster members can be stated as follows:
Therefore, the maximum that satisfies the above constraints is considered the maximum number of cluster members .
When the cluster head continuously receives data packets from cluster members, the upper limit of intra-cluster information transmission capacity is achieved. Assuming uniform load distribution among all nodes and sufficiently close distances between adjacent transmitting nodes to prevent idle waiting time, the maximum number of cluster members in (
8) can be simplified as:
where
represents the length of time slot.
In other words, when the number of cluster members increases to the point where the cluster head almost continuously receives data packets, the intra-cluster information transmission capacity reaches its peak, and the number of cluster members also reaches its maximum. That is, minimum network complexity without congestion can be achieved when the number of cluster members is .
3.4. Node Degree and Location-Based Cluster Member Selection Mechanism
In this section, we elaborate on the node degree and location-based cluster member selection mechanism, as illustrated in
Figure 3. The selection of cluster members aims to achieve three objectives: maximizing the number of cluster members without congestion, enhancing cluster cohesion, and minimizing the total cluster number.
To begin with, in order to maximize the number of cluster members without congestion, we remove a portion of the nodes from the cluster when the node number exceeds
. This prevents congestion caused by an excessively large number of cluster members, which could lead to some data packets being unable to be transmitted within the current time frame. The node number to be removed, denoted as
, can be calculated as follows:
where
stands for the total node number within the cluster, which corresponds to the available neighboring nodes of cluster head.
Next, we outline the approach to minimize the cluster number. To achieve this, it is crucial to ensure that the node number in each cluster closely matches the maximum number of cluster members. Therefore, we define the node degree as follows:
in other words, the node degree equals the number of neighboring node.
During the process of removing redundant nodes, we initially select nodes with a degree less than
. This ensures that nodes with a degree less than
are preferably not included in other clusters, thereby reducing the number of cluster members. Consequently, this approach aims to make the cluster member number in all clusters as close as possible to
, thereby maximizing the reduction in the total cluster number. As shown in
Figure 3, when node 1 needs to remove redundant nodes, node 2 is the neighbor node with the lowest node degree. The node 2 is preferred to be removed because it satisfies the (
7) when it is clustered with its neighboring nodes, but it does not satisfy the (
8). In this manner, the probability of nodes 6/7/8 and node 2 clustering can be increased. Thus, the cluster member number in the cluster is increased when node 2 is clustered as a cluster head.
Next, we demonstrate how to enhance cluster cohesion and minimize the total cluster number while removing excessive nodes. According to (
3), it is evident that when the distance difference between adjacent transmitting nodes and the cluster head is small, or when the load is high, idle waiting time can be effectively reduced. Therefore, we initially sort the cluster member based on their distance from the cluster head, arranging them from nearest to farthest, and renumber them accordingly.
The cluster cohesion, denoted as
, can be represented as:
where
represents the distance between cluster member
i and the cluster head.
As shown in
Figure 3, when node 1 needs to remove redundant nodes. Currently, all neighboring nodes that not satisfy the (
7) when clustering have been removed. Node 4 is the farthest node from node 1. When node 4 is removed, as per (
12), removing cluster member that are farther from the cluster head enhances cluster cohesion. Consequently, this allows for an increase in the maximum number of cluster members that the cluster can accommodate by reducing the idle waiting time for the cluster head.
To provide a deeper insight into the cluster member selection mechanism, we propose a cluster member selection algorithm based on node degree and location, as shown in Algorithm 1.
Algorithm 1 Cluster Member Selection Algorithm Based on Node Degree and Location |
- 1:
Initialization - 2:
- 3:
while not satisfying ( 8) do - 4:
for do - 5:
Calculate the distance between and the cluster head - 6:
if then - 7:
- 8:
- 9:
end if - 10:
- 11:
if then - 12:
- 13:
- 14:
end if - 15:
end for - 16:
if The neighbor of satisfying ( 7) then - 17:
Remove from - 18:
else if The neighbor of not satisfying ( 7) then - 19:
Remove from - 20:
end if - 21:
end while - 22:
return
|
The algorithm takes several inputs: the neighbor node set , the neighbor node set of neighbor node i, the time slot length , and the locations of every node. The output is the adjusted neighbor node set . Line 1 initializes the minimum neighbor node number to 100 and the maximum distance to 0, providing starting values for subsequent comparisons. In line 2, the neighbor node set is copied to a temporary variable to avoid altering the original set. Line 3 iterates to check whether the neighbor node set satisfies the constraint of the maximum number of cluster members; if not, excess nodes are removed. Lines 4–15 loop through all nodes in to find the node farthest from the cluster head and the node with the minimum node degree . Lines 5–9 calculate the distance from each node to the cluster head and determine if the node is the farthest node. If so, it updates and for subsequent removal. Lines 10–14 calculate the node degree of each node and identify the node with the minimum node degree. If found, it updates and for subsequent removal. In line 16, if the neighbor node set of node meet the maximum cluster member constraint, i.e., the minimum number of neighbor nodes is less than , it indicates a node has a node degree less than , so the node with the minimum node degree is removed to avoid clusters with too few cluster members. In line 18, if the neighbor node set of node does not satisfy the constraint, i.e., the minimum number of neighbor nodes is greater than , it means all node degrees are greater than , so the node farthest from the cluster head is removed to improve cluster cohesion. After the loop in line 3, the algorithm produces the set containing the maximum number of cluster members , representing the optimal cluster member set.
3.5. Priority-Based Clustering Mechanism
In this section, we delve into how nodes within the network cluster efficiently to optimize its structure. Our aim is to ensure that the cluster member number in each cluster closely matches the predefined maximum cluster member number . The primary goal of this priority-based clustering mechanism is to simplify the network complexity, thus enhancing its operational efficiency and stability.
The priority-based clustering mechanism primarily involves prioritizing the clustering of different nodes based on predefined constraints, mainly outlined in (
7) and (
8).
Firstly, for node
i, if forming a cluster with node
i and its neighboring nodes satisfies the constraint in (
8), indicating that the cluster member number has reached the maximum cluster member number
of node
i, then this cluster is assigned the highest priority for clustering and node
i is elected as cluster head. This cluster accommodates as many cluster members as possible without causing congestion. If some neighboring nodes are prioritized by other clusters, it may result in the cluster member number of this cluster being less than its
. To prevent nodes in this cluster from being prioritized by other clusters, the cluster is given the highest clustering priority to ensure that the cluster member number equals
, thereby maximizing the reduction in network complexity.
Next, if forming a cluster with node
i and its neighboring nodes does not satisfy the constraint in (
7), indicating that the cluster member number exceeds the
, then this cluster is assigned a lower priority for clustering and node
i is elected as cluster head. In this scenario, it is necessary to remove surplus neighboring nodes through the cluster member selection mechanism to ensure that the cluster member number remains equal to
after clustering. During the process of removing surplus nodes, priority is given to removing nodes with degrees less than
to minimize the reduction in the cluster member number below
. Additionally, by prioritizing the removal of nodes distant from the cluster head, both the local cluster cohesion is enhanced and its impact on other clusters is reduced. Moreover, this approach avoids situations where removed nodes need to form separate clusters due to the absence of neighboring nodes, thereby minimizing the average cluster member number within clusters.
Finally, for node
i, if forming a cluster with node
i and its neighboring nodes satisfies the constraint in (
7) but not the constraint in (
8), indicating that the cluster member number is less than the
, then this cluster is assigned the lowest priority for clustering and node
i is elected as cluster head. In this case, there is no need to remove nodes. Assigning the lowest clustering priority effectively reduces the impact on other clusters and avoids situations where some nodes are occupied in other clusters, leading to fewer cluster members in those clusters than
.
To provide a deeper insight into the cluster mechanism, we propose a cluster algorithm, as shown in Algorithm 2.
The algorithm takes as input the set of neighboring nodes
. In lines 1–10, clusters with the highest clustering priority are processed first. In line 1, all nodes are iterated through to determine the priority of the cluster to which each node belongs, where
is the total node number. In line 2, based on the node type
, it is determined whether clustering is necessary. If the node type is Type_Sensor, it indicates that the cluster has not joined any other clusters yet, and thus, clustering is performed. If the node type is Type_Head or Type_Member, it means that the node has already joined another cluster, and clustering is not required. In line 3, a neighbor node query packet is sent to query the neighbor nodes of the node
i. Active querying helps address hidden node issues and clustering failure issues. In line 4, the clustering priority for the
ith node’s neighbor node set is determined based on (
8). In line 5, the clustering priority
is assigned. In line 6, cluster member selection is performed based on Algorithm 1. In line 7, cluster member and cluster head types are modified by broadcasting cluster formation packet. The process is repeated for clusters with lower priorities (lines 11–20) and clusters with the lowest priority (lines 21–30).
Algorithm 2 Cluster Algorithm |
- 1:
for
do - 2:
if ==Type_Sensor then - 3:
Query the neighboring nodes of node i - 4:
if satisfying ( 8) then - 5:
- 6:
Perform clustering according to Algorithm 1 - 7:
Modify the node type to Type_Head or Type_Member - 8:
end if - 9:
end if - 10:
end for - 11:
for
do - 12:
if ==Type_Sensor then - 13:
Query the neighboring nodes of node i - 14:
if not satisfying ( 7) then - 15:
- 16:
Perform clustering according to Algorithm 1 - 17:
Modify the node type to Type_Head or Type_Member - 18:
end if - 19:
end if - 20:
end for - 21:
for
do - 22:
if ==Type_Sensor then - 23:
Query the neighboring nodes of node i - 24:
if satisfying ( 7) but not satisfying ( 8) then - 25:
- 26:
Perform clustering according to Algorithm 1 - 27:
Modify the node type to Type_Head or Type_Member - 28:
end if - 29:
end if - 30:
end for
|