Should the specifications hard-refer to UDP?

John Ericson <list@johnericson.me> Tue, 18 August 2020 03:48 UTC

Return-Path: <list@johnericson.me>
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 863183A16F9 for <quic@ietfa.amsl.com>; Mon, 17 Aug 2020 20:48:09 -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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, 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=johnericson.me header.b=SasHOykK; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=e/f6Qj2V
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 2__0t8QNhqRH for <quic@ietfa.amsl.com>; Mon, 17 Aug 2020 20:48:08 -0700 (PDT)
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DD4903A16F8 for <quic@ietf.org>; Mon, 17 Aug 2020 20:48:07 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id DD0105C016D for <quic@ietf.org>; Mon, 17 Aug 2020 23:48:06 -0400 (EDT)
Received: from imap2 ([10.202.2.52]) by compute3.internal (MEProxy); Mon, 17 Aug 2020 23:48:06 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=johnericson.me; h=mime-version:message-id:date:from:to:subject:content-type; s= fm1; bh=ges265Fu8xwpsKCU3/DMLPIdBT4rT0h6WD1jzxTKtsw=; b=SasHOykK LkRb83LuLnT6OiwtE7eGrgbaNCwijQ+yibJd1gpIi02P0IUn/iZh6uJnn+A2ZVkj 2+S7EX9qAqoBn9Y4sqDer5C4o9yzIyUbmiYVqjhFVPH0hvsJzdaBadJk3y78O3FK FM8W+uvp3p0sNyPF2/7nWseJN4GIAgzAhhJozt5wm0hpuavVFgdmSyqCr7WlJcaX iBXweR7AjYCSx2kd8FtjWOrn9uhOuoJHJIho4FPIZWMHpjOfEpmEYg8gPgvouJIK rY6PjTZHaVpqOhFJmtrjmJ9IImuZqgCWeXXh5yQ+UM+2Cn3uTQxgP1hSFSnU2Rm7 LpYNlLyiJWMLmw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=ges265Fu8xwpsKCU3/DMLPIdBT4rT 0h6WD1jzxTKtsw=; b=e/f6Qj2VByfXXlJoGPF2SITw0iRpoGO6+rLyAMUy/+6eS BEo2ZiTyvXzMEELO5ivfK/NCWntr7VUvLa+8Tm3p1dHfvL+03hn1kAoAp2FjvmEE +Sl4DFBtKzs3KneCQEn/9Y/42g+NT+WzZk0FSiSjYDEEwFhgO3hFhpEU/V+02edY lYrWTRwPcDNHjwyhceG1s4mgeEDWaJmhIeo0ES/3cmloh4Bqt/h/h8uBKMYUWme4 c42/qCbTdscyTmjIBXvlsAyZBrPghAGnCEjb/jbuZ2sjirT+4O6fU9kRLVpKna7m QstF9tD/EW7uh3J9rsVLceH14QgNQC5X1JbWH18/A==
X-ME-Sender: <xms:dk87X1U1Q8mhbNiYqE9xC7S-E1hJW9cq2rCIhw72oF7c13qjIW7vbw>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedruddthedgjedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfffhffvufgtsehttdertd erredtnecuhfhrohhmpedflfhohhhnucfgrhhitghsohhnfdcuoehlihhsthesjhhohhhn vghrihgtshhonhdrmhgvqeenucggtffrrghtthgvrhhnpeefieduveeggffftefghffgtd dvleevveetgfelleegleekjedutdeukeevteejveenucffohhmrghinhepihgvthhfrdho rhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomheplh hishhtsehjohhhnhgvrhhitghsohhnrdhmvg
X-ME-Proxy: <xmx:dk87X1kv2jumef-f8ViXp-g9_SHW5dlPu3Z_Y2Ngh--M-aUlzi8TDg> <xmx:dk87XxZ33E21ICArR62R2jnfubipqnMJuhytQai9ePUmQ7YzXTmQDA> <xmx:dk87X4XkB1t5OAvm69Ty10lXdbHeeZB9piL3aXamIld21-xhmzwnfA> <xmx:dk87X5kyXB7Yfxn_yT-MbyWAfLwzBbhmP3gpfKPqQamOQuFbOvgW-A>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 5BBDEE00B3; Mon, 17 Aug 2020 23:48:06 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.3.0-192-gd9d7a78-fm-20200816.001-gd9d7a786
Mime-Version: 1.0
Message-Id: <1ce1b329-78c0-42c4-aec7-db19b74742eb@www.fastmail.com>
Date: Mon, 17 Aug 2020 23:47:46 -0400
From: John Ericson <list@johnericson.me>
To: quic@ietf.org
Subject: Should the specifications hard-refer to UDP?
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/fWbftfhTopjo6O2YjIZZwRQ92GM>
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: Tue, 18 Aug 2020 03:48:10 -0000

To be clear, I have no issue with the pragmatics that QUIC will be layered atop UDP in practice. I am *not*, for example, trying to dredge up some years-old discussion about whether QUIC should be assigned an IP protocol number!

What I am questioning is the editorial/rhetorical choice of whether the specifications should refer to UDP in particular as the underlying protocol, or abstractly speak of an underlying protocol that merely must meet certain criteria, such as preserving message boundaries and (at least ephemerally) addressing endpoints.

Here are the benefits I think of doing so:

* By speaking about the underlying protocol in abstract terms, the specification can narrow in on just the qualities of UDP pertinent to the aspect of QUIC being specified, bringing clarity to the spec.

* Implementations that do use other underlying transports can still provide a fully-conformant QUIC implementation, rather than a protocol that is merely QUIC "in spirit". I am thinking of research or experimental implementations that are coupled with real-world applications for evaluation, and also of educational projects---perhaps ones that do so merely to teach students about protocol layering!

* If the underlying protocol is swapped in educational projects, students would retain the ability to follow the RFC to the letter while doing their work, rather than having to carefully take creative license. [I might remark that it's great that the layering **within* *QUIC is already so wonderful, and that ought to yield educational dividends.]

* Implementations that rely on the OS's or other external implementation of UDP (which I'd guess is at least a plurality of them weighted by usage) are already abstracting over exact details of the underlying transport mechanism. Even as abstracting over the underlying transport bring the specification further from how QUIC is **used* *in practice, one could argue it brings it closer to how it is **implemented* *in practice.

If there is interest in this, I would be happy to take to the time to author pull requests replacing references to UDP and port numbers with more abstract language.

Finally, my sincerest apologies if this has been discussed before. It certainly seems like the sort of thing that would have been, but I couldn't find a prior discussion searching the GitHub issue tracker and mailing list. (The closest I saw was [1], but that was focused on avoiding the use of 5-tuple altogether, rather than having QUIC continue to rely on the underlying protocol's addressing/disambiguation and merely avoid requiring that it be 5-tuple in particular.)

Thanks for your consideration,

John

[1]: https://mailarchive.ietf.org/arch/msg/quic/dPyWlsrhQGyAUae4_Ht5wYbX_vk