Re: [quicwg/base-drafts] Priority in QUIC Transport (#104)
ianswett <notifications@github.com> Fri, 06 January 2017 20:31 UTC
Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7334E129404 for <quic-issues@ietfa.amsl.com>; Fri, 6 Jan 2017 12:31:39 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.101
X-Spam-Level:
X-Spam-Status: No, score=-5.101 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, RCVD_IN_MSPIKE_H2=-0.001, RP_MATCHES_RCVD=-3.1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 hoKu6MlAeISo for <quic-issues@ietfa.amsl.com>; Fri, 6 Jan 2017 12:31:37 -0800 (PST)
Received: from o8.sgmail.github.com (o8.sgmail.github.com [167.89.101.199]) (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 0DBB9129CFB for <quic-issues@ietf.org>; Fri, 6 Jan 2017 12:31:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=github.com; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=fkIy4I6AM+QrV5tYvnqXMB/Qvl8=; b=UWf1XbQb+74xa8bB SvaQxxYKYuLQPvv5k77KjzwlojM8JYVQeyYydW3lajvEez8ghJ8+PaiXIXz4HyDq HTVDnkO37bZM+3/JIRdZom55jGuFVdlWmpaaFLmdUYKF5Rmr8sl2ZD6GY+rBB27c lGlvVyfI+K4dyj4g8bKy7aNmgLM=
Received: by filter1084p1mdw1.sendgrid.net with SMTP id filter1084p1mdw1-5345-586FFEA3-4D 2017-01-06 20:31:31.594329085 +0000 UTC
Received: from github-smtp2a-ext-cp1-prd.iad.github.net (github-smtp2a-ext-cp1-prd.iad.github.net [192.30.253.16]) by ismtpd0005p1iad1.sendgrid.net (SG) with ESMTP id _O-VfPVrSD2GPtZVU6pmbQ for <quic-issues@ietf.org>; Fri, 06 Jan 2017 20:31:31.668 +0000 (UTC)
Date: Fri, 06 Jan 2017 12:31:31 -0800
From: ianswett <notifications@github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/104/270998565@github.com>
In-Reply-To: <quicwg/base-drafts/issues/104@github.com>
References: <quicwg/base-drafts/issues/104@github.com>
Subject: Re: [quicwg/base-drafts] Priority in QUIC Transport (#104)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_586ffea37b6e9_7af23fdcfb45f138156287"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: ianswett
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak03NkxazUkPe6XNYzDprobJl+jdAkmE8lv+ua 8AkS655CgB8/SVzxE6Dho7NdHWo4N4jfLosNy+dKCkFK6ORbEoW5fz+NzzqGjSOaLtxyNtR4DixUdM D9mLUVk95VfqJtncpV2X6Pu8ZIz+0OoY5bed7QSsJj+L8Ly3yWBEKVc9zJoIbIF3peFOGtJq41T6pi Q=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/cVerwlNnuvp2Z-Y6Zkamw7_MnQk>
Cc: Subscribed <subscribed@noreply.github.com>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.17
Reply-To: quic@ietf.org
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Jan 2017 20:31:39 -0000
My main concern about putting prioritization into QUIC is that I don't know what prioritization API would be sufficiently robust for non-HTTP/2 applications as well. Possibly we could define some pluggable "prioritization API"? I want is per-stream send buffers, which allows both optimal prioritization and a reasonable amount of buffering. These per-stream send buffers replace the TCP send buffers for most part. The number of UDP packets encrypted and written to the socket at once would be determined by congestion control and pacing. Data is retransmitted from these stream buffers, which allows a stream to be re-prioritized and the retransmissions to follow the new priority, instead of the original priority. This also makes cancellations simpler, because there's nothing to retransmit from the cancelled stream. But this could be done with the priorities inside the transport layer or in the application layer, it's more a matter of what interface we're designing. I agree about embracing the monolith. To make the above implementation approach work well, a tight coupling makes a lot of sense. Some pitfalls to be aware we've run into: 1) Retransmissions in multipath may have smaller MTU, so having a stream level send buffer is better than just a series of stream frames. 2) FEC would likely not use retransmission at all. 3) A zero-copy friendly interface is a good thing. 4) There are cases when new data is more important than retransmissions, or one retransmission is more important than another. Given this seems like it will become clearer after a few more people implement it, does it make sense to punt this conversation to the future a bit? On Fri, Jan 6, 2017 at 11:18 AM, janaiyengar <notifications@github.com> wrote: > I'll take back some of what I said earlier. Since an application's > interaction with QUIC uses a stream abstraction, as long as QUIC > implementations do a late-binding to the data in the streams, an API that > indicates stream priorities ought to be adequate. Data can be buffered in > incoming stream buffers from the application to the transport, but we > should avoid buffers deeper within the transport (which is natural, I > think.) To be clear, I'm not including buffers for reliability in this > conversation; those don't interact with priorities much. > > On the TCP small buffer point, I think it's difficult to expect high > performance if an application simply wants to shoot and forget into a > non-prioritized buffer... perhaps your point is that it's still better for > TCP (in an alternate Minion world) to provide a priority queue rather than > a FIFO queue since that's an easier abstraction for apps to write to. If > so, point taken. In this respect, the buffers between the application and > QUIC can be seen as a priority queue, and this queue itself could be seen > as an API element between the application and QUIC. > > — > You are receiving this because you are subscribed to this thread. > Reply to this email directly, view it on GitHub > <https://github.com/quicwg/base-drafts/issues/104#issuecomment-270982068>, > or mute the thread > <https://github.com/notifications/unsubscribe-auth/ATJJcWRDEOYgiqcHAMdOQmOzh0sSaKXBks5rPpOVgaJpZM4LWi4b> > . > -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/quicwg/base-drafts/issues/104#issuecomment-270998565
- [quicwg/base-drafts] Priority in QUIC Transport (… Mike Bishop
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… Martin Thomson
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… Patrick McManus
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… janaiyengar
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… Patrick McManus
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… janaiyengar
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… Patrick McManus
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… ianswett
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… Mark Nottingham
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… Victor Vasiliev
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… Mark Nottingham
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… Martin Thomson
- Re: [quicwg/base-drafts] Priority in QUIC Transpo… Martin Thomson