## 4 Optimized Hidden Node Detection Paradigm
### Hidden Node Detection  
Detecting a hidden node in WMSNs is the critical problem that affects the network performance. Hence, the efficient neighbor discovery process helps in hidden node detection. In this phase, we focuson a continuous neighbor discovery process to determine the hidden nodes. Each sensor node uses a coordination-driven approach, and we chose the 1-hop multiple neighborhood discovery process rather than the particular node-discovery in the network that helps detect all hidden nodes at the1-hop neighborhood. As a result, the network consumes a minimum amount of energy and has a collision-free process. In this approach, the nodes share the schedule as discussed in [26]. The network is divided into different subdivisions, and each subdivision is controlled by a coordination node. However, our approach selects the coordination node based on the residual energy, data forwarding capacity of the node, distance of the node from the base station, and memory allocation. Each node continues to play a role as the coordinator until it possesses the higher weightage as compared with other nodes of the subdivision. The higher weightage is calculated by assigning different values as residual energy is assigned 33% weightage, the nearest distance of the node from the base station gets 25%, the data forwarding capability gets 15%, and the memory allocation resource gets 27% weightage. We tried to use different combinations of the weightage for each metrics, but we obtained the optimal results with our chosen weightage numbers. Thus, each coordination node is responsible for detecting the new hidden node when joining the network. Each new joining node is required to send a synchronization message to the coordination node, each subdivision has only one coordination node, which means there is less possibility of collision to handle synchronization message. In case a new joining node sends the coordination requests to two different subdivisions, if a node is located close to the subdivisions that are overlapped, the coordinator node that receives the first synchronization message that entertains the node. On other hand, the coordination node that receives a later synchronization message that responds to the new joining node, but that node has already become part of the other subdivision. As a result, the possibility exists for energy waste of the coordination node. However, the wasted energy of the coordination node is negligible. The coordination node replies to the new node and sends a message to all the nodes in the same subdivision to store records about the new joining node. After getting a message from the coordination node, all the nodes send a message to the new node. When it receives these messages, the new node sends a message to the coordination node about the nodes who replied to the previous message. The goal is to confirm the new node request and inform all the nodes in the same subdivision about the new member and the new node has the information about the other neighboring nodes. The synchronization message is dispersed over the entire links of the network to link with the coordination node. This is the way that the coordination node determines a new joining node is detected. When the coordination node has information about a new joining node that broadcasts within its subdivision nodes, the coordinating node will send out a message to all the nodes in the same subdivision. The synchronization process of a new joining node with the coordination node process is depicted in Figure 2.  
The hidden node detection process applies a random wake-up procedure to reduce the option of repeating collisions amongst the nodes in the same subdivision. In this phase, each node coordinates with its neighborhood nodes during the wake-up period to avoid collisions and make a faster discovery process of any new joining hidden node. The wake up time period is very small, and the time of forwarding the HELLO message is even smaller.