Simula Research Laboratory /
Center for Resilient Networks and Applications /
NorNet
Homepage of Thomas Dreibholz /
NetPerfMeter Homepage
New release: netperfmeter-1.9.7.
NetPerfMeter is a network performance meter for the UDP, TCP, SCTP and DCCP transport protocols over IPv4 and IPv6. It simultaneously transmits bidirectional flows to an endpoint and measures the resulting flow bandwidths and QoS. The results are written as vector and scalar files. The vector files can e.g. be used to create plots of the results.
Some further information on NetPerfMeter can be found in the following citable references:
The complete BibTeX references in a single file can be found here!
Mazumdar, Somnath and Dreibholz, Thomas: ``Towards a Privacy Preserving Data Flow Control via Packet Header Marking´´ (PDF, 2009 KiB, π¬π§), in Proceedings of the 24th IEEE International Conference on High Performance Computing, Data, and Analytics (HPCC), pp. 1509β1516, DOI 10.1109/HPCC-DSS-SmartCity-DependSys57074.2022.00232, ISBN 979-8-3503-1993-4, Chengdu, Sichuan/People's Republic of China, December 18, 2022, [BibTeX, XML].
Keywords: Cloud, Data, Fog, P4, Packets, Privacy, Routing
Abstract: Computing infrastructure is becoming ubiquitous thanks to the advancement in computing and the network domain. Reliable network communication is essential to offer good quality services, but it is not trivial. There are privacy concerns. Metadata may leak user information even if traffic is encrypted. Some countries have data privacy preserving-related regulations, but end-users cannot control through which path, networks, and hardware their data packets should travel. Even worse, the user cannot declare their privacy preferences. This paper presents an approach to tackle such privacy issues through data privacy-aware routing. The user can specify their preferences for packet routing using marking and filtering. Routing can work according to such specifications. It is implemented by P4, allowing a vendor-independent realisation with standard off-the-shelf hardware and open-source software components. We presented the initial experimental results of a proof-of-concept run on a unified cloud/fog research testbed.
URL: https://web-backend.simula.no/sites/default/files/publications/files/hpcc2022.pdf
MD5: e4736c18f80bee8084c75a587f6c7e0a
Dreibholz, Thomas: ``NetPerfMeter: A Network Performance Metering Tool´´ (HTML, 42 KiB, π¬π§), in Multipath TCP Blog, September 7, 2015, [BibTeX, XML].
Keywords: Software, NetPerfMeter, Multi-Path Transfer, Multi-Path TCP (MPTCP)
Abstract: A common problem for evaluating multiple transport protocols in a multi-platform environment is to have a test tool that is capable to run in all these environments, and β of course β to support all necessary protocols. Using different evaluation tools is not a good solution, since each tool may introduce its own β and possibly incompatible β parametrisation scheme. In order to overcome this problem, originally for the use case of evaluating the Stream Control Transmission Protocol (SCTP) and compare it to the Transmission Control Protocol (TCP), NetPerfMeter has been designed and developed. This blog article provides an introduction to NetPerfMeter.
MD5: 84d5a41e4357d7cc69c508a44c1d8aa0
Dreibholz, Thomas; Zhou, Xing and Fu, Fa: ``Multi-Path TCP in Real-World Setups β An Evaluation in the NorNet Core Testbed´´ (PDF, 211 KiB, π¬π§), in 5th International Workshop on Protocols and Applications with Multi-Homing Support (PAMS), pp. 617β622, DOI 10.1109/WAINA.2015.74, ISBN 978-1-4799-1775-4, Gwangju/South Korea, March 25, 2015, [BibTeX, XML].
Keywords: NorNet, Multi-Path TCP (MPTCP), Multi-Homing, Multi-Path Transport, Evaluation
Abstract: Nowadays, cloud applications are becoming more and more popular. However, in order for such applications to work, they need a stable Internet connectivity. To avoid the Internet access becoming a single point of failure, redundancy by multi-homing β i.e. simultaneous access to multiple Internet service providers (ISP) β is becoming increasingly common as well. Multi-homing leads to the desire to utilise all network attachment points simultaneously, which is e.g. provided by the Multi-Path TCP (MPTCP) extension for TCP. MPTCP is still under development by researchers and standardisation in the IETF. Particularly, it is necessary to evaluate MPTCP under realistic Internet conditions. NorNet Core is the world's first, large-scale Internet testbed for multi-homed systems and applications. It is therefore a useful platform for evaluating MPTCP. In this paper, we therefore present our NorNet Core extension that adds MPTCP support to the testbed. Particularly, our extension is now available to all users of NorNet Core as well, which significantly reduces the effort of MPTCP researchers to evaluate MPTCP and its improvements. In a proof of concept, we furthermore show the strengths and weaknesses of state-of-the-art MPTCP in NorNet Core, in a configuration covering 29 ISP connections at 14 sites in 5 different countries.
URL: https://web-backend.simula.no/sites/default/files/publications/files/pams2015-mptcp-web.pdf
MD5: 1d87843d61fd55880aa7aa25fba51e19
Dreibholz, Thomas; Adhari, Hakim; Becke, Martin and Rathgeb, Erwin Paul: ``Simulation and Experimental Evaluation of Multipath Congestion Control Strategies´´ (PDF, 403 KiB, π¬π§), in Proceedings of the 2nd International Workshop on Protocols and Applications with Multi-Homing Support (PAMS), DOI 10.1109/WAINA.2012.186, ISBN 978-0-7695-4652-0, Fukuoka/Japan, March 29, 2012, [BibTeX, XML].
Keywords: Multipath Transfer, Congestion Control, Performance Analysis, Simulation, Measurement
Abstract: The need for service resilience is leading to a steadily growing number of multi-homed Internet sites. In consequence, this results in a growing demand for utilising multiple Internet accesses simultaneously, in order to improve application payload throughput during normal operation. Multi-path Transport Layer protocol extensions β like Multi-Path TCP (MPTCP) for TCP and Concurrent Multipath Transfer for SCTP (CMT-SCTP) β allow applications to make use of such network topologies. However, since TCP β which constitutes the basis of most Internet applications β and its congestion control procedures have been designed under the assumption of single-homed sites, fairness issues may arise by the usage of multipath transport. These issues are addressed by advanced congestion control approaches, which have already been examined by simulations. However, real-life network measurements are missing. In this paper, we perform an experimental proof-of-concept evaluation of several multipath congestion control strategies, which are currently under discussion within the IETF in the context of MPTCP as well as CMT-SCTP. Particularly, we validate effects that have been observed in simulations, in order to trigger further discussions on multipath congestion control. Also, our goal is to provide insight into the different approaches to support the ongoing IETF standardisation activities on multipath transport protocols.
URL: https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/PAMS2012.pdf
MD5: 9f0ed4e466615996b4e65ccb10ec3c7d
Dreibholz, Thomas: ``Evaluation and Optimisation of Multi-Path Transport using the Stream Control Transmission Protocol´´ (PDF, 36779 KiB, π¬π§), Habilitation Treatise, University of Duisburg-Essen, Faculty of Economics, Institute for Computer Science and Business Information Systems, URN urn:nbn:de:hbz:464-20120315-103208-1, March 13, 2012, [BibTeX, XML].
Keywords: Stream Control Transmission Protocol (SCTP), Multi-Path Transport, Dissimilar Paths, Fairness, Evaluation, Optimisation
Abstract: The Stream Control Transmission Protocol (SCTP) as defined in RFC 4960 is an advanced Transport Layer protocol that provides support for multi-homing. That is, SCTP endpoints may simultaneously use multiple Network Layer addresses, which allows to connect the endpoints to multiple networks for redundancy purposes. However, for the transfer of user data, only one of the possible paths is currently used at a time. All other paths remain as backup and are only used for retransmissions. Clearly, the existence of multiple paths has led to the idea of applying load sharing among the paths. An extension to SCTP β denoted as Concurrent Multipath Transfer (CMT) β realises this load sharing functionality. While this approach works well for similar paths, i.e. paths having similar characteristics regarding bandwidths, bit error rates and delays, the use of dissimilar paths does not work that neatly. In this thesis, the issues of dissimilar paths for CMT-based load sharing will be demonstrated first. The reasons for these issues will be identified and solutions proposed. These solutions will be evaluated in simulations, as well as partially also in a real-world Internet testbed setup, in order to show their effectiveness. In particular, it will be shown that a combination of multiple mechanisms is necessary to make CMT work as expected under a wide range of network and system parameters. Furthermore, the fairness of CMT-based transport β in concurrency to classic non-CMT flows β will be analysed. The usage of plain CMT leads to an overly aggressive bandwidth occupation on so-called shared bottlenecks. As a countermeasure, the idea of Resource Pooling will be utilised. For this purpose, two new and one adapted congestion control approach β all based on the Resource Pooling principle β will be introduced and examined in similar as well as dissimilar path setups, in order to show how to fairly deploy CMT transport in the Internet. The results of this work have also been contributed to the ongoing IETF standardisation process of SCTP and its extensions.
MD5: add34f0b780cb35b7ee1f963ea85e59c
Dreibholz, Thomas; Becke, Martin; Adhari, Hakim and Rathgeb, Erwin Paul: ``Evaluation of A New Multipath Congestion Control Scheme using the NetPerfMeter Tool-Chain´´ (PDF, 360 KiB, π¬π§), in Proceedings of the 19th IEEE International Conference on Software, Telecommunications and Computer Networks (SoftCOM), pp. 1β6, ISBN 978-953-290-027-9, Hvar, Dalmacija/Croatia, September 16, 2011, [BibTeX, XML].
Keywords: NetPerfMeter Tool-Chain, Concurrent Multipath Transfer, Congestion Control, Dissimilar Paths, Performance Analysis
Abstract: Multi-homed Internet sites become more and more widespread, due to the rising dispersal of inexpensive Internet access technologies combined with the growing deployment of resilience-critical applications. Concurrent Multipath Transfer (CMT) denotes the Transport Layer approach to utilise multiple network paths simultaneously, in order to improve application payload throughput. Currently, CMT is a quite hot topic in the IETF β in form of the Multipath TCP (MPTCP) and CMT-SCTP protocol extensions for TCP and SCTP. However, an important issue is still not fully solved: multipath congestion control. In order to support the IETF activities, we have set up a distributed Internet testbed for CMT evaluation. An important tool β which we have developed for multi-protocol Transport Layer performance analysis β is the Open Source NetPerfMeter tool-chain. It supports the parametrisation and processing of measurement runs as well as results collection, post-processing and plotting. However, its key feature is to support multiple Transport Layer protocols, which makes a quantitative comparison of different protocols β including state-of-the-art features like CMT β possible. In this paper, we first introduce NetPerfMeter and then show a proof-of-concept performance evaluation of CMT congestion controls which are currently discussed in the IETF standardisation process of CMT-SCTP.
URL: https://www.wiwi.uni-due.de/fileadmin/fileupload/I-TDR/SCTP/Paper/SoftCOM2011.pdf
MD5: 23b808c6caa72f0cfb5213d8b6cf7b31
Run a server instance (passive side), using port 9000
user@server:~$ netperfmeter 9000
Run a client instance (active side), with a saturated bi-directional TCP flow
user@client:~$ netperfmeter server:9000 -tcp const0:const1400:const0:const1400
The flow parameter specifies a saturated flow (frame rate 0 β send a much as possible) with frame size of 1400 B. The first block specifies the direction from client to server, the second block specifies the direction from server to client.
Run a client instance (active side), with a download-only TCP flow (server to client)
user@client:~$ netperfmeter server:9000 -tcp const0:const0:const0:const1400
Setting both, frame rate and frame size to 0, means to send nothing in the corresponding direction.
Run a client instance (active side), with a upload-only TCP flow (client to server)
user@client:~$ netperfmeter server:9000 -tcp const0:const1400:const0:const0
Run a client instance (active side), with bidirectional UDP flow. Client to server: 2 frames/s, 200 B/frame; server to client: 25 frames/s, 5000 B/frame
user@client:~$ netperfmeter server:9000 -udp const2:const200:const25:const5000
setting both, frame rate and frame size to 0, means to send nothing in the corresponding direction.
Run a client instance, with 4 flows, writing statistics to vector file results-<active|passive>-<FLOW>-<STREAM>.vec and scalar file results-<active|passive>.sca, stopping measurement after 60 s:
user@client:~$ ./netperfmeter server:9000 -vector=results.vec -scalar=results.sca -tcp const10:const1000:const10:const1000 -udp const10:const1000:const10:const1000 -dccp const10:const1000:const10:const1000 -sctp const2:const1000:const2:const1000 const2:const1000:const2:const1000 const2:const1000:const2:const1000 const2:const1000:const2:const1000 const2:const1000:const2:const1000 -runtime=60
Note: DCCP is only available when provided by the operating system kernel!
The scalar file format is simular to the output of OMNeT++. The vector file format is a table, which can be read with CSV import of tools like GNU R, LibreOffice, etc. There are separate files for each side: active side (client) and passive side (server). See the example outputs of the run above: results-active-00000007-0004.vec (client, 5th stream of the SCTP flow), scalar file results-passive.sca (server).
Run a client instance, with a saturated bi-directional MPTCP flow, using the "fullmesh" path manager:
user@client:~$ netperfmeter server:9000 -tcp const0:const1400:const0:const1400:cmt=mptcp,pathmgr=fullmesh
Note: MPTCP is only available when provided by the operating system kernel!
Have a look into the manual page of NetPerfMeter for further information:
user@client:~$ man netperfmeter
Also take a look into ``NetPerfMeter: A Network Performance Metering Tool´´ for further examples!
Please use the issue tracker at https://github.com/dreibh/netperfmeter/issues to report bugs and issues!
For ready-to-install Ubuntu Linux packages of NetPerfMeter, see Launchpad PPA for Thomas Dreibholz!
sudo apt-add-repository -sy ppa:dreibh/ppa sudo apt-get update sudo apt-get install netperfmeter
For ready-to-install Fedora Linux packages of NetPerfMeter, see COPR PPA for Thomas Dreibholz!
sudo dnf copr enable -y dreibh/ppa sudo dnf install netperfmeter
For ready-to-install FreeBSD packages of NetPerfMeter, it is included in the ports collection, see FreeBSD ports tree index of benchmarks/netperfmeter/!
pkg install netperfmeter
Alternatively, to compile it from the ports sources:
cd /usr/ports/benchmarks/netperfmeter make make install
NetPerfMeter is released under the GNU General Public Licence (GPL).
Please use the issue tracker at https://github.com/dreibh/netperfmeter/issues to report bugs and issues!
The Git repository of the NetPerfMeter sources can be found at https://github.com/dreibh/netperfmeter:
git clone https://github.com/dreibh/netperfmeter cd netperfmeter cmake . make
Contributions:
Issue tracker: https://github.com/dreibh/netperfmeter/issues.
Please submit bug reports, issues, questions, etc. in the issue tracker!
Pull Requests for NetPerfMeter: https://github.com/dreibh/netperfmeter/pulls.
Your contributions to NetPerfMeter are always welcome!
CI build tests of NetPerfMeter: https://github.com/dreibh/netperfmeter/actions.
Coverity Scan analysis of NetPerfMeter: https://scan.coverity.com/projects/dreibh-netperfmeter.
The tarball has been signed with my GnuPG key 21412672518D8B2D1862EFEF5CD5D12AA0877B49. Its authenticity and integrity can be verified by:
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 21412672518D8B2D1862EFEF5CD5D12AA0877B49 gpg --verify netperfmeter-<VERSION>.tar.xz.asc netperfmeter-<VERSION>.tar.xz
To make full use of these Linux MPTCP features, perform the following steps:
git clone https://github.com/dreibh/mptcp mptcp-kernel cd mptcp-kernel git checkout td-socketoptions-v0.95+v4.19.142This will give you the currently latest kernel with MPTCP and additional patches.
To make use of CMT-SCTP, you need to use FreeBSD. The Linux kernel does not yet support CMT-SCTP (but basic SCTP is available)!
The tarballs have been signed with my GnuPG key 21412672518D8B2D1862EFEF5CD5D12AA0877B49. Its authenticity and integrity can be verified by:
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 21412672518D8B2D1862EFEF5CD5D12AA0877B49 gpg --verify netperfmeter-<VERSION>.tar.xz.asc netperfmeter-<VERSION>.tar.xz