Re: [tsvwg] A review of draft-ietf-tsvwg-udp-options-12

Paul Vixie <paul@redbarn.org> Mon, 14 June 2021 21:49 UTC

Return-Path: <vixie@redbarn.org>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F31F23A0E5D for <tsvwg@ietfa.amsl.com>; Mon, 14 Jun 2021 14:49:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 QocGYVWbVoRe for <tsvwg@ietfa.amsl.com>; Mon, 14 Jun 2021 14:49:37 -0700 (PDT)
Received: from family.redbarn.org (family.redbarn.org [IPv6:2001:559:8000:cd::5]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 70D303A0E5C for <tsvwg@ietf.org>; Mon, 14 Jun 2021 14:49:35 -0700 (PDT)
Received: by family.redbarn.org (Postfix, from userid 716) id 9E2BF7599B; Mon, 14 Jun 2021 21:49:30 +0000 (UTC)
Date: Mon, 14 Jun 2021 21:49:30 +0000
From: Paul Vixie <paul@redbarn.org>
To: Joseph Touch <touch@strayalpha.com>
Cc: "C. M. Heard" <heard@pobox.com>, Gorry Fairhurst <gorry@erg.abdn.ac.uk>, TSVWG <tsvwg@ietf.org>
Message-ID: <20210614214930.lwqzqxqxhkprbrho@family.redbarn.org>
References: <CACL_3VHyoRr5ju8203DiLTUo-658DCj7ud+1dQE2o0hUPVhF0A@mail.gmail.com> <7D766992-AEEB-434F-BB1D-3817EE07DE61@strayalpha.com> <11037_1623411791_60C34C4F_11037_1_3_787AE7BB302AE849A7480A190F8B9330353A9C56@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <7aaa39d3-0431-e4b0-36bd-1db0686b24dc@erg.abdn.ac.uk> <1FF4F896-0CB8-4AC6-93A4-EAA716BB21A6@strayalpha.com> <CACL_3VFSoHzHdrps_9X2er+Z3S+_r5z9BstE6cJ0f7k8hgyfSA@mail.gmail.com> <3BECDCD0-F6CA-4725-86ED-092FE69DF1D9@strayalpha.com> <CACL_3VGF_+Oh_LbmL=LL-Pd_6dMX0WOaYU9z2x-EMnmgpWiPZg@mail.gmail.com> <20210613225640.pmnhuqwh3fcsorq6@family.redbarn.org> <14AF2B1D-C029-4C64-87EE-0C95B60AA90E@strayalpha.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <14AF2B1D-C029-4C64-87EE-0C95B60AA90E@strayalpha.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/1udXcA3OsjmfpflabdsxQS0HcBE>
Subject: Re: [tsvwg] A review of draft-ietf-tsvwg-udp-options-12
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jun 2021 21:49:42 -0000

On Sun, Jun 13, 2021 at 05:04:03PM -0700, Joseph Touch wrote:
> 
> > On Jun 13, 2021, at 3:56 PM, Paul Vixie <paul@redbarn.org> wrote:
> > ...
> > computing UDP payload size by subtraction requires either that one be
> > inside the network stack (sometimes this means "in the kernel") so as to
> > know the interface MTU and perhaps the path MTU, as well as the IP6 header
> > and option sizes.
> 
> That???s correct; that???s exactly how TCP MSS works. The UDP stack can make
> this information available to the user.

TCP MSS is different, because TCP segments are of elastic size, because
message boundaries are not retained between the TCP user and the network.

no UDP stack has ever made payload size (per interface, per destination)
information available in a portable way. at best we can learn the first-hop
MTU or perhaps the PMTU and then we begin subtracting, pessimistically.

the difference is, a UDP user currently knows that a message will be a packet,
and can ask to shut off source fragmentation to assure this. in the UDP
Options world, one UDP message from a user might become more than one
packet on the network. and that's fine, but it's not what i'm asking about.

> > when this information is unavailable, for example when running inside
> > a DNS responder,
> 
> A DNS responder would not be creating UDP option packets;
> it creates user that it passes to UDP. The same way TCP
> keeps ithis info on a per-socket basis, UDP is expected to.

we will need a portable kernel/user API that allows a UDP user such as DNS
to learn the maximum message size tolerated by that socket. if fragmentation
is available then the size might be close to "64K" which is fine. but the
payload budget left over after IP6 or IP4 headers and options, and after UDP
options, is something the UDP user should not try to guess, using subtraction,
with pessimism as to how much overhead each (invisible) layer will occupy.

-- 
Paul Vixie