A Review of Multi-Channel Medium Access Control Protocols for Wireless Sensor Networks

—Wireless Sensor Networks (WSNs) are witnessing a momentum spread especially with the growth of the Internet of Things (IoT) paradigm. Indeed, WSNs are considered as the main enabling infrastructure for IoT networks. Nowadays, the emerging WSNs applications require not only long network lifespan but also considerably high data rate. Consequently, conceiving Multichannel MAC protocols that save the scarce energy budget of sensor nodes while providing high network throughput is crucial for the emerging WSNs applications. In this paper, a thorough review of recent multichannel MAC protocols is provided along with a classiﬁcation framework to deeply understand the design aspects for each protocol.


I. INTRODUCTION
N OWADAYS, Wireless Sensor Networks (WSNs) are emerging in various new applications related to novel areas such as smart cities, smart healthcare, and smart homes. WSN is defined as a wireless network that consists of a large number of sensor nodes ranging from hundreds to thousands nodes. These sensor nodes are equipped with a 16bit processor, a memory with limited capacity (in order of kilobytes), a limited power resource (a rechargeable/replaceable battery not exceeding 2500 mAh), and a single half-duplex radio transceiver with a maximum data rate of 250 kbps. These sensor nodes are usually randomly scattered in hardly accessible places, which makes them difficult to recharge or replace. In WSNs, nodes are in charge of generating and sending reports to a collection point called the sink for further processing. Traditionally, energy efficiency was the main challenge that should be carefully considered in the design of WSN protocols since sensors are powered with limited energy budget and the applications' requirements were not demanding high throughput or timely data delivery [1] [2]. That's why designing energy efficient MAC protocol used to attract a momentum interest within the research community as it greatly influences the energy efficiency of sensor nodes since it controls the access to the shared medium [3]. However, nowadays besides the energy efficiency challenge, achieving a high network throughput becomes an essential requirement for recent WSN applications. In fact, WSNs have low bandwidth, unlike ad hoc wireless networks, which can achieve data rates in order of Mbps. According to WSNs, for instance, the maximum achievable data rate for IEEE 802.15.4 standard is supposes that the receiver is not reachable. This problem is also called the deafness problem [10]. Figure 1 demonstrates the missing receiver problem. As shown in Figure 1, node A try to communicate with node B by sending control packet on channel 1, while node B is not listening since it is communicating with node C on channel 2. The hidden node problem occurs when node C that is in the transmission range of B, but not in the transmission range of A misses the control packets exchanged between A and B. Control packets usually in the form of a request to send and clear to send (RTS/CTS) messages. Node C misses the control packets between A and B on one channel because it was busy at that time with another data transmission on another channel. Therefore, a collision might happen at node B when node C tries to send data packet on the channel that was previously chosen by node A and B [11]. Figure 2 illustrates the hidden node problem. The switching between the available channels creates an overhead in terms of delay and energy consumption. The switching overhead mainly depends on the channel assignment mechanism that is used by the MAC protocol, whether it is static, dynamic, or semi-dynamic [9]. For instance, in case of dynamic channel assignment mechanism, a sender node has to find out the available data channel before every data packet transmission which may consumes energy and time as it is mainly done through negotiation with neighboring nodes.

D. Joining the network
When a new node join the network, it may arise an energy overhead. Indeed, the newly joining node is susceptible to disrupt the current channel assignment and coordination among the already existing nodes. Consequently, in order to correctly join the network, it needs to examine all the available channels in order to find a suitable channel for future transmission. This will result in longer initialization phase and further energy consumption [10].

E. Network partitions
A network partition problem happens in a cluster based multichannel scenario when two neighbor nodes are assigned different data channels for communication since they reside in different clusters. Consequently, the communication has to undergo an inter-cluster path instead of the direct onehop path, which is considered as network partition. That's why in cluster-based multichannel protocols, a node must carefully select its cluster during the initialization phase to avoid network partition problem [1] [10] that leads to further energy consumption and longer end-to-end delay.
In fact, multichannel medium access control (MAC) protocols for WSNs use different approaches and design aspects in order to deal with the aforementioned challenges. Consequently, classifying them is a challenging task. Section 2 proposes a classification framework for multichannel MAC protocols in WSNs to deeply understand the design aspects for each protocol. More precisely, section 2 will be only restricted to present the classification methodology and the design aspects of multichannel MAC protocols while their detailed descriptions will be provided in section 3.

II. MULTICHANNEL MAC PROTOCOL CLASSIFICATION
FOR WSNS In this section, a classification for recent multichannel MAC protocols in WSNs is proposed, which will help understanding the main characteristics for each protocol. Note that, the complete description of each protocol is provided in section 3. Indeed, there are various classifications for multichannel MAC protocols proposed in the literature [10] [12] [2] [1] [9]. In [10], the author classifies MAC protocols based on the main characteristics which include the used coordination mechanisms and the adopted communication model. Authors in [12] review some multichannel MAC protocols in more details without using a specific classification, but they provide a table summarizing the main characteristics of each one of them. The authors in [2] concentrate on the channel assignment techniques that are used in WSNs and compare them with the ones that are used in wireless mesh and cellular networks. In [1], the authors classify the characteristics of the reviewed multichannel MAC protocols based on whether the MAC protocol is fulfilling the services provided by each layer, besides the channel assignment and medium access mechanisms. Specifically, they classify the features according to three criteria; namely i) the upper-layer interaction, such as whether the MAC protocol supports broadcast transmission; ii) MAC layer coordination, such as whether the MAC protocol needs synchronization and iii); the physical layer management such as how the channels are added and selected from the Preferred Channel List (PCL). In [9] the authors classify the reviewed multichannel MAC protocols into highly-robust, medium-robust, and least-robust protocols based on a metric they call it Grand-Total-of-Design-Issues. ). Based on the metric, when the protocol achieves 9 or more it is considered highly robust, between 5 to 8 it is a medium robust, and 4 or less it is least robust protocol.
Our classification, as shown in Figure 3, is based on three main design aspects that affect the performance of multichannel MAC protocols. The first one is how frequent a node is assigned to a given channel. It is called multichannel assignment method. Inspired by [2], the second design aspect deals with the used criteria to select a channel among all the available ones. We called it the channel selection method. The third and last one is how a node accesses the channel. It is called the channel access method. The following subsections describe these categories in more details.

A. Channel Assignment methods
In this subsection, we describe an important design aspect that greatly impacts the performance of a multichannel MAC protocol, which is how frequent a node is assigned to a given channel. If the channel assignment is achieved once during the network initialization, in this case, it is called static. However, if the channel assignment was static during the network startup but with a possibility of channel switching, in this case it is called semi-dynamic. Finally, if the channel allocation is achieved before every data transmission, then in this case it is called dynamic.
1) Static channel assignment: In static channel assignment, each node is assigned a specific channel during the initialization phase of the network, and that channel is used permanently during the network lifetime. For very infrequent circumstances, the channel may be changed if high interference rate was reported and the newly assigned channel will last for long period especially compared to the switching time. The static channel assignment is preferable for applications that have known traffic pattern and timely data delivery is the main application objective. The advantage of static channel assignment is the low overhead that improves the protocol energy efficiency. However, static channel assignment may lead to network partitioning, where adjacent nodes cannot communicate since they are on different channels [1] [2]. Specifically, in some cluster based channel assignment protocols [13] [14], a cluster of nodes will be assigned, during the network deployment, a given data channel for communication among the nodes in the same cluster. Consequently, two adjacent nodes may be prevented from communication if they reside in different clusters, which lead to network portioning. Furthermore, the static channel assignment makes the network inflexible to changing conditions such as the traffic or the network topology [10]. Enhanced HMC-MAC [13] and MCCT [14] are examples of multichannel MAC protocols that use static channel assignment, where the network topology is cluster tree and each cluster is assigned a specific channel.
2) Semi-dynamic channel assignment: In semi-dynamic channel assignment, each node is statically assigned a channel during the network initialization with the possibility of channel switching in response to changes in network conditions. Although semi-dynamic channel assignment is more flexible than the static assignment because it avoids the network partitioning problem that arises in the static channel assignment, however it requires efficient coordination between the sender and the receiver nodes to allow them to meet on specific channel at the same time. This coordination may result in extra overhead and energy consumption. Furthermore, semidynamic channel assignment may result in the multichannel hidden node problem and the missing receiver problem due to channel switching [1] [10]. Since this approach is more flexible to cope with traffic changes and interference than the static, then semi-dynamic channel assignment is more preferable for timely-sensitive applications that require high throughput [2]. RMCA [15], WAVE [16], RC-MAC [17], MCAS-MAC [7], and McMAC [18] are examples of multichannel MAC protocols that use semi-dynamic channel assignment.
3) Dynamic channel assignment: a) Common Control Channel (CCC): In this type of multichannel MAC protocols, a node will have a dedicated common control channel through which it will achieve handshaking with an intended receiver. Two possible cases may arise in this kind of multichannel MAC protocols: either every node has a dedicated transceiver as a common control channel and another one for data transmission, or it has a single transceiver where multiple data channels are created in addition to a unique common control channel. Note that having a dedicated transceiver as common control channel will allow nodes to listen to all ongoing handshaking while communicating data as such the missing receiver problem as well as the hidden node problem are completely and absolutely mitigated. Moreover, such configuration will also prevent a node selecting a busy data channel, which can reduce the collision probability. However, using CCC with two transceivers requires that sensor nodes must be equipped with two transceivers, which is costly compared to the singletransceiver sensor node. On the other hand, using CCC with single-transceiver node may result in hidden node or missing receiver problem as nodes may lose control of the ongoing handshaking on the common control channel when they are busy communicating on a data channel.
The main advantages of using a common control channel are the simple implementation and no harsh synchronization between nodes is required, as the agreements always take place on the same channel. However, using a common control channel is costly and inefficient when there are a small number of channels. For example, if there are only three channels for Fig. 3. The classification framework of multichannel MAC protocols in WSNs communication, one-third of the available channels will be used for controlling purposes. Moreover, the way to access the control channel and the number of available data channels are the main criteria that affect the efficiency of these protocols category. Examples of protocols that use the common control channel with two transceivers are [19] and [20], where examples of protocols using the same concept with single transceiver are MCPS [21], CR-WSN [22] and iQueue [8].
b) Split Phase (SP): In this category, there is only one transceiver, and the time is split into two phases, control phase and data phase. During the control phase, all the nodes switch their transceivers to the common control channel to agree upon the data channel to be used for the next data phase. During the data phase, the nodes switch to the approved data channel and start exchanging data packets [23]. Unlike dedicated control channel protocols, the control channel can be reused for data transmission during the data phase, and not just for exchanging control packets during the control phase. Overcoming the missing receiver and hidden node problems are the main contributions of these protocols. Indeed, thanks to the use of the control and data phases of fixed size, the meeting of all nodes at the same time on the common control channel is guaranteed and hence, the missing receiver problem, as well as the hidden node problem, is mitigated. On the other hand, split phase protocols don't efficiently use the available bandwidth as most of the channels are idle during the control phase [2]. Moreover, the data phase is of fixed size, which imposes two communicating nodes to undergo again the control phase even if they still have data packets to exchange. Hence, the duration of the control and data phases highly affect the performance of split phase protocols [23]. Example of multichannel protocols using split phase mechanism is MC-LMAC [24]. c) Channel Hopping (CH): Nodes in this category hop between channels for data transmission by following a specific sequence. Channel hopping protocols use only one transceiver per node and exploit all the available channels for data transmission. Furthermore, it increases the protocol robustness by avoiding channels that have high interference. However, this type of protocols needs strong synchronization between the nodes, as each node must know the hopping sequence of its neighbors to make an agreement. In addition, while nodes are hopping, they are unaware of the availability of other nodes, which will rise the missing receiver problem that should be carefully considered when designing a channel hopping protocol [23]. Furthermore, the switching cost experienced in the form of time or energy consumption determines the efficiency of the channel hopping MAC protocol. Examples of multichannel MAC protocols that use the channel hoping technique include EM-MAC [25], PW-MMAC [26], and LRCH [27].

B. Channel selection methods
Inspired by [2], we discuss in this subsection, how nodes select a channel among all the available ones for data transmission. According to [2], there are four approaches to select an available data channel; namely, i) round robin, ii) least chosen channel, iii) least loaded channel, and iv) probabilistic channel selection. In this paper, we add a new selection mechanism that is used in MCPS [21] protocol, which is the distance-based channel selection approach. To the best of our knowledge, MCPS [21] is the first and only protocol that uses such technique as a channel selection method.
1) Round-robin approach: In round robin approach, the set of available channels are visited sequentially or based on pseudo-random channel scheduling. Example of multichannel MAC protocol using this approach is WAVE protocol that was introduced in [16]. According to WAVE, every node has to visit each channel in a predefined sequential order and check if it is not assigned to one of its conflicting nodes in the current timeslot. If so, the channel is assigned to that node on that timeslot. RC-MAC [17] is another multichannel protocol that uses round robin channel selection mechanism. RC-MAC starts by defining for every node in the network, say u, the list of its conflicting nodes that may cause collision to potential ongoing transmissions of u. RC-MAC calculates then a pseudo-random value for every node in a given channel, which is based on the channel ID and the node ID. Once done, it then checks if that value is greater than the ones of nodes in its conflicting list. If so, it assigns that channel for that node.
LRCH is another multichannel protocol that uses round robin based channel selection mechanism that was introduced in [27]. LRCH assigns a color for each node based on the node ID and the number of the available channels. Then, each node hops the channel in a round robin way starting from the channel with an ID that equals the node's color number. For example, suppose that we have 5 nodes and 3 channels in the network. The first, the second and the third nodes will be assigned color number 1, 2 and 3; respectively. The fourth and the fifth nodes will be assigned the color number 1 and 2; respectively as the total number of channels are three. Each node starts hopping from its color number, and then it increases it by one for the next timeslot.
Although the round robin approach is simple to implement and does not require any exchange of control packets, it does not guarantee a two-hop conflict free channel assignment especially for high-density networks, which may cause hidden node collisions.
2) Least chosen channel approach: In this approach, when all the available channels are assigned to all one-hop or two-hop neighbors; then, the remaining unassigned nodes select the least used or the least chosen channel among all of them. Examples of multichannel MAC protocols using least chosen channel assignment mechanism include MCAS-MAC [7], iQueue [8], and Enhanced HMC-MAC [13]. The least chosen channel assignment approach provides a mean of balancing the channel usage. However, it does not eliminate the interference or collision since multiple nodes on the same neighborhood can share the same channel simultaneously. Furthermore, it requires that each node has a list of used channel in the neighborhood, that is mainly constructed by exchanging control packets, to find out the least used one. Hence, it has control packet exchanging and memory overhead, which may cause further energy consumption.
3) Least loaded channel approach: In this approach, a node periodically checks the status of channels and it will exclude channels with highly reported interference or delay from the available channel list. By doing so, it allows load balancing between the available channels. Example of multichannel MAC protocols using this approach are CR-WSN [22] and RMCA [15]. Similar to the least chosen approach, the least loaded channel approach provides some balancing on the channel usage. However, it does not eliminate collisions as multiple nodes on the same neighborhood can share the same channel simultaneously.
4) Probabilistic channel selection approach: In probabilistic based channel assignment approach, nodes select a channel based on a random value based on past channel activity knowledge to predict the next selected channel. EM-MAC [25] and PW-MMAC [26] use pseudo-random function called linear congruential generator (LCG) to predict the wake-up time and the selected channel by the receiver. Again and similar to the previous mentioned approaches, there is no guarantee of the two-hop conflict free channel assignment especially for highdensity network scenarios. 5) Distance-based channel approach: In this approach, each channel is assigned for a specific transmission range, which is defined during the network initialization. More precisely, when a node wants to communicate with other node, it independently calculates the distance separating them. Then, based on this distance, it selects the corresponding data channel with the associated transmission power that matches this distance. In MCPS [21], the authors define sixteen different transmission ranges that corresponds to the sixteen non-overlapping channels provided by the physical layer of IEEE 802.15.4 standard. The main advantage of this approach is its simplicity, and energy efficiency as the channel selection mechanism doesn't require any extra packet exchange. Additionally, no complex calculation is needed like the prediction based mechanisms as well as no extra memory consumption is required. Furthermore, it is possible to have a two-hop conflict free channel assignment even for high-density network, since up to sixteen nodes in the neighborhood can have different channels. Table 2 classifies the reviewed protocols based on the channel selection methods.

C. Channel Access methods
A sensor node accesses the shared medium by one of the following approaches: either contention-or scheduled-based techniques. In the following three sections, we review work related to the focus of these two techniques as well as the ones using hybrid access methods.
1) Contention-based approach: In contention-based approach, various nodes compete to access a shared channel, if the channel is busy, it will back-off. Otherwise, it will proceed sending its packet. The advantages of contentionbased protocol are: i) first, it does not require synchronization, ii) second, it is adaptive to traffic changes, and iii) finally, it is simpler that the TDMA with regard to joining the network for new nodes. Generally, contention-based approach is best suited for low to medium traffic rate. However, for high traffic rate, contention-based approach may cause more collisions and packet loss; hence, the energy consumption and the latency will further increase [1]. MCPS [21], RMCA [15] and CR-WSN [22] are examples of MAC protocols that contend to access the medium.
2) Scheduled-based approach: In scheduled-based approach, nodes divide the communication frame into timeslots and assign a channel with a timeslot for each node. Scheduledbased access approach can provide collision-free communication, which will result in high throughput and low energy consumption. However, it needs tight synchronization and it is difficult to adapt with fluctuated traffic. Furthermore, a newly joined node to the network requires rebuilding the whole schedule. Unlike contention-based approach, scheduled-based approach is best suited for networks with high traffic rate [1]. MC-LMAC [24], WAVE [16], and PW-MMAC [26] are examples of multichannel MAC protocols that use scheduled-based access approach.
3) Hybrid approach: In the hybrid access approach, researchers try to take the advantages of both the contentionbased and the scheduled-based approaches and alleviate their disadvantages. iQueue [8], RC-MAC [17], and Enhanced HMC-MAC [13] are examples of multichannel protocols using hybrid approach. Table 3 classifies the reviewed protocols based on the channel access methods.

III. MULTI-CHANNEL MAC PROTOCOLS IN WSNS
In this section, we will describe in more details the most recent multichannel MAC protocols in WSNs according to the previously mentioned classification. For each protocol, we describe the main strengths and weaknesses. A summary of the protocols along with its classifications and main characteristics are provided in tables 1-4.

A. Enhanced Multi-Channel MAC Protocol (Enhanced HMC-MAC) [13] :
Enhanced HMC-MAC is one of the recent multichannel MAC protocol for WSNs that uses static channel assignment and hybrid channel access with least-chosen data channel as a channel selection mechanism. It has three operation phases. The first phase is called TDMA beacon propagation phase. The second phase is the data exchange phase. Finally, the third phase is the inactive phase. During the first phase, the Node Coordinator (NC), which has multiple radios, broadcasts a TDMA-based schedule on the Common Control Channel (CCC) for node's beacon propagation management. The beacons that are sent by each node include a bitmap of one-hop and two-hop neighbors for that node. By doing so, a threehop neighbor list is build at each receiver node. The three-hop neighbor list is used to guarantee to the most possible extent a conflict-free channel allocation process. They suppose that the NC has three radio interfaces while sensor nodes have a single transceiver, and there are sixteen non-overlapping channels. Enhanced HMC-MAC protocol imposes a hierarchical cluster tree topology, where sensor nodes are categorized into Group 1 and Group 2 based on the tree depth and the tree branch index. In other words, nodes that belong to an even branch index and at odd depths form Group1, and vice versa. These groups allow nodes during the data transmission phase to be in different states. In other words, when nodes belonging to Group 1 are in the transmission state; then, nodes belonging to Group2 will be in the reception state, and vice versa. The channel assignment operation starts from the NC, where a unique channel is assigned for each of its interfaces. Then, the node with the highest priority, which has the smallest network address, starts selecting a unique channel within the 3-hop neighborhood on its group. If there is no unique channel on its 3-hop neighborhood, a unique channel is selected within its 2-hop neighborhood. Similarly, if there is no unique channel on its 2-hop neighborhood, a unique channel is selected within its 1-hop neighborhood. If there is no unique channel within its 1-hop neighborhood, which is the case of dense network when the number of nodes within 1-hop exceeds the number of available channels, the node selects the least used channel

Protocol
Contention within its one-hop neighbor list on its group. After selecting a channel, a node broadcasts its choice in the beacon. After assigning channels for all the nodes in the network, the second phase, which is the data exchange phase, starts. During that phase, nodes for each group exchange the roles between transmitter and receiver according to the timeslots. In other words, when nodes in Group1 are transmitters during the first timeslot, the nodes belonging to Group2 will be receivers. During the second timeslot, nodes of Group 1 will be receivers, and nodes of Group 2 will be transmitters. After the data exchange phase, nodes sleep for energy conservation. The main disadvantage of this protocol is the use of static channel assignment, as it may result in network partitioning. In other words, two nodes within the transmission range of each other cannot communicate because they are on different channel. This will may result in delay as well as energy consumption. Furthermore, the control packet is overloaded as it contains the bitmap of 1-hop and 2-hop nodes in the neighborhood. Moreover, collision free data transmission is not guaranteed, as more than one node can share the same channel.
B. Multi-Channel Cluster Tree (MCCT) [14] Similar to the Enhanced HMC-MAC [13], MCCT has hybrid channel access, uses static channel assignment, and least-chosen channel selection mechanisms. Indeed, MCCT is a cluster multichannel tree-based protocol for WSNs that is built on the top of the IEEE 802.15.4 slotted CSMA-CA. Nodes in the network are classified into active coordinators (parents) and passive coordinators (children). Each parent with its children forms a cluster, and a channel is assigned for each cluster. Active coordinators send Hello messages on the Common Control Channel (CCC) and beacons on the cluster channel, where the passive coordinators send only Hello messages on the CCC. When a node newly joined the network, it listens to the CCC during the Beacon Interval (BI) for any incoming Hello messages that is sent by the coordinators. Hello messages contain information such as the channels and timeslots used by the 2-hop nodes in the neighborhood. This information stored by the receiver node in its neighbor table. The newly joined node selects a coordinator with non-null smallest number of children. By doing so, they avoid creating a new cluster with a dedicated channel and at the same time, they maximize the number of leaf nodes. If all the available active coordinators have a number of children exceeding the proposed threshold; then, the newly joined node selects a passive coordinator to form a new cluster. In this case, the passive coordinator becomes an active coordinator, and it selects the least used channel based on its neighbor table as a cluster channel and sends beacons on that channel to synchronize with its children. After that, the newly joined node becomes a passive coordinator. Similar to Enhanced HMC-MAC [13], MCCT uses static channel assignment that may result in network partitioning, which may result in increased delay as well as energy consumption, as mentioned earlier. Furthermore, increasing the number of leaf nodes in the cluster instead of creating new cluster may result in an increase in the scheduling, which will induce an increase in the end-to-end delay.
C. A multi-channel Asynchronous Scheduled Medium Access Control Protocol (MCAS-MAC) [7] MCAS-MAC is a semi-dynamic multichannel MAC protocol that uses hybrid approach to access the medium and leastchosen channel approach to select a channel. Specifically, it is a multichannel asynchronous scheduled medium access control protocol. In an asynchronous protocol, each node wakes up at its own scheduled time to perform Low Power Listening (LPL) to receive potential incoming packets without any presynchronization with its neighbors. Accordingly, a sender must send a preamble before any packet transmission to ensure that the receiver is able to receive the packets [7]. MCAS-MAC is a duty-cycle MAC protocol, which means that the sensor nodes is alternating between long sleep period and short active period to decrease the main sources of energy wastage namely, the idle listening and the overhearing [8]. MCAS-MAC consists of two main phases: the initialization phase and the periodic listening and sleep phase. A node starts the initialization phase when it firstly joins the network. During this phase, it will perform three tasks: 1) examines channels, 2) selects a unique wake up offset and a home channel, and 3) finally advertises this information to its neighbors through a Hello packet. Note that, once built, the hello packets are periodically broadcast by every node on its home channel. In order to accomplish the first task, a node will listen on each channel for any incoming Hello packet for more than the Hello interval, to avoid missing any Hello packet from any neighbor. The Hello message contains information about the Hello packet sender's ID, the Hello interval, the wakeup interval, and the home channel. Once a node has received Hello packets from all its neighbors, it will start by determining a unique wakeup offset. Second, the least used channel is selected as a home channel for this newly joined node. Finally, a node will proceed to send the Hello packets with the newly selected information after accomplishing a back off to avoid any possible collision. After advertising the hello packet, it will enter the periodic listening and sleep phase. When a node has a packet to send, it will first compute the remaining time until the next wakeup interval of the receiver. When the timer eclipses, it will switch to the receiver's home channel, as shown in Figure 4 The wake-up time of the receiver can be due to a hello timer expiration or an LPL timer expiration. When the receiver's wake up time is due to a hello timer expiration, the sender will first wait to receive the Hello packet sent by the receiver. After having received the Hello packet, the sender updates the neighbor table, implements a backoff, and then starts to transmit a packet if the channel is idle. After that, the sender will wait for an acknowledgment from the receiver. If the acknowledgment was received and the sender has more packet to send, it will start sending these packets directly, as to enable the back-to-back data transmission. Finally, when the data transmission ends, the sender switches back to its home channel and enter the sleep state. On the other hand, if the receiver's wake up time is due to LPL timer expiration, the sender will start directly by a backoff procedure, and then follow the same process as described above. On the receiver side, each node wakes up periodically by the expiration of the Hello timer or LPL timer. By the expiration of Hello timer, the node sends the Hello message and wait for a predetermined amount of time to receive any incoming packets. If a packet is received, the node will send an acknowledgment and waits for a predetermined amount of time to receive any other packets from the same sender. After that, the receiver enters the sleep mode after receiving all packets or goes to sleep when there are no more packets. MCAS-MAC takes advantage of multichannel support in most of the sensor nodes. This feature increases the network throughput while decreasing the end-toend delay. In addition, by allowing the nodes to transmit more packets directly after any successful transmission will further improve the throughput. RMCA is a contention-based multichannel MAC protocol that uses semi-dynamic approach as a channel assignment and least-loaded as a channel selection mechanisms. According to RMCA, each node is assigned a channel; then, it broadcasts the assigned channel on the common control channel to notify its neighbors. Indeed, a node is assigned a channel for packet reception. For packet transmission, a node switches to the receiver's channel and content to access the medium. According to RMCA, time is divided into stages. For each stage, each node selects a channel randomly. Then each node calculates a utility function of the selected channel. The utility function is based on two metrics: the Valid Receiving Ratio (VRR) and the Average packet Transfer Delay (ATD). VRR is the ratio of the successfully received packets to the all sensed packets, while the ATD is the average packet transfer delay of the successfully received packets. The resulting value from the utility function is used in a procedure called Modified Regret Matching (MRM) to calculate the average regret from the currently selected channel to the other channel. If the channel that is selected in the current stage is different from the next stage, the node broadcasts the newly selected channel on the Common Control Channel (CCC). Although RMCA requires few control packets exchanged for channel selection, it suffers from idle listening because of always-on receivers. Indeed, they did not clarify when the nodes go to sleep. Furthermore, no mechanism is used to refrain from waking up on a busy channel, which may cause the multichannel hidden terminal problem. Additionally, the system is memory-based, where future channel prediction is based on the past knowledge. This will may result in consumption of the limited memory and energy resources.

E. Power efficient, short preamble Multi-channel MAC for WSNs (McMAC) [18]
McMAC is a contention-based duty-cycled multichannel MAC protocol that uses round robin approach as a channel selection method. Specifically, it uses the strobed preamble sampling technique, which is firstly proposed in XMAC [28]. Similar to MCPS [21], McMAC exploits the multichannel support provided by the IEEE 802.15.4 physical layer. The channel assignment mechanism of McMAC is based on a hypothetical hash function that equally distributes the number of the available nodes to the number of the available channels. For example, if the number of the available nodes is 64; then, four nodes will be assigned the same base channel since there are 16 channels in IEEE 802.15.4 standard. McMAC uses semi-dynamic channel assignment technique, where all nodes are assigned a fixed channel and when a node wants to communicate with other node, it will switch to the intended receiver home channel. According to McMAC, when a node has a packet for transmission, the sender switches to the receiver's home channel for communication. Then, it will perform triple Clear Channel Assessment (CCA) before starting preamble transmission to make sure that the receiver's home channel is idle. Note that in McMAC, the triple CCA is proposed to ensure that a sender node is not sensing a channel during the gap between two successive preambles. According to McMAC, if the channel is idle, the transmitter will send preamble and waits for an early ACK. Once an early ACK is received, it will proceed with data transmission. Similar to MCPS [21], McMAC supports the data burst transmission. Accordingly, if the sender node succeeds its handshaking with the intended receiver, then all the data packets in the sender's queue for that receiver are sent back-to-back. McMAC uses parallel rendezvous, which avoids the CCC bottleneck. However, McMAC may suffer from the missing receiver problem, where a sender node sends preamble on the receiver's home channel, which is busy communicating with another node on another data channel. Indeed, McMAC does not discuss any mechanism to avoid or alleviate such problem. Furthermore, with regard to the used channel assignment mechanism, McMAC does not provide any guarantee that the channel assignment is two-hop conflict free, which may result in collisions.

F. Receiver-Centric MAC protocol for Event-Driven Wireless
Sensor Network (RC-MAC) [17] RC-MAC is a semi-dynamic multichannel MAC protocol that uses round robin approach to select a channel and hybrid approach to access the medium. Indeed, it is designed for data gathering applications with a tree-based topology. According to RC-MAC, the network nodes are divided into parents and children. Initially, all the nodes on the common control channel wake-up periodically to send beacons. Once an event is detected by a node, it will switch from duty-cycling mode to full active mode and utilize the multi-channel. When an event is detected, the children first contend to send for their parents. The child who succeed to seize the channel will send a packet to its parent. Immediately after, the parent, which is the receiver, schedules the access between its children by attaching the node ID of the next communicating child in the ACK. There are two operation modes for each node, which are the duty-cycling and the active modes. The nodes are by default in the duty-cycling mode. In this mode, a node that has a packet to send will wake up slightly before its receiver (parent) and waits for a beacon to be sent from its receiver on the common control channel to contend to send its packets. When a child node detects an event, it appends a bandwidth demand information with the data packet. Once the parent receives a data packet with a bandwidth demand, it switches to the active mode and responds with ACK containing the node ID of the next communicating child. In this case, the parent schedule the access to the channel between its children. In other words, at the beginning of each cycle, children nodes contend after receiving a beacon from the receiver, and once one of them wins, it will proceed sending its packet; after that, the parent includes in the ACK the next child ID. If a node receives ACK with its ID, it will send immediately once the channel is idle. If the received ACK contains a different ID then, the node refrains from sending for a random period. Then, it contends again in case the scheduled child was not responding. According to the tree topology, the nodes that are on the odd level can gather data simultaneously, and the nodes on the even level can forward data simultaneously. In the following cycle, they switch the roles. For example, node N 1 in level X is transmitting on the parent's channel (forwarding channel) during cycle i, while node N 2 on level X+1 or X-1 is receiving on its gathering channel. Then, N 1 will switch to its gathering channel to gather (listen) for traffic from its children during cycle i+1, while N 2 switches to the forwarding channel (the parent's channel) to transmit the data gathered from the previous cycle. According to RC-MAC, each node maintains an interference list consisting of the IDs of conflicting nodes. According to RC-MAC, a node is considered as conflicting if it is a 3-hop neighbor and it is on the same level, or two levels lower, or two levels higher, as they are gathering or sending simultaneously. Then a node calculates a priority value, which is based on a hash function that uses the node ID and the channel ID, for all the nodes on the interference list. A node is assigned a channel i if the priority value calculated for that node was greater than the priority values for all the nodes on its interference list. If not, the node is assigned a channel in which it has a secondary priority, and in this case, different parentchildren sets share the same channel. Consequently, in order to prevent channel occupancy by one parent-children set, a parent of one set is allowing to gather only half of its remaining buffer space during a cycle. For example if a parent's buffer size at the beginning of a cycle was 20 packets and the maximum size was 80 packets. Then, that parent will listen and gather from its children 30 packets only, then it sends an ACK with a flag to inform its children to stop sending and back off to let other sets sharing the same channel to use the channel. Although RC-MAC provides high throughput and less delay in heavy traffic load, it suffers from control packet overhead, as each node periodically sends beacons on the CCC. Besides the beacons, each received packet is acknowledged with ACK packet, and thus there is no support for burst traffic. Furthermore, it consumes energy due to frequent switching and the full active mode when traffic is high.

G. Multi-Channel Lightweight Medium Access Control Protocol (MC-LMAC) [24]
MC-LMAC is a multichannel scheduled-based MAC protocol that uses least-chosen approach as channel selection. Each node will be assigned a pair of a timeslot and a channel, which is supposed to be two-hop conflict free to avoid any kind of collisions. Accordingly, time is divided into frames. Each frame consists of two phases: a control phase and a data transmission phase. During the control period, every node will be assigned a unique timeslot. During the control phase, all the nodes switch to the common control channel and use their assigned timeslot to initiate a communication with an intended receiver on a given data channel. During the data transmission period, the intended receiver switches to the sender's assigned channel for data reception. Figure 5 provides an overview of MC-LMAC protocol. MC-LMAC has also the advantage of reusing the common channel for data transmission, by allowing a node to reuse the control channel for data transmission during the data transmission phase. Hence, it exploits all the available channels for data transmission. Additionally, it supports data broadcast by allowing a sender to send a broadcast address during the control phase, such that all the receivers of the broadcast message switch to the sender's channel to receive the data. Note that, data broadcast can be considered as a challenge in multichannel communication since it is hard to get in touch with all neighbors at the same time in the same channel. However, MC-LMAC experiences higher latency compared with contention-based protocols. Latency in this context means the time required to transmit a packet from the source node to the sink node. Indeed, according to MC-LMAC, when a node has a packet to send, it must wait for its timeslot to start the handshaking. Moreover, a node has to wait until the end of the control phase to start data transmission. Moreover, since the data period is of fixed size, a sender node is obliged to undergo the control period again even if it still has data packets to send to the same receiver. Hence, the size of the data period, as well as the control period, highly impact the protocol performance although MC-LMAC provides a collision free communication [8].

H. Efficient Multichannel Medium Access Control Protocol (EM-MAC) [25]
EM-MAC is a multichannel contention-based duty-cycle MAC protocol that uses channel hoping as a channel assignment approach and allows a node to choose dynamically between a set of channels based on the channel load status. Specifically, each node preserves a measure for each channel that indicates whether the channel has a high load or interference, to avoid using that channel. By doing so, it allows for load balancing between the available channels besides the mitigation of probable collisions and retransmissions. EM-MAC protocol is a receiver-initiated protocol, which means the sender has to receive a beacon packet from the receiver to proceed its transmission. To enable a sender meets its receiver, a sender must have the prediction state of the receiver to independently calculate the predicted wake-up time and the wake-up channel of that receiver. To obtain this information, it does not use a control channel; instead, a sender repeatedly waits on each channel for a beacon packet that might be sent by the receiver, to respond with a data packet containing a request for the receiver's prediction state. Although, the sender ultimately finds its receiver, the time required for rendezvous increases by increasing the number of the available channels. Figure 6 presents the concept of EM-MAC protocol.

I. A traffic Adaptive Multi-Channel MAC Protocol with Dynamic Slot Allocation for WSNs (iQueue) [8]
iQueue protocol is a hybrid MAC protocol that uses dynamic channel assignment and selects least-chosen channel for data transmission. Specifically, it uses both CSMA and TDMA to deal with low traffic load as well as bursty traffic, respectively. In fact, there are two primary techniques to access the medium in MAC protocol, contention-based, usually by using Carrier Sense Multiple Access (CSMA), and contention-free, usually by using Time Division Multiple Access (TDMA). CSMA is more suitable for low load traffic, where a sender has just to sense the medium, and then start directly to send when it is free. The number of collisions and retransmissions increases when the traffic rate increases, resulting in a degradation of the network performance. On the other hand, TDMA is best fit for high traffic load, where each node is assigned a timeslot for transmitting. Hence, no contention and no collision are experienced when accessing the medium. However, in a case of low traffic rate, the bandwidth is wasted due to the empty slots. Even worse, when the traffic rate is extremely high, data packets may be accumulated in a very long queue. iQueue was designed with the purpose of taking advantage from both techniques depending on the traffic rate. iQueue was conceived for tree network topology. The network nodes are classified into router nodes and simple nodes. Router nodes are the node that has sub-nodes, where simple nodes are the leaf nodes. Router nodes wakeup periodically and send beacons, while simple nodes wake up only when they have a packet to send and hence can synchronize with a neighbor router. When a node has a packet to send, it starts with CSMA/CA mechanism to win the access to the medium. This packet contains extra information indicating the number of packets in the queue. Hence, the router node allocates for sender node an exact number of timeslots based on its queue. When the queue is empty, the router node will not assign any timeslots, and it will work like a low duty-cycle CSMA protocol. Figure 7 demonstrates the process of sending a packet. The channel assignment process starts from the routers by defining a subset of data channels for each router. Then, the routers update their Channel-Occupancy-Indicator by listening on the common control channel for a predefined period of time. After that, the router checks the Channel-Occupancy-Indicator to find a free data channel. If the router fails to find a free data channel, it will randomly choose a channel and broadcast it to other routers. Although the channel assignment mechanism ensures unique channel selection in 1-hop neighborhood, the overhead of selecting and maintaining channels is high. Furthermore, the protocol imposes a tree network topology, which is not usually the case of WSN, as they always have an arbitrary structure. PW-MMAC is an asynchronous scheduled-based duty-cycle multichannel MAC protocol that uses dynamic channel hoping assignment mechanism. It uses probabilistic channel selection approach by allowing each node to predict the wake-up time and the selected channel by its receiver using a pseudorandom function called Linear Congruential Generator (LCG). Initially, the sender wakes up slightly before its receiver on the last channel it communicates with that receiver and waits for beacon. The beacons sent by the receivers contains the preferred Channel list (C ) of the receiver. In order to add a channel to this list, each node maintains a Channel Usage (C ) variable for each channel. Whenever a node finds a channel busy during CCA, or it sends a beacon without any data following that beacon from any sender, or it sends a data packet and no ACK was received; then, it supposes that the channel is congested and C will be incremented by one. Otherwise, the channel is supposed to be not congested and C is decremented by one. The channels with C lower than a specific Channel Threshold value (C ℎ ) will be added to the C . If there is no channel with C < C ℎ , then a channel with the least C value is added to the C . Once a sender receives a beacon from the intended receiver, it will use the pseudo-random function to select a channel for communication. In other words, channel assignment is dynamic, where nodes are hoping between channels based on the schedule generated by the pseudo-random function.
Additionally, The C is used for the adaptation with the traffic rate. In other words, when there is only one channel in the C , it means that all the channels are loaded and this channel has the lowest channel usage. In this case, the duty cycle increases to alleviate collisions and delay.
In PW-MMAC, since the sender independently calculates the channel for data transmission using the pseudo-random function and without any confirmation from the receiver, thus there is no guarantee that the selected channel by the sender will be the same one chosen by the receiver. Hence, the missing receiver problem may arise.

K. Latin Rectangular-based Channel Hoping (LRCH) and
Enhanced-LRCH [27] LRCH is a multichannel scheduled-based MAC protocol that uses dynamic channel hoping as a channel assignment and round robin as a channel selection mechanisms. Specifically, the channel assignment mechanism is based on the Latin Rectangular (LR) concept for scheduling the available channels between neighbor nodes. The Latin Rectangular is a matrix with a number of rows equal to the number of the nodes in the same transmission range and a number of columns equal to the number of the time slots in the frame. Each row represents the channel hoping sequence for the corresponding node. During the network startup, the LRCH's algorithm proceed by coloring the nodes based on their ID. Indeed, by coloring nodes, the algorithm provides each node a number and that number in the range of channels ID. Once done, during the first timeslot and as shown in Figure 8, all the nodes switch to channel number 0, defined as the broadcast channel. Then, in the second timeslot, each node starts hoping from the channel number that is equal to its calculated color for data transmission. After that, each node hoping from one channel to another according to the LR matrix. As shown in the Figure 8, there are four channels with IDs 0, 1, 2, and 3, three nodes in the network, and 6 timeslots per frame. According to Figure 8, for example, node with color B is assigned channel 2 on the second timeslot, channel 3 on the third timeslot, channel 0 in the fourth timeslot, and so on. Although the LRCH algorithm avoids the internal interference by assigning different consecutive channels to adjacent timeslots, external interference with other WiFi devices still exist. To avoid such problem, enhanced-LRCH is proposed, which is based on the interleaving channel hoping algorithm. Enhanced-LRCH arranges and divides the available channels into two groups: the black group and the white group. According to the enhanced-LRCH, odd timeslots assign channels from the black group consecutively, where even timeslots assign channels from the white group consecutively. In this case, adjacent timeslots assign non-adjacent channels to avoid the external interference. Although the algorithm tries to avoid the internal and external interferences, it still suffers from unwanted collisions especially with a limited number of channels or with high-density neighborhood, where multiple nodes will share the same channel during the same timeslot, which may result in collisions and interference. Furthermore, with an increased number of neighbor nodes or an increased number of timeslot, the LR matrix size will increase causing thus extra memory usage as well as further energy consumption.
L. An energy efficient and Spectrum Aware MAC protocol for Cognitive Radio WSNs (CR-WSN) [22] CR-WSN is an asynchronous contention-based duty-cycle MAC protocol that uses least-loaded channel selection approach. Indeed, CR-WSN is especially designed for Cognitive Radio Wireless Sensor Networks (CR-WSNs). Cognitive Radio allows nodes to work on both the licensed and unlicensed channels. A sensor node or a secondary user can use the licensed channel only if there is no any primary user occupying that channel. Similar to MCPS [21], CR-WSN uses strobed preamble to wake up an intended receiver on the CCC. The protocol starts by assigning a licensed data channel to every primary user. Hence, the number of data channels is equal to the number of primary users. When a node wakes up, it listens on all the data channels one by one and notes their availabilities in a vector called the channel availability vector. After that, the node listens on the CCC for any upcoming preamble. If CCC is idle and the node has a packet to send, it starts sending a preamble containing the channel availability vector and the destination ID. Once a node receives a preamble destined to it, it will respond with an ACK containing the channel identifier of the chosen data channel. Indeed, the intended receiver will choose a data channel that is common between the sender and the receiver's channel availability vectors. Then both the sender and the receiver switch to the corresponding data channel and start data transmission. Each packet transmission is followed by a sensing period to detect any activity from the primary user (PU) of that channel. Once an activity is detected by both the sender and the receiver nodes, the data transmission will be aborted. After that, when data transmission finishes, whether aborted or normally, the corresponding nodes broadcast an end of transmission packet (ENDD) on the common control channel, which contains the status of the data channel that it has been just used by the nodes.
Although the proposed protocol is an asynchronous protocol, it does not clearly specify how the receiver specifically selects between the available channels especially in case of multiple common available data channels (i.e.: whether the first common channel is selected or randomly). Moreover, since a channel availability vector is included in each preamble, the preamble size is proportional to the total number of data channels. Therefore, with an increased number of data channels, further energy consumption is required for preamble transmission. Furthermore, for every wake up, a node has to listen on all data channels to update its channel availability vector which will not only increase the energy consumption but also it may worsen the missing receiver problem. Indeed, a sender node may fail to get in touch with an intended receiver while sending a preamble on CCC, since the receiver is hoping between the data channels to update its channel availability vector.

M. Multichannel Preamble Sampling MAC protocol (MCPS) [21]
MCPS is a dynamic contention-based MAC protocol that uses distance-based channel selection method. MCPS is a low power MAC protocol operating on multichannel using carrier sensing for collision avoidance. Specifically, MCPS exploits all the non-overlapping channels provided by IEEE 802.15.4 physical layer. Basically, MCPS uses one dedicated common control channel to wake up an intended receiver using a preamble sampling technique. However, data transmission takes place in a dedicated data channel. Indeed, MCPS allocates to every pair of sensor nodes a unique data channel that aims at being 2-hop conflict free. Hence, the probability of collision is highly reduced and even completely mitigated in some scenarios. Moreover, MCPS allows each sensor node to dynamically adjust its transmission power when sending strobed preamble or periodically generated data. Indeed, for each possible distance separating a pair of communicating nodes, MCPS adapts the appropriate transmission power and selects the appropriate data channel. By using multiple channels, MCPS allows multiple simultaneous data communications along with handshaking on the common control channel reducing hence the end-to-end delay and improving the throughput while being energy efficient. Furthermore, MCPS supports burst data transmission on corresponding data channels by using the more bit feature on the header of data packets. By doing so, once a sender meets its receiver on a specific data channel, it will send all data packets on its queue to that receiver. As a result, the end-to-end delay will further decrease and the throughput will increase since one handshake on the common control channel is enough to send burst of data packets on the chosen data channel.
N. WAVE MAC protocol [16] WAVE protocol is a semi-dynamic schedule-and tree-based multichannel MAC protocol designed for converge cast traffic pattern [29] in WSNs, which uses the round robin as a channel selection approach. According to WAVE protocol, time is divided into transmission cycles. Each transmission cycle consists of consecutive waves. A wave is simply a TDMA frame of variable size. WAVE protocol has two operational modes, the centralized and the distributed modes. In the centralized mode, a central entity that is running the WAVE protocol has all the information related to any node in the network, while in the distributed mode, a node has only information about its peers that are in its conflicting list. On one hand, in the centralized mode, a wave is divided into timeslots that are equal to the current number of nodes that have packets to transmit. In each wave, a timeslot and a channel is assigned to every transmitting node. A timeslot lasts for only one data packet transmission. Initially, the nodes are sorted decreasingly based on its priority (the highest priority node is the one with the highest number of packets in its queue). Figure 9 depicts an example of WAVE protocol. According to Figure 9, there are four nodes namely A, B, C, and D, with queue size 5, 4, 3, and 1, respectively. The number inside a timeslot indicates the remaining packets in the node's queue at the beginning of a specific wave. The number of generated waves is equal to the maximum number of transmission needed by the node that has the maximum queue size, which is node A in this example. Specifically, each node transmits one packet during a wave. After that, the first node is assigned the smallest available timeslot and the first available channel (in roundrobin manner). Then, the second node is assigned the next smallest available timeslot and the second available channel, and so on. During the following waves, the same channel and timeslot assignments are repeated for nodes that still have packets to transmit (with queue size >1). To avoid conflicts, a node is assigned a timeslot and a data channel that is not assigned to any node in its conflicting list. According to WAVE algorithm, a node X is in conflict with node Y if X satisfies one of the four following cases: i) X is Y's parent, ii) X is Y's child, iii) X is 1-hop from Y's parent, and iv) X's parent is 1-hop away from Y. On the other hand, in the distributed mode, each node has limited information, which is simply the list of conflicting nodes along with their associated maximum number of data transmissions. Hence, to construct the first wave, each node sends to its parent a vector of timeslots that is equal to the number of transmitter nodes in its conflicting list. Each vector entity, which corresponds to a timeslot, contains the number of data transmissions needed for that timeslot. By the end of the first wave, the sink node computes the global number of timeslots and for each timeslot, the required number of data transmissions. Then, the sink broadcasts it via the routing tree. Based on that, each node computes the successive waves. Although WAVE protocol avoids conflicts by assigning conflict-free timeslot and channel for conflicting nodes, the overhead of exchanging control packets to construct the first wave is high in case of distributed mode. Furthermore, Scheduled-based protocols need synchronization between the sender and the receiver, which may be lost due to clock drift, which may result in more energy consumption due to data packet loss and retransmission. Fig. 9. Illustrative example of WAVE protocol IV. CONCLUSION Nowadays, WSNs applications require high data rates and timely data transmission with minimum energy consumption. One possible solution to satisfy such requirements is by using multichannel communication scheme. Specifically, Multichannel MAC protocols greatly influences the energy efficiency of sensor nodes since they arbitrate the access to the shared medium. In this paper, a classification framework for multichannel MAC protocols is proposed, which is based on three criteria, the channel selection method, the channel access method, and the channel assignment method. Then, a detailed description of recent multichannel MAC protocols is provided with a focus on the main strengths and weaknesses of each protocol.  In this work, authors carried out a comprehensive review for the most common multichannel MAC protocols. Furthermore, they provide a clear classification framework to identify the main features for these protocols. In fact, multichannel MAC protocols have various variations that greatly affect their performance. Therefore, proposing such classification framework is vital to understand the main factors that affecting the performance of such kind of protocols.