# Not Overcomplicated Network Simulator
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 uses CMake build manager, so project builds in this way:
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build./build/nons
--config path
[--output-dir output-dir-name]
[--no-logs]
Options:
-c, --config arg Path to the simulation configuration file
--output-dir arg Output directory for metrics and plots
(default: metrics)
--no-logs Output without logs
-h, --help Print usage
Examples of simulation configs placed in configuration_examples/simulation_examples
These flags represent regular expression that match generated data file names under metrics output directory. Plots generates accordingly to collected data.
E.g. if --metrics-filter = "cwnd/.*", NoNS measures only CWND values, if --metrics-filter = ".*_link1.*", only metircs about link1.
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