Re: [quicwg/base-drafts] DPLPMTU merge tweaks (#3702)

Jana Iyengar <notifications@github.com> Mon, 01 June 2020 02:57 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 66BD53A0B3B for <quic-issues@ietfa.amsl.com>; Sun, 31 May 2020 19:57:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.101
X-Spam-Level:
X-Spam-Status: No, score=-8.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 BR4EOZEwq-JQ for <quic-issues@ietfa.amsl.com>; Sun, 31 May 2020 19:57:02 -0700 (PDT)
Received: from out-21.smtp.github.com (out-21.smtp.github.com [192.30.252.204]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 96CFA3A0B22 for <quic-issues@ietf.org>; Sun, 31 May 2020 19:57:02 -0700 (PDT)
Received: from github-lowworker-c5134a3.ac4-iad.github.net (github-lowworker-c5134a3.ac4-iad.github.net [10.52.23.55]) by smtp.github.com (Postfix) with ESMTP id D835CA0C4B for <quic-issues@ietf.org>; Sun, 31 May 2020 19:57:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1590980221; bh=ByO/L4fezxpv/fHqx7bsCHxRiXMGtbNX5Ww+z+mGpLY=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=rjAHo5gjfexB0UFFhc76gCjssdKwvZqqxaxoD1zPqROVzrjzzN1GnXYh5LKP7PVDg wr+e/bvROCuzX3Ypb2ZkFJaCcjxhdbjLPdLmKAbvbE75rEfcpAOuM68CTMMidd2ecg erZor5rdK3tyLbzDGx2MUOwAg0j1QDpT2CRNaGow=
Date: Sun, 31 May 2020 19:57:01 -0700
From: Jana Iyengar <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK76SF5OAIG232YZDAN44BHX3EVBNHHCKRI54E@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/3702/review/421566019@github.com>
In-Reply-To: <quicwg/base-drafts/pull/3702@github.com>
References: <quicwg/base-drafts/pull/3702@github.com>
Subject: Re: [quicwg/base-drafts] DPLPMTU merge tweaks (#3702)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5ed46e7dc673a_36fb3fac520cd968167817"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: janaiyengar
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/5FIVWcwh-9DwWUJS_Wtwn7QkOF0>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Jun 2020 02:57:12 -0000

@janaiyengar commented on this pull request.

Thank you for your changes! I think it might be useful to distinguish the "IP packet" from how we commonly use "packet", so I propose (i) simply use "PMTU probe", and (ii) saying explicitly what that refers to. I've made some suggestions through the text to this end; see what you think.

> @@ -3795,37 +3795,48 @@ later time in the connection.
 # Packet Size {#packet-size}
 
 The QUIC packet size includes the QUIC header and protected payload, but not the
-UDP or IP header.
+UDP or IP headers.
+
+QUIC depends upon a minimum IP packet size of at least 1280 bytes.  This is the
+IPv6 minimum size {{?RFC8200}} and is also supported by most modern IPv4
+networks.  Assuming the minimum IP header size, this results in a QUIC maximum
+packet size of 1232 bytes for IPv6 and 1252 bytes for IPv4.
+
+The QUIC maximum packet size is the largest size of QUIC packet that can be sent
+across a network path using a single packet. Any maximum packet size larger than
+1200 bytes can be discovered using PMTUD/DPLPMTUD.

expand/cite for PMTUD/DPLPMTUD. I don't think it's been introduced before.

>  An endpoint SHOULD use Datagram Packetization Layer PMTU Discovery
 ({{!DPLPMTUD=I-D.ietf-tsvwg-datagram-plpmtud}}) or implement Path MTU Discovery
 (PMTUD) {{!RFC1191}} {{!RFC8201}} to determine whether the path to a destination

Move this above to where PMTUD and DPLPMTUD are used for the first time.

> +bytes, it MUST immediately cease sending QUIC packets, except for PMTU probe
+packets, on the affected path.  An endpoint MAY terminate the connection if an

```suggestion
bytes, it MUST immediately cease sending QUIC packets, except for those in PMTU
probes, on the affected path.  An endpoint MAY terminate the connection if an
```

> +PMTU probe packets for DPLPMTUD that use the PADDING frame implement "Probing
+using padding data", as defined in Section 4.1 of {{!DPLPMTUD}}.

```suggestion
PMTU probes for DPLPMTUD that use the PADDING frame implement "Probing
using padding data", as defined in Section 4.1 of {{!DPLPMTUD}}.
```

> +Both PMTUD and DPLPMTUD send IP packets that are larger than the current maximum
+packet size.  Aside from these PMTU probe packets, all QUIC packets SHOULD be
+sized to fit within the maximum packet size to avoid the packet being fragmented
+or dropped {{?RFC8085}}.

```suggestion
Both PMTUD and DPLPMTUD send IP packets that are larger than the current maximum
packet size.  We refer to these packets as PMTU probes. All QUIC packets that are not
in a PMTU probe SHOULD be sized to fit within the maximum packet size to avoid the
packet being fragmented or dropped {{?RFC8085}}.
```

>  apply if these messages are used by DPLPMTUD.
 
 
-### PMTU Probes Containing Source Connection ID {#pmtu-probes-src-cid}
+## Sending QUIC PMTU Probe Packets
+
+PMTU probe packets are ack-eliciting packets.

```suggestion
PMTU probes contain ack-eliciting packets.
```

>  apply if these messages are used by DPLPMTUD.
 
 
-### PMTU Probes Containing Source Connection ID {#pmtu-probes-src-cid}
+## Sending QUIC PMTU Probe Packets
+
+PMTU probe packets are ack-eliciting packets.
+
+Endpoints could limit the content of probe packets to PING and PADDING frames as

```suggestion
Endpoints could limit the content of PMTU probes to PING and PADDING frames as
```

>  apply if these messages are used by DPLPMTUD.
 
 
-### PMTU Probes Containing Source Connection ID {#pmtu-probes-src-cid}
+## Sending QUIC PMTU Probe Packets
+
+PMTU probe packets are ack-eliciting packets.
+
+Endpoints could limit the content of probe packets to PING and PADDING frames as
+packets that are larger than the current maximum packet size are more likely to
+be dropped by the network.   Loss of a QUIC packet that is carried in a PMTU
+probe packet is therefore not a reliable indication of congestion and SHOULD NOT

```suggestion
probe is therefore not a reliable indication of congestion and SHOULD NOT
```

> -packets are likely to require that the connection ID be included in PMTU probe
-packets to route any resulting ICMP messages ({{icmp-pmtud}}) back to the
-correct endpoint.  However, only long header packets ({{long-header}}) contain
-source connection IDs, and long header packets are not decrypted or acknowledged
-by the peer once the handshake is complete.
-
-One way to construct a probe for the path MTU is to coalesce (see
-{{packet-coalesce}}) a Handshake packet ({{packet-handshake}}) with a short
-header packet in a single UDP datagram.  If the UDP datagram reaches the
-endpoint, the Handshake packet will be ignored, but the short header packet will
-be acknowledged.  If the UDP datagram causes an ICMP message to be sent, the
-first part of the datagram will be quoted in that message.  If the source
-connection ID is within the quoted portion of the UDP datagram, that could be
-used for routing.
+packets are likely to require that the connection ID be included in
+PMTU probe packets to route any resulting ICMP messages ({{icmp-pmtud}}) back to

```suggestion
PMTU probes to route any resulting ICMP messages ({{icmp-pmtud}}) back to
```

> -
-One way to construct a probe for the path MTU is to coalesce (see
-{{packet-coalesce}}) a Handshake packet ({{packet-handshake}}) with a short
-header packet in a single UDP datagram.  If the UDP datagram reaches the
-endpoint, the Handshake packet will be ignored, but the short header packet will
-be acknowledged.  If the UDP datagram causes an ICMP message to be sent, the
-first part of the datagram will be quoted in that message.  If the source
-connection ID is within the quoted portion of the UDP datagram, that could be
-used for routing.
+packets are likely to require that the connection ID be included in
+PMTU probe packets to route any resulting ICMP messages ({{icmp-pmtud}}) back to
+the correct endpoint.  However, only long header packets ({{long-header}})
+contain the Source Connection ID field, and long header packets are not
+decrypted or acknowledged by the peer once the handshake is complete.
+
+One way to construct a PMTU probe packet is to coalesce (see

```suggestion
One way to construct a PMTU probe is to coalesce (see
```

> -header packet in a single UDP datagram.  If the UDP datagram reaches the
-endpoint, the Handshake packet will be ignored, but the short header packet will
-be acknowledged.  If the UDP datagram causes an ICMP message to be sent, the
-first part of the datagram will be quoted in that message.  If the source
-connection ID is within the quoted portion of the UDP datagram, that could be
-used for routing.
+packets are likely to require that the connection ID be included in
+PMTU probe packets to route any resulting ICMP messages ({{icmp-pmtud}}) back to
+the correct endpoint.  However, only long header packets ({{long-header}})
+contain the Source Connection ID field, and long header packets are not
+decrypted or acknowledged by the peer once the handshake is complete.
+
+One way to construct a PMTU probe packet is to coalesce (see
+{{packet-coalesce}}) a packet with a long header, such as a Handshake or 0-RTT
+packet ({{long-header}}), with a short header packet in a single UDP datagram.
+If the resulting PMTU probe packet reaches the endpoint, the packet with the

```suggestion
If the resulting PMTU probe reaches the endpoint, the packet with the
```

> -be acknowledged.  If the UDP datagram causes an ICMP message to be sent, the
-first part of the datagram will be quoted in that message.  If the source
-connection ID is within the quoted portion of the UDP datagram, that could be
-used for routing.
+packets are likely to require that the connection ID be included in
+PMTU probe packets to route any resulting ICMP messages ({{icmp-pmtud}}) back to
+the correct endpoint.  However, only long header packets ({{long-header}})
+contain the Source Connection ID field, and long header packets are not
+decrypted or acknowledged by the peer once the handshake is complete.
+
+One way to construct a PMTU probe packet is to coalesce (see
+{{packet-coalesce}}) a packet with a long header, such as a Handshake or 0-RTT
+packet ({{long-header}}), with a short header packet in a single UDP datagram.
+If the resulting PMTU probe packet reaches the endpoint, the packet with the
+long header will be ignored, but the short header packet will be acknowledged.
+If the UDP datagram causes an ICMP message to be sent, the first part of the

```suggestion
If the PMTU probe causes an ICMP message to be sent, the first part of the
```

> -first part of the datagram will be quoted in that message.  If the source
-connection ID is within the quoted portion of the UDP datagram, that could be
-used for routing.
+packets are likely to require that the connection ID be included in
+PMTU probe packets to route any resulting ICMP messages ({{icmp-pmtud}}) back to
+the correct endpoint.  However, only long header packets ({{long-header}})
+contain the Source Connection ID field, and long header packets are not
+decrypted or acknowledged by the peer once the handshake is complete.
+
+One way to construct a PMTU probe packet is to coalesce (see
+{{packet-coalesce}}) a packet with a long header, such as a Handshake or 0-RTT
+packet ({{long-header}}), with a short header packet in a single UDP datagram.
+If the resulting PMTU probe packet reaches the endpoint, the packet with the
+long header will be ignored, but the short header packet will be acknowledged.
+If the UDP datagram causes an ICMP message to be sent, the first part of the
+datagram will be quoted in that message.  If the Source Connection ID field is

```suggestion
probe will be quoted in that message.  If the Source Connection ID field is
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/3702#pullrequestreview-421566019