datatracker.ietf.org
Sign in
Version 5.6.2.p2, 2014-07-24
Report a bug

Unicast UDP Usage Guidelines for Application Designers
RFC 5405

Network Working Group                                          L. Eggert
Request for Comments: 5405                                         Nokia
BCP: 145                                                    G. Fairhurst
Category: Best Current Practice                   University of Aberdeen
                                                           November 2008

         Unicast UDP Usage Guidelines for Application Designers

Status of This Memo

   This document specifies an Internet Best Current Practices for the
   Internet Community, and requests discussion and suggestions for
   improvements.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (c) 2008 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 publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

Abstract

   The User Datagram Protocol (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
   UDP as an Internet transport 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 unicast applications and upper-layer
   protocols.  Congestion control guidelines are a primary focus, but
   the document also provides guidance on other topics, including
   message sizes, reliability, checksums, and middlebox traversal.

Eggert & Fairhurst       Best Current Practice                  [Page 1]
RFC 5405              Unicast UDP Usage Guidelines         November 2008

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   3.  UDP Usage Guidelines . . . . . . . . . . . . . . . . . . . . .  5
     3.1.  Congestion Control Guidelines  . . . . . . . . . . . . . .  6
     3.2.  Message Size Guidelines  . . . . . . . . . . . . . . . . . 11
     3.3.  Reliability Guidelines . . . . . . . . . . . . . . . . . . 12
     3.4.  Checksum Guidelines  . . . . . . . . . . . . . . . . . . . 13
     3.5.  Middlebox Traversal Guidelines . . . . . . . . . . . . . . 15
     3.6.  Programming Guidelines . . . . . . . . . . . . . . . . . . 17
     3.7.  ICMP Guidelines  . . . . . . . . . . . . . . . . . . . . . 18
   4.  Security Considerations  . . . . . . . . . . . . . . . . . . . 19
   5.  Summary  . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
   6.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 22
   7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 22
     7.1.  Normative References . . . . . . . . . . . . . . . . . . . 22
     7.2.  Informative References . . . . . . . . . . . . . . . . . . 23

Eggert & Fairhurst       Best Current Practice                  [Page 2]
RFC 5405              Unicast UDP Usage Guidelines         November 2008

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).  Compared to other transport protocols,
   UDP and its UDP-Lite variant [RFC3828] are unique in that they do not
   establish end-to-end connections between communicating end systems.
   UDP communication consequently does not incur connection
   establishment and teardown overheads, and there is minimal associated
   end system state.  Because of these characteristics, UDP can offer a
   very efficient communication transport to some applications.

   A second unique characteristic of UDP is that it provides no inherent
   congestion control mechanisms.  On many platforms, applications can
   send UDP datagrams at the line rate of the link interface, which is
   often much greater than the available path capacity, and doing so
   contributes to congestion along the path.  [RFC2914] describes the
   best current practice for congestion control in the Internet.  It
   identifies two major reasons why congestion control mechanisms are
   critical for the stable operation of the Internet:

   1.  The prevention of congestion collapse, i.e., a state where an
       increase in network load results in a decrease in useful work

[include full document text]