## 6 DIS-Trickle: A Mechanism for Accelerating Network Convergence
### DIS-Trickle Design  
DIS-Trickle comprises two components: an initial delay and a scheduling algorithm. This subsection describes in detail both components. For nodes that may send DIS messages, it is beneficial to introduce an initial delay before the first DIS message transmission. This is motivated by the fact that DIO messages need time to propagate through the network, and thus nodes at a multihop distance from the root node must have the opportunity of receiving DIO messages before sending premature, and unnecessary, DIS messages. The value of the initial delay has to be set carefully on the basis of the network size and density. Such an initial delay is also used in the COOJA/ContikiRPL implementation, whereby it is set by default to 5 s [28]. However, 5 s may be too large a value for the characteristics of many networks, including the ones considered in this paper. Based on simulation results that are discussed later in Section 6.2, we set the initial delay to 200 ms, which yields good performance in different network size and density scenarios, in terms of network convergence time, number of DIS and DIO messages transmitted, and collisions. After the initial delay, in network zones where nodes have not yet received any DIO message, these nodes may attempt to transmit DIS messages at the same time, which may yield an _initial DIS storm_ and a high number of collisions. On the other hand, it is not necessary that all non-DODAG neighbors of a DODAG node send a DIS message to trigger a DIO message transmission from the latter, since all these neighbors have the opportunity of receiving a DIO message sent by the DODAG node. In order to solve the _initial DIS storm_ problem, as well as to limit unnecessary DIS message transmissions, we propose applying the Trickle algorithm to schedule the transmission of DIS messages. Since the main purpose of using DIS messages is the decrease of nodes' DODAG join time, we disable the Trickle interval size doubling mechanism in DIS-Trickle. On the other hand, in order to decrease the number of DIS message transmissions and the probability of message collisions while sending DIS messages, we set the redundancy constant of DIS-Trickle, \(k_{\textit{DIS}}\), to 1. Another important parameter of DIS-Trickle is the interval size, denoted \(I_{\textit{DIS}}\), which defines the time between consecutive DIS message transmissions. The value of this parameter should be specified on the basis of the DIS response time, defined as the time between the transmission of a DIS message and the corresponding DIO reply from a DODAG member. On the other hand, the time between consecutive DIS messages should not be unnecessarily large. In order to assist the determination of \(I_{\textit{DIS}}\), we next calculate the minimum and maximum DIS response time, assuming that nodes use a 2.4 GHz band IEEE 802.15.4 interface in the beaconles mode (see Figure 14). Let node A, which is interested in joining a DODAG, start the procedure for transmitting a DIS message at time \(t_{I}\). Let node B be already a DODAG member. The physical transmission of the DIS message starts after the backoff period and the CCA. We should note that, by default, the minimum and maximum backoff times in IEEE 802.15.4 are 0 ms and 16.96 ms, respectively. On the other hand, the time needed for performing the CCA on Telos B nodes running TinyOS is 3 ms. The physical layer of node A starts to send the DIS message at time \(t_{2}\), and it takes 1.34 ms (denoted by \(T_{\alpha\_DIS}\) in Figure 14) to transmit this message. On the other hand, node B, which has started to receive this DIS message at time \(t_{2}\), finishes receiving the DIS message at time \(t_{3}\), it immediately resets its Trickle timer to \(I_{min}\) (which is set to 8 ms by default) and schedules itself to transmit a DIO message in the second half of the Trickle interval (of size \(I_{min}\)).