Skip to content

Introduction

D-Miner is the first Internet-scale system that captures a multipath view of the topology. By combining and adapting state-of-the-art multipath detection and high speed randomized topology discovery techniques, D-Miner permits discovery of the Internet’s multipath topology in 2.5 days1 when probing at 100kpps.2

Implementations

There are two implementations of Diamond-Miner:

  • diamond-miner-cpp the original implementation in C++ that have been used for the NSDI 2020 paper2. This implementation is not maintained anymore.
  • This implementation, diamond-miner, a rewrite of the core algorithm in Python and ClickHouse SQL. This implementation is maintained and used in production. It supports IPv4 and IPv6.

Installation

Diamond-Miner requires Python 3.10+.

pip install diamond-miner

Publication

Diamond-Miner has been presented and published at NSDI 2020. If you use Diamond-Miner, please cite the following paper:

@inproceedings {DiamondMiner2020,
  author = {Kevin Vermeulen and Justin P. Rohrer and Robert Beverly and Olivier Fourmaux and Timur Friedman},
  title = {Diamond-Miner: Comprehensive Discovery of the Internet{\textquoteright}s Topology Diamonds },
  booktitle = {17th {USENIX} Symposium on Networked Systems Design and Implementation ({NSDI} 20)},
  year = {2020},
  isbn = {978-1-939133-13-7},
  address = {Santa Clara, CA},
  pages = {479--493},
  url = {https://www.usenix.org/conference/nsdi20/presentation/vermeulen},
  publisher = {{USENIX} Association},
  month = feb,
}

  1. As of v0.1.0, diamond-miner can discover the multipath topology in less than a day when probing at 100k pps. 

  2. Vermeulen, Kevin, et al. "Diamond-Miner: Comprehensive Discovery of the Internet's Topology Diamonds." 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20). 2020.