Re: Invariants draft

Martin Thomson <martin.thomson@gmail.com> Mon, 04 December 2017 00:49 UTC

Return-Path: <martin.thomson@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1E182127136 for <quic@ietfa.amsl.com>; Sun, 3 Dec 2017 16:49:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CnOU5iAdsNFW for <quic@ietfa.amsl.com>; Sun, 3 Dec 2017 16:49:51 -0800 (PST)
Received: from mail-ot0-x232.google.com (mail-ot0-x232.google.com [IPv6:2607:f8b0:4003:c0f::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 61A78127137 for <quic@ietf.org>; Sun, 3 Dec 2017 16:49:51 -0800 (PST)
Received: by mail-ot0-x232.google.com with SMTP id i1so13377025oth.9 for <quic@ietf.org>; Sun, 03 Dec 2017 16:49:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=FbbilvEzFmAPnfrPLEjAqt64aQr+Zer09Ay0EJx+YTU=; b=V836pKnY0EeUu0n/SZ56ffo6+YGBTmWw3M8py/cxNojc/rOJBjwUPxGABlIdcIWx2W d3dM65HZaJqWsIdBo5COz8oUcjpz/w5Yj6xJ7Q7oyTluAX08l70Q14HfcOIL/PCFUnBd YT1vy0VGgzTw59+32c90eDJxD4gqXc/8DqY/aAMlOexAasJL/T7mHz9QQujhQTC0QpK0 qa9tAysrcTXYSaZppAfJiew1uyt/SciouHEz1Rkr1nnWolAdddAkRht3z/i9olhJwt7Z 2knM1kCvCgibP+7N5aU6m/I7z+18NiOMev/PdxqjOL175rR0Za8EtN86+nAr72imFJOE JcOQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=FbbilvEzFmAPnfrPLEjAqt64aQr+Zer09Ay0EJx+YTU=; b=EUQDyopDUEFwFTJxrnypQNeZuoYF0l4ve+ybbFXnmQIAljqh/lqSISi1zvI4XLY+yU LaLFf89le+oPnWvNPVFixC3tQGemNMLvmnHMY++4f0hpMNS7OgEvdw//4zH6pGVVY4wf /8O5XWYsgQLLvtrafNiZdDaDavkKgpPc/+Nzr+xVMHxWc4zUSOIeJ8kYgS1vEFLL8Mw1 dfqnqLqs9FE+z8BGjcgPU575uWW6DlYJMOqouP/wVSk8YVVdBb3sTiWgj2uAgYxZQCu4 02gvXF2Oi+ei1uUf51+KqysoGwMxWR7sJtwbeojGeJEanac/8+dpsHnPTiYLqppTelt4 TtPw==
X-Gm-Message-State: AJaThX7Qud8nyKUbh8yDaWpazZYILT0vId6m7Fivsr0mKXzZY3a5qCLq HZ2TXXQCmTv89Cx2tlEfp7zK4LMp75ZxHunb+9CTc1Tu
X-Google-Smtp-Source: AGs4zMYx77isOU7NgR23hJ0s8T8kqUWVWcduWa8TA4GyKTfumP+BIv3PkEx2enVq4zKPZadR0N/nssiUEzdi3b+T8NQ=
X-Received: by 10.157.74.4 with SMTP id h4mr14219066otf.308.1512348590593; Sun, 03 Dec 2017 16:49:50 -0800 (PST)
MIME-Version: 1.0
Received: by 10.157.8.11 with HTTP; Sun, 3 Dec 2017 16:49:50 -0800 (PST)
In-Reply-To: <440a603c-2924-a260-c477-ecb42a84ec5c@huitema.net>
References: <CABkgnnVr7jQ2=fFM+OOgk0-=Fseze8fT3xwWBOj-4CWTOtbq1Q@mail.gmail.com> <440a603c-2924-a260-c477-ecb42a84ec5c@huitema.net>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Mon, 04 Dec 2017 11:49:50 +1100
Message-ID: <CABkgnnUBYegURBTK-sH51jmfDnc8KTyaRE3EYH-V385=be-wXQ@mail.gmail.com>
Subject: Re: Invariants draft
To: Christian Huitema <huitema@huitema.net>
Cc: QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/0seqDgiIh4rfT3IM4gpidS-Hu9w>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 04 Dec 2017 00:49:53 -0000

Thanks for the comments Christian.  I think that this is one of the
most important points to reach agreement on, mainly because we get
stuck with the outcome for a long time.

On Fri, Dec 1, 2017 at 3:46 PM, Christian Huitema <huitema@huitema.net> wrote:
> As far as the general approach is concerned, your draft leaves me
> somewhat uneasy. I understand the concern to beat ossification, and to
> ensure that future developers can easily define and use extended
> versions of QUIC. But at the same time, I am concerned with the tension
> between "focusing on extensibility" and "ensuring interoperability".

I don't think that this dichotomy is - as you make it - as serious as
that.  It's a reflection of a design philosophy.

The philosophy reads like this: It's easier to design a protocol
without extensibility points.  Designing good and usable extensibility
is really hard.  So you invest your effort into designing a
replacement strategy and only add the extensibility you know that you
need.  No matter how much of the protocol you mess up, as long as you
can replace the entire protocol, you are never stuck.

When we did HTTP/2, we had ALPN.  We could have added a *lot* more
extensibility to HTTP/2 than we did, but we didn't because we knew
that HTTP/3 was always a possibility.  That raised the bar for
extensibility mechanisms, and I think we produced a better result,
more quickly for it.

For QUIC, this doc attempts to define that pivotal mechanism.  That
doesn't mean that QUIC version 2 will be substantially different.  On
the contrary, I expect that we'll make new versions with only modest
changes.  But those changes might *appear* to be significant.  The
hope is that significant changes will be possible because the protocol
won't be so ossified as to make them impossible.

You might think that this is familiar to Adam Langley's views on
extensibility.  That is "have one joint and keep it well oiled" --
<https://www.imperialviolet.org/2016/05/16/agility.html>.  That's not
coincidental.  I happen to agree, see
<https://datatracker.ietf.org/doc/html/draft-thomson-use-it-or-lose-it>.

This is part of the defense against ossification, but it's not
complete.  As Brian will point out, the actual wire image of a
protocol is what ossifies, not what we say that the wire image is.
But as you observed, we're working on improving that too.