NetPerfMeter

From Wikipedia, the free encyclopedia

Other namesNetwork Performance Meter
Original authorThomas Dreibholz
Initial releaseJune 13, 2009; 16 years ago (2009-06-13)[1]
NetPerfMeter
Other namesNetwork Performance Meter
Original authorThomas Dreibholz
DevelopersThomas Dreibholz, Simula Research Laboratory, Simula Metropolitan Center for Digital Engineering
Initial releaseJune 13, 2009; 16 years ago (2009-06-13)[1]
Stable release
2.0.2[2] / April 29, 2026; 0 days ago (2026-04-29)
Written inC++
Operating systemLinux, FreeBSD, MacOS
Platformcross-platform
TypeNetwork performance measurement
LicenseGPL-3.0-or-later
Websitewww.nntb.no/~dreibh/netperfmeter/
Repositorygithub.com/dreibh/netperfmeter

NetPerfMeter, or Network Performance Meter, is an open-source network performance measurement tool used to measure the throughput and Quality of Service (QoS) of various transport protocols. NetPerfMeter supports transmitting multiple bidirectional flows simultaneously, with different parameters, to evaluate how protocols and congestion control algorithms compete for bandwidth. It supports multiple transport protocols: SCTP, MPTCP, QUIC, UDP, and DCCP. The tool is frequently used in academic research[3][4][5] and testbeds such as PlanetLab and NorNet.

NetPerfMeter is distributed in several major software distributions, including Debian[6], Ubuntu[7], and FreeBSD[8].

NetPerfMeter provides several measurement capabilities:

  • Multi-Protocol Support: Supports TCP, MPTCP, UDP, SCTP, QUIC, and DCCP.
  • Simultaneous Flows: Can manage multiple flows with different characteristics (e.g., one saturated TCP flow competing with a variable-bitrate SCTP flow) in a single session.
  • Traffic Modeling: Supports both saturated (greedy) and non-saturated traffic. Non-saturated flows can use constant or random distributions (uniform, exponential, etc.) for frame rates and sizes to mimic multimedia traffic.
  • Statistical Analysis: Results are recorded as scalar summaries and vector time-series data, which can be post-processed using provided tools (createsummary). The results can be visualized using tools such as R.
  • Control Protocol: Uses a dedicated control protocol (NPMP-CONTROL) to manage the passive (server) instance from the active (client) side, allowing for automated large-scale parameter studies.

Architecture

NetPerfMeter uses a client-server architecture consisting of two components:

  • Passive Instance (Server): Runs as a daemon and waits for control connections.
  • Active Instance (Client): Initiates the measurement, defines the flows, and tells the server when to start and stop.

Communication is split into two parts:

  1. NPMP-CONTROL: Used for session management and result collection (typically over SCTP or TCP).
  2. NPMP-DATA: The actual test traffic being measured.

Integrations

  • Wireshark provides a packet dissector for NetPerfMeter NPMP-CONTROL and NPMP-DATA traffic[9], as well as a NetPerfMeter statistics tool[10], allowing analysis of NetPerfMeter traffic.
  • OMNeT++'s INET framework provides a simulation model for NetPerfMeter[11], allowing to simulate NetPerfMeter data flows. This can be used to compare simulations with real-world protocol performance measurements.

See also

References

Related Articles

Wikiwand AI