Clustering objectives in wireless sensor networks: A survey and research direction analysis

Wireless Sensor Networks (WSNs) typically include thousands of resource-constrained sensors to monitor their surroundings, collect data, and transfer it to remote servers for further processing. Although WSNs are considered highly ﬂexible ad-hoc networks, network management has been a fundamental challenge in these types of networks given the deployment size and the associated quality concerns such as resource management, scalability, and reliability. Topology management is considered a viable technique to address these concerns. Clustering is the most well-known topology management method in WSNs, grouping nodes to manage them and/or executing various tasks in a distributed manner, such as resource management. Although clustering techniques are mainly known to improve energy consumption, there are various quality-driven objectives that can be realized through clustering. In this paper, we review comprehensively existing WSN clustering techniques, their objectives and the network properties supported by those techniques. After reﬁning more than 500 clustering techniques, we extract about 215 of them as the most important ones, which we further review, catergorize and classify based on clustering objectives and also the network properties such as mobility and heterogeneity. In addition, statistics are provided based on the chosen metrics, providing highly useful insights into the design of clustering techniques in WSNs.


Introduction
Wireless Sensor Networks (WSNs) are a type of ad-hoc network technology which emerged more than 20 years ago [1] for monitoring purposes in military applications [2] . WSNs usually include a large number of sensor nodes (in short called nodes) which are fundamentally resource-constrained, but can connect to other nodes of the network for transmitting sensed data. The main task of each node is monitoring the environment using the on-board sensors, besides its possible capabilities to act as a relay or data fusion node. Each node can be used as a router to forward data from neighbors to the sink or Base Station (BS). BS can process data locally or act as the gateway of the network to transfer data to remote servers.
Thanks to the dynamic infrastructure and efficient transmission of data in WSNs, their application areas are quite diverse [3] . In the past two decades, various applications have been proposed for WSNs, such as environment monitoring [4] , healthcare [5] , smart homes [6] , smart factories [7] , and disaster management [8] . Although WSNs are considered highly dynamic ad-hoc networks, network topology management has been a fundamental challenge in these types of networks [9] , in particular resource management, scalability, reliability, and efficiency.
Topology management is regarded as a viable technique to ensure stable, reliable, trustworthy and efficient network infrastructures in adhoc networks like WSNs [10,11] . Clustering is one of the most popular techniques for WSN topology management. A clustering technique organizes nodes into a set of groups called clusters based on a set of predefined criteria such as supporting Quality of Service (QoS), optimizing resource consumption, network load balancing, etc. [12] . Each cluster has one or more Cluster Heads (CHs) which gather data from other nodes in the cluster called members and send the (fused) data to BS directly, or indirectly using other nodes called middlemen nodes. Using clustering techniques, resource-constrained nodes do not need to send their data to gateways (sink) directly which can cause energy depletion, resource consumption inefficiency and interference.
WSN clustering techniques have been reported in several research papers. There exist a number of surveys on WSN clustering, such as [13][14][15][16] . However, most of them cover only main clustering techniques such as LEACH [17] , HEED [18] and FLOC [19] , as fundamental methods proposed in different forms and extensions. Some survey papers consider only one metric in designing clustering techniques or network infrastructures like unequal clusters [16] . Moreover, a number of other survey works have studied techniques derived from the main techniques.  [20] the authors indicate that there are more than 60 extended versions of the LEACH protocol in the literature. Besides, in some survey papers like [21] , clustering has been studied from the viewpoint of reducing energy consumption, while it is not the sole reason for clustering. To conclude, most clustering survey papers study and compare clustering techniques and their efficiency, while they fail to focus on comparing objectives of those techniques. Moreover, to the best of our knowledge, no survey paper studies existing clustering techniques with respect to the WSN network properties that they support, such as heterogeneity and mobility.
This motivated us to provide a comprehensive survey on objectives of clustering in WSNs. In this paper, WSN-based clustering techniques are reviewed based on the objectives achieved by clustering such as QoS, fault tolerance, load balancing, etc. In addition, we evaluate those techniques based on their compatibility with different network characteristics, e.g., heterogeneity and mobility. Finally, we analyse the research direction on clustering techniques and provide a statistical model to motivate scientists to utilize clustering in addressing network management challenges. Moreover, this survey allows finding and evaluating clustering techniques that support a given set of objectives.
The methodology we adopted for conducting this survey consists of the following steps. First, we extracted the list of main WSN clustering techniques from the relevant papers in reputable journals, conferences and workshops, e.g., ICCCN, WCNC, GLOBCOMM, ICPS, CNCS, SECON, IPDPS, ICDCS, INFOCOM, ITPDS, IEEE IoTJ, ITWC, ITN, ITVT, TOSN, ATSN and IEEE TNSM, to name the most important ones. Based on the extracted relevant papers, we then checked their references and related work to find other papers that were concealed. Having the main clustering techniques compiled, we finally searched for all other research works that either cited the main techniques like LEACH [17] or proposed their own clustering solution. For that, we had to read and refine about 500 papers. Finally, over 215 papers were extracted as the most relevant clustering techniques that can be used in WSNs to achieve various objectives.
The main contributions of this study include: • Providing a comprehensive survey on clustering techniques in WSNs focusing on clustering objectives and network properties • Reviewing the most common solutions used by clustering techniques to achieve the identified objectives. • Providing a statistical analysis of objectives of clustering techniques and network properties supported by the literature to analyze the direction of the research in this field.
This paper is organized as follows. Section 2 describes the basic concepts of clustering and clustering techniques. Section 3 presents a comprehensive view of clustering techniques in WSNs with respect to the network properties and the objectives of clustering, in addition to reviewing statistically the available clustering techniques in Section 4 . Finally, in Section 5 , we conclude this paper with a summary of this survey work.

Clustering: Basic concepts and taxonomy
Topology management is one of the main challenges in designing computer networks, especially in ad-hoc networks as the number of nodes is considerably high and the network infrastructure is not reliable [22] . In topology management techniques in ad-hoc networks, determining possible neighbors to establish connections and recognizing the best neighbors for hop-by-hop data transmission are crucial to the improvement of scalability, resource consumption, reliability, etc. Clustering is a type of topology management techniques which can group nodes to improve the efficiency of the network by managing resources and rotating responsibilities among nodes to provide fairness. Each cluster is composed of a number of members and has one or more CHs to manage the members, as well as to fuse, process, transfer and manage members' data. Finally, each network has one or more BS(s) which can be used as gateways or local data processing nodes. BS(s) receives data from CHs directly or indirectly through nodes between the CH and BS, called middlemen nodes. There are some phases to establish clusters and provide connection between members and BS(s) which are explained below.

Clustering phases
Generally, clustering includes two main phases: grouping nodes and allocating responsibilities. Grouping is generally based on Voronoi diagrams , but also can be non-Voronoi like chain or spectrum . In the Voronoi structure, a 2D or 3D network environment is divided into several (unequal) sections called clusters. Each cluster possesses some nodes and interacts with other clusters through CHs or gateways. In chain structures, nodes in a cluster connect to each other to reach CHs. In other words, each node has only two connections with neighbors in the chain to reach CHs. In the spectrum structure, angles of nodes to BS are as important as the distance to BS. Node angles are generally captured by the Scanning Sweep method [23] . Clusters are established based on different angles and distances. Fig. 1 shows different structures of clustering and their comparisons. In both spectrum and chain structures, layering can be performed which realizes multi-hop data transmission and improves the efficiency of the network, especially in terms of resource consumption. Indirect connection between the source and destination reduces energy consumption by breaking a long journey from a node to CH to shorter journeys, called intra-cluster routing. However, using this routing method can cause QoS issues such as increasing delay. Similar to the connection between CHs and BS(s), nodes in clusters can connect to their CHs directly or indirectly through other members of the cluster.
Cluster Establishment Methods: There are two methods to establish clusters in a network: • Determining clusters by grouping nodes and selecting one or more nodes as CH(s) of the cluster: Nodes grouping can be based on different parameters, mainly physical proximity. In addition, balanced clusters in terms of cluster size, number of nodes or network load can be used as other parameters to group nodes and establish clusters. Moreover, high-level parameters can be used for grouping such as similarity of services in applications sharing the same network, data gathering and data fusion algorithms, and supporting different QoS parameters. • Determining CHs and inviting other nodes to join a neighbor CH: This method is based on parameters such as distance to CH and/or distance of the CH to BS, similarity of the applications running on the members with respect to data fusion, or hosting requested service(s) by the CH.
General CH Selection Methods: To select CHs, a number of general methods are available as listed below: • In a few clustering techniques, resource-rich nodes are predetermined as CHs [24] . The problem with this method is that most WSNs are homogeneous and resource-constrained. Therefore, the method is not operational in several cases. In addition, even if a resource-rich node in a heterogeneous network can be found and selected as a CH, being CH for a long time will drain the node power quickly and cause node death. Moreover, if CHs are fixed, mobile nodes and dynamicity of the network can unbalance the clusters in terms of the number of members or volume of transferred data which causes unbalanced network load and resource consumption. • In some clustering techniques, randomness is the solution to circulate the CH responsibility among nodes, e.g., LEACH as the most wellknown clustering technique [17] . Although this technique is beneficial in homogeneous networks, any dynamicity or unbalancing in WSNs can create intensive run-time problems like chronic energy consumption in some CHs or unbalanced resource consumption. • The most common solution for CH selection is called conscious CH selection which is based on nodes and network circumstances. Several works in the literature propose clustering methods based on this solution [25][26][27] . In these techniques, CHs are selected based on different parameters such as available resources, location, number of neighbors, etc. CH selection methods can improve the efficiency of the network by selecting nodes that are more appropriate to be CHs [260] . Additionally, some methods are designed to react against any unforeseeable circumstances by re-selecting or replacing CHs with more appropriate nodes dynamically.
To select the best CHs, clustering methods can use centralized or distributed CH selection methods. In centralized techniques, parameters which are used to select CHs, are gathered in a central node (generally BS) and compared, analyzed and processed for selecting CHs. Although centralized methods can have universal results due to comparing all nodes, they often have high overhead for large and/or highly dynamic networks, especially when CHs are re-selected on a regular basis. In such networks, several management packets should be exchanged which can consume plenty of resources and reduce the efficiency of the network. On the other hand, distributed methods have less overhead, but due to their limited network information (i.e., only neighbor nodes), selected CHs can not often fulfill all network requirements.
Re-clustering Methods: Not every node can be used as CH for a long time because of resource depletion, thereby the duty of being CH should be rotated among appropriate nodes during the network lifetime. Re-selecting CHs can rotate responsibilities among nodes, normally happening in the re-clustering (setup) phase. There are two methods to trigger re-selection: i) Time-based method: The network will be re-clustered at a certain time to balance resource consumption among nodes. This method is generally used in homogeneous networks which can have predetermined network load, and ii) Event-based method: An event triggers part of or the whole network to re-select CHs and possibly re-cluster, exceeding resource usage thresholds like energy, CPU, bandwidth consumption, or high resource consumption in a deterministic time. Combining time-based and event-based methods can be used for re-clustering as well, depending on which re-clustering condition holds first, the corresponding method will be triggered.
Re-clustering can be local or global. In the global case, the whole network should be re-clustered which has high overhead but in the local case, part of the network or just a cluster will be re-clustered.
Clustering-based Data Forwarding: The data generated by nodes can be transferred in its raw format or as a fused value. Different techniques are used to fuse data, mostly on CHs. The CH can transmit individual data items to BS or aggregate them and send the aggregated data values to BS. There are two methods to transmit (fused) packets from CHs to BS(s). CHs can send data directly to BS or use middlemen nodes (which are often other CHs) to transfer data to BS called inter-cluster routing . On the contrary, in the direct communication each CH is responsible to transmit data directly to BS(s) which can cause energy depletion based on Eq. 1 [28] .

= ( 2 )
(1) Similar to inter-cluster routing, intra-cluster techniques are proposed to balance the load and energy consumption within clusters. Although direct communication in both routing techniques can reduce delay and improve QoS, it increases energy consumption in CHs and causes energy depletion simultaneously. Different trade-off techniques are proposed for selecting direct or indirect data transmission in clustering techniques like the method proposed in [28] . Since common grouping techniques are based on nodes that are near each other physically and provide data for the same application, it is more efficent to perform data aggregation in CHs and reduce the amount of data to be transmitted to BS. This can significantly improve energy saving on sensor nodes. Moreover, having clusters in WSNs, it is possible to make some decisions based on information locally available in each cluster. The decisions can be related to how to deal with different situations in a part of the network (i.e., a cluster) such as faults, mobile nodes, and QoS violations.

Clustering in WSNs
WSNs appear in different forms and types, such as Terrestrial WSNs [29] , Underground WSNs [30] , Underwater WSNs [31] , Multimedia WSNs [32] , Mobile WSNs, and Wireless Sensor and Actuator Networks (WSANs) [33] . WSNs are often considered as infrastructure-less networks [34] such that the nodes should cooperate to establish a network, and gather and transfer data. Due to the resource scarceness of sensor nodes, resource management is a big challenge especially in WSNs with a massive number of nodes out of which many nodes may act as data forwarding nodes. Since wireless data transmission is the dominant energy consumer in sensor platforms, we need to carefully manage resource consumption in WSNs and in particular energy usage.
To support both resource consumption optimization and data fusion, different methods have been proposed. The first straightforward method is to address resource efficiency in algorithms. Given that energy consumption in wireless networks is a function of distance, routing can reduce energy consumption by dividing a long route into a number of smaller routes. However, at the same time routing methods need to take into account requirements such as data fusion, fault tolerance, and load balancing. Node clustering is recognized as a popular technique to improve the efficiency of routing methods and solve the aforementioned issues. During the years 2000 to 2019, many clustering techniques have been proposed. Primary WSN clustering techniques that were proposed more than a decade ago, include LEACH [17] and HEED [18] . In these clustering techniques, the main goal is to reduce energy consumption and improve some aspects of the network such as load balancing.
In this section, we study all significant clustering methods based on a review of more than 215 research papers and articles. Unlike other survey works, we do not focus on the design details of clustering methods like algorithm complexity, methodology, etc. Rather, we review the most significant clustering techniques in WSNs based on their objectives and the support of various network properties such as node heterogeneity, node mobility, etc. Table 1 shows a comprehensive overview of the most important clustering techniques in WSNs derived from the above mentioned review.
The table lists the clustering techniques, objectives and network properties supported by them. The comprehensive list of techniques in Table I allows filtering them based on the desired properties and objectivesfor clustering. It should be noted that there are some minor clustering objectives that are not listed among the set of common objectives in Table 1 since they are specific to a technique. Such types of objectives are added in front of each clustering technique in the table. To the best of our knowledge, this table is, to date the most comprehensive list of existing clustering techniques of WSNs, their properties and objectives.
In addition, in Table 3 , the number of papers per objective and property of clustering is listed which are extracted from Table 1 . The studied design parameters include: Node Heterogeneity: Heterogeneity can appear in different resources like energy, computation power, network interfaces, etc. Resource-rich nodes can be leveraged for data transmission to assist other resource poor nodes, thereby resource-constrained nodes can stay alive for a longer period of time than they can achieve by themselves.. Using resource-constrained nodes in collaborative tasks like data transmission can cause different problems such as energy depletion, QoS degradation, node failure, etc. Heterogeneity can have a high impact on network efficiency by sharing available resources of different nodes to execute a task. On the other hand, heterogeneous networks face many challenges in managing and allocating resources efficiently. In clustering techniques, node heterogeneity is an advantage when selecting CHs, because nodes that have more resources are more appropriate to be CH. However, selecting the best nodes as CHs may lead to other efficiency issues that are discussed later in this section.

Role of CH:
This indicates what the primary role of CH in a cluster is, as well as in the network. Generally, CHs in WSNs are not in charge of performing complicated tasks, thus the parameters to select CHs are often limited to energy and data forwarding resources. However, some clustering techniques utilize CHs for data fusion, in which the criterion for selectinga CH is the computation power of nodes.  Inter-cluster Routing: Using inter-cluster routing enables clustering techniques to support hierarchical data fusion, caching, compression and improving load balancing, energy consumption, etc. An objective of inter-cluster routing is also providing a connected network infrastructure such that the members of various clusters can connect each other without using the BS. Inter-cluster routing allows CHs to send data indirectly to the BS through other CHs , rather than direct data transmission to BS. Inter-cluster routing methods may come with their built-in routing method or they can use typical methods like Ad-hoc On-demand Distance Vector (AODV). Using inter-cluster routing enables the network to connect clusters resulting in connecting members of clusters as an adhoc network. This improves efficiency by resource sharing and running distributed tasks. We do not consider intra-cluster routing in our evaluation, because it is mainly used to reduce energy consumption compared to inter-cluster routing that provides connection among clusters resulting in connecting all nodes of a network. In case of routing, our focus lies on clustering techniques that can provide more connections among nodes, but the main objective of intra-cluster routing is improving resource consumption.  [245] . Mobility can effect the performance of the network in terms of, e.g., connectivity and QoS, and is related to supporting mobile nodes in clustering. Clustering techniques that can handle mobility are similar to highly dynamic networks. In our survey, a clustering technique is classified as supporting mobility if it is applied to networks where most of the nodes are mobile. If the only mobile node is (are) BS(s) in a method, it is not considered as a mobility support method in our survey because mobile BS, in such scenarios, is to ease creating clusters and gathering cluster data. In other words, it is an extra feature of clustering techniques to be more efficient, but in reality, there are not many real-world applications where BS is the only mobile node.
Clustering Objectives: The most critical parameter is the design objectives of clustering techniques. Objectives show how the method can Table 2 Statistics of characteristics and Objectives of surveyed clustering techniques.
improve the efficiency of the network. A clustering technique can be designed to support different objectives simultaneously or focus on a sole objective. Objective groups of clustering techniques are listed below. In addition, common solutions proposed by clustering techniques to achieve objectives and address networking challenges are described for each objective together with a few examples from Table 1 . It is noteworthy that the list of objectives and solutions include the most relevant ones, but also in cases that the objective of a clustering technique is not in the most-common objectives list, it is added in front of the clustering technique .

Energy Consumption (E):
As the most important objective in WSNs, clustering techniques are aimed to balance energy consumption and improve the network lifetime. The most energy consuming task in WSNs is transferring data from nodes to BS [28] . As an ad-hoc network, WSN nodes may use routes to transfer (aggregated) data to BS which can cause unbalanced energy consumption, because middlemen nodes consume more energy than others by forwarding and/or aggregating packets. Direct communication causes high energy consumption due to Eq. 1 which makes indirect communication more attractive despite the complexity of determining to optimize routes. To optimize energy consumption using clustering techniques, some techniques are proposed which are listed below: • CH Duty Rotation : In WSNs, CHs consume a lot of energy compared to cluster members which cause re-clustering to change CHs (middlemen) and balance energy consumption [246] . As a multi-objective selection technique, CH selection is a complicated task which can be carried out using different methods like Fuzzy logic [247][248][249] , AI methods [250] , and heuristic methods [251][252][253] . CHs as central nodes to gather and transfer data in WSNs should support the different network objectives like QoS, reliability, data aggregation, etc., in addition to balancing energy consumption. Conventional methods to rotate CH duty have a threshold for energy consumption or remaining energy of nodes which can trigger network re-clustering. Additionally, other thresholds like QoS thresholds can be used in WSNs clustering techniques to achieve particular objectives. In homogeneous networks, selecting CHs is a more complicated task because all nodes have the same resources. Resources like energy and computation power will be consumed and occupied, respectively, which can cause triggering of re-clustering [26] .
Being heterogeneous in different aspects makes CH selection a multi-objective problem . Besides, dynamicity in a network can change the network load which can trigger the network to recluster and select new CHs or change the routes, at least. As an example, EECS [63] is a method in which the main parameter for selecting CHs is the residual energy. They consider that the clusters closer to the BS should be smaller because they need to transfer data from upper layers in addition to aggregating and transferring data of their members. However, energy consumption in a cluster which is far from BS is still a challenge. In COCA [139] , the authors propose a clustering architecture to improve energy efficiency. They establish the network topology based on units. Each unit contains some clusters. Limiting the number of units can guarantee to balance energy consumption by having balanced clusters. They also use the residual energy of nodes as a parameter to select CHs which balances the energy consumption among nodes. • Hierarchical Clustering : hierarchical or layered clustering is a method that divides the network into different layers. Each layer can interact with neighboring layers, which saves energy. In layered and hierarchical clustering techniques middlemen in the upper layers (closer to the BS) consume more energy as they should transfer massive volume of data from lower layers to upper layers to reach BS. Different techniques are used to balance the energy consumption of middlemen in the lower layers and the upper layers. One popular method is establishing unbalanced clusters. Clusters in the lower layers can have more members as compared to the upper layers. Since receiving data consumes a fixed amount of energy, CHs of the lower layers can have more members but do not need to forward (aggregate) many packets from other layers; therefore unbalanced layers/clusters would be an appropriate option to balance energy consumption. In EA-CRP [201] , the authors proposed a unit-based method in which each layer contains units to minimize long-distance communications using layers of equal size clusters. Layers that are closer to BS have less width but also the number of units per layer increases. Each unit has two CHs to aggregate data and establishes interlayer communications, respectively. • Balanced Clusters : Although unbalanced clustering is a solution in hierarchical clustering, it would be a challenge in WSNs in which location distribution of nodes is not even. Networks that have an unbalanced location distribution of nodes need to balance the clusters to face with their intrinsic unbalancing. By having unbalanced clusters in such a network, some CHs consume more energy due to gathering data of several member nodes. To have fair energy consumption, clusters should be balanced based on the number of nodes and layers, not the size. In TL-LEACH [50] , level-based CHs are introduced in which the first level CH connects to the 2 nd level which is connected to all members. 1 st level aggregates data and 2 nd level aggregates data of 1 st level which can reduce the number of packets received by BS and improve energy consumption. 2. Load Balancing (L): Load balancing is the second most important objective of clustering in WSNs according to Table 3 . In general, clustering techniques use a type of divide and conquer method to transfer data from nodes to BS. A data transfer load can result in unbalanced energy consumption, network congestion, data loss, and inefficiency in supporting real-time and data-intensive applications. In clustering techniques, load balancing can also solve the "Hot spot problem " which is a common problem in WSNs [231,254] . The Hot spot problem is a situation in which some nodes in a network transfer higher volume of data than others. Load balancing by distributing packet streams, generated in lower layers among forwarders to transfer to upper layers and BS, is a challenging problem.. Therefore, in indirect communication, each route from lower layers to BS should transfer a balanced amount of data to support load balancing based on shared resources through the routes. A solution in heterogeneous networks is to let nodes with more resources transfer more data. However, there are still some challenges to support load balancing, especially in hierarchical indirect communication between CHs and BS, e.g., determining the best routes based on different types of shared resources to support a specific objective. Some techniques to balance the load of the network in WSNs by clustering techniques, have been proposed: • More Layers, More CHs : having more CHs allows distributing network load among more middlemen. This can solve the Hot Spot problem. Moreover, having more layers in hierarchical clustering can extend the number of hops which increases the chance of using different CHs in routing data from nodes to BS, enabling network load balancing. • Balanced Clusters : Balancing clusters in terms of volume of generated data would be a solution that can balance the network load, especially in direct communication. If nodes are homogeneous, the number of nodes can be a parameter to balance the load among clusters, although in unbalanced networks using the number of nodes as the metric can results in unbalanced clusters in terms of size. This will lead to moremore energy consumption because of the distance between CH and members. In heterogeneous networks, the generated packet rate per node can be a parameter to balance clusters, but the packet rate is a challenging and resource-consuming parameter [259] to predict and process on-the-fly. • Congestion Control : Evaluating the efficiency of each route in indirect communication can update and optimize parallel routes from a cluster (or layer) to BS to balance the network load. Having multiple routes from one source to one destination can also divide the network load which can generally avoid network congestion. • Balanced Energy Consumption : As data transmission is the most important cause of energy depletion, fair distribution of energy consumption among nodes can improve load balancing simultaneously, because there is a high correlation between energy consumption and the amount of transferred data. 3. Quality of Service: To support QoS in WSNs, different aspects should be considered, such as optimizing jitter and throughput, and minimizing delay, etc. Supporting QoS in WSNs as an ad-hoc network has always been a challenging issue. In the following, we discuss existing solutions concerning each individual QoS parameter.
• Reliability (R): One metric for reliability is the rate of successful data transmission in computer networks. In WSNs, clustering techniques can improve the reliability of the network by avoiding node death and maintaining connectivity. As an example, in [232] the authors improve the packet delivery ratio to enhance the reliability of the network. In [238] , the authors design a method which can reduce inter-cluster communication cost to improve reliability in data transmission. The proposed method establishes a tree to determine connections between two nodes based on a weighting method. Any two nodes that have no connection or unreliable connection will receive a high penalty in the weighting model to reduce the number of routes among nodes. The method will determine an edge with a minimum weight for each node to improve reliability.
• Delay (D): As clustering techniques gather data from nodes and transfer them to BS(s) directly or indirectly, optimizing the efficiency of clustering techniques can reduce delay (i.e., end-to-end Delay). Generally, there is a trade-off between energy consumption and delay [28] . There are some general solutions to reduce delay using clustering techniques as listed below: • Reducing Number of Hops : generally, by reducing the number of hops between nodes and BS, the delay is reduced due to less number of queues to forward packets in middlemen nodes which cause latency. The optimal solution in terms of reducing latency is sending data directly from each node to BS but this causes higher energy consumption. Therefore, to reduce delay and reduce energy consumption simultaneously, routing methods should be used to improve routes and reduce hops. Each hop should be stable, efficient and avoid network congestion, otherwise reducing the number of hops can not reduce delay. In [50] , the authors introduce a clustering method that limits inter-cluster routing to two hops. By having a maximum of two hops, the delay can be limited.
In [37,57,67] , the authors use two fixed hops in intra-cluster routing to reduce delay in clusters. • Load Balancing : Load balancing can optimize lengths of queues in middlemen nodes. Shorter queues will reduce delay. Network congestion is a result of unbalanced load in the network which can cause high latency. To reduce network congestion, load balancing methods that can solve the "hot spot problem " [254] simultaneously, should be applied. Clustering techniques resulting in clusters of unequal sizes, can cause additional delay since there will be more data to transfer in some areas of the network compared to others [231] .
In [158] , the authors introduce a tree-based clustered WSN method which can balance the load of the network by reordering clusters based on available streams to improve dynamic end-to-end delay. The proposed method analyzes the packet streams on-the-fly and changes the clusters and routes to reduce delay. • Heterogeneous Networks : By having nodes that are capable of forwarding more packets as middlemen nodes, different applications with different stream rates can be supported. Although heterogeneous networks can reduce delay, selecting inappropriate CHs/forwarders which do not have enough resources to be a next hop target can change the game and highly increase delay [255] . • Optimized Routing : Inter-cluster routing and intra-cluster routing can have a high impact on delay, thereby optimizing and determining shortest-fastest routes that can improve efficiency and reduce delay is an important challenge. As establishing routes is not the main objective of clustering techniques, different clustering techniques are introduced to achieve concurrent routing [15] . • Throughput (T): This refers to the amount of data that is successfully transferred through the whole network for a certain period of time. This can show the efficiency of the whole network with respect to latency reduction. In time-sensitive applications, throughput is an important parameter that can improve the efficiency of the network. Different methods in clustering techniques are used to improve the throughput of WSNs , as listed below: • Stability : As WSNs are infrastructure-less networks, they are not always stable because of node mobility, node failure, unreliable connections, and node death due to energy depletion, to name the most important ones. By having a more stable WSN infrastructure, the network will have more reliable routes to transfer data which improves throughput. Clustering serves as an efficient means to improve stability by reducing the time spent on network recovery in unstable network circumstances. Some clustering techniques (e.g., in [127] ) in-crease the number of alive nodes as a solution to improve the stability of the network. By balancing the energy consumption, the number of dead nodes is reduced, leading to improved network stability. • CH Selection : A pre-determined number of CHs with direct communication to BS (s) can improve the throughput of the network and keep the network reliable. By having a deterministic number of CHs, the rate of data delivery to the BS will be predictable and the network throughput will be more stable . In [143] , the authors introduce a method that determines a number of resource-rich nodes as CHs in a heterogeneous network to keep the network throughput stable. • Data Aggregation and Compression : Data compression and aggregation are two methods to reduce the volume of data transfer. Using these methods, the volume of data received by BS(s) would be less than the accumulated data generated in all nodes. This will improve throughput and decrease energy consumption. In [144] , the authors introduce a method to eliminate repetitive readings of generated packets in intracluster and inter-cluster aggregation techniques to reduce the volume of data to transfer. • Jitter (J): Another approach that can improve QoS is using jitter prevention techniques. Preventing jitter is important especially for multimedia and real-time WSN applications which require stable, long-living, and non-congested connections. Proposed methods to prevent jitter using clustering techniques include: • Tree-based Structures : Tree-based clustering structures balance and possibly predict the volume of data in each route to reduce jitter. In [214] , the authors introduce a hierarchical treebased routing protocol to organize nodes and establish clusters. They introduce a reactive mechanism that use the history of the network to form CHs and reduce jitter. • Splitting Unbalanced Traffic Streams : As an ad-hoc network, WSNs use some nodes as hops to transfer data in which each hop can be used by multiple streams. Different stream rates, within a hop, can affect each other by changing the priority of packets in the forwarding queue, leading to jitter creation. By splitting packet streams across middlemen nodes or using different middlemen nodes for different streams, the effect of streams on each other will be reduced, e.g., the effect of a multimedia stream on a temperature sensor stream can be delay, jitter, or throughput problems. 4. Packet Delivery Improvement: can enhance QoS and reduce energy consumption and network overhead by reducing the number of re-transferred packets, data loss, etc. There are a number of factors that affect packet delivery as listed below: • Packet Delivery Ratio (Y): is a parameter that has a high correlation with throughput. A higher packet delivery ratio can improve throughput simultaneously due to transferring a larger volume of data during a specific time period. Optimizing packet delivery ratio is possible by improving reliability (i.e., data loss reduction) of the network infrastructure. By improving reliability, in this context, we mean reducing packet loss and node failure and improving connectivity. In addition, in time-sensitive applications, network congestion can cause packet drops which reduces packet delivery ratio. In [256] , a method has been proposed to improve the packet delivery ratio by selecting CHs based on their remaining energy, QoS parameters and node's location. They use the immune-inspired optimization algorithm to select routes for delivering packets. Data loss can also cause critical problems, especially in WSNs which sense and gather critical information like fire detection, disaster management, military-based information, etc. In most cases, node failure is the main cause of data loss in WSNs. Clustering techniques can be used to detect node failures and reduce data loss. In [170] , Izadi et al. introduce a clustering method that can detect node failure in an acceptable time after failure, avoiding data loss. The proposed method tries to detect and replace failed nodes immediately to avoid sending data to them as holes that lose data. • Optimize P ackets Received by BS (P): While the parameter (Y) above shows the amount of data received by BS in a certain time period compared to the amount of generated data in source nodes, (P) refers to optimizing the volume of data by data fusion and techniques throughout the route from the source node (s) to BS (s). In other words, (Y) shows the ratio of generated packets by source nodes to receive packets by BS(s) as it shows higher efficiency when it approaches 1, but (P) shows the ratio of volume of generated packets by source nodes to volume of received packets by BS without losing useful data as it shows higher efficiency when it approaches 0. Network lifetime can increase the amount of data received through the time by BS [201,213] . In some papers, (P) shows the throughput of the network in case of transferring data to BS [20,219] . On the other hand, in some clustering techniques, the parameter is used to show the effect of BS position relative to other nodes on the number of received packets in BS [184] . Increasing packets received by BS can show the ability of the clustering technique to gather and transfer of data generated by nodes. There is a high correlation between (P) and QoS, such as delay and reliability. In some clustering techniques, reducing the number of packets received by BS is an objective that can improve network overhead, energy consumption, and QoS. Using aggregation, compression and fusion methods is a solution in inter-cluster and intra-cluster routings to reduce the volume of data. Some methods can also reduce the volume of data needed for a given service using clustering techniques to minimize the number of packets received by BS. In [73] , the authors introduce a clustering technique to discover services in the neighborhood of nodes that need a specific service. In the proposed method, they tried to reduce the number of packets transferred through the network for discovering services, resulting in reducing the overhead of network management. 5. Connectivity: As an ad-hoc network, node connectivity in WSNs is an important challenge. Improving connectivity can help the network be more reliable and transfer a higher amount of sensed data to BS. Clustering techniques can improve connectivity as each node has at least one connection to other nodes (directly) and BS (directly or indirectly). In clustering techniques, some other objectives can affect connectivity indirectly. As an example, by assuming that the transmission range of the nodes is adaptable, some clustering techniques adjust the transmission range in order to redcue energy consumption [195] . On the other hand, by limiting the transmission range of nodes, the number of reachable neighbors is reduced which can lead to the network connectivity problem. Clustering techniques help to have a trade-off between such parameters by grouping nodes, establishing a connection between any node and at least one CH and connecting clsutersd by CHs.
• Improve C overage (O): A better coverage can connect more nodes to the network and extend the sensing coverage area. As the main duty of WSN nodes is sensing, improving coverage can also physically expand the sensing environment. In some clustering techniques, there are specific policies for improving coverage. In MOCA [59] , the authors propose a clustering technique in which each node is a CH or have maximum k-hop distance from a CH. Based on the k-hop policy, a node which can not find any CH in the k-hop distance, introduces itself as a new CH. In [136] , the authors use a directional antenna to improve energy consumption and also coverage of the network by controlling the transmission range of directional antennas. In [173] , the authors introduce a method in which a node is selected as a new CH when its covered area is fully covered by its neighbors and fully overlapped with other neighboring CHs.
• Improve Connectivity (C): As improving coverage will lead to increasing the covered sensing area, we can have a more reliable and fully connected network infrastructure. In [84] , the authors propose a policy to establish clusters where between every two CHs a route with maximum 2k hops exists. In mobile networks, connectivity is a big challenge because mobile nodes can lose their connections dynamically. In [114] , the authors introduce a method for mobile WSNs to improve connectivity based on an estimated connection time between CHs and members. If connections between members and CH are lost, members detect connection lost based on the estimated connection time and broadcast a request to find a new CH to avoid packet loss. Clusters overlapping can improve connectivity and coverage. As overlapping can improve connectivity, especially improving blind spaces coverage and inter-cluster connectivity, but high overlapping can cause different problems, especially delay because of having more hops between a node and BS. In [195] , the authors introduce a clustering technique that can control the overlapping of the clusters, and reduce delay and energy consumption using a hierarchical infrastructure. In the proposed method, transmission range of CHs is increased layer by layer to reduce cluster overlapping. Besides, a threshold is introduced that each CH can not have less distance than the threshold to other CHs. 6. Fault Tolerance (F) : As a network management problem, clustering techniques should tolerate faulty nodes and keep the network connected and stable. Different reasons can cause node failure in WSNs. Battery depletion can cause failure similar to hardware components, e.g., transceiver and processor failure which can be damaged by external factors. Connectivity failure can also happen by physical or environmental factors which can be resolved by topology management methods. Node failure can cause connectivity or coverage impairment. In addition, it can cause data loss if it happens to sensors or CHs (forwarders).
To avoid the problems mentioned above, fault-tolerant clustering techniques are used which can replace failed nodes with other nodes and keep the network stable. In [237] , the authors introduce a method that selects failure-free CHs to replace faulty CHs. The proposed method forms a virtual CH that includes three failure-free CHs based on flow-bipartite graph modeling and energy of all failure-free CHs. After detecting a CH failure by BS, BS will requests failurefree CHs to take over the responsibilities of faulty CHs. In [130] , the authors introduce a packet loss recovery model based on mobile CHs which moves out of coverage of each other and makes intercluster communication impossible. They use other nodes, named Guard Nodes, within the transmission range of the sender CD and the receiver CH to recover transmitted data. Acknowledgments of transmitted packets are assessed by Guard Node as a piece of evidence that the receiver CH receives data or not. In [141] , the authors use "cluster of CHs " definition to have a master CH for CHs and detect and replace faulty CHs. In each cluster, there is a smaller cluster which includes CHs and a master of CHs which is one of the CHs. By having a faulty master, another CH is selected among CHs in the cluster. In [159] , the authors use Time Division Multiple Access (TDMA) in clusters to detect faulty nodes. Each node is responsible for sending sensed data or a special packet as a piece of evidence that is not faulty in the allocated time slot. This is also used by CHs and BS to detect faulty CHs and select a new CH. In [172] , the authors use a fault detection method by evaluating acknowledgment from CHs in member nodes and also neighbor nodes in the same cluster. In [254] , the authors introduce a method that detects five types of failures including battery failure, microcontroller failure, sensor failure, and transmitter and receiver failure. A node is responsible for detecting battery failure itself by checking the battery level and also sensor failure by comparing sensed data with neighbor's data. It evaluates transmitter and receiver by comparing data received and sent to other neighbor nodes. In [185] , the authors introduce Vice-CH which is used when CH is faulty. They use two models to recover inter-cluster and intra-cluster routing. In intra-cluster routing, if the CH can not receive data from a member, the member sends a notification message to vice-CH to show failure and vice-CH broadcasts an advertising message to its members. In inter-cluster routing, each CH and vice-CH know about next hop CH and its vice-CH. Next hop CH can be replaced by next hop-vice CH if it is faulty. Clustering techniques can use the general methods below to be fault tolerant: • Detect Failure : Different methods are introduced to detect faulty nodes in WSNs. By detecting failures, it would be possible to fix or tolerate them. There are two elements of the network which should be evaluated. First nodes and CHs should be evaluated on a regular basis to detect failures. The speed of detection methods is a challenge because high latency of detecting failure can cause data loss especially in data-loss sensitive applications. Second, connections should be checked to discover faulty ones which can cause delay or data loss. • Spare CHs (Nodes) : To tolerate faulty nodes, some clustering techniques use spare nodes to take over responsibilities. The Hot spot failure can make high negative impact on network efficiency by data loss and delay. Spare CHs can replace faulty CHs as hot spots and solve the problem. • Re-clustering : As spare nodes induce overhead in selecting and keeping them updated, the Ostrich type of solution is reclustering. After detecting failures, clusters can be destroyed and re-established. In WSNs applications in which faulty nodes are not their common problem, re-clustering can be considered as a solution. 7. Network Topology Management: As an ad-hoc network, WSNs need to be connected, reliable, and stable. Different WSN network management techniques have been proposed, classfied into centralized and distributed techniques. Clustering is a distributed management method. Each CH is responsible for managing an area of the network. Two general aspects should be considered to manage the topology of a WSN: • Stability (B): Stability is one of the management objectives which can make the network infrastructure more reliable in terms of connectivity, QoS, fault tolerance, etc. Different challenges can affect the stability of a WSN, such asmobility and node failure. SEP [48] is a fault-tolerant clustering technique that is aimed to avoid energy depletion and node failure by selecting nodes with more energy resources as CHs. SEP tries to balance the remaining energy of all nodes in a heterogeneous network and avoid node death. ACHTH-LEACH [87] is another method that provides reliable routes and a more stable network infrastructure for data transfer by selecting resource-rich nodes as CHs. In [93] the authors introduce a method which can keep the number of selected CHs per round stable to help the network to be more stable in term of energy consumption per round and improve the network lifetime. • Scalability (A): Scalability in terms of supporting a huge number of nodes is a big challenge that can be addressed by clustering. Due to having many nodes as sensors, WSNs should be scalable and support hundreds or thousands of nodes and keep the network connected. As a problem of large networks, centralized methods are not efficient in such networks and have high overhead. IIn distributed methods, large networks still have overheads of network management because of synchronizing nodes and their information to make management decisions, but not more than centralized methods. In [89] , the authors introduce a method which use the Geographic Hashing method to keep encoding overhead per packet constant and reduces maintenance cost to virtually zero. Communication overhead is another challenge to support scalability. In [178] , the authors design a clustering method that reduces communication overhead to support scalability. Neamatollahi et al. [222] introduce a clustering method that supports scalability by applying an energy-efficient distributed algorithm for all levels of clusters to reduce communication overhead based on the number of nodes. The proposed method also reduces message propagation in the entire network compared to LEACH based methods [20] . Besides, the proposed method uses a technique to distribute CHs and members fairly in multiple clusters to increase the efficiency of distributed management techniques. 8. Support Multi-Sink (K): Supporting multi-sink network is an important objective that can increase the efficiency of WSNs in different aspects like QoS, resource consumption, etc. Multi-sink support clustering techniques allow the network to have several gateways which improve the efficiency of the network during gathering and transferring data to out of the network. Most of the clustering techniques which support multi-sinks focus on designing a routing method to determine the best route to transfer data to out of a WSN. Although some clustering techniques consider multi-sink especially as a scenario in their performance evaluation, there are not many techniques that have a specific solution for multi-sink networks. In [203] , the authors propose a method that can support multiple mobile sinks. Their method uses CHs to maintain optimal routes which have minimum hops to the latest location of mobile sinks. In the paper, the authors assume that there are two sinks that have indefinite energy resources and move in a counter-clockwise direction. By supporting multiple sinks, they reduce the number of hops between CHs and sinks as gateways to improve the efficiency of the network. In [54] , the authors introduce a clustering technique that can support multiple mobile sinks to gather data based on queries. They improve the "success rate " which shows the ratio of the number of data packets received successfully at BSs to the total number of data packets generated by a node. 9. Mobility Management (M): Mobility has always been considered a big challenge for wireless networks. Although mobility is an advantage in several applications, it can cause different problems like connectivity, reliability, stability, etc. Abuarqoub et al. [206] introduces a clustering technique which reduces the overhead of mobility management in WSNs. They divide the network to clusters called service zones (SZs) to reduce the localization control overhead by performing an efficient neighbor discovery method in SZs. In [114] , the authors use the speed of each node as a parameter to select CHs. By using TDMA to schedule access to the medium in each cluster, they estimate the connection time between members and CHs to detect the mobility of nodes among clusters. Some methods are introduced to support mobile CHs and sinks for gathering information in the network [203] [226] . In [190] , CHs are considered mobile and used as Mules to gather and transfer data. Although supporting mobile sinks seems to be an objective in clustering techniques, in reality, there are not many applications that need sinks as the only nodes to be mobile. On the contrary, mobile sink is a kind of solution to improve the efficiency of WSNs, not an objective. In other words, these clustering techniques improve their efficiency in different aspects by using mobile sinks as a solution. 10. Security (S): There are many attack that can happen due to WSN characteristics [257] . Different techniques are introduced to solve the attacks and detect malicious nodes, especially hole attacks which are very common in ad-hoc networks. Clustering techniques can also be used to improve the security of WSNs. In [161] , the authors introduce a method to evaluate each node, detect malicious nodes and avoid being CH. They use a trust level system for all nodes of WSNs which is calculated based on the behavior of the node in a cluster. Krishna et al. [194] introduce a method that can perform periodic authentication between CH and members to establish secure channels in WSNs. They encrypt transferring data by authentic keys and detect node intrusions. Nodes are authenticated and verified based on key verification and data between CH and members. In [258] , the authors introduce a trust-based CH selection model for WSN-based Intelligent Transportation Systems (ITS). Each cluster is selected based on the residual energy, trust value and the number of neighbors. Each node is responsible for monitoring the behavior of its neighbors in the cluster. CHs are also responsible for evaluating the trustworthiness of each member based on analyzing other members' evaluation. Then, the values are sent to BS to finalize and detect malicious nodes. 11. Physical Layer Support (U): Although clustering techniques belong to the network layer, they can contribute to the efficiency of other layers including the physical layer. In general, there are some static bandwidth reservation methods which are used in the wireless network to share bandwidth, such as TDMA. Clustering can improve the efficiency of bandwidth reservation methods. As a fundamental clustering method, adaptive clustering [36] is used to allocate bandwidth in each cluster to members efficiently. They use a virtual circuit definition to assign real-time connections and reserve time slots in clusters. In [162] , the authors introduce a method to utilize bandwidth allocation based on inter-cluster aggregation which reduces the volume of data in a hierarchical clustering technique in each layer and improve energy consumption and bandwidth allocation in upper layers. Scheduling is a task to allocate bandwidth to different nodes to transfer data and avoid transmission interference. Clustering techniques can group nodes and have a local scheduling system in each cluster or layer to transfer data. In [158] , the authors use a heuristic scheduling model in clusters to adapt the network with end-to-end delay and bandwidth allocation requirements. They use a scheduling model that can react to different data flow changes in routers (CHs) by re-ordering active periods of clusters and tuning the active periods of the cluster to access to the shared channels. In [68] , the authors introduce a method to minimize the scheduling length subjects to energy-constrained nodes. If there is a node failure, in the quick recovery phase the rescheduling method is executed in its CH or a new CH is replaced with the failed CH.

Statistical evaluation of existing clustering techniques
Based on Table 3 , it is clear that energy consumption and load balancing are the most common objectives of clustering techniques. The table also shows that more than 82% of clustering techniques consider CH as the node for data aggregation, but based on the reviewed literature, most of them have not introduced a specific aggregation technique. In other words, in most existing techniques on data aggregation, CHs are assumed to fuse data before transferring. In addition, a large number of reviewed techniques turn from pure clustering to clustering-routing as they support inter-cluster routing. As inter-cluster routing can reduce energy consumption , 94.8% of the literature focuses on improving energy consumption using this routing method. In addition, the table shows that most of the reviewed literature assumes a static infrastructure for the network. In different applications like vehicular networks or smart cities, the network infrastructure is highly dynamic. Thus, the statistic shows that designing clustering techniques that support mobility needs more attention. As we expected, energy consumption is the most common objective of clustering techniques, but the table also shows that load balancing, scalability and improving packet delivery ratio are important objectives studied by the literature. Additionally, as mentioned above, although clustering techniques have the good potential to solve the problem of mobility management, there exists not much work to exploit clustering in mobility management. The other fact, extracted from Table 3 , is that most existing works focus only on a few objectives, despite the potential of clustering to achieve a wide range of objectives. Fig. 2 reviews the networking challenges addressed by clustering and the methods which are used by clustering techniques to solve them. Blue topics are objectives and yellow topics are the respective solutions. The figure shows the general methods used by clustering techniques, however each work can have a specific solution. Although clustering was originally introduced for topology management, the figure shows that Table 3 Comparing clustering objectives and their correlations.

Table 4
The correlations between objectives and properties of the network in the reviewed clustering techniques. it has been widely applied to address other networking challenges. As shown in the figure, in different cases, hierarchical clustering is part of the solution to address those challenges. Balanced and unbalanced clusters are also common solutions to achieve different objectives. Another common method to address the networking challenges is balancing the energy consumption to avoid dead nodes. In addition, as shown in the figure, some objectives are considered as solutions as well. As an example, stability is both an objective and a solution. It is noteworthy that some clustering techniques use some objectives to achieve another one indirectly. For example, improving the stability can improve connectivity resulting in higher throughput. In Table 3 , objectives of clustering are reviewed based on their correlation. White background diameter of the table shows the number of papers proposing a clustering technique with an objective on x/y-axis. The lower heat-map triangle shows what percentage of those papers address an objective on y-axis. For example, out of 204 papers focusing on E (energy), 2% of them consider K (supporting Multi-sink) as other objective for clustering. Similarly, the upper triangular of the table shows what percentage of papers with x-axis objective include an objective on y-axis. For example, out of three papers focusing on the K objective, 100% of them consider E as other objective of clustering. The table is used to statistically show that what percentage of each objective has overlap with other objectives. The table helps to understand the reasons of using clustering techniques in WSNs by bilateral comparison of overlaps between each two objectives. In other words, pairs of objectives shown in the table helps to understand what objectives are considered together in designing a clustering technique. Based on statistics, Table 1 also shows that 66, 56, 33, 10, 2, 1 and 2 of reviewed clustering techniques support 1, 2, 3, 4, 5, 6 and 7 simultaneous objectives, respectively. The results show that most of the clustering techniques focus on one or two objectives. In addition, the table shows that in most of existing solutions energy consummation has been considered as a main objective, besides their other specified objectives for clustering. On the other hand, there is a large body of the literature that focuses only on improving energy consumption. Table 4 shows the correlations among objectives and properties of the network. As an example, 82% of papers that consider energy efficiency (E) as an objective can not support heterogeneity. The table shows that heterogeneity is not supported in most cases. In papers on (J), heterogeneity is supported 100%. Specifically, there are only three papers supporting (J) in which a tree based network infrastructure is provided to reduce jitter. With respect to the role of CH, the table shows that in most of works data fusion has been used, e.g., more than 91% of the literature that considers packet delivery improvement, uses data fusion to reduce the volume of data to transfer. Considering routing, the table indicates that multi-hop routing has been mostly used for objectives related to QoS and resource usage, e.g., load balancing, jitter, improving coverage, and energy consumption reduction. Additionally, the table shows a high correlation between multi-hop routing and data fusion which indicates that in the respective works data fusion has been introduced at multiple network levels. At the bottom of the table, the averages show that although most of solutions aim to address fundamental networking challenges (e.g., QoS) through clustering, they do not support heterogeneity and mobility as two most important network characteristics. Therefore, based on real-world network environments of different WSN applications, statistical evaluation shows that designing clustering techniques that support mobility and heterogeneity needs more attention.

Conclusion
Clustering has been leveraged as a common topology management technique in WSNs. Although clustering is mainly known as a technique to improve energy consumption, clustering can solve various networking challenges, e.g., load balancing, QoS, security, and mobility management. In this paper, we surveyed the objectives of clustering techniques in WSNs to investigate the current direction of clustering techniques, more than 20 years after the introduction of the first important clustering technique. We also reviewed different network characteristics that clustering can support, e.g., heterogeneity and mobility. 210 clustering techniques were reviewed to statistically analyze the clustering objectives and network characteristics. As we expected, the results show that the most important objective of using clustering techniques is energy consumption, but also they are used to achieve more than 17 other objectives. In addition, the results show that most of existing clustering techniques are unable to support heterogeneous and mobile network infrastructures. Given that many applications require supporting such network characteristics, more effort is needed on addressing heterogeneity and mobility through clustering. In addition, the results show that although clustering techniques focus on reducing energy consumption and improving load balancing, they are able to solve more divers challenges. This will encourage the scientists to leverage clustering to solve other networking challenges.

Declaration of Competing Interest
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

Supplementary material
Supplementary material associated with this article can be found, in the online version, at doi: 10.1016/j.comnet.2020.107376 .