Skip to content

Predictive traffic scheduler for the Tor network, based on distributed MPC.

License

Notifications You must be signed in to change notification settings

cdoepmann/predictor

Repository files navigation

PredicTor

This is a prototype implementation of PredicTor, a predictive traffic scheduler for the Tor network, based on distributed model predictive control (MPC).

PredicTor is currently implemented as an extension of nstor, which, in turn, is built on top of the ns-3 network simulator. This repository contains the source code of nstor (including ns-3) and adds PredicTor. PredicTor mainly lives in the following files:

Usage

Running simulations of PredicTor currently requires a few other components to be available:

  • predictor-core provides the definition of the underlying optimization problem and the optimizer (Python)
  • Coin-HSL / MA27 is used internally as the underlying solver. You need to register for free in order to obtain a copy (binary download or compile from source)

While not strictly necessary, it is recommended to run predictor-core using Anaconda to handle its dependencies.

If you have all the dependencies ready, create a .predictorrc in the root directory of this project and give the dependencies' locations as follows:

PREDICTOR_PATH_OPTIMIZER="<path to predictor-core>"
PREDICTOR_PATH_COINHSL="<path to hsl-bin/lib>"
PREDICTOR_PATH_CONDA="<path to anaconda>"

You can then run PredicTor experiments using the standard ns-3 commands, for example using the evaluation script at scratch/tor-predictor-example.cc.

About

Predictive traffic scheduler for the Tor network, based on distributed MPC.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •