[tsvwg] Review: draft-ietf-datagram-plpmtud-12

Martin Duke <martin.h.duke@gmail.com> Sat, 07 December 2019 01:03 UTC

Return-Path: <martin.h.duke@gmail.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 33432120044 for <tsvwg@ietfa.amsl.com>; Fri, 6 Dec 2019 17:03:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 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_HELO_NONE=0.001, 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 9OCQRJSKOM5w for <tsvwg@ietfa.amsl.com>; Fri, 6 Dec 2019 17:03:52 -0800 (PST)
Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) (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 D377712003E for <tsvwg@ietf.org>; Fri, 6 Dec 2019 17:03:51 -0800 (PST)
Received: by mail-wr1-x42b.google.com with SMTP id a15so9657477wrf.9 for <tsvwg@ietf.org>; Fri, 06 Dec 2019 17:03:51 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=TyFpf+kgibUxuGXifj8rlTLCHKJs50OxtHQV+TjQsCE=; b=VWZsUP20+HX+CqpUkD/XELmPQNdl2awfTEtbuDu2vEuxLWdX1J3spU2mVu9Y//U2Uw lYOYiza+TdJvkuQtkoKw9X9Ay+SVBhDLVpscmCHphf/z67wSQeO3WMV6q9orrGVH/kFx Zh0+f3AzfhNqRsxg/ZxVhx/J+EkENBZfOtdlXp/CklgrFYXgXHCXvDScBdllxF+5G2gf ihXNB/MH8zNrm6GO2PV7h6/3/56JDKkMKNa7xBcdV+UhgLkAEyykTyzE42S62GTUYjG5 l6jAhmDe7N9Gepl0H7Dfd3cdErA3h4hi0SRboNxS8bg2dpxlbaH7yZ34Jx/D9xaiiya7 JR8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=TyFpf+kgibUxuGXifj8rlTLCHKJs50OxtHQV+TjQsCE=; b=VM58t5Bz+0LCmOS9pEsprboKhyntpdj+dfXIcM1fkMU07IIiUoahWh0UE8rwjfZtGV pFLbSXTJNjunSZuD9VS+EtpszmuY6Hwi+K8k6J5OoJ2kWfZphWZKw8acLh9VIwQiU7Rf LFxbHo6XyIE1kksCkuPsRXMUdbM8qZS+Qs0MSVek1cimHTa/DofqL4/rMXBzrVh/HqOi XBdzhDgpdp162m1tSPIzs6WBTNrDXAp0ApU38DZNM/Y/2LM02DJkb/QGmk60U68WhZhu uVD3cXoOaufEj238Y8TfUusp3E9mb4M+wm+dCpg0R0D8HKYCboQ5ATqFWf9Mha2uny4f 05Yg==
X-Gm-Message-State: APjAAAVXsJeoP4QG5hNAGObc8+61WYBFvoZx8xhTawkuhqwyn2UtnMEw mYxpIQ8oJCIE8Y7KkBTnVyyg10CmEgMv30DgV6BIHQv+
X-Google-Smtp-Source: APXvYqwrf4rCBwrpFzpD3xuP2tL6WHLLaOK3L6yHfI7i8pervSIjjlDk8P040VqIQeVOz3itPMWcEa9X6qXl0drxIXM=
X-Received: by 2002:a5d:62c8:: with SMTP id o8mr17765109wrv.316.1575680629990; Fri, 06 Dec 2019 17:03:49 -0800 (PST)
MIME-Version: 1.0
From: Martin Duke <martin.h.duke@gmail.com>
Date: Fri, 06 Dec 2019 17:03:39 -0800
Message-ID: <CAM4esxT8KqeWjcfL4FSH3g_VFs8N492+cpxuKEm_kFb6-2wpxw@mail.gmail.com>
To: tsvwg <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000003aec1e059912bc8e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/Wtoqwe0Cj4a7LG1ysp-AiKoL8_s>
Subject: [tsvwg] Review: draft-ietf-datagram-plpmtud-12
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 07 Dec 2019 01:03:54 -0000

As promised, here is my review:

I see no showstoppers in moving this to WGLC. However, there are a couple
of minor content additions I would like to see and a series of nits. I
believe this draft is important to the future success of datagram protocols
like QUIC.

Substantive Issues:

1. Unless I missed it, there is no guidance as to whether probe packets
should count against flightsize for congestion control.  I would suggest
that this standard exempt MTU probes from CC if not using application data
(possibly preempting other standards).

Cons:
- This is conflicts with existing protocol designs (like QUIC)

Pros:
- Item 7 in Section 3 already preempts existing protocols by telling us to
ignore the loss signal for CC purposes.
- This prevents PLPMTUD from incurring any sort of performance penalty
- The timer requirements probably prevent any measurable impact on network
congestion.

But either way some language would be helpful (e.g. section 4.1 could say
"the probe packet is subject to congestion control in accordance with the
contents of the packet and the relevant congestion control specification".)

2. I am not fond of the way that important considerations relating to the
loss of non-probe packets are buried in a reference to RFC 4821 in Sec 4.1.
Good PROBE_COUNT incrementing logic is quite subtle (see "Probe
Inconclusive" in Sec 7.6.4 of RFC 4821
<https://www.rfc-editor.org/rfc/rfc4821.html#section-7.6.4>). I suspect
implementers will spend most of their time in Section 5, and I would like
more discussion of these important issues in that section, probably
directly under the definition of PROBE_COUNT.

Personally, I find the 4821 language to be quite vague and I would like an
example safe algorithm (for example, off the top of my head, " decrement
PROBE_COUNT for each non-probe packet lost between when the probe packet is
sent and it is declared lost").

*****

Editorial issues and nits:

Abstract: s/functionally/functionality

Section 1.1: In the first paragraph the clause that begins "and a method"
should probably be reworded and become its own sentence.

Section 2:
- I am unclear of the difference between "Packet Black Hole" and "ICMP
Black Hole". By a literal reading of the definition, I think ICMP black
holes are a superset of packet black holes? In any case, these subtypes
appear only once in the draft (Sec 1.2), so perhaps simply eliminating this
distinction is easiest. I don't know that Packet Black Holes are a useful
concept for this draft.

- Reading the definition for PL a few times, I was unclear if for SCTP/QUIC
over UDP, UDP was the PL or the upper protocol. From later context I
*think* I inferred it to be the latter. I recognize that defining the upper
protocol is difficult but I would like another pass to this. I'm happy to
discuss further in a separate thread.

Section 3:
- Item 1. I am unclear who the DPLPMTUD sender is to provide the
information to. Is this to the peer, like a TCP MSS option, or is this an
internal interface? Please clarify. If internal, please rephrase to "A
DLPMTUD sender is RECOMMENDED to consider local link limitations..."

- Can we order this section with REQUIRED up front and MAYs down below?

- The blanket adoption of RFC 4821 requirements is not well written. If the
intention is to have all the 4821 requirements PLUS the 8 listed here, then
#7 is listed twice. If that is not the intent that this is worded
incorrectly.

Section 4.2: "When supported, this mechanism [reporting specific datagrams]
SHOULD also be used by DPLPMTUD to acknowledge reception of a probe
packet." I think this sits somewhat uneasily with QUIC. The closest
analogue to SCTP HEARTBEAT/HEARTBEAT_ACK (IRRC) is QUIC
PATH_CHALLENGE/PATH_RESPONSE. We would certainly use PING instead of this.
In practice, QUIC's total unambiguity with ACKs and packet numbers renders
this irrelevant, but I don't love how this is worded.

Sec 4.5.1. Do we want to say anything about how NATs can complicate PTB
validation, or are most NATs smart enough to handle this?

Sec 6.2.3.4 I think it is too strong to say that DTLS makes SCTP Common
Header validation "not possible". There are certainly somewhat expensive
options like storing the beginning of each encrypted packet or
re-encrypting a stored copy of the plaintext packet to compare.

Martin