# A Survey on Adaptive Data Rate Optimization in LoRaWAN: Recent Solutions and Major Challenges
## 2 Technology Overview  
LoRaWAN protocol was first released in 2015 by the LoRa Alliance. The LoRaWAN functions in an unlicensed sub-gigahertz ISM band (863-870 MHz band in Europe and 902-928 MHz in USA). It uses the 125 KHz, 250 KHz and 500 KHz bandwidth and transmits payloads of up to 250 Bytes over 5-15 km. The system consumes low power and can last up to five to ten years in battery life [8; 9]. LoRa, represents \"Long-Range\", a long-range wireless communications technology, endorsed by the LoRa Alliance. The main objective of this technology is to be functional in long lasting battery-operated end nodes, where energy efficiency is utmost priority. LoRa consists of two distinct layers, namely a physical layer that uses the Chirp Spread Spectrum (CSS) radio modulation system and a MAC layer protocol known as LoRaWAN. However, the LoRa communication system furthermore denotes a particular access network architecture [10]. LoRaWAN is constructed to optimize deployment cost, capacity, range, and battery lifetime in LPWANs. LoRa, the physical layer or modulation employed to generate the long-range wireless connection, provides multiple transmission parameters. These parameters are BW, SF, TP and CR. Varying these parameters affects network performance. The LoRa network comprises five main components: the end nodes also known as end devices, the gateway, the NS, the Join Server (JS) and application servers connected in a star topology architecture. The LoRa end node contains a wireless transceiver and sensor nodes that transmit data to multiple gateways in its vicinity using LoRa radio frequency (RF) modulation. Gateways are powered by the mains and have internet connectivity. They consist of a radio component with a transmitter and a microprocessor for data processing. Every gateway in the network sends the received data packet to the cloud-based NS which successively directs the packet to the appropriate application server. If a network has multiple gateways, it is possible for all the gateways to receive data from the same end node. Gateways can concurrently listen to several frequencies in every SF. Figure 1 shows the LoRaWAN architecture. When an end node forwards a data packet to the gateway, it is known as an UL and when the gateway forwards a data packet to the end node, it is called a Downlink (DL). End nodes broadcast their data packets to every gateway in the vicinity and the gateways transmit the data to the NS. The NS sends the data package to the correct application server where the end-user can process the data. The NS receives the response from the application server and establishes which gateway will send the message back to the end nodes. Two types of messages can be transmitted at any given time in any LoRaWAN operation. These are unconfirmed messages, where the end nodes do not request a response from the NS, and confirmed messages which request a response. For the end nodes to be deemed active entities, they are required to first connect to the network and be allocated a series of parameters that are essential for operation in a LoRaWAN through the JS. The LoRaWAN network contains two major security elements, the join procedure and message authentication. This guarantees that only authentic and certified end nodes are joined to authentic and bona fide networks. The implementation of end-to-end encryption for application payloads that are exchanged between the end nodes and the application servers is also provided by LoRaWAN as a security measure. LoRaWAN is among a small number of IoT systems that implement end-to-end encryption. The JS is responsible for secure device activation and key storage and management. It indicates to the NS which application server should be connected to the end nodes and executes the encryption key derivations for the network and application session. The network session key of the end node is communicated to the NS, and the application session key to the corresponding application server.