Re: [Taps] TAPS Documents for Charter Item 3

Tommy Pauly <tpauly@apple.com> Mon, 22 January 2018 20:59 UTC

Return-Path: <tpauly@apple.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 991F012D7E4 for <taps@ietfa.amsl.com>; Mon, 22 Jan 2018 12:59:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.31
X-Spam-Level:
X-Spam-Status: No, score=-4.31 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.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 8-mMR1wjsQzA for <taps@ietfa.amsl.com>; Mon, 22 Jan 2018 12:59:53 -0800 (PST)
Received: from mail-in23.apple.com (mail-out23.apple.com [17.171.2.33]) (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 3C0AC12D7E5 for <taps@ietf.org>; Mon, 22 Jan 2018 12:59:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1516654792; x=2380568392; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-version:Content-type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-reply-to:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=/jPni7+wUDi5jfqewsVg4yRQbwxqH67LHe6PipuUYXI=; b=QpQ13YyrnQoammF6tb3xOJ+CbbHHUcFiH+5u9uMYgOJTFAt9p/UiX2NG08EuZk47 QDje70WD7p6xcHBvKU4dhhxEfhOmA271Z3Q/wmKbvdNC3KZwZE3OPjiEn0vXJegp ZCLk8g2ikRfJEpGkZqSu4i2r4jU5xYj2ZkzSyi+xPByFyav2kwyWkeHvsOV9ltS/ 2TEGUmgw4XYUAod7xXlHq4cBQT9et1nRVMFa9w3cyIXB+JjQKYjys4AJ+n8K/xN3 ziF4C+GtMzPNgnvI6bAcl+7WrkrlNUVozdkXsITKG+29tfX+BakMRehyhhHwW9xH hcvGXSFOGmcaCfC82zf/yQ==;
Received: from relay4.apple.com (relay4.apple.com [17.128.113.87]) (using TLS with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mail-in23.apple.com (Apple Secure Mail Relay) with SMTP id 80.4E.05970.7C0566A5; Mon, 22 Jan 2018 12:59:52 -0800 (PST)
X-AuditID: 11ab0217-f00cb9e000001752-99-5a6650c75ae6
Received: from nwk-mmpp-sz12.apple.com (nwk-mmpp-sz12.apple.com [17.128.115.204]) by relay4.apple.com (Apple SCV relay) with SMTP id 4C.A3.21277.7C0566A5; Mon, 22 Jan 2018 12:59:51 -0800 (PST)
MIME-version: 1.0
Content-type: multipart/alternative; boundary="Boundary_(ID_1+/GxQWe30rM1wjq8et5ZQ)"
Received: from da0602a-dhcp178.apple.com (da0602a-dhcp178.apple.com [17.226.23.178]) by nwk-mmpp-sz12.apple.com (Oracle Communications Messaging Server 8.0.2.1.20180104 64bit (built Jan 4 2018)) with ESMTPSA id <0P2Z009KX6BRZ4A0@nwk-mmpp-sz12.apple.com>; Mon, 22 Jan 2018 12:59:51 -0800 (PST)
Sender: tpauly@apple.com
From: Tommy Pauly <tpauly@apple.com>
Message-id: <B6C4BB0A-1583-40F2-9571-D866827D5D20@apple.com>
Date: Mon, 22 Jan 2018 12:59:50 -0800
In-reply-to: <AC61208A-87AE-4241-AC12-6DCF19AE1476@gmail.com>
Cc: Christopher Wood <christopherwood07@gmail.com>, Michael Welzl <michawe@ifi.uio.no>, taps@ietf.org
To: Aaron Falk <aaron.falk@gmail.com>
References: <19E34FCD-7BD6-41DB-8830-C376CF6B0623@apple.com> <E2E5D336-27BF-4F83-BECD-0589FC2769AB@ifi.uio.no> <FA73A113-B3BE-4E95-B3D1-76397E63ABD8@apple.com> <CAO8oSXkOmf_F89xsoxyZrABdinQq6OVD94zyWt_XpuOQMsUP1w@mail.gmail.com> <AC61208A-87AE-4241-AC12-6DCF19AE1476@gmail.com>
X-Mailer: Apple Mail (2.3458)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrELMWRmVeSWpSXmKPExsUi2FAYrnsiIC3KYHGvqEXb72msFtO/X2Oz +HF2J6vFnRgHFo+ds+6yeyxZ8pPJY/Xqh8wBzFFcNimpOZllqUX6dglcGW+erWQtOP+EseJr 42WmBsbdxxm7GDk5JARMJB5dmcPUxcjFISSwhkliQecZZphEZ+9yFhBbSOAQo8S2xy4gNq+A oMSPyffA4swCYRKn33yHal7LJLH5ewt7FyMHh7CAhMTmPYkgNWwCKhLHv21ghui1kXj+YjYj RImpxLWF1iBhFgFViQddV5lAbE4BW4kvX79AjU+XWLO3jw3EFgGqWfainQ1i1VwmiV33pkHd KSuxcvZdVpCEhMAaNolF196zT2AUmoXk1llIbp0FtJtZQF1iypRciLC2xJN3F1ghbDWJhb8X MSGLL2BkW8UonJuYmaObmWdkrJdYUJCTqpecn7uJERQpq5nEdzB+fm14iFGAg1GJh1eBMS1K iDWxrLgy9xCjNAeLkjjvi5rEKCGB9MSS1OzU1ILUovii0pzU4kOMTBycUg2Mqn6+XSnKz0Ss rN/6HDTR1A1Ll8yf9e5YTeweO5vlSyJ3J6WFRkRWFzCKnj9QKyaoGVbg0r0qwdTc88uyxGlR eycq3V8UeXlvl/vmlulfdi421b+y8P3tt/kihsmyxts3/BY+3reOW1OO/3j7/CWVC32FFbl7 dOK15HlDAptrE5ZK3FNN/azEUpyRaKjFXFScCAD50zxydQIAAA==
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrCLMWRmVeSWpSXmKPExsUi2FB8Rvd4QFqUwf5mbYu239NYLaZ/v8Zm 8ePsTlaLOzEOLB47Z91l91iy5CeTx+rVD5kDmKO4bFJSczLLUov07RK4Mt48W8lacP4JY8XX xstMDYy7jzN2MXJySAiYSHT2LmcBsYUEDjFKbHvsAmLzCghK/Jh8DyzOLBAmcfrNd6YuRi6g mrVMEpu/t7B3MXJwCAtISGzekwhSwyagInH82wZmiF4biecvZjNClJhKXFtoDRJmEVCVeNB1 lQnE5hSwlfjy9QvU+HSJNXv72EBsEaCaZS/a2SBWzWWS2HVvGjPEnbISK2ffZZ3AyD8LyXmz kJw3C2gds4C6xJQpuRBhbYkn7y6wQthqEgt/L2JCFl/AyLaKUaAoNSex0kQvsaAgJ1UvOT93 EyM4rAvDdzD+W2Z1iFGAg1GJh/fEv9QoIdbEsuLKXGAQcTArifCmrQAK8aYkVlalFuXHF5Xm pBYfYpTmYFES542/kRIlJJCeWJKanZpakFoEk2Xi4JRqYOSxnL5M4dXTjr0LXjyPuHp42efk HoEMVaXt52//O1J31u7guhqDDx9UCtwex3Or31FgcFwVf2XvvdlbF5741JQQsFWutO7nCpf2 FJ+ITS8kj/Z8Sfe0WJk+VUHou490q9mbiopHl4TYd3l9vfMm+sE9//aXDwMm//gYmG+tVsT6 zn/28SoWVT0lluKMREMt5qLiRACF5EqpZwIAAA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/taps/WmkiCBVho7KyTnIPDKkFRwERdGY>
Subject: Re: [Taps] TAPS Documents for Charter Item 3
X-BeenThere: taps@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 22 Jan 2018 20:59:56 -0000

I think we’re going to try to discuss and come together for a single approach for the architecture and documents. Ideally, I’d like to see a single set of unified Architecture/API/Implementation documents that embody the generic TAPS work as an approach. However, since there will be many different implementations (which is always a good thing for IETF work), I’d expect that the specific names and terms will vary in the individual codebases. The goal would be that the documents provide a common set of language for referring to aspects beyond any one implementation as a framework and guide for specific implementations.

If we can get all agreed, it would be great to have a set of common documents we can look over for London!

Thanks,
Tommy

> On Jan 22, 2018, at 12:05 PM, Aaron Falk <aaron.falk@gmail.com> wrote:
> 
> I like this structure (quite a bit!) but it’s not clear to me from the discussion whether we have one approach or several. Can we consolidate into a single approach? We had discussed this in Singapore but I want to be sure folks believe it. :) When we chartered, we imagined that there may be multiple approaches, which seemed undesirable but tolerable given the researchy nature of the wg.
> 
> —aaron
> 
> On 18 Jan 2018, at 10:02, Christopher Wood wrote:
> 
> On Thu, Jan 11, 2018 at 7:28 AM, Tommy Pauly <tpauly@apple.com <mailto:tpauly@apple.com>> wrote:
> 
> 
>> On Jan 11, 2018, at 12:23 AM, Michael Welzl <michawe@ifi.uio.no <mailto:michawe@ifi.uio.no>> wrote:
>> 
>> Hi Tommy,
>> 
>> A few answers below:
>> 
>>> On Jan 10, 2018, at 6:11 PM, Tommy Pauly <tpauly@apple.com <mailto:tpauly@apple.com>> wrote:
>>> 
>>> Hello TAPS,
>>> 
>>> In Singapore, there was much discussion about where we go after the minset drafts, and what documents will form charter item 3:
>>> 
>>> 3) Specify experimental support mechanisms to provide the Transport 
>>> Services identified in work item 2. This document will explain 
>>> how to select and engage an appropriate protocol and how to 
>>> discover which protocols are available for the selected service 
>>> between a given pair of end points. Further, it will provide a 
>>> basis for incremental deployment. Work on this document will 
>>> begin when the TAPS Transport Services have been specified.
>>> 
>>> Since it would be good to get convergence and adoption of documents in London, I’d like to take a stab at how we can structure the WG documents and start a discussion on this list to decide our collective approach.
>>> 
>>> At a high level, based on the work of NEAT, Post Sockets, Happy Eyeballs, Socket Intents, etc, it seems like the “support mechanisms” for TAPS are converging into categories (a) how to expose functionality in an Abstract API and (b) guidance on how to implement a library that provides TAPS functionality. These two categories are not unrelated, but have different audiences; Abstract APIs are aimed at adopters of a TAPS system, while the implementation guidance aspects are aimed at library and system implementers. The high-level concepts that bind these together form the overall TAPS architecture.
>>> 
>>> Looking at things in this way, I could imagine three documents, which would form the capstone of the TAPS work
>>> 1) TAPS Architecture: high level explanation of the approach and goals, how the API and implementations relate, and how the system is derived from the protocol surveys and minset. Defines consistent terminology for concepts used in the other documents.
>>> 2) TAPS API: document aimed at adopters taking advantage of a TAPS system: configuration, initiation of channels, listening/responding, data transfer, and maintenance.
>>> 3) TAPS Implementation Guide: document aimed at implementers on how to bring up connections (handling a multiplicity of paths, endpoints, and protocols), sending and receiving data through protocol stack instances, and interpreting configuration and system policy into decisions.
>> 
>> Funny, I have also been thinking about item 3 in exactly this way for a long time … and I believe we two are not the only ones.
>> This split really seems quite natural.
>> 
> 
> Good to hear that the split seems reasonable!
> 
>> 
>>> I believe that many (or all) of the outstanding documents we have in the WG already fall into one or more of the categories. Here’s a table with the three proposed documents as 1, 2, 3, and three aspects of a TAPS system/architecture as A, B, C:
>>> 
>>> 
>>> A
>>> B
>>> C
>>> 1. TAPS Architecture
>>> Connection Establishment
>>> Data transfer
>>> Policy and Path Selection
>>> 2. TAPS API
>>> Initiator/Listener/Responder
>>> Send/Receive
>>> Intents and configuration
>>> 3. TAPS Implementation Guide
>>> Protocol Racing, Path Racing, Happy Eyeballs
>>> Protocol Stack Instance
>>> Policy engine
>>> 
>>> In this table, we could see the existing documents contributing aspects to certain blocks:
>>> 
>>> draft-fairhurst-taps-neat: 1A, 1B, 1C, 2A, 2B, 2C, 3C
>>> draft-trammell-taps-post-sockets: 1A, 1B, 1C, 2A, 2B, (2C), (3B)
>>> draft-pauly-taps-guidelines: 3A, (1C)
>>> draft-grinnemo-taps-he: 3A
>>> draft-tiesel-taps-socketintents: 2C
>> 
>> I agree with this rough assessment. This table is good to think about!
>> I think draft-tiesel-taps-communitgrany is missing for 1)  (not sure if it’s A / B / C, but it’s about terminology)
> 
> Yes, this wasn’t a complete list. Also note that I’m not proposing that we adopt any of the documents as they are, but specifically adopt WG items for Architecture, API, and Implementation, and we build those documents from the existing ones, taking the best parts of all of them.
>> 
>> 
>>> This is a rough assignment and not necessarily exhaustive, but the point is that much of the content is probably already there is some form, and can be reinterpreted into these documents.
>>> 
>>> What do people think about this approach? Any aspects that are missed here that would need to be separate documents, or new sections across the documents?
>> 
>> Personally I like the approach but I’d caution that we need a tight connection between the lines in the table. For everything we do, we must make sure it’s implementable, and explain how. Hence, a document describing API primitives should also clarify how these primitives could be implemented - with the split you describe above, by pointing at a specific section for each functionality in a "line 3” document (if these things really are going to be separate documents?).
> 
> That’s why I’d propose having three documents that are adopted as a group, that are designed to go through the process together, and heavily reference one another. The definition of what goes in each should be based on the audience. One other comment I have for the API is that it should likely remain agnostic to specific protocols: it should say “here’s how to send/receive with these kind of options, and protocols will treat them like this”; but the implementation document can go into details of how those map down to specific protocol details in existing mappings (TCP, SCTP, UDP, QUIC). My two goals in saying this are:
> 1) The API should be simple and easy to understand for an adopter’s perspective
> 2) The API should be relevant despite changes in transport protocols de jour. Maybe in fifty years no one is using TCP anymore; we’ll publish implementation and mapping updates, but the API document should still be unchanged.
> 
> +1, especially for decoupling the API from specific protocols.
> 
> Best,
> Chris
> _______________________________________________
> Taps mailing list
> Taps@ietf.org
> https://www.ietf.org/mailman/listinfo/taps <https://www.ietf.org/mailman/listinfo/taps>