# Routing Protocols for Low Power and Lossy Networks in Internet of Things Applications
## 4 Enhanced Routing Solutions for Internet of Things Networks
### Multicast Communication Support
During BMRF functioning, when a node wants to send a multicast message, it sends the packet both upwards and downwards, except for the root node, which should not be sent upwards, and leaf nodes, which should not be sent downwards. The upward sending is performed using unicast transmission. Otherwise, the downward sending is performed according to the BMRF mode. This behavior is necessary for avoiding duplicated packets. After receiving a multicast message, a node can process it depending on whether the packet was received from above or below. If the message was received from above, the node just should process it if the sender is its preferred parent (checked via MAC address). The node also consults its interest in the message to send it to the upper layer and verifies its routing table to forward the message to its children nodes. If the message was received in broadcast, the node should insert a delay in forwarding it (as in SMRF). This forwarding should be done according to the BMRF mode selected. If the multicast message was received from below and indicated with a unicast MAC address, the node should process the message once it was sent in unicast by a child node. Thus, the receiver node checks its interest in the message and then forwards it in unicast to the children inserted into the multicast group. The node also sends the message upwards, in unicast, if it is not the root. Hence, BMRF allows all network nodes to send and receive multicast messages, regardless of its position in the routing tree. Additionally, BMRF supports dynamic multicast group registration and avoids delivery disorder. A summary of routing solutions for multicast support described in this subsection is presented in Table 2. \begin{table}
\begin{tabular}{p{42.7 pt} p{42.7 pt} p{42.7 pt} p{42.7 pt} p{42.7 pt} p{42.7 pt} p{42.7 pt} p{42.7 pt}} \hline \hline
**Proposal** & **Base Protocol** & **Objectives** & **Description** & **Strengths** & **Weaknesses** & **Target Applications** \\ \hline \hline MPL [67] & - & - Provide multicast data forwarding in LLNs & - Uses the flooding mechanism for the government by the trickle algorithm & - Promotes a high packet delivery ratio due to buffer messages and retransmits it locally when necessary performance reduction & - Can provoke a communication overhead & - Applications that require multicast size, causing a performance reduction & - Can provoke a communication overhead require multicast transmission \\ \hline SMRF [68] & RPL & - Enhance the multicast data forwarding provided by RPL & - Cross-layer approach that optimizes the ContikiMAC for multicast transmission & - Reduces the energy consumption occasioned by the multiple unicast transmission in multicast RPL & - Only allows downward multicast transmission & - Applications that require multicast transmission transmission \\ \hline ESMRF [71] & RPL and SMRF & - Permit both upward and multicast data forwarding in SMRF & - Encapsulates multicast messages and sends them to the root node to perform the forwarding & - Courses the communication by using the root node to allow the proofreading & - Courses the communication by using the root node to allow the proofreading & - Aplications that require multicast transmission \\ \hline BMRF [72] & RPL and SMRF & - Enhances both upward and downward multicast data forwarding in SMRF & - Merges the features of RPL and SMRF to offer different transmission modes used according to the needs & - Can reduce the number of radio transmissions and energy consumption increase the packet delivery ratio & - Display higher memory consumption increases the end-to-end latency & - Applications that require multicast transmission \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Comparison among studied approaches for multicast communication support.