Re: Unidirectional streams PR

"Charles 'Buck' Krasic" <ckrasic@google.com> Mon, 10 July 2017 17:12 UTC

Return-Path: <ckrasic@google.com>
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 08D9313183E for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 10:12:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 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_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 Bh9tSPNQL4Oz for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 10:12:33 -0700 (PDT)
Received: from mail-yw0-x22d.google.com (mail-yw0-x22d.google.com [IPv6:2607:f8b0:4002:c05::22d]) (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 6179C13183F for <quic@ietf.org>; Mon, 10 Jul 2017 10:12:18 -0700 (PDT)
Received: by mail-yw0-x22d.google.com with SMTP id x125so38720564ywa.0 for <quic@ietf.org>; Mon, 10 Jul 2017 10:12:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=+BngAyLIBav0Gn9jefU+ZXBVU6GQwf17TKOZOFD09mo=; b=EAH4moYGiAWPEGATJ1BQ1gzAMUuzkON9R+uIaqPIx4X1EtELmYgYZzAYyYaD9xf6fs Qqm4cRS/I732q1X7DsWeCRM9n/+iv9l+uM2Fi3vYOe7+kyqmkXpf72Li71yoY7BIT++k srB7NF/Bm2qbnYrhnhCXdxpUjJPhg1GgvslntM3MwTGQZdlBAvttBJaqXg9HvL7WpqVU 85WsDsomFoW6xWs3phPRi9S9JHo01bcckkkcDPhYA+6It9I/cczG13ouyKP12PlUZPEu yGZ+it9BsFHoQq3WKRekw9D13RaljfxcIGt/YyWAR1TTmq6X3o8v+jhq7yKXarHobMrG XoDQ==
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=+BngAyLIBav0Gn9jefU+ZXBVU6GQwf17TKOZOFD09mo=; b=H6SkgihQgmppFg4Mw49P+Z8XmQ1fvcYs/AcnUmQi+VUqE+s1BRcdtg6oDF+P45tFyG cJ77TSMLGNDYbYtxGyFI9H5oYRHy5hY7dS74BePodNXbjFF1J4iBwqOV1bnjG6DYJ2YF fuM91vxTGMTsbZ2mQzxY3O7/tVfl2ej/1UIhSjXdmJhoCxrwth/xSees9oVRKrbdH3D1 2VyIHeb4SPwzH31DJ7PbXvYZZv/89UVQG6naKtArabmK/txqiWMUWO/DL0kN77G6Oa6u RCgmDuoxTnnX4D++s6QjOCBxleHUZE6XJMeGr42x1HHeDo2odbiXMK1MMSbKAP5sySyc ksbA==
X-Gm-Message-State: AIVw112VH5UTXt7Yutg53WOqD1zF35weUj0C7p71ffn/CdiM61PifcEp MMcts+b5Q6sxWzk/voz+SqUiLODYMxt0
X-Received: by 10.129.170.67 with SMTP id z3mr1566436ywk.115.1499706737489; Mon, 10 Jul 2017 10:12:17 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.171.75 with HTTP; Mon, 10 Jul 2017 10:11:56 -0700 (PDT)
In-Reply-To: <65e83cb364f74446b83873ab61b4295a@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <CANatvzyKsi=+V1rYSjYwtkuGnui=V_1f0bbq1iCB36p2GJXDbQ@mail.gmail.com> <ab4e5580e8c14a8a9f2eecc87e8c9976@usma1ex-dag1mb5.msg.corp.akamai.com> <MWHPR15MB14552E4F7BB6BE5FB43A58FDB6D50@MWHPR15MB1455.namprd15.prod.outlook.com> <CAM4esxRN55ht7NUn6hd37L1F+G+vWYks23St4XbihL9T1mwt0g@mail.gmail.com> <CAGD1bZYuAX==a_V-d1wUTdGRCA21c-sGqQ-p6EiTQPQoDrBpSg@mail.gmail.com> <CAM4esxRCEHmsgSorRZ11CbwjfnyD4iTi1yzBien2LF04qafpvw@mail.gmail.com> <65e83cb364f74446b83873ab61b4295a@usma1ex-dag1mb5.msg.corp.akamai.com>
From: Charles 'Buck' Krasic <ckrasic@google.com>
Date: Mon, 10 Jul 2017 10:11:56 -0700
Message-ID: <CAD-iZUb9jq+Rf01ipY5ytdzrUA-7RzArNRp+G4EWM-T+CLbyqg@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: "Lubashev, Igor" <ilubashe@akamai.com>
Cc: Martin Duke <martin.h.duke@gmail.com>, Jana Iyengar <jri@google.com>, Mike Bishop <Michael.Bishop@microsoft.com>, Subodh Iyengar <subodh@fb.com>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>, Ian Swett <ianswett@google.com>, Jo Kulik <jokulik@google.com>, Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>, QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="089e0826403c5b9bb80553f9af0d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/EG_KPeBh318erd8kzXQ1yQvsfrI>
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: Mon, 10 Jul 2017 17:12:37 -0000

On Mon, Jul 10, 2017 at 9:11 AM, Lubashev, Igor <ilubashe@akamai.com> wrote:

>
>    - I guess one question is if passing STREAM frames whole (at most
>    changing the stream ID) is stateless for the middlebox.
>
>
>
> Just passing frames may be mostly stateless (in far as streams are
> concerned) – it is just transient RAM to buffer and account for the streams
> before the frames are delivered.  In fact, the proxy may not need to
> strictly pass the STREAM frames but can re-frame the data it has buffered.
> One thing the proxy would not be able to do is stream state validation and
> would pass on invalid frames to endpoints.
>
>
>

This may not always be true?  A proxy that has certs might want to improve
perfromance, e.g. it might be aware of HTTP priorities and decide to
forward newer higher priority stream frames before older ones, in which
case it might even re-packetize.


A related question is how would a proxy (or a middlebox) identify QUIC
> traffic as QUIC and not some random UDP traffic?  We’ve had a magic byte in
> the header but lost it in the header update.  We still have a port number,
> but that is likely application-specific, unless we add something to
> ClientInitial to identify an application.
>
>
>
>
>
> *From:* Martin Duke [mailto:martin.h.duke@gmail.com]
> *Sent:* Friday, July 07, 2017 4:45 PM
> *To:* Jana Iyengar <jri@google.com>
> *Cc:* Subodh Iyengar <subodh@fb.com>; Mike Bishop <
> Michael.Bishop@microsoft.com>; Dmitri Tikhonov <
> dtikhonov@litespeedtech.com>; Ian Swett <ianswett@google.com>; Lubashev,
> Igor <ilubashe@akamai.com>; Jo Kulik <jokulik@google.com>; Mikkel Fahnøe
> Jørgensen <mikkelfj@gmail.com>; QUIC WG <quic@ietf.org>; Martin Thomson <
> martin.thomson@gmail.com>; Swindells, Thomas (Nokia - GB/Cambridge, UK) <
> thomas.swindells@nokia.com>; Kazuho Oku <kazuhooku@gmail.com>
> *Subject:* Re: Unidirectional streams PR
>
>
>
> As I understand it, QUIC's contract with the upper layer includes streams,
> so any such middlebox would maintain state for each stream. In general,
> these middleboxes will support awareness of most L7s, and users will turn
> it on.
>
>
>
> The exceptions are probably kind of corner-case-ish. Perhaps there's a new
> application directly on top of QUIC that the middlebox doesn't understand
> natively. In that case, with no FIN the middlebox would be forced to hold
> stream state until the end of the connection.  I guess one question is if
> passing STREAM frames whole (at most changing the stream ID) is stateless
> for the middlebox.
>
>
>
> Also, I'm not clear where we ended up on silent close. If we're indeed
> expecting endpoints to see that all the streams are closed to begin the
> shutdown, then we *have to see that all the streams are closed.*
>
>
>
> On Fri, Jul 7, 2017 at 9:58 AM, Jana Iyengar <jri@google.com> wrote:
>
> On Fri, Jul 7, 2017 at 9:48 AM, Martin Duke <martin.h.duke@gmail.com>
> wrote:
>
>
>
>
>
> On Wed, Jul 5, 2017 at 10:16 PM, Subodh Iyengar <subodh@fb.com> wrote:
>
> > Without such a signal, a generic proxy that is not aware of your
> application internals is not able to know when to send the FIN
>
> I see, this use case does make somewhat sense, however I'm curious
> if someone has a concrete use case for a generic QUIC proxy which is not
> aware of the application protocol at all. In TCP this was more common for
> middleboxes to do because there was no end to end encryption of the
> transport, however QUIC is encrypted. Even with cases when we tunneling
> protocols at our end, we usually have some knowledge of the app that we are
> running because we need to route them differently to different backends. I
> was mostly thinking that proxies would at least have some knowledge about
> HTTP/2 or app protocols.
>
>
>
> Some load balancers (including ours) terminate the transport connection.
> Being trusted middleboxes, they have the certificates and this sort of
> thing works in principle.
>
>
>
> That said, in such a case it's entirely feasible to implement HTTP/2 on
> the middlebox as well.
>
>
>
> If these middleboxes terminate the transport connection for QUIC, would
> they need to understand stream semantics? Or would they simply terminate
> the QUIC connection, but relay the STREAM frames without any changes?
>
> I'll note that all transports after TCP have two general parts to them --
> the packet transport part, and the application semantics part. Middleboxes
> are usually interested in the "lower half" of the transport - the packet
> transport part.
>
>
>
> That said, I'm not opposed to having an explicit bit. I'm also wondering
> if there's a real use case, or if we're provisioning for the future here.
>
>
>
> - jana
>
>
>
> However, I think we should look forward to the day where QUIC is
> implemented in kernel space and HTTP/2 (and everything else) remains an
> application. I imagine counting on all applications to do this kind of
> garbage collection could cause problems.
>
>
>
>
>



-- 
Charles 'Buck' Krasic | Software Engineer | ckrasic@google.com | +1 (408)
412-1141