Windows network testing with NTttcp

Although NTttcp[1] has been around for many years, it is overlooked despite being updated to work with modern equipment (such as 10Gbps connections). Establishing your networks baseline parameters is important when diagnosing network problems: reports of a slow network are subjective and can depend on many factors.

Use in the basic testing sense is easy. Two machines will be involved, the target, which is launched from the command line as (note that you should allow ntttcp through your filewall before running)

ntttcp -r -m 4,0,192.168.1.100

where 192.168.1.100 would be the IP of the interface to test on the target and then on the client

ntttcp -r -m 4,0,192.168.1.100

This test case is setting up 4 threads (-m 4) on processor 0 (,0) which is a good load for testing modern machines. On servers adding -p 20000 to both commands will move the port up out of the default 5001 range, which can conflict with some processes.

An example result:

Thread  Time(s) Throughput(KB/s) Avg B / Compl
======  ======= ================ =============
     0   22.672        28669.019     32499.200
     1   22.350        28529.460     31881.671
     2   22.784        28992.762     33028.554
     3   23.394        31395.401     36723.200


#####  Totals:  #####


   Bytes(MEG)    realtime(s) Avg Frame Size Throughput(MB/s)
================ =========== ============== ================
     2619.777847      23.395       1456.244          111.980


Throughput(Buffers/s) Cycles/Byte       Buffers
===================== =========== =============
             1791.684      13.534     41916.446


DPCs(count/s) Pkts(num/DPC)   Intr(count/s) Pkts(num/intr)
============= ============= =============== ==============
     8701.517         9.266        9632.058          8.371


Packets Sent Packets Received Retransmits Errors Avg. CPU %
============ ================ =========== ====== ==========
      277431          1886384           7      4     13.270

providing many important statistics. The simplest is a baseline speed for your network (Throughput) on these machines. For network testing I recommend using the fastest machines you have and then working down to slower machines to see what processor speed impact has (in this test, only 13% CPU was used, so this 111 MB/s speed is more limited by networking than CPU).

This test was run on 1Gbps Ethernet and shows 888 Mbps (111 MBps * 8 bits per byte) and is an excellent result, showing the full capacity of the network is available (achieving 89% of capacity was done on a "quiet" network with both machines on the same switch).

[1] http://gallery.technet.microsoft.com/NTttcp-Version-528-Now-f8b12769