Re: [tsvwg] signaling packet importance [was Re: New Version Notification for draft-herbert-fast]

Sebastian Moeller <moeller0@gmx.de> Fri, 11 August 2023 12:09 UTC

Return-Path: <moeller0@gmx.de>
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 8BACAC14CE4C; Fri, 11 Aug 2023 05:09:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.553
X-Spam-Level:
X-Spam-Status: No, score=-2.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmx.de
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t06JE4_raXm5; Fri, 11 Aug 2023 05:09:09 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 63C94C17EB4F; Fri, 11 Aug 2023 05:09:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1691755744; x=1692360544; i=moeller0@gmx.de; bh=tNDN3qBLkFajDYvBMWFR8XDXVpASV9V8C0IvgdIRQWs=; h=X-UI-Sender-Class:Subject:From:In-Reply-To:Date:Cc:References:To; b=NGVXTegPdoc4jOyi8fQiQ7s7sR+3IndUbE0yz0VnNe8qZtEoa23uV8ZguDqcBGhflTnScbq vgHIhcp4l4OiVotPCq2+mcej9RBYoAEwOGHehTUi0Ly7qvbnKZBM4G1qkTlL1bMvwssVQBp03 n26MLTmh1+TPUUqIcHm00YqgxpOdycwud5C6nGMvwoZ9F9U/NMc3k2jd/GuVs5/HIfyob/z3a vOr7/jVD4YYkEgp7eq9Mf4cJmThX8Bt9p5jIaE2n0fpNtz0MXj47qIcChdH0gs2Yq0FdW+qxO rodsG6lNhb32RAzUl9lWL1WsK5HOGmGNYvKEkod9/dQhm1P4/5HA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from smtpclient.apple ([134.76.241.253]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MLiCo-1qCu4810YC-00HjUv; Fri, 11 Aug 2023 14:09:04 +0200
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.4\))
From: Sebastian Moeller <moeller0@gmx.de>
In-Reply-To: <CALx6S340SWJNOgj17aYF7_ij1ygj3szv6TGnSAe+GU3aqOLT6g@mail.gmail.com>
Date: Fri, 11 Aug 2023 14:09:03 +0200
Cc: Dan Wing <danwing@gmail.com>, tsvwg <tsvwg@ietf.org>, Sri Gundavelli <sgundave@cisco.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <43A0C8F8-AD8A-41DE-9006-9D48AF7A522D@gmx.de>
References: <5014A95B-C4CC-40DE-8CC7-4503D438E7F4@gmail.com> <CALx6S340SWJNOgj17aYF7_ij1ygj3szv6TGnSAe+GU3aqOLT6g@mail.gmail.com>
To: Tom Herbert <tom=40herbertland.com@dmarc.ietf.org>
X-Mailer: Apple Mail (2.3696.120.41.1.4)
X-Provags-ID: V03:K1:Ja/d2vKlRLtL2933i1LiiOhWxV1GTYpyx5kFqHX1Wv7Cv35Z71u kowZXZMoOxvy1QIG6uxwoFvUFJntKDWVkkMBuaqv9uXJAldL923CMkG4SGmDtDkBFXhplXO VBZ0mP6kk4IC9Y34Vt5sNEpfzUcQA8rYj9l4Dc6/EB+A27YUEoxxNFsrFlyb0pAx2fNtkn/ 9cmy/mAhqTH4PFMx81JTg==
UI-OutboundReport: notjunk:1;M01:P0:GxDopLJtxXs=;fJghZ+N9ECYy5iQWStFb8l1+Gsc r8JgboPnpC69djR1e1YdjZ4ZgZEWalRGpkdCT+2rM0NblvsnsWEAk4emBJ93lRF+VRIFDP6Y4 6bGh7HOzqDOaT+mVLoWIFJFiG3r3H/OJMxw2Ut3/55omjwXoCiIvJOgY5Jg6X8r3E0bpU3GnJ EvPBdQGeHYF89kvrmobzfUPLTII4OZ7jTCyFRHGBXN8RHcqbt6j8brS1mCsPhuwFG/PU/QXu+ do6ftERm++0ZcYeGVrMM5Z0T/QdVDKwwjRybcbxgh/Az/6d8oNIN8BtMlj80EqUJV4ExsygDz cOJTZxWgztAHZd5t1VsVK3etXdYs/3Nh++jpKYa4U1a5MRQD1GNENirL2Til8Ykq3vAzGMIbQ cgvTzyMZLvkWQsFsJoqh6MtT4TgzQF4fLmQSZmprmW0RvBhh98GFma25ZXYFZqXGM7ahjpx3N mn5NdoKR3Z+n8ZzK53CiyOhg6N0znypVeUfj0BbKEF5cmmGMixwSzESQjRYH7gq0e+CTuWHxI MNk7QrWC7E6W+QHOWDkcU0RLZ/VaaWsyUbeBCB/kj3SJYf0AFQmR1/Xvmz2HzBvtEElFibRQD 5MXJDDsJziywxl4ghLsSNVMKZMqTZCl5xVFZNJn4HbTJ5TY/yo+3IZXvlvCyrCirzYSHuNk31 J0LHigSjeSF+gBBTZDeopiZMxB7FJ4YvYyjmvokl0j/WakqVfFKIARJk3C1ud3siB6IGlV6+3 0jvHYEKaI/mDS+iKSJKEM4PosMFmx74M6QQQmnXWYGA36WWuGgkfXhowSD/JADWlrcDHJQoxL 8+6N0Nes7V/sHxpDsHyZTKGNIwcaVXdT9e2bMvWY9IqnCg/u/1TkVNwBSvk6X9raaGtkPIXzX ugU/emwy6PhSMNkhgxl/UDsis/2rI/giYHStQn/g+0e+wcAFU7qz4PDNbNKSZiX1MINn3jHja ER9X1y6Z3Lyj70Rqw3Hcx8TRfOA=
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/mB5d6IABpvMVzLjlqC3Fm3GezjM>
Subject: Re: [tsvwg] signaling packet importance [was Re: New Version Notification for draft-herbert-fast]
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.39
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: Fri, 11 Aug 2023 12:09:14 -0000

Hi Tom,

more below as [SM]

> On Aug 10, 2023, at 01:36, Tom Herbert <tom=40herbertland.com@dmarc.ietf.org> wrote:
> 
> 
> 
> On Wed, Aug 9, 2023, 2:22 PM Dan Wing <danwing@gmail.com> wrote:
> Yes, there is a lot of interest in marking 'important' packets.  Thanks for your comments on the list and at the meeting and thanks for updating FAST.  Thanks to Mike for being a nudnik and poking all the co-authors earlier this week, too.
> 
> Hi Dan,
> 
> Thanks for the great discussion! Comments in line.
> 
> 
> 
> 
> Regarding inapplicability of UDP trailers to TCP, TCP has head of line blocking so marking a packet within a TCP packet differently from other packets in that same flow provides no benefit to the flow.  
> 
> Not necessarily. If a host sees a connection is having problems, like seeing retransmission or high variance in RTT, it's their prerogative to try to affect routing to fix the problem. For instance, this is implemented in Linux as a feature where the IPv6 flow label can be changed mid-flow to see if there's a better route. We can do the same thing for signaling in HBH to affect QoS. While we don't want to be sending every packet differently, the ability to change things occasionally for a TCP connection could be very beneficial.

	[SM] This assumes/tests that the network path evaluates the flow label for making routing decisions? Do you have any (even anecdotal) numbers how often changing the flow label of an established connection actually helps getting another path and if there are side-effects like getting the connection terminated?


> 
> A *separate* TCP flow could get marked differently (e.g., a file transfer TCP flow versus an interactive audio/video TCP flow), but that differential marking is only possible with multiple TCP connections -- causing its drawbacks of NAPT port consumption, connection set-up time, and per-connection congestion control.  Those drawbacks were some of the justification for creating QUIC, and resolved by QUIC.
> 
> Right, connection setup/teardown is expensive which is why there's incentive to try to save failing connections as I described above.
> 
> 
> The problem user "A" will mark all their packets as important starving user "B" (the "everyone is an ambulance" problem) requires some sort of permission (or quota or "admission") system -- like FAST.  But that is a problem no matter if IPv6 HbH option, UDP option, DSCP, RSVP, etc.
> 
> Yep, that's a fundamental problem in host network signaling! This also where the ticket analogy is helpful, if concert tickets didn't have features to prevent forgery then everyone would be sitting in the front row for the Taylor Swift concert :-)

	[SM] This is why the network by default should only look at information that is likely essential for flow's to achieve their goal. So using a 2,3, or 5-tupel for "flow" identification seems safer than including the flow label for IPv6... with the obvious solution mentined already that there needs to be a trust domain for non-essential information if it is supposed to affect netwirk path behavior.

> 
> 
> 
> Tom Herbert wrote:
> 
>> Can you comment on the requirements and pragmatics of network devices
>> to process UDP Options. As I mentioned, high performance network
>> devices process protocol _headers_, it's going to be difficult to
>> teach them to process trailers efficiently. 
> 
> The IP header length and UDP header length are examined to determine if there is a UDP trailer.  Examining the trailer can be helped by encoding "backwards" to ease parsing as was done by SRTP EKT, https://datatracker.ietf.org/doc/html/rfc8870#section-4.1.  
> 
> But I believe that's an E2E protocol. Do you have any examples of protocols with trailers that are explicitly intended to be processed by intermediate nodes?
> 
> Middle boxes, especially hardware implementation, aren't designed to handle trailers.

	[SM] Not 100% sure whether it counts, but ATM/AAAL5 used a trailer, albeit a trailer at a predictable position (last 8 octets of the last ATM cell of a "packet"). I guess the issue is less "trailer" per se and more "badly predictable" position?



> They may have to defer processing of UDP Options to a software, which as we've seen, time and time, again dooms a data path protocol to the bit bucket! Hosts probably can process trailers, but it's still not nearly as efficient as just processing headers; and host devices with programmable datapath, SmartNICs like P4 programmable programambaility, probably won't be able to process trailers without some major hardware changes. UDP Options might be functional on the Internet, but it's yet to be proven they can be implemented to be sufficiently performant.
> 
> 
> I agree UDP trailers are not headers, and I agree network devices are quite used to dealing with headers.
> 
> The differentiated packet handling would occur near the edge of the network close to the subscriber.  In the case of Wi-Fi it occurs on the subscriber's premises; in the case of 5G it is the radio access network.  Those are where queues build up (due to congestion caused by other users) and where radio interference occurs.  Those devices can improve the user experience by dropping less-important packets in favor of more-important packets.  Today, those devices have little-to-no idea which packets are important.  They know TCP packets will eventually get re-transmitted, and they can make guesses that UDP/443 is carrying QUIC and -- today -- has TCP-like behavior and will also re-transmit packets. But as unreliable QUIC [RFC9221] becomes A Thing, the existing treatment of QUIC by those devices will cause harm.  I believe it is use-cases for unreliable QUIC that is what is causing the influx of new IETF proposals.  Of course, (S)RTP has long wanted this sort of behavior, too, long prior to unreliable QUIC -- it's just been less interesting as the likes of Zoom, Cisco WebEx, Teams, and Skype have tried to quietly just get their job done.  But they, too, could benefit from UDP trailers.
> 
> Reliable protocols need QOS just like any other protocols. Just relying on TCP or QUIC retransmissions would set an awfully low bar for QoS! Customers want latency/throughput/jitter guarantees. And if someone is seeing a lot of retransmissions, that's more likely to be a bad thing than a good thing and some action is needed. In E2E protocols, only end hosts have the state to know what's happening to connections, but it's really the network where the problems are and where things can be fixed (like trying to influence routing like described above). That's exactly why we need host network signaling-- the host has the E2E state and understanding of application requirements; the network has the mechanisms and services to satisfy those requirements.

	[SM] There might also be some desire for information transfer from network to the end-nodes, e.g. Arslan, Serhat, and Nick McKeown. ‘Switches Know the Exact Amount of Congestion’. In Proceedings of the 2019 Workshop on Buffer Sizing, 1–6, 2019. makes the point that networks should convey the buffer occupancy in a ~4 bit number per packet so end-points can base their decisions on better insight what is happening in the network.

> 
> 
>> If we use fragment options
>> to force the UDP Options into headers then the problem becomes that we
>> have to change all end hosts to support that. There's also potential
>> problems mixing transport and network options, and in particular this
>> could affect security and DoS considerations.
> 
> Changing OS stacks is already necessary for UDP trailers:  the user- and kernel-mode interfaces to UDP don't provide the flexibility to add a UDP trailer (on Windows); instead, raw sockets are necessary.  Once the entire packet is built by hand with raw sockets, fragment options become viable.  That said, I agree we don't want to make changes to host stacks -- and is one thing I don't like about UDP trailers!
> 
> Yes, frankly that has long been a concern of mine wrt UDP Options. We haven't seen a lot of running code or deployment. I believe there is a FreeBSD patch, but I haven't seen patches sent to netdev for Linux. Neither do I know of any active deployment of UDP Options. And this concern is only about the current use case of transport options, using UDP Options for network consumption hasn't even been brought up until recently. This situation can be contrasted to a protocol like Segment Routing that referenced at least ten implementations, had Linux patches accepted upstream, and I believe there was significant deployment when SR was published as RFC-- see https://datatracker.ietf.org/doc/html/draft-matsushima-spring-srv6-deployment-status-15 for a great example of demonstaring the "running code" requirement of IETF;

	[SM] This, while desirable, seems not to be a requirement in tsvwg.



> it is quite thorough in describing the implementation, deployment, and interoperability status of segment routing (I really wish there was an equivalent for UDP Options especially if their scope is being expanded to be processed by network devices).
> 
> 
> 
> On survivability of UDP trailers:  the sender can probe to determine if UDP trailers survive a path, and avoid sending them the UDP trailer causes failure to receive the packet.  This works because the UDP trailer is an optimization to attempt to help the network deliver improved service.  We have do similar probing for IPv6/IPv4 (Happy Eyeballs), TCP/QUIC, and a slew of other protocols as they are pushed out.  Such probing works fine for UDP trailers because they are unlikely to be dropped on the Internet (that is, on transit networks) because security devices and UDP checksum validation does not occur on such transit networks. 
> Rather, networks close to the subscriber is where security devices and checksum validation might occur and those networks close to the subscriber are the very same networks where packet priority is more interesting because it's the same place queues build up and packet importance would influence dropping less-important packets.  This creates alignment of the network operator wanting the benefit of UDP trailer (to improve user experience) who can also influence their security vendor and their UDP checksum validation device to permit UDP trailers.
> 
> That same logic can be applied to HBH Options. The ability of operators to offer differentiated services and monetize them, should be sufficient incentive (alignment ) to fix their bugs and make host to network signaling work HBH Options, UDP Options, etc.
> 
> 
> The "don't care about UDP trailers" behavior of transit networks contrasts from IPv6 HbH options where the transit networks are, today, interfering with IPv6 HbH options, and do not have an aligned incentive to change their IPv6 HbH operations.
> 
> Probing can be done for HBH Options as well (see draft). There are some differences. UDP Options probing is for establishing feasibility across the path as well as the end host, HBH options probing and Happy Eyeballs are really only probing the path. One likely difference in practice is that UDP Options probing probably needs to be done on a 4-tuple basis because the end host might have an Anycast address that is behind a load balancer (might be a minor point, but will require testing and consideration to implement a robust probing algorithm).
> 
> Without any deployment of UDP Options and not a lot of implementations, I'm quite skeptical of any statement that UDP Options are any more survivable than HBH Options. We don't really know. And, even if it were true today, there's a very real possibility the providers will block them if they sense the slightest security issue, especially if they can't parse these because they are trailers (i.e. trailers might be perceived to be a covert channel to firewalls that can't process trailers).

	[SM] If I understand correctly, intermediate nodes are permitted to delete Hop-by-hop options? If so that would be one point in favor of UDP options (for the discussed use-cases I think both end-points should know about what signal was sent to the network, if only to help in debugging).

Regards
	Sebastian


> 
> Tom
> 
> 
> 
> 
> -d
>