NTttcp

SUMMARY

This tool measures network driver performance and throughput on different network topologies and hardware setups. It provides the customer with a multi-threaded, asynchronous performance benchmark for measuring achievable data transfer rate on an existing network setup.

BUILDING THE SAMPLE

No build is required. Note that the same executable is present under two filenames, Ntttcpr.exe (receiver) and Ntttcps.exe (sender).

USAGE

Syntax

NTttcpr -m 4,0,11.1.1.200 [-a | -l | -n | -p | -w | -sb | -rb | -u | -x | -i | -v | -6]
NTttcps -m 4,0,11.1.1.200 [-a | -l | -n | -p | -w | -sb | -rb | -u | -x | -i | -v | -6]

Parameters List and Default Values

-a   specifies asynchronous transfer mode (default: 2)
-l    specifies the length of the buffer (default: 64K)
-n   specifies number of buffers being used (default: 20K)
-p   specifies the port number being used (default: 5001)
-w  WSASend / WSARecv mode
-sb  specifies the SO_SNDBUF size (default: zero)
-rb  specifies the SO_RCVBUF size (default: 64K)
-u   UDP send/recv mode
-x   specifies pkt array size for TransmitPacket (default: 1)
-i    specifies inifinite loop for UDP
-v   specifies verbose mode
-6   IPv6 support
-m   the mapping that specifies threads per link, processor number to which to set thread affinity, and IP address of receiver machine

You can run NTttcp over multiple LANs A and B as follows:

Sender Syntax:
NTttcps -m 2,0,11.1.1.200 3,1,11.2.1.200 -a 3 -n 5000 -l 32k

LAN A has 2 threads running over processor 0 going to IP 11.1.1.200 and sending 5000 32KB buffers with 3 outstanding I/Os
LAN B has 3 threads running over processor 1 going to IP 11.2.1.200 and sending 5000 32KB buffers with 3 outstanding I/Os

LAN A Receiver Syntax:
NTttcpr -m 2,0,11.1.1.200 -a 6 -l 32K -n 5000 -p 5001

LAN B Receiver Syntax:
NTttcpr -m 3,0,11.2.1.200 -a 6 -l 32K -n 5000 -p 5003

Tips:

- When sending packet lengths < 1460 bytes, set SO_SNDBUF > zero on sender and SO_RCVBUF to zero on receiver.
- Make sure the IP address of the receiver exists in both ntttcpr and ntttcps.
- Make sure the -a parameter is specified in both ntttcps.exe and ntttcpr.exe for best results.
- Specifying a -a value of 1 implies synchronous transfers and will not yield the best performance.
- Make sure you start ntttcpr first followed by ntttcps.
- If retransmits occur, try increasing -a value on receive side.

Example Output (Sender Side)

Sender Syntax   : NTttcpS -m 1,0,1.2.3.4 -a
Receiver Syntax: NTttcpR -m 1,0,1.2.3.4 -a

Copyright Version 2.2
Network activity progressing...

Thread Realtime(s) Throughput(KB/s) Throughput(Mbit/s)
===== ========  ============= ===============
0        11.984        111997.437         895.979

Total Bytes(MEG)   Realtime(s)   Ave Frame Size   Total Throughput(Mbit/s)
=============   ========   ============  ===================
1342.177280         11.984         8193.550           895.979

Total Buffers   Throughput(Buffers/s)   Pkts(sent/intr)   Intr(count/s)   Cycles/Byte
=========    ================   ===========   ==========   =========
20480.000      1708.945                    1                     16599.38         7.3

Packets Sent   Packets Received   Total Retransmits   Total Errors   Avg. CPU %
==========  =============   =============   =========  =========
163809          73266                   0                         0                13.36


CODE TOUR

File Manifest

File		Description

Ntttcp.htm	Documentation for this tool (this file).
Ntttcpr.exe	NTttcp receiver executable. 
Ntttcps.exe	NTttcp sender executable. 

Top of page

© 2004 Microsoft Corporation