Internet DRAFT - draft-shepherd-multicast-udp-guidelines

draft-shepherd-multicast-udp-guidelines







IETF                                                    G. Shepherd, Ed.
Internet-Draft                                             Cisco Systems
Intended status: Best Current Practice                     June 12, 2013
Expires: December 14, 2013


        Multicast UDP Usage Guidelines for Application Designers
               draft-shepherd-multicast-udp-guidelines-01

Abstract

   The multi-recipient nature of Multicast prevents the use of any pont-
   to-point connection-oriented transport, therefore restricts all
   Multicast data to be sent over the User Datagram Protocol (UDP).  UDP
   provides a minimal message-passing transport that has no inherent
   congestion control mechanisms.  Because congestion control is
   critical to the stable operation of the Internet, applications and
   upper-layer protocols that choose to use Multicast UDP as an Internet
   service must employ mechanisms to prevent congestion collapse and to
   establish some degree of fairness with concurrent traffic.  This
   document provides guidelines on the use of UDP for the designers of
   multicast applications and higher-level protocols.

Status of This Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on December 14, 2013.

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of



Shepherd                Expires December 14, 2013               [Page 1]

Internet-Draft              Abbreviated Title                  June 2013


   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   2
   2.  Multicast UDP Usage Guidelines  . . . . . . . . . . . . . . .   3
     2.1.  Congestion Control Guidelines . . . . . . . . . . . . . .   3
       2.1.1.  Bulk Transfer Applications  . . . . . . . . . . . . .   3
       2.1.2.  Low Data-Volume Applications  . . . . . . . . . . . .   4
       2.1.3.  UDP Tunnels . . . . . . . . . . . . . . . . . . . . .   4
       2.1.4.  Message Size Guidelines . . . . . . . . . . . . . . .   4
   3.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   5
   4.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   5
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     6.1.  Normative References  . . . . . . . . . . . . . . . . . .   6
     6.2.  Informative References  . . . . . . . . . . . . . . . . .   6
   Appendix A.  Additional Stuff . . . . . . . . . . . . . . . . . .   8
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   8

1.  Introduction

   The User Datagram Protocol (UDP) [RFC0768] provides a minimal,
   unreliable, best-effort, message-passing transport to applications
   and upper-layer protocols (both simply called "applications" in the
   remainder of this document).  [RFC5405] is scoped to provide
   guidelines for unicast applications only, but all of the general
   requirements, references, and use cases apply to multicast
   [RFC1112][RFC4607] UDP application designers as well.  This document
   chooses to only make recommendations in requirements, use cases, and
   references where they differ from [RFC5405]or are unique for
   applications sending multicast UDP data (simply called "multicast" in
   the remainder of this document).

1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119]









Shepherd                Expires December 14, 2013               [Page 2]

Internet-Draft              Abbreviated Title                  June 2013


2.  Multicast UDP Usage Guidelines

2.1.  Congestion Control Guidelines

   [RFC2309] discusses the dangers of congestion-unresponsive flows and
   states that "all UDP-based streaming applications should incorporate
   effective congestion avoidance mechanisms".  Many large-scale
   multicast deployments are within a single administrative domain, and
   are provisioned over a bandwidth-reserved path or paths where
   congestion control is less relevant.  But there are a growing number
   of deployment cases where multicast is transiting multiple domains,
   is tunneled across the unicast Internet, or transits the Internet
   through a unicast overlay network.  This document is only concerned
   with the latter case of multicast data transiting the larger
   Internet, either as native IP multicast or encapsulated in a unicast
   tunnel and does not apply to administratively scoped deployments.

   When the multicast traffic exits the administrative domain of a
   single network or the bi-laterally agreed path between networks, or
   is tunneled across the unicast Internet either to another multicast
   network or to an end device, the application SHOULD provide a TCP-
   compatible aggregate flow over the end-to-end path to each leaf.

   There are currently two models of multicast delivery: the Any-Source
   Multicast (ASM) model as defined in [RFC1112] and the Source-Specific
   Multicast (SSM) model as defined in [RFC4607].  ASM group members
   will receive all data sent to the group by any source, while SSM
   constrains the distribution tree to only one single source.  Many
   congestion-controlled transport protocols are often not applicable to
   multicast distribution services, or simply won't scale well to very
   large multicast trees since they require bi-directional communication
   and adapt the data-rate to accommodate the network conditions to a
   single receiver.  Multicast distribution trees can often fan out to
   massive numbers of receivers limiting the scalability of an in-band
   return channel to control the data-rate, and the one-to-many nature
   of multicast distribution trees prevent adapting the data-rate to
   individual receiver requirements.  For this reason, TCP-compatible
   aggregate flow for Internet multicast data, either native or
   tunneled, is the responsibility of the application.

2.1.1.  Bulk Transfer Applications

   Applications that perform bulk transmission of data over a multicast
   distribution tree, i.e., applications that exchange more than a small
   number of UDP datagrams per maximum receiver RTT, SHOULD implement
   Asynchronous Layered Coding (ALC) [RFC5775], TCP-Friendly Multicast
   Congestion Control (TFMCC) [RFC4654], Wave and Equation Based Rate
   Control (WEBRC) [RFC3738], NACK-Oriented Reliable Multicast (NORM)



Shepherd                Expires December 14, 2013               [Page 3]

Internet-Draft              Abbreviated Title                  June 2013


   transport protocol [RFC5740], File Delivery over Unidirectional
   Transport (FLUTE) [RFC6726], Real Time Protocol/Control Protocol (RTP
   /RTCP), [RFC3550] or another congestion control scheme following the
   guidelines of [RFC2887]and utilizing the framework of [RFC3048].

   Bulk transfer applications that choose not to implement [RFC4654],
   [RFC5775], [RFC3738], [RFC5740], [RFC6726], or [RFC3550] SHOULD
   implement a congestion control scheme that results in bandwidth use
   that competes fairly with TCP within an order of magnitude.
   Section 2 of [RFC3551] suggests that applications SHOULD monitor the
   packet loss rate to ensure that it is within acceptable parameters.
   Packet loss is considered acceptable if a TCP flow across the same
   network path under the same network conditions would achieve an
   average throughput, measured on a reasonable timescale, that is not
   less than that of the UDP flow.  The comparison to TCP cannot be
   specified exactly, but is intended as an "order-of-magnitude"
   comparison in timescale and throughput.

   Finally, some bulk transfer applications may choose not to implement
   any congestion control mechanism and instead rely on transmitting
   across reserved path capacity.  This might be an acceptable choice
   for a subset of restricted networking environments, but is by no
   means a safe practice for operation in the Internet.  When the
   multicast traffic of such applications leaks out on unprovisioned
   Internet paths, it can significantly degrade the performance of other
   traffic sharing the path and even result in congestion collapse.
   Applications that support an uncontrolled or unadaptive transmission
   behavior SHOULD NOT do so by default and SHOULD instead require users
   to explicitly enable this mode of operation.

2.1.2.  Low Data-Volume Applications

   All of the recommendations in section 3.1.2 of [RFC5405] are
   applicable to multicast as well.

2.1.3.  UDP Tunnels

   All of the recommendations in section 3.1.3 of [RFC5405] are
   applicable to multicast carried inside of unicast UDP tunnels.  There
   are, however deployment cases and solutions where the outer header of
   a UDP tunnel contains a multicast destination address, such as
   [RFC6513], but these are primarily deployed in bandwidth reserved
   environments within a single administrative domain, or between two
   domains where a bi-laterally agreed upon path and bandwidth is in
   place and so congestion control is not an issue.

2.1.4.  Message Size Guidelines




Shepherd                Expires December 14, 2013               [Page 4]

Internet-Draft              Abbreviated Title                  June 2013


   IP fragmentation lowers the efficiency and reliability of Internet
   communication.  The loss of a single fragment results in the loss of
   an entire fragmented packet, because even if all other fragments are
   received correctly, the original packet cannot be reassembled and
   delivered.  This fundamental issue with fragmentation exists for both
   IPv4 and IPv6, unicast and multicast packets.  In addition, some
   network address translators (NATs) and firewalls drop IP fragments.
   The network address translation performed by a NAT only operates on
   complete IP packets, and some firewall policies also require
   inspection of complete IP packets.  Even with these being the case,
   some NATs and firewalls simply do not implement the necessary
   reassembly functionality, and instead choose to drop all fragments.
   Finally, [RFC4963] documents other issues specific to IPv4
   fragmentation.

   Due to these issues, a multicast application SHOULD NOT send UDP
   datagrams that result in IP packets that exceed the effective MTU as
   described in section 3 of [RFC6807].  Consequently, an application
   SHOULD either use the effective MTU information provided by the
   Population Count Extensions to Protocol Independent Multicast
   [RFC6807] or implement path MTU discovery itself
   [RFC1191][RFC1981][RFC4821] to determine whether the path to each
   destination will support its desired message size without
   fragmentation.

   If the multicast application is incapable of, or choose not to
   implement a worst-cast path MTU solution, the application SHOULD
   assume the maximum MTU of any link will be affected by multiple
   levels of encapsulation and SHOULD NOT send any packet larger than
   1280 bytes.

3.  Acknowledgements

   This template was derived from an initial version written by Pekka
   Savola and contributed by him to the xml2rfc project.

   This document is part of a plan to make xml2rfc indispensable
   [DOMINATION].

4.  IANA Considerations

   This memo includes no request to IANA.









Shepherd                Expires December 14, 2013               [Page 5]

Internet-Draft              Abbreviated Title                  June 2013


   All drafts are required to have an IANA considerations section (see
   the update of RFC 2434 [I-D.narten-iana-considerations-rfc2434bis]
   for a guide).  If the draft does not require IANA to do anything, the
   section contains an explicit statement that this is the case (as
   above).  If there are no requirements for IANA, the section will be
   removed during conversion into an RFC by the RFC Editor.

5.  Security Considerations

   All drafts are required to have a security considerations section.
   See RFC 3552 [RFC3552] for a guide.

6.  References

6.1.  Normative References

   [RFC0768]  Postel, J., "User Datagram Protocol", STD 6, RFC 768,
              August 1980.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [min_ref]  authSurName, authInitials., "Minimal Reference", 2006.

6.2.  Informative References

   [DOMINATION]
              Mad Dominators, Inc., "Ultimate Plan for Taking Over the
              World", 1984, <http://www.example.com/dominator.html>.

   [I-D.narten-iana-considerations-rfc2434bis]
              Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", draft-narten-iana-
              considerations-rfc2434bis-09 (work in progress), March
              2008.

   [RFC1112]  Deering, S., "Host extensions for IP multicasting", STD 5,
              RFC 1112, August 1989.

   [RFC1191]  Mogul, J. and S. Deering, "Path MTU discovery", RFC 1191,
              November 1990.

   [RFC1981]  McCann, J., Deering, S., and J. Mogul, "Path MTU Discovery
              for IP version 6", RFC 1981, August 1996.

   [RFC2309]  Braden, B., Clark, D., Crowcroft, J., Davie, B., Deering,
              S., Estrin, D., Floyd, S., Jacobson, V., Minshall, G.,
              Partridge, C., Peterson, L., Ramakrishnan, K., Shenker,



Shepherd                Expires December 14, 2013               [Page 6]

Internet-Draft              Abbreviated Title                  June 2013


              S., Wroclawski, J., and L. Zhang, "Recommendations on
              Queue Management and Congestion Avoidance in the
              Internet", RFC 2309, April 1998.

   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
              June 1999.

   [RFC2887]  Handley, M., Floyd, S., Whetten, B., Kermode, R.,
              Vicisano, L., and M. Luby, "The Reliable Multicast Design
              Space for Bulk Data Transfer", RFC 2887, August 2000.

   [RFC3048]  Whetten, B., Vicisano, L., Kermode, R., Handley, M.,
              Floyd, S., and M. Luby, "Reliable Multicast Transport
              Building Blocks for One-to-Many Bulk-Data Transfer", RFC
              3048, January 2001.

   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for Real-Time
              Applications", STD 64, RFC 3550, July 2003.

   [RFC3551]  Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
              Video Conferences with Minimal Control", STD 65, RFC 3551,
              July 2003.

   [RFC3552]  Rescorla, E. and B. Korver, "Guidelines for Writing RFC
              Text on Security Considerations", BCP 72, RFC 3552, July
              2003.

   [RFC3738]  Luby, M. and V. Goyal, "Wave and Equation Based Rate
              Control (WEBRC) Building Block", RFC 3738, April 2004.

   [RFC4607]  Holbrook, H. and B. Cain, "Source-Specific Multicast for
              IP", RFC 4607, August 2006.

   [RFC4654]  Widmer, J. and M. Handley, "TCP-Friendly Multicast
              Congestion Control (TFMCC): Protocol Specification", RFC
              4654, August 2006.

   [RFC4821]  Mathis, M. and J. Heffner, "Packetization Layer Path MTU
              Discovery", RFC 4821, March 2007.

   [RFC4963]  Heffner, J., Mathis, M., and B. Chandler, "IPv4 Reassembly
              Errors at High Data Rates", RFC 4963, July 2007.

   [RFC5405]  Eggert, L. and G. Fairhurst, "Unicast UDP Usage Guidelines
              for Application Designers", BCP 145, RFC 5405, November
              2008.




Shepherd                Expires December 14, 2013               [Page 7]

Internet-Draft              Abbreviated Title                  June 2013


   [RFC5740]  Adamson, B., Bormann, C., Handley, M., and J. Macker,
              "NACK-Oriented Reliable Multicast (NORM) Transport
              Protocol", RFC 5740, November 2009.

   [RFC5775]  Luby, M., Watson, M., and L. Vicisano, "Asynchronous
              Layered Coding (ALC) Protocol Instantiation", RFC 5775,
              April 2010.

   [RFC6513]  Rosen, E. and R. Aggarwal, "Multicast in MPLS/BGP IP
              VPNs", RFC 6513, February 2012.

   [RFC6726]  Paila, T., Walsh, R., Luby, M., Roca, V., and R. Lehtonen,
              "FLUTE - File Delivery over Unidirectional Transport", RFC
              6726, November 2012.

   [RFC6807]  Farinacci, D., Shepherd, G., Venaas, S., and Y. Cai,
              "Population Count Extensions to Protocol Independent
              Multicast (PIM)", RFC 6807, December 2012.

Appendix A.  Additional Stuff

   This becomes an Appendix.

Author's Address

   Greg Shepherd (editor)
   Cisco Systems
   Tasman Drive
   San Jose
   USA

   Email: gjshep@gmail.com



















Shepherd                Expires December 14, 2013               [Page 8]