NSTOOLS 2026 · INTERNATIONAL WORKSHOP ON NETWORK SIMULATION TOOLS · PISA, ITALY · OCT 19, 2026

Home / Insights / What ns-3 actually does, in practice

Tools · Discrete-event simulation

What ns-3 actually does, in practice

ns-3 is the most widely cited open-source network simulator in current research, but its documentation is written for people already inside the field. Here is what it does and does not do, in plain terms.

The short version

ns-3 is a discrete-event network simulator, meaning it models a network as a sequence of instantaneous events — a packet arriving, a timer expiring, a route being recalculated — rather than as a continuous physical process. It is free, open-source software licensed under the GNU GPLv2 and maintained by a worldwide community of volunteer contributors, and it is targeted primarily at research and educational use rather than production network planning.

The project began in 2006 as a deliberate break from its predecessor, ns-2. Where ns-2 mixed a Tcl scripting interface with C++ internals, ns-3 is written entirely in C++, with optional Python bindings, and it does not attempt backward compatibility with ns-2 scripts. That decision let the ns-3 team redesign the simulator’s object model from scratch rather than working around a decade of accumulated Tcl glue code.

How a simulation is actually built

Rather than one integrated graphical environment, ns-3 is structured as a set of C++ libraries that a researcher combines in a simulation script. A typical workflow moves through five stages: defining the network topology using ns-3’s container and helper classes, selecting the models needed (UDP, IPv4, a particular wireless PHY layer, and so on), configuring node and link parameters through ns-3’s attribute system, running the simulation so it generates a time-stamped event trace, and finally analyzing that trace — often exported as pcap files readable by ordinary packet-analysis tools.

That attribute system is one of the simulator’s more distinctive design choices: instead of hard-coding parameter values, ns-3 objects expose their configurable values through a uniform attribute interface, which is also what underlies how traces and statistics get collected during a run.

What it is used for

Although ns-3’s model set is not limited to internet-style networks, the large majority of published research using it focuses on wireless and IP simulation — Wi-Fi, LTE, and related layer 1/2 models — alongside long-standing interest in TCP performance and mobile ad hoc routing protocols. The simulator also supports a real-time scheduler for what the project calls “simulation-in-the-loop” use: emitting and receiving ns-3-generated packets on real network devices, or interconnecting virtual machines through the simulator. A related capability, Direct Code Execution, lets researchers run real C or C++ application code, or even the Linux kernel networking stack, inside an ns-3 simulation rather than a simplified model of it — narrowing the gap between what the simulator predicts and what real software would actually do.

The project’s release history reflects where research attention has moved. The June 2026 release, ns-3.48, added mobility models for low-earth-orbit satellite constellations, 6LoWPAN neighbor discovery models, a ray-traced channel model for phased-array propagation, and updated Wi-Fi power-save and MAC scheduling models — each tracking a technology area that has become active in the wider networking field.

What it is not

ns-3 is not a single push-button GUI application; most work happens at the command line, writing C++ or Python simulation scripts, and the project’s own tutorial is explicit that users should expect to work with standard software development tools rather than a fully point-and-click interface. It is primarily developed for Linux and macOS; native Windows support depends on compatibility layers such as WSL. And because it is a general-purpose research tool rather than a validated product for a specific vendor’s hardware, results still need to be checked against real measurements before being treated as predictive of real-world deployment — which is exactly the kind of validation research that venues like NSTools exist to review.

Where to go deeper

The authoritative source for installation instructions, the full API reference, and the project’s release notes is the ns-3 project itself at nsnam.org. This article is a plain-language orientation, not a replacement for that documentation.