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 01:10 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 E43301A06D6 for <tcpm@ietfa.amsl.com>; Fri, 30 May 2014 18:10:12 -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 dHQpkPa5dmMV for <tcpm@ietfa.amsl.com>; Fri, 30 May 2014 18:10:05 -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 1D7F71A06C3 for <tcpm@ietf.org>; Fri, 30 May 2014 18:09:10 -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 s4V17TLZ005532 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Fri, 30 May 2014 18:07:29 -0700 (PDT)
Message-ID: <53892B51.1000003@isi.edu>
Date: Fri, 30 May 2014 18:07:29 -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: "Scheffenegger, Richard" <rs@netapp.com>, Yoshifumi Nishida <nishida@sfc.wide.ad.jp>, "Scharf, Michael (Michael)" <michael.scharf@alcatel-lucent.com>
References: <20140425221257.12559.43206.idtracker@ietfa.amsl.com> <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> <012C3117EDDB3C4781FD802A8C27DD4F6F4B7BB9@SACEXCMBX02-PRD.hq.netapp.com>
In-Reply-To: <012C3117EDDB3C4781FD802A8C27DD4F6F4B7BB9@SACEXCMBX02-PRD.hq.netapp.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/dHhc5nzLUwgtgeo8O388du14Xgs
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 01:10:13 -0000


On 5/28/2014 1:17 AM, Scheffenegger, Richard wrote:
> Hi Joe,
>
>> 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
>
> This one is genuine. However, given the prevalence of non-TS TCP
> sessions and no wide-spread havoc caused by NOT having PAWS on the SYN,
> it appears to me that the impact is manageable. (Of course it would be
> nicer to have PAWS on SYN, but as long as SYN option space is limited...)

I don't know the stats, but I'd prefer if initial connections were 
PAWS-protected.

>> 	- 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
>
> Well, as this would be a new mechanism, there should be some broad
> guidance given; I would assume that the latest onset - if late TS is
> negotiated for - would be when either direction has sent at most 2^31 -
> (2^16 << Window.scale) bytes; and a receiver that sees the full TS must
> then start to reflect TS as usual, independent of its own relative
> offset into the session. And never relinquish from sending TS even when
> some packets - ie. retransmissions, or due to middleboxes on a changed
> path - not contain a TS from the other side.

I had thought of a similar mechanism, e.g., where there would be an 
extended sequence number (ESN), and the upper bits would be assumed zero 
until actually needed.

The advantage to that would be:
	ESN flag would occur in all segments
		length = 2 until needed
		length can increase as additional bytes/words are needed

i.e., the meaning and use of the flag would never change; it would be 
synchronized at the start in both directions. It would just be 
compressed until actually needed. If you have a recent connection that 
already wrapped, you might start with ESN of length = 4 rather than 
length = 2 (0 in both directions), so you can sync non-zero ESNs.

The only benefit would be that this is a lot shorter than timestamps - 
i.e., it'd be 4 rather than 10 bytes.

(is this "Extended Sequence Number" option worth explaining in detail, 
e.g., in a separate draft?)

---

Doing real TS's later in the connection requires a new sort of 
synchronization in the middle of the connection - which, as I noted in 
my other post, seems to require a TWHS mechanism, and I think that's too 
cumbersome.

> As for the semantic change, I propose that when the session has SACK
> enabled as well as late TS, then the TS should reflect the TS of the
> segment triggering the ACK (we can discuss what should happen during
> in-sequence delayed ACK processing though; the relevant aspect for me is
> during loss - SACK recovery - to not mask the timestamps of
> retransmitted packets as per 1323bis; For legacy RTTM processing, the
> presence of a SACK option is indicative enough to NOT do normal RTTM
> processing - although a sender could choose to do so particularly for
> the loss recovery episodes. Having the (unique) Timestamp/SACK block
> combinations during loss recovery would allow more efficient, faster and
> also packet conserving recovery of lost retransmissions - unlike the
> current method of last resort, RTO.

Perhaps, but I don't see this paragraph as being related to late TS.

Joe