Subject: Re: [Spud] Last Call: <draft-ietf-tsvwg-rfc5405bis-13.txt> (UDP Usage Guidelines) to Best Current Practice

From: Brian Trammell <[email-masked]>
Date: Thu, 2 Jun 2016 12:11:40 +0200

Greetings, all,

Apologies for the late last call comment; I have only one, relatively minor. I hope it's still useful.

I understand that Section 3 was written to encourage application developers not to roll their own transports ("trust us when we say this is hard, this document is a list of reasons why") but as written it would seem to discourage transport innovation atop UDP (e.g. QUIC, the RTCWEB data channel, anything-over-PLUS), which I very much hope was not the intent. The problematic recommendation is in the second paragraph:

   These mechanisms are difficult to implement correctly.  For most
   applications, the use of one of the existing IETF transport protocols
   is the simplest method of acquiring the required mechanisms.  Doing
   so also avoids issues that protocols using a new IP protocol number
   face when being deployed over the Internet, where middleboxes that
   only support TCP and UDP are not rare.  Consequently, the RECOMMENDED
   alternative to the UDP usage described in the remainder of this
   section is the use of an IETF transport protocol such as TCP
   [RFC0793], Stream Control Transmission Protocol (SCTP) [RFC4960], and
   SCTP Partial Reliability Extension (SCTP-PR) [RFC3758], or Datagram
   Congestion Control Protocol (DCCP) [RFC4340] with its different
   congestion control types [RFC4341][RFC4342][RFC5622].

First, this paragraph ignores potential deployment issues with any of these other than TCP, which risks seeming out of touch, but this is a minor point and probably not worth a late edit. Second, I'm concerned this recommendation could be taken as broader than intended, against the definition of any new transport protocol encapsulated within UDP that performs substantially the same function as the listed protocols.

I think this can be made clearer by simply adding to the list of examples:

NEW:

   These mechanisms are difficult to implement correctly.  For most
   applications, the use of one of the existing IETF transport protocols
   is the simplest method of acquiring the required mechanisms.  Doing
   so also avoids issues that protocols using a new IP protocol number
   face when being deployed over the Internet, where middleboxes that
   only support TCP and UDP are not rare.  Consequently, the RECOMMENDED
   alternative to the UDP usage described in the remainder of this
   section is the use of an IETF transport protocol such as TCP
   [RFC0793], Stream Control Transmission Protocol (SCTP) [RFC4960], and
   SCTP Partial Reliability Extension (SCTP-PR) [RFC3758], or Datagram
   Congestion Control Protocol (DCCP) [RFC4340] with its different
   congestion control types [RFC4341][RFC4342][RFC5622], or transport
   protocols specified by the IETF in the future.

and removing the examples from the summary in section 7:

OLD:

   | SHOULD use a full-featured transport (TCP, SCTP, DCCP)  |         |

NEW:

   | SHOULD use a full-featured transport                    |         |

Thanks, cheers,

Brian

> On 18 May 2016, at 02:17, The IESG <[email-masked]> wrote:
> 
> 
> The IESG has received a request from the Transport Area Working Group WG
> (tsvwg) to consider the following document:
> - 'UDP Usage Guidelines'
>  <draft-ietf-tsvwg-rfc5405bis-13.txt> as Best Current Practice
> 
> The IESG plans to make a decision in the next few weeks, and solicits
> final comments on this action. Please send substantive comments to the
> [email-masked] mailing lists by 2016-05-31. Exceptionally, comments may be
> sent to [email-masked] instead. In either case, please retain the
> beginning of the Subject line to allow automated sorting.
> 
> Abstract
> 
> 
>   The User Datagram Protocol (UDP) provides a minimal message-passing
>   transport that has no inherent congestion control mechanisms.  This
>   document provides guidelines on the use of UDP for the designers of
>   applications, tunnels and other protocols that use UDP.  Congestion
>   control guidelines are a primary focus, but the document also
>   provides guidance on other topics, including message sizes,
>   reliability, checksums, middlebox traversal, the use of ECN, DSCPs,
>   and ports.
> 
>   Because congestion control is critical to the stable operation of the
>   Internet, applications and other protocols that choose to use UDP as
>   an Internet transport must employ mechanisms to prevent congestion
>   collapse and to establish some degree of fairness with concurrent
>   traffic.  They may also need to implement additional mechanisms,
>   depending on how they use UDP.
> 
>   Some guidance is also applicable to the design of other protocols
>   (e.g., protocols layered directly on IP or via IP-based tunnels),
>   especially when these protocols do not themselves provide congestion
>   control.
> 
>   This document obsoletes RFC5405 and adds guidelines for multicast UDP
>   usage.
> 
> 
> 
> 
> The file can be obtained via
> https://datatracker.ietf.org/doc/draft-ietf-tsvwg-rfc5405bis/
> 
> IESG discussion can be tracked via
> https://datatracker.ietf.org/doc/draft-ietf-tsvwg-rfc5405bis/ballot/
> 
> 
> No IPR declarations have been submitted directly on this I-D.
> 
>

---

From: Ca By <[email-masked]>
Date: Fri, 3 Jun 2016 08:15:33 -0700

On Thursday, June 2, 2016, Brian Trammell <[email-masked]> wrote:

> I understand that Section 3 was written to encourage application
> developers not to roll their own transports ("trust us when we say this is
> hard, this document is a list of reasons why") but as written it would seem
> to discourage transport innovation atop UDP (e.g. QUIC, the RTCWEB data
> channel, anything-over-PLUS), which I very much hope was not the intent.
> The problematic recommendation is in the second paragraph:
>
> First, this paragraph ignores potential deployment issues with any of
> these other than TCP, which risks seeming out of touch, but this is a minor
> point and probably not worth a late edit. Second, I'm concerned this
> recommendation could be taken as broader than intended, against the
> definition of any new transport protocol encapsulated within UDP that
> performs substantially the same function as the listed protocols.
>
> > On 18 May 2016, at 02:17, The IESG <[email-masked]
> <javascript:;>> wrote:
> >
> >
> > [email-masked] <javascript:;> mailing lists by 2016-05-31.
> Exceptionally, comments may be
> > sent to [email-masked] <javascript:;> instead. In either case, please
> retain the

I disagree.  The text as-is is best and represents a prudent period of
review in the WG.  As suggested many times to both spud and quic, extending
udp is not recommended. We have multiple L4 transport protocols for a
reason, you should innovative in that space without UDP.

CB

---

From: Gorry Fairhurst <[email-masked]>
Date: Fri, 03 Jun 2016 16:28:09 +0100

It is certainly not too late, many thanks - to both Brian and you!

We have various pending comments to look through, and will make sure all 
comments are also taken into consideration, -  next week we'll be 
resolving the conflicts between comments and seeing how best to 
accommodate these in updated text, comments then may be late!

Gorry

On 03/06/2016 16:15, Ca By wrote:
>
>
> On Thursday, June 2, 2016, Brian Trammell <[email-masked] 
> <mailto:[email-masked]>> wrote:
>
>     Greetings, all,
>
>     Apologies for the late last call comment; I have only one,
>     relatively minor. I hope it's still useful.
>
>     developers not to roll their own transports ("trust us when we say
>     this is hard, this document is a list of reasons why") but as
>     written it would seem to discourage transport innovation atop UDP
>     (e.g. QUIC, the RTCWEB data channel, anything-over-PLUS), which I
>     very much hope was not the intent. The problematic recommendation
>     is in the second paragraph:
>
>     First, this paragraph ignores potential deployment issues with any
>     of these other than TCP, which risks seeming out of touch, but
>     this is a minor point and probably not worth a late edit. Second,
>     I'm concerned this recommendation could be taken as broader than
>     intended, against the definition of any new transport protocol
>     encapsulated within UDP that performs substantially the same
>     function as the listed protocols.
>
>     > sent to [email-masked] <javascript:;> instead. In either case,
>     please retain the
> review in the WG.  As suggested many times to both spud and quic, 
> extending udp is not recommended. We have multiple L4 transport 
> protocols for a reason, you should innovative in that space without UDP.
>
> CB

---

From: Tom Herbert <[email-masked]>
Date: Sat, 4 Jun 2016 17:25:39 -0700

> First, this paragraph ignores potential deployment issues with any of these other than TCP, which risks seeming out of touch, but this is a minor point and probably not worth a late edit. Second, I…
I would agree, this paragraph also seems a little self
contradictory.There is an acknowledgment that "middleboxes that only
support TCP and UDP are not rare", but then the next sentence
recommends the use of several other protocols besides UDP and TCP. If
I put these two together, the only congested controlled protocol that
is recommended and expected to work on the Internet is TCP.

Tom

> _______________________________________________
> Spud mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/spud
>

---

From: Jim Roskind <[email-masked]>
Date: Sun, 5 Jun 2016 22:18:17 -0700

> is recommended and expected to work on the Internet is TCP.

+1   TCP (implemented in kernel space) can't possibly evolve congestion
avoidance as fast as the Internet has changed, or will change (example:
good handling of middle boxes that use "policers" rather than some flavor
of buffer-size based packet-drop).
The rationale for using UDP for QUIC was indeed that a new IP number would
never make it through the Internet (other protocol deployment attempts have
commonly verified this).  It turns out that even UDP is partially blocked
(as recently as 2011) by paths to 5-7% of all chrome clients, which lead to
the "automated fallback" elements of QUIC,

Hopefully the benefits that QUIC is bringing to the Internet will not be
outlawed (precluded by such commentary).

Jim

> QUIC mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/quic
>

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 7 Jun 2016 22:59:19 -0700

Just adding my 2c if this still isn't too late: I agree with Brian that the
wording in the draft seems limiting. His suggested wording does make things
better, but there still is the contradiction that Tom pointed out:

> is recommended and expected to work on the Internet is TCP.

This caught my attention as well. As it stands, the recommendation in this
paragraph is very unclear.

What exactly is the goal here? If it is to ensure that the recommendations
allow for deployable protocols, then UDP-based ones must be allowed.
Otherwise, the recommendation seems to be to only use TCP. I don't think
that was the intent... but then what is the intent in this paragraph?

- jana

---

From: Ca By <[email-masked]>
Date: Wed, 8 Jun 2016 05:20:38 -0700

> the "automated fallback" elements of QUIC,
I think this changes with ipv6, no?  Google sees over 26% ipv6 in the usa
and growing quickly

http://www.google.com/intl/en/ipv6/statistics.html

And there is evidence that middle boxes go away in ipv6. .... So perhaps
the world is changing and your assuptions do not hold

---

From: Brian Trammell <[email-masked]>
Date: Wed, 8 Jun 2016 18:40:24 +0200

> 
>> On 08 Jun 2016, at 14:20, Ca By <[email-masked]> wrote:
>> 
>> 
>> 
>> On Sunday, June 5, 2016, Jim Roskind <[email-masked]> wrote:
>> 
>> 
>> +1   TCP (implemented in kernel space) can't possibly evolve congestion avoidance as fast as the Internet has changed, or will change (example: good handling of middle boxes that use "policers" rather than some flavor of buffer-size based packet-drop).
>> The rationale for using UDP for QUIC was indeed that a new IP number would never make it through the Internet (other protocol deployment attempts have commonly verified this).  It turns out that even UDP is partially blocked (as recently as 2011) by paths to 5-7% of all chrome clients, which lead to the "automated fallback" elements of QUIC,
>> 
> 
> I think this changes with ipv6, no?  Google sees over 26% ipv6 in the usa and growing quickly
> 
> And there is evidence that middle boxes go away in ipv6. .... So perhaps the world is changing and your assuptions do not hold

(dropping ietf@, saving my Narten points since we're a bit off topic on the draft last call)

I'd like to see evidence, if you can share it.

We've done a few measurements with Atlas that suggest the brokenness on v6 is different, but not necessarily better, but don't have enough data points to make an informed statement on the fact. Any time you touch a NAPT (which lives at the core of any transition technology for v6-only access to the v4 Internet), you run into the "only TCP and UDP have ports" fallacy. But yes, we need to compare and contrast v4 and v6 access network impairments for non-(6,17) protocol numbers.

Cheers,

Brian

---

From: Ca By <[email-masked]>
Date: Sat, 11 Jun 2016 16:24:09 -0700

On Wednesday, June 8, 2016, Brian Trammell <[email-masked]> wrote:

> >
> >> On 08 Jun 2016, at 14:20, Ca By <[email-masked] <javascript:;>>
> wrote:
> >>
> >>
> >>
> >> On Sat, Jun 4, 2016 at 5:25 PM, Tom Herbert <[email-masked]
> <javascript:;>> wrote:
> >> On Thu, Jun 2, 2016 at 3:11 AM, Brian Trammell <[email-masked]
> <javascript:;>> wrote:
> >> > Greetings, all,
> >> >
> >> The rationale for using UDP for QUIC was indeed that a new IP number
> would never make it through the Internet (other protocol deployment
> attempts have commonly verified this).  It turns out that even UDP is
> partially blocked (as recently as 2011) by paths to 5-7% of all chrome
> clients, which lead to the "automated fallback" elements of QUIC,
> >>
> >
" Verizon uses transparent proxy servers on IPv4 but not on IPv6"

https://blogs.akamai.com/2016/06/preparing-for-ipv6-only-mobile-networks-why-and-how.html

We've done a few measurements with Atlas that suggest the brokenness on v6
> is different, but not necessarily better, but don't have enough data points
> to make an informed statement on the fact. Any time you touch a NAPT (which
> lives at the core of any transition technology for v6-only access to the v4
> Internet), you run into the "only TCP and UDP have ports" fallacy. But yes,
> we need to compare and contrast v4 and v6 access network impairments for
> non-(6,17) protocol numbers.
>
>
NAPT is an edge case for v6 users, less than 30% and shrinking by bit
volume as the whales have moved to v6 already

https://blogs.akamai.com/2016/06/four-years-since-world-ipv6-launch-entering-the-mainstream.html