You have learned in class that in 802.11 wireless networks, cards can work at various different bit rates. Many advantages and dis advantages were also discussed. In this experiment, we will see how the interaction or the lack of interaction, between the bit rate parameters effect the overall network performance (throughput).
For this assignment you will make use of 4 laptops which have been set-up in Everitt Lab Room # 236. We will use the letters A B C and D to refer to the nodes (from left to right: they are all arranged in a line).
To run the required experiments, we should configure each node to be able to communicate with other nodes. As a first step load the required drivers for the wireless network interface cards, using the following command.
$ sudo /opt/ece498nhv/madwifi/reload-driver.sh
For the whole experimental setup, we need each node to be setup in ad-hoc mode with an IPv4 address.
The cards on the machines use the Atheros chipset and are capable of running in 802.11 a or b or g modes. First, we will set the nodes to use 11a (since the 5.4 Ghz band is fairly un-populated).
The following command "iwpriv" can be used to set the card to use 11a. This command is to be executed on all machines.
$ sudo /sbin/iwpriv ath0 mode 1
Now, we need to set the card to use the ad-hoc mode (a wireless card can be used in "infrastructure", "monitor" etc.), and use an essid. Essid is used by cards to "associate" into a network. You may use the Linux configuration tool "iwconfig". For more information on what the different parameters mean, you can see the man pages ("man iwconfig"). Again, execute this command on all machines.
$ sudo /sbin/iwconfig ath0 mode ad-hoc essid "wlab" # Wait 5 seconds to complete channel scan. Then *force* to channel 64 $ sudo /sbin/iwconfig ath0 channel 64
This completes the layer 2 set up for the wireless card. Next, we need to assign an IPv4 address for the cards. Each node has to use a different IP address to be able to communicate. In this example, we will use the IP addresses 192.168.20.1 to 192.168.20.4 (choice is arbitrary and can be changed, but care should be taken to reflect the same in any of the following example commands).
Execute the following command on all nodes, replacing the trailing X to reflect the IP address chosen for that node.
# Replace X with the node number, ie. from 1 to 4. For the first # node the IP address would be 192.168.20.1, and for the second # 192.168.20.2 etc. $ sudo /sbin/ifconfig ath0 192.168.20.X
Please check connectivity between all node pairs, i.e.,. between A-B, A-C, A-D, B-C, B-D, C-D.
You may use the popular Internet tool "ping" to check connectivity. To check connectivity between A and B, you must ping B from A (shown below). Do the same for all pairs as mentioned above.
# Check connectivity between A and B. node_a>$ ping 192.168.20.2
We will use the popular Internet measurement tool iperf to understand UDP performance (already installed on the machine). Our main goal is to observe network throughput when using heterogeneous bit-rates.
We already know that bit-rate is a sender side parameter. For our experimentation, let us assume that two pairs of nodes wish to communicate. Lets say A <--> B and C <--> D. For the entire experimentation, B and D will only be used as receivers.
To make the observation that we wish to, we need to set the two flows to use different bit rates. You can use the following command on Node A to make it use a 6Mbps bit rate for all outgoing communication.
# Set Node A to use a 6 Mbps out going rate node_a> sudo /sbin/iwconfig ath0 rate 6M
Similarly, set up Node C to use a 54Mbps bit rate.
# Set Node C to use a 54 Mbps out going rate node_c> sudo /sbin/iwconfig ath0 rate 54M
The above commands will force Node A to use a 6M rate for all it's outgoing communication and Node C to use a 54Mbps bit rate.
Since, we are interested in testing the throughput put between the node pairs, A <--> B and C <--> D, we will make use of an UDP based test with the help of IPERF.
First start the UDP listening server on node B and node D. You can use the following commands to do so.
# Start IPERF in UDP server mode (prints statistics every second) # On Node B node_b> iperf -s -u -i 1 # On Node D node_d> iperf -s -u -i 1
Since we set the node bit rates to 6M and 54M for Nodes A and B respectively, we will generate enough traffic to fully utilize the output traffic links. You may use the following commands.
When asked to obtain throughput between A <--> B, the following command can be used. Run the following command only when asked to do so (Not now !!!).
# Generate 6 Mbps UDP traffic to B from A, for 120 seconds node_a> iperf -c 192.168.20.2 -u -b 6m -t 120
Similarly to obtain the throughput between C <--> D, use the following command. Run the following command only when asked to do so (Not now !!!).
# Generate 54 Mbps UDP traffic to D from C, for 120 seconds node_c> iperf -c 192.168.20.4 -u -b 54m -t 120
In the previous section you saw how you can get the throughput between nodes A <--> B and C <--> D. In this section you will have to repeat the tests when asked to do so, under different conditions.
In general the above data should have no surprises.
Now, let us look at the simultaneous case. Obtain the following data.
Please turn in all the throughput data obtained in each case. Make sure you label them, so we can understand what you turn in. Finally, explain briefly why the data looks the way it does. Also try answering the following questions.1. In the simultaneous case, do you see why the node transmitting at the higher bit rate may experience lesser throughput than the node transmitting at the lower bit rate.
2. Why is there so much variance in data observed between each second for the high bit rate case.
3. For the high bit rate flow, changing the orientation of cards, or creating an obstruction, such as placing your hand over the transmitting wireless card, creates a noticeable variation in the observed throughput. The same may or may not be observed for the pair of nodes communicating at the lower bit rate. Could you explain why this may be so?
Version: $Revision 0.2 $. Last Modified: $Date 2006/02/27 19:00 $. Author: $Name- Chandrakanth Chereddi $.