Re: [tcpm] timestamp options (was Re: New Version Notification for draft-touch-tcpm-tcp-edo-01.txt)

Joe Touch <touch@isi.edu> Sat, 31 May 2014 00:58 UTC

Return-Path: <touch@isi.edu>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DB47D1A0463 for <tcpm@ietfa.amsl.com>; Fri, 30 May 2014 17:58:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.851
X-Spam-Level:
X-Spam-Status: No, score=-4.851 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.651] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ew97qY6dg43j for <tcpm@ietfa.amsl.com>; Fri, 30 May 2014 17:58:50 -0700 (PDT)
Received: from vapor.isi.edu (vapor.isi.edu [128.9.64.64]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 989FB1A030D for <tcpm@ietf.org>; Fri, 30 May 2014 17:58:50 -0700 (PDT)
Received: from [128.9.160.166] (abc.isi.edu [128.9.160.166]) (authenticated bits=0) by vapor.isi.edu (8.13.8/8.13.8) with ESMTP id s4V0w9rm003305 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 30 May 2014 17:58:09 -0700 (PDT)
Message-ID: <53892921.2040301@isi.edu>
Date: Fri, 30 May 2014 17:58:09 -0700
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: Yoshifumi Nishida <nishida@sfc.wide.ad.jp>
References: <20140425221257.12559.43206.idtracker@ietfa.amsl.com> <20140503122950.GM44329@verdi> <655C07320163294895BBADA28372AF5D2D009E@FR712WXCHMBA15.zeu.alcatel-lucent.com> <201405221710.s4MHAY4S002037@bagheera.jungle.bt.co.uk> <537E3ACD.5000308@isi.edu> <537E48CE.8040704@mti-systems.com> <537E66A7.4080907@isi.edu> <201405231003.s4NA3PAB005137@bagheera.jungle.bt.co.uk> <537F7D91.10802@isi.edu> <F4BCB99F-6133-4F3C-BD5E-3369B979EB33@netapp.com> <655C07320163294895BBADA28372AF5D305E00@FR712WXCHMBA15.zeu.alcatel-lucent.com> <012C3117EDDB3C4781FD802A8C27DD4F6F3DD808@SACEXCMBX06-PRD.hq.netapp.com> <655C07320163294895BBADA28372AF5D309C5D@FR712WXCHMBA15.zeu.alcatel-lucent.com> <012C3117EDDB3C4781FD802A8C27DD4F6F3E09CF@SACEXCMBX06-PRD.hq.netapp.com> <655C07320163294895BBADA28372AF5D309CC7@FR712WXCHMBA15.zeu.alcatel-lucent.com> <CAO249ycpc6BzxCQv=zhJzL3BQwmvNH68ec7UGN_5MD7U1_FeUw@mail.gmail.com> <5384EFC3.50803@isi.edu> <CAO249yf6RCBtfOTmAYPt2KM7=pBD=XEDHmLTr+VyLeEOLAmwsQ@mail.gmai! l.com>
In-Reply-To: <CAO249yf6RCBtfOTmAYPt2KM7=pBD=XEDHmLTr+VyLeEOLAmwsQ@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpm/_OLuQQ1VXgO_dAvMe5s4y_AhpXQ
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
Subject: Re: [tcpm] timestamp options (was Re: New Version Notification for draft-touch-tcpm-tcp-edo-01.txt)
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.15
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: Sat, 31 May 2014 00:58:53 -0000


On 5/27/2014 11:06 PM, Yoshifumi Nishida wrote:
> Hi Joe,
>
> I'm wondering if you presume that using the existing code point for late
> negotiation.

I had.

> Suppose If we use new code point, do we still have problems you
> mentioned below?

It depends:

- I don't think it matters vs. using the existing codepoint with a 
different length (e.g., as a flag in the SYN); they are equivalent in 
being uniquely identifiable.

- I don't like the idea of setting new TCP flags or changing the meaning 
of flags in the middle of a connection. That undermines the notion of a 
connection IMO.

To do so, the source would have to keep track of the last byte of the 
segment in which the change occurs, and wait for a confirmation in the 
ACK of that byte; ditto for the other end.

They'd need to resend things if lost *with the same flags* to indicate 
the change.

I.e., you'd need to implement a new TWHS per option that changes state. 
That's a mess. And I don't even want to think about what happens when 
you have multiple options that change state at the same time.

IMO, it's not worth the trouble.

Joe


>
> Thanks,
> --
> Yoshi
>
> On Tue, May 27, 2014 at 1:04 PM, Joe Touch <touch@isi.edu
> <mailto:touch@isi.edu>> wrote:
>
>     Hi, all,
>
>     Late negotiation has too many problems, as have been repeatedly
>     raised on this list:
>
>              - prevents use of the timestamp to help address PAWS for
>              the initial SYN
>
>              - a new connection that either avoids TS in SYN or
>              uses just "use TS" (two-byte) flag can't know when
>              to engage the timestamp and what initial value to use
>
>     Joe
>
>
>     On 5/27/2014 11:36 AM, Yoshifumi Nishida wrote:
>
>         Hi folks,
>
>         I've submitted a proposal for this a while ago:
>         http://tools.ietf.org/html/__draft-nishida-tcpm-apaws-00
>         <http://tools.ietf.org/html/draft-nishida-tcpm-apaws-00>
>         Although it's expired now, I will submit a new version within a
>         couple
>         of weeks or so.
>         The late negotiation is also discussed in the draft.
>         As it will change the semantics of TS, it presumes to use new
>         code point
>         (or use timestamp field in SYN). But, I'm happy to discuss on
>         this point.
>
>         One tricky thing for RFC1323 is that it uses TS for two purposes:
>         timestamping and PAWS and one purpose of the draft is to
>         separate them.
>         I appreciate any feedback on the draft.
>
>         Thanks,
>         --
>         Yoshi
>
>         On Tue, May 27, 2014 at 5:12 AM, Scharf, Michael (Michael)
>         <michael.scharf@alcatel-__lucent.com
>         <mailto:michael.scharf@alcatel-lucent.com>
>         <mailto:michael.scharf@__alcatel-lucent.com
>         <mailto:michael.scharf@alcatel-lucent.com>>> wrote:
>
>               > Well, if it's just for Timestamps, just use an "invalid"
>         length
>              of 2 as
>               > a "Late TS permitted".
>               >
>               > Maintaining the same option value and this would be
>         rather straight
>               > forward.
>
>              Interesting proposal. But actually we are not really short
>         of option
>              numbers. If we get e.g. 8 bytes in a significant number of SYNs
>              (which is our real bottleneck), I think we could also spend
>         a new
>              option codepoint.
>
>               > Personally, I'd like to combine this with a change in
>         semantics, if
>               > SACK is negotiated on the same session as well, to allow
>         more
>              efficient
>               > loss recovery (lost retransmission detection during a
>         loss recovery
>               > episode). I should have a unpublished draft sitting
>         around here about
>               > that aspect.
>
>              A change in semantics would also be a reason for a new
>         codepoint, imho.
>
>              Michael
>
>
>               > The TS option handling seems to be rather generous by
>         middleboxes, in
>               > general.
>               >
>               > Richard Scheffenegger
>               >
>               > > -----Original Message-----
>               > > From: tcpm [mailto:tcpm-bounces@ietf.org
>         <mailto:tcpm-bounces@ietf.org>
>              <mailto:tcpm-bounces@ietf.org
>         <mailto:tcpm-bounces@ietf.org>>__] On Behalf Of Scharf,
>               > Michael
>               > > (Michael)
>               > > Sent: Dienstag, 27. Mai 2014 13:49
>               > > To: Scheffenegger, Richard; Eggert, Lars; Joe Touch
>               > > Cc: tcpm@ietf.org <mailto:tcpm@ietf.org>
>         <mailto:tcpm@ietf.org <mailto:tcpm@ietf.org>>
>               > > Subject: Re: [tcpm] timestamp options (was Re: New Version
>               > Notification
>               > > for draft-touch-tcpm-tcp-edo-01.__txt)
>               > >
>               > > > For late TS, we would still need at least 2 Bytes during
>               > > > <SYN>/<SYN,ACK> to allow that capability.
>               > > >
>               > > > However, as the useful values of Window Scale only cover
>              0..14 [1],
>               > > > one approach to save SYN option space would be to
>         negotiate
>              up to 4
>               > > > binary
>               > > > (on/off) plus WS in a new single 3-byte option.
>               > >
>               > > I might be wrong, but I've thought so far that
>         "replacing" the
>              window
>               > > scale option would be pretty difficult. We already had
>         reports of
>               > > middleboxes that parse this option because they try to
>         understand
>               > rwnd (or
>               > > they do not parse the option even if they should, or
>         they have
>               > entirely
>               > > broken logic to mess up TCP...). I think one example
>         are firewalls
>               > that
>               > > try to detect whether segments are in-window. Another
>         example could
>               > be
>               > > PEPs that try to tune rwnd (if they still exist in the
>         wild).
>               > >
>               > > My understanding so far was that a solution only for
>         timestamps
>              would
>               > be
>               > > the most low-hanging fruit.
>               > >
>               > > Michael
>               > >
>               > > _________________________________________________
>               > > tcpm mailing list
>               > > tcpm@ietf.org <mailto:tcpm@ietf.org>
>         <mailto:tcpm@ietf.org <mailto:tcpm@ietf.org>>
>
>               > > https://www.ietf.org/mailman/__listinfo/tcpm
>         <https://www.ietf.org/mailman/listinfo/tcpm>
>
>              _________________________________________________
>              tcpm mailing list
>         tcpm@ietf.org <mailto:tcpm@ietf.org> <mailto:tcpm@ietf.org
>         <mailto:tcpm@ietf.org>>
>         https://www.ietf.org/mailman/__listinfo/tcpm
>         <https://www.ietf.org/mailman/listinfo/tcpm>
>
>
>