# Reduced Overhead Routing in Short-Range Low-Power and Lossy Wireless Networks +
## 4 Reduced Overhead Routing Protocol
### Enhanced P2P Routing and Forwarding  
#### 4.1.1 P2P Routing Problem in RPL  
RPL functionality in its different MoPs is shown in Figure 1. Here, our assumption is that the RPL Objective Function (OF) 0 [20] is in use. OF 0 uses shortest hop-count as the routing metric. RPL DODAG construction by exchanging DIO control messages is shown in Figure 1a. Using RPL's OF 0, nodes in the network select their preferred parent, and consequently MP2P routes are constructed. The route construction process followed by RPL's non-storing MoP for P2 MP and P2P data forwarding is shown in Figure 1b. During the route construction process, each node in a network transmits a DAO message to its parent node. Upon receipt of the DAO message, the parent node appends its own information to the message, and transmits the message to its parent. Finally, the DODAG's root receives the DAO message. Using the DAO message, the root stores and maintains a forwarding path for each node in a network. If any node needs to communicate with another node in a network, the node's data packet is transmitted to the root, and using the source routing the root forwards the packet to the destination node. We further elaborate the process with the help of the following scenario: node D needs to transmit data packet to node E; as nodes do not store a forwarding table in the non-storing MoP, node D forwards the data packet to the root (node A), and the root uses source routing to deliver the packet to E. Hence, in this case, the packet needs four transmissions \((D\Rightarrow B\Rightarrow A\Rightarrow C\Rightarrow E)\) regardless of the fact that node D and node E are direct neighbors. Furthermore, there is an additional control overhead as source routing requires additional bits to be transmitted by each node along the path from the root to the destination node. It is well known that wireless transmission and reception consume most of a node's energy. Hence, in this  
Figure 1: Routing Protocol for Low-Lower and Lossy Networks (RPL) Operation with Storing and Non-Storing Modes of Operation (MoPs). scenario RPL consumes more energy than needed as it not only requires extra transmissions, but also incurs extra control overhead due to source routing. P2 MP and P2P route construction in RPL's storing MoP is shown in Figure 1c. It should be noted that Figure 1c demonstrates the functionality of the existing RPL implementations in storing MoP. In storing MoP, each node advertises routes to the nodes in its sub-DODAG, for example, a DAO message by node D for its parent node (B) contains information about its reachability. Afterwards, node B stores a forwarding table entry for node D, B transmits the same information in a DAO message to its parent node (A). In this process, B and A learn a data forwarding path to D. Using the same process, all nodes in a network transmit DAO messages to the root. For P2P forwarding, a node consults its forwarding table, and if the path to the destination node is known, it forwards the packet to the next hop, otherwise the data packet is forwarded to the node's parent. This process continues until a common ancestor or root forwards the packet to the destination node. In our example, if node D needs to communicate with node E, the packet again needs four transmissions (\(D\Rightarrow B\Rightarrow A\Rightarrow C\Rightarrow E\)) regardless of the fact that D and E are direct neighbors. Therefore, data packet forwarding in RPL's storing MoP is also not efficient. In this case, it is also feasible that node E needs to communicate with Node B. Using the stated algorithm, the data packet travels on the following path (\(E\Rightarrow C\Rightarrow A\Rightarrow B\)), despite node B being a direct neighbor of node C. Ideally, node C should directly transmit the packet to node B instead of forwarding it to node A. This can lower the number of transmissions to deliver the packet, hence lower energy consumption and contention in the network.