Re: QUIC - Our schedule and scope

Colin Perkins <csp@csperkins.org> Wed, 01 November 2017 09:50 UTC

Return-Path: <csp@csperkins.org>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 487F613F417 for <quic@ietfa.amsl.com>; Wed, 1 Nov 2017 02:50:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.199
X-Spam-Level:
X-Spam-Status: No, score=-4.199 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, 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 b_ub9A80niP5 for <quic@ietfa.amsl.com>; Wed, 1 Nov 2017 02:50:43 -0700 (PDT)
Received: from balrog.mythic-beasts.com (balrog.mythic-beasts.com [IPv6:2a00:1098:0:82:1000:0:2:1]) (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 7E9CE13F6AF for <quic@ietf.org>; Wed, 1 Nov 2017 02:50:42 -0700 (PDT)
Received: from [161.23.164.219] (port=60840) by balrog.mythic-beasts.com with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from <csp@csperkins.org>) id 1e9pfS-0005vT-0p; Wed, 01 Nov 2017 09:50:39 +0000
From: Colin Perkins <csp@csperkins.org>
Message-Id: <ED76AB7B-88FC-4492-AB42-054897F2CC7B@csperkins.org>
Content-Type: multipart/alternative; boundary="Apple-Mail=_6AADF253-40DD-416E-B09A-7BC01AEDDE1F"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: QUIC - Our schedule and scope
Date: Wed, 01 Nov 2017 09:50:28 +0000
In-Reply-To: <CAOW+2dvsm8yTHk8BarRDDgSGnO9gq8=kFJSV2zYqSSzRwdHEdQ@mail.gmail.com>
Cc: "Brian Trammell (IETF)" <ietf@trammell.ch>, Mark Nottingham <mnot@mnot.net>, QUIC WG <quic@ietf.org>, Lars Eggert <lars@netapp.com>, Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
To: Bernard Aboba <bernard.aboba@gmail.com>
References: <BCAD8B83-11F7-4D4A-B7B3-FCBF8B45CBB4@mnot.net> <AE0180A5-7577-44C0-8FF6-0AFD1E3B9E00@trammell.ch> <EF177987-B730-4FDB-898D-8036F6B95B28@csperkins.org> <CAOW+2dvsm8yTHk8BarRDDgSGnO9gq8=kFJSV2zYqSSzRwdHEdQ@mail.gmail.com>
X-Mailer: Apple Mail (2.3273)
X-BlackCat-Spam-Score: 14
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/DpuyoYCBXdV-7h5co_HOYpmYskw>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 01 Nov 2017 09:50:45 -0000

> On 1 Nov 2017, at 07:16, Bernard Aboba <bernard.aboba@gmail.com> wrote:
> 
> Colin Perkins said: 
> 
> "I do think that peer-to-peer uses of QUIC need attention pre-V1, if they’re to be supported cleanly. At minimum, we need to arrange the QUIC headers to easily demultiplex with STUN on the same UDP port, otherwise we’ll end-up re-inventing STUN within QUIC. Focussing solely on HTTP is going to make this difficult.
> 
> See draft-aboba-avtcore-quic-multiplexing-00 for more discussion."
> 
> [BA]  Peer-to-peer uses of QUIC are under development, and are quite likely to be deployed in advance of a v2 specification.  
> 
>  As the multiplexing draft makes clear, there is an alternative (a single octet shim) that enables de-multiplexing of QUIC without modification (or even consideration) of QUIC headers.  So while native demultiplexing QUIC headers from STUN might be preferred, this probably can’t be characterized as a "must have". 

There are several options for the packet format, and a shim is only one. 

Whether we define a shim, or change the QUIC header format to allow demuxing, we should do it early enough so middleboxes are aware. Otherwise, we’ll see ossification around a format that prevents peer-to-peer use.

> Given that some of the most popular peer-to-peer uses involve unreliable data exchange (e.g. in games), support for that is a basic requirement.  A "quick and dirty" approach would be to utilize a QUIC stream for each message, while setting a timer so as to approximate a data channel's maxPacketLifetime parameter.  A more thorough solution would be to support unreliable QUIC streams natively, allowing maxPacketLifetime or maxRetransmits to be enforced on a per-packet basis, mimicing the behavior of an unreliable RTCDataChannel running over SCTP/DTLS/UDP. 
> 
> The problem with the "quick and dirty" approach is that many peer-to-peer data exchange developers are obsessed with latency and therefore may prefer no retransmissions at all.  This could lead to widespread deployment of draft-tiesel-quic-unreliable-streams prior to standardization.
> 
> 
> 
> On Sun, Oct 29, 2017 at 11:08 AM, Colin Perkins <csp@csperkins.org <mailto:csp@csperkins.org>> wrote:
> 
> > On 28 Oct 2017, at 09:04, Brian Trammell (IETF) <ietf@trammell.ch <mailto:ietf@trammell.ch>> wrote:
> >
> > hi Mark, all,
> >
> > Broadly, I support Patrick's intepretation here. I'll point out that there seems to be some inconsistency between two points below:
> >
> >> On 27 Oct 2017, at 08:26, Mark Nottingham <mnot@mnot.net <mailto:mnot@mnot.net>> wrote:
> >>
> >> 2) V1 of QUIC should *only* address the use case of HTTP.
> >
> > and
> >
> >> * V1 will need to document the "invariants" of QUIC -- i.e., the parts on the wire that will not change -- to allow other use cases to be addressed by V2 and beyond.
> >
> > That QUIC's handshake, pre-version-negotiation wire image, and ossification-prevention features will be "baked in" in V1 is clear, and I thought it already had been, though thanks for calling it out here.
> >
> > Focusing on *only* addressing HTTP in this wire image, though, seems like it might be dangerous in ways I can't fully articulate yet... HTTP is an explicitly asymmetric protocol, with different roles for client and server well beyond the initial handshake, and as it is presently most commonly deployed, wildly different architectures for client-side and server-side implementations. Many of the things that we suspect we'll want to bring on top of QUIC in the future are less so; even Web protocols like WebSockets fit here. Will this focus lead to invariants that will make less asymmetric applications harder to build and deploy? Should we be concerned about that at this point?
> 
> 
> I do think that peer-to-peer uses of QUIC need attention pre-V1, if they’re to be supported cleanly. At minimum, we need to arrange the QUIC headers to easily demultiplex with STUN on the same UDP port, otherwise we’ll end-up re-inventing STUN within QUIC. Focussing solely on HTTP is going to make this difficult.
> 
> See draft-aboba-avtcore-quic-multiplexing-00 for more discussion.
> 
> --
> Colin Perkins
> https://csperkins.org/ <https://csperkins.org/>
> 
> 
> 
> 
> 



-- 
Colin Perkins
https://csperkins.org/