[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
- [tcpm] 2581 implementation report Mark Allman
- Re: [tcpm] 2581 implementation report Pekka Savola