Supporting data and code for IMC 2018 submission "Three Bits Suffice"
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
quic
tcp
vpp
.gitignore
README.md

README.md

three-bits-suffice

Supporting data and code for IMC 2018 submission "Three Bits Suffice"

The VPP-based middlebox implementation used for all the measurements in the paper can be found in the VPP folder. Please read the dedicated README file for installation and usage instructions.

For the QUIC and TCP measurements, we provide:

TCP

  • Patches to add latency spin signal support for TCP to the Linux kernel 4.9 and 4.15.

  • The simple webserver we used for testing the spin bit with TCP.

  • The results from all our TCP spin- and TS-based RTT estimations. This data is organized as follows:

    • 01_do-vpp-do contains the digital ocean to digital ocean measurements
    • 02_wired-vpp-do contains the wired access networks to digital ocean measurements
    • 03_wifi-vpp-do contains the wireless access networks to digital ocean measurements

    Each CSV file contains data from one measurement. For the access network measurements, the prefix of each file is an identifier of the access network, and the postfix an identifier of the digital oceans used.

  • Plots from each measurement run, and Figure 5 and 6 from the paper

  • Scripts to create these plots

QUIC

  • The master thesis this paper was based on.

  • A script to download the actual QUIC dataset. Be carefull, running this script downloads around 80 GB of data! Note that depending on where you aquired this repository, it might already contain part of the QUIC dataset.

  • Pinq, the modified QUIC endpoint implementation used for the experiments. This folder is a snapshot of https://github.com/pietdevaere/minq.

  • Plots for each run of the dataset, as well as Figures 3 and 4 from the paper.

  • Various Scripts to generate these figures and to orchestrate emulated measurements.

    Scripts for generating figures:

    • analyze_vpp.py This script is two things:

      1. A script to generate detailed plots for an individual measurement run.

      2. An toolkit that can be used by other scripts that want to analyze runs. For example, make_figure_3_and_4.py.

    • make_figure_3_and_4.py generates Figure 3 and 4 from the paper.

    Scripts for orchestrating runs:

    • simple_for_vpp.py orchestrates a single measurement.

    • run_series.py calls simple_for_vpp.py repetitively to run a series of measurements with one command.

Names of spin signal flavours and dataset information.

This dataset uses different naming for the various flavours of the spin signal. The below table gives a translation.

Name in paper Name in thesis Name in dataset comment
spin bit basic basic
packet number pn pn
pn_valid
valid
pn_valid_edge
valid edge valid_edge
VEC VEC status
two bit spin two_bit
static heuristic stat_heur
heuristic dynamic heuristic rel_heur
handshake RTT measured by observing QUIC handshake

Each measurement in the dataset has two phases: For the first 80 seconds, the emulated network has no impairments other than a 40 ms RTT. Then, the impairments under test are introduced, and the measurement continuous for an additional 80 seconds. The NetEm parameters used to introduce the impairments are in the name of each measurement run.