# An Accurate Platform for Investigating TCP Performance in Wi-Fi Networks
## 4 Evaluation
### Fairness Evaluation  
This section presents a fairness evaluation using [PERSON]'s fairness index, which is as crucial as other network metrics (e.g., RTT and throughput), especially with multiple simultaneous client communications. For example, in a Wi-Fi network with the capture effect [49], if a client occupies an excess amount of bandwidth, there is a possibility that others will be unable to communicate. Therefore, examining fairness is essential when evaluating CCAs. In this evaluation, we revise the previous topology by making two changes. First, we consider two cases of the S1-S2 link, with bandwidths of 10 Mbps and 100 Mbps. Second, there are ten Wi-Fi clients in this scenario, as shown in Figure 11. During the evaluation, with a total length of 40 s, each client connects to the server with a 20 s TCP flow. The starting points of two subsequent TCP flows are one second apart (for example, the third and fourth flows start at 3 rd and 4 th second, respectively) in the first 20 s. In the last 20 s, the number of TCP flows decreases by one every 1 s until the experiment ends. We also collect throughput results and calculate fairness as follows. First, we use tcpdump [50] to capture the packets and measure the average throughput in 0.4 s. The running average throughput is calculated by shifting every 0.2 s. Specifically, we initially measure the packets arriving up to 0.4 s after the start of transmission, and we next measure the packets arriving between 0.2 and 0.6 s. The average throughput of each flow at the same time is then used to calculate Jain's fairness index as described in Section 3. All tasks from packet capture to fairness index calculation have also been wrapped into a script that can be automatically executed. For all experiments with all CCAs, we plot the cumulative distribution functions (CDFs) of the fairness index for the 10 Mbps and 100 Mbps links in Figure 12a,b, respectively. Figure 11: Topology for fairness evaluation. Figure 12: Jain’s fairness index results with 10 Mbps and 100 Mbps on the S1–S2 link. Figure 12a illustrates the fairness results when ten clients compete for a share of a link with a bandwidth of 10 Mbps, which becomes a bottleneck. As shown, an index value of 1.0 is accomplished in approximately 10% of all cases with all CCAs. In other cases, the fairness index values of the different CCAs are different. Among all fourteen CCAs, BIC has the worst performance; fairness index values of 0.8 or less account for approximately 60% of all cases. Meanwhile, Reno shows the best performance, with fewer than 40% of cases having fairness values of this level. In this evaluation, there are cases in which the fairness deteriorates due to the intentional provision of time to increase or decrease the flow. In particular, BIC is strongly influenced by this, while other CCAs perform nearly as well as Reno. Figure 12b shows the fairness results when the bandwidth between the switches is increased to 100 Mbps. Compared to the previous results, the fairness index is generally higher. In more than 90% of cases, the fairness index values of all CCAs are 0.8 or higher. Taking BIC as an example, when the bandwidth between the switches is 10 Mbps, the fairness index is 0.768, but when the bandwidth is 100 Mbps, the fairness index is 0.950. Similar observations can be found for the other CCAs. The fairest CCA is Reno, with a median fairness index value of 0.962. In this environment, where the optimal transmission rate is constantly changing, Reno does not cause substantial fluctuations; thus, it achieves the best fairness. With the emulator approach, it is also convenient to track the dynamic behavior of all TCP flows, for example, for further investigation. In the following, we present the behaviors of CUBIC flows in the fairness evaluation. We select CUBIC because it is the default CCA on many Wi-Fi clients. Figure 13 shows the CUBIC flows for both cases of the S1-S2 link in these experiments. Lines of different colors represent each flow's throughput variations in each figure.