## 2 Related Works  
In the existing literature, a significant number of MAC protocols (such as [12; 13; 14; 15]) have been proposed for multi-channel communications in wireless networks. However, most of these protocols are not suitable for WSNs, because they assume that the transceiver can operate on multiple frequencies simultaneously or that the nodes are equipped with multiple radios, and current sensor nodes with only a single half-duplex radio transceiver cannot satisfy those assumptions. The idea of multi-channel protocols in WSNs is not new. A number of MAC protocols have already been proposed for WSNs [7; 8; 9]. To achieve multi-channel diversity, most of these protocols assign different channels to the contending sender-receiver pairs. The receivers (or the senders) in a two-hop neighborhood are assigned different channels in order to avoid interference and to increase capacity. However, due to multi-hop communications in WSNs, the nodes need to receive and forward packets in different channels. Therefore, the nodes frequently switch channels and experience packet losses. The channel switching causes considerable delays and a high degree of synchronization. Furthermore, the nodes require a sophisticated scheduling mechanism in order to find the rendezvous time for the sender-receiver pair. A dynamic channel allocation method is proposed in DM-MAC [10] that uses a control theory approach to dynamically allocate the channels to each sensor. Initially all the nodes communicate on the same channel and when a channel becomes overloaded, nodes migrate to new channels. More specifically, whenever a channel becomes overloaded, some of the nodes switch to other non-interfering channels. Nodes in DM-MAC measure the success rates of medium access. Once a node figures out that lot of messages are lost due to collisions and interference, and causes the success rate of the current channel to fall below a certain threshold, the node considers switching channels. In contrast, nodes return to the previous channel if the success rate increases. Therefore, in a lightly loaded condition, the nodes use a single channel. In high network load conditions, the nodes use multiple channels to increase the network capacity and to deliver the data. However, the main problem with that mechanism is that the nodes change channels independently. In multihop communications, the forwarding nodes might find that the next hop is using a different channel. Therefore, nodes in a single path might need to switch between channels. Channel switching causes delays, and the overall throughput might suffer. In addition, the neighboring nodes in a path require time synchronization, and it is a challenge to keep both the sender and receiver in the same channel. To avoid channel switching, TMCP divides the network into a number of sink-rooted disjoint subtrees [11]. Nodes residing on different trees are assigned different channels. Each sub-tree uses an orthogonal channel, and, thus, the nodes do not require channel switching. Note that instead of assigning channels to the nodes like DM-MAC, TMCP assigns channel to the sub-trees which allows TMCP to work with a small number of channels. The goal of TMCP is to partition the network to experience minimum intra- and inter-tree interference. The inter-tree interference is eliminated by using orthogonal channels for different sub-trees. In contrast, network partitioning minimizes the intra-tree interference. Finally, a greedy heuristic is used to partition the network to replace the NP-complete partitioning problem. However, TMCP has a heavy initialization phase that is required in order to partition the network. The tree partition does not consider the data rates of the nodes, so the sub-trees might have different loads. Furthermore, changes in the routes might require a reinitialization, which is too costly for WSNs. Moreover, if a set of nodes sends data at a very high rate, static channel allocation cannot deliver the data.