Re: [tcpm] I-D Action: draft-ietf-tcpm-1323bis-13.txt

Joe Touch <touch@isi.edu> Mon, 27 May 2013 21:39 UTC

Return-Path: <touch@isi.edu>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 87E5B21F8E99 for <tcpm@ietfa.amsl.com>; Mon, 27 May 2013 14:39:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.599
X-Spam-Level:
X-Spam-Status: No, score=-105.599 tagged_above=-999 required=5 tests=[AWL=1.000, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zXVSu6bhX2cz for <tcpm@ietfa.amsl.com>; Mon, 27 May 2013 14:39:12 -0700 (PDT)
Received: from boreas.isi.edu (boreas.isi.edu [128.9.160.161]) by ietfa.amsl.com (Postfix) with ESMTP id 9E03721F8E9A for <tcpm@ietf.org>; Mon, 27 May 2013 14:39:12 -0700 (PDT)
Received: from [192.168.1.97] (pool-71-105-87-221.lsanca.dsl-w.verizon.net [71.105.87.221]) (authenticated bits=0) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id r4RLcL7N003170 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 27 May 2013 14:38:30 -0700 (PDT)
Message-ID: <51A3D24F.7050300@isi.edu>
Date: Mon, 27 May 2013 14:38:23 -0700
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: Pasi Sarolahti <pasi.sarolahti@iki.fi>
References: <20130518155753.17946.96581.idtracker@ietfa.amsl.com> <CAK6E8=d_LTZgnGAncdWDAi+7ebd3Lo5aevPeGG0=KSbBMeBhcg@mail.gmail.com> <519A8322.6030405@isi.edu> <26034_1369382276_519F1D83_26034_1735_1_519F1D68.604@uclouvain.be> <E220F4B0-EE27-431C-BCBE-0A0C01C8B0EF@iki.fi> <51A38F9F.4000407@isi.edu> <39EDB63B-7FCB-43F5-9355-474D50976005@iki.fi> <51A3A684.5020400@isi.edu> <B3F294F6-8866-4155-98F6-0927B90346E4@iki.fi>
In-Reply-To: <B3F294F6-8866-4155-98F6-0927B90346E4@iki.fi>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
Subject: Re: [tcpm] I-D Action: draft-ietf-tcpm-1323bis-13.txt
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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, 27 May 2013 21:39:18 -0000

On 5/27/2013 1:40 PM, Pasi Sarolahti wrote:
> On May 27, 2013, at 9:31 PM, Joe Touch <touch@ISI.EDU> wrote:
>
>> Regarding handling of non-RSTs lacking TSopt, we did discuss this
>> onthe list; you even cited this within the past day or so:
>>
>> ---
>>> Always including TSopt seems to represent the rough consensus of the
>>> WG, even if it might not be a uniform agreement. This was discussed
>>> quite extensively some time ago. (Though judging rough consensus from
>>> Emails is difficult... we'd need some sort of electronic hum tool
>> ---
>
> My recollection is that this discussion concerned sender-side
> behavior, but there have been tens of Emails during the past weeks, so I
> might have missed something.

It was the part about PAWS; if you accept segments omitting TSopt, those
segments aren't PAWS-protected, and so the connection isn't protectd.

>> Once you indicate a sender-side MUST, you need to describe how the
>> receiver handles exceptions. IMO, there's little point to claiming PAWS
>> protection if you're going to react *in any way* to a non-RST segment
>> lacking TSopt.
>>
>> I.e., a sender MUST include implies - IMO - a receiver MUST
>> silentlydiscard when the 'must' isn't there.
>
> My reading of the original robustness principle is that TCP receiver
> should have minimal required validation checks for segments,

There are four alternatives here regarding robustness:

	1. should the segment be accepted fully?

	2 should the segment generate a response (resend last ACK)?

	3. should the segment be silently ignored?

	4. should the segment generate an error?

Robustness suggests preferring these in order, where appropriate. 
However, if the point of TSopt is PAWS protection, then the best you can 
do is nothing (#3).

 > so I don't
> think sender-side "MUST include" automatically implies receiver-side
> "MUST ignore if missing", unless we can point out a clear problem in
> accepting the segment.

If you cannot point out such a problem, the MUST was clearly 
inappropriate. If there is *any* situation in which a receiver should do 
more than ignore a segment or report an error, then the condition is, at 
best, a SHOULD.

 > Perhaps the possible unreliability of PAWS is such, then.

That was my impression of the list discussion on this issue.

> But there are possible deployment implications in additional
> receiver check, too. In a perfect world this might work, but RFC 1323
> did not have as strict MUST requirement about including TSopt in all
> segments after handshake, and there are possible middlebox issues as
> Olivier mentioned. So I think it would be worthwhile addition to the
> middlebox section, then, to say if a middlebox removes TSopt option,
> or a resegmenting middlebox does not include it in all segments, that
> breaks the TCP connection entirely, if this version of spec is
> followed.

Sure. It's defeating the value of the TSopt. It's inappropriate for a 
connection to claim TSopt protection and not have it.

> As a mere data point, I did a quick check on Linux that currently
> seems to first check if timestamp option was in incoming segment, and
> only then do PAWS check. It does not reject segments because of lack of
> TSopt, at least based on my quick reading.

If there's a safe way to interpret segments without TSopt in a 
TSopt-protected connection, then sure, do it. I don't recall any being 
raised, which is why I suggested the way forward I did.

Joe