Q: How can I test the network performance between two endpoints based on specific processor cores being used?

A. Microsoft has a free utility which includes x86, x64, and ia64 versions. The download also includes a step-by-step document. Here's a high-level look at how to use it:

  1. Install the utility on two machines: One will be the data sending, the other the data receiver.
  2. The application is installed to folder C:\Program Files (x86)\Microsoft Corporation\NT Testing TCP Tool. On the sender machine, rename the executable that matches the processor architecture on the machine to NTttcps.exe (e.g., on a 64-bit machine, I rename NTttcp_x64.exe). On the receiver machine, rename the executable that matches the processor architecture to NTttcpr.exe.
  3. On the receiver machine, you must create a firewall exception for TCP starting at port 5001 for the number of concurrent threads you will use in your test. For example, if your test will use 4 concurrent threads, then you need to open ports 5001 to 5004 as shown in my exception:

  4. On the receiver machine start the listener process using the IP address to listen on (192.168.1.35), the number of threads (4), and the processor core (0):
    C:\Program Files (x86)\Microsoft Corporation\NT Testing TCP Tool>NTttcpr -m 4,0,192.168.1.35 -a 6 -fr
  5. On the sender machine, start the sender, matching the number of threads and the IP address of the listener:
    C:\Program Files (x86)\Microsoft Corporation\NT Testing TCP Tool>NTttcps -m 4,0,192.168.1.35
  6. Once the sender starts, the testing phase begins.

  7. Once the tests are complete, a summary of the network testing results will be displayed, including the amount of processor used on each machine.