# LoRaWAN Communication Protocols: A Comprehensive Survey under an Energy Efficiency Perspective
## 3 Communication Protocols
### Routing Protocols
#### 3.3.2 Non-Clustering Approaches (NCA)  
Tree Topology: A time slotted channel hopping (TSCH) solution was presented in [73]. Specifically, TSCH-over-LoRa is a long range and reliable IPv6 multi-hop approach, which aims at combining the reliability of TSCH MAC protocol with the long-range capabilities of LoRa. Synchronization in TSCH is performed through sending out enhanced beacons (EB). Every member of the TSCH network sends out Ebs on a regular interval. Nodes, however, also synchronize whenever they receive an ACK from their parent. Concerning the routing process an RPL-lite was used, in order to ensure that routing messages are sent less frequently. Additionally, they simulated two different scenarios in order to evaluate their protocol. In the first scenario, the resilience of TSCH-over-LoRa to interference via channel hopping, by considering a node constantly sending out signals on a channel in order to make this channel unusable, was demonstrated. The objective was to determine whether the full system is capable of avoiding the interference by retransmitting messages on different, usable channels. In the second scenario, the authors measured the reliability, in terms of PDR, and the radio duty cycle of a multi-hop experiment, using three nodes: a hop, a leaf, and a root. The hop node was forwarding the packets of the leaf node in addition to the locally generated ones to the root node. To sum up, both experiments showed an increased reliability with a PDR close to 100%, while at the same time the system respectedthe 1% transmit radio duty cycle policy even at the hop node. However, the sample set was too small; hence, additional experiments need to be performed in large scale scenarios. In [74], the authors presented LoRaWAN mesh, which is a routing protocol in a wireless mesh network extending LoRaWAN physical layer. In this approach, the rooted tree is created in the GW, which has a data structure including the list of nodes joined to its network. Firstly, the GW broadcasts a beacon message, every minute, inviting nodes to join. Then, nearby nodes can join the network by sending a JOIN message and set the GW as its parent. Once the GW has at least one child, it stops sending beacons and begins collecting data from its children. When the node begins to send data, these data packets become beacons for other nodes that are not covered by the range of the GW. The nodes, which receive this signal, are able to join the network by sending, respectively, a JOIN message but in this case, their parent is the GW's child. Every node selects the suitable parent for it based both on RSSI value and hop count to the GW; thus, resulting in better reliability. Note that, this process is repeated until the entire network is constructed. However, this approach may result in additional delays, as nodes cannot send data arbitrarily, but also prevents collisions. Another cross-layer multi-hop tree routing protocol for LoRaWAN, named JMAC, was reported in [75], yielding to low TP consumption and network coverage extension by using end-devices as relay devices. In this approach, the GW after installation has two modes: (i) receiving and (ii) sending. In receiving mode, the GW is ready to handle uplink messages from sensors. In sending mode, the GW waits to send the next scheduled beacon frame or sends ACK message for uplink messages verification. Thus, if any message is received, it will be used to update the network topology, by discovering its direct neighbors. On the other hand, end-devices also operate in two phases: (i) receive mode, to receive at least one data packet, and (ii) join the network mode. After joining, the nodes periodically announce their information through beacon message controlled by a timeout for network topology construction. Once the network is fully constructed, every node first opens a window to receive data from its child. If the data are received, the node puts it into a queue and sends an ACK message to its child.