Re: Design: Ignored Unknown Frame Types and Intermediaries

Martin Thomson <martin.thomson@gmail.com> Mon, 13 May 2013 21:15 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 5DF1621F870F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 13 May 2013 14:15:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.479
X-Spam-Level:
X-Spam-Status: No, score=-6.479 tagged_above=-999 required=5 tests=[AWL=4.120, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
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 R9K4QD2msRpn for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 13 May 2013 14:15:30 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 35F0621F9195 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 13 May 2013 14:15:28 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Uc04Y-0000zY-6v for ietf-http-wg-dist@listhub.w3.org; Mon, 13 May 2013 21:14:18 +0000
Resent-Date: Mon, 13 May 2013 21:14:18 +0000
Resent-Message-Id: <E1Uc04Y-0000zY-6v@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <martin.thomson@gmail.com>) id 1Uc04M-0000au-51 for ietf-http-wg@listhub.w3.org; Mon, 13 May 2013 21:14:06 +0000
Received: from mail-wi0-f174.google.com ([209.85.212.174]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <martin.thomson@gmail.com>) id 1Uc04L-0000rj-Dn for ietf-http-wg@w3.org; Mon, 13 May 2013 21:14:06 +0000
Received: by mail-wi0-f174.google.com with SMTP id c10so1401196wiw.1 for <ietf-http-wg@w3.org>; Mon, 13 May 2013 14:13:39 -0700 (PDT)
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=dteEcyBwo7mN1Oj+pe/Amga/bw16bb7SdG/VjpWLO6c=; b=lvV0OlG4Ax9YEK8SWgXcB3xLlgr1YH4gUEn0pvTjUMv9wbzqnngYafP5tvExTnuEJ8 X2BysheoGXiV6EpElyifRouTCt1qi/QHlBy8ywxqiRUL+rwlimeq16jgeFN7QKEPhXsQ g9DJKNyjWTARZoPcag/Qrh7nl6JGjM1ZZ2kjbx4wVhoV5Tkpr2N1w7QJe2xhzmOoEpp+ 7parZpUI/kVAN1JsT0GVaBL4pK0NZsXU4v4Q8MaTb9ZL0PrpaTxieusj+JbEviRdn6a2 kpA79OQXZ7/L8fUEbEwbmTqFCcvrP9WL6e/7S5TTqoMni271/56jKmOhWwXZwA64przt hHbw==
MIME-Version: 1.0
X-Received: by 10.180.189.41 with SMTP id gf9mr22329443wic.32.1368479618040; Mon, 13 May 2013 14:13:38 -0700 (PDT)
Received: by 10.194.33.102 with HTTP; Mon, 13 May 2013 14:13:37 -0700 (PDT)
In-Reply-To: <CAP+FsNd3260xnQG8JU3UQkkSwaVhVgwkDPPcR02W_W0q12+HFw@mail.gmail.com>
References: <CABP7Rbfko48A0yAceDeHfQKR7S6aW7AAAqCZroaZzTScTooOvw@mail.gmail.com> <09C78900-966B-46B0-AB97-1394FD05849A@checkpoint.com> <CAP+FsNe2L2aZbDhM4OiWmh7b7f0HkrVfGwa6aKkD2ohNNKJHxg@mail.gmail.com> <2124BAB0-8FF1-4D6D-BBD8-F042B1EA5F7B@checkpoint.com> <CABP7Rbf+H=WarqFaV0UM5On-3FkYAspkC4OBzh1HE6EpQow94w@mail.gmail.com> <CAP+FsNd3260xnQG8JU3UQkkSwaVhVgwkDPPcR02W_W0q12+HFw@mail.gmail.com>
Date: Mon, 13 May 2013 14:13:37 -0700
Message-ID: <CABkgnnXJRHu_LsD+Fq9dTNi9Sqfmj0GQMBGO9QzZy6DCfxSJAQ@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: Roberto Peon <grmocg@gmail.com>
Cc: James M Snell <jasnell@gmail.com>, Yoav Nir <ynir@checkpoint.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: text/plain; charset=UTF-8
Received-SPF: pass client-ip=209.85.212.174; envelope-from=martin.thomson@gmail.com; helo=mail-wi0-f174.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.697, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1Uc04L-0000rj-Dn d399430ed1c3627afef174ffea463d22
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Design: Ignored Unknown Frame Types and Intermediaries
Archived-At: <http://www.w3.org/mid/CABkgnnXJRHu_LsD+Fq9dTNi9Sqfmj0GQMBGO9QzZy6DCfxSJAQ@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17976
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>

On 13 May 2013 11:37, Roberto Peon <grmocg@gmail.com> wrote:
> James:
> Can you construct a case where, if you follow the rule spelled out in my
> earlier email, you fail to achieve interop (because I can't)?

It's trivially possible to construct a scenario where this happens,
but only if you don't write down a "MUST ignore" rule.  Once the rule
is in place, then you are constraining future extensibility.  A "MUST
ignore" rule is the easiest rule to get right, but there are other
models you can use.

> The rule is, essentially:
> If a party to the communication ignores (or removes) something it don't
> understand, that must not screw up the session.

The ignore/remove distinction is very important.  You can't
selectively remove; it's all or nothing.  Either remove everything you
don't know about or leave it all in.

This consideration, along with James' hop-by-hop question does suggest
a relatively simple way out:

All unsupported/unknown frames that have a non-zero stream identifier
MUST be ignored.  If a stream is forwarded by an intermediary, all
unsupported/unknown frames MUST either be forwarded or removed; an
intermediary MUST NOT selectively forward unsupported frame types.
Unsupported/unknown frames with a zero stream identifier MUST be
ignored and MUST NOT be forwarded.

> That implies that, when you add anything that must be interpreted, it then
> must be declared in the version string (i.e. new version) and thus agreed
> upon by both parties up front, and if you don't negotiate that other
> version, you don't get to add frames whose removal would screw up the
> session.

Yeah, we addressed that early on.  If you want to guarantee that the
other guy is going to support something, either work out how to agree
in-session (with those ignored frames) or negotiate a new protocol.