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

Joe Touch <touch@isi.edu> Mon, 20 May 2013 20:11 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 6E4F921F967D for <tcpm@ietfa.amsl.com>; Mon, 20 May 2013 13:11:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.629
X-Spam-Level:
X-Spam-Status: No, score=-105.629 tagged_above=-999 required=5 tests=[AWL=0.970, 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 lTOHaevUDEDk for <tcpm@ietfa.amsl.com>; Mon, 20 May 2013 13:11:34 -0700 (PDT)
Received: from boreas.isi.edu (boreas.isi.edu [128.9.160.161]) by ietfa.amsl.com (Postfix) with ESMTP id EE7E921F9674 for <tcpm@ietf.org>; Mon, 20 May 2013 13:11:33 -0700 (PDT)
Received: from [128.9.160.166] (abc.isi.edu [128.9.160.166]) (authenticated bits=0) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id r4KKAEgY012658 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 20 May 2013 13:10:14 -0700 (PDT)
Message-ID: <519A8322.6030405@isi.edu>
Date: Mon, 20 May 2013 13:10:10 -0700
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: Yuchung Cheng <ycheng@google.com>
References: <20130518155753.17946.96581.idtracker@ietfa.amsl.com> <CAK6E8=d_LTZgnGAncdWDAi+7ebd3Lo5aevPeGG0=KSbBMeBhcg@mail.gmail.com>
In-Reply-To: <CAK6E8=d_LTZgnGAncdWDAi+7ebd3Lo5aevPeGG0=KSbBMeBhcg@mail.gmail.com>
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, 20 May 2013 20:11:40 -0000

On 5/20/2013 12:13 PM, Yuchung Cheng wrote:
> I suggest removing all these texts;
>
> """If a non-<RST> segment is received without a TSopt, a TCP MAY drop
> the segment and send an <ACK> for the last in-sequence segment.  ""
> What's the point to ignore a perfectly fine data packet w/o TS-opt and
> respond a (DUP)ACK? the sender is probably may trigger fast recovery
> falsely. Responding ACKs is not going to make any forward progress  on
> buggy implementations or middle-boxes.
>
> """ A TCP MUST NOT abort a TCP connection if a non-<RST> segment is
> received without a TSopt. """
> TCP should abort only if it's truly in trouble. so let's not
> re-emphasize the general rule of trying to keep things going until the
> last minute.

The text currently says:

    Once TSopt has been successfully negotiated (sent and received)
    during the <SYN>, <SYN,ACK> exchange, TSopt MUST be sent in every
    non-<RST> segment for the duration of the connection, and SHOULD be
    sent in a <RST> segment (see Section 4.2 for details).  If a non-
    <RST> segment is received without a TSopt, a TCP MAY drop the segment
    and send an <ACK> for the last in-sequence segment.  A TCP MUST NOT
    abort a TCP connection if a non-<RST> segment is received without a
    TSopt.

This wording leaves a few ambiguities:

- The first MUST implies some sort of uniform non-RST non-TSopt 
processing, but the rest of the paragraph doesn't provide it.

- The last sentence implies that receipt of a RST non-TSopt could cause 
an abort because of the lack of TSopt; it is because 'abort' is the 
consequence of processed RST.

I suggest clarifying this as:

    Once TSopt has been successfully negotiated (sent and received)
    during the <SYN>, <SYN,ACK> exchange, TSopt MUST be sent in every
    non-<RST> segment for the duration of the connection, and SHOULD be
    sent in a <RST> segment (see Section 4.2 for details).  If a non-
    <RST> segment is received without a TSopt, a TCP MUST drop the
    segment
    and MAY also send an <ACK> for the last in-sequence segment.
    A TCP MUST NOT abort a TCP connection because any segment lacks
    an expected TSopt.

Joe