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

Dan Wing <danwing@gmail.com> Thu, 10 August 2023 18:25 UTC

Return-Path: <danwing@gmail.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 473A0C151983 for <tsvwg@ietfa.amsl.com>; Thu, 10 Aug 2023 11:25:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 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_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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=gmail.com
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 xuC9Ql7ByDsD for <tsvwg@ietfa.amsl.com>; Thu, 10 Aug 2023 11:25:26 -0700 (PDT)
Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com [IPv6:2607:f8b0:4864:20::429]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 26917C15109C for <tsvwg@ietf.org>; Thu, 10 Aug 2023 11:25:26 -0700 (PDT)
Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-68783b2e40bso918143b3a.3 for <tsvwg@ietf.org>; Thu, 10 Aug 2023 11:25:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691691925; x=1692296725; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=N1/MBU0fUyHl++/r6Nj3VG1TDBsvPpBeNPLilQkT8Ac=; b=VPLO6E6XeDQI4s+Q0jwFDFVM8w4oWC9DWI46VtcdvAuvnZhmZ3PWad+XkR1RCzGBx9 EPmNhApyGtGH3T/yOCsU87tP4x54pMo2AGxnXQuqXwZF4DFMiB0xUynIn1iNIApuzvrg YHaaDofYOawV1E/+NNGV9vGOdN+TIhahD03I05Fj7nhZhahNHhb9DfHbfZfnFScSq0QM Yvr1eG/OBoYg5u3VJneE0Nnigz2SHadjgaJ5NinSjIXTONFIcHA/me4Kg1TssfTa8PpQ 3fglNQ6mfoie1+uDYD6ydPrI290Xdi+zyJWzibMb8B1lZXNAE1DqL0K+nTEgHJs942ug 2sPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691691925; x=1692296725; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=N1/MBU0fUyHl++/r6Nj3VG1TDBsvPpBeNPLilQkT8Ac=; b=AFIShuPTIa7l4MP6npf73kCzlzZWYeuaejcf0/+4bhbLZSNbL4FmIixsDiPOZCLkPE hKSeQFcLGIHcPTm5B1pBTu7yqBN9U14SsaLCb6Ko/f8RrrDyqLXtgRbETwUNXTRAiDm/ VPTjZWSRZGoyAOywU3l1DN+J/3J21a+ZdVGv4ZlIZpLjLJwB/evuOtR9m3PBnoO0Ijtx 3+JIBB0VXDvuW+zctoXap/Bg9bEdpIysGVMB7KrD9PeUYl+jYi8S/sS4RA58Hhd4kGXv swa7ioU4dddRTwBRIZV1t7+iwbvjVUXtA0sklIFBkJEVNJfAvzElQO842ydHmxJkhSLm gvTw==
X-Gm-Message-State: AOJu0Yw+uGLY7/p1RtGLylgvHw0TsqkjNPdA/BxRxuJYSmLX+VsEbNwk W9Vb/tQi7PK9PU/6wZ3fBDelS3/MQ/Yabg==
X-Google-Smtp-Source: AGHT+IEf5oI33YYhq/mZ7KocRk18+apniQ4zxoqoMRsSzeiFQ58S0VjKjwetS7famg1wrrRedJRCuQ==
X-Received: by 2002:a05:6a20:394a:b0:12f:952:11fb with SMTP id r10-20020a056a20394a00b0012f095211fbmr3861358pzg.52.1691691925358; Thu, 10 Aug 2023 11:25:25 -0700 (PDT)
Received: from smtpclient.apple ([47.208.218.46]) by smtp.gmail.com with ESMTPSA id ff17-20020a056a002f5100b006783ee5df8asm1825191pfb.189.2023.08.10.11.25.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 10 Aug 2023 11:25:24 -0700 (PDT)
From: Dan Wing <danwing@gmail.com>
Message-Id: <EDC4FB06-2F31-403C-96CE-1DC3F69CDCB1@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_BB0004F1-09FA-4FD8-98D9-77C4A945CAA8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.700.6\))
Date: Thu, 10 Aug 2023 11:25:22 -0700
In-Reply-To: <CALx6S340SWJNOgj17aYF7_ij1ygj3szv6TGnSAe+GU3aqOLT6g@mail.gmail.com>
Cc: tsvwg <tsvwg@ietf.org>, Kaippallimalil John <john.kaippallimalil@futurewei.com>, Sri Gundavelli <sgundave@cisco.com>, Spencer Dawkins <spencerdawkins.ietf@gmail.com>, Tirumaleswar Reddy <kondtir@gmail.com>, Mohamed Boucadair <mohamed.boucadair@orange.com>, Daiya Yuyama <daiya@sfc.wide.ad.jp>, Hirochika Asai <panda@wide.ad.jp>, "C. M. Heard" <heard@pobox.com>
To: Tom Herbert <tom@herbertland.com>
References: <5014A95B-C4CC-40DE-8CC7-4503D438E7F4@gmail.com> <CALx6S340SWJNOgj17aYF7_ij1ygj3szv6TGnSAe+GU3aqOLT6g@mail.gmail.com>
X-Mailer: Apple Mail (2.3731.700.6)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/IbUHX6xvbWp_wisnVef1qTtcsU0>
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: Thu, 10 Aug 2023 18:25:30 -0000

On Aug 9, 2023, at 4:36 PM, Tom Herbert <tom@herbertland.com> wrote:
> 
> 
> 
> On Wed, Aug 9, 2023, 2:22 PM Dan Wing <danwing@gmail.com <mailto: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.

I wasn't aware of that feature.  Neat.

> 
>> 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 :-)

Metallica, but yes.


>> 
>> 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?

No, I don't.

> Middle boxes, especially hardware implementation, aren't designed to handle trailers. 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.

Agreed that UDP trailers beg for a software implementation and probably in user mode.  QUIC caused lots of stacks to move to user mode already, but the same incentive is not likely to have occurred on middleboxes yet, if ever.


> 
>> 
>> 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!

Agreed.  

That is why my employer moved from TCP to a (proprietary) UDP-based protocol which is just earning customer deployment this calendar year.  I hope to provide additional incentives to move from our proprietary protocol to QUIC.


> 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.

+1.


> 
>> 
>>> 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; 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).

+1.


> 
>> 
>> 
>> 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.

It's slightly different incentive logic, though.  With HbH, the entire path, including transit networks, has to not bork the HbH option.  The sender, the client, and the client's network (Wi-Fi, 5G RAN, cablemodem) has an incentive for the additional network-to-host signaling.  But the transit network doesn't care and the transit networks, today, actively harm HbH options.

Tunneling over those harmful transit networks using something like MASQUE (reverse MASQUE, perhaps), might be a way to get HbH across them to those cooperating ISPs.  Or just avoid transit networks which all the big players do anyways.  My company and our customers are not big players and cannot avoid transit networks.

> 
> 
>> 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).

We only have https://dl.ifip.org/db/conf/tma/tma2020/tma2020-camera-paper70.pdf and the hope that transit providers aren't doing (broken) checksum validation and that the eyeball network operators (ISPs) are interested in helping their customers.

-d