# Underwater Electromagnetic Sensor Networks, Part II: Localization and Network Simulations
## 4 Simulation of a Complete U-WSN
### Scenarios under Test
#### 4.3.3 Diffusion Broadcast Transmission (No ACK)  
In this section, we consider nodes transmitting to their neighbors over the same setting displayed by Figure 10. Nevertheless, here, we suppose that the nodes broadcast only one packet for all of its neighbors, instead of transmitting one packet per neighbor (this is achieved in Castalia by using the macro BROADCAST_NETWORK_ADDRESS as the destination address).  
We study two cases: synchronous and asynchronous transmissions.  
1. Synchronous Transmissions: Every node transmits during its own time slot in a time-division-multiple-access (TDMA) manner. Hence, only one node is transmitting at a time, meaning that there is neither interference, nor collisions. The packet loss is only due to channel noise. In order to achieve this TDMA scheme, we have extended the Castalia default application connectivityMap, setting the starting transmission time for node \(i\) as follows: \[T_{i}^{\text{syn}}=Pt_{\text{p}}i\] (13) where \(t_{\text{p}}\) is the time between consecutive packets from the same node, \(P\) is the number of packets (in a real algorithm, this should be one, but here, we set \(P=100\) to average the channel noise  
Figure 11: Received packets vs. unicast period for contention periods of 30, 150 and 300 s.  
when estimating the received packet probability) and \(i\in\{1,\ldots,N\}\) is the node identity. Thus, the time that it takes to transmit all packets of all \(N\) nodes in the network is given by: \[T_{\text{net}}^{\text{syn}}=Pt_{\text{P}}N\] (14) Simulations show that we can achieve 99.99% of successfully-received packets by waiting \(t_{\text{P}}=700\,\text{ms}\) between consecutive packets. This is a relatively high percentage with a minimum number of transmitted packets (neither ACK, nor retries are necessary), but the cost of achieving accurate TDMA synchronization should be taken into account when considering this option.
2. Asynchronous Transmissions: By asynchronous transmission, we mean that there is no coordination among nodes. Hence, the packet loss can be due to noise and collisions (i.e., interference). We have parametrized asynchronous transmissions by adding a term \(\delta\in[0,1]\) to (13), so that the starting time for node \(i\) becomes: \[T_{i}^{\text{as}}=\delta\cdot T_{i}^{\text{syn}}\] (15) On the one hand, when \(\delta=0\), we have \(T_{i}^{\text{as}}=0\) for all \(i=1,\ldots,N\), so that all nodes transmit at the same time (with the exception of very small random clock drifts that can be dismissed for short simulation times). This makes all transmissions collide since no node can receive any packet while it is busy with its own transmission. On the other hand, when \(\delta=1\), we have \(T_{i}^{\text{as}}=T_{i}^{\text{syn}}\), i.e., we recover the same result as for the perfect synchronization case studied in Section 4.3.3 (1. Synchronous Transmissions). The range \(0<\delta<1\) aims to model the natural level of asynchrony that happens when the nodes transmit at random intervals or when they are initialized at random times. Figure 12 shows the average percentage of received packets vs. the overlapping parameter \(\delta\).  
Since the probability of all nodes choosing the same slot is low, we can expect that the nodes will tend to spread their starting times uniformly (i.e., \(\delta\geq 0.5\)); we conclude that asynchronous broadcast transmission is an efficient scheme that allows both a quick packet rate (e.g., \(t_{\text{P}}=700\,\text{ms}\)) and minimum energy consumption (nodes transmit the same packet to all of their neighbors).