Re: UDP source ports for HTTP/3 and QUIC
Willy Tarreau <w@1wt.eu> Fri, 16 July 2021 07:17 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 63D183A2A66 for <quic@ietfa.amsl.com>; Fri, 16 Jul 2021 00:17:19 -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 yzI_bL9JH10g for <quic@ietfa.amsl.com>; Fri, 16 Jul 2021 00:17:17 -0700 (PDT)
Received: from 1wt.eu (wtarreau.pck.nerim.net [62.212.114.60]) by ietfa.amsl.com (Postfix) with ESMTP id 5BE873A2A65 for <quic@ietf.org>; Fri, 16 Jul 2021 00:16:56 -0700 (PDT)
Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id 16G7GeB4003933; Fri, 16 Jul 2021 09:16:40 +0200
Date: Fri, 16 Jul 2021 09:16:40 +0200
From: Willy Tarreau <w@1wt.eu>
To: Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc: Toerless Eckert <tte@cs.fau.de>, Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>, Mark Nottingham <mnot@mnot.net>, IETF QUIC WG <quic@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>
Subject: Re: UDP source ports for HTTP/3 and QUIC
Message-ID: <20210716071640.GB3469@1wt.eu>
References: <3985895D-D420-4995-831E-332E33693B79@mnot.net> <6F79A78A-1DF8-4A48-9B7F-334B309C9C26@gmail.com> <20210715092937.GC27830@1wt.eu> <20210716014010.GL24216@faui48e.informatik.uni-erlangen.de> <20210716060644.GA3469@1wt.eu> <202107160634.16G6YWat014024@critter.freebsd.dk>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <202107160634.16G6YWat014024@critter.freebsd.dk>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/isW3Z1DLubDRU33W3Acpje-SfmQ>
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, 16 Jul 2021 07:17:20 -0000
On Fri, Jul 16, 2021 at 06:34:32AM +0000, Poul-Henning Kamp wrote: > -------- > Willy Tarreau writes: > > > Stefan made a good point about the problem that might result, with > > inbound load balancing between multiple listeners (typically what's > > achieved by L3 switches doing L3+L4 hash between multiple servers, > > and operating systems hashing the source+destination port to pick a > > different listening socket). Thus a suggestion might be to possibly > > save resources by using a small amount of sockets, with "small" left > > to the appreciation of the implementation. > > We should run the question "few or many UDP ports?" past some some > friendly 100G and 400G device driver maintainers. > > The NICs I have been working with for the ESO ELT project all > included UDP ports in the hash they used to decide which CPU core > to deliver packets/interrupts to and we had to spread across UDP > ports to or all the traffic would hit one single core. > > I dont know if QUIC has registered with the NIC designers and device > drivers writers yet, but given the opacity of QUIC packets, it is > very hard to see what else than the UDP port they can feed into > their hash, so I expect the answer to be "many". That's true but queues are not the only parameter, as using many sockets also results in a massive cache miss ratio and many more syscalls. Even with TCP it's quite visible that using a few hundred connections tends to be incredibly more efficient at 100Gbps than using tens of thousands. Ideally we want all queues to be used with a good balance while limiting the amount of operations to transport these data. Probably that some wording evocating that possibility offered by the protocol and a suggestion to take various factors into account (L4 LB, NIC queues, listeners, syscalls etc) is sufficient to let implementors ask the relevant people for advice in their context. Willy
- UDP source ports for HTTP/3 and QUIC Mark Nottingham
- Re: UDP source ports for HTTP/3 and QUIC Martin Thomson
- Re: UDP source ports for HTTP/3 and QUIC Willy Tarreau
- Re: UDP source ports for HTTP/3 and QUIC Mikkel Fahnøe Jørgensen
- Re: UDP source ports for HTTP/3 and QUIC Willy Tarreau
- Re: UDP source ports for HTTP/3 and QUIC Stefan Eissing
- Re: UDP source ports for HTTP/3 and QUIC Willy Tarreau
- Re: UDP source ports for HTTP/3 and QUIC Töma Gavrichenkov
- Re: UDP source ports for HTTP/3 and QUIC Töma Gavrichenkov
- Re: UDP source ports for HTTP/3 and QUIC Nick Banks
- Re: UDP source ports for HTTP/3 and QUIC David Schinazi
- Re: UDP source ports for HTTP/3 and QUIC Töma Gavrichenkov
- Re: UDP source ports for HTTP/3 and QUIC Erik Nygren
- Re: UDP source ports for HTTP/3 and QUIC Mark Nottingham
- Re: UDP source ports for HTTP/3 and QUIC Toerless Eckert
- Re: UDP source ports for HTTP/3 and QUIC Willy Tarreau
- Re: UDP source ports for HTTP/3 and QUIC Poul-Henning Kamp
- Re: UDP source ports for HTTP/3 and QUIC Willy Tarreau
- Re: UDP source ports for HTTP/3 and QUIC Stefan Eissing
- Re: UDP source ports for HTTP/3 and QUIC Toerless Eckert
- Re: UDP source ports for HTTP/3 and QUIC Mark Nottingham
- Re: UDP source ports for HTTP/3 and QUIC Töma Gavrichenkov