M. Thottan and M.C. Weigle, Impact of 802.11e EDCA on Mixed TCP-based
Applications, Proceedings of the International
Wireless Internet Conference (WICON), Boston, MA, August 2006.
There has been an explosive growth in the use of wireless LANs (WLANs)
to support network applications ranging from web-browsing and
file-sharing to voice calls. It is difficult to optimally configure
WLAN components, such as access points (APs), to meet the
quality-of-service requirements of the different applications, as well
as ensuring flow-level fairness. Recent work has shown that the
widely-deployed IEEE 802.11 MAC Distributed Coordination Function
(DCF) is biased against downstream flows. The new IEEE 802.11e
standard introduces QoS mechanisms, such as Enhanced Distributed
Channel Access (EDCA), that allow this unfairness to be addressed. So
far, only limited work has been done to evaluate the impact of these
MAC protocols on TCP-based applications. In this paper, through ns-2
simulations, we evaluate the impact of EDCA on TCP application traffic
consisting of both long and short-lived TCP flows. We find that the
performance of TCP applications is very dependent upon the settings of
the EDCA parameters and buffer lengths at the AP. We also show that
the performance of the admission control strategy employed depends on
the buffer lengths at the AP and the traffic intensity.
Scripts for Running the Experiment
Our source is based on the 802.11 and
802.11e EDCA code developed at TKN by Sven Wietholter and
Christian Hoene.
We made additions to priq.h,
priq.cc, d-tail.h, and d-tail.cc to allow for monitoring of statistics.
Our additions are labeled with "M. Weigle, Jul 2006" comments.
Note: If you want to use Full-TCP, you'll also want to make the changes described
here.
Abstract
Experiment Scripts
Contents of scripts.tgz (also available
individually):
- tcp-wlan.tcl contains this helper function that might be useful in other scripts:
# helper function for accessing queue in the wireless node
Node/MobileNode instproc get-ifq {} {
$self instvar ifq_
return $ifq_(0)
}
ns-2 Source