Re: [tsvwg] Robert Wilton's No Objection on draft-ietf-tsvwg-datagram-plpmtud-19: (with COMMENT)

Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com> Fri, 10 April 2020 13:38 UTC

Return-Path: <spencerdawkins.ietf@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 E7C383A0A66; Fri, 10 Apr 2020 06:38:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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 LOQ0z7y2cfA5; Fri, 10 Apr 2020 06:38:40 -0700 (PDT)
Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) (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 2A0C63A0A82; Fri, 10 Apr 2020 06:38:40 -0700 (PDT)
Received: by mail-lf1-x12a.google.com with SMTP id k28so1361215lfe.10; Fri, 10 Apr 2020 06:38:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XtzlQ22sIiuvIrqhUU7TaEhjHBW6/InTnIEdWGDYZOg=; b=AXn8tWV3xD2JiJ+/Fs2DvMLmCgv++Vd2HUxargLEPkHCRqFu+A/EepeeHzi0KVAC5d D9xNOb/d7iNoIKlazr9GbBEI51heEsgXg7ILHDkHF3cotWWmXJfzY59BvCh6/JFsrCkR R/LpdvmZ4m4KJcbhOmmfoSBbykzAvmxMLYUgB47E+UPxOz+oeqyZ+Fy4LuImORLr9xWC 5yHTGCSFv2/lwOtn6YYiV9TeIcetI0RJvG6ICXm+YcBiAB+YLmQmEkkLBN5cSYgTtuTa lgKL2zWXyA0eBDVKQFXeB2eqiNeEcHLRnKiMqzrlJnxEKL+OccAQRg2P2u+JFimw1SpC TpdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=XtzlQ22sIiuvIrqhUU7TaEhjHBW6/InTnIEdWGDYZOg=; b=m5n2SFNYrKpipypokBR8lGF/19jj5jP4PEdRBY5l7kLnpiw8mZWk2FHOg9b4n+Kj81 H+0OLwFU2qZ5zaTf4bLzKhbVfIEeuMj400vK5KhUv4w34ppdCKywgs/Kac+g8x23Krk0 y088UctZFXSK8tzQX4/NvjJyvV2zhV23jxcj2amco/Hq/N2ELKenkMjW+80f+/yNMSrS hWa7qZEBsTviUTrGBaFxajyQ7BW9U51SIlUkT72vzz4Y7wHBEVBuGCfzMqpOU6HVSmWT edLTtp0jfzcq9qYb2FwllSpBmvhaYz96PAys1KBnJ1v18bpSogaIzbnAOMO0Ok/DfRkz PnUQ==
X-Gm-Message-State: AGi0PuZZc78SMmUkHBpP08gNFq70ezK3d7XVcWIVzbahjTucRI3lx+MM 1otkPqv3AAB0im9Yx72aeu+EiHboprk2RaIGNOU2W+ZY
X-Google-Smtp-Source: APiQypIK08h+GhR6SasboxBtggZILj+Duey8Jwwlki6aUjCHJVv5sxhCIu/FdQo0Z1giknIKOWt2qNlFSuKJNChzuO4=
X-Received: by 2002:a05:6512:14a:: with SMTP id m10mr2692805lfo.152.1586525918225; Fri, 10 Apr 2020 06:38:38 -0700 (PDT)
MIME-Version: 1.0
References: <b7a852db-0afe-5fd1-365b-aecdc474a78a@erg.abdn.ac.uk> <202004100512.03A5CNH6012551@gndrsh.dnsmgr.net>
In-Reply-To: <202004100512.03A5CNH6012551@gndrsh.dnsmgr.net>
From: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>
Date: Fri, 10 Apr 2020 08:38:12 -0500
Message-ID: <CAKKJt-dU2Ydj_puXrUzsa-R4tvCd_894JsMHmSQsDTXY+UfJ9g@mail.gmail.com>
To: "Rodney W. Grimes" <ietf@gndrsh.dnsmgr.net>
Cc: Gorry Fairhurst <gorry@erg.abdn.ac.uk>, "tsvwg@ietf.org" <tsvwg@ietf.org>, Robert Wilton <rwilton@cisco.com>, "draft-ietf-tsvwg-datagram-plpmtud@ietf.org" <draft-ietf-tsvwg-datagram-plpmtud@ietf.org>, The IESG <iesg@ietf.org>, "tsvwg-chairs@ietf.org" <tsvwg-chairs@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c868d805a2efd95a"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/Mb5IWKKu0AfhAY1sNYzMKyZIxmc>
Subject: Re: [tsvwg] Robert Wilton's No Objection on draft-ietf-tsvwg-datagram-plpmtud-19: (with COMMENT)
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: Fri, 10 Apr 2020 13:38:44 -0000

So, I hadn't looked at https://tools.ietf.org/html/rfc1191 in a VERY long
time, so thank you, Rod, for nudging me to do so.

On Fri, Apr 10, 2020 at 12:12 AM Rodney W. Grimes <ietf@gndrsh.dnsmgr.net>
wrote:

> > Yes, I think a table of common values would be cool. I suspect the
> > values you refer to are from RFC 1191. These may now be rather historic:
>                           ^^^^^^^^^^^^^^
> The comment above them clearly states that.
>

"rather historic" is more than kind. The table on page 16 is a fairly
encyclopedic list of link layer technologies in common use in 1990, which
should surprise no one. Yeah, we assume 1500 works most of the time now,
but revisiting what's no longer in common use ("token bus") and what's
commonly encountered now (common MTU sizes in various commonly-used
tunneled paths, perhaps) is likely worth doing, at some point.


>
> > I doubt if the "arpanet" MTU which I recall was 1006, is such a helpful
> > number, neither likely 68 or 508?.
>
> 1006 is from RFC 1055 - SLIP
> 508 is from RFC 1051 - Arcnet
>
> I believe that 68 is there as the original IP minimal MTU, which I do
> believe is still valid for ipv4.  I know the 296 was commonly used
> for SLIP and/or PPP 256 payload + 40 header bytes.)
>
> Here is one of the most complete tables I could find:
>
> https://books.google.com/books?id=0IzfDQAAQBAJ&pg=PA240&lpg=PA240&dq=common+mtu+sizes+296&source=bl&ots=4_Of3fGewa&sig=ACfU3U2BIhuOddVngU--PUHTq1eZfWuucA&hl=id&sa=X&ved=2ahUKEwiTxqLvit3oAhVBGzQIHYjDC6wQ6AEwCHoECA0QMw#v=onepage&q=common%20mtu%20sizes%20296&f=false
>
> > I would love people to come-up with
> > new measurement data to tell us what the prevelent PMTUs are and where -
>

Yes.


> > and how best to search to find them: There also many ways you could
> > perform the search algorithm. That sound's like something exciting for
> > future MAPRG sessions:-).
>
> One could alter the source code such that rather than doing the
> table driven hunt for a working MTU it did some form of binary
> search, and then report that data.  Run it on planetlab against
> against an alexa list of web sites and you could get a pretty
> good view of the server side path MTU.  Not sure how to try and
> gather data from the "consumer" side.
>

Interestingly, I note that strategy was considered in RFC 1191 (on page 7),
along with a bit of explanation:

   A more sophisticated approach is to do a binary search on the packet
   size.  This converges somewhat faster, although it still takes 4 or 5
   steps to converge from an FDDI MTU to an Ethernet MTU.  A serious
   disadvantage is that it requires a complex implementation in order to
   recognize when a datagram has made it to the other end (indicating
   that the current estimate is too low).  We also do not recommend this
   strategy.

(Of course, it's interesting to consider the definition of "complex in
1990, so MAYBE the decision would go the other way 30 years later? :-)

   One strategy that appears to work quite well starts from the
   observation that there are, in practice, relatively few MTU values in
   use in the Internet.  Thus, rather than blindly searching through
   arbitrarily chosen values, we can search only the ones that are
   likely to appear.  Moreover, since designers tend to chose MTUs in
   similar ways, it is possible to collect groups of similar MTU values
   and use the lowest value in the group as our search "plateau".  (It
   is clearly better to underestimate an MTU by a few per cent than to
   overestimate it by one octet.)

So, echoing the excellent points above (I hope),

ISTM that asking people to poke at this and report back in MAPRG is an
excellent idea. Depending on whether there are still "relatively few MTU
values in use" or not, it might then be useful to consider either updating
the table of commonly-used values, or saying "binary search will probably
work fine now".

ISTM that this draft doesn't need to wait for that investigation - this
text in
https://tools.ietf.org/html/draft-ietf-tsvwg-datagram-plpmtud-19#section-5.3.2
seems to leave the search strategy up to implementers, and a better search
strategy wouldn't affect this text, that I can see:

5.3.2.  Selection of Probe Sizes

   The search algorithm determines a minimum useful gain in PLPMTU.  It
   would not be constructive for a PL sender to attempt to probe for all
   sizes.  This would incur unnecessary load on the path.
   Implementations SHOULD select the set of probe packet sizes to
   maximize the gain in PLPMTU from each search step.

   Implementations could optimize the search procedure by selecting step
   sizes from a table of common PMTU sizes.  When selecting the
   appropriate next size to search, an implementer ought to also
   consider that there can be common sizes of MPS that applications seek
   to use, and their could be common sizes of MTU used within the
   network.

So, thanks for the opportunity to start my day reading an old RFC written
by smart people and published in the same year I was setting up my first
TCP/IP LAN, and please continue this conversation as appropriate ("Do The
Right Thing")

Best,

Spencer


> Rod
>
> >
> > Gorry
> >
> > On 09/04/2020 18:13, Rodney W. Grimes wrote:
> > >> Hi Robert,
> > >>
> > >> Commenting as an individual on this idea:
> > >>
> > >>> Not the subject of this document, but it feels like life could be
> significantly
> > >>> simpler if somehow there was a mechanism to getting a set of agree a
> set of
> > >>> defined minimum PLPMTU that network may support.  E.g. perhaps 1280,
> 2000,
> > >>> 4000, 8000, 16000 octets.   My assumption here is that the
> underlying core link
> > >>> MTUs would be higher to cope with header overheads.
> > >> That would indeed be nice, but the plethora of tunnels and
> encapsulations in use suggests that boundary effects could result in the
> packet size settling to an MTU considerably smaller than possible.  For
> example, suppose that the underlying link is sized to support a 4000 byte
> MTU with some set of headers to which a tunnel that the link designers
> didn?t consider adds 64 bytes - having the MTU drop to 2000 bytes would not
> be a good result.
> > > I would like to point out that this *is* done in implementations to
> > > hunt for an MTU.  From FreeBSD sys/netinet/ip_icmp.c:
> > > /*
> > >   * Return the next larger or smaller MTU plateau (table from RFC 1191)
> > >   * given current value MTU.  If DIR is less than zero, a larger
> plateau
> > >   * is returned; otherwise, a smaller value is returned.
> > >   */
> > > int
> > > ip_next_mtu(int mtu, int dir)
> > > {
> > >          static int mtutab[] = {
> > >                  65535, 32000, 17914, 8166, 4352, 2002, 1492, 1280,
> 1006, 508,
> > >                  296, 68, 0
> > >          };
> > >
> > > IIRC the current Path MTU code in FreeBSD would infact land on a
> > > 2002 byte MTU for a TCP connection going through the tunnel that David
> > > describes above by the nature of how it works.
> > >
> > >> Thanks, --David (as an individual)
> > >>
> > >>> -----Original Message-----
> > >>> From: Robert Wilton via Datatracker <noreply@ietf.org>
> > >>> Sent: Thursday, April 9, 2020 7:31 AM
> > >>> To: The IESG
> > >>> Cc: draft-ietf-tsvwg-datagram-plpmtud@ietf.org;
> tsvwg-chairs@ietf.org;
> > >>> tsvwg@ietf.org; Wesley Eddy; wes@mti-systems.com
> > >>> Subject: Robert Wilton's No Objection on
> draft-ietf-tsvwg-datagram-plpmtud-
> > >>> 19: (with COMMENT)
> > >>>
> > >>>
> > >>> [EXTERNAL EMAIL]
> > >>>
> > >>> Robert Wilton has entered the following ballot position for
> > >>> draft-ietf-tsvwg-datagram-plpmtud-19: No Objection
> > >>>
> > >>> When responding, please keep the subject line intact and reply to all
> > >>> email addresses included in the To and CC lines. (Feel free to cut
> this
> > >>> introductory paragraph, however.)
> > >>>
> > >>>
> > >>> Please refer to
> https://www.ietf.org/iesg/statement/discuss-criteria.html
> > >>> for more information about IESG DISCUSS and COMMENT positions.
> > >>>
> > >>>
> > >>> The document, along with other ballot positions, can be found here:
> > >>> https://datatracker.ietf.org/doc/draft-ietf-tsvwg-datagram-plpmtud/
> > >>>
> > >>>
> > >>>
> > >>>
> ----------------------------------------------------------------------
> > >>> COMMENT:
> > >>>
> ----------------------------------------------------------------------
> > >>>
> > >>> Firstly I would like to say thank you for writing this document.
> > >>>
> > >>> I have a general concern, not specifically with this document, but
> with the
> > >>> overall complexity of the solution.  I.e. the algorithm that is
> described has
> > >>> to contend with a lot of unreliable information (e.g. are packets
> dropped
> > >>> because of congestion or some other routing failure, hard to know
> whether PTB
> > >>> messages can be relied upon etc), there are also several different
> ways that
> > >>> the probes can be sent etc.
> > >>>
> > >>> Not the subject of this document, but it feels like life could be
> significantly
> > >>> simpler if somehow there was a mechanism to getting a set of agree a
> set of
> > >>> defined minimum PLPMTU that network may support.  E.g. perhaps 1280,
> 2000,
> > >>> 4000, 8000, 16000 octets.   My assumption here is that the
> underlying core link
> > >>> MTUs would be higher to cope with header overheads.
> > >>>
> > >>> A few comments on specific sections of the document:
> > >>>
> > >>> 1) I would include PTB in the terminology section.
> > >>>
> > >>> 3. Features Required to Provide Datagram PLPMTUD
> > >>>
> > >>> Most of the the requirements in this section use RFC 2119 language,
> but a few
> > >>> don't:
> > >>>
> > >>>     7.   Probing and congestion control: The decision about when to
> send
> > >>>          a probe packet does not need to be limited by the congestion
> > >>>          controller.  When not controlled by the congestion
> controller,
> > >>>          the interval between probe packets MUST be at least one
> RTT.  If
> > >>>          transmission of probe packets is limited by the congestion
> > >>>          controller, this could result in transmission of probe
> packets
> > >>>          being delayed or suspended during congestion.
> > >>>
> > >>> Rather than "does not need to be limited", would this be better
> stated as
> > >>> "SHOULD NOT be limited" or "MAY not be limited"?
> > >>>
> > >>>     11.  Probing and flow control: Flow control at the PL concerns
> the
> > >>>          end-to-end flow of data using the PL service.  This does not
> > >>>          apply to DPLPMTU when probe packets use a design that does
> not
> > >>>          carry user data to the remote application.
> > >>>
> > >>> The second sentence could be stated something like:
> > >>>
> > >>> "Flow control MUST NOT apply to DPLPMTU when probe packets use a
> design
> > >>> that
> > >>> does not carry user data to the remote application"
> > >>>
> > >>> 5.1.2.  Constants
> > >>>
> > >>>     MIN_PLPMTU:  The MIN_PLPMTU is the smallest allowed probe packet
> > >>>        size.  For IPv6, this value is 1280 bytes, as specified in
> > >>>        [RFC8200].  For IPv4, the minimum value is 68 bytes.
> > >>>
> > >>> Does it really make sense to probe for a path MTU of 68 bytes.
> Would it make
> > >>> sense for applications to be able to control the MIN_PLPMTU that
> they find
> > >>> acceptable?  E.g. if IPv6 has this at 1280 and QUIC has uses 1280,
> perhaps
> > >>> many
> > >>> applications/implementations would like to use 1280 as a reasonable
> lower
> > >>> bound
> > >>> rather than 68 bytes?
> > >>>
> > >>>
> > >>
> > >>
> >
>
> --
> Rod Grimes
> rgrimes@freebsd.org
>
>