View on GitHub

neverenough-sec2021

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

Significance Analysis Overview

In §5 of our paper, we describe an analysis methodology that allows us to compute confidence intervals over a set of simulations results, in order to make more informed inferences about Tor network 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 significance analysis included some results from simulations using Shadow. We generated 3 Tor model configuration bundles using the process described on the process page.

The above produces 3 Tor models for Shadow, which we provide in the the configs directory. We ran each of them 3 times using unique seeds (using Shadow’s --seed command line option).

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 are provided in the data directory.

Reproducing the graphs

To reproduce the graphs in §5 of our paper, run the following from the significance_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
python3 plot_figure4.py
python3 plot_figure5.py
PYTHONPATH=../process python3 plot_figure6.py -i data

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

Results