Re: [tsvwg] UDP TIME Option - per segment or per datagram

Joseph Touch <touch@strayalpha.com> Sat, 31 July 2021 00:18 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 C8C743A1912 for <tsvwg@ietfa.amsl.com>; Fri, 30 Jul 2021 17:18:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.318
X-Spam-Level:
X-Spam-Status: No, score=-1.318 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, HTML_MESSAGE=0.001, 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 lN5b-vd4vD-l for <tsvwg@ietfa.amsl.com>; Fri, 30 Jul 2021 17:18:14 -0700 (PDT)
Received: from server217-4.web-hosting.com (server217-4.web-hosting.com [198.54.116.98]) (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 288D53A190E for <tsvwg@ietf.org>; Fri, 30 Jul 2021 17:18:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; s=default; h=To:References:Message-Id:Cc:Date:In-Reply-To: From:Subject:Mime-Version:Content-Type: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=PSS6gEQQgYWERhJ6bMFftbwwm6p9T1nyM5gSVt4/do8=; b=uCAHkV+x1O6n6GbGrtVKZEz+sK js4BmjRK3MbhoE6Abpzi73EvMM+AgDK4aNWBHFPfxJoBAZsHRE+ruh2XFex5k/aYYTWKcswCc5F17 nWmhzsJwrOb/tzpTR8+v3n689nAFoWXX/TdemWiYSVwzuqBXyez1M9iBzar4nz8c8DKko83EQ2U9u KjajdJHTLP2/rZ9C+Gcz9AM4Fk3nLo+0zHVKIyfJbzIzb5p2+CRJGntKQjiNcji7++0hxnAJNSTjB 8go1h8ZSUvgDtNOV4h+Uf9xAcK8FcLJIPa3WTJ0q32RfPW2IYSUUQPEQNSwd3XKfIBFmgtsRr/9kH jDgpWLkQ==;
Received: from cpe-172-114-237-88.socal.res.rr.com ([172.114.237.88]:58283 helo=smtpclient.apple) by server217.web-hosting.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <touch@strayalpha.com>) id 1m9chb-0032wb-T0; Fri, 30 Jul 2021 20:18:12 -0400
Content-Type: multipart/alternative; boundary="Apple-Mail=_E9D319EC-7291-4BED-B016-EE3C44FA4388"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\))
From: Joseph Touch <touch@strayalpha.com>
In-Reply-To: <CACL_3VGgFoOwEyUWdfDMoESSURPUo7Z=y--_Ezs_Msi+VE1SjA@mail.gmail.com>
Date: Fri, 30 Jul 2021 17:18:06 -0700
Cc: TSVWG <tsvwg@ietf.org>
Message-Id: <C32DB526-9280-48EC-8A13-8E10DF1D2631@strayalpha.com>
References: <CACL_3VG9w3xsoOFqit_YHB5gTztWMQrcYo6km2cRtWmwGjHAjg@mail.gmail.com> <60AAD6ED-4506-4C06-BA2D-A918C8197CFB@strayalpha.com> <CACL_3VHCdvkCf-zqbLvsmBZ+964ecUhBuJEiJZi7MFS2dxDMww@mail.gmail.com> <47F0F088-F252-4DB9-AC20-2A1B0D4AE6FF@strayalpha.com> <CACL_3VGWa3Wcu-r_1CWx06h9DXz9PMBd5wDUmmmL7newdtSUDA@mail.gmail.com> <82241751-E157-4535-82D6-D8DBE15430C7@strayalpha.com> <CACL_3VGgFoOwEyUWdfDMoESSURPUo7Z=y--_Ezs_Msi+VE1SjA@mail.gmail.com>
To: "C. M. Heard" <heard@pobox.com>
X-Mailer: Apple Mail (2.3654.120.0.1.13)
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/jzwa07BL9Z5lzCcw28t86kSG4nU>
Subject: Re: [tsvwg] UDP TIME Option - per segment or per datagram
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: Sat, 31 Jul 2021 00:18:20 -0000

Hi,, Mike,

As you note, UDP isn’t IP; it need not be constrained the way IP is. Although we don’t expect users visibility or control into the details of IP, there’s no reason to make that assumption for UDP - quite the opposite.

I agree that TIME may or may not make sense per fragment, but there *is* a sensible behavior that can be defined - i.e., to return the list of times to the user and let them decide what is done in response. 

Unless there is clearly no meaning, I see no reason to restrict any option’s use a-priori.

Joe

> On Jul 30, 2021, at 4:06 PM, C. M. Heard <heard@pobox.com> wrote:
> 
> On Wed, Jul 7, 2021 at 9:44 PM Joseph Touch wrote:
> Hi, Mike,
> 
> I’ll try to take this in one shot, but it might be useful to followup in separate threads.
> 
> I am following up in separate threads as suggested. This one is for the TIME option.
> 
>> On Jun 26, 2021, at 4:53 PM, C. M. Heard wrote:
> 
>> 
>> If TIME can be requested by the upper layer, what is the meaning if the option is requested for a datagram that gets split into multiple fragments, and the option is replicated in every fragment? I can see the per-fragment argument but only when the option is produced and consumed at the UDP layer -- as is the case for the corresponding TCP option (which appears on every segment if it is negotiated). If it's intended to be produced and consumed by the higher layer, it should be per-datagram.  
> 
> Time for fragmented packets can be a sequence of values or (depending on whether the API might support this) a range (high/low). That information can be useful to the higher layer in setting parameters of UDP, e.g., how long to keep fragments before discard. Or it could be used within the UDP layer for that sort of tuning automatically.
> 
> In order to get a better understanding of how this would be used I read RFC 1323, which describes the TCP Timestamps Option (TSopt), on which this is modelled. A couple of things jumped out at me:
> 
> 1. TSecr is not valid in TCP unless the ACK bit is set in the segment that carries it: 
> 
>          The Timestamp Echo Reply field (TSecr) is only valid if the ACK
>          bit is set in the TCP header; if it is valid, it echos a times-
>          tamp value that was sent by the remote TCP in the TSval field
>          of a Timestamps option.  When TSecr is not valid, its value
>          must be zero.  The TSecr value will generally be from the most
>          recent Timestamp option that was received; however, there are
>          exceptions that are explained below.
> 
> 2. RFC 1232 Section 3.4 provides specific and detailed rules on which timestamp to echo if more than one is outstanding. The rules are highly dependent on TCP state.
> 
> UDP, of course, has no defined state, and no defined ACK bit, though stateful protocols with acknowledgments can be defined on top of UCP.  That suggests to me that the use of TIME -- including which segments carry valid TSecr values -- would necessarily be dependent on the protocol running on top of UDP. In other words, all use of this option must be in the hands of the protocol running on top of UDP, and would depend on the characteristics of that protocol, including on which messages TSecr is valid.
> 
> In my view, if the UDP options spec provides a fragmentation and reassembly capability, it would be a grievous error to provide visibility to what happens to individual UDP fragments to the protocol running on top of UDP -- just as IP does not provide visibility to what happens to individual IP fragments to the protocol running on top of IP.
> 
> That would imply that TIME is a per-datagram option.
> 
> Additionally, while it is fair to require that TSecr is zero on datagrams where it is invalid by the rules of the protocol running on top of UDP, it seems IMO an unnecessary complication in the usage of the option to reserve the value zero to indicate an invalid TSecr. That isn't done in RFC 1323 ("when TSecr is not valid, its value must be zero" does not imply "when the TSecr value is zero, it is not valid").
> 
> Mike Heard
> 
>