Re: [Taps] Socket Intents Draft – draft-tiesel-taps-socketintents-00

Michael Welzl <michawe@ifi.uio.no> Sat, 24 June 2017 16:39 UTC

Return-Path: <michawe@ifi.uio.no>
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 1C90D1200FC for <taps@ietfa.amsl.com>; Sat, 24 Jun 2017 09:39:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Level:
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 5E7JfIeVBeQs for <taps@ietfa.amsl.com>; Sat, 24 Jun 2017 09:39:24 -0700 (PDT)
Received: from mail-out01.uio.no (mail-out01.uio.no [IPv6:2001:700:100:10::50]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E628B1204DA for <taps@ietf.org>; Sat, 24 Jun 2017 09:39:23 -0700 (PDT)
Received: from mail-mx03.uio.no ([129.240.10.15]) by mail-out01.uio.no with esmtp (Exim 4.82_1-5b7a7c0-XX) (envelope-from <michawe@ifi.uio.no>) id 1dOo5h-0004cf-Mu; Sat, 24 Jun 2017 18:39:21 +0200
Received: from 234.133.189.109.customer.cdi.no ([109.189.133.234] helo=[192.168.1.8]) by mail-mx03.uio.no with esmtpsa (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) user michawe (Exim 4.82_1-5b7a7c0-XX) (envelope-from <michawe@ifi.uio.no>) id 1dOo5g-0005wZ-DQ; Sat, 24 Jun 2017 18:39:21 +0200
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
From: Michael Welzl <michawe@ifi.uio.no>
In-Reply-To: <E05A5BE2-CA5B-4641-93CF-B533AF3BD6F4@in-panik.de>
Date: Sat, 24 Jun 2017 18:39:23 +0200
Cc: "taps@ietf.org" <taps@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <509CE105-F0F6-4F56-ADDE-D41C12C932D1@ifi.uio.no>
References: <1977C9AB-7BD1-4651-ACA8-DF042759C683@in-panik.de> <54C05CB6-2420-4632-8BE9-12C690F07414@apple.com> <68CB4570-7371-49EA-8E62-20F424FB0E41@ifi.uio.no> <E05A5BE2-CA5B-4641-93CF-B533AF3BD6F4@in-panik.de>
To: "Philipp S. Tiesel" <phils@in-panik.de>
X-Mailer: Apple Mail (2.3273)
X-UiO-SPF-Received: Received-SPF: neutral (mail-mx03.uio.no: 109.189.133.234 is neither permitted nor denied by domain of ifi.uio.no) client-ip=109.189.133.234; envelope-from=michawe@ifi.uio.no; helo=[192.168.1.8];
X-UiO-Ratelimit-Test: rcpts/h 2 msgs/h 1 sum rcpts/h 4 sum msgs/h 1 total rcpts 55915 max rcpts/h 54 ratelimit 0
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, AWL=0.048, TVD_RCVD_IP=0.001, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO)
X-UiO-Scanned: C2AA7E75B0E96500714F7918AF0011B333E4CBA0
X-UiO-SPAM-Test: remote_host: 109.189.133.234 spam_score: -49 maxlevel 80 minaction 2 bait 0 mail/h: 1 total 1615 max/h 13 blacklist 0 greylist 0 ratelimit 0
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/f66FSZHcF0BYnNRV1_VIeE04vto>
Subject: Re: [Taps] Socket Intents Draft – draft-tiesel-taps-socketintents-00
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Discussions on Transport Services <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: Sat, 24 Jun 2017 16:39:27 -0000

Hi,


> On Jun 24, 2017, at 1:16 PM, Philipp S. Tiesel <phils@in-panik.de> wrote:
> 
> Hi Michael,
> 
>> On 17. Jun 2017, at 12:02, Michael Welzl <michawe@ifi.uio.no> wrote:
>> 
>> Hi,
>> 
>> Thanks indeed for sharing this - I think this is very interesting input to the group.
>> I agree with the things Tommy says below, but I have some additional thoughts that I wanted to share.
>> 
>> Our charter is about existing protocols and what they can do. For TCP, MPTCP, UDP, UDP-Lite, SCTP and LEBAT, draft-gjessing-taps-minset breaks this list down into transport features that really must be exposed in order to become usable, some that really shouldn’t be exposed (as they would forever tie your application to one specific protocol only), and some that could (perhaps) be automatized.
>> 
>> So, with that in mind, if I try to imagine how to implement a system implementing draft-tiesel-taps-socketintents on top of TCP, MPTCP, UDP, …etc, I see two degrees of freedom here:
>> 
>> 1) deciding which protocol to use, and making good use of the features that we call “automatable” in draft-gjessing-taps-minset. As a concrete example, we say that the choice of the network interface is based on network- or OS-wide, but not application-specific knowledge, and so it should be automatable. However, making a choice does need *some* knowledge about app behavior, and this is exactly a hole that some of the things in draft-tiesel-taps-socketintents appear to fill.
>> 
>> 2) I guess that some of the services of protocols can be “translated” into a slightly different representation.
> 
> The third (and primary use-case for Socket Intents so far) was using them for Access-Selection, which includes automatic selection of transport options like destination, path, and what packet / stream scheduling strategy to use for MPTCP and SCPT.
> As far as I interpret draft-gjessing-taps-minset and the WG charter, this is not exactly the focus of the WG, but also not out of scope.
> I think we should put this a little clearer in a -01 version of the draft-tiesel-taps-socketintents.

I’d classify access selection as my item 1) above: it’s one of the things (e.g. of MPTCP) that we call “automatable”. Now just because it *might* be possible to automate access selection, this doesn’t mean that it wouldn’t be better to add more information from the application to make a better decision - the minset is indeed only a “minimum set”.


>> Here I’m thinking of your “Application Resilience”, for example: how does this relate to "Change timeout for aborting connection (using retransmit limit or time value)” (from (MP)TCP and SCTP) and "Suggest timeout to the peer” (from (MP)TCP, via UTO)?   Isn’t a very disruption-resilient application going to want a large timeout value?  But then maybe such resilience is best configured in seconds…
> 
> One of the Ideas of Socket Intents is that intents are expressed in an abstract way. While a timeout in seconds is indeed a value that is protocol independent, it is very concrete and therefore fits much better in the abstract mindset api than into socket intents.
> 
> Application Resilience as stated in draft-tiesel-taps-socketintents-00 is useful for transport option selection and deriving a timeout default. This can be either adjusted by explicitly setting a timeout or an by an additional intent like “Connection Failure Detection Sensitivity”.

I understand, and I’m in favor of raising the abstraction level a bit (for the sake of greater flexibility) - as long as there’s at least one clear implementation possibility, using existing protocols.


>> and “timeliness” in your section 5.6 pretty obviously maps to "Specify DSCP field” (from (MP)TCP, SCTP and UDP(-Lite)) - which we actually already combined with other things and translated into a higher-level representation that we call “capacity profile” in https://tools.ietf.org/html/draft-gjessing-taps-minset-04#section-5.5
> 
>> I understand that the idea of socket intents is to describe an application’s behaviour, not request QoS - but using the DSCP as in draft-ietf-tsvwg-rtcweb-qos isn’t about guarantees either. All in all, considering just the API, I don’t see much difference between an application using socket intents and choosing “background” or using the DSCP value and choosing “background”. Once a TAPS system has this information, the question becomes what it really does with it (truly set the DSCP value, or do something else?).
> 
> Correct. capacity profile and the “timeliness” and “category” Intent differ mainly in their scope of effect: while the Intents are primarily thought as input to automatic transport option selection, the capacity profile is primarily a way to specify the DSCP field. Nevertheless, the value of the Intents can be used to derive the DSCP filed if desired.
> 
>> 
>> So these were just some thoughts. To summarize, I think it would be interesting to see how the things in draft-tiesel-taps-socketintents map to:
>> - the choice of protocols
>> - configuring transport features of existing protocols that we call “automatable”
>> - and simply using transport features that, according to draft-gjessing-taps-minset, already should be exposed anyway. 
> 
> Reasonable questions - I don’t know whether I will find the time to elaborate on this in the draft till the cutoff date for Prague, but I agree that these relations should be clarified in a future version of the draft.

Cool!

Cheers,
Michael