Re: [tcpm] 1323bis - preparing for WGLC

Joe Touch <touch@isi.edu> Wed, 20 March 2013 16:26 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 05CFC21F8D6A for <tcpm@ietfa.amsl.com>; Wed, 20 Mar 2013 09:26:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -104.39
X-Spam-Level:
X-Spam-Status: No, score=-104.39 tagged_above=-999 required=5 tests=[AWL=1.009, BAYES_00=-2.599, J_CHICKENPOX_22=0.6, J_CHICKENPOX_33=0.6, 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 gIMyN8RK9dLM for <tcpm@ietfa.amsl.com>; Wed, 20 Mar 2013 09:26:41 -0700 (PDT)
Received: from boreas.isi.edu (boreas.isi.edu [128.9.160.161]) by ietfa.amsl.com (Postfix) with ESMTP id A68A321F8C9E for <tcpm@ietf.org>; Wed, 20 Mar 2013 09:26:37 -0700 (PDT)
Received: from [192.168.1.89] (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 r2KGPw7q013497 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 20 Mar 2013 09:26:10 -0700 (PDT)
Message-ID: <5149E317.2080206@isi.edu>
Date: Wed, 20 Mar 2013 09:25:59 -0700
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130307 Thunderbird/17.0.4
MIME-Version: 1.0
To: "Scheffenegger, Richard" <rs@netapp.com>
References: <012C3117EDDB3C4781FD802A8C27DD4F24AC0025@SACEXCMBX02-PRD.hq.netapp.com>
In-Reply-To: <012C3117EDDB3C4781FD802A8C27DD4F24AC0025@SACEXCMBX02-PRD.hq.netapp.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Cc: "tcpm (tcpm@ietf.org)" <tcpm@ietf.org>
Subject: Re: [tcpm] 1323bis - preparing for WGLC
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: Wed, 20 Mar 2013 16:26:44 -0000

Hi, all,

On 3/20/2013 7:07 AM, Scheffenegger, Richard wrote:
> Hi group,
> running up to and during the IETF 86, the following points were raised
> w.r.t 1323bis. I hope this lengthy email makes it through your tl;dr filter…
>
...
>  2. Guidance regarding late TS negotiation:
>
> This is a technical (semantic) change of timestamps; the upcoming -07
> version of the draft will have this text added; is the WG satisfied with
> this wording, or shall more specific (2119) wording be added:
>
>     A TCP MAY send the Timestamps option (TSopt) in an initial <SYN>
>     segment (i.e., a segment containing a SYN bit and no ACK bit).  Once
>     a TSopt has been sent or received in a non <SYN> segment, it MUST be
>     sent in all segments.  Once a TSopt has been received in a non <SYN>
>     segment, then any successive segment that is received without the RST
>     bit and without a TSopt MAY be dropped without further processing,
>     and an ACK of the current SND.UNA generated.
>     Note that it is RECOMMENDED to negotiate the use of the timestamp
>     option during the initial handshake.  Although this document is less
>     restrictive regarding the use of the timestamp option when not sent
>     initially, any guidance and discussion of potential issues when
>     timestamp is enabled late in a session is beyond the scope of this
>     document.
 >
> I have received suggestions, to increase the “MAY” in the first sentence
> to a “SHOULD” (but that might indicate to implementers, that any TCP
> session SHOULD have TS enabled, not that TS MAY be used, and if, it
> SHOULD be negotiated during SYN).

IMO, the first sentence should be a MUST. TCP needs to know about all 
the options it needs to support during the initial handshake. If you 
turn on the option later and it isn't supported, there's no way to 
"handshake" to let the other end know.

> Another suggestion was to add a sentence like “Timestamps MUST be
> negotiated in <SYN> and <SYN,ACK> unless another mechanism allows
> enabling them in during an established session.  Such a  mechanism is
> outside the scope of this document.”

This is the one I expected, and is fine. It can either be confirmed by 
the option itself or by some other option; the overall assumption is 
that "the set of options that MAY be used during a TCP connection MUST 
be negotiated during the 3WHS". (that text is outside the scope of this 
doc, though)

>  3. More appropriate introductory text; the following statement will
>     supersede very old text (that apparently addressed WS, TS and SACK
>     back in RFC1072); this was already presented at IETF 86 and received
>     no objections.
>
>     The window scale option negotiates fundamental parameters of the TCP
>     session.  Therefore, it is only sent during the initial handshake.
>     Furthermore, the window scale option will be sent in a <SYN,ACK>
>     segment only if the corresponding option was received in the initial
>     <SYN> segment.
>     The timestamps option may appear in any data or ACK segment, adding

The "*" inserted below is explained further down...

>     12 bytes to the 20-byte TCP header. *  It is recommended that this TCP

Again, IMO recommended should be REQUIRED (in all caps too).

>     option will be sent on non-SYN segments only after an exchange of
>     options on the SYN segments has indicated that both sides understand
>     the extension.

The portion below is a bit different:

>                   We believe that the bandwidth saved by reducing
>     unnecessary retransmission timeouts will more than pay for the extra
>     header bandwidth.

it talks about the bandwidth of the overall connection; it's not 
specific to the SYN exchange. It might be useful to move this up to the 
"*" above.

Joe