TCP and IP bake off
RFC 1025

Document Type RFC - Unknown (September 1987; No errata)
Last updated 2013-03-02
Stream Legacy
Formats plain text pdf html bibtex
Stream Legacy state (None)
Consensus Boilerplate Unknown
RFC Editor Note (None)
IESG IESG state RFC 1025 (Unknown)
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                          J. Postel
Request for Comments: 1025                                           ISI
                                                          September 1987

                          TCP AND IP BAKE OFF

Status of This Memo

   This memo describes some of the procedures, scoring, and tests used
   in the TCP and IP bake offs held in the early development of these
   protocols.  These procedures and tests may still be of use in testing
   newly implemented TCP and IP modules.  Distribution of this memo is
   unlimited.

Introduction

   In the early days of the development of TCP and IP, when there were
   very few implementations and the specifications were still evolving,
   the only way to determine if an implementation was "correct" was to
   test it against other implementations and argue that the results
   showed your own implementation to have done the right thing.  These
   tests and discussions could, in those early days, as likely change
   the specification as change the implementation.

   There were a few times when this testing was focused, bringing
   together all known implementations and running through a set of tests
   in hopes of demonstrating the N squared connectivity and correct
   implementation of the various tricky cases.  These events were called
   "Bake Offs".

   An early version of the list of tests included here appears in IEN-69
   of October 1978.  A demonstration of four TCP implementations was
   held at the Defense Communication Engineering Center in Reston,
   Virginia on 4 December 1978, and reported in IEN-70 of December 1978.
   A bake off of six implementations was held 27-28 January 1979 at
   USC-Information Sciences Institute in Marina del Rey, California and
   reported in IEN-77 of February 1979.  And a distributed bake off was
   held in April 1980 over the network and reported in IEN-145 of May
   1980.

   The following section reproduces (with very slight editing) the
   procedure, tests, and scoring of the April 1980 Bake Off.

Postel                                                          [Page 1]
RFC 1025                  TCP and IP Bake Off             September 1987

Procedure

   This is the procedure for the TCP and IP Bake Off.  Each implementor
   of a TCP and IP is to perform the following tests and to report the
   results.  In general, this is done by using a test program or user
   Telnet program to open connections to your own or other TCP
   implementations.

   Some test are made more interesting by the use of a "flakeway".  A
   flakeway is a purposely flakey gateway.  It should have control
   parameters that can be adjusted while it is running to specify a
   percentage of datagrams to be dropped, a percentage of datagrams to
   be corrupted and passed on, and a percentage of datagrams to be
   reordered so that they arrive in a different order than sent.

   Many of the following apply for each distinct TCP contacted (for
   example, in the Middleweight Division there is a possibility of 20
   points for each other TCP in the Bake Off).

   Note Bene: Checksums must be enforced.  No points will be awarded if
   the checksum test is disabled.

      Featherweight Division

         1 point for talking to yourself (opening a connection).

         1 point for saying something to yourself (sending and receiving
         data).

         1 point for gracefully ending the conversation (closing the
         connection without crashing).

         2 points for repeating the above without reinitializing the
         TCP.

         5 points for a complete conversation via the testing gateway.

      Middleweight Division

         2 points for talking to someone else (opening a connection).

         2 points for saying something to someone else (sending and
         receiving data).

         2 points for gracefully ending the conversation (closing the
         connection without crashing).

Postel                                                          [Page 2]
RFC 1025                  TCP and IP Bake Off             September 1987

         4 points for repeating the above without reinitializing the
         TCP.

         10 points for a complete conversation via the testing gateway.

      Heavyweight Division

         10 points for being able to talk to more than one other TCP at
         the same time (multiple connections open and active
         simultaneously with different TCPs).

         10 points for correctly handling urgent data.

         10 points for correctly handling sequence number wraparound.

         10 points for correctly being able to process a "Kamikaze"
         packet (AKA nastygram, christmas tree packet, lamp test
         segment, et al.).  That is, correctly handle a segment with the
         maximum combination of features at once (e.g., a SYN URG PUSH
         FIN segment with options and data).

         30 points for KOing your opponent with legal blows.  (That is,
Show full document text