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

Michael Welzl <michawe@ifi.uio.no> Sat, 17 June 2017 10:02 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 16FAA12702E for <taps@ietfa.amsl.com>; Sat, 17 Jun 2017 03:02:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 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, URIBL_BLOCKED=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 vj_e4u2VasAF for <taps@ietfa.amsl.com>; Sat, 17 Jun 2017 03:02:16 -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 A39AE120721 for <taps@ietf.org>; Sat, 17 Jun 2017 03:02:16 -0700 (PDT)
Received: from mail-mx05.uio.no ([129.240.10.49]) by mail-out01.uio.no with esmtp (Exim 4.82_1-5b7a7c0-XX) (envelope-from <michawe@ifi.uio.no>) id 1dMAYX-0003wr-Gr for taps@ietf.org; Sat, 17 Jun 2017 12:02:13 +0200
Received: from 234.133.189.109.customer.cdi.no ([109.189.133.234] helo=[192.168.1.8]) by mail-mx05.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 1dMAYW-000C0T-Qc for taps@ietf.org; Sat, 17 Jun 2017 12:02:13 +0200
From: Michael Welzl <michawe@ifi.uio.no>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Date: Sat, 17 Jun 2017 12:02:14 +0200
References: <1977C9AB-7BD1-4651-ACA8-DF042759C683@in-panik.de> <54C05CB6-2420-4632-8BE9-12C690F07414@apple.com>
To: "taps@ietf.org" <taps@ietf.org>
In-Reply-To: <54C05CB6-2420-4632-8BE9-12C690F07414@apple.com>
Message-Id: <68CB4570-7371-49EA-8E62-20F424FB0E41@ifi.uio.no>
X-Mailer: Apple Mail (2.3273)
X-UiO-SPF-Received: Received-SPF: neutral (mail-mx05.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 1 msgs/h 1 sum rcpts/h 2 sum msgs/h 2 total rcpts 55711 max rcpts/h 54 ratelimit 0
X-UiO-Spam-info: not spam, SpamAssassin (score=-4.9, required=5.0, autolearn=disabled, AWL=0.087, TVD_RCVD_IP=0.001, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO)
X-UiO-Scanned: 6466FC4A1D23BC268A3BA89059077E7B896AE327
X-UiO-SPAM-Test: remote_host: 109.189.133.234 spam_score: -48 maxlevel 80 minaction 2 bait 0 mail/h: 1 total 1592 max/h 13 blacklist 0 greylist 0 ratelimit 0
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/SSOvXyAyOkz0wd9z11nquVkVJws>
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, 17 Jun 2017 10:02:20 -0000

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. 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…

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?).

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. 

Cheers,
Michael



> On Jun 16, 2017, at 8:23 PM, Tommy Pauly <tpauly@apple.com> wrote:
> 
> Hi Philipp,
> 
> Thanks for sharing this document! Providing an API for generic network intents is something of a Holy Grail—valuable but elusive to nail down. This document should be a good place to start a conversation, and I look forward to discussing it in Prague.
> 
> A few initial comments:
> 
> - I’d love to see the terminology be less sockets-specific, especially considering the work for Post-Sockets APIs. A set of intents should be able to be applied to individual messages being sent or on a higher-level protocol, ideally, not just on the level of a transport connection as represented by a socket.
> 
> - Certain properties, like burstiness, are focused on what the application will be sending, and what its sending pattern will look like. This works fine for some use cases, but in the case of downloads, the application may not have enough/any insight into what patterns the server will have. What do you think the best way to account for this is?
> 
> - While explicit intents are a great way to avoid ossification, I would also argue that we should minimize the surface of the intents in order to reduce the complexity for application writers. Do you think that some of these intent properties can also be inferred automatically based on the traffic patterns observed by the system? I’m thinking here of traffic category, in which we’re asking the app to say if they’re using queries or streams or bulk downloads, etc.
> 
> Thanks,
> Tommy
> 
>> On Jun 16, 2017, at 1:54 AM, Philipp S. Tiesel <phils@in-panik.de> wrote:
>> 
>> Hi,
>> 
>> I just uploaded draft-tiesel-taps-socketintents-00 to the data tracker yesterday.
>> https://datatracker.ietf.org/doc/draft-tiesel-taps-socketintents/
>> 
>> This draft should fits into point three of the TAPS charter.
>> 
>> Socket Intents allow applications to share their knowledge about upcoming
>> communication and express their performance preferences in an API independent way.
>> Therefore, thy can be used by an OS/API to gain enough knowledge to perform access
>> as well as transport protocol selection and tuning.
>> 
>> A draft explaining an experimental implementation based on BSD sockets will follow.
>> 
>> I am looking forward to the discussion, here and in Prague.
>> 
>> AVE!
>> Philipp S. Tiesel / phils…
>> 
>> _______________________________________________
>> Taps mailing list
>> Taps@ietf.org
>> https://www.ietf.org/mailman/listinfo/taps
> 
> _______________________________________________
> Taps mailing list
> Taps@ietf.org
> https://www.ietf.org/mailman/listinfo/taps