Re: [tcpm] poll for adopting draft-gont-tcp-security

Matt Mathis <matt.mathis@gmail.com> Mon, 29 June 2009 17:12 UTC

Return-Path: <matt.mathis@gmail.com>
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 068193A6B61 for <tcpm@core3.amsl.com>; Mon, 29 Jun 2009 10:12:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6bfN4eCSo5Ow for <tcpm@core3.amsl.com>; Mon, 29 Jun 2009 10:12:36 -0700 (PDT)
Received: from mail-ew0-f210.google.com (mail-ew0-f210.google.com [209.85.219.210]) by core3.amsl.com (Postfix) with ESMTP id 5FB513A68D4 for <tcpm@ietf.org>; Mon, 29 Jun 2009 10:12:36 -0700 (PDT)
Received: by ewy6 with SMTP id 6so5844306ewy.37 for <tcpm@ietf.org>; Mon, 29 Jun 2009 10:12:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=K+dH5Swac7jm1XNVTwfMX4sgXILHviRZza2HWMEtVNo=; b=TSQYMZYJtdUMVYNYfG3703u2mndtIwYikEJYih6h2w23Rzwsxe3Gx8uZM8k97ItAQD 1b4P5drbjXs0XchUy4nJBL9Dl1p2obNz4g2nJqy2kPBxYUc/rTBk+jAM17EI2HdTjj0w TWRQSzZDMjf8gBZPIs8zEEDOOba45WYYBQgw0=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=DFQUcg4vkAkjCVCF1TaSxIeS9Ky2KFMGRehedV3+7sbCUDk6qqP7T8HmcP0aZy8LCr Fg8mm5DWL5V7kmNtJ1P5bSYWcxwTvW7SGThLfLLMdwoso8j5ci2Gj3ueZ2iCx0HsisY0 Enue8bBdREEyefu87DLxE5lmaQFy0F39/dtjk=
Received: by 10.210.140.16 with SMTP id n16mr1809006ebd.54.1246295573578; Mon, 29 Jun 2009 10:12:53 -0700 (PDT)
Received: from mczippy.local (cpe-98-28-213-42.woh.res.rr.com [98.28.213.42]) by mx.google.com with ESMTPS id 7sm301248eyg.7.2009.06.29.10.12.51 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 29 Jun 2009 10:12:52 -0700 (PDT)
Message-ID: <4A48F60A.7020602@gmail.com>
Date: Mon, 29 Jun 2009 13:12:42 -0400
From: Matt Mathis <matt.mathis@gmail.com>
User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605)
MIME-Version: 1.0
To: Fernando Gont <fernando@gont.com.ar>
References: <C304DB494AC0C04C87C6A6E2FF5603DB2217B28763@NDJSSCC01.ndc.nasa.gov> <fc0ff13d0906241711k44de4f77u8ec825e1ea151a1e@mail.gmail.com> <4A4317ED.1040905@gont.com.ar>
In-Reply-To: <4A4317ED.1040905@gont.com.ar>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: Matt Mathis <mathis@psc.edu>, tcpm Extensions WG <tcpm@ietf.org>
Subject: Re: [tcpm] poll for adopting draft-gont-tcp-security
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpm>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Jun 2009 17:12:38 -0000

Fernando Gont wrote:
> Matt Mathis wrote:
>
>> THIS DOCUMENT IS EXTREMELY DANGEROUS:: It is based in the same mindset
>> that successfully killed ECN before ECN was even conceived.  
>
> Please read e.g., page 24 (Section 3.6.1) and let me know if this is 
> the same mindset. Here's an excerpt of the aforementioned Section:
>
> "  These four bits are reserved for future use, and must be zero.  As
>    with virtually every field,
--Snip--
Consider sect 4.4.1, SACK-permitted option length must be 2:  This 
forbids ever extending SACK by adding a subtype, for example to 
negotiate non-renege-able SACK, by putting a 1 in an optional sub-type 
carried in additional bytes in the SACK-permitted option.  As far as I 
know every implementation today correctly parses the option length (e.g. 
skips forward by the relevant amount), but ignores the option data, so 
such a change would be backwards compatible with all existing 
implementations.

Even though this is not the target audience, the mere existence  of 
these  documents increases the chances that some over eager firewall 
implementer will add the check to some future pix-bis-bis, and our 
ability to extend SACK might be gone forever.

>> The basic
>> point of view is that firewalls should discard all traffic bearing
>> features that are not explicitly permitted by todays standards.
>
> This document provides advice for host implementations, not for 
> firewalls.
>
Sorry, I didn't read the introduction.   But I would not assume that 
host implementors  would be the only readers.
>
>> I read all of 2 pages before I found something that, if significantly
>> deployed, would haunt some Internet users for a very very long time (p
>> 43, SACK resource exhaustion).
>
> I guess you are arguing against the proposed limit of 16 for the 
> maximum number of sack holes? I understand you could argue that this 
> value could/should be raised. However, IIRC I based my proposal on 
> existing data on the number of holes.
>
> FWIW, NetBSD and others already enforce limits for this. See
> the "net.inet.tcp.sack.maxholes" sysctl (which defaults to 32) in
> http://osdir.com/ml/netbsd.ports.x86-64/2006-05/txtdA8OHygdEK.txt
>
> You may even be more interested in the 
> "net.inet.tcp.sack.globalmaxholes", which defaults to 1024.
>
> Other systems (e.g., FreeBSD) already enforce limits, too.
>
> So... why instead of knocking the document down altogether, we discuss 
> e.g., whether the proper limit should be something else?
>
> I guess/hope you are not arguing against enforcing limits, but about 
> the specific value proposed in the I-D. And the reason for submiting 
> this I-D as a IETF I-D is exactly to discuss these issues and get 
> consensus on e.g., what the proper/safe value should be for this limit.
The current limits are workaround for using inappropriate algorithms for 
maintaining the  SACK scoreboard.   The easy way to implement the 
scoreboard has cost O(N^2).  However there is at least one OS that uses 
an O(N*ln(N)) scoreboard, and O(N) might be possible.  (These are the 
total cost of the worst case recovery at window size N, so O(N) total 
cost is constant cost per ACK.)

If you have a moderately fast continental  scale Ethernet (1500 Byte 
MTU, 1 Gb/s, 100 ms RTT), you need a window size of 9000-18000 
packets.    Slow start typically loses ever other or every third packet, 
so you might hypothetically need to recover from 3000 to 9000 holes 
following a slow-start.    Telling host implementers that they should 
limit the number of holes rather than investing in better algorithms is 
pushing them in the wrong direction.   Kludges in existing 
implementations, or arguments about typical users are no excuse to tell 
implementers that they should not do this correctly for all users, 
including users who need the very highest performance.

Here is a hint about RFC 2018 (which probably applies to many other 
RFCs):  Every single SHOULD is a clue that we knew of something that 
might be done better than permitted by the document at hand.   Going 
through a spec and "tightening" it, by changing SHOULDs into MUSTs, is 
guaranteed to close of opportunities for improvement (although  some 
might be closed already for other reasons).

>> And then all of us who think TCP might still be improved may as well
>> just go home and retire, because nothing that we want to try will be
>> permitted by standard conforming firewalls.
>>
>> No I really don't want to work on this document, but I am not ready to
>> retire yet, so I guess I will.
>
> Thanks.
>
>
>
>> Think of it a huge gray-matter tax imposed by one standards
>> organization on another.
>
> I really don't understand this statement. The only standard 
> organization involved in this is the IETF. UK CPNI is *NOT* a 
> standards organization (please see http://www.cpni.gov.uk)
Yes, but it issued a document full of advice to implementers, that has 
the potential to have lasting negative repercussions.  If they really 
are not high profile, then there is a chance that we can get away with 
just ignoring their report.

Once I have had time to actually read the whole thing, I will comment 
further.   (I am traveling for another couple of days).

Thanks,
--MM--