Not Overcomplicated Network Simulator (NoNS) is a free open source project aiming to build a discrete-event network simulator targeted at easy testing of congestion control algorithms.
NoNS need gnuplot & graphiz to generate plots, so install it:
sudo apt install --fix-missing gnuplot
sudo apt install --fix-missing graphviz
Other dependecies are designed as git submodules, so to install them, run
git submodule init
git submodule update --init --recursive
NoNS uses CMake build manager, so project builds in this way:
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build buildBuild project and run it with -h option to see help.
Examples of configs that need to run NoNS are placed under configs directory. See config schemas here.
If you want to implement TCP-like algorithm, follow these steps:
- Create class (
YourCCfurther) that implementsITcpCC. It should be a class that contains all logic of your congestion control algorithm. See example:TcpTahoeCC. - Add implementation of parsing
YourCCand put it to directory with tcp congestion control parsers and call it fromcommon TCP congestion control parser
Metrics and results of load testing of all simulation runs are deployed to GitHub Pages