753.ns3_r
Discrete event network simulator for internet systems
Gabriel de Carvalho Ferreira <gabrielcarvfer[at]gmail [dot] com>
Tom Henderson <tomh[at]tomh [dot] org>
Mathieu Lacage <mathieu.lacage[at]inria [dot] fr>
George F. Riley <riley[at]ece [dot] gatech [dot] edu>
753.ns3_r was submitted to the SPEC CPU v8 Benchmark Search Program by Gabriel de Carvalho Ferreira.
ns-3 is a discrete-event network simulator, targeted primarily for research and educational use. ns-3 is free software, licensed under the GNU GPLv2 license, and is publicly available for research, development, and use. The goal of the ns-3 project is to develop a preferred, open simulation environment for networking research: it should be aligned with the simulation needs of modern networking research and should encourage community contribution, peer review, and validation of the software.
The ns-3 project has built a solid simulation core that is well documented, easy to use and debug, and that caters to the needs of the entire simulation workflow, from simulation configuration to trace collection and analysis. Furthermore, the ns-3 software infrastructure encourages the development of simulation models which are sufficiently realistic to allow ns-3 to be used as a realtime network emulator, interconnected with the real world and which allows many existing real-world protocol implementations to be reused within ns-3.
The ns-3 simulation core supports research on both IP and non-IP based networks. The large majority of the common usage focuses on wireless/IP simulations which involve models for Wi-Fi, WiMAX, or LTE for layers 1 and 2 and a variety of static or dynamic routing protocols such as Optimized Link State Routing (OLSR) and Ad hoc On-Demand Distance Vector Routing (AODV) for IP-based applications.
For SPEC CPU, we have sampled from the large set of simulation examples and chosen a small set of configurable scenarios which provide a broad set of code coverage from important models. These mostly focus on TCP and WiFi, and exercise examples from those directories. Each scenario is built in its own binary, and has multiple parameters for configurability. The scenarios are explained below along with links to further information.
| Scenario | Detailed Notes | Short Description | Sizes |
| Data Center TCP | dctcp-example.txt | Data Center TCP is a TCP-like protocol for data center networks, leveraging Explicit Congestion Notification (ECN) to provide multi-bit feedback to the end hosts, to tolerate high burst and low latency for short flows. | refrate |
| FQ-CoDel | fqcodel-l4s-example.txt | Fair/Flow Queue Control Delay, an active queue management algorithm in network routing, designed to overcome bufferbloat in networking hardware by setting limits on the delay that network packets experience as they pass through buffers. | refspeed |
| LTE radio link failure | lena-radio-link-failure.txt | Simulation of an LTE radio detaching from a cell. The radio receiver begins within the coverage of the antenna, and a connection is established using the Radio Resource Control protocol. As the receiver moves away from antenna, the signal degrades, the radio link fails, and the receiver begins searching for cell service. | refrate |
| LTE Handoff | mobile-scenario.txt | Recurring handovers of User Equipment (UE) across nearby LTE cells (evolved NodeB, or eNB). The eNBs are connected to the network core, which is then connected to a remote host on the internet. The application setup simulates the two-way communication between client and server, which gets disrupted by the handover as observed in the flow statistics. | refrate, refspeed |
| TCP Pacing | tcp-pacing.txt | Enables TCP Pacing on a network socket. Two long-running TCP flows send data over a bottleneck link, exercising congestion control. Packet transmission and reception time is recorded. | test, refrate, refspeed |
| TCP congestion control | tcp-validation.txt | Test to observe and verify long-running TCP congestion control behavior over a configurable bottleneck link. Clients and Servers are configured for ICMP measurements plus TCP throughput and latency measurements downstream. | refspeed |
| Wi-Fi Aggregation | wifi-aggregation.txt | Exercises an 802.11n aggregation of four independent Wi-Fi networks. Each network contains one access point (AP) and one station; each station continuously transmits data packets to its respective AP. As the distance increases between an AP and its station, the frame error rate increases and reduces overall network throughput. | refspeed |
| Extremely High Throughput | wifi-eht-network.txt | Configures an IEEE 802.11be Wi-Fi network with Best Effort Access Class. The simulation outputs the UDP or TCP goodput for every value of Modulation and Coding Set (MCS) for an Extremely High Throughput (EHT) network. | refrate, refspeed |
| Mixed Network | wifi-mixed-network.txt | Configures mixed Wi-Fi networks such as mixed b/g with High Throughput (HT) versus non-HT. Performance is measured to show how the presence of an 802.11b station strongly impacts 802.11g performance. | test, train, refrate, refspeed |
The first argument to the ns3 binary is the scenario name as described in the above table. Each scenario is self-contained and has its own set of command line parameters; appending --help as the second argument will provide the entire list of parameters for that scenario. A savvy user could craft their own simulation scenarios after studying the parameters and scenario notes. An advanced user can look at the examples directory in the source tree, and build scenarios beyond those chosen for SPEC CPU to exercise other features of the ns-3 framework.
The ns-3 tutorial is available locally in ns-3-tutorial.pdf, as well as online at www.nsnam.org/docs/release/3.38/tutorial/html.
Newer documentation may be available at www.nsnam.org/documentation.
The outputs are the stdout of each invocation, along with the trace collateral generated in text form by some of the workloads. The outputs are described in more detail at the links in the table above. These outputs are verified.
ns-3 simulations are completely deterministic, and reproducible when given the same seed values. Thus, the outputs must match exactly to the expected outputs. There is a small absolute tolerance of 0.000001 to accommodate drift in float data-types across architectures.
C++
Both the SPECrate (753.ns3_r) and SPECspeed (853.ns3_s) versions are single-threaded. The SPECspeed version exercises more of the code and runs longer.
ns-3 makes use of std::isnan, and as such, support for infinite math is required.
ns-3 is available to download from www.nsnam.org/releases. The development repository can be found at gitlab.com/nsnam/ns-3-dev. The SPEC CPU version started from version 3.38 with some cherry-picked patches (including MR-1582) to address undefined behavior exposed by SPEC CPU testing.
ns-3 is distributed under the GPL-v2.
SPEC added a version of the Mersenne-Twister PRNG that is licensed by its authors (Makoto Matsumoto, Takuji Nishimura, and Mutsuo Saito) under a BSD license.
Additionally, windowed-filter.h is distributed under a BSD-3 license copyrighted by The Chromium Authors and Google, Inc.
T.R.Henderson, M.Lacage, G.F.Riley, C.Dowell, J.Kopena, Network simulations with the ns-3 simulator, SIGCOMM demonstration 14 (2008). [web link], [local copy]
citations: scholar.google.com/scholar?cites=10420378028536373880
G.F.Riley, T.R.Henderson, (2010). The ns-3 Network Simulator. In: Wehrle, K., Güneş, M., Gross, J. (eds) Modeling and Tools for Network Simulation. Springer, Berlin, Heidelberg. doi:10.1007/978-3-642-12331-3_2
citations: scholar.google.com/scholar?cites=12562727102563188263
Copyright © 2026 Standard Performance Evaluation Corporation (SPEC®)