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:

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