Re: [ippm] review: draft-ietf-ippm-responsiveness-03

Sebastian Moeller <moeller0@gmx.de> Fri, 19 January 2024 13:33 UTC

Return-Path: <moeller0@gmx.de>
X-Original-To: ippm@ietfa.amsl.com
Delivered-To: ippm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A0B72C151522; Fri, 19 Jan 2024 05:33:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.854
X-Spam-Level:
X-Spam-Status: No, score=-6.854 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_HI=-5, 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_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 wDiG8tb2tOch; Fri, 19 Jan 2024 05:33:49 -0800 (PST)
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 8674EC151080; Fri, 19 Jan 2024 05:33:49 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1705671224; x=1706276024; i=moeller0@gmx.de; bh=YpCwQJd4pAbQppHZlc4AoR2nPS2CzYumE951FmWxJR4=; h=X-UI-Sender-Class:Subject:From:In-Reply-To:Date:Cc:References: To; b=sepBsuOT1+H/EQOeV5qrqkTk++EuHG59+tuPG5HsKsZ+3HDbs846lTK/093I1ikB i/BAO4PBtU+DQ2v1a9khC6GLDv/FJNl90ApG/0XDIp4+jCeLM+/4rOjBVofRAcJHl zKhnWy2J+k1ICi5HioSXBJH1mobyAJXe539qor02XicVFpz4MYjb25ruD3quhepKC kMlgI00u9IwNHRRGn3xmqkwZWtp5wzi3PQYb/aVEMwiKlpr/PH2hc/kdrNDQAhevK 1vvb6mabIh9Hd1K8dRIMzIs9HlieqgHR1DAKEbCqvt7V3WPc6RZ/4ohTJAaTo/dCv WnJOlKvEVJDIIlzQhA==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from smtpclient.apple ([134.76.241.253]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N0oFz-1rF3TO3jkL-00wkKz; Fri, 19 Jan 2024 14:33:43 +0100
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.300.61.1.2\))
From: Sebastian Moeller <moeller0@gmx.de>
In-Reply-To: <995190E0-1B8D-4467-96F4-950B22889944@apple.com>
Date: Fri, 19 Jan 2024 14:33:31 +0100
Cc: Sebastian Moeller <moeller0=40gmx.de@dmarc.ietf.org>, IETF IPPM WG <ippm@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <82A888C0-0AA9-45B4-B820-2F7EC2382C07@gmx.de>
References: <94654535-67F5-4719-B988-3306BFEA2D6F@gmx.de> <CB77FB78-121F-41C7-80E9-683EF2C5C509@apple.com> <A4B0257D-ECA3-4C03-BDFF-D7306F553B3B@gmx.de> <0CFCC300-FEC1-4997-9B95-5BD67C6BC94C@apple.com> <0C37FF52-83D3-4F61-9823-597E3F5DFA5A@gmx.de> <995190E0-1B8D-4467-96F4-950B22889944@apple.com>
To: Christoph Paasch <cpaasch@apple.com>
X-Mailer: Apple Mail (2.3774.300.61.1.2)
X-Provags-ID: V03:K1:9CPoXyNxCScCeKHP8qatXmpQ4eHkbedaxz9uX45VPjkQz0j++Vk SZPCYVolDkxBn+gytc5e/ShW4LjIlc5p3OpQrzBYrZvIwXnsPccOUIcVCbjnzO4LZEQfa5B ld8CSkjtOIjNG34hXTxpLpcW7MPIYYKmrYMQA0W59kh/zPphTvcXc7qP+MrjqLChW1vLrkV JHTQaDxETApDbW7pY+fmw==
UI-OutboundReport: notjunk:1;M01:P0:n/XFAhXwds4=;7v7cskRanNMmk6f0i8t3Yj2ux2O rPNA4KZaPOIXNZSnfs7u7Vu6X507Bfozg0KFTOLijJzX2q4qfReK2H1ozJXfi1Imk57FzNSkL PnWMmigTuqKhz2IWtE0s9NbCXnY9Vc5N884gS/dGDw0MPgB53zrCQi+9zZu6PHxkXAdspBzC1 msgvdBMhg52GeK6HHfMRSbpl9LHVgfRCdgjkKnJ4+35aQgwOJ43BesBz+DjocAw+bnwjaklWM IWDWlfvfEpH7QkK6wgSSQFuPNkm7ky4UHXzgAejT/V6XUZB1a5/HeL6CLmKfo9pMSX3iLGMC3 s7Q8KWGlGsjuR3SBo0U7eHamoMj0cHMbY9sdhWrdrXy6YGkA7/H33/ChQtLdmaLbiHValA9lG F6wUjB//PiMdQZZyLiq3q/qQER6F9UzvC9n9wiarDPwEu4fp83IJTmnem8AqCq/q4Mcdl3Ibi J/gVuBhTJ+8WB2ls7kDG1j1XXFpVCYbISpYhotbmuybyVn228SJ8yT+Mr3DYyIVuoNeh0RuD+ K+9UKHluTfH0WHlu5JOSvCnmozSfNXGsSAi2/RKRsliES/6SdxDZ+G33u2G0IcE85Us1Y12If StgTyI1TfIux/CN0YcRfB5ccjF2m1M3zz3XLDh5cdcNLOX714OxWK2ucrKY5FknuqHx6F4BZu bQCaawHTSTNP4ad3l+MTJqfU92uJFpkz68pCn0A3gUXgLu1rpvObt5YgovAlIX4laBEkKXb+C 1mukfhietVNiF7elhwOpWhKwgSdVR9+pSmukSZOwOy7AXpojgIJ8HqWlAEdWyGsdUub9/Oc4D SW5kn3Qndm1CcnG2ap2k87d/lVSrC/8cl1jO9ynZ1Yo7zFV4scs86tko4lA8W8j83M9YSgIn4 fS58Vhr7xAt8MIrzzd5JpuBngjI9EJOTarsikXXAL7GyJwlmS/uNPltqQKhwMCeBR/iK0l8iS yKE4wCdnQyA0BC5UyoVmCN6G82I=
Archived-At: <https://mailarchive.ietf.org/arch/msg/ippm/jINVRHbB1M5F6fzS2ENXB3WtWwk>
Subject: Re: [ippm] review: draft-ietf-ippm-responsiveness-03
X-BeenThere: ippm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: IETF IP Performance Metrics Working Group <ippm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ippm>, <mailto:ippm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ippm/>
List-Post: <mailto:ippm@ietf.org>
List-Help: <mailto:ippm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ippm>, <mailto:ippm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jan 2024 13:33:53 -0000

Hi Christoph,


> On 18. Jan 2024, at 23:02, Christoph Paasch <cpaasch@apple.com> wrote:
> 
> Hello Sebastian,
> 
>> On Jan 18, 2024, at 12:48 AM, Sebastian Moeller <moeller0=40gmx.de@dmarc.ietf.org> wrote:
>>> 
>>> 
>>> On 18. Jan 2024, at 00:46, Christoph Paasch <cpaasch=40apple.com@dmarc.ietf.org> wrote:
>>>> On Jan 17, 2024, at 12:03 PM, Sebastian Moeller <moeller0=40gmx.de@dmarc.ietf.org> wrote:
>>>>> 
>>>>> On 17. Jan 2024, at 18:55, Christoph Paasch <cpaasch=40apple.com@dmarc.ietf.org> wrote:
>>>>>> On Dec 10, 2023, at 7:50 AM, Sebastian Moeller <moeller0=40gmx.de@dmarc.ietf.org> wrote:
>>>>>> 4.3.1.  Aggregating the Measurements
>>>>>> 
>>>>>> The algorithm produces sets of 4 times for each probe, namely: tcp_f,
>>>>>> tls_f, http_f, http_l (from the previous section).  The
>>>>>> responsiveness of the network connection being tested evolves over
>>>>>> time as buffers gradually reach saturation.  Once the buffers are
>>>>>> saturated, responsiveness will stabilize.  Thus, the final
>>>>>> calculation of network responsiveness considers the last MAD (Moving
>>>>>> Average Distance - default to 4) intervals worth of completed
>>>>>> responsiveness probes.
>>>>>> 
>>>>>> NOTE: for a network limited by MPS that means 400 latency samples, which is pretty impressive! For a PTC limited network however that could be considerably less. Could we require a verbose mode that reports the number of latency samples taken into account and that also reportes some measure of variance?
>>>>> 
>>>>> Implementations are free to report additional information. I’m not sure whether that should be specified in an IETF RFC, because the RFC defines the methodology only, no?
>>>> 
>>>> [SM] Well, there is this idea that if one reports aggregate data one should also give an idea how well that data holds, and often that starts with the number of data points included, something more and more on-line tests start to reveal (e.g. by allowing to download a csv of the detailed results, which includes the individual samples, so getting to the N just requires counting :) )
>>> 
>>> Sure. But this is IMO a tool/implementation-question.
>> 
>> [SM] Not really, IMHO this as validity of reporting question ;) The way things are phrased ATM, I believe the lowest possible number of samples for self might be MAD * 2, so 8 samples (we need at least 2 samples to calculate a standard deviation), while the expected number for most users will be closer to ~400, that is a really wide range and hence giving some indication seems really desirable. In the same line of thought, we might consider not only reporting the mean RPM but also a measure of deviation. To keep the default recommended result display clean and simple, I think this could be moved to a verbose ode if a client offers that, but if there is no verbose mode this should be reported (potentially as part of the confidence report). But I might be biassed here from requirements at work, and do not want to claim I am offering a universal truth here, but I do want to be sure what ever the draft recommends in this direction is a conscious decision and not an oversight. So what ever you decide here, I am fine with.
> 
> After some more offline discussions I am going to add a “additional metrics” subsection for verbose reporting in the “Interpreting responsiveness results” section.

[SM] Excellent!


> 
>> 
>> 
>>> 
>>>> 
>>>> [SM] True, as long as the draft does not imply that only 20 seconds is permitted, I am happy.
>>> 
>>> “20 seconds is permitted” ? I guess you mean “20 seconds is mandated”. Yes, we are not mandating 20 seconds. In general, everything is “permitted” :)
>> 
>> [SM] Yes, that is what I meant with "only 20 seconds is permitted"... I have a feeling quite a number of RFC based implementations stick really close to the text and do not think outside of the box... (case ion point, there is zero reason, why ICMPv6 should not have supported the base types that ICMPv4 supports like timestamps requests, but that was not stated explicitly in the relevant RFC as far as I can see, and now ICMPv6 lost the ability to use timestamps).
> 
> I get your point. Let me make sure the 20 seconds does not stand out as “this is the limit that you should implement”. (will be all folded into the PR at https://github.com/network-quality/draft-ietf-ippm-responsiveness/pull/97).

[SM] Thanks, that looks great.


> 
>> 
>> 
>>> 
>>>>>> We define "High" confidence if the algorithm was able to fully reach
>>>>>> stability based on the defined standard deviation tolerance.
>>>>>> 
>>>>>> It must be noted that depending on the chosen standard deviation
>>>>>> tolerance or other parameters of the methodology and the network-
>>>>>> environment it may be that a measurement never converges to a stable
>>>>>> point.  This is expected and part of the dynamic nature of networking
>>>>>> and the accompanying measurement inaccuracies.  Which is why the
>>>>>> importance of imposing a time-limit is so crucial, together with an
>>>>>> accurate depiction of the "confidence" the methodology was able to
>>>>>> generate.
>>>>>> 
>>>>>> QUESTION: Should we propose a recommended verbiage to convey the confidence to the user, to make different implementations easier to compare?
>>>>> 
>>>>> I think we did that, no? “Low” “Medium” and “High”.
>>>> 
>>>> [SM] I was daft and was expecting something like "The confidence score should be reported to the user as part of the main results", but I guess that is the implicit message of this section?
>>> 
>>> In my opinion it is fairly clear in the draft. Feel free to send a PR if you have an idea on how to make it more clear.
>> 
>> [SM] Fine then, I just note that goresponsiveness currently does not report that (I did not check it against all other parts of the draft yet, and there is still lots of progress in the go code, so it might have leaned that already ;) )
> 
> Sorry - now I understand what you meant. That the draft should say that an implementation should implement the confidence and report it to the user.
> 
> I am adding this!

[SM] Great. Thanks!


> 
>>> 
>>>>>> 6.  Responsiveness Test Server API
>>>>>> 
>>>>>> The responsiveness measurement is built upon a foundation of standard
>>>>>> protocols: IP, TCP, TLS, HTTP/2.  On top of this foundation, a
>>>>>> minimal amount of new "protocol" is defined, merely specifying the
>>>>>> URLs that used for GET and PUT in the process of executing the test.
>>>>>> 
>>>>>> Both the client and the server MUST support HTTP/2 over TLS.  The
>>>>>> client MUST be able to send a GET request and a POST.  The server
>>>>>> MUST be able to respond to both of these HTTP commands.  The server
>>>>>> MUST have the ability to provide content upon a GET request.  The
>>>>>> server MUST use a packet scheduling algorithm that minimizes internal
>>>>>> queueing to avoid affecting the client's measurement.
>>>>>> 
>>>>>> QUESTION: While I fully agree that is what a server should do, I would prefer to get numbers over not getting numbers... so maybe make this a SHOULD, also if the server needsto return time the request was received and time the response was sent out, maybe we can factor out the local processing?
>>>>> 
>>>>> Agree’d on the SHOULD use a packet scheduling […].
>>>>> 
>>>>> Regarding the time - see my response in the other thread.
>>>>> 
>>>>>> 
>>>>>> 
>>>>>> As clients and servers become deployed that use L4S congestion
>>>>>> control (e.g., TCP Prague with ECT(1) packet marking), for their
>>>>>> normal traffic when it is available, and fall back to traditional
>>>>>> loss-based congestion controls (e.g., Reno or CUBIC) otherwise, the
>>>>>> same strategy SHOULD be used for Responsiveness Test traffic.  This
>>>>>> is RECOMMENDED so that the synthetic traffic generated by the
>>>>>> Responsiveness Test mimics real-world traffic for that server.
>>>>>> 
>>>>>> NOTE: This clearly needs to be under end-user control, that is there should be a way for the user to request/enforce either option (I am fine with the default being, what the local OS defaults to). L4S is an experimental RFC and is is expected to have odd failure modes so a L4S aware measurement tool should keep in mind that L4S itself needs to be measured/tested. At the very least the results need to report whether L4S was used or not.
>>>>> 
>>>>> IMO, this is an implementation choice, whether a tool exposes configuration options to enable/disable L4S and what kind of additional statistics it exposes.
>>>> 
>>>> [SM] Mmmh, I am a bit uneasy with that, as I said it should report if a test was using L4S or not, I accept that maybe RPM is not the best tool for A/B testing L4S ;)
>>> 
>>> In a verbose mode there are a lot of things that can be exposed. L4S on/off. IPv4/IPv6. Once we go down this “rabbit hole” of what else could be exposed, we will start listing every single bit along the protocol stack that may theoretically have an impact on the responsiveness.
>> 
>> [SM] Clearly not a black and white matter given the multitude of potentially relevant parameters, however the client will know whether L4S was used or not, while it is quite hard for a user to figure this out (I think one would need to get packet captures and then look into the headers and connection negotiation).
> 
> Yes - see above. Will add some non-exhaustive suggestions on what additional passive metrics to report.

[SM] Looks good!

Regards
	Sebastian

> 
> 
> Thanks,
> Christoph
>