Re: Splitting transport and application error code spaces

Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch> Thu, 17 August 2017 10:07 UTC

Return-Path: <mirja.kuehlewind@tik.ee.ethz.ch>
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 34D71131D27 for <quic@ietfa.amsl.com>; Thu, 17 Aug 2017 03:07:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, 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 yplgM1UPjTsr for <quic@ietfa.amsl.com>; Thu, 17 Aug 2017 03:07:11 -0700 (PDT)
Received: from virgo02.ee.ethz.ch (virgo02.ee.ethz.ch [129.132.72.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 393DE13239C for <quic@ietf.org>; Thu, 17 Aug 2017 03:07:10 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by virgo02.ee.ethz.ch (Postfix) with ESMTP id 3xY2253ywlz15Mh8; Thu, 17 Aug 2017 12:07:09 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at virgo02.ee.ethz.ch
Received: from virgo02.ee.ethz.ch ([127.0.0.1]) by localhost (virgo02.ee.ethz.ch [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TdZOWmsJc44I; Thu, 17 Aug 2017 12:07:08 +0200 (CEST)
X-MtScore: NO score=0
Received: from [192.168.178.33] (pD9E11B0F.dip0.t-ipconnect.de [217.225.27.15]) by virgo02.ee.ethz.ch (Postfix) with ESMTPSA; Thu, 17 Aug 2017 12:07:08 +0200 (CEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\))
Subject: Re: Splitting transport and application error code spaces
From: Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>
In-Reply-To: <CAN1APdfDOCahTpyzTOn7m5pL41LubUMVe_Di5oGQ0rg-TbszPQ@mail.gmail.com>
Date: Thu, 17 Aug 2017 12:07:07 +0200
Cc: Jana Iyengar <jri@google.com>, Mike Bishop <michael.bishop@microsoft.com>, QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <FD5ADF32-B2A8-4573-B82C-FC2F9E7766CB@tik.ee.ethz.ch>
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> <CAN1APdfDOCahTpyzTOn7m5pL41LubUMVe_Di5oGQ0rg-TbszPQ@mail.gmail.com>
To: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
X-Mailer: Apple Mail (2.3273)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/1Co44ahXXyCoJuJGsL70ZtQPstc>
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: Thu, 17 Aug 2017 10:07:15 -0000

That’s what the applicability draft should capture. If you have concrete things that need to be mentioned somewhere, you can file an issue there. However, as the base specs are still changing quite a bit, it’s a bit hard for me to track all things now…


> Am 16.08.2017 um 09:32 schrieb Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>:
> 
> 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.