# A Robust and Energy-Efficient Weighted Clustering Algorithm on Mobile Ad Hoc Sensor Networks +
## 3 Description of RE2 WCA Algorithm
### Fault Detection Algorithm  
Currently, mobile Ad hoc sensor network is widely utilized and obtains extensive applications for its rapid development, which results in the large quantities of problems emerged for the bad working condition [35; 36; 37]. For example, nodes in the network are likely to suffer from battery out of charge for the increasing power consuming rate and the link failure in the network. In Figure 3, the network is stablished when the clustering algorithm finished. All nodes have its unique cluster and _CH_. _CH_ is responsible for the intra-cluster communication and inter-cluster packet transmission. Currently, there are mainly two kinds of methods in fault detection for wireless sensor network, which are centralized method and distributed method. In centralized fault detection approach, the central node, commonly sink node, is responsible for the faulty nodes in network. Apparently, these approaches are not suitable for large scale network because huge message forwarding will consume considerable energy and this will surely shorten the lifetime of the network. Therefore, distributed approach is proposed to overcome the problem of centralized approach. In distributed approach, faulty nodes are identified by local decision-making. In our network, the distributed fault detection managers are CHs and fault detection responsibility is subsequently distributed among each individual cluster. Further, if a failure is detected locally, the failure can be propagated to all other clusters. Hence, we propose a distributed approach to construct a fault detection framework to render the network more robust and fault tolerant. Through this hierarchical structure, the management framework is more efficient. CHs need to find a path to forward packets to the sink node. Thus, the optimal path is also vital for the sake of energy efficiency. Consequently, in order to reduce the cases of network paralysis caused by the nodes failures or _CH_, we propose a fault-detection and _CH_ backup mechanism for the network. A periodic fault detection protocol is considered, which can detect the failures of nodes and CHs efficiently. Additionally, most topology control strategy is centralized [38; 39; 40], which consumes amounts of energy and increases the overhead for broadcasting global messages. Therefore, we adopt a distributed fault tolerance control method to avoid the drawbacks of centralized strategy. When the process of cluster establishment is accomplished, the proposed fault detection algorithm is as followed:  
The following example figures the process of this algorithm within each cluster under different cases. Among them, Figure 4 gives the practical example of fault node detection. Meanwhile, Figure 5 shows the practical process of Backup CH mechanism. We consider a low group mobility since actually most nodes have the similar movement characteristics. Figure 3: A clustering wireless sensor network model. The above two processes are periodic. The period of detecting the fault node is _time_fn1_. Actually, the period is equal with the time when the last cluster member finish sending packets for the purpose of not influencing the normal communication of nodes. Thus, every time the last cluster member nodes finish sending packets, the network will run the fault detection algorithm. Similarly, the period of _CH_ detection _time_fn2_ is equal with the time which consists of _time_fn1_ and the data processing time. Backup _CH_ broadcasts sensing messages to cluster member and neighbor cluster nodes periodically. If finds _CH_ cannot work, then execute the algorithm of _Backup CH_ to make the network work. When the network cannot work normally, it needs to trigger the topology maintenance. In Algorithm 3, the detailed description of fault detection algorithm is shown. Figure 4: (**a–c**) is the practical example of fault node detection process. (**a**) Cluster members (3, 9) send message to _CH_. Node 6 fails sending, hence node 6 is to be probable fault node. (**b**) Nodes (3, 6, 9) send message to _CH_ respectively.