Re: [ippm] Adoption call for draft-cpaasch-ippm-responsiveness

Christoph Paasch <cpaasch@apple.com> Wed, 05 January 2022 00:55 UTC

Return-Path: <cpaasch@apple.com>
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 575413A220A; Tue, 4 Jan 2022 16:55:33 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.428
X-Spam-Level: **
X-Spam-Status: No, score=2.428 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.576, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, GB_SUMOF=5, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.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 h6yvVm-Izz-2; Tue, 4 Jan 2022 16:55:29 -0800 (PST)
Received: from rn-mailsvcp-ppex-lapp14.apple.com (rn-mailsvcp-ppex-lapp14.rno.apple.com [17.179.253.33]) (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 2F6403A220B; Tue, 4 Jan 2022 16:55:26 -0800 (PST)
Received: from pps.filterd (rn-mailsvcp-ppex-lapp14.rno.apple.com [127.0.0.1]) by rn-mailsvcp-ppex-lapp14.rno.apple.com (8.16.1.2/8.16.1.2) with SMTP id 2050tBM7017699; Tue, 4 Jan 2022 16:55:24 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=2SiUY/5rMCFWkYU6qjhQWNszGp4SP6joNRp6N6pEto8=; b=fsjGtOpgwcJmdmPXgN72anpZIxBPX8K0Txmw3RklV4bNvHdCqtrwVK/7VkUOWX1fPHzv fR9jWelRXgZrQ6mDMoL4ZNxqcy1BdDEDErk1nxsejLmrsBvVFyf0WRBNTqbBoAI48ZCz oa5J+ZG1TpJGDIAQ733YWKMNOUD9OJlehwJoay/3QlXOdPxkxXY+rdX19LjKHnyIlj6Z RXQLl4CuaLa/lFAddJIQzKhXNaTpd3q1QOrEMATUZeXbqc4AFvNPcWdan/vOrtYdmLoM APVyYNN38BVdpCClDEVsKNzTBXyr8o0kRdqwEv8bzSZX88zNvVcCwnMpmNfEXL56cWW/ UA==
Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by rn-mailsvcp-ppex-lapp14.rno.apple.com with ESMTP id 3damqff1b6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Tue, 04 Jan 2022 16:55:24 -0800
Received: from rn-mailsvcp-mmp-lapp03.rno.apple.com (rn-mailsvcp-mmp-lapp03.rno.apple.com [17.179.253.16]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPS id <0R5700Y7HP806E50@rn-mailsvcp-mta-lapp02.rno.apple.com>; Tue, 04 Jan 2022 16:55:12 -0800 (PST)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp03.rno.apple.com by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) id <0R5700E00OWEQ000@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Tue, 04 Jan 2022 16:55:12 -0800 (PST)
X-Va-A:
X-Va-T-CD: 954b8ddf5120fca5e581bf5dd4991c72
X-Va-E-CD: de054fff2f5096dfe99f93b89e853049
X-Va-R-CD: 7d741991045d6b2f869f53b80b980cf0
X-Va-CD: 0
X-Va-ID: 0801aadf-3b72-456a-a90a-71fd2e126af0
X-V-A:
X-V-T-CD: 954b8ddf5120fca5e581bf5dd4991c72
X-V-E-CD: de054fff2f5096dfe99f93b89e853049
X-V-R-CD: 7d741991045d6b2f869f53b80b980cf0
X-V-CD: 0
X-V-ID: da508380-1db2-488f-a1dc-b9bb6891b034
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.790 definitions=2022-01-04_11:2022-01-04, 2022-01-04 signatures=0
Received: from smtpclient.apple ([17.192.155.238]) by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPSA id <0R5700X0KP7Z9J00@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Tue, 04 Jan 2022 16:55:11 -0800 (PST)
From: Christoph Paasch <cpaasch@apple.com>
Message-id: <39395197-5F38-4D1E-8EBA-BAFB09C24CE6@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_3014B326-B698-49CA-800A-8583AC232CA8"
MIME-version: 1.0 (Mac OS X Mail 15.0 \(3693.40.0.1.81\))
Date: Tue, 04 Jan 2022 16:55:11 -0800
In-reply-to: <D235E277-E0F5-46F4-B89F-684A02F9B31D@apple.com>
Cc: "MORTON JR., AL" <acmorton@att.com>, Marcus Ihlar <marcus.ihlar=40ericsson.com@dmarc.ietf.org>, Tommy Pauly <tpauly=40apple.com@dmarc.ietf.org>, "ippm@ietf.org" <ippm@ietf.org>
To: Christoph Paasch <cpaasch=40apple.com@dmarc.ietf.org>
References: <AM0PR07MB4131542BCD0A6DE3F82F1E19E26D9@AM0PR07MB4131.eurprd07.prod.outlook.com> <CH0PR02MB79802EEBC038D7136449D06FD3789@CH0PR02MB7980.namprd02.prod.outlook.com> <D235E277-E0F5-46F4-B89F-684A02F9B31D@apple.com>
X-Mailer: Apple Mail (2.3693.40.0.1.81)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.790 definitions=2022-01-04_11:2022-01-04, 2022-01-04 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/ippm/seBmO2-gjxqGlWAN8fXDDv3bCnI>
Subject: Re: [ippm] Adoption call for draft-cpaasch-ippm-responsiveness
X-BeenThere: ippm@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 05 Jan 2022 00:55:33 -0000

And I just realize I jumped over some parts of your comments. Please see more inline:

> On Jan 4, 2022, at 4:23 PM, Christoph Paasch <cpaasch=40apple.com@dmarc.ietf.org> wrote:

[snip]

>>  
>>  
>> Finally, in 4.1.4, the Note explains:
>>  
>>    Note: It is tempting to envision an initial base RTT measurement and
>>    adjust the intervals as a function of that RTT.  However, experiments
>>    have shown that this makes the saturation detection extremely
>>    unstable in low RTT environments.  In the situation where the
>>    "unloaded" RTT is in the single-digit millisecond range, yet the
>>    network's RTT increases under load to more than a hundred
>>    milliseconds, the intervals become much too low to accurately drive
>>    the algorithm.
>>  
>> Well, TCP senders/control-loops are involved here, and likely play a
>> role in behavior categorized as “difficult to measure”.
>>  
>> By the time we get to
>>  
>> 4.2 <https://datatracker.ietf.org/doc/html/draft-cpaasch-ippm-responsiveness-01#section-4.2>.  Measuring Responsiveness
>>  
>>    Once the network is in a consistent working conditions, the RPM Test
>>    must "probe" the network multiple times to measure its
>>    responsiveness.
>>  
>>    Each RPM Test probe measures:
>>  
>> You previously started at least four TCP connections with infinitely large files.
>> The “create connection” RPM probes establish additional connections, DNS, TCP, etc.
>> Is each new connection an RPM probe? or is the set of connection tests a single probe?
>> (later we learn it is the set of
>> What if one of the set of connections fails/times-out?

Yes, the set will be factored into the final RPM number.

>>  
>> I take it that the “load-bearing” connections are driving the path to saturation.
>> Maybe “load-generating connections” is more clear?
> 
> "load-generating" is indeed a better term!
> 
> For all of the above "minor" edits, I filed https://github.com/network-quality/draft-cpaasch-ippm-responsiveness/issues/35 <https://github.com/network-quality/draft-cpaasch-ippm-responsiveness/issues/35> 
> 
>> 4.2.1 <https://datatracker.ietf.org/doc/html/draft-cpaasch-ippm-responsiveness-01#section-4.2.1>.  Aggregating the Measurements
>>  
>>    The algorithm produces sets of 5 times for each probe, namely: DNS
>>    handshake, TCP handshake, TLS handshake, HTTP/2 request/response on
>>    separate (idle) connections, HTTP/2 request/response on load bearing
>>    connections.  This fine-grained data is useful, but not necessary for
>>    creating a useful metric.
>>  
>> @@@@ So, only ONE of the load-generating connections runs the 1-byte GET ?  (it says connections, and there are at least 4) The various handshakes result in 4 RT measurements.
>>  
>> But, do you mean *5 repeated measurement sets*? Each set with:
>> DNS HS, TCP HS, TLS HS, HTTP/2 idle GET, and the potentially much longer GET on the 
>> load generating connections.

You are right, this is not very clear. I am working on testing a refinement of the methodology and how the numbers are aggregated.

I'm thinking of the following:

Each of the RPM-measuring separate connections should get latency numbers for DNS, TCP, TLS and H2 req/response. Additionally, we have the measurement on the load-generating connections (one probe on each of these).

This gives us 5 sets of numbers:
DNS: [42ms, 39ms, 43ms, ...] -> 75th percentile = V
TCP: [..., ..., ...] -> 75th percentile = W
TLS: [... ,..., ...] -> ... = X
H2: [..., ..., ...] ->  ... = Y
H2 on load-generating: [..., ..., ...] -> ... = Z

Then, RPM is the average (normalized to 60 seconds) of these values.

The tricky part is to choose 75th percentile or 90th percentile,... as well as how many probes are needed.


Does this make it clearer on how the probes are measured and create the RPM-value ?


Christoph

>>    To create a single "Responsiveness" (e.g., RPM) number, this first
>>    iteration of the algorithm gives an equal weight to each of these
>>    values.  That is, it sums the five time values for each probe, and
>>    divides by the total number of probes to compute an average probe
>>    duration.  The reciprocal of this, normalized to 60 seconds, gives
>>    the Round-trips Per Minute (RPM).
>>  
>> @@@@ I’m missing a step, I think:
>> Are the “time values for each probe” the sum of handshake or response times for
>> DNS HS, TCP HS, TLS HS, HTTP/2 idle GET and load generating connections?
>> The processing doesn’t seem to include this preliminary calculation to produce 
>> “five time values”.  
>>  
>>  
>> In Section 5, “no new protocol is defined”, but
>>  
>>    The client begins the responsiveness measurement by querying for the
>>    JSON configuration.  This supplies the URLs for creating the load
>>    bearing connections in the upstream and downstream direction as well
>>    as the small object for the latency measurements.
>>  
>> The client needs to know how the server response will be organized, down to key: value, right?
>> Some client and server agreements needed...
> 
> Yes! With "protocol" we mean nothing new at HTTP/TCP/... layer. Just standard JSON. I don't know if that qualifies as a new "protocol" ;-)
> 
> 
> Thanks a lot,
> Christoph
> 
> 
>>  
>>  
>> From: ippm <ippm-bounces@ietf.org <mailto:ippm-bounces@ietf.org>> On Behalf Of Marcus Ihlar
>> Sent: Monday, December 6, 2021 10:53 AM
>> To: ippm@ietf.org <mailto:ippm@ietf.org>
>> Subject: [ippm] Adoption call for draft-cpaasch-ippm-responsiveness
>>  
>> Hi IPPM,
>>  
>> This email starts an adoption call for draft-cpaasch-ippm-responsiveness, "Responsiveness under Working Conditions”. This document specifies the “RPM Test” for measuring user experience when the network is fully loaded. The intended status of the document is Experimental.   
>>  
>> https://datatracker.ietf.org/doc/draft-cpaasch-ippm-responsiveness/ <https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/draft-cpaasch-ippm-responsiveness/__;!!BhdT!zI6d5je1i8cafA6NXByD5tvxHFKKPMjYgtM6t2aLUHFPsyPz-XwPFguwa1HS$>
>> https://datatracker.ietf.org/doc/html/draft-cpaasch-ippm-responsiveness-01 <https://urldefense.com/v3/__https:/datatracker.ietf.org/doc/html/draft-cpaasch-ippm-responsiveness-01__;!!BhdT!zI6d5je1i8cafA6NXByD5tvxHFKKPMjYgtM6t2aLUHFPsyPz-XwPFq67PfWg$>
>>  
>> This adoption call will last until Monday, December 20. Please review the document, and reply to this email thread to indicate if you think IPPM should adopt this document.
>>  
>> BR,
>> Marcus 
>>  
>> _______________________________________________
>> ippm mailing list
>> ippm@ietf.org <mailto:ippm@ietf.org>
>> https://www.ietf.org/mailman/listinfo/ippm <https://www.ietf.org/mailman/listinfo/ippm>
> _______________________________________________
> ippm mailing list
> ippm@ietf.org
> https://www.ietf.org/mailman/listinfo/ippm