4.2. Pure Data Extraction
Improvement of the data extraction rate (DER) aims to enhance the network throughput. In
[41][20], the authors modeled the uplink nodes’ activity using a mathematical model based on collected experimental data by implementing DER as a new metric for measuring LoRa network performance. The transmitted messages in a LoRa network should be received at the backend system. In other words, each transmitted message must be received by at least one LoRa gateway. Thus, the authors defined the DER metric as the ratio of received to transmitted messages in a defined interval. The obtained ratio of the DER is a function of the node or gateway locations, number, and activity. LoRa exhibits the capture effect since it is a form of frequency modulation. The capture effect happens when two signals with different strengths reach the receiver. If the difference in the signals’ strengths is too small, the receiver will not be able to decode any of the received signals. Thus, the study suggests adding more gateways to enhance the LoRa throughput.
4.3. Network Scalability
A number of studies focused on LoRaWAN network scalability. The scalability challenge of LoRaWAN installations occurs owing to the high number of end device request ACKs and the duty cycle constraint that the gateway must comply with. A lack of scalability may wreak havoc on the current scalability information, which is mostly commercial and assumes the best case scenario. In
[41][20], the authors suggest adding more gateways to enhance LoRa scalability. The authors created a LoRa simulator, dubbed LoRaSim, based on the Python programming language. They terminated the network with a single gateway, which does not scale well with standard transmissions, while networks that automatically adjust the transmission parameters or have several gateways may scale better. The finding of the study is that LoRa network scalability increases if the ToA is minimized by the optimal configuration parameters as well. However, this model associates over-value attenuation in open space for LoRa ‘s signals. It needs to be evaluated on-site, as the majority of the coverage area includes conventional connections, which have been defined as connections to dynamic time links.
5.1. LoRaSIM
5. LoRaWAN Simulation Tools
5.1. LoRaSIM
LoRaSim has been developed based on SimPy as a discreet event simulator using Python to simulate, investigate, and analyze the LoRaWAN network scalability and collision functionality
[41][20]. A radio propagation model is implemented in LoRaSim, depending on the well-known long-distance path loss model. The radio transceiver sensitivity at room temperature concerning various LoRa SF and BW settings is estimated. It also considers many related parameters, such as the thermal noise power across, receiver bandwidth, noise figure, and SNR. Several packages are required for running LoRaSim smoothly, such as matplotlib, SimPy, and NumPy. LoRaSim offers a plotted view of deployments with no graphical interface, as shown in
Figure 96. In contrast, it can show a data plot when users execute graphical code. Many improvements for LoRaSim were proposed to make it multipurpose
[36,40,60,61,62,63][21][22][23][24][25][26] and support the downlink due to the original version supporting only the uplink. Thus, it can test scalability and energy consumption, as well as other performance metrics. Much of the information is seen on the command line and exported to File-Name.dat, which can show its content data using other graphical programs such as Gnuplot, seaborn, Mplot, or others.
Figure 96. LoRaSim network topology deployment.
5.2. NS-3
Ns-3 is an open-source discrete-event network simulator that was initiated in mid-2006
[64,65][27][28] and is still under heavy development now, written in C++ and Python. The ns-3 simulator supports a wide variety of protocols such as Wi-Fi, LTE, IEEE 802.15.4, SigFox, LoRa, and further networks. It also implements IP networking, supporting both simulation and emulation using sockets that aim at academics and research
[66][29]. The ns-3 can be executed with pure C++, and some simulation components can be written with Python. It is modular and can function in graphical and command-line interfaces NetAnim for C++ and PyViz for Python. It also produces Pcap tracks that can be used for debugging. Standard software such as Wireshark
[67][30] can be used to read the trace files for network traffic analysis. The ns-3 simulator offers a practical and well-structured setting with animation support using NetAnim, as shown in
Figure 107.
Figure 107. Ns-3 NetAnim environment.
5.3. FLoRa
A framework for a LoRa (FLoRa) simulator was developed to evaluate the LoRa network’s performance using the ADR mechanism. It proved the effectiveness of the ADR at increasing the PDR with improving energy efficiency. FLoRa is an end-to-end simulation framework for LoRa networks that relies on the OMNeT++ network simulator and also utilizes INET system components
[76][31]. An open-source OMNeT++ library was designed to support the experimentation process for various network protocols. FLoRa code is created by C++, and it enables the development of LoRa networks that support the integration of LoRa nodes, gateways, and network server modules. Application logic can be implemented as separate modules that are linked to a network server. The network server and nodes support dynamic configuration parameters controlled via the ADR and considering collisions and the capture effect. The module includes an accurate modeling of the backhaul network and can simulate multiple gateways. At the end of the simulation, energy consumption statistics can be collected in each node and over the entire network
[77][32].