View on GitHub

neverenough-sec2021

Once is Never Enough: Foundations for Sound Statistical Inference in Tor Network Experimentation

Performance Analysis Case Study Overview

In §6 of our paper, we present the results of a case study of the effects of an increase in Tor usage on Tor client performance. In this page, we provide some details about the config files and data that can be used to reproduce our results.

Tor Model Configs

Our performance analysis included some results from simulations using Shadow. We generated 420 Tor model configuration bundles using the process described on the process page using the parameters shown in Table 4 in the paper, and provide the configs in the the configs directory.

The experiments were run on CentOS Linux release 7.6.1810 (Core) using Kernel 4.4.178-1.el7.elrepo.x86_64 #1 SMP Wed Apr 3 05:46:30 EDT 2019 x86_64.

The extracted results from the simulations are provided in the data directories for the 1 percent, the 10 percent, and the 30 percent networks.

Reproducing the graphs

To reproduce the graphs in §6 of our paper (and Appendix D in the full version), run the following from the performance_analysis directory:

# create the python virtual environment
python3 -m venv ~/venvs/nevenufenv
source ~/venvs/nevenufenv/bin/activate
pip3 install numpy scipy matplotlib

# plot the figures from the paper
PYTHONPATH=../process python3 plot_figures_7_9_10_11.py
PYTHONPATH=../process python3 plot_figure8.py
PYTHONPATH=../process python3 plot_figure12.py

# write some stats
PYTHONPATH=../process python3 print_resource_usage.py -i .

Results

Figures 7a, 7b, 7c, 8a, 8b, 8c, 9a, 9b, 9c, 10a, 10b, 10c, 11a, 11b, 11c, 12a, 12b, 12c, and related statistics