[tcpm] 2581 implementation report

Mark Allman <mallman@icir.org> Mon, 24 September 2007 17:40 UTC

Return-path: <tcpm-bounces@ietf.org>
Received: from [127.0.0.1] (helo=stiedprmman1.va.neustar.com) by megatron.ietf.org with esmtp (Exim 4.43) id 1IZrv6-00037l-Db; Mon, 24 Sep 2007 13:40:32 -0400
Received: from [10.91.34.44] (helo=ietf-mx.ietf.org) by megatron.ietf.org with esmtp (Exim 4.43) id 1IZrv5-00037X-7M for tcpm@ietf.org; Mon, 24 Sep 2007 13:40:31 -0400
Received: from pork.icsi.berkeley.edu ([192.150.186.19]) by ietf-mx.ietf.org with esmtp (Exim 4.43) id 1IZrux-0007P8-6f for tcpm@ietf.org; Mon, 24 Sep 2007 13:40:31 -0400
Received: from guns.icir.org (adsl-69-222-35-58.dsl.bcvloh.ameritech.net [69.222.35.58]) by pork.ICSI.Berkeley.EDU (8.12.11.20060308/8.12.11) with ESMTP id l8OHe67Z020723 for <tcpm@ietf.org>; Mon, 24 Sep 2007 10:40:07 -0700
Received: from lawyers.icir.org (adsl-69-222-35-58.dsl.bcvloh.ameritech.net [69.222.35.58]) by guns.icir.org (Postfix) with ESMTP id EE4E2FD7D5A for <tcpm@ietf.org>; Mon, 24 Sep 2007 13:39:59 -0400 (EDT)
Received: from lawyers.icir.org (localhost [127.0.0.1]) by lawyers.icir.org (Postfix) with ESMTP id 61F7E2A7155 for <tcpm@ietf.org>; Mon, 24 Sep 2007 13:38:56 -0400 (EDT)
To: tcpm@ietf.org
From: Mark Allman <mallman@icir.org>
Organization: ICSI Center for Internet Research (ICIR)
Song-of-the-Day: Car Phone
MIME-Version: 1.0
Date: Mon, 24 Sep 2007 13:38:56 -0400
Message-Id: <20070924173856.61F7E2A7155@lawyers.icir.org>
X-Spam-Score: 0.0 (/)
X-Scan-Signature: a1852b4f554b02e7e4548cc7928acc1f
Subject: [tcpm] 2581 implementation report
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.5
Precedence: list
Reply-To: mallman@icir.org
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0412109422=="
Errors-To: tcpm-bounces@ietf.org

Folks-

Attached is a short implementation report to send to the IESG when the
WG is ready to forward 2581bis for publication as a draft standard.
Please take a look at it and let me know if you have anything to add
and/or have heartburn with anything in the writeup.

(I am just floating this by the WG for opinions.  Clearly we need to do
a WGLC on the document itself before anything is forwarded over to the
IESG.) 

Thanks,
allman



 
Background:

  + RFC 2581 is a re-write of RFC 2001.  RFC 2001 was a description
    of TCP's congestion control algorithms that was published long
    after these algorithms were in nearly ubiquitous deployment
    throughout the Internet (largely triggered by the congestion
    collapses of the mid-1980s).

  + While RFC 2001 was a description of the algorithms, RFC 2581 is
    a more traditional specification.  We stress that the RFC was
    written based on running code and experience.

  + The mechanisms in RFC 3042 (Limited Transmit) and RFC 3390
    (Larger Initial Congestion Window) are also rolled into the
    current document.  Both of these enhancements are Proposed
    Standards that have gathered wide consensus within the community
    based on deployment experience.

  + The traditional test of two interoperable implementations to
    move a Proposed Standard to Draft Standard is less obvious in
    the case of congestion control mechanisms.  Congestion control
    is about *when* to send a segment and not *what* that segment
    looks like, how to process it, how big fields are, etc.
    Therefore, it is difficult to assess "interoperability" in the
    traditional sense.  Below we cite several sources that show or
    suggest that multiple implementations of the mechanisms exist
    and seem to work as intended.

  + The new version of the document clarifies a number of small
    issues that implementers have asked about over the years, but
    does not make any large changes to the algorithms.

Known Implementations:

  + [WS95] discusses the BSD implementation of the core algorithms
    in RFC 2581 (slow start, congestion avoidance, fast retransmit
    and fast recovery).  This implementation has formed the basis of
    the TCP stack in numerous operating systems (NetBSD, FreeBSD,
    OpenBSD, SunOS 4.x, BSDI, etc.).  While various operating
    systems may have diverged in small details (some of which is
    documented in RFC 2581) the basic algorithms do not seem to have
    changed.

  + [Pax97] analyzes a number of implementations, finding both
    correct and incorrect behavior relative to RFC 2581 across a
    variety of implementations.  The incorrect behavior fed into
    [RFC2525].

  + [MAF05] tests for conformance along a number of angles by
    probing the TCPs of over 70K web servers with specialized packet
    streams that induce the stack to show how it handles various
    situations. The results include:

      + The vast majority of server reduce their congestion window
        by half in response to congestion (per RFC 2581's congestion
        avoidance).

      + The majority of the web servers used an initial congestion
        window of 1--2 packets.

      + Limited Transmit was used in over 20% of the servers.

      + While some servers do not use fast retransmit the
        overwhelming majority implement it.

      + Many web servers use the fast recovery algorithm (with a
        number using more advanced recovery such as NewReno
        [RFC3782] or SACK-based loss recovery techniques
        [RFC2018,RFC3517].

    (Note that [MAF05] updates some of the results of [PF01].  The
    newer results confirm the older results.)

References:

  [MAF05] Alberto Medina, Mark Allman, Sally Floyd.  Measuring the
    Evolution of Transport Protocols in the Internet.  ACM Computer
    Communication Review, 35(2), April 2005.

  [Pax97] Vern Paxson.  Automated Packet Trace Analysis of TCP
    Implementations.  ACM SIGCOMM, September 1997.

  [PF01] Jitu Padhye, Sally Floyd.  Identifying the TCP Behavior of
  Web Servers, SIGCOMM 2001, August 2001. 

  [WS95] Wright, G. and W. Stevens, "TCP/IP Illustrated, Volume 2: The
    Implementation", Addison-Wesley, 1995.
_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://www1.ietf.org/mailman/listinfo/tcpm