Re: Upgrade status for impl draft 1

Roberto Peon <grmocg@gmail.com> Fri, 22 February 2013 13:16 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 (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5A7C321F8EB3 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 22 Feb 2013 05:16:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.547
X-Spam-Level:
X-Spam-Status: No, score=-10.547 tagged_above=-999 required=5 tests=[AWL=0.051, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uSCy+ILl32Gu for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 22 Feb 2013 05:16:06 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 084B321F8E58 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 22 Feb 2013 05:16:06 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1U8sSV-0003P1-NQ for ietf-http-wg-dist@listhub.w3.org; Fri, 22 Feb 2013 13:14:39 +0000
Resent-Date: Fri, 22 Feb 2013 13:14:39 +0000
Resent-Message-Id: <E1U8sSV-0003P1-NQ@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1U8sSN-0003OC-3v for ietf-http-wg@listhub.w3.org; Fri, 22 Feb 2013 13:14:31 +0000
Received: from mail-oa0-f54.google.com ([209.85.219.54]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1U8sSL-0004bP-NI for ietf-http-wg@w3.org; Fri, 22 Feb 2013 13:14:30 +0000
Received: by mail-oa0-f54.google.com with SMTP id n12so564689oag.41 for <ietf-http-wg@w3.org>; Fri, 22 Feb 2013 05:14:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=0THa4+6YbXV4SFG/PWgWColeTILRCJXWatYLvldQNR8=; b=BuDXjHA4fOZuELicKrKu5oOOpCnzQp8pmbH0WMOWxV3XwUDszwDAdS6N2K4ijn4mX0 xIPpSoyDLfUcb4Spc842rd3oz+b392M/D+S/NKMQjRqo+TiUasTWRcDNgs/ENXqhRs6i M+ij/VlQ+bREVgrjzCCd9ntPrkO3kL22Z8TSPaDip/ryhxElLw18XmTVtnuQ4ZrhpgKU dRpgZlBTp8BKaOonfKJ96XvO7UcZ4B5Tx9UOiHudwdflBleFnmBT4tR0TOT9oHRo1BtM A5NjorlN0yhCuSb7CRHJcH19e3U097DOWIeSNsTu88XU0gqeTTIkL5IAK7W4FLXKa4+h X5fA==
MIME-Version: 1.0
X-Received: by 10.60.3.233 with SMTP id f9mr769612oef.32.1361538843698; Fri, 22 Feb 2013 05:14:03 -0800 (PST)
Received: by 10.76.167.193 with HTTP; Fri, 22 Feb 2013 05:14:03 -0800 (PST)
In-Reply-To: <20130222070214.GA14218@1wt.eu>
References: <B0FC9D1E-08EF-4275-9851-C8F33F24FF00@mnot.net> <20130222070214.GA14218@1wt.eu>
Date: Fri, 22 Feb 2013 05:14:03 -0800
Message-ID: <CAP+FsNfsNV1Ra1U3KT9u7D5NxYTNO_CVaG4u90MELbwq2fUU-A@mail.gmail.com>
From: Roberto Peon <grmocg@gmail.com>
To: Willy Tarreau <w@1wt.eu>
Cc: Mark Nottingham <mnot@mnot.net>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="e89a8ff242ab20643b04d64ff717"
Received-SPF: pass client-ip=209.85.219.54; envelope-from=grmocg@gmail.com; helo=mail-oa0-f54.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.664, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1U8sSL-0004bP-NI 0834ccd375a948ff2d9a75f86b595e24
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Upgrade status for impl draft 1
Archived-At: <http://www.w3.org/mid/CAP+FsNfsNV1Ra1U3KT9u7D5NxYTNO_CVaG4u90MELbwq2fUU-A@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/16754
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>

Are you proposing following normal Upgrade semantics (that would add an RT,
bleh).
The magic which we have now is intended to make noncompliant intermediaries
barf. We know that Upgrade doesn't work particularly well for this from WS
experimentation, and a successful Upgrade (as viewed from the server's
perspective) doesn't necessarily mean that you're free-and-clear to talk in
the next protocol.

So, if you're doing an HTTP/1 upgrade, you'd do that, and then do the
HTTP/2 magic, and then proceed with the SETTINGS frame, etc.
I suspect you may be saying roughly the same thing??
-=R


On Thu, Feb 21, 2013 at 11:02 PM, Willy Tarreau <w@1wt.eu> wrote:

> On Thu, Feb 21, 2013 at 08:11:08PM +1100, Mark Nottingham wrote:
> > Based upon discussion both at the Interim and subsequently, this is
> where I
> > think we are for the upgrade/negotiation process, at least in terms of
> the
> > 1st implementation draft:
> >
> > 1. HTTPS URLs
> >    - use NPN (or its replacement); uses OPAQUE TOKEN to negotiate
> >    - NO magic
> >    - SETTINGS first
> >
> > 2. HTTP URLs
> >
> >   a. existing connection / new connection without context
> >       - Upgrade Dance; uses OPAQUE TOKEN to negotiate
> >       - NO magic
> >       - SETTINGS first
> >
> >   b. new connection with context (e.g., because you used DNS hint, header
> >   hint, prior knowledge)
> >      - NO upgrade dance
> >      - Magic
> >      - SETTINGS first
> >
> > The decision as to whether to use 2(a) or 2(b) in a particular situation
> is
> > up to implementations, but of course we'll give (non-normative) guidance.
> >
> > Does this make sense to everyone?
>
> I'm still having a problem with the principle behind 2b : when you
> pass through transparent intercepting proxies, by definition you're
> not aware of it. So even if 2a worked for the first connection, it
> does not preclude that 2b will work for the second one. Nor the DNS
> will BTW.
>
> And the issue I'm seeing is that 2b will require HTTP/2->2 proxies to
> be deployed along all the path for this to succeed. If 2->1 proxies
> are deployed, then we lose all benefits for 2.0 by terminating the
> optimizations close to the client. Let's consider the following
> common path :
>
>   [ cli ]---->[ ISP proxy ]--~~ internet ~~-->[ SRV proxy ]---->[ server ]
>
> ISP proxy is the transparent proxy/cache at the client's ISP's, and SRV
> proxy is the ADC on the server side. Eventhough the server side is fully
> 2.0 compatible and advertises it via the DNS, until the ISP proxy is not
> a true 2.0->2.0 proxy, we'll have the following possibilities :
>
> Upgrade connection : creates a tunnel between CLI and server, end-to-end
> 2.0 (just like with TLS) :
>           2.0                      2.0                      2.0
>   [ cli ]---->[ ISP proxy ]--~~ internet ~~-->[ SRV proxy ]---->[ server ]
>
> Magic, ISP proxy not aware at all : second connection fails, client has
> to fall back to 1.1 (or switch back to Upgrade ?) :
>           1.1                      1.1                      1.1
>   [ cli ]---->[ ISP proxy ]--~~ internet ~~-->[ SRV proxy ]---->[ server ]
>
> Magic, with ISP proxy being a 2.0-to-1.1 gateway :
>           2.0                      1.1                      1.1
>   [ cli ]---->[ ISP proxy ]--~~ internet ~~-->[ SRV proxy ]---->[ server ]
>
> Magic, with ISP proxy being a 2.0-to-2.0 gateway :
>           2.0                      2.0                      2.0
>   [ cli ]---->[ ISP proxy ]--~~ internet ~~-->[ SRV proxy ]---->[ server ]
>
> The last case (2.0-to-2.0 gateway) will not happen soon, and I really
> believe that because of this, we'll be much more often in second then
> third case above where 1.1 only is used on the long path.
>
> Likewise, it is not said how such 2.0 should pass through explicit proxies,
> while the Upgrade provides such a solution.
>
> Why not consider the Upgrade request the "magic" itself ? In fact it's
> exactly that. I understand the complexity that the Upgrade can cause if
> we require the server to process the early requests in 1.1. But if we
> consider that it's just a prefix, there is no "dance" at all. It's just
> the same as what was proposed in 2817 for TLS upgrade, we connect to the
> other endpoint and establish a tunnel. No need to support multiple setup
> methods.
>
> Regards,
> Willy
>
>
>