Re: Unidirectional streams PR

Kazuho Oku <kazuhooku@gmail.com> Fri, 07 July 2017 05:05 UTC

Return-Path: <kazuhooku@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 D769F12EC4D for <quic@ietfa.amsl.com>; Thu, 6 Jul 2017 22:05:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 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, RCVD_IN_DNSWL_NONE=-0.0001, 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=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 WZ6wkhKDBUux for <quic@ietfa.amsl.com>; Thu, 6 Jul 2017 22:05:03 -0700 (PDT)
Received: from mail-pf0-x233.google.com (mail-pf0-x233.google.com [IPv6:2607:f8b0:400e:c00::233]) (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 26D02129AF6 for <quic@ietf.org>; Thu, 6 Jul 2017 22:05:03 -0700 (PDT)
Received: by mail-pf0-x233.google.com with SMTP id e7so11447364pfk.0 for <quic@ietf.org>; Thu, 06 Jul 2017 22:05:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=thquKinraqaxiullo4UFfBWeW8ZQV0ZhSJTZp/wK454=; b=RReRGTtXxvtuwVm9ps8TNKBQhV4/xSdTmqCDvLNu64kCc/uNQzvJqG1RPmUUcwS29T 4z+dJq4GA9ztitvkVinvRdL1KUusDywzlEg0x2+ytuOJUIhSK81LTCG5fS7HS4AM4zFV mW5qLVajVMYJkFs4RCX/ayWfe7A5EucUJv2EVnkZNTaNzwCNiGQnh9YKr8G36wjIfLvk KFO+6E8jto5ldtSSknkbIR2358sgsN6ElHFg6CxTM991Jwj34tv8P1hYF+cRpLZJjGsH j5tYBr15lt+ZhX+CybkLTdL2/xrU67VDp5kBlvu4u5/wGO/s4TJOGQKcwHFMYGj1zNYT NQew==
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=thquKinraqaxiullo4UFfBWeW8ZQV0ZhSJTZp/wK454=; b=OmxFcIRNfHdN//RMcufcKFh86BCSQhXQVKIJLIxs2I24A+RSuOXmyUsc9MuyU/WKvz o8mN7RKNO5aTeOaGkCkRbUeMpT+K+EDi1dxXOt3gPyfaDyF1IuPf+t46rxbsJh5yhUK5 SvSHwtUpW1XhDBJVbEBhKtTyd9ZfkfYl3mXZPDk3VFtq2PjEGtYQe+35CTVBWd89E3ER PDUR7akRyYUl1dDz9v/tWOM5OHFqevOXQnJ6o/+FVN1yONURKwhGVPfJ6WRjTb+q4jKy tFi/SpAXFpXlaB0dx5BMwtrZUSTdxDzoHSedYPwP3u46Vwzy6FCDY1AbldFSqzACLno/ ENwQ==
X-Gm-Message-State: AIVw1110rqKKzAYOEUSDtHmTJbH0CpkxlITpsq7aA3cQIh+Ceyp9WeyU ej6Tv72HI+5OQMAl2u9qnnQmBdjdzw==
X-Received: by 10.98.38.129 with SMTP id m123mr29262988pfm.183.1499403902636; Thu, 06 Jul 2017 22:05:02 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.100.130.3 with HTTP; Thu, 6 Jul 2017 22:05:01 -0700 (PDT)
In-Reply-To: <CABkgnnX2fCyNziO0dRy_ka3gbuV=4L+TuK25svoF=i6iwy8-RA@mail.gmail.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com> <CANatvzzN6sQ2Pqb4jkQyZAY-KUYDb_J2sbW=K0zrQ0LCTJ2NVw@mail.gmail.com> <CABkgnnV9JzZG6HY_y_pxSRSUwX3ocxv7L0UCaiuaJs1sMfPWcg@mail.gmail.com> <CANatvzw6VGMH8tJbhCxmgTR8_uuxtodiwS2-LT6XkyuBHJz+Fg@mail.gmail.com> <CABkgnnUUd4B4HLzAb1OVVtG3KdNuyH3Cz+4GuyX-AqH5c26L6w@mail.gmail.com> <CANatvzzxWze+tDf6TUHRpw7z4Mi9cCZX5OUWydMi+fXRx=Zcmw@mail.gmail.com> <CABkgnnX2fCyNziO0dRy_ka3gbuV=4L+TuK25svoF=i6iwy8-RA@mail.gmail.com>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Fri, 07 Jul 2017 14:05:01 +0900
Message-ID: <CANatvzwHstNdbqaeOz8qK2ZATDPK8QFpXLzWcTGhFXFS9k_TKA@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Martin Thomson <martin.thomson@gmail.com>, "Lubashev, Igor" <ilubashe@akamai.com>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/D-24EcBk2ldWPb7qXQiMEo6HhbQ>
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: Fri, 07 Jul 2017 05:05:05 -0000

2017-07-07 12:33 GMT+09:00 Martin Thomson <martin.thomson@gmail.com>:
> On 7 July 2017 at 12:21, Kazuho Oku <kazuhooku@gmail.com> wrote:
>> Considering the complexity of guessing when the server runs out of
>> stream IDs, it might be easier if we could use a server-sent
>> CANCEL_REQUEST frame as an indication that the client needs to resend
>> the request on a new connection.
>
> If we ever get to the point where we have a good graceful shutdown,
> then that should mostly cover this.  CANCEL_REQUEST is likely still
> useful here to cover reordering.
>
> Here's my thinking on this: the server sends a GOAWAY identifying the
> highest numbered request that it has accepted (requests, not pushes).
> Anything higher than this will not be processed.  The connection goes
> away when responses to all those requests have been delivered,
> including all the promises that attach to those.
>
> The only trick here is that the server might be able to answer a
> request on stream X, but find that it can't answer X-1, which could
> arrive out of order.  So, yeah, CANCEL_REQUEST is a good fit for that.
> RST_STREAM isn't useful here because the stream can be closed when the
> server makes this discovery.
>
> Either way, having the server being able to cancel requests is good
> practice, because it might not be in a position to use RST_STREAM.

Thank you for the answer. I agree with your observations.

In https://mailarchive.ietf.org/arch/msg/quic/9VqjoX4acCDrxMKV2AmOQjspe3Q
Igor has suggested using DISINTEREST frame for cancelling requests
from the client-side. In the end, it might make sense for the
uni-directional-stream-only approach to have a frame that can be sent
in any direction for cancelling a request.

-- 
Kazuho Oku