Throughput and packet loss of 802.11a, b and g (Infra-structured Mode)

128 views
Skip to first unread message

vicente angelo de sousa junior

unread,
Jun 24, 2015, 2:06:11 PM6/24/15
to ns-3-...@googlegroups.com

Hello,


I am facing some issues to get (or understand) throughput and packet loss of 802.11g in NS-3. In fact, my first goal is to study the MAC layer in almost lossless wireless channel conditions.


I run some very simple simulations in a deployment with 1 AP and 4 STAs randomly positioned inside a square of 1 m x 1 m (to model almost lossless channel conditions). The offered traffic is 500kbps (ON/OFF CBR) and 500s of simulation time. Each STA has a separate UDP traffic source/sink in both directions UL and DL (staring in different times. One second after each other). Channel model is friss at 2.4GHz regardless the 802.11 standard configured (again, to model the same channel conditions among standards). With this configuration, I expect to have a system free of PHY errors (or having few errors).


Measurements are done with Flowmonitor framework.


I run simulations when changing 802.11 standard (a, b and g). The results were:


802.11g (for UL flows) - wifi.SetStandard (WIFI_PHY_STANDARD_80211g):
Flow_ID, Lost_Packets, Tx_Packets, Tx_Bytes, TxOffered(Mbps), Rx_Packets, Rx_Bytes, T_put(Mbps), Mean_Delay_Rx_Packets, Mean_Jitter, Packet_Loss_Ratio

1, 6344, 20805, 31207500, 0.509535, 14461, 21691500, 0.354164, 1.90789, 0.00632145, 0.304927

3, 6209, 20805, 31207500, 0.509535, 14596, 21894000, 0.357471, 1.97855, 0.00641041, 0.298438

4, 6523, 20805, 31207500, 0.509535, 14282, 21423000, 0.34978, 1.8168, 0.0062338, 0.31353

6, 5436, 20805, 31207500, 0.509535, 15369, 23053500, 0.376402, 2.25039, 0.00674667, 0.261283


802.11a (for UL flows) – wifi.SetStandard(WIFI_PHY_STANDARD_80211g):

Flow_ID, Lost_Packets, Tx_Packets, Tx_Bytes, TxOffered(Mbps), Rx_Packets, Rx_Bytes, T_put(Mbps), Mean_Delay_Rx_Packets, Mean_Jitter, Packet_Loss_Ratio

1, 0, 20805, 31207500, 0.509535, 20805, 31207500, 0.509535, 0.000795191, 0.000136946, 0

3, 0, 20805, 31207500, 0.509535, 20805, 31207500, 0.509535, 0.000369223, 1.74444e-05, 0

4, 0, 20805, 31207500, 0.509535, 20805, 31207500, 0.509535, 0.000800303, 0.000141829, 0

6, 0, 20805, 31207500, 0.509535, 20805, 31207500, 0.509535, 0.000368157, 1.71453e-05, 0


802.11b (for UL flows) - wifi.SetStandard(WIFI_PHY_STANDARD_80211b)

Flow_ID, Lost_Packets, Tx_Packets, Tx_Bytes, TxOffered(Mbps), Rx_Packets, Rx_Bytes, T_put(Mbps), Mean_Delay_Rx_Packets, Mean_Jitter, Packet_Loss_Ratio

1, 0, 20805, 31207500, 0.509535, 20805, 31207500, 0.509534, 0.0017534, 0.000414937, 0

3, 0, 20805, 31207500, 0.509535, 20805, 31207500, 0.509534, 0.00150108, 0.000194689, 0

4, 0, 20805, 31207500, 0.509535, 20805, 31207500, 0.509534, 0.00171491, 0.000421918, 0

6, 0, 20805, 31207500, 0.509535, 20805, 31207500, 0.509534, 0.00146369, 0.000174979, 0


Comparing the results, the behavior of 802.11g is strange. I could not found a reason to explain why (considering the same channel conditions) I got only 300kbps of average throughput and a high lost packets (1/3 of sent packets are still on MAC queue in the end of simulation), while lost packets are 0 and throughput is about 500 kbps with 802.11 a and b.


I got the same qualitative results considering DL flows, with higher lost packets in 802.11g and zero with 802.11b and 802.11a.


Searching on NS-3 mailing list, I found some discussion about similar issue (https://groups.google.com/forum/#!searchin/ns-3-users/802.11g$20/ns-3-users/Ge7gGSAW83s/W01NkbfxqUkJ). I tested the proposed solution (change 802.11g slot time and other). I got almost the same results I had before. The modifications were:


Config::Set ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Mac/Slot", TimeValue (MicroSeconds (9.0)));

Config::Set ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Mac/Sifs", TimeValue (MicroSeconds (16)));

Config::Set ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Mac/EifsNoDifs", TimeValue (MicroSeconds (16 + 44)));

Config::Set ("/NodeList/*/DeviceList/*/$ns3::WifiNetDevice/Mac/Pifs", TimeValue (MicroSeconds (16 + 9)));


And the results were:


802.11g-modified (wifi.SetStandard (WIFI_PHY_STANDARD_80211g)):
Flow_ID, Lost_Packets, Tx_Packets, Tx_Bytes, TxOffered(Mbps), Rx_Packets, Rx_Bytes, T_put(Mbps), Mean_Delay_Rx_Packets, Mean_Jitter, Packet_Loss_Ratio

1, 6361, 20805, 31207500, 0.509535, 14444, 21666000, 0.353748, 1.88162, 0.00621629, 0.305744

3, 6292, 20805, 31207500, 0.509535, 14513, 21769500, 0.355438, 1.9539, 0.00653599, 0.302427

4, 6525, 20805, 31207500, 0.509535, 14280, 21420000, 0.349731, 1.83437, 0.0066302, 0.313627

6, 5610, 20805, 31207500, 0.509535, 15195, 22792500, 0.372141, 2.1765, 0.00678538, 0.269647


I also performed a simpler simulation test. Using the script examples/wireless/rateAdapationDistance.cc, I plot the attached figure that shows throughput vs distance for the tested 802.11 standards. It seems that for one STA, the modification on MAC timer (generating what I named 802.11g-modified) solve the throughput problem, but not for more than one STA.


Any suggestion? I wonder if are there other parameters to change in order to 802.11g has the same performance than 802.11a? Now, I am going to dig into the code and debug 802.11g to see what is happening...


The code I'm using is attached.


Any help are very welcome, including suggestion on how to start my debug investigations.


BR


Vicente Sousa

tput_802_11_a_b_g_g_modified.jpg
wifi-network_802_11_g.cc
Reply all
Reply to author
Forward
0 new messages