Embedded TCP/IP stack
4.7.0
|
FNET project comes with the throughput benchmark tool for measuring TCP and UDP performance between two systems. It`s also possible to use it for stress tests.
The throughput benchmark uses the transmitter and receiver application. The responsibility of the transmitter is to push packets to the network as soon as possible while the responsibility of the receiver is to receive packets as soon as possible. Receiver is acting as a server and transmitter is acting as a client.
A user is able to specify a used protocol (TCP or UDP), message size, number of messages to be sent, local/remote IP address, listening/remote port, message interval (in microseconds), thread priority and other parameters.
Tools used during this quick start:
Follow these steps to run the FNET Throughput benchmark:
fnet\fnet_tools\fbench.exeor on http://fbench.sf.net
fnet\fnet_demos\build\<board_name>\shell_bench\bm\<compiler_name>\
************************************************ FNET Throughput Benchmark ************************************************ FNET TCP/IP Stack for MK64FN1 Version 4.1.0 Built Feb 15 2018 at 15:50:38 by IAR Enter '?' for command list. ************************************************ [FAPP] Application parameters loaded from Flash. BENCH>
? command to display a list of all commands available within the shell of the Benchmark application: BENCH> ? > ? - Display this help message > set [<parameter> <value>] - Set parameter > get [<parameter>] - Get parameters > info [-n <if name>] - Show interface info > stat [-n <if name>] - Show interface statistics > dhcpc [-n <if name>] [release|autoip] - Start DHCPv4 client > autoip [-n <if name>] [release] - Start Auto-IP service > save - Save parameters to the FLASH > reset - Reset the board > benchtx [-n <if name>] -a <remote ip> [tcp|udp] [-m <message size>] [-mn <number of messages>] - Benchmark transmitter > benchrx [[-n <if name>] [-a <if ip address>] [tcp|udp]] | release - Benchmark receiver BENCH>
The Receiver Benchmark command has the following syntax:
benchrx [[-n <if name>] [-a <if ip address>] [tcp|udp]] | release
benchrx
command: BENCH> benchrx ************************************************ Benchmark server started. IPv4 Address : 192.168.0.108 IPv6 Address : fe80::211:22ff:fe33:4455 Protocol : TCP Local Port : 7007 ************************************************ BENCH>
[BENCH] Receiving from 192.168.0.200 port = 61199 [BENCH] 12.720000 MBytes in 2.26 Seconds = 45.025 Mbit/sec
BENCH> benchrx release
benchrx
udp
command: BENCH> benchrx udp ************************************************ Benchmark server started. IPv4 Address : 192.168.0.108 IPv6 Address : fe80::211:22ff:fe33:4455 Protocol : UDP Local Port : 7007 ************************************************ BENCH>
[BENCH] Receiving from 192.168.0.200 port = 50643 [BENCH] 12.478321 MBytes in 1.66 Seconds = 60.136 Mbit/sec
BENCH> benchrx release
Transmitter Benchmark command has following syntax:
benchtx [-n <if name>] -a <remote ip> [tcp|udp] [-m <message size>] [-mn <number of messages>]
BENCH> benchtx -a 192.168.0.200 ************************************************ Benchmark client started. Protocol : TCP Remote IP Addr : 192.168.0.200 Remote Port : 7007 Message Size : 1472 Num. of messages : 10000 Press [Ctr+C] to cancel. ************************************************ [BENCH] 14.720000 MBytes in 2.48 Seconds = 47.483 Mbit/sec BENCH>
[Stop] button: BENCH> benchtx -a 192.168.0.200 udp ************************************************ Benchmark client started. Protocol : UDP Remote IP Addr : 192.168.0.200 Remote Port : 7007 Message Size : 1472 Num. of messages : 10000 Press [Ctr+C] to cancel. ************************************************ [BENCH] 14.720000 MBytes in 1.26 Seconds = 93.459 Mbit/sec BENCH>
- The test PC application continues waiting for new tests till you press the @c [Stop] button: