DisNETPerf - a Distributed Internet Paths Performance Analyzer
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
contrib
docs
input
lib
logs
output
scripts
.gitignore
DNP_128.png
LICENSE
README.md

README.md

DisNETPerf

DisNETPerf

DisNETPerf - a Distributed Internet Paths Performance Analyzer - is a tool that allows one to locate the closest RIPE Atlas box (in terms of minimum RTT) to a given IP. You can either run DisNETPerf for a single IP or for a set of IPs.

Furthermore, once the closest RIPE Atlas box has been located, DisNETPerf permits to launch traceroutes from this box to a destination IP address provided by the user.

RIPE Atlas is a large active measurement network composed of geographically distributed probes used to measure Internet connectivity and reachability.

Given a certain server, with IP address IPs, and a target customer, with IP address IPd, DisNETPerf locates the closest RIPE Atlas probe to IPs, namely IPc, and periodically runs traceroute from IPc to IPd, collecting different path performance metrics such as RTT per hop, end-to-end RTT, etc. The collected data is then used to troubleshoot ''reverse'' paths, from the server to the target customer.

To select IPc, DisNETPerf makes use of a combined topological and latency-based approach, using standard pings and BGP routing tables. In a nutshell, it locates the RIPE Atlas probe with minimum RTT to the selected server IPs, among a set of prefiltered IPc candidates, which are located at either the same AS of IPs or in the neighbor ASes.

The complete documentation can be found in the .rst files located in the folder docs or simply on Read the Docs.

List of runnable scripts

  • find_psbox.py: locate the closest boxes for a set of IPs

  • launch_traceroutes.py: launch traceroutes from RIPE Atlas boxes to a given destination IP address

  • get_traceroute_results.py: Retrieve the results of the launched traceroute-measurements

All the scripts whose names are prefixed with AUX_ cannot be run but are used by the scripts explained above.

Structure

DisNETPerf is structured into 7 folders:

  • contrib: contains the RIPE Atlas Toolbox developed by Pierdomenico Fiadino. DisNETPerf heavily relies on this toolbox
  • docs: contains .rst files explaining how to use DisNETPerf
  • input: should include the files used as input for DisNETPerf
  • lib: contains datasets needed in order to locate the closest RIPE Atlas boxes
  • logs: includes log-files
  • output: the result-files generated by DisNETPerf are saved into this folder
  • scripts: includes all the Python-scripts

Prerequisites

To run DisNETPerf, Python 2.7 must be installed. You can download Python 2.7 on https://www.python.org/download/releases/2.7/ Furthermore, please fulfill all the prerequisites for the RIPE Atlas Toolbox explained on https://github.com/pierdom/atlas-toolbox

DisNETPerf has been tested on Debian 7 with Python 2.7.9.

Papers related to DisNETPerf

Several papers about DisNETPerf have been published:

[1] On the Analysis of Internet Paths with DisNETPerf, a Distributed Paths Performance Analyzer
S. Wassermann, P. Casas, B. Donnet, G. Leduc, M. Mellia
in Proceedings of the 10th IEEE Workshop on Network Measurements (WNM), Dubai, United Arab Emirates, 2016

[2] Towards DisNETPerf: a Distributed Internet Paths Performance Analyzer
S. Wassermann, P. Casas, B. Donnet
in Proceedings of the ACM CoNEXT Student Workshop, Heidelberg, Germany, 2015

[3] Reverse Traceroute with DisNETPerf, a Distributed Internet Paths Performance Analyzer
S. Wassermann, P. Casas
in Proceedings of Demonstrations of the 41th Annual IEEE Conference on Local Computer Networks (LCN-Demos 2016), Dubai, United Arab Emirates, 2016

[4] Unveiling Network and Service Performance Degradation in the Wild with mPlane
P. Casas, P. Fiadino, S. Wassermann, S. Traverso, A. D'Alconzo, E. Tego, F. Matera, M. Mellia
in IEEE Communications Magazine, Network Testing Series, 2016, issue 3

If you use DisNETPerf in your work, please cite [1]

@article{disnetperf,
 author               = {Wassermann, S. and Casas, P. and Donnet, B. and Leduc, G. and Mellia, M.}, 
 journal              = {{Proc. 10th IEEE Workshop on Network Measurements (WNM)}}, 
 month                = {November}, 
 title                = {{On the Analysis of Internet Paths with DisNETPerf, a Distributed Paths Performance Analyzer}}, 
 year                 = {2016}, 
 }

Acknowledgement

This work has been partially funded by the European Commission funded mPlane ICT-318627 project (www.ict-mplane.eu).

mPlane

Authors