The FlowPing is an application which allow user to perform variety of network throughput and stress tests. Our application utilize UDP(User Datagram Protocol). Our application implements similar interface as in ICMP ping application and in addition allow user to perform stress test such as in iPerf application. Very importat feature of our application is possibility to operate with variable traffic rate and variable packet size. This feature allow user to measure network dynamic behavior in reaction on traffic amount change in tested network.
----------------------------------------------------------------------------------------------- | Section| Parameter | Def. value | Meaning | ----------------------------------------------------------------------------------------------- | Common: | | [-?] Usage (Print this table) | | [-f filename] Store ping output in specified file | | [-p port] [2424] Port number | | [-e] Print current RX Bitrate (RX and TX on SERVER) | | [-q] Silent (suppress ping output to STDOUT) | | [-v] Print version | | [-D] Print timestamps in ping output | | [-X] Asymetric mode (TX Payload is limited to 32B) | | [--so_rcvbuf] [6144000] Socket receiver buffer size [Bytes] | | [--so_sndbuf] [6144000] Socket sender buffer size [Bytes] | | Server: | | [-S] Run as server | | [-W] Working directory | | Client: | | [-6] Prefer IPv6 over IPv4 | | [-a] Busy-loop mode! (100% CPU usage), more accurate bitrate | | [-b kbit/s] BitRate (Lower limit) | | [-B kbit/s] BitRate (Upper limit) | | [-c count] [unlimited] Send specified number of packets | | [-d] Set source interface | | [-F filename] Send FileName to server (overide server settings) | | [-h hostname] [localhost] Server hostname or IP address | | [-H] Consider headers (Use frame size instead payload size) | | [-i seconds] [1] Interval between packets (Upper limit) | | [-I seconds] [1] Interval between packets (Lower limit) | | [-J] Output to JSON | | [-L] [0] Data sample interval (0 s - per packet mode) | | [-s size] [64] Payload size in Bytes | | [-t seconds] [10] T1 interval specification (for i,I,b,B,P params) | | [-T seconds] [10] T2 interval specification (for i,I,b,B,P params) | | [-R seconds] [T3=T2] T3 interval specification (for i,I,b,B,P params) | | [-u filename] Read Interval and BitRate definitions from file | | [-w seconds] [unlimited] Run test for specified time | | [--nettype NET_TYPE] Network specific optimizations [default, NB-IoT, Edge] | -----------------------------------------------------------------------------------------------
------------------------------------------------- | Time[s] | BitRate[kbit/s] | PacketSize[B]* | ------------------------------------------------- | 0* | 128 | 14* | | 15 | 128 | 64 | | 30 | 256 | 64 | | 30 | 64 | 2500* | ------------------------------------------------- Table 1: Test description file example.* Its necessary to start with zero time.
./flowping -h example.net -b 256 -B 512 -t 30 -R 60 -T 90 -w 180 -s 500
./flowping -h example.net -i 0.015625 -B 0.0078125 -t 30 -R 60 -T 90 -w 180 -s 500
./flowping -h example.net -w 200 -u TestDescriptionFile.dat
------------------------------------------------- | Time[s] | BitRate[kbit/s] | PacketSize[B] | ------------------------------------------------- | 0* | 128 | 64 | | 15 | 128 | 64 | | 30 | 256 | 64 | | 30 | 64 | 500 | | 45 | 64 | 500 | | 60 | 256 | 24 | | 60 | 512 | 24 | | 75 | 256 | 24 | | 90 | 256 | 24 | | 105 | 128 | 24 | | 120 | 256 | 24 | | 135 | 256 | 64 | | 135 | 640 | 1472 | | 150 | 640 | 1472 | | 150 | 512 | 1000 | | 165 | 128 | 1000 | | 180 | 128 | 1000 | ------------------------------------------------- Table 2: Test description file describing test on Image 3.
Vondrouš, O.; Macejko, P.; Kocur, Z.
FlowPing - The New Tool for Throughput and Stress Testing
Advances in Electrical and Electronic Engineering. 2015, 13(5), 516-521. ISSN 1336-1376.
Vondrouš, O.; Macejko, P.; Kocur, Z.
On Limits of Embedded Systems in Network Packet Processing
Advances in Electrical and Electronic Engineering. 2016, 14(4), 405-412. ISSN 1336-1376.
Vondrouš, O.; Kocur, Z.; Votava, O.
FlowPing - nástroj pro aktivní měření komunikačních sítí s přidanou hodnotou
[Science outreach lecture] Vzdělávací komplex UTB, Zlín: About CSNOG 2023 CSNOG 2023 (Czech and Slovak Network Operators Group), Sdružení CZ.NIC. 2023-05-16.
Author: Ondrej Vondrous, KTT, FEE, CTU in Prague
Email: ondrej.vondrous@fel.cvut.cz
Copyright (C) 2023: Department of Telecommunication Engineering, FEE, CTU in Prague
License: GNU GPLv3
FlowPing is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
FlowPing is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details
You should have received a copy of the GNU General Public License
along with FlowPing. If not, see http://www.gnu.org/licenses/
This work has been supported by Technology Agency of the Czech Republic, Contract No. FW03010150, "Platform for reliable operation, provisioning and management of massive distributed IIoT structures."