Re: Unidirectional streams PR
Wenbo Zhu <wenboz@google.com> Thu, 22 June 2017 21:59 UTC
Return-Path: <wenboz@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 76B3F12949D for <quic@ietfa.amsl.com>; Thu, 22 Jun 2017 14:59:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 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_NONE=-0.0001, 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 sQKNnhcxSWqX for <quic@ietfa.amsl.com>; Thu, 22 Jun 2017 14:59:21 -0700 (PDT)
Received: from mail-wr0-x230.google.com (mail-wr0-x230.google.com [IPv6:2a00:1450:400c:c0c::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 5B3E2129470 for <quic@ietf.org>; Thu, 22 Jun 2017 14:59:21 -0700 (PDT)
Received: by mail-wr0-x230.google.com with SMTP id 77so41305213wrb.1 for <quic@ietf.org>; Thu, 22 Jun 2017 14:59:21 -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=6ZU86DhaoufGTL2rre9llAcw1i+88CbYuzsV/eokgKA=; b=Vi4qUsWGvsPQULLschS97BYnAvHpug8kCHoZuetCHAg44JohawnVakrybFIr7p+MU0 C9dx7kSumEAmLgscvuAfwNFOG6jaLhGJvo/bcnXq9A/iI52PlFrOFcfegvWPzg0ZEBI9 /oLTV8Hw7s9f4F5fqZ62ZP/tuRO+KeNQVjpDGMGkyD23yCyvBUM5p91k3gtk4lMXueeU bYWRJSAhuilgFbRIWK8RUarZ+PSKXq8b+2JQ7rAxryY63YO6DDhfCUELlJ69eryhIOCM Y8gxwC+5ikewjkfCqciR/QPekjOFrWYi3ePpwuOtNymTUa+nOxaGKxUNVEspKk6mzqSg 5cag==
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=6ZU86DhaoufGTL2rre9llAcw1i+88CbYuzsV/eokgKA=; b=G9wmnxnfSgqiDHcRGxkOi/bBExLaqW3pjy3BR+VAtdIS57MY6fv+st7SFYrlTov3My f2KCS3HcsgKxDQnflSrgmVPX9i6nZ2NYEaF7oH4PAYTRWvN0cyNlUxpHFQZicN39brq3 678tPcRFtVmSQeRKdh78TaBrgv6aRsS7bpKmnni2fTxXeOgzbawdvEqY4zJaDOjEIxTC ENMhyE7cjb+VcwMJRniSfMZFLmnzpaiJ7pCC6o+FWMFQErp+8mcIKauvrmgOxvbbLDwp OuXDRS61zDXYwbczzet9rTOkH0oz39nhkjiFhjVqlOv01ztdvN75UeiTVteSNRbBCn23 q7bg==
X-Gm-Message-State: AKS2vOyJUWulE/3kwWj0C83pUiu3/bLbdX8FZZ2yg+XYQfZGD1+ceJsW XCgugsy6LtUsWfbJRfzXlvTH/wdqFWtu
X-Received: by 10.223.171.146 with SMTP id s18mr3422774wrc.38.1498168759489; Thu, 22 Jun 2017 14:59:19 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.28.94.206 with HTTP; Thu, 22 Jun 2017 14:59:18 -0700 (PDT)
In-Reply-To: <CAKcm_gMdVDfAPyvHWmzsS+Oc_+uQz55LE-pv60+Vt3FZcQpaLA@mail.gmail.com>
References: <CABkgnnW+veDVq27v+wTz0cA=eGPRTLQ1A90A0ynHLPU88Pg77Q@mail.gmail.com> <CAOdDvNpORYBr7+Q8M_nnGOm4MsWqVbm6koOtQ+=An8t7AbccGg@mail.gmail.com> <CAGD1bZb9Na32z=Gg9JS+FzrGGN9Jhw=QDTMTYS=FVcNesoSMig@mail.gmail.com> <CABkgnnV2yPP-qgLKZYPsvawXc7FP4RM7CZDDa7aFaNy0KxLfag@mail.gmail.com> <CAGD1bZaKw73=Futb-Tk88eL-uD2Ehd0yVw2MbpGM3N2QLB-n0Q@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A37724110@bgb01xud1012> <CAE=ybzPNtO+dsLZDMSRSG1xT0NBFPZE+RBOOmsjRu+u0pBymsA@mail.gmail.com> <CAKcm_gMdVDfAPyvHWmzsS+Oc_+uQz55LE-pv60+Vt3FZcQpaLA@mail.gmail.com>
From: Wenbo Zhu <wenboz@google.com>
Date: Thu, 22 Jun 2017 14:59:18 -0700
Message-ID: <CAD3-0rMi4ZFashaf+4KpVh6ni97Qxg+Y9csEC8vPa8BZ1RFa0g@mail.gmail.com>
Subject: Re: Unidirectional streams PR
To: Ian Swett <ianswett@google.com>
Cc: Jo Kulik <jokulik@google.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, Jana Iyengar <jri@google.com>, QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>, Patrick McManus <pmcmanus@mozilla.com>
Content-Type: multipart/alternative; boundary="001a113c2ba4b9a76905529398b8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/YMDZVxzJwDyaMzHZ-IiM46Yh6JY>
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, 22 Jun 2017 21:59:24 -0000
My personal opinions. 1) is much harder to add later. QUIC will definitely be used by non-RPC protocols. It would be useful to see a concrete example on how to map something like HTTP request/response to QUIC uni-streams. Could Mike publish two reference versions, before/after the PR is Incorporated to the HTTP mapping spec? Most L7 (application) protocols will keep using HTTP/* as the transport. Other L7 protocols will have their own state machines on top of the QUIC streams to manage the client-server conversation, inc. flow-control. The less state the QUIC layer maintains, the better IMO unless other transport-level features may benefit from the bidi model. I don't have any specific feature in mind. On Thu, Jun 22, 2017 at 9:16 AM, Ian Swett <ianswett@google.com> wrote: > This proposal does two things, which I don't believe need to be conflated: > 1) Adds support for unidirectional streams > 2) Removes support for bidirectional streams > > I want better support in QUIC for unidirectional streams, for the reasons > laid out above and quite a few others(ie: RTP). I believe this was the > original motivation behind this proposal, but after thinking about it a lot > and looking at the PR, I think removing support for bidirectional streams > is a huge error, because it just moves work from the transport layer to > each application layer. I agree with Ted, that we should support both, and > I believe there are simple ways to support both, so I'll send out a PR that > proposes one later today. > > If it's easy in QUIC to open a stream in either bidirectional or > unidirectional mode, then it should be easy and efficient to map virtually > every existing application written for TCP or UDP onto QUIC. The extra > text in the RFC and extra code to support bidirectional streams vs > unidirectional is quite small. > > As evidence that this doesn't result in a net simplification, even if we > only care about HTTP over QUIC, the PR adds 212 lines of text. I'm sure > that could be minimized some, but I think it's going to be very difficult > to end up with a pure unidirectional design that's simpler than one which > supports both unidirectional and bidirectional streams. > > On Thu, Jun 22, 2017 at 10:32 AM, Jo Kulik <jokulik@google.com> wrote: > >> This sounds somewhat like a library/framework developer’s dilemma. How >>> much “hand holding” should the transport do for the applications atop (the >>> number of which is unbounded?). Sometimes providing too much >>> “implementation” works counter to the specific neefd of the application. >>> Therefore, would it suffice to describe the design pattern in the >>> transport, perhaps in terms of considerations that an application mapping >>> should make? >> >> >> I think this is an interesting idea. >> >> I'm personally in favor of the unidirectional streams proposal. >> (Emphasis on personally, this is not some institutional opinion). But >> this is because I have previous experience with non-request-response >> protocols, and I think they fit awkwardly over a conventional >> request-response-modelled transport. If there's a chance that some very >> simple changes could make QUIC more viable for those protocols, then I >> think it's worth at least discussing. >> >> I feel cautious about the, "Our current goal is HTTP, design for the >> common case" argument. HTTP is the first goal. But it's not the only >> goal, is it? >> >> To Jana's point about not designing a hammer with no specific nail to >> speak of, gosh it would be helpful if we had, ideally more than one, >> non-HTTP protocol in mind that we could discuss concretely. I know that >> Martin mentioned a few on his interim group slides. But I have no idea >> whether there were any stakeholders who are planning to invest in those >> protocols. It would be helpful, when examining the costs/benefit to say, >> "This is how this protocol fits over the current model, and this is how >> this protocol would fit over the unidirectional model." >> >> Right now, the only concrete protocols that we're discussing are H2 and >> maybe DNS, is that connect? >> >> On Thu, Jun 22, 2017 at 6:58 AM, Lucas Pardue <Lucas.Pardue@bbc.co.uk> >> wrote: >> >>> We are interested in unidirectional streams and like the concept, I have >>> reviewed the PR and made some editorial or nit comments. >>> >>> >>> >>> This is a really interesting discussion, which I don’t have much to add >>> to at the moment. To add a spectators opinion >>> >>> >>> >>> On Wed, Jun 21, 2017 Jana Iyengar wrote: >>> >>> >>> >>> > Creating a new identifier in every application to correlate >>> request/response pairs adds complexity when you start adding applications. >>> Every app has to now explicitly design and implement this incredibly common >>> design pattern. Building common design patterns into the transport _is_ the >>> role of the transport. Otherwise, we could be building HTTP directly over >>> UDP, with no QUIC in the middle. The correlator is a feature, and one that >>> is required even in your design (although you have it in HTTP). I don't see >>> how it introduces HoL blocking, but I don't want to rathole on a minor >>> point. >>> >>> >>> >>> This sounds somewhat like a library/framework developer’s dilemma. How >>> much “hand holding” should the transport do for the applications atop (the >>> number of which is unbounded?). Sometimes providing too much >>> “implementation” works counter to the specific neefd of the application. >>> Therefore, would it suffice to describe the design pattern in the >>> transport, perhaps in terms of considerations that an application mapping >>> should make? >>> >>> >>> >>> Regards >>> >>> Lucas >>> >> >> >
- Unidirectional streams PR Martin Thomson
- Re: Unidirectional streams PR Patrick McManus
- Re: Unidirectional streams PR Jana Iyengar
- Re: Unidirectional streams PR Martin Thomson
- Re: Unidirectional streams PR Jana Iyengar
- Re: Unidirectional streams PR Mark Nottingham
- Re: Unidirectional streams PR Martin Thomson
- Re: Unidirectional streams PR Jana Iyengar
- RE: Unidirectional streams PR Mike Bishop
- RE: Unidirectional streams PR Lucas Pardue
- Re: Unidirectional streams PR Jo Kulik
- Re: Unidirectional streams PR Ian Swett
- Re: Unidirectional streams PR Eric Rescorla
- Re: Unidirectional streams PR Ted Hardie
- Re: Unidirectional streams PR Wenbo Zhu
- Re: Unidirectional streams PR Martin Thomson
- Re: Unidirectional streams PR Ted Hardie
- RE: Unidirectional streams PR Mike Bishop
- Re: Unidirectional streams PR Jana Iyengar
- Re: Unidirectional streams PR Jana Iyengar
- Re: Unidirectional streams PR Ryan Hamilton
- Re: Unidirectional streams PR Martin Thomson
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Jana Iyengar
- Re: Unidirectional streams PR Ian Swett
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Ian Swett
- RE: Unidirectional streams PR Lubashev, Igor
- RE: Unidirectional streams PR Mike Bishop
- Re: Unidirectional streams PR Ryan Hamilton
- Re: Unidirectional streams PR Christian Huitema
- RE: Unidirectional streams PR Lubashev, Igor
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Martin Thomson
- Re: Unidirectional streams PR Philipp S. Tiesel
- Re: Unidirectional streams PR Ian Swett
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Ian Swett
- RE: Unidirectional streams PR Mike Bishop
- Re: Unidirectional streams PR Mikkel Fahnøe Jørgensen
- Re: Unidirectional streams PR Christian Huitema
- Re: Unidirectional streams PR Ranjeeth Kumar Dasineni
- Re: Unidirectional streams PR Dmitri Tikhonov
- Re: Unidirectional streams PR Mikkel Fahnøe Jørgensen
- Re: Unidirectional streams PR Jo Kulik
- RE: Unidirectional streams PR Swindells, Thomas (Nokia - GB/Cambridge, UK)
- RE: Unidirectional streams PR Mike Bishop
- Re: Unidirectional streams PR Martin Thomson
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Ian Swett
- Re: Unidirectional streams PR Christian Huitema
- RE: Unidirectional streams PR Mike Bishop
- Re: Unidirectional streams PR Christian Huitema
- Re: Unidirectional streams PR Mikkel Fahnøe Jørgensen
- Re: Unidirectional streams PR Subodh Iyengar
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Subodh Iyengar
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Kazuho Oku
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Subodh Iyengar
- Re: Unidirectional streams PR Kazuho Oku
- Re: Unidirectional streams PR Martin Thomson
- Re: Unidirectional streams PR Kazuho Oku
- Re: Unidirectional streams PR Jana Iyengar
- Re: Unidirectional streams PR Martin Thomson
- Re: Unidirectional streams PR Kazuho Oku
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Martin Thomson
- Re: Unidirectional streams PR Kazuho Oku
- Re: Unidirectional streams PR Martin Duke
- Re: Unidirectional streams PR Jana Iyengar
- Re: Unidirectional streams PR Martin Duke
- Re: Unidirectional streams PR Jana Iyengar
- RE: Unidirectional streams PR Lubashev, Igor
- RE: Unidirectional streams PR Mikkel Fahnøe Jørgensen
- RE: Unidirectional streams PR Lubashev, Igor
- Re: Unidirectional streams PR Charles 'Buck' Krasic
- Re: Unidirectional streams PR Charles 'Buck' Krasic