Re: Spin bit discussion - where we're at

Roland Zink <roland@zinks.de> Mon, 27 November 2017 17:36 UTC

Return-Path: <roland@zinks.de>
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 7A848128D19 for <quic@ietfa.amsl.com>; Mon, 27 Nov 2017 09:36:26 -0800 (PST)
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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=zinks.de
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 qCxb14QK5Ng9 for <quic@ietfa.amsl.com>; Mon, 27 Nov 2017 09:36:23 -0800 (PST)
Received: from mo6-p00-ob.smtp.rzone.de (mo6-p00-ob.smtp.rzone.de [IPv6:2a01:238:20a:202:5300::11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 596A7128BA2 for <quic@ietf.org>; Mon, 27 Nov 2017 09:36:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; t=1511804180; s=domk; d=zinks.de; h=Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:X-RZG-CLASS-ID:X-RZG-AUTH:Accept-Language: Auto-Submitted:Cc:Date:From:Message-ID:References:Reply-To:Resent-Cc: Resent-Date:Resent-From:Resent-To:Sender:Subject:To: Content-Alternative:Content-Description:Content-Disposition: Content-Duration:Content-Features:Content-ID:Content-Language: Content-Location:Content-MD5:Content-Transfer-Encoding:Content-Type: MIME-Version; bh=JufUU5pXPLmV5cyMH+DhRdr628kuFmG/gS9BA7ijNd8=; b=COzLVe0qieXRtyjaXjDwYYCGgACRiy65noYBhHOSQIzHuv1E1sg7T7jb/rZ2N97Ghe 4ha67bHXrDJKlAt0HTh+6dhJo/DLo1M+QVQG+CEJpT9lm3wbogKMuyEbS05q5dEljCkO fTQ8dU421YxU+iHTWF8IdemyaPD6Fql6aWrPI=
X-RZG-AUTH: :PmMIdE6sW+WWP9q/oR3Lt+I+9LAZzXrcq8knhvfmBiJzkmKn1oaZ1h8oElTTgmJ6Fg==
X-RZG-CLASS-ID: mo00
Received: from [10.10.10.80] (p57B96C2D.dip0.t-ipconnect.de [87.185.108.45]) by smtp.strato.de (RZmta 42.10 DYNA|AUTH) with ESMTPSA id e03071tARHa8392 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (curve secp521r1 with 521 ECDH bits, eq. 15360 bits RSA)) (Client did not present a certificate); Mon, 27 Nov 2017 18:36:08 +0100 (CET)
Subject: Re: Spin bit discussion - where we're at
To: Christian Huitema <huitema@huitema.net>
Cc: Ingemar Johansson S <ingemar.s.johansson@ericsson.com>, "Gorry (erg)" <gorry@erg.abdn.ac.uk>, "quic@ietf.org" <quic@ietf.org>
References: <AFEE7BBA-E5DC-4064-AA19-33921EAF4C01@mnot.net> <21B07D8C-C4A1-4321-9E43-61C9DB9DC4CA@trammell.ch> <fd09b775-4c0e-9d99-e49c-421212f2e5e4@cs.tcd.ie> <F4F7A438-F30F-406B-9971-DA05DA458B44@netapp.com> <C8DDB9E3-C8F9-49CB-8C6D-E381C00AC02D@trammell.ch> <4D7F4AD313D3FC43A053B309F97543CF4904F2FD@njmtexg5.research.att.com> <CAGD1bZbYjB96nc1ud3xmSm8g6jHhPYpeT=iWWQiZxRzzyVvdRw@mail.gmail.com> <07ef04d5-b211-e605-9f66-fe0ecefa5425@zinks.de> <989A02DE-F8CE-4A50-A2F3-E595B5D4931D@erg.abdn.ac.uk> <DB4PR07MB348CAF067401CD277485464C2250@DB4PR07MB348.eurprd07.prod.outlook.com> <74e1c7bd-bd09-3285-db25-db04fe530cbc@zinks.de> <34BF55EB-8B3E-453C-BAFE-8048B4B94FC5@huitema.net>
From: Roland Zink <roland@zinks.de>
Message-ID: <54e419d4-e4c0-2e9e-93ab-6ff7750e483a@zinks.de>
Date: Mon, 27 Nov 2017 18:36:08 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0
MIME-Version: 1.0
In-Reply-To: <34BF55EB-8B3E-453C-BAFE-8048B4B94FC5@huitema.net>
Content-Type: multipart/alternative; boundary="------------8E591EB1C3F5AC06DF4B4884"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/OWMr5zbttLWUYx7EF3KbtfxwpXE>
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, 27 Nov 2017 17:36:26 -0000

If QUIC makes the problem crystal clear then now seems to be a good time 
to solve or mitigate it before risking it becomes a real world problem.

Roland


Am 27.11.2017 um 17:38 schrieb Christian Huitema:
> The network cannot control the congestion algorithm in the end points. 
> QUIC does not create the problem, just makes it crystal clear. But the 
> network can manage queues. So does the kernel.
>
> -- Christian Huitema
>
> On Nov 27, 2017, at 6:47 AM, Roland Zink <roland@zinks.de 
> <mailto:roland@zinks.de>> wrote:
>
>> I guess the guys which really want to do it will somehow get the 
>> necessary rights (like to load a kernel module) and do it although 
>> this may be difficult if you want to do it on million of devices. I'm 
>> more thinking of a slow process, say app 1 increase the initial 
>> window then app 2 thinks it needs to do the same and back out less 
>> than the default. Then app 1 is doing something and at some point 
>> nobody follows what is (will be) in the RFC. They not necessarily 
>> want to break something but at the end it can result into the same. 
>> It is no longer a single policy which applies to all apps instead 
>> each app comes with its own and the apps often can control both sides.
>>
>>
>> Roland
>>
>>
>>
>> Am 27.11.2017 um 15:14 schrieb Ingemar Johansson S:
>>>
>>> Hi
>>>
>>> I would say that it is perfectly possible to trick e.g. the Linux 
>>> TCP stack to something like what is described below. Just clone 
>>> tcp_cong.c ,
>>>
>>> Change the following lines
>>>
>>> u32 *tcp_reno_ssthresh* 
>>> <https://elixir.free-electrons.com/linux/v3.12/ident/tcp_reno_ssthresh>(struct*sock* 
>>> <https://elixir.free-electrons.com/linux/v3.12/ident/sock> *sk)
>>>
>>> {
>>>
>>> conststruct*tcp_sock* 
>>> <https://elixir.free-electrons.com/linux/v3.12/ident/tcp_sock> *tp 
>>> =*tcp_sk* 
>>> <https://elixir.free-electrons.com/linux/v3.12/ident/tcp_sk>(sk);
>>>
>>> return*max* 
>>> <https://elixir.free-electrons.com/linux/v3.12/ident/max>(tp->snd_cwnd 
>>> >>1U,2U);
>>>
>>> }
>>>
>>> To something like
>>>
>>> u32*tcp_**bloat**_ssthresh* 
>>> <https://elixir.free-electrons.com/linux/v3.12/ident/tcp_reno_ssthresh>(struct*sock* 
>>> <https://elixir.free-electrons.com/linux/v3.12/ident/sock> *sk)
>>> {
>>> conststruct*tcp_sock* 
>>> <https://elixir.free-electrons.com/linux/v3.12/ident/tcp_sock> 
>>> *tp=*tcp_sk* 
>>> <https://elixir.free-electrons.com/linux/v3.12/ident/tcp_sk>(sk);
>>> returntp->snd_cwnd;
>>> }
>>>
>>> Build it and make it a loadable kernel module, you need to rename a 
>>> few other functions as well, and you can call it tcp_bloat.c 😊
>>>
>>> So.. my opinion is that you can perfectly well collapse the internet 
>>> also with TCP. ConEx was introduced as a medicine for this but it 
>>> never gained traction.
>>>
>>> /Ingemar
>>>
>>> *From:* Gorry (erg) [mailto:gorry@erg.abdn.ac.uk]
>>> *Sent:* den 27 november 2017 14:15
>>> *To:* Roland Zink <roland@zinks.de>
>>> *Cc:* quic@ietf.org
>>> *Subject:* Re: Spin bit discussion - where we're at
>>>
>>> See below:
>>>
>>>
>>> On 27 Nov 2017, at 12:32, Roland Zink <roland@zinks.de 
>>> <mailto:roland@zinks.de>> wrote:
>>>
>>>     Am 27.11.2017 um 08:03 schrieb Jana Iyengar:
>>>
>>>         In addition to how the spin bit can be designed and used,
>>>         I'd like those taking on this effort to consider this
>>>         question: Whatever network management problem you're
>>>         considering solving with a bit, what does it take to solve
>>>         this problem without the bit exposed? I'm asking you to
>>>         consider "zero-bit" solutions, or at least for a
>>>         cost/benefit analysis of developing solutions with and
>>>         without the spin bit for specific network management
>>>         functions. Specifically,
>>>
>>>         (i) What's impossible or very difficult to do, from a
>>>         network management perspective, of not having the spin bit?
>>>         Note that I'm not asking for what is and is not measurable
>>>         -- not everything measurable is useful. I'm specifically
>>>         asking in terms of network management functions, in
>>>         practice, as used by operators. Some of this has been
>>>         addressed in the discussions/drafts I've seen, but I think
>>>         it's most useful when framed in terms of network management
>>>         functions.
>>>
>>>     I want to express the question about manageability from a
>>>     different angle. QUIC moves the congestion control from being a
>>>     common functionality in the kernel to application functionality.
>>>     It also hides the protocol handling of congestion from the
>>>     network. This gives incentives for application developers to
>>>     change congestion control to give their application an advantage
>>>     over others. No special rights are necessary. Now the question
>>>     is does QUIC provide enough manageability to avoid an Internet
>>>     (or some part of it) breakdown when it is misused? Can it be
>>>     shown that this can't happen?
>>>
>>> I think this may touch on some of the topics in:
>>>
>>> https://tools.ietf.org/html/draft-fairhurst-tsvwg-transport-encrypt-04
>>>
>>> Although this is focussed on issues wider than Quic, I think the 
>>> points you raise are relevant. This was presented last IETF-100 in 
>>> TSVWG and INTAREA. We would appreciate insight, and comments on 
>>> this.  (I am just about to push new version to correct typos!)
>>>
>>>
>>>
>>>         (ii) What are the alternatives for building the same
>>>         functions without the spin bit? Let's consider for a moment
>>>         that the spin bit isn't actually available in practice. What
>>>         will operators do to continue managing their networks? This
>>>         might be expensive, but that's precisely what I'm looking
>>>         for -- the cost to operators of not having the spin bit. For
>>>         instance, active probes are a fine way to measure network
>>>         RTT within operator networks, and that is an alternative.
>>>         There are surely others too. Their costs and limitations are
>>>         important to know about in order to reason about their
>>>         viability, so I'd like to see alternatives considered.
>>>
>>>     Solutions that only work within an operators network are not
>>>     enough when more than one operator is involved.
>>>
>>> Yes, also true.
>>>
>>> Gorry
>>>
>>>         I don't mean to start the discussion on this thread, but I'd
>>>         like to urge those going off to do the writing to consider
>>>         these questions.
>>>
>>>         - jana
>>>
>>>         On Sun, Nov 26, 2017 at 11:26 AM, MORTON, ALFRED C (AL)
>>>         <acmorton@att.com <mailto:acmorton@att.com>> wrote:
>>>
>>>             Hi Brian, Stephen, Lars, Mark and all,
>>>
>>>             one join, one suggestion, and one question below.
>>>             see [ACM]
>>>             > -----Original Message-----
>>>             > From: QUIC [mailto:quic-bounces@ietf.org
>>>             <mailto:quic-bounces@ietf.org>] On Behalf Of Brian Trammell
>>>             > (IETF)
>>>             > Sent: Wednesday, November 22, 2017 5:59 AM
>>>             > To: Eggert, Lars
>>>             > Cc: Mark Nottingham; QUIC WG; Stephen Farrell
>>>             > Subject: Re: Spin bit discussion - where we're at
>>>             >
>>>             > hi Lars,
>>>             >
>>>             > > On 22 Nov 2017, at 11:35, Eggert, Lars
>>>             <lars@netapp.com <mailto:lars@netapp.com>> wrote:
>>>             > >
>>>             > > Hi,
>>>             > >
>>>             > > On 2017-11-22, at 11:01, Stephen Farrell
>>>             <stephen.farrell@cs.tcd.ie
>>>             <mailto:stephen.farrell@cs.tcd.ie>>
>>>             > wrote:
>>>             > >> What I thought was being requested and what I do
>>>             think is reasonable
>>>             > >> is to document a privacy analysis for any quic
>>>             protocol bits that are
>>>             > >> visible to the path. Whether or not some or all of
>>>             that text ends up
>>>             > >> in some RFC is another day's work.
>>>             > > Lars wrote:
>>>             > > for the Spin Bit specifically, the intent was to
>>>             permanently capture
>>>             > the analysis the DT has done, so that when others
>>>             review the proposed
>>>             > Spin Bit specification, they can take that as a given
>>>             and direct any
>>>             > further analysis to other aspects. It made sense to
>>>             the chairs that that
>>>             > specific analysis should become part of the Spin Bit
>>>             specification. I
>>>             > think we'd be open to a discussion on whether a
>>>             broader document
>>>             > analyzing the QUIC wire image would be a better home
>>>             for this. The main
>>>             > point is for the work that the DT has done to be
>>>             documented.
>>>
>>>             > Brian wrote:
>>>             > Okay. That's somewhat more reasonable than what I read
>>>             the ask to be
>>>             > ("we're going to gate this on the people who care
>>>             about this doing some
>>>             > non-trivial amount of work"). Those of us who
>>>             volunteer (help, please,
>>>             > anyone? :) ) can certainly pull together what we have
>>>             in a single I-D
>>>             > and ask the WG what more it thinks it needs. To me all
>>>             this seems pretty
>>>             > clear, but I've been working on this topic for a while.
>>>             [ACM]
>>>             Having reached the end of the "Thanksgiving thread",
>>>             I'm scrolling back a few pages to join the task of
>>>             permanently capturing the work of the DT in an I-D (at
>>>             least):
>>>             There should be lasting value in some of our findings
>>>             and IMO they are worthy of a persistent reference.
>>>
>>>             > Lars wrote:
>>>             > > For proposals other than the Spin Bit (I think I
>>>             have seen individual
>>>             > contributors at least mention "loss" and "congestion"
>>>             bits, but without
>>>             > much detail), we wanted to clarify that we'd like to
>>>             see an analysis and
>>>             > discussion of their privacy aspects to roughly the
>>>             same degree as the DT
>>>             > has performed for the Spin Bit proposal.
>>>             >
>>>             [ACM]
>>>             I suggest that this might be a different I-D, at least
>>>             to start.
>>>             Question: Is there a privacy analysis of present ECN
>>>             available?
>>>             (a search yielded many results with Missing: privacy)
>>>
>>>             regards,
>>>             Al
>>>
>>