Re: [hybi] Comments on draft-ietf-hybi-permessage-compression-05

Takeshi Yoshino <tyoshino@google.com> Tue, 12 March 2013 12:13 UTC

Return-Path: <tyoshino@google.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4E07421F8A06 for <hybi@ietfa.amsl.com>; Tue, 12 Mar 2013 05:13:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.377
X-Spam-Level:
X-Spam-Status: No, score=-101.377 tagged_above=-999 required=5 tests=[AWL=-0.001, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_64=0.6, NORMAL_HTTP_TO_IP=0.001, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id clfLdEKqG4G5 for <hybi@ietfa.amsl.com>; Tue, 12 Mar 2013 05:13:29 -0700 (PDT)
Received: from mail-wg0-x22a.google.com (mail-wg0-x22a.google.com [IPv6:2a00:1450:400c:c00::22a]) by ietfa.amsl.com (Postfix) with ESMTP id 88ED621F89E2 for <hybi@ietf.org>; Tue, 12 Mar 2013 05:13:28 -0700 (PDT)
Received: by mail-wg0-f42.google.com with SMTP id 12so3174521wgh.3 for <hybi@ietf.org>; Tue, 12 Mar 2013 05:13:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=0GcwOfszatRmI56k8jpSXj44ypYtTUfg4QVmDJHKEpM=; b=pHv2LUd/0g6K8IjG0jHhdmwbyjqo0GzSn/bd70OIQ2PGrhJ/wSc9m8S6HxL+gz5MO1 j+VU+qLMJlXlY0Sxp5V63d9P/zLB4UWiTmCnZs2a/lO4t5HbafIx0Xsyqo2oPwBoCmMU BanjNH6iKsmTVX7+rXtshSeg/6jZGcs5fCyNITWCV+IstCTo2jCon7WUU9iwBV2PrjPz owYjsF0l/f1hIbqmOo4bwhXazydcubec/Uch9EQk/b7RQiLtR1sOVY7cU4Dq2tByKaeN LhfQmzTFGWUIFCaCqbAZtUM2qA3IMO0gv51GJbfUUicyrAehDFK17ZFbap8CWEyh5Fqc lSlQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type:x-gm-message-state; bh=0GcwOfszatRmI56k8jpSXj44ypYtTUfg4QVmDJHKEpM=; b=XSLBJdSe5xnHfzOuh7FQTAsZAA1Rpw5DZZ8Uzokqs67B4yN2oVNURwTOhL9S/oDhRT T9rmmRrI3708Pd5scNP71hGFaxz8pQNiXPfDWOEZJmleO6pD/cmKdyrzkn1/kISbgOsK Vcfyssr49rOu50zchhLHV0ApsBP1x8lV9wmS9/qsY8Fo6GDjJYdTzQOpQYUA/+caKbxo kMTTYYa5Ogu8HltAQZcHcsD6N1uvlpUFbXfZ3XV4R1f+lSn0gDNHTI5BUL5pAizdsLua oQWAL2wdf7D3woVEkkKl/gxL0l+vFut64yIgLCjvDh59zrsmNaqvBGanypBZmN8qi4FF PMDw==
X-Received: by 10.194.82.34 with SMTP id f2mr26132990wjy.25.1363090407356; Tue, 12 Mar 2013 05:13:27 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.194.234.198 with HTTP; Tue, 12 Mar 2013 05:13:07 -0700 (PDT)
In-Reply-To: <6.2.5.6.2.20130223175715.094d8508@elandnews.com>
References: <6.2.5.6.2.20130223175715.094d8508@elandnews.com>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Tue, 12 Mar 2013 21:13:07 +0900
Message-ID: <CAH9hSJZT6-5szxCoHPROujqKZSXumLmi8TKqN11w6oEfcOOpXg@mail.gmail.com>
To: SM <sm@resistor.net>
Content-Type: multipart/alternative; boundary="047d7beb95c087164704d7b9374a"
X-Gm-Message-State: ALoCoQm2GRi2QlPwVxxC0Zr3dALX+4YwSoiKyT7UNBlDz62/yQqdZqNTnvvM4XJiUPeVplb9+3rv4b0jNgwEVR/yYOA5Lvhggwwg4Fl7pKo5nPn5IOuYXjXOefIXFym0npcu7O3hjJS6iAbgXu3n7MpqGm8OPk5nklSumxhjhMwHPTqZkzkxft+6cC0IF0JiSiiOxkL6FZQF
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] Comments on draft-ietf-hybi-permessage-compression-05
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/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: Tue, 12 Mar 2013 12:13:30 -0000

On Sun, Feb 24, 2013 at 11:59 AM, SM <sm@resistor.net> wrote:

> Hi Takeshi,
>
> This is an individual comment on draft-ietf-hybi-permessage-**compression-05.
>  I did not cover all the issues.  Sorry for not providing ample explanation.
>
>
Thank you so much. It's fine but let me ask you to elaborate some of them.


> In Section 1:
>
>  "_This section is non-normative._"
>
> This style is unusual for IETF Stream documents.  I suggest switching back
> to the usual style.
>

Yes. I've removed them.


>
>   "As well as other communication protocols, the WebSocket Protocol
>    [RFC6455] can benefit from compression technology."
>
> The sentence would benefit from a rewrite.  It could alternatively be
> dropped.
>

Dropped.


>
> I suggest first specifying the framework and then go into the details.  I
> would look at the Introduction Section in terms of providing an
> introduction to the topic and after that a view of what to expect in the
> other sections so that there is a "logical" flow.  Sorry for not describing
> this in better terms.
>
>
Yes. I've revised overall organization of the document.


> In Section 3:
>
>   'Extensions build based on this framework are collectively
>    called "Per-message Compression Extensions".'
>
> Where is there an explanation for the framework?
>
>
Added.


>   'To request use of a Per-message Compression Extension, a client
>    MUST include an element with its extension token in the
>    "Sec-WebSocket-Extensions" header in its opening handshake.'
>
> What is "element" and what is "extension token"?
>

I tried to point "extension" in the ABNF for the Sec-WebSocket-Extensions,
but there's no good name (such as extension descriptor, extension
definition, maybe) given for that part in RFC 6455.

"Sec-WebSocket-Extensions header element" might be shortest description.
Otherwise, we need to write clauses for each occurrence of element or
define our own alias for it.

Regarding introduction section, I just removed the detail.


>
>   "A client MAY list multiple Per-message Compression Extensions
>    with the same name to offer use of the same algorithm with
>    different configurations."
>
> Why is this a MAY?
>

It's intended to clarify it's ok to send multiple offers with the same
name. I've rewritten the sentence using the text suggested by Barry.


>
>   "The parameters MUST be derived from the parameters sent by the
>    client and the server's capability."
>
> What is the meaning of "the parameters must be derived"?
>

Erased during addressing Barry's comments.


>
>   'To reject use of a Per-message Compression Extension, a server MUST
>    simply ignore the element in the "Sec-WebSocket-Extensions" header in
>    the client's opening handshake.'
>
> This is not clear.
>

Erased during addressing Barry's comments.


>
>   "If a client doesn't support the extension and its parameters replied
>    from the server, the client MUST _Fail the WebSocket Connection_."
>
> What is the meaning of "MUST _Fail"?
>

It's commonly used in RFC 6455. Maybe you meant that I should cite RFC 6455
and define the term in this document. Done.

Done too for _the WebSocket Connection is established_ event.


>
>   "Otherwise, once _the WebSocket Connection is established_, both
>    endpoints MUST use the algorithm described in Section 4 to exchange
>    messages."
>
> This comes out as IF requirement1 ELSE requirement2.
>
> I suggest explaining how the protocol should work.  Error handling could
> be part of that.
>
> In Section 4.1:
>
>   "To send a compressed message, an endpoint MUST use the following
>    algorithm."
>
> I only need to know the format to use to send the compressed message.  I
> suggest looking at it from that angle instead of specifying an algorithm.
>
> In Section 5.2.1:
>
>   "The ABNF [RFC5234] for the value of this parameter is 1*DIGIT."
>
> I suggest following the usual practices for ABNF (see existing RFCs for
> examples).
>
>
Not sure which is the most supported format...

Rewrote referring to httpbis documents. I.e.

  c2s_max_window_bits = 1*DIGIT

and added a section about terminology and cited RFC 5234 in it.


> Each section seems like a standalone part of the draft.  In Section
> 5.3.2.1:
>
>   "The first 2 octets are the WebSocket protocol's overhead (FIN=1,
>    RSV1=1, RSV2=0, RSV3=0, opcode=text, MASK=0, Payload length=7)."
>
> I suggest using ASCII art for illustration.
>

Basically I feel like it's too much. But yes, it's good to show an example
of a diagram with the RSV1 is set once.

Done.


>
>   "To send it after fragmentation, split the compressed payload and
>    build frames for each of split data as well as fragmentation process
>    done when the compression extension is not used."
>
> I suggest avoiding the tutorial approach.  I would look at this as what
> goes on the wire.
>

Sorry I couldn't get what you mean.

Using "To A do B" format is bad?


> In Section 6:
>
>   "There are no security concerns for now."
>
> This is going to flag this as an issue.  I suggest thinking about the
> security considerations.  There must be something which could go wrong.
>

Added one concern (citing CRIME attack).


>
> The basic idea is there.  It is a matter of having text to explain that.
>  I suggest avoiding sentences like 'Then, a block containing "llo"
> follows.' as it will create more work for the RFC Editor.


Which part of the sentence is bad for the RFC Editor?


>  The draft unfortunately has to be rewritten.  It is better not to make
> liberal use of RFC 2119 key words.  I suggest using them for
> interoperability.


Could you please point a sentence which is considered to be making liberal
use of the key worlds? I tried to remove inappropriate use but couldn't
find so many.


>  RFC 6709 discusses about design considerations for extensions.  It could
> be used as guidance.  I suggest looking at some other RFCs discussing about
> extensions to get an idea of the possible styles and then choosing one.
>
> Regards,
> -sm
>
>
>
>
Takeshi