Subject: [tsvwg] Post-Reassembly Checksum for UDP FRAG Option

From: "C. M. Heard" <[email-masked]>
Date: Sun, 13 Jun 2021 18:22:55 -0700

On Thu, Jun 10, 2021 at 9:43 PM Joseph Touch <[email-masked]> wrote:

> - do we want to ditch the required post-reassembly checksum?
>         if so, we ditch that field in the terminal frag
>

The crux of my argument against providing a separate reassembly checksum --
specifically in the form of the 16-bit Internet checksum over the
reassembled data -- is as follows.

1. OCS (now mandatory when UDP CS<>0) provides essentially the same
protection that the TCP checksum provides for an equivalent length of data.

2. The only errors that a separate 16-bit Internet reassembly checksum over
the reassembled payload could catch that OCS would not are errors that
affect some option bytes and some payload bytes in a manner that offset one
another (and so are undetectable). If you want a reassembly checksum that
catches substantially more errors, it needs to be something different from
the 16-bit Internet checksum. But we already have that. It is called ACS.

These points were made more eloquently by Tom Herbert in the following post
from July 18, 2019:
https://mailarchive.ietf.org/arch/msg/tsvwg/5SxJl8AbULB9etzOoqNv5uW__cA/.

I made a similar argument in the same thread in
https://mailarchive.ietf.org/arch/msg/tsvwg/UeYiFIkKdXCRZ3jamNHdYN7EJYk/.

I do not think that the reassembly checksum in the form of the 16-bit
Internet checksum over the reassembled data adds enough value to be
worthwhile. ACS is available and does a better job if you want something
that is meaningfully stronger than the TCP checksum for an equivalent
amount of data (or, nearly equivalently, the UDP checksum over a datagram
reassembled from IP fragments).

I grant that this argument does not cover the case when UDP CS=0 but I
consider that a waste case for a variety of reasons, which I can make
explicit if anyone is interested.

Mike Heard

---

From: Joseph Touch <[email-masked]>
Date: Sun, 13 Jun 2021 18:55:01 -0700

> On Jun 13, 2021, at 6:22 PM, C. M. Heard <[email-masked]> wrote:
> 
> On Thu, Jun 10, 2021 at 9:43 PM Joseph Touch <[email-masked] <mailto:[email-masked]>> wrote:
> The crux of my argument against providing a separate reassembly checksum -- specifically in the form of the 16-bit Internet checksum over the reassembled data -- is as follows….

FWIW - I don’t have any issue with getting rid of the required checksum for FRAG. It was added at the insistence of others previously.

Joe