Re: Splitting transport and application error code spaces

Jana Iyengar <jri@google.com> Tue, 15 August 2017 23:57 UTC

Return-Path: <jri@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 E5A0A1323AC for <quic@ietfa.amsl.com>; Tue, 15 Aug 2017 16:57:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, SPF_PASS=-0.001, URIBL_BLOCKED=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 8mYD7DqFjEgR for <quic@ietfa.amsl.com>; Tue, 15 Aug 2017 16:57:06 -0700 (PDT)
Received: from mail-yw0-x232.google.com (mail-yw0-x232.google.com [IPv6:2607:f8b0:4002:c05::232]) (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 C7A6213232D for <quic@ietf.org>; Tue, 15 Aug 2017 16:57:05 -0700 (PDT)
Received: by mail-yw0-x232.google.com with SMTP id s143so13744287ywg.1 for <quic@ietf.org>; Tue, 15 Aug 2017 16:57:05 -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=nTRG+QawkU851YqAGyhCtMcHqKpAq3kOsaz4l1OYh1g=; b=cYulcYjcU9HQ/zphQXn/HHHjD1wr/A/nBumKPeUW5zmvZ920MHqIX38EJ9b51z7Iwd C+cU6KmTsW4CyBS6rvkNqnf1iESlZaQ15w/GdNqnIRCaUGS6Xea6TeWSRBScW0cmsJkk JBj02TxVZypkTGricvLx15QkRQ8obkxZG/F3c9AgBrKfFOR8ZFUOVB/bTqnegNINIUfR IwQr1XPBC46+wGQPMAm8ojkj7U6aFbKzJZV1vnNeE2lsAVK0K28gkVnkHTCExgFz9YgC gRroLS4qm9jsSYVG0IosX9lqwjORg1niyuyAMVJ2gZHL6q9gv4K7ErVwqHZy4K0dtGIn 62Bw==
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=nTRG+QawkU851YqAGyhCtMcHqKpAq3kOsaz4l1OYh1g=; b=KzNAejitCZEIVeP0HKcVeb4UJNbF3dIPQDYK5ADIv0e+Yoj8tERmq1XqKVoEjkwkM7 vjeTYbvTJ3D1DmSsUJSgqeGNJFyTUZpV2c8nwqrAKNqFHpMh4pmJs7QfDIS9XKQWUJ1v /ec/eFPNpXpwUhjIe9T6zNAjFIFA8xp5HFQknEL4sChuLEeo3lCDGWcS/aruhaYYDXWq n2Nt8/7vI8RU0A+Uh0sBWF+glAksC2fzBqNnO29yZ33gULkeX0SlSBXiYRLVH7Sbj+sa OuO2bdzVFZgUsdNRZtXR3XwjE4GVSE0wgcrEZOvyzv2v7JPQglgvjjb2/XRFhRvEAgz2 Jliw==
X-Gm-Message-State: AHYfb5g6WyPTn/LGYbF5uApLoTr4Vf6Gfou/Yzv+tMXoOKem+A0kQCpl l+WI58ZLLKVQjEpeycu/F3NN4eDzES9S
X-Received: by 10.129.68.25 with SMTP id r25mr24073831ywa.275.1502841424871; Tue, 15 Aug 2017 16:57:04 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.170.207 with HTTP; Tue, 15 Aug 2017 16:57:04 -0700 (PDT)
In-Reply-To: <MWHPR21MB0141C504874E7704D62BF388878D0@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <CABkgnnXcjaqXeRLq=+W98HnubFSEy_DWB7PbaK8GEDUK+Wvetg@mail.gmail.com> <CY4PR21MB0136EE9B4C91C296860A38F687890@CY4PR21MB0136.namprd21.prod.outlook.com> <CABkgnnU6gP++XeByfz3ML75VCuowrDA94DvjijZxL=sRCBiOSA@mail.gmail.com> <CAGD1bZYv8LDuyOH=tP1wDk+Ja+=Yy1MYAGLUxtyB2DpBLXdqwQ@mail.gmail.com> <CABkgnnXDc8Fzh0Y6yB9BUWxtXi2kcfKTS+=znPPvuppHRdA3ZQ@mail.gmail.com> <MWHPR21MB0141C504874E7704D62BF388878D0@MWHPR21MB0141.namprd21.prod.outlook.com>
From: Jana Iyengar <jri@google.com>
Date: Tue, 15 Aug 2017 16:57:04 -0700
Message-ID: <CAGD1bZbUu63JH7EvJWHdOFuNG+qivkvx_dMv=H4Vjnu1rz5tUQ@mail.gmail.com>
Subject: Re: Splitting transport and application error code spaces
To: Mike Bishop <Michael.Bishop@microsoft.com>
Cc: Martin Thomson <martin.thomson@gmail.com>, QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="f403045eb7f44925a00556d3891a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Wlp_Vh8MCNd2pWCLO1EowhwtSkE>
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: Tue, 15 Aug 2017 23:57:08 -0000

I like the idea of moving STOP_SENDING to the application entirely. It's
basically an HTTP/2 thing anyway, so that seems like an excellent clean-up.

Mike: QUIC currently does not use RST_STREAM without the application asking
for it outside of responding to STOP_SENDING; do you think there are
conditions under which it may be useful for the transport to issue one?
STOP_SENDING was the only thing I could think of, but moving it up to HTTP
makes that moot.

On Mon, Aug 14, 2017 at 11:52 PM, Mike Bishop <Michael.Bishop@microsoft.com>
wrote:

> I'm a little unhappy about that one.  I see the logic, but that would
> leave each direction of a stream solely in the hands of the sender and the
> receiver has no way to communicate (at the transport layer) if it wishes
> that stream to cease.  (Other, perhaps, than starving it via flow
> control.)  Though I agree, it is consistent with the principle that stream
> lifetime is entirely in the hands of the application.
>
> -----Original Message-----
> From: Martin Thomson [mailto:martin.thomson@gmail.com]
> Sent: Monday, August 14, 2017 5:49 PM
> To: Jana Iyengar <jri@google.com>
> Cc: Mike Bishop <Michael.Bishop@microsoft.com>; QUIC WG <quic@ietf.org>
> Subject: Re: Splitting transport and application error code spaces
>
> On 15 August 2017 at 10:00, Jana Iyengar <jri@google.com> wrote:
> > I'm not sure exactly what this split buys us... and it changes
> > behavior on receiving STOP_SENDING.
>
> So, what the split buys us is certainty: an application is responsible for
> the lifetime of streams.  In return the application can be certain that the
> transport won't destroy any state that it puts on streams at a whim.  The
> split enforces this separation.
>
> This issue with STOP_SENDING is a good one.  I have a solution to that as
> well: move STOP_SENDING to HTTP.  If the required reaction (RST_STREAM), is
> an application-layer action, then we should make the trigger
> application-layer as well.
>