Re: [Taps] Eric Rescorla's No Objection on draft-ietf-taps-minset-08: (with COMMENT)

Eric Rescorla <ekr@rtfm.com> Thu, 13 September 2018 18:25 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: taps@ietfa.amsl.com
Delivered-To: taps@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7D430130E4F for <taps@ietfa.amsl.com>; Thu, 13 Sep 2018 11:25:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.908
X-Spam-Level:
X-Spam-Status: No, score=-1.908 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, T_DKIMWL_WL_MED=-0.01, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.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 i4ofma73RVq3 for <taps@ietfa.amsl.com>; Thu, 13 Sep 2018 11:25:00 -0700 (PDT)
Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) (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 D020C128B14 for <taps@ietf.org>; Thu, 13 Sep 2018 11:24:59 -0700 (PDT)
Received: by mail-lf1-x12d.google.com with SMTP id d7-v6so236761lfa.5 for <taps@ietf.org>; Thu, 13 Sep 2018 11:24:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=CyCUG1Rn5CfgV0rWL+NZy0pXJHBxArCdg/CkhYGlyRI=; b=PnjBecacIbdRHLpHeK5amSLonz4zVxM3Wh8on67D58n7/RtwH/ziPDbX5YSFDK90m7 pXx/BAG9ki7GR4G5Y3tlTSNRG9leuayFJ3YTjUKJBNY3KxLufZNGjogZIQjqbqtqLtom JGgSvR1d1/xUdHpHTAH+h5iwl9Ooo1nvzAxYbwNzYuWMBVI9FoeSd8lUBaJv68FdMTZM VV2FvjTPQVYeXVcVCxtEAtm8D8dBds6HEyQH4+oWYOnLSwwOHENJlhEx2zFlxhM9ZLSs DnrX3u/+jHxBluttbqlM0noyglc9M80/jsbd9B/27QuuhHOJcqD3O5d0RDto1qxeA217 ziVA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=CyCUG1Rn5CfgV0rWL+NZy0pXJHBxArCdg/CkhYGlyRI=; b=MIS7WnvPBwVVt6kypll5w/uCodBGagMsbhXq74FpRlr7CE+fieIr0Fwu1j6vGbmkI0 U/cD0SslNcb2msKAxXMOA9uGYvfTmjdcjOZtEHtI+gUd2W7cUMaDQUWSxXPTC5EUzvDy 2GVibT7SYtNC7tHS2nHJ/kKRKtMaHpGZ573Q3zPPL8Ry/qX8HBv+K2WN85klWCi6XlY9 kLLSR18KJEewefjQsBkoWFTir2o1NMpBNuX4gs5eB56sOiRC0MwcAkhvAm7z/29j9PfD bkiJAJATf0owOLuGWHqXlBaqcNfbmf8aatPajkjjTu0MCpYDEyTPfUfiav+924uwTDyA AcVA==
X-Gm-Message-State: APzg51BPDdJPV8H8gEIjvN3x0yX5HghCpoAd966GKdZv0YzTHYganDKi 9M+oKtpb+W5bkVnf9x+BdyDQV/m4EP6/9wAL79egJg==
X-Google-Smtp-Source: ANB0Vdb87JOa79vzhHjodjbZypk2ccGgw/G+yqCJY52qEKLBssbEAHUyNQp2Rykkdw0XDgCGb1QjrgCU9wzqQtb79Ao=
X-Received: by 2002:a19:a915:: with SMTP id s21-v6mr6002840lfe.92.1536863097928; Thu, 13 Sep 2018 11:24:57 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:ab3:498d:0:0:0:0:0 with HTTP; Thu, 13 Sep 2018 11:24:17 -0700 (PDT)
In-Reply-To: <63AEF680-16FB-4BED-BAD1-3796B8B01D6F@ifi.uio.no>
References: <153681690194.9412.2624965951701043464.idtracker@ietfa.amsl.com> <EB9548E6-D68F-4F98-A5C1-301A59568E05@ifi.uio.no> <CABcZeBP7+2v=e-1BxWvU0-JJ4-3dgLn=C1H9QMmHJ2fE3U1KZw@mail.gmail.com> <63AEF680-16FB-4BED-BAD1-3796B8B01D6F@ifi.uio.no>
From: Eric Rescorla <ekr@rtfm.com>
Date: Thu, 13 Sep 2018 11:24:17 -0700
Message-ID: <CABcZeBPJa7QHpCpXVaKZ14La=iMJYVF_a0FpuhN5Sj5z+d3h2g@mail.gmail.com>
To: Michael Welzl <michawe@ifi.uio.no>
Cc: draft-ietf-taps-minset@ietf.org, taps-chairs@ietf.org, The IESG <iesg@ietf.org>, Theresa Enghardt <theresa@inet.tu-berlin.de>, "taps@ietf.org" <taps@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000000556bb0575c4d328"
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/TJcS0TE7CMzqVT4QxTr8EwUbfB8>
Subject: Re: [Taps] Eric Rescorla's No Objection on draft-ietf-taps-minset-08: (with COMMENT)
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IETF Transport Services \(TAPS\) Working Group" <taps.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/taps>, <mailto:taps-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/taps/>
List-Post: <mailto:taps@ietf.org>
List-Help: <mailto:taps-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/taps>, <mailto:taps-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 13 Sep 2018 18:25:04 -0000

On Thu, Sep 13, 2018 at 11:02 AM, Michael Welzl <michawe@ifi.uio.no> wrote:

> Hi,
>
>
> > COMMENTS
>> > S 1.
>> >     of libraries to use this transport feature without exposing it,
>> based
>> >     on knowledge about the applications -- but this is not the general
>> >     case).  In most situations, in the interest of being as flexible and
>> >     efficient as possible, the best choice will be for a library to
>> >     expose at least all of the transport features that are recommended
>> as
>> >     a "minimal set" here.
>> >
>> > What is the bar for the requirements here. I.e., do you believe that
>> > all of these can be implemented with a standard sockets API.
>>
>> I don't fully get this - it CAN be implemented atop the standard
>> socket API (cf. https://github.com/NEAT-project/neat), if that's
>> what you're asking?
>>
>
> How do you implement limits on retransmission rates with standard sockets?
>
>
> It’s an SCTP feature (limiting the number of retransmissions is a part of
> its partial reliability, specified as one way of doing it in RFC 3758);
> when you fall back to TCP, you do nothing.
>
> In terms of the document, the following text in appendix A.1 says it:
>
>    o  Configurable Message Reliability
>       Protocols: SCTP
> (..)
>       Implementation over TCP: By using SEND.TCP and ignoring this
>       configuration: based on the assumption of the best-effort service
>       model, unnecessarily delivering data does not violate application
>       expectations.  Moreover, it is not possible to associate the
>       requested reliability to a "message" in TCP anyway.
>       Implementation over UDP: not possible (UDP is unreliable).
>
>
> If that seems disappointing: the goal of this document was to describe
> what can be done while being protocol-independent and allowing to fall back
> to TCP, or even UDP in some cases. The minute you write code that checks if
> configuring retransmission limits is possible, you need to implement an
> exception for the TCP case. I’m not saying this is bad design at all, it
> just wasn’t the goal of the minset. This doesn’t mean that a TAPS system
> needs to be limited in this way - it’s just the minimum you can expect from
> it.
>

I'm not disappointed, I'm just trying to figure out how to think about this
API and its requirements.

What does it mean to implement this API when you have a transport which
doesn't support the feature? Just that you have an affordance that pretends
to implement it but doesn't?



> S 3.
>> >
>> >     Based on the categorization, reduction, and discussion in Appendix
>> A,
>> >     this section describes a minimal set of transport features that end
>> >     systems should offer.  The described transport system can be
>> >     implemented over TCP.  Elements of the system that are not marked
>> >     with "!UDP" can also be implemented over UDP.
>> >
>> > Does this mean over native UDP with no other session protocol. Because
>> > you can have TCP over UDP.
>>
>> Native; we added a disclaimer about this at the end of the introduction.
>>
>>
>>
>> > S 3.2.
>> >     multiplexed as streams on a single SCTP association when SCTP may
>> not
>> >     be available).  The transport system must therefore ensure that
>> >     group- versus non-group-configurations are handled correctly in some
>> >     way (e.g., by applying the configuration to all grouped connections
>> >     even when they are not multiplexed, or informing the application
>> >     about grouping success or failure).
>> >
>> > How do you group connections in TCP? Or is this text saying it
>> > doesn't?
>>
>> The text doesn't make any assumption about this being possible with
>> anything but SCTP. This being said, I can't resist offering an answer
>> (but that's out of scope of minset):
>> https://ieeexplore.ieee.org/document/8406887/
>
>
> This is behind a paywall, but it appears to just be about congestion
> control, so perhaps there is some confusion about "grouping". I had read
> that as application visible grouping. Is that not what you mean?
>
>
> Sorry for the link problem; it IS application visible grouping, with
> prioritization. There’s also this draft:
> https://tools.ietf.org/html/draft-welzl-tcp-ccc
> and we have FreeBSD code doing this. Safiqul has various material here:
> http://safiquli.at.ifi.uio.no/tcp-ccc/
>
> I think we're diverging from the minset discussion, so I’ll stop here -
> but if this really interests you, tell me: I’d be very happy to discuss it
> further and send you the paper. I’d love for someone to use this!
> Since you mentioned TCP over UDP before - that’s actually one of the
> things we implemented, to ensure that flows traverse the same path.
>

I'd love to see the paper.


>
> > S 7.2.
>> >
>> >     o  Disable MPTCP
>> >        Protocols: MPTCP
>> >        Automatable because the usage of multiple paths to communicate to
>> >        the same end host relates to knowledge about the network, not the
>> >        application.
>> >
>> > I don't think I understand how this is automatable. Is the theory that
>> > the host auto-negotiates MPTCP? But what if the app doesn't want it no
>> > matter what.
>>
>> Then the application wants more than what this design of strictly
>> "application-specific knowledge" is giving it. That's the trade-off here -
>> there may be many reasons for applications to want things beyond this
>> document, but if we weren't strict about these limitations, this would
>> have hardly become a "minimal set".
>>
>
> That's reasonable, but it seems like a somewhat confusing definition.
>
>
> What is it that’s confusingly defined? “application-specific knowledge”?
> “Automatable"? Happy to fix if you tell me what.
>

Automatable, I think.

-Ekr


> Cheers,
> Michael
>
>