Re: Splitting transport and application error code spaces

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Wed, 16 August 2017 07:32 UTC

Return-Path: <mikkelfj@gmail.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 7ED4A132642 for <quic@ietfa.amsl.com>; Wed, 16 Aug 2017 00:32:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 oPUvppxgi9ly for <quic@ietfa.amsl.com>; Wed, 16 Aug 2017 00:32:17 -0700 (PDT)
Received: from mail-ua0-x230.google.com (mail-ua0-x230.google.com [IPv6:2607:f8b0:400c:c08::230]) (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 534A513263F for <quic@ietf.org>; Wed, 16 Aug 2017 00:32:17 -0700 (PDT)
Received: by mail-ua0-x230.google.com with SMTP id r9so1494961uad.0 for <quic@ietf.org>; Wed, 16 Aug 2017 00:32:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=GILRNVEzrEQouLLNrmTJQ6lnZgQWrFclCH21Z+YYPfU=; b=vE/U5aSuAuezdR8inXhW2qcUZWiTCU7jXFe9JT3wq4CNLr4fXKr3YqUMmkPqB0MU0b 1dY3JTYPJhV3YfnCulrth5pgiNGH/C+ZEIlX0f779QFTLRTMAwTST5CejM6SurS+LMfw qbr2U395uoZ/SoICg6xSbG3sVCOYh+LHFTB41wprLQgsFixDKf+wl9VUBwfMuWV5l3iY Oa48PE2OHLA0sqlADJ316aiKONlbmR7j3DNmuyQ2oLeStbhj0dsR6PNESkBkZTOrH6Jw vwUqVRlZnrWeiVKLlQateFwnm1TnnltytwWY6rvLtUZoFzmJ/JLXgUVTW+kQOjV3vyLc 1Qmw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=GILRNVEzrEQouLLNrmTJQ6lnZgQWrFclCH21Z+YYPfU=; b=MQag2PXqTzlARmeqaQgtS2D6dpUwDsRZTBXGko0xLsnetU+drgFCBO7TYFgBwRg5Wh t1bzj3TG05lmszkU3zyok+B4nR0qf8Lfoy9Ysm7QfYxZjMzX7466sIqzXd/If2D2ceHU SbuW139lz8UCtzntiFwuAt7xqZFhfW0NOM7XlbUWMuep0x1kVbx1SoTq/FUQTtFx7RL6 wFxEjkdT1JvPPTaiXRt4dLZz+0qaBYeduzNBfiZdWQ5L/24PJ/YrNgDErgkCwRnEtNMA h7pa/4aouIw/cPKrX8iJ8+OmFDl0Ah3gstWIkcHsR04QTxCqf2771N0ANHrFBiWPPmrd q82A==
X-Gm-Message-State: AHYfb5jFWC71IiW4V41Mbg4jHd2SRPt1PMqld1U4XUiTTtnjYzg1ZVVh Hmmp7yW5e/y4CAhK08WkhU+N/K7R4w==
X-Received: by 10.176.79.130 with SMTP id m2mr569255uah.152.1502868736428; Wed, 16 Aug 2017 00:32:16 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Wed, 16 Aug 2017 00:32:15 -0700
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
In-Reply-To: <CAGD1bZbUu63JH7EvJWHdOFuNG+qivkvx_dMv=H4Vjnu1rz5tUQ@mail.gmail.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> <CAGD1bZbUu63JH7EvJWHdOFuNG+qivkvx_dMv=H4Vjnu1rz5tUQ@mail.gmail.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Wed, 16 Aug 2017 00:32:15 -0700
Message-ID: <CAN1APdfDOCahTpyzTOn7m5pL41LubUMVe_Di5oGQ0rg-TbszPQ@mail.gmail.com>
Subject: Re: Splitting transport and application error code spaces
To: Jana Iyengar <jri@google.com>, Mike Bishop <michael.bishop@microsoft.com>
Cc: Martin Thomson <martin.thomson@gmail.com>, QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="f403043ec64c2dd0f00556d9e591"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/tKGddR997BpiDMGn6yJF-mfVPwk>
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, 16 Aug 2017 07:32:19 -0000

If STOP_SENDING is moved a basic application will no longer have a language
to communicate intent.
This is perhaps a broader issue - but the question is: what are the minimum
primitives a basic application with no advanced higher level protocol needs
in order to move data on multiple streams? It relates to adding bidi
streams on top of uni streams.

I’m not sure if STOP_SENDING is important in this context, or not, but I
believe it is a worthwhile question.

Kind Regards,
Mikkel Fahnøe Jørgensen


On 16 August 2017 at 01.57.11, Jana Iyengar (jri@google.com) wrote:

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