What is NetSpec?

NetSpec is a tool designed to provide convenient and sophisticated support for experiments testing the function and performance of networks.

Why Use NetSpec?

NetSpec provides a far wider range of test types and scenarios than current methods (e.g. ttcp or netperf), because accurately characterizing network behavior and performance requires more subtle testing than what is provided by a "Full Blast" data stream from point A to point B.

How Do I Use It?

NetSpec uses a scripting language that allows the user to define multiple traffic flows from/to multiple computers. This allows an automatic and reproducible test to be performed.

A test would be started with:

netspec script.name

A simple full blast script would look like the following:

cluster {

test {
type = full (blocksize=32768, duration=10);
protocol = tcp (window=131072);
own = hosta:42005;
peer = hostb:42006;

test hostb {
type = sink (blocksize=32768, duration=10);
protocol = tcp (window=131072);
own = hostb:42006;
peer = hosta:42005;


How Does It Work?

NetSpec consists of several daemon types that are started and controlled by the main netspec daemon (netspecd).

Comments, questions, remarks? Contact Roelof Jonkman.