htsim is a high performance discrete event simulator, inspired by ns2, but much faster, primarily intended to examine congestion control algorithm behaviour. It was originally written by Mark Handley to allow Damon Wishik to examine TCP stability issues when large numbers of flows are multiplexed. It was extended by Costin Raiciu to examine Multipath TCP performance during the MPTCP standardization process, and models of datacentre networks were added to examine multipath transport in a variety of datacentre topologies. NDP was developed using htsim, and simple models of DCTCP, DCQCN were added for comparison. Later htsim was adopted by Correct Networks (now part of Broadcom) to develop EQDS, and switch models were improved to allow a variety of forwarding methods. Support for a simple RoCE model, PFC, Swift and HPCC were added.
There are some limited instructions in the wiki.
htsim is written in C++, and has no dependencies. It should compile and run with g++ or clang on MacOS or Linux. To compile htsim, cd into the sim directory and run make.
To get started with running experiments, take a look in the experiments directory where there are some examples. These examples generally require bash, python3 and gnuplot.