Re: QUIC API (was: Re: Small size of core QUIC library to replace TCP for embedded system)
Robin MARX <robin.marx@uhasselt.be> Fri, 07 August 2020 08:17 UTC
Return-Path: <robin.marx@uhasselt.be>
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 967093A0D1C for <quic@ietfa.amsl.com>; Fri, 7 Aug 2020 01:17:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=uhasselt.be
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 YplaYl8kwy6e for <quic@ietfa.amsl.com>; Fri, 7 Aug 2020 01:17:46 -0700 (PDT)
Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) (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 76F8B3A0D18 for <quic@ietf.org>; Fri, 7 Aug 2020 01:17:46 -0700 (PDT)
Received: by mail-wr1-x441.google.com with SMTP id c15so829995wrs.11 for <quic@ietf.org>; Fri, 07 Aug 2020 01:17:46 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uhasselt.be; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3ZM1P+4CNBAF+sNvj0kURcuA+0LTHwZoxqjR2QMQdN8=; b=sjNkD8OcjGwdFyH1VknEhKZvIW4rWpFoFG+xT2+/vThBzw2g6H41wu0J8ar4tFCXlx +BNNnTqmWlal25Mp8C8Bn23qQd1NXGtXKySIMR4Du5n4di8ZL9CL6p88a0b/CHxoQ6VP A6k+gl6o2yiLtJRag+3UVKJOCCtnjJEqmp1zE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3ZM1P+4CNBAF+sNvj0kURcuA+0LTHwZoxqjR2QMQdN8=; b=mDpreuPyaRgTg3WraGhWABeIrx+leHbHpAqcS6W4Swk5gt3xPY5DnCsM1rWcvbxCBc 3HOnucPnjdUB/Tipj40O1Iv8CoYVsHXks7yQjt6BL9DUTP2fBfRip55eFuTFUy0lQ4PL I8fCEWH32q+ajXCRDYcy4Ve4nzfpUQhYUfRXQZKkG87IKr4ZTNGxRi79Oa8yOWB1RVyK k3OE3xpL08lHyv2XGhiKvEwbnVcMAr/9IeXUW3cdodrpL4EBocyxNmvSpS98Hpdyladq 0T42Uirr1ENrDD9aMuMnyygmZ04YYiH4Pw1KBM6FtyPfdgn8PDFPen+BBnv0nRhll6Mt Z5NQ==
X-Gm-Message-State: AOAM533zVo82xunU5jJI046SXFRyoU9DA+Qvr+LyCzgVkoCN3TtkN4BJ GArQzBr0w0+rwE7Jm8L8NLOnJzPYGMQkTh1clp22FQ==
X-Google-Smtp-Source: ABdhPJyziw/SVXPkWevY84SraWQrEzfh6hw+BxqsLo09dScIrMiKDomqLOBFGrpkPtld5Zbp1oWrqjNTwHY1H129yoU=
X-Received: by 2002:a5d:540c:: with SMTP id g12mr10728571wrv.120.1596788264733; Fri, 07 Aug 2020 01:17:44 -0700 (PDT)
MIME-Version: 1.0
References: <CAA=hcWS0V8ipsoAEFK3ejdA++Vzi+czth37=ntP4mnt8d=mtRg@mail.gmail.com> <F384B33C-70F8-45EF-AB5C-30D0A145659A@eggert.org> <CAA=hcWQ60GH2TnjvqBEGvVQ1whxNYwEWjQ+b9FW948GKvN570Q@mail.gmail.com> <2499749.AO4zfZtjs8@linux-9daj> <3D493D2B-BC8D-4CE9-B189-48770C3FA06F@eggert.org> <CAM4esxR+s-SCVOWb_-3TciVRk8Sp5NVWtjggqXM_XD2r3jup=Q@mail.gmail.com> <CALGR9oYDtdRyGAQ50OMFH2CTo=PR0ZwButK2DC26JkUhoifj1g@mail.gmail.com> <CAM4esxSkzijT8PMW7m2SY1j5c_AW=8L9tuq17RXWy+mmp4a0SA@mail.gmail.com> <CALGR9oacxe3EvYjeR_5yLpCga6EWcK_MLgvW_QCwidoH4Fjrzw@mail.gmail.com> <CAPDSy+4XZRFb6t_-caiH52TuaFib2dK8Ur8r3f8PhJGqL62JSg@mail.gmail.com> <fb0490e8-f275-13a7-2f08-0b5b179ceb68@huitema.net>
In-Reply-To: <fb0490e8-f275-13a7-2f08-0b5b179ceb68@huitema.net>
From: Robin MARX <robin.marx@uhasselt.be>
Date: Fri, 07 Aug 2020 10:17:33 +0200
Message-ID: <CAC7UV9bFS8-xc6WphNRc4yc=01YehX4vVfcPq6HxbzPw3=QaZA@mail.gmail.com>
Subject: Re: QUIC API (was: Re: Small size of core QUIC library to replace TCP for embedded system)
To: Christian Huitema <huitema@huitema.net>
Cc: David Schinazi <dschinazi.ietf@gmail.com>, Lucas Pardue <lucaspardue.24.7@gmail.com>, Lars Eggert <lars@eggert.org>, quic <quic@ietf.org>, Paul Vixie <paul@redbarn.org>, Martin Duke <martin.h.duke@gmail.com>
Content-Type: multipart/alternative; boundary="0000000000004d2aed05ac453d2c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/_BT5Rzb2hNG615TdzUjzme3kLBE>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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 Aug 2020 08:17:49 -0000
Personally, I would agree that creating a general purpose API just for QUIC would be difficult. I'm mainly thinking about what the interface for steering stream multiplexing/prioritization would look like, seeing as the specs are very light on details for these. Speccing something out for HTTP/3 should be do-able (and is being contemplated by some, e.g., https://github.com/hyperium/h3/pull/1), though potentially not as useful. I would echo Lucas' reference in thinking that abstracting from QUIC to a more high-level view of transport features with something like TAPS is more logical in the long run. Rather than putting all eggs in one basket, it would be good to get at least this one egg into that particular basket imo. Like Lucas and David, I'm also not sure how common/realistic of a use case the "I want to switch ad-hoc between QUIC implementations" argument will be. To me, a common API would be mostly interesting in writing re-usable high-level coding tutorials and teaching materials to help new devs use the protocol more quickly. >From that perspective, you can make an even stronger argument for TAPS imo. With best regards, Robin On Fri, 7 Aug 2020 at 08:39, Christian Huitema <huitema@huitema.net> wrote: > > On 8/6/2020 5:58 PM, David Schinazi wrote: > > In theory, it could mean that one could write an application > > in such a way that it could swap QUIC implementations. > > I don't see that happening in practice. The application > > developer would have to periodically test against these > > implementations for them to work reliably, so the idea > > of a drop-in replacement sounds unreal to me. > > Yes. We had an example of that when testers wanted to plug their tools > to different QUIC stacks. Not impossible, but there was a lot of glue > required. > > > > > Additionally, in 2020, networking APIs are asynchronous. > > That means that a QUIC API would need to be tied to > > a specific asynchronous IO model, and those are tied > > to programming language and library choices. So any > > API would only work for applications that pick the same > > language and standard libraries. > > > People today are experimenting with a variety of application--stack > interactions. I think that's a good thing at this point. Take the > example of out-of-order delivery: really cool potential, but we have > very little experience. It might require tight integration with the > application, dealing with the intricacies of video codecs. I think that > in the next year or two we will gain some experience and maybe see a > small number of API models emerge. But attempting standardization before > that seems very premature. > > -- Christian Huitema > > > -- Robin Marx PhD researcher - web performance Expertise centre for Digital Media T +32(0)11 26 84 79 - GSM +32(0)497 72 86 94 www.uhasselt.be Universiteit Hasselt - Campus Diepenbeek Agoralaan Gebouw D - B-3590 Diepenbeek Kantoor EDM-2.05
- Small size of core QUIC library to replace TCP fo… Jupiter
- RE: Small size of core QUIC library to replace TC… Nick Banks
- Re: Small size of core QUIC library to replace TC… Jana Iyengar
- Re: Small size of core QUIC library to replace TC… Lars Eggert
- Re: Small size of core QUIC library to replace TC… Jupiter
- Re: Small size of core QUIC library to replace TC… Lars Eggert
- Re: Small size of core QUIC library to replace TC… Jupiter
- Re: Small size of core QUIC library to replace TC… Paul Vixie
- Re: Small size of core QUIC library to replace TC… Lars Eggert
- QUIC API (was: Re: Small size of core QUIC librar… Lars Eggert
- Re: QUIC API (was: Re: Small size of core QUIC li… Martin Duke
- Re: QUIC API Paul Vixie
- RE: QUIC API Nick Banks
- Re: QUIC API (was: Re: Small size of core QUIC li… Lucas Pardue
- Re: QUIC API (was: Re: Small size of core QUIC li… Martin Duke
- Re: QUIC API (was: Re: Small size of core QUIC li… Lucas Pardue
- Re: QUIC API (was: Re: Small size of core QUIC li… David Schinazi
- Re: QUIC API (was: Re: Small size of core QUIC li… Christian Huitema
- Re: QUIC API (was: Re: Small size of core QUIC li… Robin MARX
- Re: QUIC API (was: Re: Small size of core QUIC li… Michael Welzl
- Re: QUIC API (was: Re: Small size of core QUIC li… Kazuho Oku
- Re: QUIC API (was: Re: Small size of core QUIC li… Michael Tuexen
- Re: QUIC API (was: Re: Small size of core QUIC li… Lucas Pardue
- Re: QUIC API (was: Re: Small size of core QUIC li… Bajpai, Vaibhav
- Re: QUIC API (was: Re: Small size of core QUIC li… Roberto Peon
- Re: QUIC API (was: Re: Small size of core QUIC li… Dirkjan Ochtman
- Re: QUIC API (was: Re: Small size of core QUIC li… Ian Swett