The concept of the tool is depicted in the figure below. Packet generation and measurement is handled by external tools such as Sockperf, owping or Rperf. These tools offer only very limited possibilities for the automated execution of test scenarios, no extended evaluation or calculation possibilities as well as no database binding for the permanent storage of test results. To overcome these limitations this program was developed, which executes the tools via command line and processes their results. The results are converted into a common data format and stored in an SQL-based database (MariaDB). The unified data format allows the abstraction of results generated by a specific tool. In combination with a modular structure, other external tools for network performance measurement can be integrated in addition to Sockperf, owping and Rperf.
Packet capturing (using SharpPcap) allows reference measurements to compare software- and hardware-based measurement results. Hardware-based measurements can be done by the Kunbus TAP CURIOUS which adds 20 bytes of additional information (e.g. timestamp) to each packet. The captured packets can be received using packet capturing on the uplink port. With a the developed parser the 20 byte additional information of the Kunbus TAP CURIOUS can be read out and put in relation (using packet index) to the packets of the performed software measurements. If you want to use packet capturing during test execution, please read the Packet Capturing page.
Depending on the selected tool and the type of latency measurement to be performed (Round Trip Time or One Way Latency), time synchronization between the test devices is required (e.g. via GPS). As default the round trip time between ping and pong will be measured on the client. Some tools like owping or Rperf allow to measure one way latency based on systems timestamp. This requires systems clock synchronisation between on client and server system. Find some hints how to achieve this on the Time Synchronisation page.
The load generation in the network can be done e.g. by iperf3. This can optionally be executed on separate devices in the network or on the two test devices.
Prerequisites:
- Properly setup external tools which should be used for measurement
- Minimum .NET Core 5.0
- MariaDB SQL database
- Grafana
- For packet capturing: sudo privileges
- For precise hardware-based packet capturing: Kunbus TAP CURIOUS
To setup Grafana and MariaDB database the docker-compose.yml file in the docker directory
can be used. You can start the Docker Compose stack using docker-compose up -d
. After first start Grafana needs to
be configured as described here.
This tools uses several external tools for network measurement purposes. Currently, the following tools are supported:
To improve accuracy of the software-based network performance measurement find some hints on the Improve Accuracy page.
In some scenarios (e.g. reference measurements with Kunbus TAP CURIOUS you may want to measure using Gateways on client- and server-side. Therefore, see the Gateway page.