Nuttcp
nuttcp is a network testing tool, very similar to iperf.
It is possible to measure TCP and UDP throughput and bandwidth.
Very appealing feature of nuttcp compared to iperf is the reliability of the results when used with UDP traffic. Something that can't be guaranteed by iperf.
In a server/client fashion like iperf, it allows to also run the reverse measurement without restart the tool but just using the -r
option.
The command on the server:
nuttcp -S
- or
nuttcp -S --nofork
(to avoid that the tool runs in the background)
This is what the measurement looks likemacas:Desktop scicchit$ ./nuttcp -T 30 -i 1 muria.switch.ch 103.6875 MB / 1.00 sec = 869.7573 Mbps 109.7500 MB / 1.00 sec = 920.4528 Mbps 109.6250 MB / 1.00 sec = 919.6710 Mbps 109.3125 MB / 1.00 sec = 917.0668 Mbps 110.3125 MB / 1.00 sec = 925.3618 Mbps 109.5625 MB / 1.00 sec = 919.0952 Mbps 110.0625 MB / 1.00 sec = 923.3072 Mbps 109.8750 MB / 1.00 sec = 921.6163 Mbps 109.8125 MB / 1.00 sec = 921.1998 Mbps 106.3750 MB / 1.00 sec = 892.2356 Mbps 109.5000 MB / 1.00 sec = 918.6444 Mbps 110.1250 MB / 1.00 sec = 923.8056 Mbps 109.8750 MB / 1.00 sec = 921.6246 Mbps 109.6250 MB / 1.00 sec = 919.6398 Mbps 102.6250 MB / 1.00 sec = 860.8783 Mbps 110.3750 MB / 1.00 sec = 925.8500 Mbps 102.1875 MB / 1.00 sec = 857.3326 Mbps 96.8125 MB / 1.00 sec = 812.1270 Mbps 106.6875 MB / 1.00 sec = 894.9014 Mbps 109.6250 MB / 1.00 sec = 919.2987 Mbps 71.3125 MB / 1.00 sec = 598.4203 Mbps 91.0000 MB / 1.00 sec = 763.3939 Mbps 109.8125 MB / 1.00 sec = 921.0515 Mbps 109.5000 MB / 1.00 sec = 918.5618 Mbps 109.7500 MB / 1.00 sec = 920.6359 Mbps 108.7500 MB / 1.00 sec = 912.1836 Mbps 101.1250 MB / 1.00 sec = 848.1843 Mbps 106.6250 MB / 1.00 sec = 894.6599 Mbps 104.9375 MB / 1.00 sec = 880.2655 Mbps 97.0000 MB / 1.00 sec = 813.7926 Mbps 3166.0330 MB / 30.01 sec = 885.1331 Mbps 19 %TX 43 %RX 2 host-retrans 1.22 msRTT
and with UDP traffic
macas:Desktop scicchit$ ./nuttcp -T 30 -i 1 -u -R 10m muria.switch.ch 1.1943 MB / 1.00 sec = 10.0182 Mbps 0 / 1223 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0026 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0024 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0025 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0025 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0024 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0024 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0024 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0021 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0027 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0025 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1914 MB / 1.00 sec = 9.9940 Mbps 0 / 1220 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0027 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0025 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0024 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0025 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0024 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0023 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0026 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0025 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0024 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0023 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1562 MB / 1.00 sec = 9.6993 Mbps 36 / 1220 ~drop/pkt 2.95 ~%loss 1.1924 MB / 1.00 sec = 10.0024 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0023 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1924 MB / 1.00 sec = 10.0026 Mbps 0 / 1221 ~drop/pkt 0.00 ~%loss 1.1914 MB / 1.00 sec = 9.9943 Mbps 0 / 1220 ~drop/pkt 0.00 ~%loss 1.1904 MB / 1.00 sec = 9.9859 Mbps 0 / 1219 ~drop/pkt 0.00 ~%loss 1.1953 MB / 1.00 sec = 10.0272 Mbps 0 / 1224 ~drop/pkt 0.00 ~%loss 35.7334 MB / 30.00 sec = 9.9925 Mbps 95 %TX 0 %RX 36 / 36627 drop/pkt 0.09841 %loss
Most useful options:
-S server mode
--nofork don't fork server
-p## port number to send to|listen at (default 5101)
-T## transmit timeout in seconds (or (m|M)inutes or (h|H)ours)
-i## receiver interval reporting in seconds (or (m|M)inutes)
-�r reverse direction
-N## number of parallel streams
-u use UDP instead of TCP
-R 90m (rate limit for UDP)
-w## transmitter|receiver TCP window size in KB (or (m|M)B or (g|G)B)
-xt traceroute feature. It shows the route from the server to the client and viceversa.
-- Main.AlessandraScicchitano - 2013-01-30