Re: Expected Client Response to SERVER_BUSY

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Thu, 21 February 2019 16:46 UTC

Return-Path: <mikkelfj@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 5452512F1AC for <quic@ietfa.amsl.com>; Thu, 21 Feb 2019 08:46:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 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_NONE=-0.0001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=unavailable 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 qBsfDlaalrAG for <quic@ietfa.amsl.com>; Thu, 21 Feb 2019 08:45:57 -0800 (PST)
Received: from mail-io1-xd31.google.com (mail-io1-xd31.google.com [IPv6:2607:f8b0:4864:20::d31]) (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 94109128B01 for <quic@ietf.org>; Thu, 21 Feb 2019 08:45:57 -0800 (PST)
Received: by mail-io1-xd31.google.com with SMTP id y6so2105431ioq.10 for <quic@ietf.org>; Thu, 21 Feb 2019 08:45:57 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=XxuGhHyagCWA8nnembQM9rlgpWuutvc0036HqK0L8KM=; b=fvXOH43+a4L+zvNJt/RTOOlXhOYNKxg+T/9z63/xaHdQeMKyky8tX/VBySOfIIkgzo sfqLrspdQLcZA8xDC+RIvxYpSNsE1TPGFKSlsw4jHqm4dqnVXklPG9G2Qe+/e7jVo8cw xC77dvgSYPvFIhPsLXUrinNArdps4W1xWn7Kt363IjKYOIoasGVFVziYOPmsDMFqkz0W d12+nrHzpRQC1D0V9I3vqKx29jZ7hhdSLRPwoT9FsiMI3biLa24nyIYV4fXtFklSiUC8 TNeCidLBRqeTbkdst0xQH/lSEbmqubrCbariJxoFJsUuTNF/tvPyMgcHA0F5bDRwCO1I IztQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=XxuGhHyagCWA8nnembQM9rlgpWuutvc0036HqK0L8KM=; b=R2AWjuaUgUOIG/04BuBhkDGs2t5F84B9LEXTaHsjxgLQA5hZJ82cJvyNqMUHqyic6n XoCwzDhXyryJ2U6w0T+z4z9wfmG9s+POr8Rc4XnEtwmHPxZl/u8v2U2/T+JiGW74WAja AYQxCDLrIPPBq3DZ4s1CXra1jSPwu2WS5T+412yCi43QSM51PyQ4S5wi/iZts06vnc72 kKS3noz8BK1vScw9yPzTFSq8poNKUpZvzsaNfeUoBHAYuI24njp1FufbCQY0mcbQX1z4 qRIAVHEco8wQlFuEimTrGXG5dMgRhbYrVIVl1kB6PzU35ivZK8zmV0cSkMRc6rydBFsh FA0w==
X-Gm-Message-State: AHQUAuZKzEPF4xWoK6KxciEUaxKsidKWDOJG/HqI4eugo2OBRkwQvwx/ altDTvO4xUi04PZKUm28mH4YYHUJVLBk/kUpIC0=
X-Google-Smtp-Source: AHgI3Iab3O7bwouCREzlhGHtiC2Y/Yssq92CFKzKmJgUeTouBVwlKYsp2/6Zi/mX8j2katJZoeIrmkMm092fOSUEXvY=
X-Received: by 2002:a6b:5b01:: with SMTP id v1mr21864202ioh.12.1550767556660; Thu, 21 Feb 2019 08:45:56 -0800 (PST)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Thu, 21 Feb 2019 08:45:55 -0800
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
In-Reply-To: <CAKcm_gMJoNLxKA8N-ZhmO-Ac=gzE0eGb9fZsgvLBQGSyiSTttQ@mail.gmail.com>
References: <CY4PR21MB0854341128C64E450E7C2DA2B37C0@CY4PR21MB0854.namprd21.prod.outlook.com> <CAKcm_gPmQiMhzfXnkEB4u+X+84bCbL8FE3Lj3ZdPPQBBu+4uPg@mail.gmail.com> <1AF7E952-4542-4C40-8652-BFFBFA61784A@trammell.ch> <CAKcm_gN11=DcV2v-JrX+Ym88D7P1Ey3rDvYomTf1seemsWDSwA@mail.gmail.com> <CY4PR21MB0854D8F7383CDF72EEDAE9FBB37D0@CY4PR21MB0854.namprd21.prod.outlook.com> <CALZ3u+Zmau+167msd9+OGcU+V00+__yLK83ByNEqvWhm7yFORg@mail.gmail.com> <CY4PR21MB0854E1E9AAF564CD8B12305CB37D0@CY4PR21MB0854.namprd21.prod.outlook.com> <CALZ3u+b_NqyrSAkqiuXnnVVL+T0XiExPDUP5JyuzvZVaXqHtCA@mail.gmail.com> <a861dc7b-c1a4-fa72-649a-4f98050aa6f5@huitema.net> <CALZ3u+YxHeVuF-27pjO6gGZ__RT7Y9cAx0vE+x-n8vJbWM+L6g@mail.gmail.com> <CC1D0429-A09E-4844-90B9-2C053FE583E8@fb.com> <CALZ3u+Y1X0XxfbbiAH1S-fajz3nXybGP3tqED6tYQmsihzCzQw@mail.gmail.com> <FCB33D12-C23D-4F5F-BF26-5CA7DF911DEA@tik.ee.ethz.ch> <CY4PR21MB08547DE83CD0670F804D9B45B37E0@CY4PR21MB0854.namprd21.prod.outlook.com> <CAKcm_gMJoNLxKA8N-ZhmO-Ac=gzE0eGb9fZsgvLBQGSyiSTttQ@mail.gmail.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Thu, 21 Feb 2019 08:45:55 -0800
Message-ID: <CAN1APdfH3aJTmkvDSFXHdv3Q7ciJqVX8q0AXU09iFCc_Z0geUw@mail.gmail.com>
Subject: Re: Expected Client Response to SERVER_BUSY
To: Ian Swett <ianswett=40google.com@dmarc.ietf.org>, Nick Banks <nibanks=40microsoft.com@dmarc.ietf.org>
Cc: Praveen Balasubramanian <pravb@microsoft.com>, Mirja Kühlewind <mirja.kuehlewind@tik.ee.ethz.ch>, IETF QUIC WG <quic@ietf.org>, Roberto Peon <fenix@fb.com>, Töma Gavrichenkov <ximaera@gmail.com>
Content-Type: multipart/alternative; boundary="00000000000058183c05826a35fd"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Asc0PGUY1yWDMCU7W8iSHBMOUrU>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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: Thu, 21 Feb 2019 16:46:01 -0000

Exponential backoff hopefully has a backstop (unlike the Iphone lockout
incident when you entered the wrong pin too many times).
How about a background QUIC poll ever so often while pursuing other
interests. Even if the connection cannot be used per se, it can provide
useful information. That might to an extend deal with some of the
interference events (3, 5).

On 21 February 2019 at 17.01.17, Ian Swett (
ianswett=40google.com@dmarc.ietf.org) wrote:

When the handshake fails for any reason, Chrome stops attempting to use
QUIC for 5 minutes to that hostname, and if the Alt-Svc is still present 5
minutes later(ie: it hasn't been cleared), then the next request to that
hostname after 5 minutes will try QUIC again.  If that QUIC handshake
fails, Chrome exponentially backs off and waits 10 minutes before trying
again.

An old, but fairly accurate doc describes this:
https://docs.google.com/document/d/1i4m7DbrWGgXafHxwl8SwIusY2ELUe8WX258xt2LFxPM/edit
<https://docs..google.com/document/d/1i4m7DbrWGgXafHxwl8SwIusY2ELUe8WX258xt2LFxPM/edit>

I think breaking it down by reason makes sense, as you suggest.  If the
handshake fails due to a connection close, not trying that hostname for 5
minutes seems like a reasonable approach.  If you receive no packets in
response, then it might make more sense to assume that UDP 443 is blocked
completely and not try QUIC at all for 5 minutes(unless you have other
active/recent QUIC connections).

This is an area of heuristics, so we should be careful not to over-specify
what a client should do, but I'd be happy to see a bit more detail on the
blackhole and connection close cases at least.  I'm also curious what
people think we should do in response to 3 or 5?

On Thu, Feb 21, 2019 at 10:43 AM Nick Banks <nibanks=
40microsoft.com@dmarc.ietf.org> wrote:

> I read that section, generally, as you should support fallback to TCP. No
> real specifics.
>
> I'm asking if we should add more. As Ian had already alluded to the client
> might take the Alt-Svc into account when falling back. How is it supposed
> to decide what to do if that says QUIC is available, but right now they
> just get a SERVER_BUSY error from QUIC?
>
> It might be worth calling out a few possible scenarios that might be
> encountered and recommend a course of action. I can think of several
> scenarios that a client might encounter that might be interested to
> describe:
>
> 1. Client gets no response ever.
> 2. Client only gets a response after a long time.
>
Defining 'a long time' is hard. I'd avoid trying to specify behavior for
this case separately.

3. Client gets some kind of protocol error in response (bad middlebox?).
> 4. Client gets a valid connection close in response.
> 5. Client handshake eventually fails (perhaps tampered with).
>
> Thanks,
> - Nick
>
> -----Original Message-----
> From: QUIC <quic-bounces@ietf.org> On Behalf Of Mirja Kühlewind
> Sent: Thursday, February 21, 2019 7:33 AM
> To: Töma Gavrichenkov <ximaera@gmail.com>
> Cc: Praveen Balasubramanian <pravb@microsoft.com>; IETF QUIC WG <
> quic@ietf.org>; Roberto Peon <fenix@fb.com>
> Subject: Re: Expected Client Response to SERVER_BUSY
>
> As pointer out earlier in this thread there is text in
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-ietf-quic-applicability%2F&amp;data=02%7C01%7Cnibanks%40microsoft.com%7C0084d6c04e284f76cfd508d69811e099%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636863599903286321&amp;sdata=KO36Bt6jX5Xe%2B379FOfLYviKQNPRhJrwILSQr6oPKSA%3D&amp;reserved=0
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf..org%2Fdoc%2Fdraft-ietf-quic-applicability%2F&amp;data=02%7C01%7Cnibanks%40microsoft.com%7C0084d6c04e284f76cfd508d69811e099%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636863599903286321&amp;sdata=KO36Bt6jX5Xe%2B379FOfLYviKQNPRhJrwILSQr6oPKSA%3D&amp;reserved=0>
> (section 2).
>
> Do you think anything else is needed?
>
>
>
> > Am 20.02.2019 um 23:56 schrieb Töma Gavrichenkov <ximaera@gmail.com>:
> >
> > > This mechanism provides a very low CPU cost fast fallback to TCP
> > > under DoS attacks until all infrastructure can support QUIC natively
> >
> > There are [a] few use cases when switching from TCP to QUIC v1 (in its
> current state) is not feasible because of huge operational costs. So it
> would be a more long term solution than that, probably till v2 or even
> further.
> >
> > > anything we do to allow non-malicious ones to respond appropriately
> > > requires pre-sharing, or for the connection to succeed
> >
> > The question here is basically how to ensure the latter given a X00 Gbps
> attack scale if you're neither Facebook nor Google.
> >
> > > In some circumstances, falling back to TCP may be something that the
> > > application shouldn't do
> >
> > Well, maybe, but then IMO the consequences of not being able to benefit
> from switching to TCP if you're doing certain things with QUIC should be
> outlined in the spec. Again, this is an application-level thing *now*, but
> formerly the transport used to take full care of it, and the change in that
> sort of breaks the habit of the users.
> >
> > --
> > Töma
>
>