Re: [tsvwg] design assumptions - draft-ietf-udp-options

Tom Herbert <tom@herbertland.com> Wed, 17 July 2019 15:36 UTC

Return-Path: <tom@herbertland.com>
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 DA46C12008A for <tsvwg@ietfa.amsl.com>; Wed, 17 Jul 2019 08:36:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=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=herbertland-com.20150623.gappssmtp.com
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 rslkoVzFLmIW for <tsvwg@ietfa.amsl.com>; Wed, 17 Jul 2019 08:36:03 -0700 (PDT)
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com [IPv6:2a00:1450:4864:20::533]) (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 4FF16120105 for <tsvwg@ietf.org>; Wed, 17 Jul 2019 08:36:02 -0700 (PDT)
Received: by mail-ed1-x533.google.com with SMTP id k8so26222615edr.11 for <tsvwg@ietf.org>; Wed, 17 Jul 2019 08:36:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=herbertland-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=HMu1+nuZHK+gjMaiCa7aaUqj4OktR4x44XkrlV2t3KQ=; b=L7w4kBX9Z0cL6Hhgq2lTjFM88hhAIXD+uXDfIvQo61SulQI+8Wdc54WoaVXDce+8SK ZCP2xfT/cW1ZjrLkGVjvXA2XKVQ4Y4NcohxwZTKCr/qKNYykBeMsHfjPy0AxCoaHb8XM NqVasz88DYekSEJNpLS5NeR1uHGBHOUEZypjR8y4gEpTJflUk97bD1fwjnBDTz7/orjx ZXZQ492np1gILMp5nTBRNIDK3z8retHTkXfAx7+WGwWlXsb4ZQq1r0AR23um7gMzpqvs Q5kdaGBIbFWvM7XTTXcyjUZ+14wbQOxVqikh0O3jAtGuReQGAkjEi+g08i8Xt5GFKaKi NHAg==
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:content-transfer-encoding; bh=HMu1+nuZHK+gjMaiCa7aaUqj4OktR4x44XkrlV2t3KQ=; b=ihGHK4zwhkM41R0nufYKBaFJtEs8f0cCbZ6f54yCPU2KzCVonLa+0eogmk0G9564hY XzK1BxsxtAoSJGJVDClZqGTsNq2qF9BJy/dUK56qiKnnGTmxuGJaFOonak3XMRW+wr3H NTutjyD2OclFPBJk3WwWKncHnlqk232jIY92gsS9F/EaFHLwJrP4AzkoZkTvoYf2vD7M psK4rpYwdZ5TexOVBTJE2VQeKhThkT81N+4Mx95WNuEBS51rq28ya+ova6CRpyAWwXGv 1BkuXttWp6RsXbgUwYMOppn6H4emZSgKD70FW9ctWiTN3jmNyT3kFJyIO53Tlp5Ss3Nv Veew==
X-Gm-Message-State: APjAAAVbJ2KpOWIbHucrJl9RbHm/d08S6PpKcpwJ/tzRub7PWVGuGBmL m5bKEMFsRYm4IT/3H6KpdWFEKDlOcHLeNXUNOdrF/g==
X-Google-Smtp-Source: APXvYqwy9dxlHBNBLUumlF+C6J/uKI61mjhyDJgJdO9FyoUiThxVryoYTnmbHM/nTTkE6dPK/HGjB7LPPc8HZpfYug4=
X-Received: by 2002:a50:b0e3:: with SMTP id j90mr35713995edd.26.1563377760652; Wed, 17 Jul 2019 08:36:00 -0700 (PDT)
MIME-Version: 1.0
References: <CAPDqMeq9GjEQKukH1pZOTdE50e_rc3U6gpdxT-5qrS5phD0RGw@mail.gmail.com> <646D45AD-D79B-4BD2-A084-7DA97CE2C415@strayalpha.com> <7EC37B50-45D5-4CF1-B113-205E55BF244E@strayalpha.com> <CALx6S34s7L7xo+26bt5Cdaqi4Es5Aci42GHk1WNKzugr5st-Gw@mail.gmail.com> <B525BF50-EFCC-44A5-A604-6CDDA914A1CB@strayalpha.com> <CAPDqMep3R6z9PRKkHyOvrh6sV9n5Sc0B++-zVz0FYJCwE6swrQ@mail.gmail.com> <E42A2AE2-F499-465E-BDE6-5EFC0AB20042@strayalpha.com> <CE03DB3D7B45C245BCA0D24327794936306138E9@MX307CL04.corp.emc.com> <CAPDqMeoyNb7vQTdqxLpZpnKb9S7QKeDJNLyQJBmq95yXhB+xfQ@mail.gmail.com> <7D365770-64FE-40BC-901D-B4D7DF6B484B@strayalpha.com> <20190713182554.GB39770@clarinet.employees.org> <CALx6S36mH2M6SYnRSecWXa7k_d1u8O43+CXE-=KqeO0x2e5+qw@mail.gmail.com> <82FF6486-FABF-4D2C-B5E2-178779C720A4@strayalpha.com> <30c17e9c174f6b0da3ecc6b503a8cb17@strayalpha.com> <CACL_3VGs7j+y5vFNT3OL9OKX8ue4rv-Cxi467KR-vbhnMdx86g@mail.gmail.com> <2f71a292f924a9b8de4227c4bbc2f809@strayalpha.com> <0ce46e21249f0dc55310b192d382f50a@strayalpha.com> <CALx6S36gaMqNRo_hYKr45T_vTkUB-vRrYRYJz2_KgvejNsJtLQ@mail.gmail.com> <efbf65646a0e0d2535dc5726b34f3472@strayalpha.com> <CALx6S37sZxmGQJq5mxDiF88NeUjj2HMRnQG5KyZA_4ujrLJkqg@mail.gmail.com> <079d7d849d0e6260497a6c0ed37595a2@strayalpha.com> <CALx6S37wOkz0436CmevOjSe=VwAxKstSR9Jc66PUmXwUKK4vBw@mail.gmail.com> <075C3166-DF88-4160-8E6C-1C32511F4D46@strayalpha.com> <811C4C35-48D8-4382-A4B4-784FAC1B9F1D@strayalpha.com> <CALx6S36P0s0Uz8wuQNt+nLihAn_vLqOJydrAhx5cbv2wch=-oQ@mail.gmail.com> <D68DDA75-D45A-45AF-8C08-B599152D638D@strayalpha.com>
In-Reply-To: <D68DDA75-D45A-45AF-8C08-B599152D638D@strayalpha.com>
From: Tom Herbert <tom@herbertland.com>
Date: Wed, 17 Jul 2019 08:35:49 -0700
Message-ID: <CALx6S37oWYPkhZB+A3RG_p2devUF97GirTVC8H0M7kUi+b10SA@mail.gmail.com>
To: Joe Touch <touch@strayalpha.com>
Cc: tsvwg <tsvwg@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/9OUxFTjDZHDRcw4_BUZIQA1SOuw>
Subject: Re: [tsvwg] design assumptions - draft-ietf-udp-options
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: Wed, 17 Jul 2019 15:36:06 -0000

On Wed, Jul 17, 2019 at 7:58 AM Joe Touch <touch@strayalpha.com> wrote:
>
> Tom,
>
> Some of these are design assumptions; some of these are design *approaches*. Can we please focus on the former? I’ll try for a few below:
>
> - Method to disambiguate legacy uses of surplus space
>
>
> sure.
>
> - Specification for options negotiation
>
>
> perhaps? a method to determine which options are supported
>
> - Denial of Service mitigations
>
>
> perhaps? ways to use of options for DOS (we’re not trying to design for anti-DOS UDP use in general)
>
> - Fallback mechanism to use when intermediate devices drop packets
> with UDP surplus space
>
>
> I don’t see a way to make this a design goal; UDP is unreliable and we can’t know where or why packets are dropped per se
>
It's a common problem to deal with the situation where the network
drops packets with new protocols or formats it hasn't seen before.
Some kind of falback is generally required to a rudimentary protocol.
See Happy Eyeballs for TCP, QUIC fallback to TCP, etc.

> - Extensibility, i.e. something like version number for the protocol
>
>
> it’s already extensible with the KIND codepoint space; given UDP lacks version numbers, it would not be useful to impose them on options alone

It's generally useful to have something that allows version or
alternative formats. For instance, five years from now someone may
discover a fatal flaw in UDP Options deployment that makes them
unusable in that format. Or maybe options become so popular that we
run out of option space. For example, TCP option space is quite
limited and has caused problems with extensibility-- if there was a
version number in the protocol we could define a new version to allow
larger options space and still use protocol number 6. Having the
ability to fundamental change the format is very useful for the cost
of a few bits and is common in protocols.
>
> - Protocol headers versus protocol trailers
>
>
> that’s a mechanism; what behavior are you describing?

The use of protocol trailers is a design decision. The consequences of
taking this path may be significant since it is a departure from
convention for nearly all other IP protocols.

>
> - Implementation and deployment considerations
>
>
> what is the design goal here? maximizing initial deployment probability of success? and if so, at what cost to future use?
>
> i.e., this seems useful ONLY if it takes into consideration the ephemeral nature of the current deployment environment
>
I'm not sure how ephermeral deployment is. Consider that it "only"
took IPv6 twenty years to get to deployment. If you design it a
protocol for an idealized Internet and ignore reality it won't get
deployed.

>   - Integration into a host stack
>
>
> what’s the goal here?

It's "rough consensus and _running_ code"

>
>   - Interaction with common accelerations for UDP
>
>
> again, what’s the goal? again, would this be maximizing for the short term?
>
Deployability. Accelerations have existed since the 90's and will be
with us with the next thirty years. There's nothing short term about
them and it's not like it's a stop gap we wait for CPU performance and
power to catch up with network speeds.

>   - Middleboxes interactions (particularly guidelines for protocols
> suggested in https://datatracker.ietf.org/meeting/104/materials/slides-104-wgtlgo-forwarding-plane-realities-00)
>
>
> Those are ROUTER guidelines; middleboxes that want to look inside transport protocols would already fail if limited to many of these constraints.
>
> And many don’t apply from the start for us:
> - we do not have fixed offset (we’re already at a variable location when used with legacy-compatible data)
> - we do not have a fixed header structure (even if we assume we start with either OOC or CCO and even length, there’s not much more; the rest is necessarily a chain)
>
> And what about some of that advice? not being a draft, its advice wasn’t widely discussed or vetted, and in some places is wrong IMO. In fact, I suspect you would agree, because that advice specifically says:
> - avoid checksums over the entire packet
> - make checksums optional
>
> These are both points you’ve argued against here.

Yes, but these are guidelines offered which is more than we've had
before. IMO it's a mistake to just ignore them considering that these
are the devices the will be transporting the packets. And as we've
seen all too often, it routers or middleboxes for whatever reason
decide to arbitrarly drop packets, say a firewall drops packets with
UDP options because it doesn't have visibiity into the surplus space,
then the protocol is doomed.
>
> (and, as a side note, another case in point, the idea of not going through the pipeline twice for tunnel exit and entry is basically denying that tunnels are inherently a kind of recursion that needs to be fully reentrant, i.e., it would be much safer to claim “tunnel entry and exit MUST behave EXACTLY as if the packet traverses the pipeline and all its processing EXACTLY twice: once for exit and once for entry, and that information between the two be limited to the context contained in the packet only”)
>
>   - Running code that implements UDP option to evaluate and guide
> above. Preferably open source in Linux since that is the most deployed
> end host OS that would support UDP options
>
>
> There are at many more OSes that are more widely deployed (e.g., in cellphones, etc.). We should not design for the short term.
>
I'm not how this is designing for the short term. There's over 2.5
billion users of Linux on smart phones for instance, i don't think
it's going away any time soon.

> And Gorry’s team has running code.

Great. Please include a reference to the source code in the next
update of the UDP options draft which I assume is forthcomoing.

Tom

>
> Joe
>