different versions of Wi-Fi) and/or the link-layer rate adaptation; therefore the sender has to
transmit at the lowest common link speed among all receivers. Third, IoT nodes may switch to
sleeping mode from time to time to conserve energy, thus may miss some multicast packets. Lastly,
when nodes are connected through a mesh network, a multicast packet needs to be forwarded over
multiple hops along many paths, potentially waking up many sleeping nodes and overloading the
already-scarce network resource. To get around the difficulties in multicast support, the legacy
protocols have to be redesigned to minimize the use of IP multicast before they can be applied to
constrained IoT environments. When IoT nodes need to send out notifications to multiple
recipients, instead of multicasting the packets, they can buffer those packets temporarily at some
well-known location and wait for the recipients to pull the packets over unicast on-demand (based
on their sleeping schedule).
When they want to make queries to a group, instead of flooding the network with multicast, they
can send the queries to some designated nodes which are preconfigured to answer queries by
collecting the information on a priority. These new approaches replace multicast with on-demand
unicast pulling, to get around the difficulties in supporting multicast and also to accommodate
sleeping nodes. One example of such protocol adaptation is the IPv6 Neighbor Discovery (ND)
optimization for 6LoWPAN [24]. The original IPv6 ND [21] relies on multicast to learn default
gateway routers, resolve neighbor’s IPs to MAC addresses, and perform duplicate address
detection. When adapting ND functionalities to 6LoWPAN, instead of having the routers multicast
Router Advertisements periodically (which will either wake up the sleeping nodes or be missed by
those nodes), the optimized protocol allows the constrained nodes to refresh Router Advertisement
information on demand with Router Solicitation messages.1 Another extension is to maintain a
registry of host addresses on the routers, making the routers capable of answering address
resolution and duplicate address detection requests on behalf of the end hosts, so that the querying
nodes simply send their queries to the default routers via unicast messages.
An alternative solution called MPL, proposed by the IETF roll WG, fundamentally changes the
forwarding semantics of multicast over constrained networks [12]. MPL disseminates multicast
packets across the entire multicast domain through synchronization among MPL forwarders (i.e.,
nodes that participate in MPL) using controlled flooding, without requiring any multicast routing
protocol to maintain the topology information. Every multicast packet is identified by the packet
generator id and a sequence number in order to allow duplication detection. Also, recent packets
are buffered by the MPL forwarders in a sliding-window fashion (i.e., FIFO buffer), which can be
used for retransmission in the future. This new multicast forwarding protocol has been adopted by
the current ZigBee IP specification [2].
2.2 Multi-link subnet
The current subnet model of IPv4 and IPv6 considers two types of Layer-2 networks: multi-access
link, where multiple nodes share the same access medium, and point-to-point link, where there are
exactly two nodes on the same link. Both of them assume that the nodes in the same subnet can
reach each other within one hop. An IoT mesh network, on the other hand, contains a collection