Re: Exercising Version Negotiation

Ted Hardie <ted.ietf@gmail.com> Mon, 26 March 2018 20:30 UTC

Return-Path: <ted.ietf@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 D74C91276AF for <quic@ietfa.amsl.com>; Mon, 26 Mar 2018 13:30:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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 semJXTPRrMPT for <quic@ietfa.amsl.com>; Mon, 26 Mar 2018 13:30:37 -0700 (PDT)
Received: from mail-oi0-x22f.google.com (mail-oi0-x22f.google.com [IPv6:2607:f8b0:4003:c06::22f]) (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 2489B126CC4 for <quic@ietf.org>; Mon, 26 Mar 2018 13:30:37 -0700 (PDT)
Received: by mail-oi0-x22f.google.com with SMTP id x20-v6so17008422oie.2 for <quic@ietf.org>; Mon, 26 Mar 2018 13:30:37 -0700 (PDT)
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=9PHLvV/FSk1ML1PmfVeiQJjq4kRAVOArnj8lja9EfJo=; b=qJJkQnd+kXxjqAJyYUN54RlS9h4Es5dLr6y6t901A0lZe7w7qbX862oH97kCtUOAdm ANY62jaFdGWxUYQaKONOieMD0Yk1mwg8+A4zhDvpGnEYP1kxcmpbnHmODFrJkVT3kEkB mvSi/zSXKvvKCZXXLJak9tKedKyWFrLmKbHbshroP35wwdigHZS2CHY6S6q+iVugqNaY Glp7bdB8yWC/E6vE84/ZlFO6iVM5uiWM1afzRIA63iJo6eTJHGQZNm0BixmXs1Q+U//N oVxzLyib+srumP+UmKiviGSfd39jPGstKDSpLrVfqnlefqPByuxlSIe6wPsKWS6r+nXD eydQ==
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=9PHLvV/FSk1ML1PmfVeiQJjq4kRAVOArnj8lja9EfJo=; b=FPQt+nIRFQWI4fBlKyA9Sjx435IFNhrzANcpmPHD6u+Nqj5gclEwWx9sZHwTK9eIR6 X4mKo0lONAVzBYaUjzhFU61HCRnVh23MSmfWRcHSxl6a/KLG1i2qs+CDvlGbBugnloaG 6AlnsiIva6SVKjZ01PTFeL7IIOcWPpE8NX0CtMZyjnw6DlFt7DHDoqEJl51IcmjnnoKz A+Q4Bn0gHGsN9Qf2wd6zPBofv4P+VCoDl8dGxqngpZMJz/zmk7w4AxCsVaGkIayZjIaE j99+ryg5lt9uTnKD2BhN9fMM/6anyM7FZAfMDTcY1D5Jktcx59nNTdWsbsSg+2/ty9Ex j6aA==
X-Gm-Message-State: AElRT7FiYrfuYXeQ8+VTafMEByscQN82HtCCcI273CDYc0sANcXVJP/v cFH53L/2KjNsbGF+aX1rvN8/T46KQIUvXvkJUW0=
X-Google-Smtp-Source: AIpwx4/oZ2oH17VO57RBHVuw9hzddHIJwTdAJ9L2Cp4MWmF7L9zk3r9iZ+gpXZJT2XzN3y4GUlALlOSW/29fpFRoXiA=
X-Received: by 10.202.71.198 with SMTP id u189mr726230oia.45.1522096236150; Mon, 26 Mar 2018 13:30:36 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.74.7.27 with HTTP; Mon, 26 Mar 2018 13:30:05 -0700 (PDT)
In-Reply-To: <8ed89135-e878-473a-9c44-d3f1b9ce16b1@huitema.net>
References: <CABcZeBMv5BqZOtgVA2wfqaaGCd94gcNPB9bTXkrvNXXRveU8wA@mail.gmail.com> <CAJ_4DfQ6zqVeUUF7XcoT110kVcP1BJFEtqVR-+FN5XD2UuRMMA@mail.gmail.com> <CABcZeBMVNy151rFntLutSPtctPsd2Ei3Qy-ChuEXVMVpz4pgdQ@mail.gmail.com> <SN1PR08MB1854DD71FDCB9FBA48DD26E9DAA90@SN1PR08MB1854.namprd08.prod.outlook.com> <CAJ_4DfQxcxNGNP9CW3poPqnFgUsrNy269dO2Lf0dvWBFKKsSHg@mail.gmail.com> <CABcZeBNfw6MjjgeqQct11g6Kf=4xy+zVZiBRMwwzhtKB2rWHZg@mail.gmail.com> <CAJ_4DfRCNRHajNfFdedg6O54mjydWt+ooRESJZQ5L0sZmcwmXg@mail.gmail.com> <9A92D490-1F4F-457D-9209-C19E154E4881@fb.com> <CAJ_4DfSNA0wMnvzxSy1bHU5VTdKujP6oZAtwn8DUNwnX97yLDQ@mail.gmail.com> <8ed89135-e878-473a-9c44-d3f1b9ce16b1@huitema.net>
From: Ted Hardie <ted.ietf@gmail.com>
Date: Mon, 26 Mar 2018 21:30:05 +0100
Message-ID: <CA+9kkMDHQ94e2SBZ_kSEW2vnFy99V6zp7w9OPOXtGtxuODtFFQ@mail.gmail.com>
Subject: Re: Exercising Version Negotiation
To: Christian Huitema <huitema@huitema.net>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a113e51c67845e6056856a5ec"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/9WcqLB2zocZFZJrv7zK7bpAbn4I>
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, 26 Mar 2018 20:30:39 -0000

On Sat, Mar 24, 2018 at 11:30 AM, Christian Huitema <huitema@huitema.net>
wrote:

>
> Perhaps we should look at it differently. What do we really want to
> teach to the middle-boxes? I think the message should really be, "do not
> try to lock on a specific version number".  And doing that with just two
>
versions will not work. The middle boxes will just learn those two
> versions, and we will not be able to introduce a third one. We want to
> see plenty of mostly unpredictable versions proposed by clients, and we
> want these unpredictable version numbers to result in successful
> connections most of the time.


So, the key second part to this question is "what am I willing to pay to
teach the middleboxes this?"  Everyone in the thread agrees that the basic
currency is round trips, but we seem to be divided on what the going rate
is (in percentage of flows that should pay).

I have a terrible idea about that, but it does shift the currency from
"round trips" to "additional connections".  The precis is:  exercise
version negotiation by opening additional connections that use the
functionality.

In this model,  a client with a successful open connection to server $foo
knows what versions it supports and can construct a flow that will incur
version negotiation.  Periodically, it will open such a flow, successfully
negotiate a version after paying the RTT, then ask for a small set of
resources which it already has.  It can throw them out at the end, as they
will not impact application functionality (since this is all on the main
flow).  If it is in a constrained environment (low available bandwidth,
battery, etc.), it can skip the whole thing.

Middleboxes will thus see some number of flows that exercise version
negotiations, but the impact to the application running QUIC is small.  The
impact on the network is variable to the tuning of the rate.

Some potential objections:

The middlebox operators will read the spec and decide they can ignore these
flows entirely.
While this is possible, nat variability will mean middleboxes at later
stages of the path may not see these as on the same 5-tuple, and so
ignoring them will be hard.

This is too expensive in client and server resources, since the data will
be tossed.
This is subject to tuning, so the expense can be managed.  You could also
decide to use the second connection to retrieve newly needed resources, if
the application is appropriate to that, but deciding when that is
appropriate is fairly difficult.

What connection id do you use for this?
Personally, I'd use a new one, but if we start looking at connection
replacement strategies more generally, we can throw this into the mix.

As I said this is a bad idea, given the potentially wastefulness, but
hopefully it will unstick a better one.

Ted