Skip to content
/ mca Public
forked from TopologyMapping/mca

Implementation of the Multipath Classification Algorithm

License

Notifications You must be signed in to change notification settings

rlcalmeida/mca

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MCA

PyPI Version Python Versions License: GPL v3

This tool implements the Multipath Classification Algorithm (MCA), an extension to Paris traceroute and the Multipath Detection Algorithm (MDA). MCA can detect routers that perform load balancing and identify what fields in the IP and transport headers are used for load balancing.

A more detailed explanation of MCA, together with a characterization of load balancing appeared in our INFOCOM 2020 paper:

R. Almeida, Í. Cunha, R. Teixeira, D. Veitch, and C. Diot. "Classification of Load Balancing in the Internet". In Proc. IEEE INFOCOM, 2020. PDF BibTeX

Installation

MCA has been tested on Linux. It requires Python 3.6+ and Scapy 2.4+. The latest version is available on PyPI, the Python Package Index:

pip3 install mca-traceroute
mca-traceroute --help

You can also run MCA as a Python module directly from the Git repository. You may need to install Scapy as root as MCA requires root privileges to execute.

sudo pip3 install scapy
git clone https://github.com/rlcalmeida/mca.git
cd mca
sudo python3 -m mca --help

Additional Resources

Route Explorer is a visualization framework for MCA results. It renders MCA measurements in a Web browser using Javascript libraries and supports IP-to-AS, AS-to-name, and rDNS metadata. Our paper's dataset and some example load balancers configuration are publicly available.

About

Implementation of the Multipath Classification Algorithm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 93.9%
  • Rust 6.1%