Some Testing Tools for TCP Implementors
RFC 2398

Document Type RFC - Informational (August 1998; No errata)
Also known as FYI 33
Authors Steve Parker  , Christopher Schmechel 
Last updated 2013-03-02
Stream IETF
Formats plain text html pdf htmlized bibtex
Stream WG state (None)
Document shepherd No shepherd assigned
IESG IESG state RFC 2398 (Informational)
Consensus Boilerplate Unknown
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                          S. Parker
Request for Comments: 2398                                  C. Schmechel
FYI: 33                                           Sun Microsystems, Inc.
Category: Informational                                      August 1998

                Some Testing Tools for TCP Implementors

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (1998).  All Rights Reserved.

1. Introduction

   Available tools for testing TCP implementations are catalogued by
   this memo.  Hopefully disseminating this information will encourage
   those responsible for building and maintaining TCP to make the best
   use of available tests.  The type of testing the tool provides, the
   type of tests it is capable of doing, and its availability is
   enumerated.  This document lists only tools which can evaluate one or
   more TCP implementations, or which can privde some specific results
   which describe or evaluate the TCP being tested. A number of these
   tools produce time-sequence plots, see

   Tim Shepard's thesis [She91] for a general discussion of these plots.

   Each tools is defined as follows:


   The name associated with the testing tool.


   One or more categories of tests which the tools are capable of
   providing.  Categories used are: functional correctness, performance,
   stress.  Functional correctness tests how stringent a TCP
   implementation is to the RFC specifications.  Performance tests how

Parker & Schmechel           Informational                      [Page 1]
RFC 2398        Some Testing Tools for TCP Implementors      August 1998

   quickly a TCP implementation can send and receive data, etc.  Stress
   tests how a TCP implementation is effected under high load


   A description of the tools construction, and the implementation
   methodology of the tests.


   What steps are required to complete the test?  What human
   intervention is required?


   How do you retrieve this tool and get more information about it?

 Required Environment

   Compilers, OS version, etc. required to build and/or run the
   associated tool.


   A list of publications relating to the tool, if any.

2. Tools

2.1.  Dbs

   Yukio Murayama

   Performance / Stress

   Dbs is a tool which allows multiple data transfers to be coordinated,
   and the resulting TCP behavior to be reviewed.  Results are presented
   as ASCII log files.

   Command of execution is driven by a script file.

Parker & Schmechel           Informational                      [Page 2]
RFC 2398        Some Testing Tools for TCP Implementors      August 1998

   See for details of precise OS
   versions supported, and for download of the source code.  Current
   implementation supports BSDI BSD/OS, Linux, mkLinux, SunOS, IRIX,
   Ultrix, NEWS OS, HP-UX. Other environments are likely easy to add.

 Required Environment
   C language compiler, UNIX-style socket API support.

2.2.  Dummynet

   Luigi Rizzo

   Functional Correctness / Performance

   Dummynet is a tool which simulates the presence of finite size
   queues, bandwidth limitations, and communication delays.  Dummynet
   inserts between two layers of the protocol stack (in the current
   implementation between TCP and IP), simulating the above effects in
   an operational system.  This way experiments can be done using real
   protocol implementations and real applications, even running on the
   same host (dummynet also intercepts communications on the loopback
   interface).  Reconfiguration of dummynet parameters (delay, queue
   size, bandwidth) can be done on the fly by using a sysctl call. The
   overhead of dummynet is extremely low.

   Requires merging diff files with kernel source code.  Command-line
   driven through the sysctl command to modify kernel variables.

   See or e-mail Luigi
   Rizzo (  Source code is available for FreeBSD
   2.1 and FreeBSD 2.2 (easily adaptable to other BSD-derived systems).

 Required Environment
   C language compiler, BSD-derived system, kernel source code.


Parker & Schmechel           Informational                      [Page 3]
RFC 2398        Some Testing Tools for TCP Implementors      August 1998

2.3.  Netperf

   Rick Jones


   Single connection bandwidth or latency tests for TCP, UDP, and DLPI.
   Includes provisions for CPU utilization measurement.

   Requires compilation (K&R C sufficient for all but-DHISTOGRAM, may
Show full document text