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