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

Joe Touch <touch@strayalpha.com> Thu, 18 July 2019 16:46 UTC

Return-Path: <touch@strayalpha.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 82B1B12094B for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 09:46:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.218
X-Spam-Level:
X-Spam-Status: No, score=-1.218 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=strayalpha.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 2jvwBXH8kKqO for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 09:46:51 -0700 (PDT)
Received: from server217-3.web-hosting.com (server217-3.web-hosting.com [198.54.115.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 246C3120812 for <tsvwg@ietf.org>; Thu, 18 Jul 2019 09:46:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; s=default; h=Message-ID:References:In-Reply-To:Subject:Cc: To:From:Date:Content-Type:MIME-Version:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=/f/qa80LdF5GhP6eQzjXz2NsD/3EcVKqeLHbfHAl5m4=; b=QUDzZ+OIgbPSO4aS9pZHJu4V/ 8fKGcCfKoYmB89CGHcMYGCPFVn5CqocCCw73Fb80nBj285s8Ofc2yYooWbOm2hnxpt/5JY0jMC6Tw 6y3997lhAny7sU5a9zTBhzuU1G22xOXHiotC8kb98lijxPmy2Ps1F7QdlORMYQmZ9MdRySlXVaFgQ tX9biRzukKNOKjoHYoqKUjUNU/LXKXIknTAe+AIua1HSPkaVKb6ZAn4Kd6jPNbXsrs85NtVYyyvcB OQHvBiT8m/Jjcg1h1uPI0gWhEr2TprDm1JYWyxj02qDQ660TXHrejSHbqmyK1cnl4fjO5l0R4JnJa 5swx2dg9g==;
Received: from [::1] (port=54574 helo=server217.web-hosting.com) by server217.web-hosting.com with esmtpa (Exim 4.92) (envelope-from <touch@strayalpha.com>) id 1ho9YL-00053N-I8; Thu, 18 Jul 2019 12:46:50 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_ad22f69828cf1f89ba6272e7f1d4cc0b"
Date: Thu, 18 Jul 2019 09:46:45 -0700
From: Joe Touch <touch@strayalpha.com>
To: gorry@erg.abdn.ac.uk
Cc: tsvwg@ietf.org
In-Reply-To: <5D309EF6.2040403@erg.abdn.ac.uk>
References: <CAPDqMeq9GjEQKukH1pZOTdE50e_rc3U6gpdxT-5qrS5phD0RGw@mail.gmail.com> <2f71a292f924a9b8de4227c4bbc2f809@strayalpha.com> <CACL_3VGrF5UnbVsSzZZoy1i57WKiQKBX 2T3a16UyEVHY=Kr3XA@mail.gmail.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> <01CB5F98-8B08-4F0A-9067-E1FA837292E0@strayalpha.com> <5D309EF6.2040403@erg.abdn.ac.uk>
Message-ID: <8ab75ec2aac4e03ecba6200fda17524c@strayalpha.com>
X-Sender: touch@strayalpha.com
User-Agent: Roundcube Webmail/1.3.7
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server217.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - strayalpha.com
X-Get-Message-Sender-Via: server217.web-hosting.com: authenticated_id: touch@strayalpha.com
X-Authenticated-Sender: server217.web-hosting.com: touch@strayalpha.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/HN7E7dvOq2hpY7exzEh83kfDBSw>
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 16:46:54 -0000

On 2019-07-18 09:31, Gorry Fairhurst wrote:

> The thread split, so this is a reply to Joe.
> 
> On 18/07/2019, 15:50, Joe Touch wrote: Hi, Gorry,
> 
> True LITE (not just LITE with no user data) is definitely complex...
> 
> On Jul 18, 2019, at 3:38 AM, Gorry Fairhurst<gorry@erg.abdn.ac.uk>  wrote:
> 
> I'm trying to understand LITE and the related topics more...
> 
> (1) One use-case is to mimic UDP-Lite for layer2 networks that wish to do cross-layer optimisation. This is the case that makes the most complications for us.
> 
> ... I would concur this requires strong coordination with the App and Link design, UDP-Lite remains a suitable method, I would agree that adding this to another protocol is not helpful. If we take this off the table, things get a little simpler...
> 
> (2) A second use-case is to support router/network device encapsulation (i.e. tunnels)
> where the network device has no visibility deep into the payload. Such devices existed
> and continue to exist. This was a motivation in GRE/UDP. However, for
> IPv6 a zero UDP checksum is restricted to specific uses-cases, and not a host function
> - because as Lloyd pointed out this erodes ability to detect rogue UDP datagrams. Tunnels are links, and links terminate at both routers and hosts.
> 
> This doesn't erode anything; it follows the IPv6 policy of not duplicating the same kind of check at multiple layers (i.e., it's odd that we keep citing IPv6 as the reason we can't set UDP to zero, when in fact the reason we can drop the checksum for tunnels is exactly the same reasoning used to drop the header checksum in IPv6 - thankfully that's now understood).
 Expecting hosts to set zero checksum is something we need to be careful
about. If Frag did not do this, I'd expect easier acceptance. 

Any endpoint supporting a tunnel would want to do this. It's nonsensical
to claim that hosts wouldn't do it but routers might. Hosts are tunnel
endpoints too. 

> (3) A third use-case is when the packet contains another checksum (also the case
> for some tunnels), and we could save the cost of a second checksum.  I am not
> persauded that this is a real cost when comes to a frag/reassembly algorithm. 
> (4) Some other future use, as yet unknown?
> 
> The more I think about LITE the less I really am persauded (1) is needed.
> 
> I think (2) could be useful, but I don't yet see someone asking for that, That's part of the issue with computing the checksum over the fragment parts vs. whole...
 Sure - or we compute an *additional* checksum when we have fragments.
It will cost (a little), but if it solves DNS issues, then I'd already
be excited. 

>> and I'd expect hosts to see the entire payload, so at least a host implementation does not seem to need that.
> Hosts don't want to touch the data twice to check the fragments AND check the reassembled set.
 Right, that's a question I would like tested. 

That sort of demand cuts both ways - "show me it DOESN"T cost" too. We
have lots of experience with zero-copy that says it does EXCEPT during
the ONE move in/out to the wire. 

> There are other cases: e.g. Frag usually involves a move, doing checksum and move can be efficient.

The way FRAG+LITE is defined the only move is to the first few bytes
(the swap). That's exactly why it won't be efficient otherwise - it
requires staging the fragments somewhere else which involves a copy. 

> (and the byte swap in the current LITE is part of RDMA-like zero-copy placement of fragments once received into a single place before making that final check).
> 
> I'm hessitant to agree that the complexity of LITE is worth the perceived 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. Hardware offload doesn't help if checksumming is done multiple times.
 Well, it save the per-fragment CPU processing. The host then only needs
to worry
about other checks. 

>> (*) For a method designed just for reassembly, it is also possible to
>> "checksum" the fragment checksums in a fragementation protocol to provide
>> equivalent one-pass checksum.
> But it's not equivalent. Remember that data in the host can have errors once each fragment is received too. TCP gives up on that because it HAS to deliver each fragment once previous ones were received; UDP doesn't.
 Yes - what you I proposed would be weaker.  Doing seprate reassembly
check would be the best thing. 

That's exactly what's in the current doc - post-reassembly checksum. 

> ... And so back to Frag:
> 
> I'm concerned that DPLPMTU, Frag and Lite have much more complexity in their design than other parts of the spec - and more consideration is needed on their use.
> 
> For DPLPMTU (#6) the complexity is in another spec (which seems correct to me). I'd be interested whether a separate spec of Frag is also one way to ensure we get experience with the core spec, and then consider how to design Frag (#5, #8). We can, but IMO the criticality of fragmentation support means that it's not particularly relevant to have UDP options that don't support fragmentation.
 I think we are making progress on this and other threads. Let's see how
far we get by the time of the meeting. 

If we want a summary by the meeting, then we need to hit the pause
button please. I don't have time to track the numerous changes if they
continue between now and then. 

And I won't be on the call during th meeting, so perhaps we can focus on
converging on what's been said up to now (which might be useful in of
itself, though). 

Joe