RE: Treatment of ICMP for PMTU

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Fri, 06 July 2018 19:43 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 17013130EF3 for <quic@ietfa.amsl.com>; Fri, 6 Jul 2018 12:43:55 -0700 (PDT)
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=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 JS-0S5VPQBvF for <quic@ietfa.amsl.com>; Fri, 6 Jul 2018 12:43:52 -0700 (PDT)
Received: from mail-it0-x22e.google.com (mail-it0-x22e.google.com [IPv6:2607:f8b0:4001:c0b::22e]) (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 48301130E6D for <quic@ietf.org>; Fri, 6 Jul 2018 12:43:52 -0700 (PDT)
Received: by mail-it0-x22e.google.com with SMTP id v71-v6so8124832itb.3 for <quic@ietf.org>; Fri, 06 Jul 2018 12:43:52 -0700 (PDT)
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; bh=VZDG18AEP2OunVRyoshF3uLP/B3Go5ORjcji97l9yvM=; b=FjeTHpkqUjmuIo5aGdynkQ3NnBsFLdJUb0cy+rJobLchiZ4uZS0H8zCmkSU1xADbyf rKiHe4h6EyvehcsCmiWdXKFx0XY+2efDyVZWDjj/WGZzXdtzrgFkyoYKlSVMCa8GrtmM ufKdNIwSvsgO7DgEHHKhTluxnJPd0XwXn79m3uMLkawpFXTXBfc9t81svTOk95k5+vOg PPFIhpYwVahpDDk/60G6ScmAu7BXqqah1e2v69ZLQ8eDF+nVFFQxnuV8Gz/+NttbXp/F l5GLj6wS0FFcvBSb5yVKcu9dv7bz1G2vRbO2QnixK8pBIzYEUCzD9bO7w/5cXc1Ihug3 kpBw==
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; bh=VZDG18AEP2OunVRyoshF3uLP/B3Go5ORjcji97l9yvM=; b=Aq9vGmECMJsbGUcv4PDCUdL7ErXf4gA62orTmFBn7ckrCIPJt2aurIqWD5F5xNn1SK kJA06qjQ8eMsqZRz+LkC6kT6EZC96l9t5I4MQ/y84llk1cnASsFAEq0AX8jFcPIByHjp A9paiCP9DvSawqUE7cGXZ/CKt2R14pQ+inRLS1n55RQEVjIMADMd5jhK8PL6VykThpmT Uk/87ZhESJOgDilnY47ON0Dr9USDZy8BWx969+4zp+ZhDx0aEEIBWu3szdlyF3oU2LX+ DO0ULX8JKFdh/DGB1hOSEijbrDc4bOpCJfA3xoHq2SSaKjZOn+3VxEmgPpWQS1Txzj1g ynlg==
X-Gm-Message-State: APt69E2lZdyd4usU2l88ZzHhrUUIKBI4ffU7A5mVQk/VVFByqNVS+J2X pYExseIYs5QGXIcz2JlVOhmh0TuCXFbus4sqkYbLCg==
X-Google-Smtp-Source: AAOMgpdo0UTKH1+vB+qkNeuQ107mtMpHJQ1ZlmdY6p03MbuIhn79dgXU3+yHSbwHaFUE2vmNA2pC3DRj27ajkURw9rk=
X-Received: by 2002:a24:534c:: with SMTP id n73-v6mr9288342itb.25.1530906231519; Fri, 06 Jul 2018 12:43:51 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Fri, 6 Jul 2018 15:43:50 -0400
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
In-Reply-To: <7CF7F94CB496BF4FAB1676F375F9666A3BB6B21B@bgb01xud1012>
References: <924fbd75dbcf4d62a9062570b0d2ba5a@ustx2ex-dag1mb5.msg.corp.akamai.com> <7CF7F94CB496BF4FAB1676F375F9666A3BB5B9DC@bgb01xud1012> <2f0e251a9b274272968a8b3053d3a3a5@ustx2ex-dag1mb5.msg.corp.akamai.com> <7CF7F94CB496BF4FAB1676F375F9666A3BB5BA29@bgb01xud1012> <4674cc2be90e4b5b9056cc63a0735664@ustx2ex-dag1mb5.msg.corp.akamai.com> <7CF7F94CB496BF4FAB1676F375F9666A3BB5BA9B@bgb01xud1012> <CAN1APdeH5yQELW9wv4Oj=UtaVcC=zCNz6su8_R-hrB3T8_Yp2w@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A3BB6B21B@bgb01xud1012>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Fri, 06 Jul 2018 15:43:50 -0400
Message-ID: <CAN1APdfp4U=1vN6fWStr3Ck=Fa6rtbvTmaXYcw=buVGC8+Tg2g@mail.gmail.com>
Subject: RE: Treatment of ICMP for PMTU
To: Lucas Pardue <lucas.pardue@bbc.co.uk>, IETF QUIC WG <quic@ietf.org>, Martin Duke <martin.h.duke@gmail.com>, "Lubashev, Igor" <ilubashe@akamai.com>
Content-Type: multipart/alternative; boundary="0000000000001d471f057059e291"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/mTWU71X7dHPpd0PPMPB_FfvCm_M>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.26
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: Fri, 06 Jul 2018 19:43:56 -0000

Hi Lukas, thanks for working on this.

It’s a bit much for me swallow in detail so I can only provide some general
thoughts.

QUIC recently added extension frames that require IANA registry, but there
is an endless supply.
This could be used to define semantics suitable for lossless packets in a
very straightforward manner that may be simpler than Partial Reliability
once that lands because you just add a tunnel header and ship the frame as
if it were a UDP packet without ACK’ing it. There needs to focus on flow
control all the same. That could be tricky.

Now, adding extension random frames for something that aims to be standard
outside of QUIC is probably not optimal, especially considering that
QUIC/v2 is sort of expected to deliver something similar. In fact, this
could be great input for a v2 use case. I imagine there won’t be a one size
suits all partial reliability feature. In part because tunneling doesn’t
even want partial reliability, just unreliability - i.e. not attempt at
ordering what is received, if it is received.

Additionally, the constraint that tunneling should happen not just over
QUIC but QUIC/HTTP adds additional constraints because QUIC/HTTP would not
automatically add an extension frame. It might even not really support
partial reliability in v2 in a way that is well suited for the problem. On
the other hand, QUIC/HTTP seems to be infinitely hackable, so you could
abuse unistreams to create packets - but likely that would sink
unsuspecting end-points not optimized for that.

Now, I don’t know that much about HTTP tunnelling - but - it might be
possible to use QUIC/HTTP as a signalling path and create a separate QUIC
connection for payload with either an extension frame, or a future v2
unreliability feature, or even an official tunnelling frame.

Given that QUIC is encrypted, it becomes harder for middleware to block
non-HTTP, so the question is: why does it need to be over HTTP? If the
answer is that middelware still knows too much - perhaps QUIC should fix
that.

So, I think the best option would probably be to wait for v2 and do some
studies with extension frames meanwhile and possibly play with signalling
via QUIC/HTTP if it must be HTTP.


But all of this just based on intuition and no deep knowledge of tunneling
protocols.

Mikkel


On 6 July 2018 at 17.00.44, Lucas Pardue (lucas.pardue@bbc.co.uk) wrote:

Mikkel, Igor,

In case you don't follow HTTPbis: I have published an I-D [1] [2] that
surveys options for tunneling of UDP and IP. It presents some options for
framing but it is not exhaustive. There's a slot on the agenda to discuss
things there.

I added a HoL section in response to your earlier comments. I'm looking for
input on whether such tunneling should depend on partial reliability in
QUIC (bearing in mind that there may be some desire to support TCP-based
HTTP).

Kind regards
Lucas

[1]
https://tools.ietf.org/html/draft-pardue-httpbis-http-network-tunnelling-00
[2] https://lists.w3.org/Archives/Public/ietf-http-wg/2018JulSep/0025.html

------------------------------
*From:* QUIC [quic-bounces@ietf.org] on behalf of Mikkel Fahnøe Jørgensen [
mikkelfj@gmail.com]
*Sent:* 28 June 2018 11:07
*To:* Lucas Pardue; IETF QUIC WG; Martin Duke; Lubashev, Igor
*Subject:* RE: Treatment of ICMP for PMTU

I think QUIC needs a tunnel extension frame.

On 28 June 2018 at 11.25.20, Lucas Pardue (lucas.pardue@bbc.co.uk) wrote:

Igor Lubashev wrote:

>I think I see what you are talking about.
>
>At least the way it is specced in H2 and HTTP/QUIC, CONNECT proxies forward
>data streams, not packets. Hence, MTU concept on a tunnel-stream is
>meaningless. The text says it explicitly: "Note that the size and number
of TCP
>segments is not guaranteed to map predictably to the size and number of
>HTTP DATA or QUIC STREAM frames." From the client's perspective there is
>only one PMTU that is relevant -- the one to the proxy. The proxy will keep
>tracks of the PMTUs to the CONNECT endpoints itself and will generate TCP
>segments accordingly.

Right, that's how I was seeing it.

>Trying to design a CONNECT-like method to proxy an entire QUIC connection
>over a single QUIC stream would create HOLB for QUIC packets to and from
>the proxy. Some sort of a partially reliable QUIC stream could help here.

Both you and Mikkel have identified HOL as something that needs more
thought. Thanks. Mikkel's view is a little more extreme, to paraphrase "HOL
is enough to make QUIC not QUIC". I've taken the view that it may be
desirable to tunnel QUIC over TLS/TCP too (perhaps using HTTP/2 frames), so
I view HOL avoidance as an optimisation rather than a requirement. Partial
reliability (of streams, or of some new frame type) could help solve that
puzzle. Now I think about it, a complimentary mitigation could be to
reserve a set of tunnel-streams to provide some basic multiplexing.
However, the complexity of that might not be worth it.

>This proxying scheme would require an extension to CONNECT to open a
>UDP/IP tunnel instead of a TCP/IP tunnel. That extension would also mandate
>that HTTP/QUIC DATA frame corresponds to a UDP frame. I suspect that it
>would be a very good idea for such a proxy to add a new frame for providing
>ICMP-like explicit PMTU feedback to the sender (why leave the sender
>guessing and probing, if the PMTU is already known to the proxy?).

This is good feedback. Thanks!

Kind regards
Lucas