Re: [tcpm] Fwd: New Version Notification for draft-yang-tcpm-ets-00.txt

Kevin Yang <yyd@google.com> Mon, 23 November 2020 01:47 UTC

Return-Path: <yyd@google.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 6069F3A0A90 for <tcpm@ietfa.amsl.com>; Sun, 22 Nov 2020 17:47:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.7
X-Spam-Level:
X-Spam-Status: No, score=-15.7 tagged_above=-999 required=5 tests=[DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 s2SBP4TBoyrj for <tcpm@ietfa.amsl.com>; Sun, 22 Nov 2020 17:47:20 -0800 (PST)
Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com [IPv6:2a00:1450:4864:20::62e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 26FA13A0A87 for <tcpm@ietf.org>; Sun, 22 Nov 2020 17:47:20 -0800 (PST)
Received: by mail-ej1-x62e.google.com with SMTP id oq3so21070224ejb.7 for <tcpm@ietf.org>; Sun, 22 Nov 2020 17:47:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=DldHftOtIdTMZeIp55IOgdofwcGLa5bq6Hs7biB8e1Q=; b=ZBNTrOHehtCuF/zRKsWP6LAiA7bnUBazjXt7EW6OXaJca/uGucFMNEwpo68HoKBAqu wCyuWWGjaMSGCHAUeHuJYbqWQd2FQTQwKP4hN9VVPXEjh+gLCtG8iCFcs6pc1kHwZqJ1 06t1o78rpORwwWaSUXMcwV9bEYyIkdprx+xOacoxfiJfe9odVR3+yV4RSiGC8FoxPeXH VtoQGV9X++sJaySUWObTJY+S83sbjfkfTTBBMQu8n6TqIluEPuvBclDmbrolDQlaTlXb PXpnQKF6Ntr0jSWa9oQlRfWQ9OrtNneHU/fzY2RsK8lghuRQtSzMOeHeNvkQIxRCkIpM 95dA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=DldHftOtIdTMZeIp55IOgdofwcGLa5bq6Hs7biB8e1Q=; b=E2Ntx+Pd17Jf7J/fz0xjZ3WOVDxO4V7hARuTT2Bjo7s1r3IfJvKBfWq461DP4V+a6N Ws+ky5q4sLIPQO9shgpcastFQhufp7aU0Nl0aeW8JiU73/Km+KF4U4xx2XOqAqndwdjm bIp4o9ev48gHtkzeQRFQ+XGNqGmb/bCQwCeTY1tW3dhCZjYUOHlC/KL1eNTLmEi/HptY NX7XMOS/onUlYW9/JHc0rToLaSlsBoAqyxeHvXj2cgPI5ScCKIgvB2e0rlpuFNQ8AROd 8yta+YbcTW9pMzi6KqqfNwiSxcOMGaRgYJiKCsuagGV3nEiOCwQEfvmGq73RgaWru5uE 9AOQ==
X-Gm-Message-State: AOAM532GMs7VQ2pF7BggwQYvfPYjABoQckqlgY8ye6Y6YeElAGQQgvwC sq/SQSneVyYnAFtTwZpJX70zdOm/Q/HKVcAjp4TjNQ==
X-Google-Smtp-Source: ABdhPJwBxS0Myi3pcNLE6b72HwU2eGhk+BrxfLdyAwK0JNwBPLIdS9/ZwsI52K33EimlTSAF79LK54SbuWl9RYifz4Y=
X-Received: by 2002:a17:906:2b4e:: with SMTP id b14mr45100804ejg.354.1606096038005; Sun, 22 Nov 2020 17:47:18 -0800 (PST)
MIME-Version: 1.0
References: <160435977209.20839.4083263519198538783@ietfa.amsl.com> <CAK6E8=dh=kH36q0FFn4GJumSyU6cagf+rPy5UU2FAUiD+JOqbQ@mail.gmail.com> <CAAK044RKeeOhWj9P3XGpQa+qGZTyh-iKV2gXN5GnS6N39Duc8Q@mail.gmail.com> <CAPREpbYoE5sqUknUN0FJrc10T-Z-xhX4eokzLuZMmshkD1zORQ@mail.gmail.com> <CAK6E8=dgSPVhW-oRe1XeOnvZyqB4pMbQTuQGR8=9Pzm7v6xspA@mail.gmail.com> <adeef3ba-94e7-eb1a-ae86-838fcedf60b4@gmx.at>
In-Reply-To: <adeef3ba-94e7-eb1a-ae86-838fcedf60b4@gmx.at>
From: Kevin Yang <yyd@google.com>
Date: Sun, 22 Nov 2020 20:47:06 -0500
Message-ID: <CAPREpbYQVkPCdizqUbSXOjHwu-mVfL1cCc=R2Rtr3K48Hq2O=A@mail.gmail.com>
To: "Scheffenegger, Richard" <rs.ietf@gmx.at>
Cc: Yuchung Cheng <ycheng@google.com>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, Eric Dumazet <edumazet@google.com>, iccrg IRTF list <iccrg@irtf.org>, Neal Cardwell <ncardwell@google.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/nm76XmXmzeCwMQh1nHJKBOE4CUw>
Subject: Re: [tcpm] Fwd: New Version Notification for draft-yang-tcpm-ets-00.txt
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
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: <https://mailarchive.ietf.org/arch/browse/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, 23 Nov 2020 01:47:23 -0000

Thank you Bob and Richard, for the nice feedback!

To Bob's feedback:
>You could define your new option solely with the last two negotiation fields
>Because the existing timestamp fields are already defined as opaque...
That's a good point. We actually did consider this in our early
iterations among the authors.
Some drawbacks from relying on TSopt:

1. It has 2 more bytes for kind and len. As you pointed out, it might
be a way to save
on established segments, but not on SYNs.

2. In addition to TSval (in old TSopt), the new ETSopt needs to
include another timestamp
to be the "ETSval" in usec. We can not fill a usec value in TSval(of
old TSopt). Otherwise,
because the passive side may not support this new protocol, it treats
TSval in msec and may trigger
false positive drops by PAWS on the passive side.

I reply Richard's feedback inline below:

On Tue, Nov 17, 2020 at 8:19 AM Scheffenegger, Richard <rs.ietf@gmx.at> wrote:
>
> Just to capture what Bob and I tried to convey:
>
> There may be a way to extend TSOpt in a backwards-compatible way,
> without increasing the size of the option during the SYN handshake, nor
> with the need to have both 7323 TSopt and ETSopt present simultaneously
> in the SYN and SYN/ACK.
>
> Please have a look at
> https://tools.ietf.org/html/draft-scheffenegger-tcpm-timestamp-negotiation-05
>
> Which was the signaling / handshake part to
>
> https://tools.ietf.org/html/draft-trammell-tcpm-timestamp-interval-01
>
> As the latter part didn't get much traction (to signal the TS
> granularity and even accuracy), these two didn't move forward.
>
>
> As the SYN TSopt ecr value is currently unused, and the client knows the
> initial value for TSval (which should be reflected in the SYN/ACK from
> the server), you can use 32 bits there for a feature declaration and
> negotiation.
>
> The high level approach there was to use the unused TSecr field (should
> be 0 for 7323/1323), and overlay (xor) in the SYN/ACK's TSopt ecr field
> the client's TSopt val with the servers 32-bit negotiation field... As
> the client can retain knowledge of the initial TSopt value (there should
> be a randomized initial value), the client can extract the server side
> options by xor'ing it's known initial value when the SYN/ACK is
> received. Or fall back to default 7323 operation, if the result of the
> XOR is zero...
>

I agree that the TSecr in <SYN> might be used for other purposes. But I'm
not sure if we can alter the TSecr in <SYN,ACK> by XOR other info.
One specific example I came up with is that a sender may send out many
SYNs because of timeout,
then when it receives a <SYN,ACK>, it does not know which TSval should
be used for xor op.

>
> The major issue would be that TSopt with a length != 10 may be
> removed/blocked by certain middleboxes, but a new TCP option has similar
> deployment issues.
>
> As Bob mentioned in another thread just now, TCP SYN option space is a
> very scarce resource, and making efficient use of it should matter...
>
>
> Other comments: Graph1 (page 4) has "TSval=X" rather than "ETSval=X".
> Unless you plan to reuse the TSopt in an extensible way (with the same
> codepoint, but differentiated by the length of the option), that may
> need to be addressed to disambiguate things; You may also want to have
> both ETSopt and TSopt in the SYN present, for backwards compatibility if
> a separate codepoint is used.

Good point, we should revise it to ETSval for disambiguation.

> If you want to make use of the timestamp-negotiation design, all of the
> extra data shown on page 6 can be stuffed into the TSecr or ETSecr
> field, alleviating the need of 4 additional SYN option bytes.
>
> It could be used almost as a drop-in use of timestamp-negotiation, as
> long as it can be guaranteed, that at least one bit is set in the 32bit
> field (e.g. setting the reserved bit to 1).

In this way we need to add another "ETSval'' in usec if we use the
RFC7323/1323 TSopt,
the reason is explained above.

> EcrDelUnit: I think the codepoint assignment could be improved (but this
> is really nit-picking; just that a broken implementation may send out
> TSopt with len=12, but initialized-to-zero superflous bytes...
> 0: invalid
> 1: milliseconds [2^20 nanoseconds?]
> 2: microseconds [2^10 nanoseconds?]
> 3: reserved (nanoseconds)

Thanks for the nice suggestion. I agree we probably should have
all-zero codepoint to be
"no information". For 2^k nanosec unit, I guess that is for bit-op
convenience and performance?

>
> MaxAckDel: 16 bits/microseconds gives a maximum of 65.5 ms; some (older)
> stacks are using values as high as 200ms; If such a stack is updated, it
> is a good reason to reduce the DelAck value used in that stack, so this
> range appears properly selected (FreeBSD recently reduced from 100ms to
> 40ms).
>
>
>
> Best regards,
>     Richard
>
>
> Am 14.11.2020 um 20:35 schrieb Yuchung Cheng:
> > On Sat, Nov 14, 2020 at 8:45 AM Kevin Yang
> > <yyd=40google.com@dmarc.ietf.org> wrote:
> >>
> >> Thank you Yoshi, very good questions.
> >>
> >> 1: Our goal is to substitute the TSopt. So we design this new ETSopt not to depend on TSopt.
> >>      I guess this also answers your question 4, the intent is for the standard track.
> >>
> >> 2: I think we should only update TS.recent when we assume the incoming segment is valid.
> >>      Otherwise, if the incoming is a real old one, we discard it but update TS.recent;
> >>      then a new segment arrives, we may reject this new seg because TS.recent > seg.TSval.
> >>
> >> 3: Your understanding is correct, and in the draft we are not suggesting to use NetworkRTT
> >>      measurements for RTO calculation.
> >>
> >> 4: answered by 1.
> > We'll clarify better in the upcoming draft revision: the draft
> > intends to transition from exp-id to  an official option kind number
> > from IANA upon becoming
> > an RFC. But we're following the advice of
> > https://tools.ietf.org/html/rfc6994 to allow larger scale experiments
> > for hosts not completely under control of a single entity/network. For
> > example guest VM TCP communications inside Cloud Data-center networks.
> >
> >
> >>
> >> Kevin
> >>
> >> On Sat, Nov 14, 2020 at 7:13 AM Yoshifumi Nishida <nsd.ietf@gmail.com> wrote:
> >>>
> >>> Hi,
> >>> Thanks for preparing the draft. I basically like the idea in the docs and have several comments.
> >>>
> >>> 1: I am wondering if we really need to have 32 bits TSval and TSecr in ETS option in SYN when TSopt is also sent?
> >>>      For example, If TSopt has 1 ms granularity, I think ETS option will need to carry only small fractions of timestamp.
> >>>
> >>> 2: "To prevent a false positive PAWS rejection of a valid segment, an ETS receiver MUST skip the PAWS check"
> >>>      -> This is one possible approach, but just skipping PAWS doesn't sound very good to me.
> >>>           How about discarding the segment while updating TS.recent as an alternative? If the segment is not an old one, it will be retransmitted and accepted.
> >>>           I think this is a bit more conservative.
> >>>
> >>> 3: It is not very clear for me how measuring NetworkRTT can contribute to improving RTO.
> >>>      Or, are there some other ways to utilize NetworkRTT?
> >>>
> >>> 4: Just out of curiosity, is intended status standard track or experimental? ExID is usually used for exp or info docs.
> >>>
> >>> Thanks,
> >>> --
> >>> Yoshi
> >>>
> >>> On Mon, Nov 2, 2020 at 4:26 PM Yuchung Cheng <ycheng=40google.com@dmarc.ietf.org> wrote:
> >>>>
> >>>> Hi tcpm & iccrg,
> >>>>
> >>>> We are proposing a new TCP timestamp option to measure the network delay more precisely (e.g. excluding delayed ACK effects) for congestion control, e.g. Swift published SIGCOMM 2020. The precision of the measurements can potentially be further enhanced by NIC hardware timestamps. We are working on a reference implementation for Linux as well.
> >>>>
> >>>> We'll also present it in the upcoming tcpm meeting. Feedbacks are very welcome.
> >>>>
> >>>> ---------- Forwarded message ---------
> >>>> From: <internet-drafts@ietf.org>
> >>>> Date: Mon, Nov 2, 2020 at 3:29 PM
> >>>> Subject: New Version Notification for draft-yang-tcpm-ets-00.txt
> >>>> To: Eric Dumazet <edumazet@google.com>, Yuchung Cheng <ycheng@google.com>, Neal Cardwell <ncardwell@google.com>, Kevin Yang (Yudong) <yyd@google.com>
> >>>>
> >>>>
> >>>>
> >>>> A new version of I-D, draft-yang-tcpm-ets-00.txt
> >>>> has been successfully submitted by Kevin (Yudong) Yang and posted to the
> >>>> IETF repository.
> >>>>
> >>>> Name:           draft-yang-tcpm-ets
> >>>> Revision:       00
> >>>> Title:          TCP ETS: Extensible Timestamp Options
> >>>> Document date:  2020-11-02
> >>>> Group:          Individual Submission
> >>>> Pages:          13
> >>>> URL:            https://www.ietf.org/archive/id/draft-yang-tcpm-ets-00.txt
> >>>> Status:         https://datatracker.ietf.org/doc/draft-yang-tcpm-ets/
> >>>> Htmlized:       https://datatracker.ietf.org/doc/html/draft-yang-tcpm-ets
> >>>> Htmlized:       https://tools.ietf.org/html/draft-yang-tcpm-ets-00
> >>>>
> >>>>
> >>>> Abstract:
> >>>>     This document presents ETS: an Extensible TimeStamps option for TCP.
> >>>>     It allows hosts to use microseconds as the unit for timestamps to
> >>>>     improve the precision of timestamps, and advertise the maximum ACK
> >>>>     delay for its own delayed ACK mechanism.  Furthermore, it extends the
> >>>>     information provided in the [RFC7323] TCP Timestamps Option by
> >>>>     including the receiver delay in the TSecr echoing, so that the
> >>>>     receiver of the ACK is able to more accurately estimate the portion
> >>>>     of the RTT that resulted from time traveling through the network.
> >>>>     The ETS option format is extensible, so that future extensions can
> >>>>     add further information without the overhead of extra TCP option kind
> >>>>     and length fields.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Please note that it may take a couple of minutes from the time of submission
> >>>> until the htmlized version and diff are available at tools.ietf.org.
> >>>>
> >>>> The IETF Secretariat
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> tcpm mailing list
> >>>> tcpm@ietf.org
> >>>> https://www.ietf.org/mailman/listinfo/tcpm
> >
> > _______________________________________________
> > tcpm mailing list
> > tcpm@ietf.org
> > https://www.ietf.org/mailman/listinfo/tcpm
> >