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.
-
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.
DisNETPerf is structured into 6 folders:
- 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
- disnetperf: includes all the Python scripts
To run DisNETPerf, Python 2.7 or 3.5+ must be installed. You can download Python on https://www.python.org/.
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},
}
This work has been partially funded by the European Commission funded mPlane ICT-318627 project (www.ict-mplane.eu).
- Main author: Sarah Wassermann - sarah.wassermann@student.ulg.ac.be - http://wassermann.lu
- Contributors:
- Thibaut Cuvelier - http://tcuvelier.be
- Pierdomenico Fiadino - http://userver.ftw.at/~fiadino
- Pedro Casas - http://userver.ftw.at/~pcasas/