NetPerfMeter
From Wikipedia, the free encyclopedia
| NetPerfMeter | |
|---|---|
| Other names | Network Performance Meter |
| Original author | Thomas Dreibholz |
| Developers | Thomas Dreibholz, Simula Research Laboratory, Simula Metropolitan Center for Digital Engineering |
| Initial release | June 13, 2009[1] |
| Stable release | 2.0.2[2]
/ April 29, 2026 |
| Written in | C++ |
| Operating system | Linux, FreeBSD, MacOS |
| Platform | cross-platform |
| Type | Network performance measurement |
| License | GPL-3.0-or-later |
| Website | www |
| Repository | github |
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:
- NPMP-CONTROL: Used for session management and result collection (typically over SCTP or TCP).
- 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.