Re: [tram] Review of draft-ietf-tram-stun-pmtud-03

Marc Petit-Huguenin <petithug@acm.org> Tue, 27 December 2016 20:33 UTC

Return-Path: <petithug@acm.org>
X-Original-To: tram@ietfa.amsl.com
Delivered-To: tram@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 35B49129B81 for <tram@ietfa.amsl.com>; Tue, 27 Dec 2016 12:33:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.29
X-Spam-Level:
X-Spam-Status: No, score=0.29 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RDNS_NONE=0.793, SPF_HELO_SOFTFAIL=0.732, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
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 aDP2pTYLwLPW for <tram@ietfa.amsl.com>; Tue, 27 Dec 2016 12:33:55 -0800 (PST)
Received: from implementers.org (unknown [92.243.22.217]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 531C6129B80 for <tram@ietf.org>; Tue, 27 Dec 2016 12:33:55 -0800 (PST)
Received: from [IPv6:2601:648:8380:1921:d8cb:27ec:949b:4602] (unknown [IPv6:2601:648:8380:1921:d8cb:27ec:949b:4602]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "Marc Petit-Huguenin", Issuer "implementers.org" (verified OK)) by implementers.org (Postfix) with ESMTPS id 34BABAE7A0; Tue, 27 Dec 2016 21:33:53 +0100 (CET)
To: Brandon Williams <brandon.williams@akamai.com>, "tram@ietf.org" <tram@ietf.org>
References: <dfe9d46b-9fc4-22cd-b084-77c67e72ed9b@akamai.com>
From: Marc Petit-Huguenin <petithug@acm.org>
Message-ID: <32a801d9-9f49-4ec8-d74d-495a81c1013c@acm.org>
Date: Tue, 27 Dec 2016 12:33:46 -0800
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.5.1
MIME-Version: 1.0
In-Reply-To: <dfe9d46b-9fc4-22cd-b084-77c67e72ed9b@akamai.com>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="8NHteMqVE26brBhs4n60vw1famfllU1I0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tram/wezPbXHIUgNdThxl0B97-ld4WsU>
Subject: Re: [tram] Review of draft-ietf-tram-stun-pmtud-03
X-BeenThere: tram@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Discussing the creation of a Turn Revised And Modernized \(TRAM\) WG, which goal is to consolidate the various initiatives to update TURN and STUN." <tram.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tram>, <mailto:tram-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tram/>
List-Post: <mailto:tram@ietf.org>
List-Help: <mailto:tram-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tram>, <mailto:tram-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Dec 2016 20:33:57 -0000

Thanks Brandon, your timing is perfect as I was planning to work on a new revision next week-end.

I'll send a more complete response when it is done.

On 12/27/2016 11:27 AM, Brandon Williams wrote:
> Hi all,
> 
> Apologies for taking so long to complete a review of this one.
> 
> Although my list of notes is long, there's nothing really substantive here. All of my comments are just suggestions to improve the document's clarity. Incorporate or discard as you see fit.
> 
> Please let me know if any of the following is unclear.
> 
> --Brandon
> 
> 
> 1. Introduction
> 
> I find the second paragraph a tiny bit difficult to read. Here's a
> suggestion.
> 
> OLD:
> 
>   This document only describes how probing mechanisms are implemented
>   with Session Traversal Utilities for NAT (STUN). The algorithm to
>   find the Path MTU is described in [RFC4821].
> 
> NEW:
> 
>   This document describes probing mechanisms for Session Traversal
>   Utilities for NAT (STUN) for use in implementing the Path MTU
>   Discovery algorithm described in [RFC4821].
> 
> 
> I also find the fourth paragraph a tiny bit difficult to read.
> 
> OLD:
> 
>   Additional network characteristics like the network path (using the
>   STUN Traceroute mechanism described in
>   [I-D.martinsen-tram-stuntrace]) and bandwidth availability (using the
>   mechanism described in [I-D.martinsen-tram-turnbandwidthprobe]) can
>   be discovered using complementary techniques.
> 
> NEW:
> 
>   Complimentary techniques can be used to discover addition network
>   characteristics, such as the network path (using the STUN Traceroute
>   mechanism described in [I-D.martinsen-tram-stuntrace]) and bandwidth
>   availability (using the mechanism described in
>   [I-D.martinsen-tram-turnbandwidthprobe]).
> 
> 2. Overview of Operations
> 
> In paragraph three, the first "it" in the paragraph should be expanded.
> 
> OLD: ... then it initiates Probe transactions, ...
> 
> NEW: ... then the Client initiates Probe transacations, ...
> 
> 
> Same comment for the next paragraph.
> 
> OLD: ... then it sends Probe Indications of various sizes ...
> 
> NEW: ... then the Client sends Probe Indications of various sizes ...
> 
> 
> 4. Probing Mechanisms
> 
> In paragraph six, I think the SHOULD requirement about retransmissions
> belongs in section 4.1.1, which already describes this requirement in
> other terms ("the Rc parameter ... is set to 3."). This part of section
> 4 should stick to providing the MUST/MAY requirements for which of the
> mechanisms are to be implemented.
> 
> Additionally, I think that paragraph six could be moved to be text
> for the currently empty section 4.1. Simple Probing Mechanism. In
> that case, paragraphs 7-10 could be moved to be text for the
> currently empty section 4.2. Complete Probing Mechanism. I think
> moving the high-level descriptions of the two mechanisms into their
> respective sections improves the document flow.
> 
> Finally, in the last paragraph of the section, it states "... the
> client adds a sequence number in front of each UDP packet sent."
> I think you mean "... the client prepends the UDP data with a
> header that provides a sequence number." At least, this is what the
> description in the later section indicates to me.
> 
> 
> 4.1.1. Sending a Probe Request
> 
> This section should indicate the STUN method type used for a Probe
> Request (prefered) or forward reference section 8.1.
> 
> Regarding authentication, why would an implementation authenticate
> the Probe transaction? Is doing so recommended? If so, why? This is
> discussed later in security considerations, but it was unclear to me at this point in the document.
> 
> Regarding the FINGERPRINT attribute, why is it required?
> 
> 
> 4.1.2. Receiving a Probe Request
> 
> Here again, why is the FINGERPRINT attribute required?
> 
> 
> 4.1.3. Receiving a Probe Response
> 
> OLD: If the Probe transactions times out ...
> 
> NEW: If the Probe transaction times out ...
> 
> 
> 4.2.1. Sending the Probe Indications and Report Request
> 
> Why MUST the Probe Indication be authenticated, when this is not
> required (only allowed) for a Probe Request? Here again, it's discussed later, but was unclear to me here.
> 
> Also, same question as above about FINGERPRINT here.
> 
> This section should indicate the STUN method type used for a
> Report Request (prefered) or forward reference section 8.1.
> 
> 
> 4.2.3. Receiving a Probe Indication and Report Request
> 
> I suggest that you forward reference the section that describes
> construction of the IDENTIFIERS attribute in the last paragraph.
> 
> 
> 4.2.4. Receiving a Report Response
> 
> The description of Probe Failure is a bit incomplete. It should
> include a little more detail.
> 
> OLD:
> 
>   If the Probe Indication identifier cannot be found in the Report
>   Response, this is interpreted as a Probe Failure, as defined in
>   [RFC4821] Section 7.5.
> 
> NEW:
> 
>   If the Probe Indication identifier cannot be found in the Report
>   Response but identifiers for other packets sent before or after
>   the Probe Indication can all be found, this is interpreted as a
>   Probe Failure as defined in [RFC4821] Section 7.5.
> 
> 
> 4.2.5. Using Checksums as Packet Identifiers
> 
> The second paragraph states "The algorithm used to calculate the
> checksum is the same as the algorithm used for the FINGERPRINT
> attribute." I find this description a bit unclear, since the
> description of the FINGERPRINT calculation in RFC5389 discusses
> the STUN header fields, etc. Here, you're just talking about
> generating a CRC-32 value XORed with 0x5354554e. It might be
> more clear to just say that.
> 
> 
> 5.2. Implicit Probe Support Signaling Mechanism
> 
> I'm a little concerned about the idea of just injecting probes
> as a way to figure out whether the receiver supports them. It's
> hard to know for every possible protocol that this will work and
> will not break the protocol. Maybe add a cautionary note.
> 
> 
> 6.1. IDENTIFIERS
> 
> Sections 4.2.5. and 4.2.6. each describe 32 bit identifiers. I
> think section 6.1. should say a little more than just "contents
> are opaque". I suggest that you describe specifically what the
> attribute value will look like if one of the two 32 bit schemes
> is used and declare that other protocols may generate different
> values.
> 
> 
> 6.2. PMTUD-SUPPORTED
> 
> For clarity, I suggest something a little more like the value
> description of DONT-FRAGMENT from RFC5766.
> 
> OLD: This attribute is empty.
> 
> NEW:
> 
>   This attribute has no value part and thus the attribute
>   length field is 0.
> 
> _______________________________________________
> tram mailing list
> tram@ietf.org
> https://www.ietf.org/mailman/listinfo/tram
> 


-- 
Marc Petit-Huguenin
Email: marc@petit-huguenin.org
Blog: https://marc.petit-huguenin.org
Profile: https://www.linkedin.com/in/petithug