SOUNET: Self-Organized Underwater Wireless Sensor Network

In this paper, we propose an underwater wireless sensor network (UWSN) named SOUNET where sensor nodes form and maintain a tree-topological network for data gathering in a self-organized manner. After network topology discovery via packet flooding, the sensor nodes consistently update their parent node to ensure the best connectivity by referring to the time-varying neighbor tables. Such a persistent and self-adaptive method leads to high network connectivity without any centralized control, even when sensor nodes are added or unexpectedly lost. Furthermore, malfunctions that frequently happen in self-organized networks such as node isolation and closed loop are resolved in a simple way. Simulation results show that SOUNET outperforms other conventional schemes in terms of network connectivity, packet delivery ratio (PDR), and energy consumption throughout the network. In addition, we performed an experiment at the Gyeongcheon Lake in Korea using commercial underwater modems to verify that SOUNET works well in a real environment.


Introduction
With the advancements in underwater communication technologies such as acoustic modems, hydrophones, and digital signal processing (DSP), underwater wireless sensor networks (UWSNs) have drawn considerable attention in various applications such as tactical surveillance, oceanographic observation, disaster prevention, undersea exploration, and assisted navigation [1][2][3]. In general, UWSNs consist of multiple fixed sensor nodes that monitor a specific area collaboratively and forward data to one or more data-gathering points known as the sink by multi-hop relaying or occasionally with the aid of mobile machines referred to as autonomous underwater vehicles (AUVs). Either the wireless communication links between the sensor nodes are preprogrammed prior to placement or a remote user can centrally assign them after placement. However, to configure the number of communication links manually, the centralized method requires substantial efforts. Furthermore, it is necessary to reconfigure the links whenever a sensor node is lost or added.
To eliminate such manual efforts required to maintain the network, self-organizing network (SON) technology is studied. In SON, individual sensor nodes discover network topology in a best-effort manner with local information only or sometimes via probabilistic approaches [4]. Along with the elimination of complexity, SON provides three strong points: adaptability, robustness, and scalability. Adaptability means that when a node is lost, the child nodes connected to the lost node as data senders try to find new parent nodes by themselves. Such an adaptive reconfiguration avoids unexpected data loss, which may occur for a long time or permanently in centralized networks. Additionally, a newly deployed sensor node is capable of joining the network using the limited information acquired through

System Description
We consider a typical data-gathering sensor network where one sink gathers environmental data from multiple normal nodes that are randomly distributed. We assume that all nodes have the same transmission coverage. From the aspect of network topology, the network is tree-shaped and the sink is located at the top, as shown in Figure 1. The hierarchical level denoted by an integer starting from 0 (highest level) for the sink is incrementally assigned to each level. The connection is made only between adjacent levels i and i +1, where the nodes at i and i + 1 are called the parent and child of each other, respectively. The nodes associated with the data flow from the lowest level up to the sink compose a branch, where the bottom node is called a leaf and nodes at higher and lower levels are called ancestors and descendants, respectively. Neighbors are defined as those within the communication range, including parent, child, and possibly several nodes of other branches. Each node keeps the information about neighbors in the so-called neighbor table. For medium access control, we employ ALOHA protocol [25], which is well suited to the underwater channel due to its simplicity and insensitivity to large propagation delays [26]. In addition, since ALOHA does not require time synchronization synchronization between nodes, it is assumed that all nodes are not synchronized and are homogeneous in terms of capability and physical specification. In this paper, a node is called a dead end when it has no more valid parents other than the current parent, if any. Moreover, a node is called isolated when it is completely disconnected from any other nodes. A node becomes isolated necessarily through the state of a dead end. Similarly, a group of nodes is called isolated when the group has no connection leading to the sink, even though the nodes inside the group are connected.

Problem Statement
To improve the network's sustainability, repairing the link holes caused by the loss of nodes should be at the earliest. For instance, a child node losing connection must find a new parent or the lost nodes should be replaced by new ones as soon as possible. During such recovery, the following issues arise. Figure 2 illustrates two types of incidents that may occur when sensor nodes are lost. Each number inside the circles identifies a node. Assume that the nodes 1, 4, and 6 are lost.  In this paper, a node is called a dead end when it has no more valid parents other than the current parent, if any. Moreover, a node is called isolated when it is completely disconnected from any other nodes. A node becomes isolated necessarily through the state of a dead end. Similarly, a group of nodes is called isolated when the group has no connection leading to the sink, even though the nodes inside the group are connected.

Problem Statement
To improve the network's sustainability, repairing the link holes caused by the loss of nodes should be at the earliest. For instance, a child node losing connection must find a new parent or the lost nodes should be replaced by new ones as soon as possible. During such recovery, the following issues arise. synchronization between nodes, it is assumed that all nodes are not synchronized and are homogeneous in terms of capability and physical specification. In this paper, a node is called a dead end when it has no more valid parents other than the current parent, if any. Moreover, a node is called isolated when it is completely disconnected from any other nodes. A node becomes isolated necessarily through the state of a dead end. Similarly, a group of nodes is called isolated when the group has no connection leading to the sink, even though the nodes inside the group are connected.

Problem Statement
To improve the network's sustainability, repairing the link holes caused by the loss of nodes should be at the earliest. For instance, a child node losing connection must find a new parent or the lost nodes should be replaced by new ones as soon as possible. During such recovery, the following issues arise. Figure 2 illustrates two types of incidents that may occur when sensor nodes are lost. Each number inside the circles identifies a node. Assume that the nodes 1, 4, and 6 are lost.  Then the node 7, which was the child of node 4, builds a new communication link (detour) with node 5 so that the data gathering can continue. Meanwhile, node 3, which was the child of node 1, fails to find an alternative parent and loses all connections (isolation), and the nodes 8-10 also become disconnected from the sink, and thus, form an isolated group. Relevant nodes appropriately recognize such isolations so that they can enter sleep mode to save energy until they are repaired. To do this, the isolated nodes broadcast a control packet named ISO to announce the isolation to all neighbors.

Closed Loops
In the process of detouring, shortsighted nodes (i.e., nodes 8-10 in Figure 2) may form a closed loop where data goes round infinitely and does not reach the sink. Such a closed loop should be recognized and fixed in an efficient way.

Network Joining Delay
It is essential for delay-critical data to reach the sink in time. If newly added nodes stay disconnected for a long time, the associated data may expire and ends up discarded. Thus, quickly reconfiguring the network by acquiring local information from the surroundings is highly required.

Construction and Operation of SOUNET
SOUNET constitutes of two phases: network initialization and network maintenance. In the network initialization phase, sensor nodes start network topology discovery via packet flooding initiated by a sink. Next, in the network maintenance phase, the sensor nodes update the links by referring to the neighbor table while forwarding data to the sink. The neighbor table contains three parameters of neighbors: an identifier (ID), a hierarchical level (LV) and an indicator that represents whether the neighbor is a dead end or not (DE).

Phase 1: Network Initialization
After node deployment, the sink begins the network initialization by flooding a control packet named HELLO, which contains the sender's ID and LV. On receiving the HELLO, sensor nodes identify their parent and hierarchical level. The nodes ignore the HELLOs received from the same or lower level. The HELLO flooding continues until the HELLO reaches leaf nodes. Naturally, the revision of the HELLO with new senders' IDs and LVs occurs at every flooding. Due to packet collisions, however, some sensor nodes may not receive the HELLO successfully. Such sensor nodes join the network later by overhearing a DATA packet in the next phase.

Phase 2: Network Maintenance
In this phase, during the data transfer between the sensor nodes to the sink, updates are performed on the communication links according to the topological changes such as node additions and losses.

Data Transfer
On acquiring data, the sensor node sends DATA packets to the parent. Then the parent replies with an acknowledge packet, ACK. Such an exchange of DATA and ACK continues along the branch until the DATA reaches the sink. During data transfer, if necessary, the associated sensor nodes update the neighbor table.

Link Hole Recovery
The link hole occurs when a sensor node is lost due to battery discharge or physical damage such that the branches connected to the lost node are disconnected. Since the link hole causes data loss, it is essential to recover the link hole by creating a detour or by replacing the lost node immediately with a new one. However, the problem lies in the way the sensor nodes recognize the occurrence of link holes Sensors 2017, 17, 283 6 of 20 without centralized notification. In SOUNET, the sensor nodes count the number of failures in ACK reception, n ack_fail , from the parent and if the value reaches the threshold, N MAX_ACK_FAIL , then they may regard that parent node as a link hole. The n ack_fail becomes zero when an ACK or any type of packet is received, indicating that the parent is alive.
On recognizing a link hole, a sensor node starts the link hole recovery by deleting the current parent and searching for a new parent in the neighbor table. The sensor node randomly selects the new parent node from among the highest-leveled neighbors who are neither dead ends nor child nodes. Regarding whether the neighbor is a dead end or not, the node easily obtains the DE status of neighbors without extra signaling by overhearing DATA from neighbors since the DATA contains the sender's DE in the packet header. Figure 3 shows an example of link hole recovery where eight nodes (from 1 to 8) are located in levels from i to i + 3, and the node 2 is lost (dotted circle in Figure 3b) and accordingly the neighbor tables of associated nodes 4 and 5 are updated. Nodes 4 and 5 end up detouring via new parents 5 and 3, respectively. immediately with a new one. However, the problem lies in the way the sensor nodes recognize the occurrence of link holes without centralized notification. In SOUNET, the sensor nodes count the number of failures in ACK reception, n ack_fail , from the parent and if the value reaches the threshold, N MAX_ACK_FAIL , then they may regard that parent node as a link hole. The n ack_fail becomes zero when an ACK or any type of packet is received, indicating that the parent is alive. On recognizing a link hole, a sensor node starts the link hole recovery by deleting the current parent and searching for a new parent in the neighbor table. The sensor node randomly selects the new parent node from among the highest-leveled neighbors who are neither dead ends nor child nodes. Regarding whether the neighbor is a dead end or not, the node easily obtains the DE status of neighbors without extra signaling by overhearing DATA from neighbors since the DATA contains the sender's DE in the packet header. Figure 3 shows an example of link hole recovery where eight nodes (from 1 to 8) are located in levels from i to i + 3, and the node 2 is lost (dotted circle in Figure 3b) and accordingly the neighbor tables of associated nodes 4 and 5 are updated. Nodes 4 and 5 end up detouring via new parents 5 and 3, respectively.     If no valid parent candidate exists, the sensor nodes inevitably select a new parent from among their child nodes. Figure 4 shows such an example where node 3 is lost and then node 5 selects node 6     immediately with a new one. However, the problem lies in the way the sensor nodes recognize the occurrence of link holes without centralized notification. In SOUNET, the sensor nodes count the number of failures in ACK reception, n ack_fail , from the parent and if the value reaches the threshold, N MAX_ACK_FAIL , then they may regard that parent node as a link hole. The n ack_fail becomes zero when an ACK or any type of packet is received, indicating that the parent is alive. On recognizing a link hole, a sensor node starts the link hole recovery by deleting the current parent and searching for a new parent in the neighbor table. The sensor node randomly selects the new parent node from among the highest-leveled neighbors who are neither dead ends nor child nodes. Regarding whether the neighbor is a dead end or not, the node easily obtains the DE status of neighbors without extra signaling by overhearing DATA from neighbors since the DATA contains the sender's DE in the packet header. Figure 3 shows an example of link hole recovery where eight nodes (from 1 to 8) are located in levels from i to i + 3, and the node 2 is lost (dotted circle in Figure 3b) and accordingly the neighbor tables of associated nodes 4 and 5 are updated. Nodes 4 and 5 end up detouring via new parents 5 and 3, respectively.     If no valid parent candidate exists, the sensor nodes inevitably select a new parent from among their child nodes. Figure 4 shows such an example where node 3 is lost and then node 5 selects node 6     If no valid parent candidate exists, the sensor nodes inevitably select a new parent from among their child nodes. Figure 4 shows such an example where node 3 is lost and then node 5 selects node 6 Sensors 2017, 17, 283 7 of 20 as a new parent because node 7 is a dead end. In this case, node 5 also becomes a dead end because no alternative candidate for parent exists. Node 6 realizes that it is selected back as a parent by the current parent, node 5, on receiving a DATA destined for itself from node 5. In addition, node 6 learns that node 5 became a dead end by reading the DE field of the DATA sent by node 5 and it also becomes a dead end. After that, node 6 updates the neighbor table accordingly and selects node 4 as the new parent. Later, nodes 4 and 2 also become dead ends.

Isolation Recognition
Link holes may cause isolation of the associated descendants. Suppose that node 2 is additionally lost in Figure 4b. Then the group of nodes from 4 to 7 becomes isolated because the node 1 is located beyond their transmission coverage. Without recognizing the isolation, the nodes inside isolated group may keep wasting energy in transmitting data. Thus, it is necessary to recognize the isolation and enter sleep mode shortly for saving energy. In SOUNET, a dead end recognizes isolation under one of the following conditions:

•
Receiving ISO from the parent.

•
Receiving DATA back from the parent who becomes a dead end. • n ack_fail reaches N MAX_ACK_FAIL .
After recognizing the isolation, the isolated node immediately broadcasts an ISO and enters sleep mode until it finds a valid parent. Figure 5 shows an example of isolation recognition where nodes from 2 to 4 have a common parent, node 1 ( Figure 5a). In case node 1 is lost, the link hole creates the isolated group that includes nodes 2, 3, and 4 ( Figure 5b). Assume that the link hole is recognized by the order of nodes 2, 3, and 4. Then, node 2 chooses node 3 as the new parent and becomes a dead end due to absence of an alternative parent. Node 3 figures out what happened in node 2 by receiving DATA 2/3/Y , where the subscript 2/3/Y represents the sender ID, receiver ID and sender's DE, respectively. After that, node 3 chooses node 4 as the new parent and becomes a dead end too. In the same way, node 4 figures out node 3's situation. Recognizing that no valid parent exists, node 4 broadcasts an ISO 4/B/N , where the subscript 4/B/N denotes the sender ID, broadcasting mode and flag for loop existence (explained later), respectively ( Figure 5c). On receiving the ISO from node 4, node 3 recognizes that it is also isolated. In the same way, node 2 also recognizes the isolation ( Figure 5d). as a new parent because node 7 is a dead end. In this case, node 5 also becomes a dead end because no alternative candidate for parent exists. Node 6 realizes that it is selected back as a parent by the current parent, node 5, on receiving a DATA destined for itself from node 5. In addition, node 6 learns that node 5 became a dead end by reading the DE field of the DATA sent by node 5 and it also becomes a dead end. After that, node 6 updates the neighbor table accordingly and selects node 4 as the new parent. Later, nodes 4 and 2 also become dead ends.

Isolation Recognition
Link holes may cause isolation of the associated descendants. Suppose that node 2 is additionally lost in Figure 4b. Then the group of nodes from 4 to 7 becomes isolated because the node 1 is located beyond their transmission coverage. Without recognizing the isolation, the nodes inside isolated group may keep wasting energy in transmitting data. Thus, it is necessary to recognize the isolation and enter sleep mode shortly for saving energy. In SOUNET, a dead end recognizes isolation under one of the following conditions:


Receiving ISO from the parent.


Receiving DATA back from the parent who becomes a dead end.
After recognizing the isolation, the isolated node immediately broadcasts an ISO and enters sleep mode until it finds a valid parent. Figure 5 shows an example of isolation recognition where nodes from 2 to 4 have a common parent, node 1 ( Figure 5a). In case node 1 is lost, the link hole creates the isolated group that includes nodes 2, 3, and 4 ( Figure 5b). Assume that the link hole is recognized by the order of nodes 2, 3, and 4. Then, node 2 chooses node 3 as the new parent and becomes a dead end due to absence of an alternative parent. Node 3 figures out what happened in node 2 by receiving DATA2/3/Y, where the subscript 2/3/Y represents the sender ID, receiver ID and sender's DE, respectively. After that, node 3 chooses node 4 as the new parent and becomes a dead end too. In the same way, node 4 figures out node 3's situation. Recognizing that no valid parent exists, node 4 broadcasts an ISO4/B/N, where the subscript 4/B/N denotes the sender ID, broadcasting mode and flag for loop existence (explained later), respectively ( Figure 5c). On receiving the ISO from node 4, node 3 recognizes that it is also isolated. In the same way, node 2 also recognizes the isolation ( Figure 5d).

Isolationrecognized
[Neighbor  Meanwhile, if node 4 can reach node 2 in the previous example of Figure 5, the isolated group of nodes 2, 3, and 4 may form a loop, causing data to circulate infinitely. With the limited information contained in DATA such as sender ID, receiver ID and sender's DE, which are described as the subscripts in the previous example, the nodes of isolated group will not be able to recognize the loop. To solve this problem, some additional information needs to be contained in DATA such as the source node ID at which the DATA was originated (source ID), the number of relays the packet has been through (n relay ), and the node ID that detected the existence of a loop (LDID). A sensor node detects a closed loop under one of the following conditions:


Receiving a DATA of which source ID is its own.


Receiving a DATA of which n relay value reaches the threshold, N MAX_RELAY .
Upon recognizing the loop, the sensor node called loop detector (LD) puts its own ID into the LDID field and continues to relay the DATA. Then subsequent nodes on the loop recognize the loop by reading the LDID. Finally, the LD receives back the DATA with its own LDID and then broadcasts the ISO containing the loop flag set to 'Y' and enters a sleep mode. After receiving the ISO, the remaining nodes on the loop sequentially follow what the LD did by broadcasting the ISO and entering a sleep mode. Figure 6 shows an example to handle the loop of an isolated group. Assuming that node 4 is an LD, it transmits DATA4/5/4/N where the subscript 4/5/4/N represents the sender ID, receiver ID, LDID and sender's DE, respectively (Figure 6a). Upon receiving back the DATA, node 4 broadcasts an ISO and sleeps, and the remaining nodes sequentially follow the node 4 ( Figure 6b).
In case there is a failure in receiving DATA due to collisions, which may occasionally happen, especially when the network is crowded, the loop detection is difficult. In the proposed SOUNET, the value of LV makes the detection of loop easier. LV is updated whenever a packet is overheard from the neighbors even though DATA is missed and if LV keeps increasing up to a certain threshold, N MAX_LEVEL , it is assumed that the loop is formed. Meanwhile, if node 4 can reach node 2 in the previous example of Figure 5, the isolated group of nodes 2, 3, and 4 may form a loop, causing data to circulate infinitely. With the limited information contained in DATA such as sender ID, receiver ID and sender's DE, which are described as the subscripts in the previous example, the nodes of isolated group will not be able to recognize the loop. To solve this problem, some additional information needs to be contained in DATA such as the source node ID at which the DATA was originated (source ID), the number of relays the packet has been through (n relay ), and the node ID that detected the existence of a loop (LDID). A sensor node detects a closed loop under one of the following conditions:

•
Receiving a DATA of which source ID is its own. • Receiving a DATA of which n relay value reaches the threshold, N MAX_RELAY .
Upon recognizing the loop, the sensor node called loop detector (LD) puts its own ID into the LDID field and continues to relay the DATA. Then subsequent nodes on the loop recognize the loop by reading the LDID. Finally, the LD receives back the DATA with its own LDID and then broadcasts the ISO containing the loop flag set to 'Y' and enters a sleep mode. After receiving the ISO, the remaining nodes on the loop sequentially follow what the LD did by broadcasting the ISO and entering a sleep mode. Figure 6 shows an example to handle the loop of an isolated group. Assuming that node 4 is an LD, it transmits DATA 4/5/4/N where the subscript 4/5/4/N represents the sender ID, receiver ID, LDID and sender's DE, respectively (Figure 6a). Upon receiving back the DATA, node 4 broadcasts an ISO and sleeps, and the remaining nodes sequentially follow the node 4 ( Figure 6b).
In case there is a failure in receiving DATA due to collisions, which may occasionally happen, especially when the network is crowded, the loop detection is difficult. In the proposed SOUNET, the value of LV makes the detection of loop easier. LV is updated whenever a packet is overheard from the neighbors even though DATA is missed and if LV keeps increasing up to a certain threshold, N MAX_LEVEL , it is assumed that the loop is formed.

Temporary Closed Loop and Its Cure
Since SOUNET relies on local information (neighbor table), which requires time to be updated, a temporal discrepancy between the neighbor tables occurs. Such a discrepancy may temporarily create a closed loop. However, it is easy to cure a temporary closed loop through the neighbor table update. Figure 7 illustrates the formation and curing of a temporary closed loop.
[Neighbor table of node 2]  Assume that the node 3 accidently loses connection to the current parent node 1, which is alive. Then, not recognizing the existence of node 2, node 3 selects node 4 as the new parent ( Figure 7a) and accordingly the LV of node 3 is changed from i + 1 to i + 5. Meanwhile, node 2 also accidently loses connection to node 1 before knowing the LV of node 3 is updated and selects node 3 as the parent based on the neighbor table which shows that the LV of node 3 is still i + 1. Consequently, a loop consisting of nodes from 2 to 6 is temporarily formed. However, the loop is easily eliminated if either node 2 or node 3 overhears a packet from node 1 anytime afterwards (Figure 7b).

Temporary Closed Loop and Its Cure
Since SOUNET relies on local information (neighbor table), which requires time to be updated, a temporal discrepancy between the neighbor tables occurs. Such a discrepancy may temporarily create a closed loop. However, it is easy to cure a temporary closed loop through the neighbor table update. Figure 7 illustrates the formation and curing of a temporary closed loop.

Temporary Closed Loop and Its Cure
Since SOUNET relies on local information (neighbor table), which requires time to be updated, a temporal discrepancy between the neighbor tables occurs. Such a discrepancy may temporarily create a closed loop. However, it is easy to cure a temporary closed loop through the neighbor table update. Figure 7 illustrates the formation and curing of a temporary closed loop. Assume that the node 3 accidently loses connection to the current parent node 1, which is alive. Then, not recognizing the existence of node 2, node 3 selects node 4 as the new parent ( Figure 7a) and accordingly the LV of node 3 is changed from i + 1 to i + 5. Meanwhile, node 2 also accidently loses connection to node 1 before knowing the LV of node 3 is updated and selects node 3 as the parent based on the neighbor table which shows that the LV of node 3 is still i + 1. Consequently, a loop consisting of nodes from 2 to 6 is temporarily formed. However, the loop is easily eliminated if either node 2 or node 3 overhears a packet from node 1 anytime afterwards (Figure 7b). Assume that the node 3 accidently loses connection to the current parent node 1, which is alive. Then, not recognizing the existence of node 2, node 3 selects node 4 as the new parent ( Figure 7a) and accordingly the LV of node 3 is changed from i + 1 to i + 5. Meanwhile, node 2 also accidently loses connection to node 1 before knowing the LV of node 3 is updated and selects node 3 as the parent based on the neighbor table which shows that the LV of node 3 is still i + 1. Consequently, a loop consisting of nodes from 2 to 6 is temporarily formed. However, the loop is easily eliminated if either node 2 or node 3 overhears a packet from node 1 anytime afterwards (Figure 7b).

Fast Network Joining
Similar to the initial network joining in the initialization phase, during the network maintenance phase newly added sensor nodes can also join the network immediately by selecting a parent whose packet (HELLO or DATA) is overheard first. Even though the first parent may not be the best one, a better one (that has a higher LV) can replace it later through the continuous update of the neighbor table.

Simulation Results
An event-driven network simulator is used which was developed in our laboratory based on MATLAB (R2013a) and has been used to evaluate many schemes of medium access control and networking for underwater communication [27][28][29][30][31]. We compare the proposed SOUNET with Seaweb and S 13 . To the best of our knowledge, Seaweb and S 13 are only ones that employ self-organization techniques under the same conditions as ours, i.e., one sink and multiple nodes are randomly distributed, and they all have the same transmission coverage. Figure 8 shows the node deployment, where total 48 nodes (circles) are located around each grid point with 10% variation in the spacing and a sink (filled circle) at the center of the network. Each transmission range could be different in real world applications, but we assumed that all of the nodes have the same transmission range. We believe that the differences are inevitable errors since it is too complicated and difficult to solve but can be avoided if the nodes are placed accordingly such that the differences do not occur. The traffic generated by a node follows the Poisson arrival process with a rate of λ. In cases when multiple DATA packets need to be transmitted, the nodes prioritize the relayed data from the neighbors over their own data. In addition, we assumed that the nodes operate in half-duplexing mode [32] and the packet loss is considered to occur only through collisions. Similar to the initial network joining in the initialization phase, during the network maintenance phase newly added sensor nodes can also join the network immediately by selecting a parent whose packet (HELLO or DATA) is overheard first. Even though the first parent may not be the best one, a better one (that has a higher LV) can replace it later through the continuous update of the neighbor table.

Simulation Results
An event-driven network simulator is used which was developed in our laboratory based on MATLAB (R2013a) and has been used to evaluate many schemes of medium access control and networking for underwater communication [27][28][29][30][31]. We compare the proposed SOUNET with Seaweb andS 13 . To the best of our knowledge, Seaweb and S 13 are only ones that employ selforganization techniques under the same conditions as ours, i.e., one sink and multiple nodes are randomly distributed, and they all have the same transmission coverage. Figure 8 shows the node deployment, where total 48 nodes (circles) are located around each grid point with 10% variation in the spacing and a sink (filled circle) at the center of the network. Each transmission range could be different in real world applications, but we assumed that all of the nodes have the same transmission range. We believe that the differences are inevitable errors since it is too complicated and difficult to solve but can be avoided if the nodes are placed accordingly such that the differences do not occur. The traffic generated by a node follows the Poisson arrival process with a rate of λ. In cases when multiple DATA packets need to be transmitted, the nodes prioritize the relayed data from the neighbors over their own data. In addition, we assumed that the nodes operate in half-duplexing mode [32] and the packet loss is considered to occur only through collisions.     Figure 9 shows a simulation scenario on the timeline where the events of loss or addition of nodes occur every 3 hours during the whole simulation time of 27 h. We assume that the newly added nodes are located at the same position as the lost ones. At 24 h, the sink broadcasts a HELLO to reorganize the network, starting all over again.   Figure 9 shows a simulation scenario on the timeline where the events of loss or addition of nodes occur every 3 hours during the whole simulation time of 27 h. We assume that the newly added nodes are located at the same position as the lost ones. At 24 h, the sink broadcasts a HELLO to reorganize the network, starting all over again.  Figure 10 shows how the connections between the nodes change according to the scheduled scenario of Figure 9. Initially, the nodes organize a tree-topological network (Figure 10a). At 3 h (Figure 10b), the nodes 10, 11, and 19 are lost as marked by ' × ' and thus their descendants (nodes 2-9 and 12-14) become temporarily detached from the network. Then, the nodes 4-8 and 12-14 find detouring paths while the nodes 2, 3, and 9 fail in detouring and recognize isolation as marked by ' * '. At 6 h (Figure 10c Figure 10 shows how the connections between the nodes change according to the scheduled scenario of Figure 9. Initially, the nodes organize a tree-topological network (Figure 10a). At 3 h (Figure 10b), the nodes 10, 11, and 19 are lost as marked by '×' and thus their descendants (nodes 2-9 and 12-14) become temporarily detached from the network. Then, the nodes 4-8 and 12-14 find detouring paths while the nodes 2, 3, and 9 fail in detouring and recognize isolation as marked by ' * '. At 6 h (Figure 10c   Without repairing or battery recharging, the nodes 30, 32, 33, 37, 40, and 41 are still lost and thus the associated descendants, nodes 29, 36, and 43-45 remain isolated. On the other hand, nodes 11, 21, and 28 find new parent during the reorganization. From the above scenario, we observed that the proposed self-organizing methodology works well to adapt the network variations such as node loss or node addition.

Network Connectivity
The network connectivity (C) is defined by: where N awake and N connect are the number of nodes that are awake, which means alive but not sleeping in isolation and the number of nodes that are connected to the sink, respectively. Obviously, the network with a larger C can cover a wider area. Figure 11 shows how the connectivity changes at the beginning of node deployment from 0 s to 120 s. At the beginning, SOUNET and S 13 achieve 100% connectivity very quickly within several seconds while Seaweb requires much more time. The Seaweb's connectivity reaches only 15% until 120 s and ends up at 100% after 15 min. The quick achievement of 100% connectivity results from the HELLO packet flooding in the network initialization while the breadth-first search algorithm [34] is used in Seaweb. Without repairing or battery recharging, the nodes 30, 32, 33, 37, 40, and 41 are still lost and thus the associated descendants, nodes 29, 36, and 43-45 remain isolated. On the other hand, nodes 11, 21, and 28 find new parent during the reorganization. From the above scenario, we observed that the proposed self-organizing methodology works well to adapt the network variations such as node loss or node addition.

Network Connectivity
The network connectivity (C) is defined by: where N awake and N connect are the number of nodes that are awake, which means alive but not sleeping in isolation and the number of nodes that are connected to the sink, respectively. Obviously, the network with a larger C can cover a wider area. Figure 11 shows how the connectivity changes at the beginning of node deployment from 0 s to 120 s. At the beginning, SOUNET and S 13 achieve 100% connectivity very quickly within several seconds while Seaweb requires much more time. The Seaweb's connectivity reaches only 15% until 120 s and ends up at 100% after 15 min. The quick achievement of 100% connectivity results from the HELLO packet flooding in the network initialization while the breadth-first search algorithm [34] is used in Seaweb.
Sensors 2017, 17, 0283 14 of 20 Figure 11. Variation of network connectivity at the beginning of simulation (0 s to 120 s). Figure 12 shows how the connectivity changes during the whole simulation time in which the incidents occur every three hours as planned from 0 h to 27 h, respectively. As the incident of node loss occurs at 3 h, 6 h, 9 h, 15 h, and 21 h, the connectivity sharply decreases since the group of nodes associated with the lost nodes is disconnected at once. However, since the proposed scheme allows the disconnected nodes to detour through the new parents, the connectivity is recovered shortly while in the other schemes the connectivity remains unrecovered. Although the formation of closedloops are possible during the detour process, the nodes can detect and eliminate them. In our scenario, a group of nodes 2, 3, and 9 and another group of nodes 4-8, 12-15, and 22 could form such closed loops after event 1 and 2, respectively. It is shown that the first group of nodes 2, 3, and 9 can resolve the loop immediately after the event occurs while the second group of nodes 4-8, 12-15, and 22 may take more time to resolve it. Normally, as a group of isolated nodes is bigger, it takes more time to recognize isolated or closed loops. The node addition at 12 h and 18 h also temporally decreases the connectivity since the denominator, the number of nodes that are awake, N awake increases. However, in the proposed scheme the added nodes quickly repair the damaged connectivity by building a new connection with the isolated nodes or by rebuilding the existing connection so that the paths to the sink become shorter. Thus, the recovery of connection is very quick. Meanwhile, both Seaweb and S 13 recover the connectivity only when the network is reorganized at 24 h, not being capable of dealing with the  Figure 11. Variation of network connectivity at the beginning of simulation (0 s to 120 s). Figure 12 shows how the connectivity changes during the whole simulation time in which the incidents occur every three hours as planned from 0 h to 27 h, respectively. As the incident of node loss occurs at 3 h, 6 h, 9 h, 15 h, and 21 h, the connectivity sharply decreases since the group of nodes associated with the lost nodes is disconnected at once. However, since the proposed scheme allows the disconnected nodes to detour through the new parents, the connectivity is recovered shortly while in the other schemes the connectivity remains unrecovered. Although the formation of closed-loops are possible during the detour process, the nodes can detect and eliminate them. In our scenario, a group of nodes 2, 3, and 9 and another group of nodes 4-8, 12-15, and 22 could form such closed loops after event 1 and 2, respectively.  Figure 12 shows how the connectivity changes during the whole simulation time in which the incidents occur every three hours as planned from 0 h to 27 h, respectively. As the incident of node loss occurs at 3 h, 6 h, 9 h, 15 h, and 21 h, the connectivity sharply decreases since the group of nodes associated with the lost nodes is disconnected at once. However, since the proposed scheme allows the disconnected nodes to detour through the new parents, the connectivity is recovered shortly while in the other schemes the connectivity remains unrecovered. Although the formation of closedloops are possible during the detour process, the nodes can detect and eliminate them. In our scenario, a group of nodes 2, 3, and 9 and another group of nodes 4-8, 12-15, and 22 could form such closed loops after event 1 and 2, respectively. It is shown that the first group of nodes 2, 3, and 9 can resolve the loop immediately after the event occurs while the second group of nodes 4-8, 12-15, and 22 may take more time to resolve it. Normally, as a group of isolated nodes is bigger, it takes more time to recognize isolated or closed loops. The node addition at 12 h and 18 h also temporally decreases the connectivity since the denominator, the number of nodes that are awake, N awake increases. However, in the proposed scheme the added nodes quickly repair the damaged connectivity by building a new connection with the isolated nodes or by rebuilding the existing connection so that the paths to the sink become shorter. Thus, the recovery of connection is very quick. Meanwhile, both Seaweb and S 13 recover the connectivity only when the network is reorganized at 24 h, not being capable of dealing with the It is shown that the first group of nodes 2, 3, and 9 can resolve the loop immediately after the event occurs while the second group of nodes 4-8, 12-15, and 22 may take more time to resolve it. Normally, as a group of isolated nodes is bigger, it takes more time to recognize isolated or closed loops. The node addition at 12 h and 18 h also temporally decreases the connectivity since the denominator, the number of nodes that are awake, N awake increases. However, in the proposed scheme the added nodes quickly repair the damaged connectivity by building a new connection with the isolated nodes or by rebuilding the existing connection so that the paths to the sink become shorter. Thus, the recovery of connection is very quick. Meanwhile, both Seaweb and S 13 recover the connectivity only when the network is reorganized at 24 h, not being capable of dealing with the incidents of loss or addition of nodes. Even at the network reorganization, the recovery of Seaweb and S 13 remains below 90%. When we add bit errors that reflects the harsh underwater channel condition, as well as packet collisions (Figure 12b), SOUNET's connectivity fluctuates with time because nodes continuously change their parent node. On the other hand, performances of S 13 and Seaweb decreases considerably. For Seaweb, in particular, the initial connectivity at 0h and 24h suffers a significantly large drop (compared with Figure 12a) since many control packets for network initialization are lost. SOUNET clearly outperforms the others and it highlights SOUNET's robustness to the unreliable and peculiar characteristics of underwater channel.

Packet Delivery Ratio
The packet delivery ratio (PDR) of a node i is defined by: where D i sent and D i delivered are the numbers of DATA packets sent by node i and numbers of DATA packets delivered to the sink, respectively. Figure 13 visualizes ρ i by coloring in a way that the circles denoting the coverage of individual nodes become darker with higher PDR. It is shown that SOUNET has darker ρ i over the whole area while Seaweb and S 13 have dark regions only near the sink. This is because descendants of the lost nodes (normally located at the outer region of the network) keep sending DATA packets even though their lost parents are not able to relay them toward the sink. Rather, the packets cause more collisions to neighbors. On the other hand, SOUNET not only maintains high connectivity even at the edge of the network but also reduces unnecessary DATA transmission by forcing the isolated nodes to sleep. incidents of loss or addition of nodes. Even at the network reorganization, the recovery of Seaweb and S 13 remains below 90%. When we add bit errors that reflects the harsh underwater channel condition, as well as packet collisions (Figure 12b), SOUNET's connectivity fluctuates with time because nodes continuously change their parent node. On the other hand, performances of S 13 and Seaweb decreases considerably. For Seaweb, in particular, the initial connectivity at 0h and 24h suffers a significantly large drop (compared with Figure 12a) since many control packets for network initialization are lost. SOUNET clearly outperforms the others and it highlights SOUNET's robustness to the unreliable and peculiar characteristics of underwater channel.

Packet Delivery Ratio
The packet delivery ratio (PDR) of a node i is defined by: where D sent i and D delivered i are the numbers of DATA packets sent by node i and numbers of DATA packets delivered to the sink, respectively. Figure 13 visualizes ρ i by coloring in a way that the circles denoting the coverage of individual nodes become darker with higher PDR. It is shown that SOUNET has darker ρ i over the whole area while Seaweb and S 13 have dark regions only near the sink. This is because descendants of the lost nodes (normally located at the outer region of the network) keep sending DATA packets even though their lost parents are not able to relay them toward the sink. Rather, the packets cause more collisions to neighbors. On the other hand, SOUNET not only maintains high connectivity even at the edge of the network but also reduces unnecessary DATA transmission by forcing the isolated nodes to sleep.   Figure 14 shows the average and standard deviation (SD) of ρ i , which are denoted by μ ρ and σ ρ , respectively, with varying λ. For each value of λ, the corresponding values of μ ρ and σ ρ are obtained by running the whole simulation scenario of Figure 9. SOUNET shows better performance in terms of both μ ρ and σ ρ . That is, larger number of packets are successfully delivered to the sink and packets are more evenly collected from the entire network. That is because the SOUNET maintains high connectivity by detouring even when unexpected link holes occur. As λ increases, the funneling effect [35] dominantly appears and thus PDR averages of the all schemes become undistinguishable near 10%. On the other hand, σ ρ of SOUNET, which is quite small under low traffic conditions, becomes larger as λ increases since some nodes selectively have larger collisions compared to others and then becomes smaller again as λ increases further since more nodes commonly experience the collisions.  Figure 14 shows the average and standard deviation (SD) of ρ i , which are denoted by µ ρ and σ ρ , respectively, with varying λ. For each value of λ, the corresponding values of µ ρ and σ ρ are obtained by running the whole simulation scenario of Figure 9. SOUNET shows better performance in terms of both µ ρ and σ ρ . That is, larger number of packets are successfully delivered to the sink and packets are more evenly collected from the entire network. That is because the SOUNET maintains high connectivity by detouring even when unexpected link holes occur. As λ increases, the funneling effect [35] dominantly appears and thus PDR averages of the all schemes become undistinguishable near 10%. On the other hand, σ ρ of SOUNET, which is quite small under low traffic conditions, becomes larger as λ increases since some nodes selectively have larger collisions compared to others and then becomes smaller again as λ increases further since more nodes commonly experience the collisions.  Figure 15 shows the total energy consumption for transmission and reception of all kinds of packets. The energy consumed during sleeping and CPU processing is ignored. As λ increases, the energy consumption increases since more DATA packets attempt transmission. However, comparing to Seaweb and S 13 where the isolated nodes keep trying to send DATA and end up exhausting battery, SOUNET can save considerable energy even at high traffic loads by letting the nodes recognize any possible isolation by themselves and sleep to save energy.

Signaling Overhead
HELLO packet flooding is a common method used for initializing a network and SOUNET and S 13 apply this method. As the network size increases, the number of HELLO packets transmitted by nodes also grows, thus increasing the necessary signaling overhead. In our simulation, 49 HELLO packets are transmitted during initialization (in the case of SOUNET andS 13 ). On the other hand, the other comparing scheme, Seaweb, uses the breadth-first search algorithm instead of the HELLO flooding. This leads to higher number of signaling overhead; for example, in total about 900 packets were obtained from our simulation. During the maintenance phase, SOUNET adapts to the varying environment with the help of the overhearing packets. Therefore, no additional signaling is required and no large overhead is incurred during maintenance. S 13 and Seaweb do not have maintenance  Figure 15 shows the total energy consumption for transmission and reception of all kinds of packets. The energy consumed during sleeping and CPU processing is ignored. As λ increases, the energy consumption increases since more DATA packets attempt transmission. However, comparing to Seaweb and S 13 where the isolated nodes keep trying to send DATA and end up exhausting battery, SOUNET can save considerable energy even at high traffic loads by letting the nodes recognize any possible isolation by themselves and sleep to save energy.  Figure 15 shows the total energy consumption for transmission and reception of all kinds of packets. The energy consumed during sleeping and CPU processing is ignored. As λ increases, the energy consumption increases since more DATA packets attempt transmission. However, comparing to Seaweb and S 13 where the isolated nodes keep trying to send DATA and end up exhausting battery, SOUNET can save considerable energy even at high traffic loads by letting the nodes recognize any possible isolation by themselves and sleep to save energy.

Signaling Overhead
HELLO packet flooding is a common method used for initializing a network and SOUNET and S 13 apply this method. As the network size increases, the number of HELLO packets transmitted by nodes also grows, thus increasing the necessary signaling overhead. In our simulation, 49 HELLO packets are transmitted during initialization (in the case of SOUNET andS 13 ). On the other hand, the other comparing scheme, Seaweb, uses the breadth-first search algorithm instead of the HELLO flooding. This leads to higher number of signaling overhead; for example, in total about 900 packets were obtained from our simulation. During the maintenance phase, SOUNET adapts to the varying environment with the help of the overhearing packets. Therefore, no additional signaling is required and no large overhead is incurred during maintenance. S 13 Figure 15. Energy consumption.

Signaling Overhead
HELLO packet flooding is a common method used for initializing a network and SOUNET and S 13 apply this method. As the network size increases, the number of HELLO packets transmitted by nodes also grows, thus increasing the necessary signaling overhead. In our simulation, 49 HELLO packets are transmitted during initialization (in the case of SOUNET and S 13 ). On the other hand, the other comparing scheme, Seaweb, uses the breadth-first search algorithm instead of the HELLO flooding. This leads to higher number of signaling overhead; for example, in total about 900 packets were obtained from our simulation. During the maintenance phase, SOUNET adapts to the varying environment with the help of the overhearing packets. Therefore, no additional signaling is required and no large overhead is incurred during maintenance. S 13 and Seaweb do not have maintenance phase.

Experimental Results
The underwater experiment on SOUNET was performed on 27 May, 2015 at the Gyeongcheon Reservoir in Mungyeong City, Korea. Figures 16 and 17 show the sound speed profile and channel impulse responses we measured at the Gyeongcheon Reservoir. The depth of water measured about 10-40 m and bottom of the reservoir was mud.

Experimental Results
The underwater experiment on SOUNET was performed on 27 May, 2015 at the Gyeongcheon Reservoir in Mungyeong City, Korea. Figures 16 and 17 show the sound speed profile and channel impulse responses we measured at the Gyeongcheon Reservoir. The depth of water measured about 10-40 m and bottom of the reservoir was mud. Due to limited budget, only seven nodes, including one sink, were deployed, each consisting of an underwater modem, an RF antenna, a control box, a buoy, and an anchor as shown in Figure 18a. The control box contains a DSP board implemented by ATmega2560 to control the underwater modems. In addition, the DSP board reports every packet exchange between the nodes underwater to an offshore central station through RF communication. Then the central station implemented by a notebook computer shows the events through the Windows GUI program we developed. For the underwater modem, the model ATM-885 (9-14 kHz) manufactured by Teledyne Benthos was used. The buoy was used to carry the control box on the water surface as well as to denote the node location. Anchors were used to hold the nodes at a static position.

Experimental Results
The underwater experiment on SOUNET was performed on 27 May, 2015 at the Gyeongcheon Reservoir in Mungyeong City, Korea. Figures 16 and 17 show the sound speed profile and channel impulse responses we measured at the Gyeongcheon Reservoir. The depth of water measured about 10-40 m and bottom of the reservoir was mud. Due to limited budget, only seven nodes, including one sink, were deployed, each consisting of an underwater modem, an RF antenna, a control box, a buoy, and an anchor as shown in Figure 18a. The control box contains a DSP board implemented by ATmega2560 to control the underwater modems. In addition, the DSP board reports every packet exchange between the nodes underwater to an offshore central station through RF communication. Then the central station implemented by a notebook computer shows the events through the Windows GUI program we developed. For the underwater modem, the model ATM-885 (9-14 kHz) manufactured by Teledyne Benthos was used. The buoy was used to carry the control box on the water surface as well as to denote the node location. Anchors were used to hold the nodes at a static position. Due to limited budget, only seven nodes, including one sink, were deployed, each consisting of an underwater modem, an RF antenna, a control box, a buoy, and an anchor as shown in Figure 18a. The control box contains a DSP board implemented by ATmega2560 to control the underwater modems. In addition, the DSP board reports every packet exchange between the nodes underwater to an offshore central station through RF communication. Then the central station implemented by a notebook computer shows the events through the Windows GUI program we developed. For the underwater modem, the model ATM-885 (9-14 kHz) manufactured by Teledyne Benthos was used. The buoy was used to carry the control box on the water surface as well as to denote the node location. Anchors were used to hold the nodes at a static position.  Figure 19 shows the changes of node connection in a self-organizing manner according to the events we scheduled, which the control station displays. Node 1 plays the part of sink. Initially, the connections are built up by means of HELLO flooding (Figure 19a). Since node 4 is blocked by an underwater mound and thus cannot hear from nodes 1, 2, and 3, it chooses node 5 as its parent. Node 6 that is connected to node 7 at the beginning updates the connection to node 2 upon overhearing node 2 to reduce the number of hops to the sink (Figure 19b). After that, we intentionally turned off node 5 to emulate a link hole between nodes 4 and 5 (Figure 19c). Soon after that, node 4 discovers the new parent, node 7 and retains the connection. Then we turned on node 5 again to emulate a node addition. The newly added node 5 temporarily tries to connect to node 4 ( Figure 19d), but shortly recognizes a better possible connection and then tries to rebuild the connection. Finally, the network architecture returns to the beginning of Figure 19a.   Figure 19 shows the changes of node connection in a self-organizing manner according to the events we scheduled, which the control station displays. Node 1 plays the part of sink. Initially, the connections are built up by means of HELLO flooding (Figure 19a). Since node 4 is blocked by an underwater mound and thus cannot hear from nodes 1, 2, and 3, it chooses node 5 as its parent. Node 6 that is connected to node 7 at the beginning updates the connection to node 2 upon overhearing node 2 to reduce the number of hops to the sink (Figure 19b). After that, we intentionally turned off node 5 to emulate a link hole between nodes 4 and 5 (Figure 19c). Soon after that, node 4 discovers the new parent, node 7 and retains the connection. Then we turned on node 5 again to emulate a node addition. The newly added node 5 temporarily tries to connect to node 4 ( Figure 19d), but shortly recognizes a better possible connection and then tries to rebuild the connection. Finally, the network architecture returns to the beginning of Figure 19a.  Figure 19 shows the changes of node connection in a self-organizing manner according to the events we scheduled, which the control station displays. Node 1 plays the part of sink. Initially, the connections are built up by means of HELLO flooding (Figure 19a). Since node 4 is blocked by an underwater mound and thus cannot hear from nodes 1, 2, and 3, it chooses node 5 as its parent. Node 6 that is connected to node 7 at the beginning updates the connection to node 2 upon overhearing node 2 to reduce the number of hops to the sink (Figure 19b). After that, we intentionally turned off node 5 to emulate a link hole between nodes 4 and 5 (Figure 19c). Soon after that, node 4 discovers the new parent, node 7 and retains the connection. Then we turned on node 5 again to emulate a node addition. The newly added node 5 temporarily tries to connect to node 4 ( Figure 19d), but shortly recognizes a better possible connection and then tries to rebuild the connection. Finally, the network architecture returns to the beginning of Figure 19a.

Conclusions
We have proposed a new self-organized underwater sensor network, SOUNET, which addresses many practical issues caused by the unexpected loss or addition of sensor nodes. Unlike the previous works where manual reconfiguration or periodic network reorganization is required to handle such issues, SOUNET allows the nodes to recognize the loss or addition of neighbors and then to rebuild the connections or detour to the sink without any centralized control. Newly added nodes are also able to join the network immediately only by overhearing packets exchanged between neighbors. In addition, SOUNET resolves the troubles such as isolation and closed loop that may occur during network repairing in a self-healing manner. Moreover, by allowing the nodes that recognize isolation to sleep, we can considerably save energy. Simulation results showed that SOUNET outperforms other previous schemes in terms of network connectivity, PDR, and energy consumption. In future work we plan to perform additional underwater experiments for verifying the performance of SOUNET further and to study how to determine the existence of closed loops implicitly based on machine learning techniques, instead of explicit packet exchanges.