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

"Scheffenegger, Richard" <rs@netapp.com> Fri, 24 May 2013 09:05 UTC

Return-Path: <rs@netapp.com>
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 C079021F9679 for <tcpm@ietfa.amsl.com>; Fri, 24 May 2013 02:05:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.524
X-Spam-Level:
X-Spam-Status: No, score=-10.524 tagged_above=-999 required=5 tests=[AWL=0.075, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
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 sFNCFRmqJ2dO for <tcpm@ietfa.amsl.com>; Fri, 24 May 2013 02:05:37 -0700 (PDT)
Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by ietfa.amsl.com (Postfix) with ESMTP id 8F01421F9601 for <tcpm@ietf.org>; Fri, 24 May 2013 02:05:36 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.87,734,1363158000"; d="scan'208";a="26654551"
Received: from smtp2.corp.netapp.com ([10.57.159.114]) by mx2-out.netapp.com with ESMTP; 24 May 2013 02:05:31 -0700
Received: from vmwexceht01-prd.hq.netapp.com (vmwexceht01-prd.hq.netapp.com [10.106.76.239]) by smtp2.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id r4O95U9j029424; Fri, 24 May 2013 02:05:31 -0700 (PDT)
Received: from SACEXCMBX02-PRD.hq.netapp.com ([169.254.1.61]) by vmwexceht01-prd.hq.netapp.com ([10.106.76.239]) with mapi id 14.03.0123.003; Fri, 24 May 2013 02:05:30 -0700
From: "Scheffenegger, Richard" <rs@netapp.com>
To: "Olivier.Bonaventure@uclouvain.be" <Olivier.Bonaventure@uclouvain.be>, "Joe Touch" <touch@isi.edu>
Thread-Topic: [tcpm] I-D Action: draft-ietf-tcpm-1323bis-13.txt
Thread-Index: AQHOU+CFxpOgcpwlv0GGPZ5muXL+75kO6dKAgAAP1ACABXydAP//l+hw
Date: Fri, 24 May 2013 09:05:29 +0000
Message-ID: <012C3117EDDB3C4781FD802A8C27DD4F24BAC921@SACEXCMBX02-PRD.hq.netapp.com>
References: <20130518155753.17946.96581.idtracker@ietfa.amsl.com> <CAK6E8=d_LTZgnGAncdWDAi+7ebd3Lo5aevPeGG0=KSbBMeBhcg@mail.gmail.com> <519A8322.6030405@isi.edu> <519F1D68.604@uclouvain.be>
In-Reply-To: <519F1D68.604@uclouvain.be>
Accept-Language: de-AT, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.104.60.115]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
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: Fri, 24 May 2013 09:05:42 -0000

Hi Olivier,

> 
> I fail to see the rationale for forcing a TCP connection to always send
> the TSopt in every segment. The timestamp aids to estimate the rtt and
> provides PAWS for long connections. Given the size of the TCP option
> space, we should not force the utilisation of the TSopt in all segments.
> Consider a TCP implementation that supports SACK, RFC1323 and TCP-AO or
> Multipath TCP. When this implementation sends an ACK segment that contains
> a SACK, is it better to encode a long SACK block or to use option space to
> encode a timestamp ? I'd vote for providing a timestamp from time to time
> and reporting accurate SACK blocks.


We have been there; the interaction of multiple options used together was specifically stripped from this update. And randomly sending TSopt or not would break mechanisms like PAWS (and there might be others reliant on TSopt) - see below.


In that particular example you give, that implementation should choose to either limit TCP-AO to consume at most 20 bytes (to allow for 1 SACK block; the semantics of SACK will provide the most "important" blocks repeatedly), or to not use TSopt at all - still limiting TCP-AO to use no more than 32 bytes to allow for a single SACK block...



> 
>  > 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.
> 
> Dropping segments that do not contain the TSopt is excessive. There are on
> the Internet middleboxes that coalesce or split segments. While doing
> that, they may remove options. Dropping a segment because it does not
> contain the TSopt which is only informative appears overkill to me.
> Dropping a segment that does not contain the negotiated TCP-AO option
> makes sens, but not for the TSopt.

When TS is in use, the receiver will use the PAWS mechanism. Effectively, the TS becomes an extension of the sequence number. Accepting segments without TS could be seen like accepting a segment, where some (arbitrary) number of MSB bits in the sequence number are masked, and the remaining bits found to "probably" fall within the current window...


A middlebox should not strip TSopt if it ever let TSopt through. That is mentioned in section 6, but perhaps your view is that this is not emphasized enough? If a middlebox does remove TSopt any any non-<SYN>-only segment, it is broken and should be removed from the network.

If a middlebox chooses to split TCP segments (rather than IP packets), it needs to properly deal with TSopt too - putting that option, unaltered, in all the fragments created. If it doesn't, it is broken and should be removed.

One way of "motivating" the retirement of broken stuff is to point them out. 

Do you have any recent example of a broken middlebox that does not deal properly with TSopt?

Richard