## 2 State of the Art
A node is able to independently choose its receiving channel switching sequences based on its ID and the current slot number using a pseudo-random generator. A broadcast slot is inserted every \(n\) slots. These common broadcast slots also follow a pseudo-random channel hopping sequence. A sender is thus able to calculate the channel of the receiver. Each node switches its radio transceiver to the receiver channel and starts to send small preamble messages. When the receiver wakes up, it hears a preamble and it acknowledges the sender that it is awake in order to start sending data frames. MuChMAC ensures waking up the receiver and the sender within the same slot using loose global time synchronization and a fixed upper bound on clock drift. MuChMAC is tested using Sentilla JCreate motes in order to evaluate its performance. Authors compare the protocol with X-MAC [15]. Results show that the protocol is energy efficient and improves reliability. On the other hand, the channel allocation is based on a random mechanism that does not take into consideration the channel usage in the neighborhood which might lead to a high collision rate. In [16], authors describe TMCP a centralized Tree-based Multi-Channel Protocol for data collection applications based on CSMA/CA. It uses a fixed channel assignment approach for channel allocation. The whole network is partitioned into multiple sub-trees having the base station (BS) as a common root where each sub-tree is allocated a different channel. TMCP can work with a small number of channels and without the need for time synchronization. It uses a greedy algorithm which decreases the radio interference. TMCP has three components, Channel Detection (CD), Channel Assignment (CA), and Data Communication (DC). CD finds available orthogonal channels. CA partitions the whole network into sub-trees and allocates a different channel to each sub-tree. DC manages the data collection through each sub-tree. TMCP is tested using MicaZ motes and simulated using GloMoSim in order to evaluate its performance. Results show that TMCP improves the throughput while keeping high packet delivery ratio and low latency. On the other hand, TMCP blocks the direct communications between nodes belonging to different sub-trees which is an inconvenient restriction. In addition, communications inside the sub-tree are contention based and use CSMA/CA algorithm. Y-MAC [17] is a TDMA-based multi-channel MAC protocol that aims at reducing latency. Authors adapted a distributed method based on algorithms proposed in LMAC and MMSN. Time slots are assigned to the receivers. Y-MAC uses a slot allocation vector in order to achieve time slot assignment. It allows new nodes to join the network and to assign time slots in a dynamic way. This vector is used for storing information about the slots occupied by the neighbors. This vector is then broadcast to 1-hop neighbors. In order for a node to allocate a free time slot in its 2-hop neighborhood, it executes an \(OR\) operation over all the slot allocation vectors received from its neighbors. If there are many available time slots, one of them is randomly selected; otherwise several nodes should share the same time slot. At the beginning of each time slot, potential senders to the same receiver compete in order to access the medium using a CSMA/CA algorithm. Multiple packets are sent successively on different channels, the receiver and the sender hop to a new channel according to a predetermined sequence. Y-MAC reduces latency by offering the possibility for nodes that were not able to send their traffic to compete in a consecutive slot. All potential senders that have pending frames destined to the same receiver also hop to the same channel and compete again. Y-MAC was implemented using the RTOS operating system on TmoteSky motes. Authors compared Y-MAC with Crankshaft in multi-hop environments. Results show that the duty cycle of Y-MAC is slightly higher than Crankshaft.