This scenario provides a rate diagnostic of a deployed network. It is assumed that the network is stable. The diagnostic allows to sequentially assess rate/throughput metrics.
The scenario proposed herein will :
These scenarios have been written using the scenario builder.
You must already have a project (i.e. “your_project”), two entities in the project (a server and a client), the nuttcp/iperf3/d-itg_send jobs installed in the client and the nuttcp/iperf3/d-itg_recv jobs installed in the the server. You also need to install histogram and time-series jobs on “your_entity”.
The executor scenario script executor_network_rate will allow to launch it as follows. You should specify different parameters and the theoretical rate of the path/link for the UDP test (set a higher rate (in kb/s) than what you estimate between server and client for the UDP test (add m/g to set M/G b/s))
python3 executor_network_rate.py -o your_project --client your_client_entity --server your_server_entity --ip_dst your_server_ip --ip_snd your_client_ip --rate 10M --entity_pp your_entity run
Alternatively, it can create a JSON file that could be imported to the OpenBACH web interface:
python3 executor_network_rate.py -o your_project --client your_client_entity --server your_server_entity --ip_dst your_server_ip --ip_snd your_client_ip --rate 10M --entity_pp your_entity build .
Some parameters are by default in the executor script executor_network_rate, but you can also modify them, e.g.: duration of iperf3/nuttcp test, MTU size, ToS, number of parallel flows.
An example of the type of results that this scenarios is capable of plotting is shown below, where the link capacity between client and server is 20 Mbps with and RTT of 500ms.
Comparison of 1 iperf3 BULK TCP flow (blue), 1 nuttcp BULK TCP flow (orange), 1 d-itg BULK TCP flow (green), 1 nuttcp UDP flow (red) and 1 d-itg UDP flow (purple). UDP estimates the capacity better than TCP tests, but nuttcp also obtains a good estimation in TCP at the end of test. On the other hand, iperf3 is not good at estimating the capacity with default TCP configuration.
The plots can be downloaded from the OpenBACH web interface: go to the scenario instance, click on export CSV, check the histogram and time-series boxes and click on Download.