Re: Alt-Svc-Used indicator granularity (ext#34)

Erik Nygren <erik@nygren.org> Sun, 26 October 2014 15:48 UTC

Return-Path: <ietf-http-wg-request@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 (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A653A1A0079 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 26 Oct 2014 08:48:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.689
X-Spam-Level:
X-Spam-Status: No, score=-5.689 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_84=0.6, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 3mt30Y2Bw6t5 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 26 Oct 2014 08:48:33 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2430D1A0016 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 26 Oct 2014 08:48:32 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1XiQ0K-0001jy-FA for ietf-http-wg-dist@listhub.w3.org; Sun, 26 Oct 2014 15:45:16 +0000
Resent-Date: Sun, 26 Oct 2014 15:45:16 +0000
Resent-Message-Id: <E1XiQ0K-0001jy-FA@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <nygren@gmail.com>) id 1XiQ0C-0001ii-3G for ietf-http-wg@listhub.w3.org; Sun, 26 Oct 2014 15:45:08 +0000
Received: from mail-vc0-f174.google.com ([209.85.220.174]) by maggie.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <nygren@gmail.com>) id 1XiQ0A-0003Tt-DT for ietf-http-wg@w3.org; Sun, 26 Oct 2014 15:45:07 +0000
Received: by mail-vc0-f174.google.com with SMTP id hq12so1626597vcb.5 for <ietf-http-wg@w3.org>; Sun, 26 Oct 2014 08:44:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:content-type; bh=Kc+jGPIysEqfZ9auYqiEjdj7L4T8oPFxFlPkCf2LVp0=; b=QQG12cdE+ffwpORxnnHjKZmvNoo3lQhBlhgg6TeMAS0sSw1Z79N84g4hin7uxfusmU YsweiU7+NYSKP7Vp9yvhn7iQf2bWtPIo9/cOCHeQRelcv5sA07B4sJC0lsTq6sfVMQ9G hhIb6KOPOq5zbbRZQTcBbg6esqGuXbF3peneDpW4envoQzqTgbwDCZgp93qbXJxkWjap jk7F9qA06pjuLVAb8JkQeqLs+C/lDDroLd/Qcdis++N4EUc+n/mpcuVbtFbvKvyYHUas rzefnZjoEW22AG/l4XTlwXi+sPrynvx7uh/I5F7vEerfjNORCWpkzdk3la1R8ILTLJYa oJBQ==
MIME-Version: 1.0
X-Received: by 10.52.121.73 with SMTP id li9mr1355263vdb.34.1414338276642; Sun, 26 Oct 2014 08:44:36 -0700 (PDT)
Sender: nygren@gmail.com
Received: by 10.220.190.71 with HTTP; Sun, 26 Oct 2014 08:44:36 -0700 (PDT)
In-Reply-To: <CAKC-DJiKg4OopATYgjcO7SBPNJ7t6+LA1bPWemjXL8e54gwrsw@mail.gmail.com>
References: <CAKC-DJiKg4OopATYgjcO7SBPNJ7t6+LA1bPWemjXL8e54gwrsw@mail.gmail.com>
Date: Sun, 26 Oct 2014 11:44:36 -0400
X-Google-Sender-Auth: tMudDUMdhxovg2P3QL7_3TlQpFk
Message-ID: <CAKC-DJgB7pLBuV=+e7tpoBfFJwJW31v=P-nUw7EW7KFyXtu8Wg@mail.gmail.com>
From: Erik Nygren <erik@nygren.org>
To: "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="089e013a20329254510506554aa2"
Received-SPF: pass client-ip=209.85.220.174; envelope-from=nygren@gmail.com; helo=mail-vc0-f174.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.764, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: maggie.w3.org 1XiQ0A-0003Tt-DT a57eb348a969ab7b16534faa032535f9
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Alt-Svc-Used indicator granularity (ext#34)
Archived-At: <http://www.w3.org/mid/CAKC-DJgB7pLBuV=+e7tpoBfFJwJW31v=P-nUw7EW7KFyXtu8Wg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/27750
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: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

> I can potentially see why it might be interesting to learn about the
> difference between shifting load and upgrades of various sorts.  But
> if that is all that you need, then we probably want to limit the
> information to just that.

Reviving this thread.  As we get into implementation details, Alt-Svc-Used
isn't terribly useful as-is.
In particular, the changing protocol+port use-case is so different from the
changing host use-case
in terms of when they get used that it becomes problematic for the load
balancing case to not
be able to distinguish these.

For the simplest possible, what about having Alt-Svc-Used have three values
rather than two?

   - 0 = Alt-Svc was not used
   - 1 = Alt-Svc was used to change port and protocol (ie, service port !=
   origin port and service proto != default origin scheme's proto)
   - 2 = Alt-Svc was used to change host (ie, service host != origin
   authority host)

I'd be interested to hear if anyone else is looking at implementing Alt-Svc
on
the server side and what other considerations they have encountered.

         Erik




On Fri, Aug 22, 2014 at 6:38 PM, Erik Nygren <erik@nygren.org> wrote:

> For discussion of https://github.com/httpwg/http-extensions/issues/34
>
> -----------------
>
>  The current Alt-Svc-Used indicator is a boolean ("0"/"1"), due to the
> desire to preserve privacy.
> Based on some explorations of how this would be implemented on the server
> side, we realized that this doesn't provide enough information to
> distinguish between the different use-cases for Alt-Svc. In particular, a
> server would have no way to know if just the protocol was changed, or if
> both the protocol and host were changed. If we start using multiple Alt-Svc
> sources (such as DNS) this also becomes relevant.
>
> An option short of including (proto,host,port) in Alt-Svc-Used would be to
> include a better indicator of how the Alt-Svc was used. This could be
> either a bitmask or a string of tokens. For example, with a bitmask:
>
>    - 1 = Alt-Svc was used to change protocol (ie, service proto !=
>    default origin scheme's proto)
>    - 2 = Alt-Svc was used to change port (ie, service port != origin port)
>    - 4 = Alt-Svc was used to change host (ie, service host != origin host)
>    - 8 = Alt-Svc was obtained via Alt-Svc header
>    - 16 = Alt-Svc was obtained via ALTSVC frame
>    - 32 = Alt-Svc was obtained via DNS record (reserved, not yet defined)
>
> With a token approach, short character strings could replace the bitmask.
> In either case this would result in a value like:
>
> Alt-Svc-Used: 20
> Alt-Svc-Used: h,f
>
> For load-balancing, this would make it possible to infer the
> (proto,host,port) that may have been used in cases where it differs by
> use-case but is consistent within a use-case.
>
> This would also significantly help with debuggability on the server side.
>
> (that Issue also mentions some editorial issues that we should resolve
> after answering this.)
>
>