Skip to content
Software used to prepare the last-mile dataset and Jupyter notebooks used for analysis.
Jupyter Notebook Python Other
Branch: master
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.
Cdf.py
Makefile
Pmf.py
README.md
db-fetch-traceroute-datasets-write-to-json.py
db-insert-into-ra-asn.ipynb
db-insert-into-ra-latencies-last_hop.ipynb
db-insert-into-ra-latencies.ipynb
db-insert-into-ra-latencies_agg.ipynb
db-insert-into-ra-latencies_last_hop_agg.ipynb
db-insert-into-ra-one-off-extensions-only-access-type-column.ipynb
db-insert-into-ra-one-off-extensions.ipynb
db-insert-into-ra-one-off-parameters.ipynb
db-insert-into-ra-one-off.sql
db-insert-into-ra-probe-api.py
db-insert-into-ra-probe.py
db-insert-into-ra-traceroute-parameters.py
db-insert-into-ra-traceroute.sql
db-insert-into-sk-asn.ipynb
db-insert-into-sk-latencies_agg.ipynb
db-insert-into-sk-latencies_last_hop_agg.ipynb
db-insert-into-sk-metadata-snapshot-extension.ipynb
db-insert-into-sk-one-off-extensions-only-access-type-column.ipynb
db-insert-into-sk-one-off-extensions.ipynb
lastmile.sql
matplotlibrc
plot-dataset-distribution.ipynb
plot-geographic-distribution.ipynb
plot-hop1-hop2-absolute-values.ipynb
plot-hop1-hop2-interleaving-depths-cdf.ipynb
plot-hop1-hop2-interleaving-depths-ra-sk.ipynb
plot-hop1-hop2-last-hop-contribution.ipynb
plot-last-mile-latency-ra-by-access-type.ipynb
plot-last-mile-latency-sk-by-access-type.ipynb
plot-last-mile-latency-sk-by-location.ipynb
plot-last-mile-latency-sk-ra-timeseries.ipynb
plot-private-network-contribution.ipynb
requirements.txt
ripeatlas-probes-timezones.csv
style-notebook.css
style-table.css
update_ra_asn_with_access_types.sql

README.md

Dissecting Last-mile Latency Characteristics →
ACM SIGCOMM Computer Communication Review →
October 2017


Dataset

The raw dataset is available here →

It includes the SQL schema lastmile.sql and the dataset in sqlite3 format lastmile.db

Installation

make will install the python dependencies required to run the jupyter notebooks. make run will run jupyter.

Repeating the results

plot-* notebooks can be used to repeat the analysis on the existing dataset. Each such notebook produces a single plot in the paper.

Reproducing the results

make db will bootstrap a new database using the lastmile.sql schema. db-insert-* notebooks can be used to fill in the dataset. Each such notebook fills in entries in one table. This includes mechanics to provision measurements on RIPE Atlas, fetch measurement results and dump them in the database tables while also augmenting the metadata with third-party datasets such as peeringDB and RIPE stat APIs. Once all the tables are filled in plot-* can be used to reproduce results on a different dataset.

Contact

Please feel welcome to contact the authors for further details.

You can’t perform that action at this time.