Re: Should the specifications hard-refer to UDP?

Willy Tarreau <w@1wt.eu> Tue, 18 August 2020 10:02 UTC

Return-Path: <w@1wt.eu>
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 BAAD53A041A for <quic@ietfa.amsl.com>; Tue, 18 Aug 2020 03:02:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 3J_pvyd0Bb6d for <quic@ietfa.amsl.com>; Tue, 18 Aug 2020 03:02:44 -0700 (PDT)
Received: from 1wt.eu (wtarreau.pck.nerim.net [62.212.114.60]) by ietfa.amsl.com (Postfix) with ESMTP id A46E63A0403 for <quic@ietf.org>; Tue, 18 Aug 2020 03:02:43 -0700 (PDT)
Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id 07IA2cqe018839; Tue, 18 Aug 2020 12:02:38 +0200
Date: Tue, 18 Aug 2020 12:02:38 +0200
From: Willy Tarreau <w@1wt.eu>
To: Mark Nottingham <mnot@mnot.net>
Cc: Martin Thomson <mt@lowentropy.net>, quic@ietf.org
Subject: Re: Should the specifications hard-refer to UDP?
Message-ID: <20200818100238.GA18830@1wt.eu>
References: <1ce1b329-78c0-42c4-aec7-db19b74742eb@www.fastmail.com> <2bac14c6-a543-454f-a0f3-d77258c2428b@www.fastmail.com> <66AC3A29-5CEB-4261-BB7C-B27CAA651650@mnot.net>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <66AC3A29-5CEB-4261-BB7C-B27CAA651650@mnot.net>
User-Agent: Mutt/1.6.1 (2016-04-27)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ExFbEZhKM7yviWa5a7uxuVK2nS8>
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 10:02:46 -0000

On Tue, Aug 18, 2020 at 02:52:14PM +1000, Mark Nottingham wrote:
> Just to add to what Martin has said - 
> 
> This reminds me of the HTTP/1.1 specification very much. A fair amount of
> effort has been put in over the years to preserve some independence from TCP,
> so that it can be layered on top of other protocols. Apparently that is
> sometimes done, but I don't think at Internet scale (i.e., between parties
> who don't have some  previous agreement).

In fact it's used quite a lot inside hosts between proxies and servers
for example, as UNIX sockets. And I predict the exact same will happen
for QUIC for the exact same reasons (no resource shortage on ports,
easier security, lower system cost etc). But each time it's done, it's
up to the implementation to know how much they deviate from the standard
and in my opinion this is what limits the risks of seeing ugly monsters
appear, because everyone tries to stick as closed as possible to the
initially chosen protocol.

If we start to be vague about what can be used underneath, while the risk
of seeing ugly things was pretty low for HTTP/1 given that it required a
stream protocol, we could expect to see really ugly stuff pretending that
anything is a datagram and could carry a QUIC packet (including ICMP or
infrared beams). I'm not saying that it's not interesting to explore these
areas, just that they are far outside of the scope of what's being done
here, and I'd rather see this explored only by those having a real interest
there.

And FWIW, yes, once we have a working QUIC in haproxy, I really hope that
we'll also support it on UNIX dgram sockets just for completeness, just like
H1 and H2 work pretty fine on UNIX stream sockets. It's just not a goal
right now, and I wouldn't want the draft to tell us how we should implement
OS-specific sockets for internal usage.

Just my two cents,
Willy