Skip to main content

Simulation of multi-radio multi-channel 802.11-based mesh networks in ns-3


In the context of wireless network simulation, many simulators are capable of evaluating the performance of single-channel network protocols, but they need many modifications to be able to simulate multi-radio multi-channel networks. We address the problem of simulating channel assignment protocols for multi-radio wireless mesh networks in ns-3 simulator, providing the essential steps needed to simulate a channel assignment protocol. In addition, we explain the details of simulating the Semi-dynamic Interference aware Channel Assignment (SICA) protocol as an example. We use SICA as a reference to address the challenges of validating and verifying the simulation model. To validate the channel assignment model in SICA, we use mathematical validation based on Markov chains. Furthermore, we propose a novel automated test module to verify the simulation process.

1 Introduction

Wireless mesh networks (WMN) will be the next self-configuring backhaul providing Internet access for last mile users through multi-hop forwarding (Figure 1). Mesh networks however suffer from wireless interference due to the broadcast nature of the wireless media that may degrade their performance significantly.

Figure 1
figure 1

Multi-radio wireless mesh network.

Multi-radio WMNs are able to offer higher network capacity using different non-overlapping channels provided by IEEE 802.11 standards in the unlicensed bands [1]. Although there are several non-overlapping channels available, the number of channels that can be used simultaneously by a single node is limited by the number of radio interfaces installed on the node. Therefore, a mechanism which selects the best channel, in terms of interference, among all available channels, is needed in order to achieve the maximum possible network performance.

Technical solutions for multi-hop wireless networks are being specified in IEEE 802.11s [2]. IEEE 802.11s is developed as an extension of the successful IEEE 802.11 standard for WLANs (wireless local area networks) [1]. IEEE 802.11s defines the mesh operation in a single channel although multi-radio mesh routers can form different meshes. The connection between different meshes is provided via bridging. Mesh routers can initiate the channel switching mechanism which moves the mesh, or part of it, to another channel. The routers which do not want to follow the channel switch request may join another mesh. Channel switching may help mesh routers to avoid the external interference but does not reduce the internal interference between routers which belong to the same mesh basic service set (MBSS), since it moves the MBSS to another channel. However, frequent channel switching may degrade the mesh performance due to the high overheads that it implies [3].

In multi-radio mesh networks, channel assignment (CA) is a mechanism which tries to find a feasible mapping between wireless channels and radio interfaces at each node with the aim of maximizing the capacity of the network.

A channel assignment solution must satisfy the following conditions to be feasible:

  • The number of channels assigned to a node must be equal or less than the number of radio interfaces it has.

  • The neighboring nodes must have at least a radio at a common channel to be able to communicate with each other.

Based on the time duration between consecutive runs of the channel assignment protocol, CAs are categorized as static, dynamic, and semi-dynamic [3].

Most of the CAs proposed in the literature fall into static category [413], where nodes tune their radios to certain channels permanently. Static CAs are easy to deploy but unsuccessful to cope with the changes in the wireless environment [4].

Dynamic channel assignments [14, 15], on the other hand, enforce the nodes to switch their interface dynamically from one channel to another between successive data transmissions. Therefore, they require tight synchronizations among nodes. Dynamic approaches are only used for single radio nodes working over multiple frequencies, since they cannot exploit the advantages of multi-radio networks [3].

Static CAs can be easily extended to be semi-dynamic [1626] if the node refreshes the channels assigned to the radios on a regular time period. Semi-dynamic CAs adapt fast to the changes in the traffic pattern and the interference on the wireless medium from both internal and external sources. However, to maintain the network connectivity, neighboring nodes are supposed to share a common channel [16, 27].

Hybrid CAs apply a semi-dynamic channel assignment to the fixed radio interface of each multi-radio node while the other radio is controlled dynamically. Wireless nodes which use hybrid CAs may not share a common channel with their neighbors, since the dynamic radio switches to the channel of the neighboring nodes to make the connection.

Implementing a multi-radio multi-channel mesh network is very challenging due to the following reasons:

  •  The transmitting and receiving antennas installed on a single mesh node should be separated enough to reduce the noise of the transmitter on its own receiver [27, 28].

  •  The current 802.11 commodity devices suffer interference caused from non-overlapping frequencies over each other due to lack of prefect filtering at the antenna [28].

  •  The media access control (MAC) layer of the IEEE 802.11 standard should be modified to support channel assignment mechanisms [3].

  •  The routing protocol must be modified to take the advantage of the underlying channel assignment [6, 16, 17, 27].

Channel assignment mechanisms are usually evaluated via simulations due to the multiple considerations and complex scenarios required to evaluate them [710, 13, 2225]. However, most of the current network simulators do not support multi-radio routers nor dynamic re-configuration of the radio interface, requiring modifications into their core level to allow the evaluation of CA mechanisms [29].

ns-3 [30] is a young simulator which allows the wireless mesh nodes to be equipped with more than one radio interface and makes it possible to change the frequency of the radio during the simulation run time. Although those features are necessary in order to simulate a multi-radio multi-channel network, they are not enough for simulating hybrid or dynamic CA mechanisms. Multi-radio mesh networks simulated in ns-3 based on the recently published standard, IEEE 802.11s [2], are assumed to share common channels. The ns-3 modules for IEEE 802.11s can be used to simulate static or semi-dynamic CAs, but they are insufficient for dynamic or hybrid CA. As in IEEE 802.11s, the peer links are formed over common channels, and the peer management protocol must be changed to be able to send beacons for neighboring mesh points which do not share any common channel. This modification is incompatible with the IEEE 802.11s standard which assumes that mesh points operate in a single channel [2]. According to the IEEE 802.11s standard, multi-radio stations form different meshes on different channels, which are unified in a single LAN using the layer 2 bridging. We consider the problem of simulating hybrid CAs without restricting our work to IEEE 802.11s mesh networks.

In this work, we show in detail how to simulate a hybrid channel assignment protocol using ns-3 simulator without any need to modify the simulator’s source code (Section 2). This work is the first step in clarifying the necessary components and considerations for building a dynamic/hybrid CA in ns-3. Furthermore, we have also focused on the validation and verification mechanisms for simulation-based studies, which are the two aspects that have not yet been considered by the research community when it comes to implement the CA mechanism. We use the simulator version 3.9 released on August 2011. As a specific example, we present the simulation of the channel assignment proposed in [25, 26] (Section 3). This example is used to explain the simulation verification and the validation of the CA model (Sections 4 and 5). A brief summary of other CA protocols proposed in the literature which could also be implemented following the presented approach is described in Section 6, and conclusions are presented in Section 7.

2 Simulation components for multi-radio mesh networks

In this section, we introduce the required extensions to ns-3 simulator [30] for simulating hybrid CA mechanisms. These extensions include the basic functions on top of which the CA mechanism can be implemented, in addition to presenting how to simulate external interference for adaptive CAs.

2.1 Multi-radio wireless nodes

Multi-radio wireless mesh nodes are the required basic building blocks of the simulation scenarios. Figure 2 shows a wireless mesh node equipped with several radio interfaces.

Figure 2
figure 2

Node object.

The figure depicts a general cross-layer channel assignment protocol that interacts with the components of the simulation: traffic generators, routing protocol, and the channel sensing mechanism.

In Program 1, it can be seen how to make a multi-radio node (MRNode) in ns-3, where I is the number of radio interfaces which must be installed on a node. Note that in ns-3, a unique ID starting from 0 is automatically assigned to each radio interface.

Table 1 shows a sample configuration of the MAC and physical layers, which makes IEEE 802.11a-based radio interfaces. The radio propagation model is set to the fixed range propagation model with a maximum range equal to 250 m. We also define a single transmission rate equal to 6 Mbps for data and control packet transmission. Note that this configuration is not fixed and it can be set to any of the propagation and channel loss models that ns-3 supports [30].Lines 8 and 9 of Program 1 show how any other object (CA mechanism, routing protocol, etc.) is created and aggregated to the wireless mesh node. Figure 3 shows the class diagram of a node in ns-3.

Table 1 Physical and MAC layer configuration
Figure 3
figure 3

Class diagram of the node.

Sections 2.2.1, 2.2.2, and 2.3 provide a brief explanation of the components which must be added to the multiradio node to make it possible to simulate the channel assignment mechanism.

2.2 Network devices

2.2.1 Configuring the radio interface

ns-3 indicates each channel with a unique ID, which starts from 0. By default, the channel assigned to all radios in a node is set to 0. To re-configure the channel assigned to a radio interface, a node has to change the ID of the default channel in the physical layer of the radio interface. All channels in ns-3 are supposed to be non-overlapping.

Program 2 shows the process of assigning channel c to the first radio interface (netDevice) installed on MRNode.

Note that if the interface is busy due to sending or receiving, it is not possible to switch to another frequency. Program 2 checks the status of the device (line 5) before setting the new channel.

It is also possible to acquire the remaining time until the device gets idle (line 9) and set the channel afterwards (line 11).

2.2.2 Data service components

To transmit packets in a multi-radio multi-channel architecture, where wireless nodes use a dynamic or hybrid CA, some extra tasks must be done to acquire the channel on which the packets must be sent, in addition to computing the time for switching a radio interface to the desired channel. Figure 4 shows the main process that a node follows to deliver packets on the presented multi-radio multi-channel architecture. It comprises three steps: destination channel query, time stamp assignment, and packet queueing.

Figure 4
figure 4

Data services for channel assignment mechanism.

Unlike single-channel networks, a node in a multi-channel architecture needs to consider the possibility of having next hop neighbors on different channels. Therefore, to forward a packet, a wireless mesh node needs to know the channel on which it can send the packet, in addition to the address of the next hop mesh node.

The Destination Channel Query function finds the channel on which the packet must be sent. A Packet Queuing mechanism buffers packets and keeps them until the sender switches one radio interface to the corresponding destination channel. To avoid saturation in a given queue, the packets that have been waiting for a period of time exceeding a certain threshold are dropped from the queue. For such purpose, a time stamp is assigned to each new arriving packet and used as a reference to drop the packets.

a. Destination Channel Query: Multi-radio nodes keep the following information about their neighbors in addition to their address:

  •  The number of radio interfaces a node has

  •  The channel assigned to each radio interface

  •  At which time each node will switch from one channel to another

  •  At which time each node can receive packets on each channel.

The mentioned information is kept in the Neighbor Table. To forward a packet, a node gets the receiving channel of the next hop neighbor. With this information, the node can tune a radio to that channel and send the pending packets.

Nodes use control messages to update the information about their neighbors in the Neighbor Table. This is necessary for the adaptive channel allocation mechanisms, where a node changes the channel of its radio interface frequently.

Every time that a node informs its neighbors about switching the channel of its radio interface, the neighbors will update the entry in the Neighbor Table.

In a multi-channel architecture, nodes may need to monitor the available channels to acquire the list of busy channels. When forwarding a packet, the node should make sure that the receiver is not in the monitoring mode. Therefore, the node needs to keep the next monitoring period for all of its neighbors to avoid initializing any transmission.

Program 3 shows an entry of the Neighbor Table.

b. Time Stamp Assignment: Nodes must time stamp the packets waiting to be sent over a certain channel; in case the destination channel is busy, the older packets must be discarded to avoid saturation. Therefore, it is possible to control the length of the buffers.

The time stamp assigned to each packet is equal to the time at which the packet was received from the routing agent (Tenqueu(p)). We define Twait(p) as the maximum amount of time that a packet is allowed to stay in the buffer before it is transmitted over the wireless media. To remove the old packets, a node checks the current time of the system (Tcurrent) and deletes those packets that Tcurrent>Tenqueu(p) + Twait(p).

To avoid the queues from getting saturated in high traffic rate, nodes may select a smaller value for Twait(p).

c. Data Queuing: In multi-radio multi-channel networks, the number of available frequencies is bigger than the number of radio interfaces at each router (|C|>I). Therefore, the neighboring nodes may set their antennas over different channels. A wireless mesh node which has traffic for more than one neighbor, might need to switch to different channels to be able to deliver its packets to the next hop. During the time that a node transmits data over a channel, packets destined for other channels must be buffered to be sent later.

We create sequential first-in, first-out queues for buffering packets in ns-3 for different channels. Each queue corresponds to one of the available channels. The defined queues have the ability to eliminate the old packets automatically as described in Section 2.2.2.

Table 2 shows the fields of each element of the queue with a brief description.

Table 2 Packet buffer elements

2.3 External interference and channel sensing

Simulating two separate wireless networks which interfere with each other is not possible in ns-3. Different wireless networks simulated in the same scenario do not have any effect over each other since ns-3 treated them separately.

For an adaptive channel assignment, we have a scenario where each channel is occupied by different amounts of interference. Nodes estimate the amount of interference through sensing or monitoring all channels at the same time [16, 22]. Simulating this scenario is possible only if the interference threshold is set separately for each channel.

To simulate the external interference in ns-3, we can consider the external interference as it was noise, and therefore, we can model it by properly adjusting the noise figure and the error rate parameter for each radio interface [30]. However, using this approach, we are not able to differentiate between the signal propagation, the noise effects, and the external interference, which introduces an unnecessary complexity to understand the results, as we can simply avoid by developing an independent module.

Therefore, to simulate the external interference on wireless channels, we have created an Interference Emulator for each channel (Program 4). The Interference Emulator is based on a semi-Markov model of the possible channel status (Figure 5), where the status of a channel is considered as either Busy or Idle. The expected idle duration (Tidle) of a random variable that follows an exponential distribution with rate μ is given by

F T idle (t)=1- e - μt .
Figure 5
figure 5

Channel status.

The emulator keeps the channel Busy for a predefined period of time (BusyDuration) according to IEEE 802.11k [31]. The duration of Idle state is determined using an exponential random variable with the mean equal to MeanIdleTime.

In the constructor (line 8 of Program 4), a timer is initialized to call the ChangeStatus function when it expires. Initially, the delay of the timer is set to an exponentially distributed random variable with the mean equal to MeanIdleTime m s.

ChangeStatus changes the status of the channel from Idle_State to Busy_State or vice versa. It sets the timer to BusyDuration after setting the channel status to Busy_State. Whenever it changes the channel status to Idle_State, it sets the timer to a randomly selected duration.

To monitor a channel, a node checks the Interference Emulator Status attached to the channel during the sensing period.

The amount of interference over a channel, induced by an external network, can be varied by setting different values for MeanIdleTime and BusyDuration.

2.4 Routing modifications

When simulating multi-radio multi-channel WMNs, considering a proper routing protocol is challenging. The routing has to be considered as a joint problem with the channel assignment [16, 1820], since any change in the channel radio mapping affects the quality of the links between nodes and may trigger the routing protocol to re-route the traffic. On the other hand, the changes in the traffic pattern have an impact on the next decision of the channel assignment protocol. Therefore, the routing protocol and the routing metric must be modified to adapt to the channel assignment [6, 32].

In ns-3, the available routing protocols are not applicable for multi-radio wireless networks when using dynamic or hybrid channel assignment. Nevertheless, as we are only focusing on fixed WMNs, where nodes are fixed or have limited mobility, the static routing is a simple way to avoid complexity related to the dynamic routing protocols. The global routing simulated in ns-3 provides static routing only for wired networks by filling the routing tables at the beginning of the simulation. In the case of wireless networks, there is no static routing since the topology of a wireless network is determined by the propagation model and other parameters at run time [30].

Therefore, we have attached a static routing table to each node and initialized it using Shortest Path First (SPF) algorithm, minimizing the number of hops between each node and any other destination. Each node knows about the next hop node on the paths to all other nodes in the network. Program 5 shows an entry of the Routing Table. The routing table includes channel information of the next hop nodes. This will give flexibility to routing protocols which apply channel information in the metrics [6]. It is also very useful when the next hop node has more than one receiving radio, and hence, it is accessible over multiple channels.

The Routing Table can be filled either using a file containing all shortest paths between all nodes or during the simulation using route request messages. We have used a file which is filled by R numerical tool [33] feeding the position of nodes in the network.

The routing header which is attached to each packet has the following elements:

  •  Sequence number

  •  Node ID of the source

  •  Node ID of the destination

  •  Node ID of the next hop device to the destination

  •  The time of originating the packet.

The relay nodes on the path from the source to the destination update the ID of the next hop node in the header and forward the packet.

2.5 Synchronization

In a dynamic or hybrid CA, the synchronization can be achieved through exchanging messages either using a fixed radio over a common channel or using the data channels. Since each node assigns a channel to its receiving radio which differs from its neighbors, nodes must be aware of the channels which are being used by their neighbors and any upcoming switching to the new channel, in case of using adaptive CAs. Moreover, if nodes sense the medium to detect the external interference, they must be aware of the sensing period of their neighbors to avoid initiating any transmission on the same channel that is being sensed for detecting external interference.

We use the term event to refer to upcoming switching a channel or sensing a channel event.

We use control messages to make nodes aware of upcoming events. The key point is, instead of reporting the time of each event, nodes report the remaining time slots until the event. Neighboring nodes upon receiving the message add the time slots reported in the received control message to their local time to acquire the time of each event.

To reduce the delay of receiving a control message, which may affect the calculation, the control messages have to get the highest priority to be transmitted along other messages.

This method works fine in ns-3, and nodes are able to synchronize the events with their neighbors.

3 An example of CA implementation: SICA

In this section, we provide a brief explanation about Semi-dynamic Interference aware Channel Assignment (SICA) mechanism as presented in [25, 26]. We explain in detail how each component of SICA is implemented in ns-3. Notice that, in Sections 4 and 5, we tackle the challenge of validating and verifying the simulation model for SICA. We introduce a novel Markov model to validate the SICA results from the theoretical point of view. We also develop a new automated test module to verify the implementation of SICA in the simulator.

Figures 6 and 7 show the class diagram and the collaboration diagram of using the defined classes to model a channel assignment protocol. In the following section, we show with more detail the simulation of a channel assignment mechanism, called SICA, in ns-3 using the components introduced before. Moreover, we provide the details of some important process regarding the Data Forwarding and Channel Selection.

Figure 6
figure 6

Class diagram of the CA class.

Figure 7
figure 7

Collaboration class diagram of the CA class.

SICA is a protocol proposed and simulated in ns-3 for wireless mesh networks [25, 26]. The source code of SICA is available and can be accessed at [34].

SICA is implemented in a network where nodes are equipped with two radio interfaces; each one is able to use a set C (with cardinality |C| > 1) of non-overlapping channels. The radios will be referred to as the receiving radio and the transmitting radio, and denoted by R and T, respectively.

The aim of the channel assignment mechanism is to select the channels which suffer less interferences in terms of both internal and external interference. The channel assignment mechanism selects and assigns a channel to the R radio of each node. Then, the node switches the T radio according to the receiving channel of its neighbors to start transmission. After a channel switch, the T radio remains on the same channel until all packets, which are addressed to the same destination node, have been sent or until a maximum period of time has expired [25].

Nodes estimate the amount of external interference on a channel via sensing the channel. Then, they use control packets called Hello to exchange channel sensing information and inform their neighbors about upcoming interface switching for the receiving radio (R).

3.1 External interference estimation

Using the Channel Emulators (Section 2.3), the status of a channel can be monitored as Busy or Idle. Each node monitors the channel’s status for its receiving radio (R) once in each sensing period of length TSS seconds. For monitoring a channel c, the node checks the status of the corresponding Channel Emulator (ce) at a pre-defined rate (TSRate).

At the end of the monitoring period, the node estimates the amount of external interference over a channel (Bext) using Equation 2.

B ext (c)= T busy ( c ) T busy ( c ) + T idle ( c )

Tbusy and Tidle show the duration of the Busy and the Idle states, respectively.

Note that each node senses only one channel during the monitoring period. It then sends this information to its neighbors, and as its neighbors do the same, it gathers information about other channels via the control packets received from its neighbors (see Section 3.3).

The internal interference is estimated based on the Interference Protocol Model proposed in [35]. Each node is informed by its neighbors about the current channel of their receiving radio. Therefore, a node i can calculate the number of neighboring nodes over channel c (R i (c)). Then, the node estimates the density of interfering nodes on channel c by R i ( c ) N i where N i represents the total number of neighbors of node i.

In SICA, nodes use the average of the estimated external and internal interference over a channel as a metric to select a channel that has more available capacity.

3.2 Channel selection mechanism

The channel selection mechanism is developed as a repeated game which uses the interference estimation information and selects the best possible channel for the receiving radio of a node.

Initially, the channel selection mechanism calculates and assigns a weight to all available channels based on the amount of internal and external interference estimated over a channel. Then, the weights are updated using the multiplicative weight update technique proposed in [36, 37].

We define w t (c) as the weight assigned to channel c at time t. The channel assignment computes the probability of selecting a channel as

P t (c)= w t ( c ) c C w t ( c ) .

Initially, all weights are set to 1; thus, the probability of selecting any channel is identical. After selecting a channel, the node gathers information from its neighbors and updates the loss that it suffered. Then, the weights are updated as follows:

w i , t (c)= w i , t - 1 (c) β M i ( c ) ,

where M i (c) is the loss suffered by node i considering the external and internal interference over channel c[25], and β is the game parameter in the range of (0,1) [37].

Then, SICA selects a random channel considering the probability of each channel as shown in Program 6.

Program 6 computes and sorts the probability of selecting a channel according to Equation 3 (lines 11 to 18 and line 20). Then, it sorts the list of available channels based on the weights (probabilities) assigned to each channel (line 19). Line 21 computes the cumulative probability vector by adding up each probability value with all probabilities lower than it. Then, the probabilities are fed to the empirical random variable generator (lines 22 and 23) which generates a random number as an index for the available channels’ list (line 24 of Program 6).

3.3 Control packet elements

Unlike most CAs proposed in the literature [16, 20, 22], in SICA, there is no common control channel shared by all nodes. In SICA, the synchronization is achieved through exchanging packets over the data channels. Since each node can assign a different channel to its receiving (R) radio, nodes must be aware of the channels used by their neighbors’ R radios. In SICA, a node broadcasts Hello packets to report the channel of its R radio to its neighbors. Figure 8 shows the content of a Hello packet.

Figure 8
figure 8

Hello packet elements.

In addition to the receiving channel announcement, Hello packets are used to inform about the channel sensing information and the receiving channel of the neighboring nodes, so a node can compute the external and internal interference for each channel. In order to do that, there is a field in each packet which contains the amount of external interference over the receiving channel estimated by the node. The number of neighbors and the channels of their receiving radio is also added at the end of each Hello packet.

The remaining time before a node switches its R radio to another channel and the remaining time before the node starts sensing the current channel are also announced via Hello packets. The announcements inform the neighboring nodes about upcoming channel switching or sensing events.

3.4 Data and control transmission

For each channel cC, SICA maintains two sequential first-in first-out queues for buffering packets (Section 2.2.2): control packet queue (Qctrl(c)) and data packet queue (Qd(c)). Qctrl(c) has higher priority than Qd(c). The source and each node in the middle of the path to the destination push each packet to the corresponding queue attached to each channel. Each packet is time stamped when it is pushed to the queue. Using the time stamp as a reference, packets that remain in the queue for a longer time than a certain threshold are discarded to avoid saturation (see Section 2.2.2).

When the transmitter radio switches to a channel, it fetches the stored packets from the queues and sends them until there is no packet left in the queues or until a maximum amount of time has elapsed [25]. Program 7 shows how packets are sent over a channel c.

TInterfaceReadyToSend (line 4) is a function which gets the ID of the channel and the estimation of the required time to send a packet by the T radio and checks whether it is possible or not to send a packet over the channel.

In the following cases, the TInterfaceReadyToSend returns False, which prevents the node from sending packets over channel c:

  •  The channel is being sensed by any of the neighbors.

  •  The channel is busy due to the external interference.

  •  The T interface did not switch to the channel successfully.

  •  The estimated transmission time is less than the remaining time over the current channel.

4 Validating the game model

Model validation deals with building the right model. It is the process of determining whether a simulation model is an accurate representation of the system. Validation can be obtained based on mathematical proof of correctness by comparing the results of the model with other models [38, 39].

The channel assignment in SICA is modeled as a repeated game, where nodes compete to occupy the most vacant channel (as explained in detail in Section 3.2). The game is played repeatedly in a sequence of game rounds. In each round, the player plays a mixed strategy based on the weights assigned to each channel.

In the following section, we use a Markov chain model to prove that the results of the game are consistent with how the system operates. Moreover, the model comparison makes it possible to find under which conditions the game converges to a steady state and which parameters have greater effect on the performance.

We simulate the game model using R numerical tool [33] and compare the result with the results obtained using the Markov model to compute the probability of selecting channels.

We define the process of selecting a channel for a radio interface at each node as a Markov chain.

Figure 9 shows the Markov chain that models how a node selects the channels. The channel set (strategy set) was mapped to the state space of the Markov model. The payoff P i = 1-M i is considered as the reward for the transition between channel c and ć by node i.

Figure 9
figure 9

Markovian process of changing channel at node i .

The probability of having a node at any of the state is given by the Boltzmann distribution [40, 41]. Equation 5 shows the transition probability from state c to ć, which is related to the reward of the destination channel normalized by the total reward of all channels:

Q i , = e P i [ ć ] λ k C e P i [ k ] λ .

Here λ is the learning parameter which means that small values of λ enable the player to choose the optimal strategy more accurately. For our model, we define λ=1-β, where β is the learning parameter used for the game model of SICA (see Section 3).

Using the R tool, we have simulated the game-based learning algorithm of SICA for a node. We define ρ ́ as the final probability vector of selecting each channel equal to the mixed strategy vector obtained for the node. We compare ρ ́, obtained for different rounds of SICA algorithm, with stationary channel transition vector ρ, obtained from the Markov model (Figures 10 and 11). Moreover, we run SICA in ns-3 simulator and report the probability distribution of selecting channels over 200 s of simulation run. (Figures 12 and 13).

Figure 10
figure 10

The probability of selecting a channel. The red line shows the available bandwidth of each channel for game rounds.

Figure 11
figure 11

The probability of selecting a channel where only 50% of the channels are free.

Figure 12
figure 12

The probability of selecting a channel for a node over time.

Figure 13
figure 13

The probability of selecting a channel for a node over time where only 50% of the channels are free.

Figure 10 shows the probability of selecting a channel at each node. For clarity, we show the available bandwidth of each channel with a red line at the same figure with the probability distribution of selecting a channel. As shown, the available bandwidth in each channel decreases linearly from channels 1 to 8. The right y-axis shows the available bandwidth related to the total bandwidth of a channel, while the left y-axis shows the probability of selecting the channel.

Figure 10 shows that the weighted learning algorithm matches quite closely the result from solving the Markov model after 100 rounds for β=0.9.

We examine SICA and the Markov model for the case that 50% of the channels (channels with the IDs from 5 to 8) are occupied by the external interference. The interference occupies 80% of the bandwidth of those channels, while channels with the IDs from 1 to 4 are almost free.Figure 11 shows that in this specific scenario, when the decision about selecting the best channels is more clear, the learning algorithm of SICA converges to the Markov solution much faster, in this case only after 15 rounds.

The other technique for validating a model is showing the model operation behavior over time [38]. To study the behavior of SICA over time, we simulate SICA using ns-3 simulator for a grid network of size 5×5 nodes and 2 CBR traffic flows of 100 kbps. The results are obtained averaging over 10 simulation runs, and the error bars show the 90% confidence interval.Figure 12 shows how the probability of selecting a target channel changes over time, when a different amount of external interference is introduced on each channel. Specifically, the channel with the higher ID suffers more external interference. The figure shows that the nodes tend to select the channel which offers more bandwidth, which is the expected behavior of any CA.Figure 13 shows the average probability of selecting each channel over time when the external interference is introduced on the first four channels (channels with the IDs from 1 to 4) while other channels are free. The figure shows that the probability of selecting any of the busy channels tends to 0 over time, while the probability of selecting any of the free channels (channels with the IDs from 5 to 8) increases to 0.25 which confirms the results shown in Figure 11. Moreover, it can be observed how SICA achieves a proportional utilization of the four free channels.

5 Verifying the simulation model

Model verification ensures that the computer programming and implementation of the conceptual model are correct [38]. Assertion checking is one of the dynamic verification techniques for simulation model. Unlike the static techniques which analyze the program to determine if it is correct (syntax analysis), dynamic verification deals with checking the correctness of the values which are obtained after executing the program [38, 42].

To verify the simulation in ns-3, we design a state space explorer (SSE) which is invoked by the major events that happen in the simulations and performs state checking to verify the correctness of the simulation.

We assume that the simulation, as a system, consists of a group of entities joined together to accomplish the packet delivery goal and hence virtually represents the operation of the real system.

We consider each radio interface as an entity with the following attributes:

  •  The frequency channel it is using

  •  The number of packets it has received

  •  The number of packets it has sent

  •  The number of packets it has dropped.

The State of the system (s t ) is the complete description of the system at any time which includes all entities and values of their attributes. We consider those attributes which are relevant to the objective of interest. s t represents a function of all entities which assigns a value to all attributes. We consider that ξ contains all possible states of the system and call it state space.

The Event (e t ) is any occurrence which changes the state of the system. In our model, we consider the following events:

  •  Sending a packet (Send, unconditional event)

  •  Receiving a packet (Receive, conditional, e t =Receive| e t 0 =Send t 0 <t)

  •  Dropping a packet (Drop, conditional, e t =Drop| e t 0 =Send t 0 <t)

  •  Changing the channel of the radio interface (Channel Change, unconditional event).

We define as the set containing all above events. The first three events occurred between two entities: the sender and the receiver.

An Assertion is a property which must be held for all states of the system to be able to prove the correctness of the simulation.

For the simulation of the channel assignment protocol, we define the following assertions:

  •  Only one channel must be assigned to a radio. In a hybrid CA, after assigning a channel to a radio, the radio may not switch immediately to the new channel since the node must inform the neighbors about the upcoming switching. Moreover, if a radio is receiving data, the node will not switch until the end of the data transmission. Therefore, CA must avoid assigning a new channel to a radio before the previous channel assignation took effect.

  •  There must be a common channel between the sender radio and the receiver radio at any given time. In dynamic and hybrid CAs, the data transmission mechanism must be sure that the radios of the nodes are tuned to the same channel before the transmission starts. This must be achieved through an appropriate synchronization and switching mechanism.

We have designed SSE in ns-3, which starts from the initial state of the system and reaches the successor state following the simulation events, and checks for any violation from the assertions.

s0 is defined as the initial state of the simulation. We define ś as explored by s0 if ś is the successor state of the system after the triggering event e (eE), and we notate it as s 0 e ś. The event handler is triggered by any of the events in , and it calls the state control procedure to check the assertion of the successor event.

fi,c is defined as the number of receiving radios of node i which are tuned to channel c. For any node i, the assertion condition is

k = 1 | C | f i , k = I i ,iN,

where I i represents the number of radio interfaces of node i.

For any transmission pairs (i,j), the assertion condition is

cC, f i , c . f j , c =1.

Algorithm 1 shows the state check algorithm which is triggered by sending, receiving, or dropping packet events and checks if any violations happen from the assertions.

Algorithm 2 shows the process of checking a Channel Change event. The state checker gets the node which selects the new channels and checks whether the number of channels selected by the node is equal or less than the number of radio interfaces it has. In SICA, each node selects only one channel at a time and all nodes are equipped with two radio interfaces; thus, the violation from the assertions never happens for the Channel Change events.

Figures 14 and 15 are obtained running State Space Check algorithm (Algorithm 1) for checking the simulation events of SICA. The simulation parameters are the same as the parameters considered for Figure 13.

Figure 14
figure 14

Protocols events and the assertions.

Figure 15
figure 15

Number of events over each channel.

Figure 14 shows the state space control for Send, Receive, and Drop events. The figure depicts the number of events that happened during 200 s of simulation run and the number of events for which the assertion holds. The figure shows that SICA does not violate any of the assertions.Figure 15 shows the number of packets which have been sent, received, or dropped on each channel when the external interference is introduced over channels with the IDs from 1 to 4. The figure confirms that SICA makes the network use the capacity of the free channels efficiently.Figure 16 shows the average number of radio interfaces over each channel during the simulation time. Note that the simulation parameters are the same as those in Figure 15. The figure shows that the number of radio interfaces over the set of channels that are occupied by external interference decreases over time. It proves that the channel assignment successfully detects and avoids the channels which are occupied by external interference as it is expected.

Figure 16
figure 16

The average number of radio interfaces over each channel during the simulation time.

Figure 17 shows the average number of packets (with a size of 1 kb) in each data queue over the time. The figure shows that the proposed data delivery mechanism ensures that the number of waiting packets in each channel is lower than the default maximum queue size in ns-3 (100 packets) [30]. In addition, the maximum number of packets waiting in a queue at the beginning of the simulation (marked in red), happened over those channels that are kept busy by external interference.

Figure 17
figure 17

The average length of queues during the simulation time.

6 Related work

Channel assignment is a problem that must be solved toward the implementation of wireless mesh networks, and it has been studied extensively during the last years. Although many solutions have been considered for channel assignment [313, 1624, 4347], few proposals are adaptive to the changes in the wireless environment such as the interference induced from other wireless networks [16, 22, 25, 48].

The first interference aware CA mechanism is Breath First Search Channel Assignment (BFSCA) [16]. BFSCA is a priority-based and centralized algorithm which assigns better channels to the links that are close to the gateway. The channel assignment assumes that there is a common channel between nodes for coordination. Another relevant adaptive and semi-dynamic CA proposal is Urban-X [22]. Urban-X is a traffic and interference aware CA which relies on a common channel between nodes for exchanging control packets.

Semi-dynamic Interference aware Channel Assignment (SICA) [25] is a game-based CA mechanism that considers both the internal and external interference. SICA is distributed and assumes that in wireless networks, nodes do not have perfect information about their neighbors. This is the main contribution that differentiates SICA from other game-based CAs [24, 4955]. Moreover, nodes do not need to tune one radio interface over a common channel. The implementation of SICA in ns-3 has been detailed in the previous section.

Simulating SICA and any other hybrid or dynamic CA in the current network simulators needs some general components which are missing in all simulators. The necessary modifications for ns-2 simulator [56], for evaluating multi-radio wireless networks, are presented in [29]. The manual is restricted to the static channel assignment, which assigns a channel to the radio interface of a node before the simulation starts and keeps the configuration until the end of the simulation. Unlike the previous work, we provide the essential steps toward simulating channel assignment protocols in ns-3 simulator in this paper, including the validation of the game model used in SICA with a Markov model.

Furthermore, to the best of the authors’ knowledge, this is the first time that the correctness of the channel assignment simulation is controlled through checking the simulation events.

7 Conclusions

In this paper, we have presented the extensions which must be done in ns-3 simulator to simulate channel assignment mechanisms for multi-radio wireless networks. We provided the simulation details of the Semi-dynamic Interference aware Channel Assignment (SICA) mechanism which is proposed in [25, 26]. In addition, the source code of SICA is published and available in [34]. We also tackled the challenge of testing the simulation model in channel assignment protocols by using SICA as an example. We proposed a new Markov model and an automated test algorithm.

We verified the simulation of SICA using a novel state space checker which checks the relevant simulation events for any violation from the feasibility conditions of channel assignment solution. The results prove the correctness of the simulation and show that SICA is capable of utilizing the channels in a fair and efficient way. Moreover, we justified the results obtained by the game theory-based model of SICA, using a new Markov chain model.

In the future, we plan to expand our implementation by improving the data delivery mechanism to incorporate differentiated priority scheduling, such that higher priority traffic can be transmitted in preference to lower priority traffic. It is also desired to consider traffic rate adaptation for channel assignment in addition to designing a method to avoid saturation of data queues for high rate traffic. We also plan to investigate the necessary modifications to the routing protocol for making it able to work along hybrid channel assignment protocols.


  1. IEEE-SA: IEEE standard for information technology-telecommunications and information exchange between systems-local and metropolitan area networks-specific requirements - part 11: wireless LAN medium access control (MAC) and physical layer (PHY) specifications. IEEE Std 802.11-2007 (Revision of IEEE Std 802.11-1999) 2007. doi:10.1109/IEEESTD.2007.373646

    Google Scholar 

  2. IEEE-SA: IEEE standard for information technology-telecommunications and information exchange between systems-local and metropolitan area networks-specific requirements - part 11: wireless LAN medium access control (MAC) and physical layer (PHY) specifications amendment 10: mesh networking. IEEE Std 802.11s-2011 (Amendment to IEEE Std 802.11-2007) 2011.

    Google Scholar 

  3. Crichigno J, Wu M-Y, Shu W: Protocols and architectures for channel assignment in wireless mesh networks. Ad Hoc Netw 2008, 6: 1051-1077. doi:10.1016/j.adhoc.2007.10.002

    Article  Google Scholar 

  4. Zhang L, Wang X, Liu C: Channel assignment in multi-radio multi-channel wireless mesh network by topology approach. In Proc. WRI Int. Conf. Communications and Mobile Computing CMC ’09. IEEE, Yunnan, China; 6–8 Jan 2009:358-362. doi:10.1109/CMC.2009.245

    Google Scholar 

  5. Xu L, Xiang Y, Shi M: A novel channel assignment algorithm based on topology simplification in multi-radio wirelesss mesh networks. In Proc. 25th IEEE Int. Performance, Computing, and Communications Conf. IPCCC 2006. IEEE, Phoenix, AZ, USA; 10–12 April 2006:230-238. doi:10.1109/.2006.1629411

    Google Scholar 

  6. Draves R, Padhye J, Zill B: Routing in multi-radio, multi-hop wireless mesh networks. In Proceedings of the 10th Annual International Conference on Mobile Computing and Networking. ACM, New York; 2004:114-128.

    Google Scholar 

  7. Marina MK, Das SR, Subramanian AP: A topology control approach for utilizing multiple channels in multi-radio wireless mesh networks. Comput. Netw 54(2):241-256. (IEEE, Boston, MA, USA, 3–7 Oct. 2005). doi:10.1016/j.comnet.2009.05.015

  8. Subramanian AP, Gupta H, Das SR, Cao J: Minimum interference channel assignment in multiradio wireless mesh networks. IEEE Trans. Mobile Comput Dec. 2008, 7(12):1459-1473.

    Article  Google Scholar 

  9. Avallone S, Akyildiz IF: A channel assignment algorithm for multi-radio wireless mesh networks. Proc. 16th Int. Conf. Comput Commun. Netw. ICCCN 2007 2008, 31(7):1343-1353.

    Google Scholar 

  10. Skalli H, Ghosh S, Das SK, Lenzini L: Channel assignment strategies for multiradio wireless mesh networks issues and solutions. Commun. Mag. IEEE 2007, 45(11):86-95. doi:10.1109/MCOM.2007.4378326

    Article  Google Scholar 

  11. Shao B, Tao J, Wang F: Static channel assignment with the physical interference model for maximum capacity in multi-radio multi-channel wireless mesh networks. In Proc. 9th Int Grid and Cooperative Computing (GCC) Conf. IEEE, Nanjing, China; 1–5 Nov 2010:338-343. doi:10.1109/GCC.2010.72

    Google Scholar 

  12. Raniwala A, Gopalan K, Chiueh T-c: Centralized channel assignment and routing algorithms for multi-channel wireless mesh networks. SIGMOBILE Mob. Comput. Commun. Rev 2004, 8(2):50-65.

    Article  Google Scholar 

  13. Amiri Nezhad M, Cerdà-Alabern L: Utility based channel assignment mechanism for multi radio mesh networks. In Proceedings of the 8th ACM International Workshop on Mobility Management and Wireless Access. MobiWac ’10. ACM, New York; 2010:68-74.

    Chapter  Google Scholar 

  14. Gong MX, Midkiff SF, Mao S: On-demand routing and channel assignment in multi-channel mobile ad hoc networks. Ad Hoc Netw 2009, 7(1):63-78. Elsevier

    Article  Google Scholar 

  15. Bahl P, Chandra R: SSCH: slotted seeded channel hopping for capacity improvement in IEEE 802.11 ad-hoc wireless networks. 2004.

    Chapter  Google Scholar 

  16. Ramachandran KN, Belding EM, Almeroth KC, Buddhikot MM: Interference-aware channel assignment in multi-radio wireless mesh networks. In Proc. 25th IEEE Int. Conf. Computer Communications INFOCOM 2006. IEEE, Barcelona, Spain; Apr 2006:1-12. doi:10.1109/INFOCOM.2006.177

    Chapter  Google Scholar 

  17. Wu X, Liu J, Chen G: Analysis of bottleneck delay and throughput in wireless mesh networks. In Proc. IEEE Int Mobile Adhoc and Sensor Systems (MASS) Conf. IEEE, Vancouver, BC; Oct 2006:765-770. doi:10.1109/MOBHOC.2006.278648

    Google Scholar 

  18. Alicherry M, Bhatia R, Li LE: Joint channel assignment and routing for throughput optimization in multiradio wireless mesh networks. IEEE J. Select. Areas Commun 2006, 24(11):1960-1971. doi:10.1109/JSAC.2006.881641

    Article  Google Scholar 

  19. Mohsenian-Rad AH, Wong VWS: Joint logical topology design, interface assignment, channel allocation, and routing for multi-channel wireless mesh networks. IEEE Trans. Wireless Commun 2007, 6(12):4432-4440. doi:10.1109/TWC.2007.060312

    Article  Google Scholar 

  20. Raniwala A, Chiueh T-C: Architecture and algorithms for an IEEE 802.11-based multi-channel wireless mesh network. In INFOCOM 2005. 24th Ann. Joint Conf. IEEE Comput Commun. Soc. Proc. IEEE. IEEE, Miami, FL, USA; 13–17 March 2005:2223-2234. doi:10.1109/INFCOM.2005.1498497

    Google Scholar 

  21. Kyasanur P, Vaidya NH: Routing and link-layer protocols for multi-channel multi-interface ad hoc wireless networks. SIGMOBILE Mob. Comput. Commun. Rev 2006, 10(1):31-43.

    Article  Google Scholar 

  22. Wooseong Kim MDF, Andreas JK, Gerla M: Urban-X: towards distributed channel assignment in cognitive multi-radio mesh networks. In IFIP Wireless Days. IEEE, Venice; 2010.

    Google Scholar 

  23. Kim S-H, Suh Y-J: Rate-based channel assignment algorithm for multi-channel multi-rate wireless mesh networks. Proc. IEEE Global Telecommunications Conf. IEEE GLOBECOM 2008 2008, 1-5. doi:10.1109/GLOCOM.2008.ECP.125

    Google Scholar 

  24. Felegyhazi M, Cagalj M, Bidokhti SS, Hubaux J-P: Non-cooperative multi-radio channel allocation in wireless networks. In INFOCOM 2007. 26th IEEE International Conference on Computer Communications. IEEE. IEEE, New Orleans, LA, USA; 30 Nov. 2008–4 Dec. 2008:1442-1450.

    Google Scholar 

  25. Nezhad MA, Cerda-Alabern L: Adaptive channel assignment for wireless mesh networks using game theory. In Proc. IEEE 8th Int Mobile Adhoc and Sensor Systems (MASS) Conf. IEEE, Valencia, Spain; 17–22 Oct 2011:746-751. doi:10.1109/MASS.2011.82

    Google Scholar 

  26. Amiri Nezhad M, Cerda-Alabern L, Bellalta B, Guerrero Zapata M: A semi-dynamic, g.b., interference aware channel assignment for multi-radio multi-channel wireless mesh networks. Int. J. Ad Hoc Ubiquitous Comput 2013, 14(3):200-2013. doi:10.1504/IJAHUC.2013.058237, InderScience

    Article  Google Scholar 

  27. Dhananjay A, Zhang H, Li J, Subramanian L: Practical, distributed channel assignment and routing in dual-radio mesh networks. In SIGCOMM ’09: Proceedings of the ACM SIGCOMM 2009 Conference on Data Communication. ACM, New York; 2009:99-110. doi:10.1145/1592568.1592581

    Chapter  Google Scholar 

  28. Robinson J, Papagiannaki K, Diot C, Guo X, Krishnamurthy L: Experimenting with a multi-radio mesh networking testbed. In WiNMee Workshop. IEEE, Seoul, Korea; 3 Apr 2005.

    Google Scholar 

  29. Aguero-Calvo R, Perez-Campo J: Adding Multiple Interface Support in NS-2. University of Cantabria, Cantabria, Spain; 2007. .

    Google Scholar 

  30. ns-3 Development Team: ns-3 Manual (release ns-3.9). ns-3 project, Seattle, WA, USA; 2011. .

    Google Scholar 

  31. IEEE-SA: IEEE standard for information technology telecommunications and information exchange between systems local and metropolitan area networks specific requirements part 11: wireless LAN medium access control (MAC) and physical layer (PHY) specifications amendment 1: radio resource measurement of wireless LANs. IEEE Std 802.11k-2008 (Amendment to IEEE Std 802.11-2007) 2008. doi:10.1109/IEEESTD.2008.4544755

    Google Scholar 

  32. Youssef M, Ibrahim M, Abdelatif M, Chen L, Vasilakos AV: Routing metrics of cognitive radio networks: a survey. Commun. Surv. Tutor. IEEE 2014, 16(1):92-109. doi:10.1109/SURV.2013.082713.00184

    Article  Google Scholar 

  33. RDC Team: R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna; 2008. R Foundation for Statistical Computing. . R Foundation for Statistical Computing. .

    Google Scholar 

  34. Nezhad MA: Semi-dynamic Interference Aware Channel Assignment (SICA). 2012.

    Google Scholar 

  35. Gupta P, Kumar PR: The capacity of wireless networks. IEEE Trans. Inform. Theory 2000, 46(2):388-404. doi:10.1109/18.825799

    Article  MathSciNet  Google Scholar 

  36. Freund Y, Schapire RE: Game theory, on-line prediction and boosting. In COLT ’96: Proceedings of the Ninth Annual Conference on Computational Learning Theory. ACM, New York; 1996:325-332.

    Chapter  Google Scholar 

  37. Freund Y, Schapire RE: Adaptive game playing using multiplicative weights. Games Econom. Behav 1999, 29(1–2):79-103.

    Article  MathSciNet  Google Scholar 

  38. Sargent RG: Verification, validation and accreditation of simulation models. In Proceedings of the 2000 Winter Simulation Conference. IEEE, Orlando, FL, USA; 10–13 Dec 2000:50-591. doi:10.1109/WSC.2000.899697

    Chapter  Google Scholar 

  39. Law AM: How to build valid and credible simulation models. In Proceedings of the 2009 Winter Simulation Conference (WSC). IEEE, Austin, TX, USA; 13–16 Dec 2009:24-33. doi:10.1109/WSC.2009.5429312

    Chapter  Google Scholar 

  40. Weibing L, Xianjia W, Binbin H: Evolutionary Markov games based on neural network. In Proceedings of the 6th International Symposium on Neural Networks: Advances in Neural Networks - Part III. ISNN 2009. Springer, Berlin, Heidelberg; 2009:109-115. doi:10.1007/978-3-642-01513-7-12. . doi:10.1007/978-3-642-01513-7-12. .

    Chapter  Google Scholar 

  41. Kindermann R: Markov Random Fields and Their Applications (Contemporary Mathematics; V. 1). Amer Mathematical Society; 1980. .

    Book  Google Scholar 

  42. Balci O: Verification, validation, and accreditation. In Proceedings of the 30th Conference on Winter Simulation. WSC ’98. IEEE Computer Society Press, Los Alamitos; 1998:41-4. .

    Google Scholar 

  43. Si W, Selvakennedy S, Zomaya AY: An overview of channel assignment methods for multi-radio multi-channel wireless mesh networks. J. Parallel Distrib. Comput 2010, 70: 505-524. doi:10.1016/j.jpdc.2009.09.011

    Article  Google Scholar 

  44. Cheng H, Xiong N, Vasilakos AV, Yang LT, Chen G, Zhuang X: Nodes organization for channel assignment with topology preservation in multi-radio wireless mesh networks. Ad Hoc Netw 2012, 10(5):760-773. doi:10.1016/j.adhoc.2011.02.004. Special Issue on Cognitive Radio Ad Hoc Networks

    Article  Google Scholar 

  45. Demestichas PP, Stavroulaki VAG, Papadopoulou LM, Vasilakos AV, Theologou ME: Service configuration and traffic distribution in composite radio environments. Syst. Man, Cybernet. Part C: Appl. Rev. IEEE Trans 2004, 34(1):69-81. doi:10.1109/TSMCC.2003.818500

    Article  Google Scholar 

  46. Duarte PBF, Fadlullah ZM, Vasilakos AV, Kato N: On the partially overlapped channel assignment on wireless mesh network backbone: a game theoretic approach. Select. Areas Commun. IEEE J 2012, 30(1):119-127. doi:10.1109/JSAC.2012.120111

    Article  Google Scholar 

  47. He Y, Yuan R, Sun J, Gong W: Semi-random backoff: towards resource reservation for channel access in wireless lans. In 17th IEEE International Conference on Network Protocols, 2009. ICNP 2009. IEEE, Princeton, NJ, USA; 13–16 Oct 2009:21-30. doi:10.1109/ICNP.2009.5339700

    Chapter  Google Scholar 

  48. Lopez-Perez D, Chu X, Vasilakos AV, Claussen H: On distributed and coordinated resource allocation for interference mitigation in self-organizing LTE networks. Netw. IEEE/ACM Trans 2013, 21(4):1145-1158. doi:10.1109/TNET.2012.2218124

    Article  Google Scholar 

  49. Gao L, Wang X, Xu Y, Chen W: Distributed multi-radio channel allocation in multi-hop ad hoc networks. In ICC’08. IEEE, Beijing, China; 19–23 May 2008:3156-3160.

    Google Scholar 

  50. Chen T, Zhong S: Perfectly fair channel assignment in non-cooperative multi-radio multi-channel wireless networks. Comput. Commun 2009, 32(6):1058-1061.

    Article  Google Scholar 

  51. Shah I, Jan S, Loo K-K: Selfish flow games in non-cooperative multi-radio multi-channel wireless mesh networks with imperfect information. In 2010 6th International Conference on Wireless and Mobile Communications (ICWMC). IEEE, Valencia, Spain; 20–25 Sept 2010:219-225.

    Chapter  Google Scholar 

  52. Kim H-K, Oh C-Y, Lee T-J: Fair and collision-aware multi-channel assignment based on game theory for wireless multi-hop networks. IEICE Trans. Commun 2009, 92: 1282-1290. doi:10.1587/transcom.E92.B.1282

    Article  Google Scholar 

  53. Byun S-S, Balashingham I, Vasilakos AV, Lee H-N: Computation of an equilibrium in spectrum markets for cognitive radio networks. Comput. IEEE Trans 2014, 63(2):304-316. doi:10.1109/TC.2012.211

    Article  MathSciNet  Google Scholar 

  54. Khan MA, Tembine H, Vasilakos AV: Game dynamics and cost of learning in heterogeneous 4G networks. Select. Areas Commun. IEEE J 2012, 30(1):198-213. doi:10.1109/JSAC.2012.120118

    Article  Google Scholar 

  55. Khan MA, Tembine H, Vasilakos AV: Evolutionary coalitional games: design and challenges in wireless networks. Wireless Commun. IEEE 2012, 19(2):50-56. doi:10.1109/MWC.2012.6189413

    Article  Google Scholar 

  56. K Fall, (eds.): KV, The ns Manual (formerly ns Notes and Documentation). ACM, Berkeley; 2003. .

    Google Scholar 

Download references


This work has been partially supported by the Spanish Government under project TEC2012-32354 (Plan Nacional I+D) and TIN2013-47272-C2-2, and by the Catalan Government (SGR-2014-1173 and SGR-2014-881).

Author information

Authors and Affiliations


Corresponding author

Correspondence to Maryam Amiri-Nezhad.

Additional information

Competing interests

The authors declare that they have no competing interests.

Authors’ original submitted files for images

Rights and permissions

Open Access This article is distributed under the terms of the Creative Commons Attribution 2.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Amiri-Nezhad, M., Guerrero-Zapata, M., Bellalta, B. et al. Simulation of multi-radio multi-channel 802.11-based mesh networks in ns-3. J Wireless Com Network 2014, 118 (2014).

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: