[hybi] permessage-deflate parameter negotiation

Tobias Oberstein <tobias.oberstein@tavendo.de> Wed, 12 June 2013 17:20 UTC

Return-Path: <tobias.oberstein@tavendo.de>
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 87AB821F9AD3 for <hybi@ietfa.amsl.com>; Wed, 12 Jun 2013 10:20:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
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 R8sipMLjahtV for <hybi@ietfa.amsl.com>; Wed, 12 Jun 2013 10:20:34 -0700 (PDT)
Received: from EXHUB020-4.exch020.serverdata.net (exhub020-4.exch020.serverdata.net [206.225.164.31]) by ietfa.amsl.com (Postfix) with ESMTP id 583E521F9A72 for <hybi@ietf.org>; Wed, 12 Jun 2013 10:20:32 -0700 (PDT)
Received: from EXVMBX020-12.exch020.serverdata.net ([169.254.3.90]) by EXHUB020-4.exch020.serverdata.net ([206.225.164.31]) with mapi; Wed, 12 Jun 2013 10:20:31 -0700
From: Tobias Oberstein <tobias.oberstein@tavendo.de>
To: "hybi@ietf.org" <hybi@ietf.org>
Date: Wed, 12 Jun 2013 10:20:30 -0700
Thread-Topic: permessage-deflate parameter negotiation
Thread-Index: Ac5njnHLF5b8/7S6QyiFAzrIo7JCrw==
Message-ID: <634914A010D0B943A035D226786325D4422DDFD452@EXVMBX020-12.exch020.serverdata.net>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: de-DE, en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: [hybi] permessage-deflate parameter negotiation
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: Wed, 12 Jun 2013 17:20:39 -0000

After implementing permessage-deflate client/server and with all features, I think the initial
parameter negotiation is by far the most complex part of the extension.

I still have some questions. To keep it simple, here are a couple of examples:

1)
client offers:
permessage-deflate; c2s_max_window_bits

server response:
permessage-deflate; s2c_no_context_takeover

2)
client offers:
permessage-deflate; c2s_max_window_bits

server response:
permessage-deflate; s2c_max_window_bits=10

3)
client offers:
permessage-deflate; c2s_max_window_bits ; s2c_max_window_bits=10

server response:
permessage-deflate; s2c_max_window_bits=8

4)
client offers:
permessage-deflate; c2s_max_window_bits; s2c_max_window_bits=10

server response:
permessage-deflate; s2c_max_window_bits=12

===

Chrome Canary fails 1 + 2 (bails out "Received an unexpected permessage-deflate extension parameter").

Chrome offers a fixed "permessage-deflate; c2s_max_window_bits", so I could not test 3 and 4.

The current draft (in my reading) allows 1 + 2, but not 3, and not 4.

I think 1-3 should be successful, and 4 failed by client.

As in my other mail, I also think a client should explicitly announce support for "c2s_no_context_takeover":

permessage-deflate; c2s_max_window_bits; c2s_no_context_takeover

/Tobias