Re: [tsvwg] design assumptions - draft-ietf-udp-options - trying to see the bigger picture

"C. M. Heard" <heard@pobox.com> Thu, 18 July 2019 21:23 UTC

Return-Path: <heard@pobox.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 D957E12010F for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 14:23:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=pobox.com; domainkeys=pass (1024-bit key) header.from=heard@pobox.com header.d=pobox.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 wqOxMe4yP0gs for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 14:23:35 -0700 (PDT)
Received: from pb-smtp2.pobox.com (pb-smtp2.pobox.com [64.147.108.71]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 42C37120047 for <tsvwg@ietf.org>; Thu, 18 Jul 2019 14:23:35 -0700 (PDT)
Received: from pb-smtp2.pobox.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 2618414A26C for <tsvwg@ietf.org>; Thu, 18 Jul 2019 17:23:34 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type; s=sasl; bh=B1Pyuy6vC+QzpWGcabw52DVCejU=; b=uJIRdc UA0LfLNQqHRpR82OSqRDeIYCqLRIs8nv1fO0nnW8n15AI2xENrzl9Ry3h7aGWRMP 1JhUjIz+ZSjU6ndHdYLMhMAFRGDfp399q46HpnoVlX9l1iYgzKh0xPinQWHHX9X3 Pl3whrN1hh8SpqJkpDRELATfpzdyJIQcXlgVk=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=mime-version :references:in-reply-to:from:date:message-id:subject:to:cc :content-type; q=dns; s=sasl; b=lnIczptnMYIWQa2QnN1mWoHdcPsMRPA5 9hzuE/E5qsPl+r2o0hVv/Yw6NVHQykuYlTaLS7hVxO9Y9U0sVl0+Fj5zCfBwTH+p 3rD3deZRpOM9uCOz3jBL6tw0W8MchSWmC9YwOt4M3byaBp1lDb9W6m+DgQVmukam RmkO2axXTH0=
Received: from pb-smtp2.nyi.icgroup.com (unknown [127.0.0.1]) by pb-smtp2.pobox.com (Postfix) with ESMTP id 1D05814A26B for <tsvwg@ietf.org>; Thu, 18 Jul 2019 17:23:34 -0400 (EDT)
Received: from mail-io1-f47.google.com (unknown [209.85.166.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pb-smtp2.pobox.com (Postfix) with ESMTPSA id 9B57114A26A for <tsvwg@ietf.org>; Thu, 18 Jul 2019 17:23:33 -0400 (EDT)
Received: by mail-io1-f47.google.com with SMTP id k20so54005217ios.10 for <tsvwg@ietf.org>; Thu, 18 Jul 2019 14:23:33 -0700 (PDT)
X-Gm-Message-State: APjAAAWbxtdE6jkl5lQ0l/TYdbqywIlr6iMlFIIQuB1SH5Wp3CdSjWf2 TZuW8yebQEyeSFdIwGCRsVq6zfbx54O14VgQj6U=
X-Google-Smtp-Source: APXvYqz5ByiEWIa+XWfnVGI9cwO5usTjwCYz9ZaediuGSmI21y0dFJKmm8swPV5My/iydlFRW8hyWK3aTEF7EIG/Plk=
X-Received: by 2002:a5e:9308:: with SMTP id k8mr44728377iom.143.1563485013147; Thu, 18 Jul 2019 14:23:33 -0700 (PDT)
MIME-Version: 1.0
References: <CAPDqMeq9GjEQKukH1pZOTdE50e_rc3U6gpdxT-5qrS5phD0RGw@mail.gmail.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> <787AE7BB302AE849A7480A190F8B93302F797897@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <198F5F25-7ECE-431C-A7F2-F0CCFC0BDAA9@strayalpha.com> <787AE7BB302AE849A7480A190F8B93302FA63BED@OPEXCNORMAE.corporate.adroot.infra.ftgroup> <5D304C35.5020004@erg.abdn.ac.uk> <CACL_3VGqn3mFJWSEb=RKkW0dNAF8zZfa=2kxmvaTYzH86KSgqA@mail.gmail.com> <5D309B48.7030501@erg.abdn.ac.uk>
In-Reply-To: <5D309B48.7030501@erg.abdn.ac.uk>
From: "C. M. Heard" <heard@pobox.com>
Date: Thu, 18 Jul 2019 14:23:21 -0700
X-Gmail-Original-Message-ID: <CACL_3VG1jyzWTG3wmryJSd=pboQ212QE3kUVP_LN3oW2fzc2Wg@mail.gmail.com>
Message-ID: <CACL_3VG1jyzWTG3wmryJSd=pboQ212QE3kUVP_LN3oW2fzc2Wg@mail.gmail.com>
To: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Cc: TSVWG <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000d2083b058dfb389e"
X-Pobox-Relay-ID: 4C022776-A9A2-11E9-A4CE-72EEE64BB12D-06080547!pb-smtp2.pobox.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/UeYiFIkKdXCRZ3jamNHdYN7EJYk>
Subject: Re: [tsvwg] design assumptions - draft-ietf-udp-options - trying to see the bigger picture
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: Thu, 18 Jul 2019 21:23:37 -0000

On Thu, Jul 18, 2019 at 9:16 AM Gorry Fairhurst wrote:
> On 18/07/2019, 16:46, C. M. Heard wrote:
>>> I'm hesitant to agree that the complexity of LITE is worth the perceived
>>> cost saving and there may be other ways that don't need this:
>>> cost saving and there may be other ways that don't need this:
>>> (*) Hardware  off-load of the checksum (e.g. Tom Herbert commened) means
>>> the cost can be minimal.
>>> (*) For a method designed just for reassembly, it is also possible to
>>> "checksum" the fragment checksums in a fragmentation protocol to provide
>>> equivalent one-pass checksum.
>>
>> I've argued that last point repeatedly (though Joe does not agree).
>>
>> If delivery of damaged payloads is adequately covered by UDP-Lite, it
>> would IMO make sense to strike support for LITE (#8) from the list of
>> design requirements. That would leave it only as a means to support
>> FRAG, and I think there are much better ways to do that (I've made two
>> proposals for FRAG that do not require LITE).
>>
> It would be interesting to understand the real desire to eliminate the
> cost of doing both a UDP and a reassembly checksum - so we can rule
> that out. It's going to waste cycles when there is no off-load, but
> it also allows full offload, and means you don't need LITE to do Frag.

My position is basically that the per-frgment checksum provided by OCS
should be mandatory, and any additional checksum on the reassembled
should be enabled only by user request. Here's the reasoning.

Having a checksum on each fragment that covers both options and fragment
data is necessary both for middlebox traversal and to ensure robustness
of the reassembly process. It provides protection equivalent to TCP
segment checksums, which should be good enough in most cases. An additional
checksum on the reassembled datagram payload is relatively expensive, so
it should be turned on only for applications that explicitly request it.
ACS is perfect for that purpose since it is defined to be per-datagram
and not per-packet and uses a different checksum than the the fragment OCS.

Consider:

- If fragment data is covered by OCS/CCO, that's comparable protection to
  what a TCP segment gets from the TCP checksum.

- Fragments are kept in sequence (and duplicates are discarded) by means
  of the fragment offset. That accomplished the same thing that TCP's
  sequence number does for segments.

- OCS/CCO on individual fragments can be readily offloaded, provided that
  the checksum is placed early in the packet. A checksum on the reassembled
  datagram, on the other hand, is very likely relegated to software, since
  the reassembled datagram will probably be in scatter-gather storage.

The first two bullets establish that per-fragment protection by OCS is
The third bullet plausibly suggests that the checksum on the reassembled
datagram payload is relatively expensive.

Furthermore, using the Internet checksum to check the reassembled datagram
payload won't add much protection if the ratio of fragment data to
headers+options is large. Every undetectable error pattern that hits the
data area in a single fragment will also go undetected in the reassembled
datagram payload. On the other hand, undetectable error patterns that hit
the data in multiple fragments may well be detected by the individual
fragment checksum. To me, this suggests that the two checksums should be
different, something that ACS will provide.

>>> A 16b CRC isn't that strong for a full-sized IP packet (but better
>>> than the Internet checksum), but a CRC32 would be.

+1

> DPLPMTUD works best with *just* padding packets (i.e. that carry no
> payloads or fragments). It's just so much easier to run the algorithm.

Yes, and the MTU discovery support requirement should be expanded to
say that. A probe packet consisting of padding data plus the request
and/or response options would fill the bill nicely.

Mike