home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2398.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  24.4 KB  |  844 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          S. Parker
  8. Request for Comments: 2398                                  C. Schmechel
  9. FYI: 33                                           Sun Microsystems, Inc.
  10. Category: Informational                                      August 1998
  11.  
  12.  
  13.                 Some Testing Tools for TCP Implementors
  14.  
  15. Status of this Memo
  16.  
  17.    This memo provides information for the Internet community.  It does
  18.    not specify an Internet standard of any kind.  Distribution of this
  19.    memo is unlimited.
  20.  
  21. Copyright Notice
  22.  
  23.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  24.  
  25. 1. Introduction
  26.  
  27.    Available tools for testing TCP implementations are catalogued by
  28.    this memo.  Hopefully disseminating this information will encourage
  29.    those responsible for building and maintaining TCP to make the best
  30.    use of available tests.  The type of testing the tool provides, the
  31.    type of tests it is capable of doing, and its availability is
  32.    enumerated.  This document lists only tools which can evaluate one or
  33.    more TCP implementations, or which can privde some specific results
  34.    which describe or evaluate the TCP being tested. A number of these
  35.    tools produce time-sequence plots, see
  36.  
  37.    Tim Shepard's thesis [She91] for a general discussion of these plots.
  38.  
  39.    Each tools is defined as follows:
  40.  
  41.  Name
  42.  
  43.    The name associated with the testing tool.
  44.  
  45.  Category
  46.  
  47.    One or more categories of tests which the tools are capable of
  48.    providing.  Categories used are: functional correctness, performance,
  49.    stress.  Functional correctness tests how stringent a TCP
  50.    implementation is to the RFC specifications.  Performance tests how
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Parker & Schmechel           Informational                      [Page 1]
  59.  
  60. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  61.  
  62.  
  63.    quickly a TCP implementation can send and receive data, etc.  Stress
  64.    tests how a TCP implementation is effected under high load
  65.    conditions.
  66.  
  67.  Description
  68.  
  69.    A description of the tools construction, and the implementation
  70.    methodology of the tests.
  71.  
  72.  Automation
  73.  
  74.    What steps are required to complete the test?  What human
  75.    intervention is required?
  76.  
  77.  Availability
  78.  
  79.    How do you retrieve this tool and get more information about it?
  80.  
  81.  Required Environment
  82.  
  83.    Compilers, OS version, etc. required to build and/or run the
  84.    associated tool.
  85.  
  86.  References
  87.  
  88.    A list of publications relating to the tool, if any.
  89.  
  90. 2. Tools
  91.  
  92. 2.1.  Dbs
  93.  
  94.  Author
  95.    Yukio Murayama
  96.  
  97.  Category
  98.    Performance / Stress
  99.  
  100.  Description
  101.    Dbs is a tool which allows multiple data transfers to be coordinated,
  102.    and the resulting TCP behavior to be reviewed.  Results are presented
  103.    as ASCII log files.
  104.  
  105.  Automation
  106.    Command of execution is driven by a script file.
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Parker & Schmechel           Informational                      [Page 2]
  115.  
  116. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  117.  
  118.  
  119.  Availability
  120.    See http://www.ai3.net/products/dbs for details of precise OS
  121.    versions supported, and for download of the source code.  Current
  122.    implementation supports BSDI BSD/OS, Linux, mkLinux, SunOS, IRIX,
  123.    Ultrix, NEWS OS, HP-UX. Other environments are likely easy to add.
  124.  
  125.  Required Environment
  126.    C language compiler, UNIX-style socket API support.
  127.  
  128. 2.2.  Dummynet
  129.  
  130.  Author
  131.    Luigi Rizzo
  132.  
  133.  Category
  134.    Functional Correctness / Performance
  135.  
  136.  Description
  137.    Dummynet is a tool which simulates the presence of finite size
  138.    queues, bandwidth limitations, and communication delays.  Dummynet
  139.    inserts between two layers of the protocol stack (in the current
  140.    implementation between TCP and IP), simulating the above effects in
  141.    an operational system.  This way experiments can be done using real
  142.    protocol implementations and real applications, even running on the
  143.    same host (dummynet also intercepts communications on the loopback
  144.    interface).  Reconfiguration of dummynet parameters (delay, queue
  145.    size, bandwidth) can be done on the fly by using a sysctl call. The
  146.    overhead of dummynet is extremely low.
  147.  
  148.  Automation
  149.    Requires merging diff files with kernel source code.  Command-line
  150.    driven through the sysctl command to modify kernel variables.
  151.  
  152.  Availability
  153.    See http://www.iet.unipi.it/~luigi/research.html or e-mail Luigi
  154.    Rizzo (l.rizzo@iet.unipi.it).  Source code is available for FreeBSD
  155.    2.1 and FreeBSD 2.2 (easily adaptable to other BSD-derived systems).
  156.  
  157.  Required Environment
  158.    C language compiler, BSD-derived system, kernel source code.
  159.  
  160.  References
  161.    [Riz97]
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Parker & Schmechel           Informational                      [Page 3]
  171.  
  172. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  173.  
  174.  
  175. 2.3.  Netperf
  176.  
  177.  Author
  178.    Rick Jones
  179.  
  180.  Category
  181.    Performance
  182.  
  183.  Description
  184.    Single connection bandwidth or latency tests for TCP, UDP, and DLPI.
  185.    Includes provisions for CPU utilization measurement.
  186.  
  187.  Automation
  188.    Requires compilation (K&R C sufficient for all but-DHISTOGRAM, may
  189.    require ANSI C in the future) if starting from source. Execution as
  190.    child of inetd requires editing of /etc/services and /etc/inetd.conf.
  191.    Scripts are provided for a quick look (snapshot_script), bulk
  192.    throughput of TCP and UDP, and latency for TCP and UDP.  It is
  193.    command-line driven.
  194.  
  195.  Availability
  196.    See http://www.cup.hp.com/netperf/NetperfPage.html or e-mail Rick
  197.    Jones (raj@cup.hp.com). Binaries are available here for HP/UX Irix,
  198.    Solaris, and Win32.
  199.  
  200.  Required Environment
  201.    C language compiler, POSIX.1, sockets.
  202.  
  203. 2.4.  NIST Net
  204.  
  205.  Author
  206.    Mark Carson
  207.  
  208.  Category
  209.    Functional Correctness / Performance
  210.  
  211.  Description
  212.    NIST Net is a network emulator. The tool is packaged as a Linux
  213.    kernel patch, a kernel module, a set of programming APIs, and
  214.    command-line and X-based user interfaces.
  215.  
  216.    NIST Net works by turning the system into a "selectively bad" router
  217.    - incoming packets may be delayed, dropped, duplicated, bandwidth-
  218.    constrained, etc.  Packet delays may be fixed or randomly
  219.    distributed, with loadable probability distributions.  Packet loss
  220.    may be uniformly distributed (constant loss probability) or
  221.    congestion-dependent (probability of loss increases with packet queue
  222.    lengths).  Explicit congestion notifications may optionally be sent
  223.  
  224.  
  225.  
  226. Parker & Schmechel           Informational                      [Page 4]
  227.  
  228. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  229.  
  230.  
  231.    in place of congestion-dependent loss.
  232.  
  233.  Automation
  234.    To control the operation of the emulator, there is an interactive
  235.    user interface, a non-interactive command-line interface, and a set
  236.    of APIs.  Any or all of these may be used in concert.  The
  237.    interactive interface is suitable for simple, spur-of-the-moment
  238.    testing, while the command-line or APIs may be used to create
  239.    scripted, non-interactive tests.
  240.  
  241.  Availability
  242.    NIST Net is available for public download from the NIST Net web site,
  243.    http://www.antd.nist.gov/itg/nistnet/.  The web site also has
  244.    installation instructions and documentation.
  245.  
  246.  Required Environment
  247.    NIST Net requires a Linux installtion, with kernel version 2.0.27 -
  248.    2.0.33.  A kernel source tree and build tools are required to build
  249.    and install the NIST Net components.  Building the X interface
  250.    requires a version of XFree86 (Current Version is 3.3.2).  An
  251.    Athena-replacement widget set such as neXtaw
  252.    (http://www.inf.ufrgs.br/~kojima/nextaw/) is also desirable for an
  253.    improved user interface.
  254.  
  255.    NIST Net should run on any i386-compatible machine capable of running
  256.    Linux, with one or more interfaces.
  257.  
  258. 2.5.  Orchestra
  259.  
  260.  Author
  261.    Scott Dawson, Farnam Jahanian, and Todd Mitton
  262.  
  263.  Category
  264.    Functional Correctness / Performance
  265.  
  266.  Description
  267.    This tool is a library which provides the user with an ability to
  268.    build a protocol layer capable of performing fault injection on
  269.    protocols.  Several fault injection layers have been built using this
  270.    library, one of which has been used to test different vendor
  271.    implementations of TCP. This is accomplished by probing the vendor
  272.    implementation from one machine containing a protocol stack that has
  273.    been instrumented with Orchestra.  A connection is opened from the
  274.    vendor TCP implementation to the machine which has been instrumented.
  275.    Faults may then be injected at the Orchestra side of the connection
  276.    and the vendor TCP's response may be monitored.  The most recent
  277.    version of Orchestra runs inside the X-kernel protocol stack on the
  278.    OSF MK operating system.
  279.  
  280.  
  281.  
  282. Parker & Schmechel           Informational                      [Page 5]
  283.  
  284. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  285.  
  286.  
  287.    When using Orchestra to test a protocol, the fault injection layer is
  288.    placed below the target protocol in the protocol stack.  This can
  289.    either be done on one machine on the network, if protocol stacks on
  290.    the other machines cannot be modified (as in the case of testing
  291.    TCP), or can be done on all machines on the network (as in the case
  292.    of testing a protocol under development).  Once the fault injection
  293.    layer is in the protocol stack, all messages sent by and destined for
  294.    the target protocol pass through it on their way to/from the network.
  295.    The Orchestra fault injection layer can manipulate these messages.
  296.    In particular, it can drop, delay, re-order, duplicate, or modify
  297.    messages.  It can also introduce new messages into the system if
  298.    desired.
  299.  
  300.    The actions of the Orchestra fault injection layer on each message
  301.    are determined by a script, written in Tcl.  This script is
  302.    interpreted by the fault injection layer when the message enters the
  303.    layer.  The script has access to the header information about the
  304.    message, and can make decisions based on header values.  It can also
  305.    keep information about previous messages, counters, or any other data
  306.    which the script writer deems useful.  Users of Orchestra may also
  307.    define their own actions to be taken on messages, written in C, that
  308.    may be called from the fault injection scripts.
  309.  
  310.  Automation
  311.    Scripts can be specified either using a graphical user interface
  312.    which generates Tcl, or by writing Tcl directly.  At this time,
  313.    post-analysis of the results of the test must also be performed by
  314.    the user.  Essentially this consists of looking at a packet trace
  315.    that Orchestra generates for (in)correct behavior.  Must compile and
  316.    link fault generated layer with the protocol stack.
  317.  
  318.  Availability
  319.    See http://www.eecs.umich.edu/RTCL/projects/orchestra/ or e-mail
  320.    Scott Dawson (sdawson@eecs.umich.edu).
  321.  
  322.  Required Environment OSF MK operating system, or X-kernel like network
  323.    architecture, or adapted to network stack.
  324.  
  325.  References
  326.    [DJ94], [DJM96a], [DJM96b]
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Parker & Schmechel           Informational                      [Page 6]
  339.  
  340. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  341.  
  342.  
  343. 2.6.  Packet Shell
  344.  
  345.  Author
  346.    Steve Parker and Chris Schmechel
  347.  
  348.  Category
  349.    Functional Correctness / Performance
  350.  
  351.  Description
  352.    An extensible Tcl/Tk based software toolset for protocol development
  353.    and testing. Tcl (Tool Command Language) is an embeddable scripting
  354.    language and Tk is a graphical user interface toolkit based on Tcl.
  355.    The Packet Shell creates Tcl commands that allow you to create,
  356.    modify, send, and receive packets on networks.  The operations for
  357.    each protocol are supplied by a dynamic linked library called a
  358.    protocol library.  These libraries are silently linked in from a
  359.    special directory when the Packet Shell begins execution. The current
  360.    protocol libraries are: IP, IPv6, IPv6 extensions, ICMP, ICMPv6,
  361.    Ethernet layer, data layer, file layer (snoop and tcpdump support),
  362.    socket layer, TCP, TLI.
  363.  
  364.    It includes harness, which is a Tk based graphical user interface for
  365.    creating test scripts within the Packet Shell.  It includes tests for
  366.    no initial slow start, and retain out of sequence data as TCP test
  367.    cases mentioned in [PADHV98].
  368.  
  369.    It includes tcpgraph, which is used with a snoop or tcpdump capture
  370.    file to produce a TCP time-sequence plot using xplot.
  371.  
  372.  Automation
  373.    Command-line driven through Tcl commands, or graphical user interface
  374.    models are available through the harness format.
  375.  
  376.  Availability
  377.    See http://playground.sun.com/psh/ or e-mail owner-packet-
  378.    shell@sunroof.eng.sun.com.
  379.  
  380.  Required Environment
  381.  
  382.    Solaris 2.4 or higher.  Porting required for other operating systems.
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Parker & Schmechel           Informational                      [Page 7]
  395.  
  396. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  397.  
  398.  
  399. 2.7.  Tcpanaly
  400.  
  401.  Author
  402.    Vern Paxson
  403.  
  404.  Category
  405.    Functional Correctness / Performance
  406.  
  407.  Description
  408.    This is a tool for automatically analyzing a TCP implementation's
  409.    behavior by inspecting packet traces of the TCP's activity. It does
  410.    so through packet filter traces produced by tcpdump.  It has coded
  411.    within it knowledge of a large number of TCP implementations.  Using
  412.    this, it can determine whether a given trace appears consistent with
  413.    a given implementation, and, if so, exactly why the TCP chose to
  414.    transmit each packet at the time it did.  If a trace is found
  415.    inconsistent with a TCP, tcpanaly either diagnoses a likely
  416.    measurement error present in the trace, or indicates exactly whether
  417.    the activity in the trace deviates from that of the TCP, which can
  418.    greatly aid in determining how the traced implementation behaves.
  419.  
  420.    Tcpanaly's category is somewhat difficult to classify, since it
  421.    attempts to profile the behavior of an implementation, rather than to
  422.    explicitly test specific correctness or performance issues. However,
  423.    this profile identifies correctness and performance problems.
  424.  
  425.    Adding new implementations of TCP behavior is possible with tcpanaly
  426.    through the use of C++ classes.
  427.  
  428.  Automation
  429.    Command-line driven and only the traces of the TCP sending and
  430.    receiving bulk data transfers are needed as input.
  431.  
  432.  Availability
  433.    Contact Vern Paxson (vern@ee.lbl.gov).
  434.  
  435.  Required Environment
  436.    C++ compiler.
  437.  
  438.  References
  439.    [Pax97a]
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Parker & Schmechel           Informational                      [Page 8]
  451.  
  452. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  453.  
  454.  
  455. 2.8.  Tcptrace
  456.  
  457.  Author
  458.    Shawn Ostermann
  459.  
  460.  Category
  461.    Functional Correctness / Performance
  462.  
  463.  Description
  464.    This is a TCP trace file analysis tool. It reads output trace files
  465.    in the formats of : tcpdump, snoop, etherpeek, and netm.
  466.  
  467.    For each connection, it keeps track of elapsed time, bytes/segments
  468.    sent and received, retransmissions, round trip times, window
  469.    advertisements, throughput, etc from simple to very detailed output.
  470.  
  471.    It can also produce three different types of graphs:
  472.  
  473.    Time Sequence Graph (shows the segments sent and ACKs returned as a
  474.    function of time)
  475.  
  476.    Instantaneous Throughput (shows the instantaneous, averaged over a
  477.    few segments, throughput of the connection as a function of time).
  478.  
  479.    Round Trip Times (shows the round trip times for the ACKs as a
  480.    function of time)
  481.  
  482.  Automation
  483.    Command-line driven, and uses the xplot program to view the graphs.
  484.  
  485.  Availability
  486.    Source code is available, and Solaris binary along with sample
  487.    traces. See http://jarok.cs.ohiou.edu/software/tcptrace/tcptrace.html
  488.    or e-mail Shawn Ostermann (ostermann@cs.ohiou.edu).
  489.  
  490.  Required Environment
  491.    C compiler, Solaris, FreeBSD, NetBSD, HPUX, Linux.
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Parker & Schmechel           Informational                      [Page 9]
  507.  
  508. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  509.  
  510.  
  511. 2.9.  Tracelook
  512.  
  513.  Author
  514.    Greg Minshall
  515.  
  516.  Category
  517.    Functional Correctness / Performance
  518.  
  519.  Description
  520.    This is a Tcl/Tk program for graphically viewing the contents of
  521.    tcpdump trace files.  When plotting a connection, a user can select
  522.    various variables to be plotted. In each direction of the connection,
  523.    the user can plot the advertised window in each packet, the highest
  524.    sequence number in each packet, the lowest sequence number in each
  525.    packet, and the acknowledgement number in each packet.
  526.  
  527.  Automation
  528.    Command-line driven with a graphical user interface for the graph.
  529.  
  530.  Availability
  531.    See http://www.ipsilon.com/~minshall/sw/tracelook/tracelook.html or
  532.    e-mail Greg Minshall (minshall@ipsilon.com).
  533.  
  534.  Required Environment
  535.    A modern version of awk, and Tcl/Tk (Tk version 3.6 or higher).  The
  536.    program xgraph is required to view the graphs under X11.
  537.  
  538. 2.10.  TReno
  539.  
  540.  Author
  541.    Matt Mathis and Jamshid Mahdavi
  542.  
  543.  Category
  544.    Performance
  545.  
  546.  Description
  547.    This is a TCP throughput measurement tool based on sending UDP or
  548.    ICMP packets in patterns that are controlled at the user-level so
  549.    that their timing reflects what would be sent by a TCP that observes
  550.    proper congestion control (and implements SACK).  This allows it to
  551.    measure throughput independent of the TCP implementation of end hosts
  552.    and serve as a useful platform for prototyping TCP changes.
  553.  
  554.  Automation
  555.    Command-line driven.  No "server" is required, and it only requires a
  556.    single argument of the machine to run the test to.
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Parker & Schmechel           Informational                     [Page 10]
  563.  
  564. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  565.  
  566.  
  567.  Availability
  568.    See http://www.psc.edu/networking/treno_info.html or e-mail Matt
  569.    Mathis (mathis@psc.edu) or Jamshid Mahdavi (mahdavi@psc.edu).
  570.  
  571.  Required Environment
  572.    C compiler, POSIX.1, raw sockets.
  573.  
  574. 2.11.  Ttcp
  575.  
  576.  Author
  577.    Unknown
  578.  
  579.  Category
  580.    Performance
  581.  
  582.  Description
  583.    Originally written to move files around, ttcp became the classic
  584.    throughput benchmark or load generator, with the addition of support
  585.    for sourcing to/from memory. It can also be used as a traffic
  586.    absorber. It has spawned many variants, recent ones include support
  587.    for UDP, data pattern generation, page alignment, and even alignment
  588.    offset control.
  589.  
  590.  Automation
  591.    Command-line driven.
  592.  
  593.  Availability
  594.    See ftp://ftp.arl.mil/pub/ttcp/ or e-mail ARL (ftp@arl.mil) which
  595.    includes the most common variants available.
  596.  
  597.  Required Environment
  598.    C compiler, BSD sockets.
  599.  
  600. 2.12.  Xplot
  601.  
  602.  Author
  603.    Tim Shepard
  604.  
  605.  Category
  606.    Functional Correctness / Performance
  607.  
  608.  Description
  609.    This is a fairly conventional graphing/plotting tool (xplot itself),
  610.    a script to turn tcpdump output into xplot input, and some sample
  611.    code to generate xplot commands to plot the TCP time-sequence graph).
  612.  
  613.  Automation
  614.    Command-line driven with a graphical user interface for the plot.
  615.  
  616.  
  617.  
  618. Parker & Schmechel           Informational                     [Page 11]
  619.  
  620. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  621.  
  622.  
  623.  Availability
  624.    See ftp://mercury.lcs.mit.edu/pub/shep/xplot.tar.gz or e-mail Tim
  625.    Shepard (shep@lcs.mit.edu).
  626.  
  627.  Required Environment
  628.    C compiler, X11.
  629.  
  630.  References
  631.    [She91]
  632.  
  633. 3. Summary
  634.  
  635.    This memo lists all TCP tests and testing tools reported to the
  636.    authors as part of TCP Implementer's working group and is not
  637.    exhaustive.  These tools have been verified as available by the
  638.    authors.
  639.  
  640. 4. Security Considerations
  641.  
  642.    Network analysis tools are improving at a steady pace.  The
  643.    continuing improvement in these tools such as the ones described make
  644.    security concerns significant.
  645.  
  646.    Some of the tools could be used to create rogue packets or denial-
  647.    of-service attacks against other hosts.  Also, some of the tools
  648.    require changes to the kernel (foreign code) and might require root
  649.    privileges to execute.  So you are trusting code that you have
  650.    fetched from some perhaps untrustworthy remote site.  This code could
  651.    contain malicious code that could present any kind of attack.
  652.  
  653.    None of the listed tools evaluate security in any way or form.
  654.  
  655.    There are privacy concerns when grabbing packets from the network in
  656.    that you are now able to read other people's mail, files, etc.  This
  657.    impacts more than just the host running the tool but all traffic
  658.    crossing the host's physical network.
  659.  
  660. 5. References
  661.  
  662.    [DJ94]    Scott Dawson and Farnam Jahanian, "Probing and Fault
  663.              Injection of Distributed Protocol Implementations",
  664.              University of Michigan Technical Report CSE-TR-217-94, EECS
  665.              Department.
  666.  
  667.    [DJM96a]  Scott Dawson, Farnam Jahanian, and Todd Mitton, "ORCHESTRA:
  668.              A Fault Injection Environment for Distributed Systems",
  669.              University of Michigan Technical Report CSE-TR-318-96, EECS
  670.              Department.
  671.  
  672.  
  673.  
  674. Parker & Schmechel           Informational                     [Page 12]
  675.  
  676. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  677.  
  678.  
  679.    [DJM96b]  Scott Dawson, Farnam Jahanian, and Todd Mitton,
  680.              "Experiments on Six Commercial TCP Implementations Using a
  681.              Software Fault Injection Tool", University of Michigan
  682.              Technical Report CSE-TR-298-96, EECS Department.
  683.  
  684.    [Pax97a]  Vern Paxson, "Automated Packet Trace Analysis of TCP
  685.              Implementations", ACM SIGCOMM '97, September 1997, Cannes,
  686.              France.
  687.  
  688.    [PADHV98] Paxson, V., Allman, M., Dawson, S., Heavens, I., and B.
  689.              Volz, "Known TCP Implementation Problems", Work In
  690.              Progress.
  691.  
  692.    [Riz97]   Luigi Rizzo, "Dummynet: a simple approach to the evaluation
  693.              of network protocols", ACM Computer Communication Review,
  694.              Vol. 27, N. 1, January 1997, pp.  31-41.
  695.  
  696.    [She91]   Tim Shepard, "TCP Packet Trace Analysis", MIT Laboratory
  697.              for Computer Science MIT-LCS-TR-494, February, 1991.
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Parker & Schmechel           Informational                     [Page 13]
  731.  
  732. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  733.  
  734.  
  735. 6. Authors' Addresses
  736.  
  737.    Steve Parker
  738.    Sun Microsystems, Inc.
  739.    901 San Antonio Road, UMPK17-202
  740.    Palo Alto, CA 94043
  741.    USA
  742.  
  743.    Phone: (650) 786-5176
  744.    EMail: sparker@eng.sun.com
  745.  
  746.  
  747.    Chris Schmechel
  748.    Sun Microsystems, Inc.
  749.    901 San Antonio Road, UMPK17-202
  750.    Palo Alto, CA, 94043
  751.    USA
  752.  
  753.    Phone: (650) 786-4053
  754.    EMail: cschmec@eng.sun.com
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Parker & Schmechel           Informational                     [Page 14]
  787.  
  788. RFC 2398        Some Testing Tools for TCP Implementors      August 1998
  789.  
  790.  
  791. 7.  Full Copyright Statement
  792.  
  793.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  794.  
  795.    This document and translations of it may be copied and furnished to
  796.    others, and derivative works that comment on or otherwise explain it
  797.    or assist in its implementation may be prepared, copied, published
  798.    and distributed, in whole or in part, without restriction of any
  799.    kind, provided that the above copyright notice and this paragraph are
  800.    included on all such copies and derivative works.  However, this
  801.    document itself may not be modified in any way, such as by removing
  802.    the copyright notice or references to the Internet Society or other
  803.    Internet organizations, except as needed for the purpose of
  804.    developing Internet standards in which case the procedures for
  805.    copyrights defined in the Internet Standards process must be
  806.    followed, or as required to translate it into languages other than
  807.    English.
  808.  
  809.    The limited permissions granted above are perpetual and will not be
  810.    revoked by the Internet Society or its successors or assigns.
  811.  
  812.    This document and the information contained herein is provided on an
  813.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  814.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  815.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  816.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  817.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Parker & Schmechel           Informational                     [Page 15]
  843.  
  844.