ietf-corpus

rfc-3828

The Lightweight User Datagram Protocol (UDP-Lite)

L-A. Larzon, M. Degermark, S. Pink, L-E. Jonsson (Editor), G. Fairhurst (Editor)
date2004-07 streamIETF areawit wgtsvwg statusPROPOSED STANDARD pages12 canonicalhttps://www.rfc-editor.org/rfc/rfc3828 doi10.17487/RFC3828
This document describes the Lightweight User Datagram Protocol (UDP-Lite), which is similar to the User Datagram Protocol (UDP) (RFC 768), but can also serve applications in error-prone network environments that prefer to have partially damaged payloads delivered rather than discarded. If this feature is not used, UDP-Lite is semantically identical to UDP. [STANDARDS-TRACK]

updated by

Extracted elements (21)

design-rationale §5

A separate IP protocol identifier was chosen for UDP-Lite rather than sharing UDP's identifier to avoid silent packet loss: if protocol identifiers were shared, a UDP-Lite packet with partial checksum sent to a UDP receiver would be silently discarded due to checksum mismatch, with neither application notified.

udp

design-rationale §3

UDP-Lite replaces UDP's Length field with Checksum Coverage because the packet length can be derived from the IP layer (as with TCP), freeing the field to encode the partial checksum boundary without increasing header size.

udp

design-rationale §1

UDP-Lite was designed because existing transport protocols prevented error-tolerant applications (e.g., voice/video codecs) from benefiting from link-layer partial error delivery. IPv4 UDP allowed checksum disabling but IPv6 mandated full coverage; UDP-Lite provides a middle ground covering at least the header.

udp, realtime

interoperability-note §5

UDP-Lite has been assigned IP protocol number 136 (UDPLite), separate from UDP (17). A UDP-Lite-unaware destination will return an ICMP 'Protocol Unreachable' or ICMPv6 'Payload Type Unknown' error, providing a simple detection mechanism for unaware systems.

udp, ip

normative-requirement §3.3 SHOULD

Applications using UDP-Lite MUST NOT make assumptions about the correctness of received data beyond the position indicated by the Checksum Coverage field and should introduce their own validity checks for the uncovered portion.

udp

normative-requirement §3.3 RECOMMENDED

It is RECOMMENDED that the default behavior of UDP-Lite mimic UDP by setting Checksum Coverage to match the full packet length. Applications wanting partial coverage must explicitly request it via a system call on both sender and receiver sides.

udp

normative-requirement §4 MUST

Link layers that do not support partial error detection suitable for UDP-Lite MUST detect errors in the entire UDP-Lite packet and MUST discard damaged packets, treating the whole packet as a UDP packet.

udp

normative-requirement §4 MUST

Lower layers MUST use a strong error detection mechanism to detect errors in the sensitive part of a UDP-Lite packet (from the first IP header octet through the last octet identified by Checksum Coverage) and MUST discard damaged packets.

udp

normative-requirement §3.1 MUST NOT

Since the transmitted checksum MUST NOT be all zeroes, an application wishing no payload protection should use a Checksum Coverage value of 8, which covers only the 8-byte UDP-Lite header.

udp

normative-requirement §3.1 MUST

The Checksum field MUST include a pseudo-header based on the IP header, irrespective of the Checksum Coverage value. Prior to computation, the checksum field MUST be set to zero. If the computed checksum is 0, it is transmitted as all ones.

udp

normative-requirement §3.4 MUST NOT

The sender IP module MUST NOT pad the IP payload with extra octets, because the length of the UDP-Lite payload delivered to the receiver depends on the IP payload length.

udp, ip

normative-requirement §3.1 MUST

The UDP-Lite header MUST always be covered by the checksum. The Checksum Coverage field MUST be either 0 or at least 8; packets with a value of 1 to 7 MUST be discarded by the receiver.

udp

normative-requirement §3.1 MUST

UDP-Lite packets with a Checksum Coverage greater than the IP length MUST be discarded by the receiver.

udp

protocol-element §3.5

For Jumbograms, the 16-bit Checksum Coverage field can represent coverage up to 65535 octets. The checksum can cover either the entire payload (value zero) or at most the initial 65535 octets of the UDP-Lite packet.

udp, ip

protocol-element §3.1

The Checksum Coverage field is a 16-bit value specifying the number of octets from the beginning of the UDP-Lite header that are covered by the checksum. A value of zero indicates the entire packet is covered; values 1–7 are invalid and MUST cause the packet to be discarded.

udp

protocol-element §3.2

The UDP-Lite pseudo header differs from UDP's: the Length field is taken from the IP module (total IP payload length including UDP-Lite header) rather than from the UDP-Lite header itself, consistent with TCP's pseudo header computation.

udp, ip

registry §7

IANA assigned IP protocol number 136 to UDP-Lite, with the name 'UDPLite' (hyphen omitted to ensure compatibility across platforms where '-' may not be valid in a protocol entity name).

registry, udp

security-consideration §6

Encryption transforms that cause error propagation (block ciphers) will spread damage across a decrypted packet, making it unusable. Stream ciphers that do not propagate errors allow an attacker to make predictable plaintext changes without decrypting the ciphertext, posing a confidentiality and integrity risk.

security, crypto, udp

security-consideration §6

IPsec integrity checks (ESP or AH) are applied to the entire IP packet payload; any bit corruption in the protected area causes the receiver to discard the UDP-Lite packet, negating UDP-Lite's partial-delivery benefit. When IPsec ESP encryption is used, links cannot identify UDP-Lite traffic and MUST apply standard full-packet integrity checks.

security, udp, ipsec

security-consideration §6

When UDP-Lite partial checksum is enabled, the insensitive portion of a packet may change in transit, causing most authentication mechanisms to fail since they verify the entire packet has not changed. Authentication will always fail for UDP-Lite packets where the insensitive part has been damaged unless authentication operates only on the sensitive part.

security, udp, crypto

wire-format §3

The UDP-Lite header replaces UDP's Length field with a Checksum Coverage field. The header contains four 16-bit fields: Source Port, Destination Port, Checksum Coverage, and Checksum, followed by the payload.

udp