Some Testing Tools for TCP Implementors
RFC 2398

Document Type RFC - Informational (August 1998; No errata)
Also known as FYI 33
Last updated 2013-03-02
Stream IETF
Formats plain text pdf html 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:

 Name

   The name associated with the testing tool.

 Category

   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
   conditions.

 Description

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

 Automation

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

 Availability

   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.

 References

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

2. Tools

2.1.  Dbs

 Author
   Yukio Murayama

 Category
   Performance / Stress

 Description
   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.

 Automation
   Command of execution is driven by a script file.

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

 Availability
   See http://www.ai3.net/products/dbs 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

 Author
   Luigi Rizzo

 Category
   Functional Correctness / Performance

 Description
   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.

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

 Availability
   See http://www.iet.unipi.it/~luigi/research.html or e-mail Luigi
   Rizzo (l.rizzo@iet.unipi.it).  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.

 References
   [Riz97]

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

2.3.  Netperf

 Author
   Rick Jones

 Category
   Performance

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

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