Re: HTTP Alternative Services Best Practices?

Daniel Stenberg <daniel@haxx.se> Tue, 17 December 2019 19:50 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 63C47120D2E for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 17 Dec 2019 11:50:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.65
X-Spam-Level:
X-Spam-Status: No, score=-2.65 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
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 qOF6jhFeAT7n for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 17 Dec 2019 11:50:20 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [IPv6:2603:400a:ffff:804:801e:34:0:38]) (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 A71BF120D1D for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 17 Dec 2019 11:50:20 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.89) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1ihIpm-0002yQ-Ec for ietf-http-wg-dist@listhub.w3.org; Tue, 17 Dec 2019 19:48:42 +0000
Resent-Date: Tue, 17 Dec 2019 19:48:42 +0000
Resent-Message-Id: <E1ihIpm-0002yQ-Ec@frink.w3.org>
Received: from mimas.w3.org ([2603:400a:ffff:804:801e:34:0:4f]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <daniel@haxx.se>) id 1ihIpk-0002xe-7A for ietf-http-wg@listhub.w3.org; Tue, 17 Dec 2019 19:48:40 +0000
Received: from www.haxx.se ([2a00:1a28:1200:9::2] helo=giant.haxx.se) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <daniel@haxx.se>) id 1ihIpi-00050U-DN for ietf-http-wg@w3.org; Tue, 17 Dec 2019 19:48:40 +0000
Received: from giant.haxx.se (mail [127.0.0.1]) by giant.haxx.se (8.15.2/8.15.2/Debian-4) with ESMTPS id xBHJmSwi006735 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 17 Dec 2019 20:48:28 +0100
Received: from localhost (dast@localhost) by giant.haxx.se (8.15.2/8.15.2/Submit) with ESMTP id xBHJmS5j006730; Tue, 17 Dec 2019 20:48:28 +0100
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Tue, 17 Dec 2019 20:48:28 +0100
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: Lucas Pardue <lucaspardue.24.7@gmail.com>
cc: QUIC WG <quic@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>
In-Reply-To: <CALGR9oaCNigDAZP=ue-sORxCJFzkVynhaJszjjY_ohN56ewy8g@mail.gmail.com>
Message-ID: <alpine.DEB.2.20.1912172040300.23555@tvnag.unkk.fr>
References: <CALGR9oaCNigDAZP=ue-sORxCJFzkVynhaJszjjY_ohN56ewy8g@mail.gmail.com>
User-Agent: Alpine 2.20 (DEB 67 2015-01-07)
X-fromdanielhimself: yes
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="US-ASCII"
Received-SPF: none client-ip=2a00:1a28:1200:9::2; envelope-from=daniel@haxx.se; helo=giant.haxx.se
X-W3C-Hub-Spam-Status: No, score=-6.2
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_NONE=0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: mimas.w3.org 1ihIpi-00050U-DN c70fecf685e8100e22583427590b8de3
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP Alternative Services Best Practices?
Archived-At: <https://www.w3.org/mid/alpine.DEB.2.20.1912172040300.23555@tvnag.unkk.fr>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/37227
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

On Mon, 16 Dec 2019, Lucas Pardue wrote:

> invokes default values for parameters, "ma" is fresh for 24 hours and 
> "persist" is false (i.e. clear alternative cache on network changes). One 
> could imagine how this could cause bursts of activity at regular periods, or 
> cascades due to end-user local conditions such as flocking or hopping.

The "persist" thing gives me, as author of the alt-svc handling in curl, a 
small headache too. Let me elaborate:

curl is a command line tool that you typically fire off one or two requests 
with now and then again at a later point.

When curl saves/caches the alt-svc information because we want to take 
advantage of for example HTTP/3 at subsequent invokes, we just have no idea if 
the network changed or not in between the invokes. Figuring out if a network 
chanfes is hard enough when you catch it in run-time (I wrote a lot of such 
code for Firefox), but even worse when you do occasional runs with potentially 
long intervals.

I'm struggling to come up with a decent way to deal with this. Right now I 
just ignore the persistent parameter completely, but I realize that's just 
waiting for a case when it will hurt me. I'm leaning towards either always 
consider the network as changed, or to add some very rudimentary checks that 
for example consider it the same if the source IP is still the same or 
something...

(the curl alt-svc implementation is still marked "experimental" and as such 
isn't actually used very widely yet)

-- 

  / daniel.haxx.se