Re: [hybi] It's time to ship

Ian Fette (イアンフェッティ) <ifette@google.com> Mon, 10 January 2011 18:14 UTC

Return-Path: <ifette@google.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 9FD723A6B06 for <hybi@core3.amsl.com>; Mon, 10 Jan 2011 10:14:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -103.76
X-Spam-Level:
X-Spam-Status: No, score=-103.76 tagged_above=-999 required=5 tests=[AWL=-1.684, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_51=0.6, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D95lWiQm7RpZ for <hybi@core3.amsl.com>; Mon, 10 Jan 2011 10:13:59 -0800 (PST)
Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.67]) by core3.amsl.com (Postfix) with ESMTP id 9EBC23A6AFF for <hybi@ietf.org>; Mon, 10 Jan 2011 10:13:58 -0800 (PST)
Received: from kpbe12.cbf.corp.google.com (kpbe12.cbf.corp.google.com [172.25.105.76]) by smtp-out.google.com with ESMTP id p0AIGBtu023858 for <hybi@ietf.org>; Mon, 10 Jan 2011 10:16:11 -0800
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1294683372; bh=3u9Wz0PqpFQq7nWgsfXq7NlJioQ=; h=MIME-Version:Reply-To:In-Reply-To:References:Date:Message-ID: Subject:From:To:Cc:Content-Type; b=L7DkdfYIHG2Kw7NqfoE4bBZIDTvD52kr+4NyDGVigfv7IjQHavopKqXt4fHTAayPo qWMOPTdooSDbZXocP3WoQ==
Received: from qwe5 (qwe5.prod.google.com [10.241.194.5]) by kpbe12.cbf.corp.google.com with ESMTP id p0AIEG4T010107 for <hybi@ietf.org>; Mon, 10 Jan 2011 10:16:10 -0800
Received: by qwe5 with SMTP id 5so22151563qwe.26 for <hybi@ietf.org>; Mon, 10 Jan 2011 10:16:09 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:mime-version:received:received:reply-to :in-reply-to:references:date:message-id:subject:from:to:cc :content-type; bh=QkeMrRa2KrXSJ+lLEh0wnOY/PT+uOoGDXqQ4qAPL4Vc=; b=nX6qo+MoND4e09XPcnCD7i57oOl69alVUGeNMM9laXpYHqAqFGOEe/qUZz1GIN88pc H4PtRquMDFLCXm2myJhA==
DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; b=XKZq5SA97IvjkoBWg+aQRKqlHi3SzYDGNERZGqnnfV8oOWOO8NtccqbH7xKC3aCL4n znB5czeDgtsxquWDkkHw==
MIME-Version: 1.0
Received: by 10.229.81.11 with SMTP id v11mr4945358qck.152.1294683369704; Mon, 10 Jan 2011 10:16:09 -0800 (PST)
Received: by 10.229.0.137 with HTTP; Mon, 10 Jan 2011 10:16:09 -0800 (PST)
In-Reply-To: <20110110065408.GL5743@1wt.eu>
References: <AANLkTim2VGfH2FiJ4iH85wYiuXNKQ1Arh1C1Kg4M58Fs@mail.gmail.com> <20110109224228.GU5743@1wt.eu> <AANLkTikgB+Ju-k0obs9it7TOsy8B1jaCYv8zBpB9dEa_@mail.gmail.com> <20110110065408.GL5743@1wt.eu>
Date: Mon, 10 Jan 2011 10:16:09 -0800
Message-ID: <AANLkTimqw7Dri=m_Fj6Jai=KK59xVt_YVEM+AXTczPYq@mail.gmail.com>
From: "Ian Fette (イアンフェッティ)" <ifette@google.com>
To: Willy Tarreau <w@1wt.eu>
Content-Type: multipart/alternative; boundary="0016364274d9590eb6049981f6ad"
X-System-Of-Record: true
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] It's time to ship
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: ifette@google.com
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 10 Jan 2011 18:14:00 -0000

On Sun, Jan 9, 2011 at 10:54 PM, Willy Tarreau <w@1wt.eu> wrote:

> Hello Ian,
>
> On Sun, Jan 09, 2011 at 10:08:13PM -0800, Ian Fette
> (????????????????????????) wrote:
> > >  - you're using the OPTIONS method. The WG's consensus was voted as
> using
> > >    GET. While technically working, OPTIONS limits some possibilities
> since
> > >    no path is sent to the server.
> > >
> > >
> > I agree it is important to be able to identify between various resources
> on
> > a server. E.g. for our use, we will have multiple different websocket
> > endpoints, and we want our frontend to be able to dispatch to the
> > appropriate backend based on the information in the handshake. That said,
> I
> > think the draft allows for that (Sec-WebSocket-URL), or as pointed out on
> > another thread, it appears OPTIONS does allow for a path component. So, I
> > think we should be able to resolve that point.
>
> Once again,I'm not opposed at all to this point. I'd even say that would it
> not have been accepted as a consensus in the last poll, I'd probably have
> voted for it. It's just that it's a change from what was planned till now
> and participants need to express their opinion on that point.
>
> > >  - your proposal involves AES-128-CTR. As was discussed here, it seems
> > > there
> > >    are still export regulations for certain countries eventhough
> they're
> > >    apparently fading out. It could still be a problem for companies who
> > > want
> > >    to export products to some countries and which never had to put
> crypto
> > > in
> > >    them.
> > >
> >
> > It would be nice to understand if this is actually a hard constraint.
> > AES-128-CTR has the benefit of being well understood, as well as fast, as
> > demonstrated by Maciej in another thread. That said, I don't care
> strongly
> > one way or another here.
>
> One of my issue with it is that despite being fast, it's a lot slower than
> simpler masking. I design software components to be used at the border side
> of infrastructures to dispatch the traffic to multiple servers, and I'm
> very much concerned by the performance limitations. On a machine which has
> normally no issue processing 10 Gbps of HTTP, I could not even process 1
> Gbps
> of WebSocket with large contents. This is much concerning because it
> implies
> that in order to build the stream analysers we've talked about in the past,
> it will become mandatory to install expensive crypto acceleration cards.
> This
> is not logical for a protocol which is supposed to be transferred in clear
> (ws:// as opposed to wss://). Checking for forbidden words, dangerous links
> or forbidden contents on campus sites will be much more expensive due to
> this
> masking algorithm alone.
>
> > >  - several people on the list asked for the ability to be able to
> disable
> > >    the masking in some well-controlled environments (eg:
> server-to-server
> > >    communications). I see no provisions for this.
> > >
> > >
> > There's nothing that would prevent you from writing an extension that
> would
> > disable the masking, from my understanding.
>
> Adam did not seem favorable to that.
>
> > >  - it has not yet been stated whether only the payload or also the
> framing
> > >    should be masked. Your proposal masks both, which means that it
> > > definitely
> > >    blocks any possibility of performing multiplexing later. There does
> not
> > >    appear to have been a consensus in this area yet.
> > >
> > >
> > I'm not sure why this would block the possibility of multiplexing. I
> would
> > agree that would be a problem if it were the case. However, a number of
> the
> > early proposals for multiplexing included something like a stream-id in
> the
> > frame. This could still be present. Though it would be masked, so would
> the
> > length and other things that a meaningful intermediary would care about,
> so
> > assuming the intermediary was capable of un-masking, is this an issue?
>
> Yes, and you got the point : if the ID is masked, how to you know which
> stream it is in order to pick the right unmask key ? At least the stream
> ID will have to be unmasked. If we prepend it before the frame, it means
> a new framing format. Till not it was suggested to have it in the frame.
>
>
So, you're saying that with the XOR masking where the entire content
required to unmask the frame was included in the frame, it would be easier
for an intermediary to thus examine the frame? I agree that it would be
easier, and that in the AES method it would require an intermediary to be
"active" instead of "passive", e.g. terminate the connection at the
intermediary. I personally think that's a good argument towards XOR, but am
personally not heavily invested either way as I think for our uses, we would
be terminating at the "intermediary" anyways.


> > >  - Greg proposed to replace the MORE bit with a FIN bit so that the
> first
> > >    hello frame from the server starts with a high bit set, thus
> ensuring
> > >    that we can break the connection on non-HTTP compliant
> intermediaries
> > >    which would expect a second response after the 101.
> > >
> > >
> > The draft Adam sent out is based on an intermediate version I had checked
> > into SVN, back when it looked like we were gaining speed on CONNECT. I
> > didn't yet get around to flipping MORE/FIN, but I don't have any
> ojbections
> > to this.
>
> OK.
>
> > > Those are just a few notes, it's really not easy to changes :-/
> > >
> >
> > There's a tool on the IETF to diff drafts. I find it quite helpful, that
> > said, a lot of text has changed because I had already started to make
> other
> > requested changes (including trying to resolve the HTTP compliance issue,
> by
> > stating the requirements of the handshake rather than stating send X
> bytes,
> > send Y bytes, ...). This makes the diff a bit harder to interpret, for
> sure.
>
> Ah, OK. Till now I'd only use the automated diffs between incremental
> drafts,
> I did not know that there were other tools.
>
>
http://tools.ietf.org/rfcdiff :)


> Regards,
> Willy
>
>