IP Fragmentation Considered FragileJuniper Networks2251 Corporate Park DriveHerndon20171VirginiaUnited States of Americarbonica@juniper.netUnaffiliatedSanta BarbaraCalifornia93117United States of AmericaFredBaker.IETF@gmail.comAPNIC6 Cordelia StBrisbane4101 QLDAustraliagih@apnic.netCheck Point Software959 Skyway RoadSan CarlosCalifornia94070United States of Americabob.hinden@gmail.comCiscoPhilip Pedersens vei 1N-1366 LysakerNorwayot@cisco.comSI6 NetworksEvaristo Carriego 2644HaedoProvincia de Buenos AiresArgentinafgont@si6networks.com
Internet Area
Internet Area WGIPv6FragmentationThis document describes IP fragmentation and explains how it
introduces fragility to Internet communication.This document also proposes alternatives to IP fragmentation and
provides recommendations for developers and network operators.Status of This Memo
This memo documents an Internet Best Current Practice.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by
the Internet Engineering Steering Group (IESG). Further information
on BCPs is available in Section 2 of RFC 7841.
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
.
Copyright Notice
Copyright (c) 2020 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
() 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. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
Table of Contents
. Introduction
. Requirements Language
. IP Fragmentation
. Links, Paths, MTU, and PMTU
. Fragmentation Procedures
. Upper-Layer Reliance on IP Fragmentation
. Increased Fragility
. Virtual Reassembly
. Policy-Based Routing
. Network Address Translation (NAT)
. Stateless Firewalls
. Equal-Cost Multipath, Link Aggregate Groups, and Stateless Load Balancers
. IPv4 Reassembly Errors at High Data Rates
. Security Vulnerabilities
. PMTU Black-Holing Due to ICMP Loss
. Transient Loss
. Incorrect Implementation of Security Policy
. Persistent Loss Caused by Anycast
. Persistent Loss Caused by Unidirectional Routing
. Black-Holing Due to Filtering or Loss
. Alternatives to IP Fragmentation
. Transport-Layer Solutions
. Application-Layer Solutions
. Applications That Rely on IPv6 Fragmentation
. Domain Name Service (DNS)
. Open Shortest Path First (OSPF)
. Packet-in-Packet Encapsulations
. UDP Applications Enhancing Performance
. Recommendations
. For Application and Protocol Developers
. For System Developers
. For Middlebox Developers
. For ECMP, LAG, and Load-Balancer Developers And Operators
. For Network Operators
. IANA Considerations
. Security Considerations
. References
. Normative References
. Informative References
Acknowledgements
Authors' Addresses
IntroductionOperational experience
reveals that IP fragmentation
introduces fragility to Internet communication. This document describes
IP fragmentation and explains the fragility it introduces. It also
proposes alternatives to IP fragmentation and provides recommendations
for developers and network operators.While this document identifies issues associated with IP
fragmentation, it does not recommend deprecation. Legacy protocols that
depend upon IP fragmentation would do well to be updated to remove that dependency.
However, some applications and environments (see )
require IP fragmentation. In these cases, the protocol will continue
to rely on IP fragmentation, but the designer should be aware that
fragmented packets may result in black holes. A design should include
appropriate safeguards.Rather than deprecating IP fragmentation, this document recommends
that upper-layer protocols address the problem of fragmentation at their
layer, reducing their reliance on IP fragmentation to the greatest
degree possible.Requirements Language
The key words "MUST", "MUST NOT",
"REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT",
"RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be
interpreted as described in BCP 14 when, and only when, they appear in all capitals, as
shown here.
IP FragmentationLinks, Paths, MTU, and PMTUAn Internet path connects a source node to a destination node. A
path may contain links and routers. If a path contains more than one
link, the links are connected in series, and a router connects each
link to the next.Internet paths are dynamic. Assume that the path from one node
to another contains a set of links and routers. If a link or a
router fails, the path can also change so that it includes a
different set of links and routers.
Each link is constrained by the number of octets that it can convey in
a single IP packet. This constraint is called the link Maximum
Transmission Unit (MTU). IPv4
requires every link to support an MTU of 68 octets or greater (see NOTE 1).
IPv6 similarly requires every link to
support an MTU of 1280 octets or greater. These are called the IPv4 and IPv6 minimum link MTUs.
Some links, and some ways of using links, result in
additional variable overhead. For the simple case of tunnels,
this document defers to other documents. For other cases,
such as MPLS, this document considers the link MTU to include
appropriate allowance for any such overhead.Likewise, each Internet path is constrained by the number of octets
that it can convey in a single IP packet. This constraint is called
the Path MTU (PMTU). For any given path, the PMTU is equal to the
smallest of its link MTUs. Because Internet paths are dynamic, PMTU
is also dynamic.For reasons described below, source nodes estimate the PMTU between
themselves and destination nodes. A source node can produce extremely
conservative PMTU estimates in which:
The estimate for each IPv4 path is equal to the IPv4 minimum
link MTU.
The estimate for each IPv6 path is equal to the IPv6 minimum
link MTU.
While these conservative estimates are guaranteed to be less
than or equal to the actual PMTU, they are likely to be much less than
the actual PMTU. This may adversely affect upper-layer protocol
performance.By executing Path MTU Discovery (PMTUD) procedures , a source node can
maintain a less conservative estimate of the PMTU between itself and a
destination node. In PMTUD, the source node produces an initial PMTU
estimate. This initial estimate is equal to the MTU of the first link
along the path to the destination node. It can be greater than the
actual PMTU.Having produced an initial PMTU estimate, the source node sends
non-fragmentable IP packets to the destination node (see NOTE 2). If
one of these packets is larger than the actual PMTU, a downstream
router will not be able to forward the packet through the next link
along the path. Therefore, the downstream router drops the packet and
sends an Internet Control Message Protocol (ICMP)
Packet Too Big (PTB) message to
the source node (see NOTE 3). The ICMP PTB message indicates the MTU
of the link through which the packet could not be forwarded. The
source node uses this information to refine its PMTU estimate.PMTUD produces a running estimate of the PMTU between a source node
and a destination node. Because PMTU is dynamic, the PMTU estimate can
be larger than the actual PMTU. In order to detect PMTU increases,
PMTUD occasionally resets the PMTU estimate to its initial value and
repeats the procedure described above.Ideally, PMTUD operates as described above. However, in some
scenarios, PMTUD fails. For example:
PMTUD relies on the network's ability to deliver ICMP PTB
messages to the source node. If the network cannot deliver ICMP
PTB messages to the source node, PMTUD fails.
PMTUD is susceptible to attack because ICMP messages are easily
forged and not authenticated by the
receiver. Such attacks can cause PMTUD to produce unnecessarily
conservative PMTU estimates.
NOTE 1:
In IPv4, every host must be able to reassemble a packet
whose length is less than or equal to 576 octets. However, the IPv4 minimum
link MTU is not 576. Section
of RFC 791 explicitly states
that the IPv4 minimum link MTU is 68 octets.
NOTE 2:
A non-fragmentable packet can be fragmented at its source.
However, it cannot be fragmented by a downstream node. An IPv4 packet
whose Don't Fragment (DF) bit is set to 0 is fragmentable. An IPv4 packet whose
DF bit is set to 1 is non-fragmentable. All IPv6 packets are also
non-fragmentable.
NOTE 3:
The ICMP PTB message has two instantiations. In ICMPv4, the ICMP PTB message is a Destination
Unreachable message with Code equal to 4 (fragmentation needed and DF
set). This message was augmented by to
indicate the MTU of the link through which the packet could not be
forwarded. In ICMPv6, the ICMP PTB
message is a Packet Too Big Message with Code equal to 0. This
message also indicates the MTU of the link through which the packet
could not be forwarded.
Fragmentation ProceduresWhen an upper-layer protocol submits data to the underlying IP
module, and the resulting IP packet's length is greater than the PMTU,
the packet is divided into fragments. Each fragment includes an IP
header and a portion of the original packet. describes IPv4 fragmentation procedures.
An IPv4 packet whose DF bit is set to 1 may be fragmented by the
source node, but may not be fragmented by a downstream router. An IPv4
packet whose DF bit is set to 0 may be fragmented by the source
node or by a downstream router. When an IPv4 packet is fragmented, all
IP options (which are within the IPv4 header) appear in the first fragment, but only options whose "copy"
bit is set to 1 appear in subsequent fragments., notably in
Section , describes
IPv6 fragmentation procedures. An IPv6 packet may be
fragmented only at the source node. When an IPv6 packet is
fragmented, all extension headers appear in the first
fragment, but only per-fragment headers appear in subsequent
fragments. Per-fragment headers include the following:
The IPv6 header.
The Hop-by-Hop Options header (if present).
The Destination Options header (if present and if it precedes a
Routing header).
The Routing header (if present).
The Fragment header.
In IPv4, the upper-layer header usually appears in the
first fragment, due to the sizes of the headers involved.
In IPv6, the upper-layer header must appear in the first fragment.Upper-Layer Reliance on IP FragmentationUpper-layer protocols can operate in the following modes:
Do not rely on IP fragmentation.
Rely on IP fragmentation by the source node only.
Rely on IP fragmentation by any node.
Upper-layer protocols running over IPv4 can operate in all of the
above-mentioned modes. Upper-layer protocols running over IPv6 can
operate in the first and second modes only.Upper-layer protocols that operate in the first two modes (above)
require access to the PMTU estimate. In order to fulfill this
requirement, they can:
Estimate the PMTU to be equal to the IPv4 or IPv6 minimum link
MTU.
According to PLPMTUD procedures, the upper-layer protocol
maintains a running PMTU estimate. It does so by sending probe packets
of various sizes to its upper-layer peer and receiving
acknowledgements. This strategy differs from PMTUD in that it relies
on acknowledgement of received messages, as opposed to ICMP PTB
messages concerning dropped messages. Therefore, PLPMTUD does not rely
on the network's ability to deliver ICMP PTB messages to the
source.Increased FragilityThis section explains how IP fragmentation introduces fragility to
Internet communication.Virtual ReassemblyVirtual reassembly is a procedure in which a device
conceptually reassembles a packet, forwards its fragments, and discards
the reassembled copy. In Address plus Port (A+P)
and Carrier Grade NAT (CGN), virtual reassembly
is required in order to correctly translate fragment
addresses. It could be useful to address the problems in Sections
, ,
, and .
Virtual reassembly is computationally expensive and holds
state for indeterminate periods of time. Therefore, it is prone
to errors and attacks.Policy-Based RoutingIP fragmentation causes problems for routers that implement
policy-based routing.When a router receives a packet, it identifies the next hop on
route to the packet's destination and forwards the packet to that
next hop. In order to identify the next hop, the router interrogates a
local data structure called the Forwarding Information Base (FIB).Normally, the FIB contains destination-based entries that map a
destination prefix to a next hop. Policy-based routing allows
destination-based and policy-based entries to coexist in the same FIB.
A policy-based FIB entry maps multiple fields, drawn from either the
IP or transport-layer header, to a next hop.
Policy-Based Routing FIB
Entry
Type
Dest. Prefix
Next Hdr / Dest. Port
Next Hop
1
Destination-based
2001:db8::1/128
Any / Any
2001:db8:2::2
2
Policy-based
2001:db8::1/128
TCP / 80
2001:db8:3::3
Assume that a router maintains the FIB in . The
first FIB entry is destination-based. It maps a destination prefix
2001:db8::1/128 to a next hop 2001:db8:2::2. The second FIB entry is
policy-based. It maps the same destination prefix 2001:db8::1/128
and a destination port (TCP / 80) to a different next hop
(2001:db8:3::3). The second entry is more specific than the first.When the router receives the first fragment of a packet that is
destined for TCP port 80 on 2001:db8::1, it interrogates the FIB. Both
FIB entries satisfy the query. The router selects the second FIB entry
because it is more specific and forwards the packet to
2001:db8:3::3.When the router receives the second fragment of the packet, it
interrogates the FIB again. This time, only the first FIB entry
satisfies the query, because the second fragment contains no
indication that the packet is destined for TCP port 80. Therefore, the
router selects the first FIB entry and forwards the packet to
2001:db8:2::2.Policy-based routing is also known as filter-based forwarding.Network Address Translation (NAT)IP fragmentation causes problems for Network Address Translation
(NAT) devices. When a NAT device detects a new, outbound flow, it maps
that flow's source port and IP address to another source port and IP
address. Having created that mapping, the NAT device translates:
The source IP address and source port on each outbound
packet.
The destination IP address and destination port on each inbound
packet.
A+P and
Carrier Grade NAT (CGN)
are two common NAT strategies. In both approaches, the NAT device must virtually
reassemble fragmented packets in order to translate and forward each
fragment.Stateless FirewallsAs discussed in more detail in , IP
fragmentation causes problems for stateless firewalls whose rules
include TCP and UDP ports. Because port information is only
available in the first fragment and not available
in the subsequent fragments, the firewall is limited to the following
options:
Accept all subsequent fragments, possibly admitting certain
classes of attack.
Block all subsequent fragments, possibly blocking legitimate
traffic.
Neither option is attractive.Equal-Cost Multipath, Link Aggregate Groups, and Stateless Load BalancersIP fragmentation causes problems for Equal-Cost Multipath (ECMP),
Link Aggregate Groups (LAG), and other stateless load-distribution
technologies. In order to assign a packet or packet fragment to a
link, an intermediate node executes a hash (i.e., load-distributing)
algorithm. The following paragraphs describe a commonly deployed hash
algorithm.If the packet or packet fragment contains a transport-layer header,
the algorithm accepts the following 5-tuple as input:
IP Source Address.
IP Destination Address.
IPv4 Protocol or IPv6 Next Header.
transport-layer source port.
transport-layer destination port.
If the packet or packet fragment does not contain a
transport-layer header, the algorithm accepts only the following
3-tuple as input:
IP Source Address.
IP Destination Address.
IPv4 Protocol or IPv6 Next Header.
Therefore, non-fragmented packets belonging to a flow can be
assigned to one link while fragmented packets belonging to the same
flow can be divided between that link and another. This can cause
suboptimal load distribution. offers a partial solution to this problem
for IPv6 devices only. According to :
At intermediate routers that perform load distribution, the hash
algorithm used to determine the outgoing component-link in an ECMP
and/or LAG toward the next hop MUST minimally include the 3-tuple
{dest addr, source addr, flow label} and MAY also include the
remaining components of the 5-tuple.
If the algorithm includes only the 3-tuple {dest addr, source addr,
flow label}, it will assign all fragments belonging to a packet to the
same link. (See and ).In order to avoid the problem described above, implementations
SHOULD implement the recommendations provided in of this document.IPv4 Reassembly Errors at High Data RatesIPv4 fragmentation is not sufficiently robust for use under some
conditions in today's Internet. At high data rates, the 16-bit IP
identification field is not large enough to prevent duplicate IDs, resulting in frequent
incorrectly assembled IP fragments, and the TCP and UDP checksums are
insufficient to prevent the resulting corrupted datagrams from being
delivered to upper-layer protocols.
describes some easily reproduced experiments demonstrating the
problem and discusses some of the operational implications of these
observations.These reassembly issues do not occur as frequently in IPv6 because
the IPv6 identification field is 32 bits long.Security VulnerabilitiesSecurity researchers have documented several attacks that exploit
IP fragmentation. The following are examples:
Overlapping fragment attacks .
Resource exhaustion attacks.
Attacks based on predictable fragment identification values
.
Evasion of Network Intrusion Detection Systems (NIDS) .
In the overlapping fragment attack, an attacker constructs a series
of packet fragments. The first fragment contains an IP header, a
transport-layer header, and some transport-layer payload. This
fragment complies with local security policy and is allowed to pass
through a stateless firewall. A second fragment, having a nonzero
offset, overlaps with the first fragment. The second fragment also
passes through the stateless firewall. When the packet is reassembled,
the transport-layer header from the first fragment is overwritten by
data from the second fragment. The reassembled packet does not comply
with local security policy. Had it traversed the firewall in one
piece, the firewall would have rejected it.A stateless firewall cannot protect against the overlapping
fragment attack. However, destination nodes can protect against the
overlapping fragment attack by implementing the procedures described
in RFC 1858, RFC 3128, and RFC 8200. These reassembly procedures detect
the overlap and discard the packet.The fragment reassembly algorithm is a stateful procedure in an
otherwise stateless protocol. Therefore, it can be exploited by
resource exhaustion attacks. An attacker can construct a series of
fragmented packets with one fragment missing from each packet so that
the reassembly is impossible. Thus, this attack causes resource
exhaustion on the destination node, possibly denying reassembly
services to other flows. This type of attack can be mitigated by
flushing fragment reassembly buffers when necessary, at the expense of
possibly dropping legitimate fragments.Each IP fragment contains an "Identification" field that
destination nodes use to reassemble fragmented packets. Some
implementations set the Identification field to a predictable value,
thus making it easy for an attacker to forge malicious IP fragments
that would cause the reassembly procedure for legitimate packets to
fail.NIDS aims at identifying malicious activity by analyzing network
traffic. Ambiguity in the possible result of the fragment reassembly
process may allow an attacker to evade these systems. Many of these
systems try to mitigate some of these evasion techniques (e.g., by
computing all possible outcomes of the fragment reassembly process, at
the expense of increased processing requirements).PMTU Black-Holing Due to ICMP LossAs mentioned in , upper-layer protocols can
be configured to rely on PMTUD. Because PMTUD relies upon the network
to deliver ICMP PTB messages, those protocols also rely on the
networks to deliver ICMP PTB messages.According to , ICMPv6 PTB messages must not
be filtered. However, ICMP PTB delivery is not reliable. It is subject
to both transient and persistent loss.Transient loss of ICMP PTB messages can cause transient PMTU black
holes. When the conditions contributing to transient loss abate, the
network regains its ability to deliver ICMP PTB messages and
connectivity between the source and destination nodes is restored.
of this document describes conditions that
lead to transient loss of ICMP PTB messages.Persistent loss of ICMP PTB messages can cause persistent black
holes. Sections , ,
and of this document describe conditions that
lead to persistent loss of ICMP PTB messages.The problem described in this section is specific to PMTUD. It does
not occur when the upper-layer protocol obtains its PMTU estimate from
PLPMTUD or from any other source.Transient LossThe following factors can contribute to transient loss of ICMP
PTB messages:
Network congestion.
Packet corruption.
Transient routing loops.
ICMP rate limiting.
The effect of rate limiting may be severe, as RFC 4443 recommends
strict rate limiting of ICMPv6 traffic.Incorrect Implementation of Security PolicyIncorrect implementation of security policy can cause persistent
loss of ICMP PTB messages.For example, assume that a Customer Premises Equipment (CPE) router implements
the following zone-based security policy:
Allow any traffic to flow from the inside zone to the outside
zone.
Do not allow any traffic to flow from the outside zone to the
inside zone unless it is part of an existing flow (i.e., it was
elicited by an outbound packet).
When a correct implementation of the above-mentioned
security policy receives an ICMP PTB message, it examines the ICMP
PTB payload in order to determine whether the original packet (i.e.,
the packet that elicited the ICMP PTB message) belonged to an
existing flow. If the original packet belonged to an existing flow,
the implementation allows the ICMP PTB to flow from the outside zone
to the inside zone. If not, the implementation discards the ICMP PTB
message.When an incorrect implementation of the above-mentioned security
policy receives an ICMP PTB message, it discards the packet because
its source address is not associated with an existing flow.The security policy described above has been implemented incorrectly on
many consumer CPE routers.Persistent Loss Caused by AnycastAnycast can cause persistent loss of ICMP PTB messages. Consider
the example below:A DNS client sends a request to an anycast address. The network
routes that DNS request to the nearest instance of that anycast
address (i.e., a DNS server). The DNS server generates a response
and sends it back to the DNS client. While the response does not
exceed the DNS server's PMTU estimate, it does exceed the actual
PMTU.A downstream router drops the packet and sends an ICMP PTB
message the packet's source (i.e., the anycast address). The network
routes the ICMP PTB message to the anycast instance closest to the
downstream router. That anycast instance may not be the DNS server
that originated the DNS response. It may be another DNS server with
the same anycast address. The DNS server that originated the
response may never receive the ICMP PTB message and may never update
its PMTU estimate.Persistent Loss Caused by Unidirectional RoutingUnidirectional routing can cause persistent loss of ICMP PTB
messages. Consider the example below:A source node sends a packet to a destination node. All
intermediate nodes maintain a route to the destination node but do
not maintain a route to the source node. In this case, when an
intermediate node encounters an MTU issue, it cannot send an ICMP
PTB message to the source node.Black-Holing Due to Filtering or LossIn RFC 7872, researchers sampled Internet paths to determine
whether they would convey packets that contain IPv6 extension headers.
Sampled paths terminated at popular Internet sites (e.g., popular web,
mail, and DNS servers).The study revealed that at least 28% of the sampled paths did not
convey packets containing the IPv6 Fragment extension header. In most
cases, fragments were dropped in the destination autonomous system. In
other cases, the fragments were dropped in transit autonomous
systems.Another study confirmed this
finding. It reported that 37% of sampled endpoints used IPv6-capable
DNS resolvers that were incapable of receiving a fragmented IPv6
response.It is difficult to determine why network operators drop fragments.
Possible causes follow:
Hardware inability to process fragmented packets.
Failure to change vendor defaults.
Unintentional misconfiguration.
Intentional configuration (e.g., network operators consciously
chooses to drop IPv6 fragments in order to address the issues
raised in Sections through ,
above.)
Alternatives to IP FragmentationTransport-Layer SolutionsThe Transport Control Protocol (TCP))
can be operated in a mode that does not require IP fragmentation.Applications submit a stream of data to TCP. TCP divides that
stream of data into segments, with no segment exceeding the TCP
Maximum Segment Size (MSS). Each segment is encapsulated in a TCP
header and submitted to the underlying IP module. The underlying IP
module prepends an IP header and forwards the resulting packet.If the TCP MSS is sufficiently small, then the underlying IP module
never produces a packet whose length is greater than the actual PMTU.
Therefore, IP fragmentation is not required.TCP offers the following mechanisms for MSS management:
Manual configuration.
PMTUD.
PLPMTUD.
Manual configuration is always applicable. If the MSS is configured
to a sufficiently low value, the IP layer will never produce a packet
whose length is greater than the protocol minimum link MTU. However,
manual configuration prevents TCP from taking advantage of larger link
MTUs.Upper-layer protocols can implement PMTUD in order to discover and
take advantage of larger Path MTUs. However, as mentioned in
, PMTUD relies upon the network to deliver ICMP PTB
messages. Therefore, PMTUD can only provide an estimate of the PMTU in
environments where the risk of ICMP PTB loss is acceptable (e.g.,
known to not be filtered).By contrast, PLPMTUD does not rely upon the network's ability to
deliver ICMP PTB messages. It utilizes probe messages sent as TCP
segments to determine whether the probed PMTU can be successfully used
across the network path. In PLPMTUD, probing is separated from
congestion control, so that loss of a TCP probe segment does not cause
a reduction of the congestion control window.
defines PLPMTUD procedures for TCP.While TCP will never knowingly cause the underlying IP module to
emit a packet that is larger than the PMTU estimate, it can cause the
underlying IP module to emit a packet that is larger than the actual
PMTU. For example, if routing changes and as a result the PMTU becomes
smaller, TCP will not know until the ICMP PTB message arrives. If this
occurs, the packet is dropped, the PMTU estimate is updated, the
segment is divided into smaller segments, and each smaller segment is
submitted to the underlying IP module.The Datagram Congestion Control Protocol
(DCCP) and the Stream Control Transmission
Protocol (SCTP) also can be operated in a mode that does not
require IP fragmentation. They both accept data from an application
and divide that data into segments, with no segment exceeding a
maximum size.
DCCP offers manual configuration,
PMTUD, and PLPMTUD as mechanisms for managing that maximum size.
Datagram protocols can also implement PLPMTUD to estimate the PMTU
via . This proposes
procedures for performing PLPMTUD with UDP, UDP options, SCTP, QUIC,
and other datagram protocols.Currently, User Datagram Protocol (UDP)
lacks a fragmentation mechanism of its own and relies on IP
fragmentation. However,
proposes a fragmentation mechanism for UDP.Application-Layer Solutions recognizes that IP fragmentation reduces
the reliability of Internet communication. It also recognizes that UDP
lacks a fragmentation mechanism of its own and relies on IP
fragmentation. Therefore, offers the
following advice regarding applications the run over the UDP:
An application SHOULD NOT send UDP datagrams that result in IP
packets that exceed the Maximum Transmission Unit (MTU) along the path
to the destination. Consequently, an application SHOULD either use the
path MTU information provided by the IP layer or implement Path MTU
Discovery (PMTUD) itself to determine whether the path to a
destination will support its desired message size without
fragmentation.
RFC 8085 continues:
Applications that do not follow the recommendation to do
PMTU/PLPMTUD discovery SHOULD still avoid sending UDP datagrams that
would result in IP packets that exceed the path MTU. Because the
actual path MTU is unknown, such applications SHOULD fall back to
sending messages that are shorter than the default effective MTU for
sending (EMTU_S in ). For IPv4, EMTU_S is the
smaller of 576 bytes and the first-hop MTU . For IPv6, EMTU_S is 1280
bytes . The effective PMTU for a directly
connected destination (with no routers on the path) is the configured
interface MTU, which could be less than the maximum link payload size.
Transmission of minimum-sized UDP datagrams is inefficient over paths
that support a larger PMTU, which is a second reason to implement PMTU
discovery.
RFC 8085 assumes that for IPv4 an EMTU_S of 576 is sufficiently
small to be supported by most current Internet
paths, even though the IPv4 minimum link MTU is 68 octets.This advice applies equally to any application that runs directly
over IP.Applications That Rely on IPv6 FragmentationThe following applications rely on IPv6 fragmentation:
DNS.
OSPFv2.
OSPFv3.
Packet-in-packet encapsulations.
Each of these applications relies on IPv6 fragmentation to a
varying degree. In some cases, that reliance is essential and cannot be
broken without fundamentally changing the protocol. In other cases, that
reliance is incidental, and most implementations already take
appropriate steps to avoid fragmentation.This list is not comprehensive, and other protocols that rely on IP
fragmentation may exist. They are not specifically considered in the
context of this document.Domain Name Service (DNS)DNS relies on UDP for efficiency, and the consequence is the use of
IP fragmentation for large responses, as permitted by the Extension Mechanisms for DNS (EDNS0)
options in the query. It is possible to mitigate the issue of
fragmentation-based packet loss by having queries use smaller EDNS0
UDP buffer sizes or by having the DNS server limit the size of its
UDP responses to some self-imposed maximum packet size that may be
less than the preferred EDNS0 UDP buffer size. In both cases, large
responses are truncated in the DNS, signaling to the client to
re-query using TCP to obtain the complete response. However, the
operational issue of the partial level of support for DNS over TCP,
particularly in the case where IPv6 transport is being used, becomes a
limiting factor of the efficacy of this approach .Larger DNS responses can normally be avoided by aggressively
pruning the Additional section of DNS responses. One scenario where
such pruning is ineffective is in the use of DNSSEC, where large key
sizes act to increase the response size to certain DNS queries. There
is no effective response to this situation within the DNS other than
using smaller cryptographic keys and adopting of DNSSEC administrative
practices that attempt to keep DNS response as short as possible.Open Shortest Path First (OSPF)OSPF implementations can emit messages large enough to cause
fragmentation. However, in order to optimize performance, most OSPF
implementations restrict their maximum message size to a value that
will not cause fragmentation.Packet-in-Packet Encapsulations This document acknowledges that in some cases, packets must
be fragmented within IP-in-IP tunnels. Therefore, this document
makes no additional recommendations regarding IP-in-IP
tunnels.In this document, packet-in-packet encapsulations include
IP-in-IP,
Generic Routing Encapsulation (GRE),
GRE-in-UDP, and
Generic Packet Tunneling in IPv6.
describes
fragmentation issues associated with all of the above-mentioned
encapsulations.The fragmentation strategy described for GRE in
has been deployed for all of the above-mentioned
encapsulations. This strategy does not rely on IP fragmentation except
in one corner case.
(See
and .)
further
describes this corner case.See for further
discussion.UDP Applications Enhancing PerformanceSome UDP applications rely on IP fragmentation to achieve
acceptable levels of performance. These applications use UDP datagram
sizes that are larger than the Path MTU so that more data can be
conveyed between the application and the kernel in a single system
call.To pick one example, the Licklider
Transmission Protocol (LTP), which is in current use on the
International Space Station (ISS), uses UDP datagram sizes larger than
the Path MTU to achieve acceptable levels of performance even though
this invokes IP fragmentation. More generally, SNMP and video
applications may transmit an application-layer quantum of data,
depending on the network layer to fragment and reassemble as
needed.RecommendationsFor Application and Protocol DevelopersDevelopers SHOULD NOT develop new protocols or applications that
rely on IP fragmentation. When a new protocol or application is
deployed in an environment that does not fully support IP
fragmentation, it SHOULD operate correctly, either in its default
configuration or in a specified alternative configuration.While there may be controlled environments where IP
fragmentation
works reliably, this is a deployment issue and can not be known
to someone developing a new protocol or application. It is not
recommended that new protocols or applications be developed that
rely on IP fragmentation.
Protocols and
applications that rely on IP fragmentation will work less
reliably on the Internet.
Legacy protocols that depend upon IP fragmentation SHOULD be
updated to break that dependency. However, in some cases, there may be
no viable alternative to IP fragmentation (e.g., IPSEC tunnel mode,
IP-in-IP encapsulation).
Applications and protocols cannot necessarily know or control
whether they use lower layers or network paths that rely on such
fragmentation.
In these cases, the protocol will continue to
rely on IP fragmentation but should only be used in environments where
IP fragmentation is known to be supported.Protocols may be able to avoid IP fragmentation by using a
sufficiently small MTU (e.g., The protocol minimum link MTU), disabling
IP fragmentation, and ensuring that the transport protocol in use
adapts its segment size to the MTU. Other protocols may deploy a
sufficiently reliable PMTU discovery mechanism (e.g., PLPMTUD).
UDP applications SHOULD abide by the recommendations stated in
.For System DevelopersSoftware libraries SHOULD include provision for PLPMTUD for each
supported transport protocol.For Middlebox DevelopersMiddleboxes, which are systems that "transparently"
perform policy functions on passing traffic but do not
participate in the routing system, should process IP fragments
in a manner that is consistent with
and . In many cases, middleboxes
must maintain state in order to achieve this goal.Price and performance considerations frequently motivate network
operators to deploy stateless middleboxes. These stateless middleboxes
may perform suboptimally, process IP fragments in a manner that is not
compliant with RFC 791 or RFC 8200, or even discard IP fragments
completely. Such behaviors are NOT RECOMMENDED. If a
middlebox implements nonstandard behavior with respect to IP
fragmentation, then that behavior MUST be clearly
documented.For ECMP, LAG, and Load-Balancer Developers And OperatorsIn their default configuration, when the IPv6 Flow Label is not
equal to zero, IPv6 devices that implement Equal-Cost Multipath (ECMP)
Routing as described in OSPF
and other routing protocols, Link
Aggregation Grouping (LAG), or other load-distribution
technologies SHOULD accept only the following fields as input to their
hash algorithm:
IP Source Address.
IP Destination Address.
Flow Label.
Operators SHOULD deploy these devices in their
default configuration.These recommendations are similar to those presented in and . They differ in that
they specify a default configuration.For Network OperatorsOperators MUST ensure proper PMTUD operation in their network,
including making sure the network generates PTB packets when
dropping packets too large compared to outgoing interface
MTU. However, implementations MAY rate limit the generation of
ICMP messages per and .As per RFC 4890, network operators MUST NOT filter ICMPv6 PTB
messages unless they are known to be forged or otherwise illegitimate.
As stated in , filtering ICMPv6 PTB packets causes
PMTUD to fail. Many upper-layer protocols rely on PMTUD.As per RFC 8200, network operators MUST NOT deploy IPv6 links whose
MTU is less than 1280 octets.Network operators SHOULD NOT filter IP fragments if they are known
to have originated at a domain name server or be destined for a domain
name server. This is because domain name services are critical to
operation of the Internet.IANA ConsiderationsThis document has no IANA actions.Security ConsiderationsThis document mitigates some of the security considerations
associated with IP fragmentation by discouraging its use. It does not
introduce any new security vulnerabilities, because it does not
introduce any new alternatives to IP fragmentation. Instead, it
recommends well-understood alternatives.ReferencesNormative ReferencesUser Datagram ProtocolInternet ProtocolInternet Control Message ProtocolTransmission Control ProtocolDomain names - implementation and specificationThis RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.Path MTU discoveryThis memo describes a technique for dynamically discovering the maximum transmission unit (MTU) of an arbitrary internet path. It specifies a small change to the way routers generate one type of ICMP message. For a path that passes through a router that has not been so changed, this technique might not discover the correct Path MTU, but it will always choose a Path MTU as accurate as, and in many cases more accurate than, the Path MTU that would be chosen by current practice. [STANDARDS-TRACK]Key words for use in RFCs to Indicate Requirement LevelsIn many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) SpecificationThis document describes the format of a set of control messages used in ICMPv6 (Internet Control Message Protocol). ICMPv6 is the Internet Control Message Protocol for Internet Protocol version 6 (IPv6). [STANDARDS-TRACK]Packetization Layer Path MTU DiscoveryThis document describes a robust method for Path MTU Discovery (PMTUD) that relies on TCP or some other Packetization Layer to probe an Internet path with progressively larger packets. This method is described as an extension to RFC 1191 and RFC 1981, which specify ICMP-based Path MTU Discovery for IP versions 4 and 6, respectively. [STANDARDS-TRACK]IPv6 Flow Label SpecificationThis document specifies the IPv6 Flow Label field and the minimum requirements for IPv6 nodes labeling flows, IPv6 nodes forwarding labeled packets, and flow state establishment methods. Even when mentioned as examples of possible uses of the flow labeling, more detailed requirements for specific use cases are out of the scope for this document.The usage of the Flow Label field enables efficient IPv6 flow classification based only on IPv6 main header fields in fixed positions. [STANDARDS-TRACK]Using the IPv6 Flow Label for Equal Cost Multipath Routing and Link Aggregation in TunnelsThe IPv6 flow label has certain restrictions on its use. This document describes how those restrictions apply when using the flow label for load balancing by equal cost multipath routing and for link aggregation, particularly for IP-in-IPv6 tunneled traffic. [STANDARDS-TRACK]UDP Usage GuidelinesThe 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 Explicit Congestion Notification (ECN), Differentiated Services Code Points (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 RFC 5405 and adds guidelines for multicast UDP usage.Ambiguity of Uppercase vs Lowercase in RFC 2119 Key WordsRFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.Internet Protocol, Version 6 (IPv6) SpecificationThis document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.Path MTU Discovery for IP version 6This document describes Path MTU Discovery (PMTUD) for IP version 6. It is largely derived from RFC 1191, which describes Path MTU Discovery for IP version 4. It obsoletes RFC 1981.Packetization Layer Path MTU Discovery for Datagram TransportsInformative ReferencesMeasuring ATRIPv6, Large UDP Packets and the DNSFragmentation Considered HarmfulSIGCOMM '87: Proceedings of the ACM workshop on Frontiers in computer communications technologyInsertion, Evasion and Denial of Service: Eluding Network Intrusion DetectionSecure Networks, Inc.Secure Networks, Inc.Requirements for Internet Hosts - Communication LayersThis RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]Requirements for IP Version 4 RoutersThis memo defines and discusses requirements for devices that perform the network layer forwarding function of the Internet protocol suite. [STANDARDS-TRACK]Security Considerations for IP Fragment FilteringIP fragmentation can be used to disguise TCP packets from IP filters used in routers and hosts. This document describes two methods of attack as well as remedies to prevent them. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.Path MTU Discovery for IP version 6This document describes Path MTU Discovery for IP version 6. It is largely derived from RFC 1191, which describes Path MTU Discovery for IP version 4. [STANDARDS-TRACK]IP Encapsulation within IPThis document specifies a method by which an IP datagram may be encapsulated (carried as payload) within an IP datagram. [STANDARDS-TRACK]OSPF Version 2This memo documents version 2 of the OSPF protocol. OSPF is a link- state routing protocol. [STANDARDS-TRACK]Internet Protocol, Version 6 (IPv6) SpecificationThis document specifies version 6 of the Internet Protocol (IPv6), also sometimes referred to as IP Next Generation or IPng. [STANDARDS-TRACK]Generic Packet Tunneling in IPv6 SpecificationThis document defines the model and generic mechanisms for IPv6 encapsulation of Internet packets, such as IPv6 and IPv4. [STANDARDS-TRACK]Generic Routing Encapsulation (GRE)This document specifies a protocol for encapsulation of an arbitrary network layer protocol over another arbitrary network layer protocol. [STANDARDS-TRACK]Protection Against a Variant of the Tiny Fragment Attack (RFC 1858)This document discusses how RFC 1858 compliant filters can be vulnerable to a variant of the "Tiny Fragment Attack" described in section 3.1 of the RFC. This document describes the attack and recommends corrective action. This memo provides information for the Internet community.Datagram Congestion Control Protocol (DCCP)The Datagram Congestion Control Protocol (DCCP) is a transport protocol that provides bidirectional unicast connections of congestion-controlled unreliable datagrams. DCCP is suitable for applications that transfer fairly large amounts of data and that can benefit from control over the tradeoff between timeliness and reliability. [STANDARDS-TRACK]MTU and Fragmentation Issues with In-the-Network TunnelingTunneling techniques such as IP-in-IP when deployed in the middle of the network, typically between routers, have certain issues regarding how large packets can be handled: whether such packets would be fragmented and reassembled (and how), whether Path MTU Discovery would be used, or how this scenario could be operationally avoided. This memo justifies why this is a common, non-trivial problem, and goes on to describe the different solutions and their characteristics at some length. This memo provides information for the Internet community.Recommendations for Filtering ICMPv6 Messages in FirewallsIn networks supporting IPv6, the Internet Control Message Protocol version 6 (ICMPv6) plays a fundamental role with a large number of functions, and a correspondingly large number of message types and options. ICMPv6 is essential to the functioning of IPv6, but there are a number of security risks associated with uncontrolled forwarding of ICMPv6 messages. Filtering strategies designed for the corresponding protocol, ICMP, in IPv4 networks are not directly applicable, because these strategies are intended to accommodate a useful auxiliary protocol that may not be required for correct functioning.This document provides some recommendations for ICMPv6 firewall filter configuration that will allow propagation of ICMPv6 messages that are needed to maintain the functioning of the network but drop messages that are potential security risks. This memo provides information for the Internet community.Stream Control Transmission ProtocolThis document obsoletes RFC 2960 and RFC 3309. It describes the Stream Control Transmission Protocol (SCTP). SCTP is designed to transport Public Switched Telephone Network (PSTN) signaling messages over IP networks, but is capable of broader applications.SCTP is a reliable transport protocol operating on top of a connectionless packet network such as IP. It offers the following services to its users:-- acknowledged error-free non-duplicated transfer of user data,-- data fragmentation to conform to discovered path MTU size,-- sequenced delivery of user messages within multiple streams, with an option for order-of-arrival delivery of individual user messages,-- optional bundling of multiple user messages into a single SCTP packet, and-- network-level fault tolerance through supporting of multi-homing at either or both ends of an association. The design of SCTP includes appropriate congestion avoidance behavior and resistance to flooding and masquerade attacks. [STANDARDS-TRACK]IPv4 Reassembly Errors at High Data RatesIPv4 fragmentation is not sufficiently robust for use under some conditions in today's Internet. At high data rates, the 16-bit IP identification field is not large enough to prevent frequent incorrectly assembled IP fragments, and the TCP and UDP checksums are insufficient to prevent the resulting corrupted datagrams from being delivered to higher protocol layers. This note describes some easily reproduced experiments demonstrating the problem, and discusses some of the operational implications of these observations. This memo provides information for the Internet community.Licklider Transmission Protocol - SpecificationThis document describes the Licklider Transmission Protocol (LTP), designed to provide retransmission-based reliability over links characterized by extremely long message round-trip times (RTTs) and/or frequent interruptions in connectivity. Since communication across interplanetary space is the most prominent example of this sort of environment, LTP is principally aimed at supporting "long-haul" reliable transmission in interplanetary space, but it has applications in other environments as well.This document is a product of the Delay Tolerant Networking Research Group and has been reviewed by that group. No objections to its publication as an RFC were raised. This memo defines an Experimental Protocol for the Internet community.OSPF for IPv6This document describes the modifications to OSPF to support version 6 of the Internet Protocol (IPv6). The fundamental mechanisms of OSPF (flooding, Designated Router (DR) election, area support, Short Path First (SPF) calculations, etc.) remain unchanged. However, some changes have been necessary, either due to changes in protocol semantics between IPv4 and IPv6, or simply to handle the increased address size of IPv6. These modifications will necessitate incrementing the protocol version from version 2 to version 3. OSPF for IPv6 is also referred to as OSPF version 3 (OSPFv3).Changes between OSPF for IPv4, OSPF Version 2, and OSPF for IPv6 as described herein include the following. Addressing semantics have been removed from OSPF packets and the basic Link State Advertisements (LSAs). New LSAs have been created to carry IPv6 addresses and prefixes. OSPF now runs on a per-link basis rather than on a per-IP-subnet basis. Flooding scope for LSAs has been generalized. Authentication has been removed from the OSPF protocol and instead relies on IPv6's Authentication Header and Encapsulating Security Payload (ESP).Even with larger IPv6 addresses, most packets in OSPF for IPv6 are almost as compact as those in OSPF for IPv4. Most fields and packet- size limitations present in OSPF for IPv4 have been relaxed. In addition, option handling has been made more flexible.All of OSPF for IPv4's optional capabilities, including demand circuit support and Not-So-Stubby Areas (NSSAs), are also supported in OSPF for IPv6. [STANDARDS-TRACK]Handling of Overlapping IPv6 FragmentsThe fragmentation and reassembly algorithm specified in the base IPv6 specification allows fragments to overlap. This document demonstrates the security issues associated with allowing overlapping fragments and updates the IPv6 specification to explicitly forbid overlapping fragments. [STANDARDS-TRACK]ICMP Attacks against TCPThis document discusses the use of the Internet Control Message Protocol (ICMP) to perform a variety of attacks against the Transmission Control Protocol (TCP). Additionally, this document describes a number of widely implemented modifications to TCP's handling of ICMP error messages that help to mitigate these issues. This document is not an Internet Standards Track specification; it is published for informational purposes.The Address plus Port (A+P) Approach to the IPv4 Address ShortageWe are facing the exhaustion of the IANA IPv4 free IP address pool. Unfortunately, IPv6 is not yet deployed widely enough to fully replace IPv4, and it is unrealistic to expect that this is going to change before the depletion of IPv4 addresses. Letting hosts seamlessly communicate in an IPv4 world without assigning a unique globally routable IPv4 address to each of them is a challenging problem.This document proposes an IPv4 address sharing scheme, treating some of the port number bits as part of an extended IPv4 address (Address plus Port, or A+P). Instead of assigning a single IPv4 address to a single customer device, we propose to extend the address field by using bits from the port number range in the TCP/UDP header as additional endpoint identifiers, thus leaving a reduced range of ports available to applications. This means assigning the same IPv4 address to multiple clients (e.g., Customer Premises Equipment (CPE), mobile phones), each with its assigned port range. In the face of IPv4 address exhaustion, the need for addresses is stronger than the need to be able to address thousands of applications on a single host. If address translation is needed, the end-user should be in control of the translation process -- not some smart boxes in the core. This document defines an Experimental Protocol for the Internet community.Common Requirements for Carrier-Grade NATs (CGNs)This document defines common requirements for Carrier-Grade NATs (CGNs). It updates RFC 4787.Using the IPv6 Flow Label for Load Balancing in Server FarmsThis document describes how the currently specified IPv6 flow label can be used to enhance layer 3/4 (L3/4) load distribution and balancing for large server farms.Mechanisms for Optimizing Link Aggregation Group (LAG) and Equal-Cost Multipath (ECMP) Component Link Utilization in NetworksDemands on networking infrastructure are growing exponentially due to bandwidth-hungry applications such as rich media applications and inter-data-center communications. In this context, it is important to optimally use the bandwidth in wired networks that extensively use link aggregation groups and equal-cost multipaths as techniques for bandwidth scaling. This document explores some of the mechanisms useful for achieving this.A Widely Deployed Solution to the Generic Routing Encapsulation (GRE) Fragmentation ProblemThis memo describes how many vendors have solved the Generic Routing Encapsulation (GRE) fragmentation problem. The solution described herein is configurable. It is widely deployed on the Internet in its default configuration.IPv6 Support for Generic Routing Encapsulation (GRE)Generic Routing Encapsulation (GRE) can be used to carry any network- layer payload protocol over any network-layer delivery protocol. Currently, GRE procedures are specified for IPv4, used as either the payload or delivery protocol. However, GRE procedures are not specified for IPv6.This document specifies GRE procedures for IPv6, used as either the payload or delivery protocol.Security Implications of Predictable Fragment Identification ValuesIPv6 specifies the Fragment Header, which is employed for the fragmentation and reassembly mechanisms. The Fragment Header contains an "Identification" field that, together with the IPv6 Source Address and the IPv6 Destination Address of a packet, identifies fragments that correspond to the same original datagram, such that they can be reassembled together by the receiving host. The only requirement for setting the Identification field is that the corresponding value must be different than that employed for any other fragmented datagram sent recently with the same Source Address and Destination Address. Some implementations use a simple global counter for setting the Identification field, thus leading to predictable Identification values. This document analyzes the security implications of predictable Identification values, and provides implementation guidance for setting the Identification field of the Fragment Header, such that the aforementioned security implications are mitigated.Observations on the Dropping of Packets with IPv6 Extension Headers in the Real WorldThis document presents real-world data regarding the extent to which packets with IPv6 Extension Headers (EHs) are dropped in the Internet (as originally measured in August 2014 and later in June 2015, with similar results) and where in the network such dropping occurs. The aforementioned results serve as a problem statement that is expected to trigger operational advice on the filtering of IPv6 packets carrying IPv6 EHs so that the situation improves over time. This document also explains how the results were obtained, such that the corresponding measurements can be reproduced by other members of the community and repeated over time to observe changes in the handling of packets with IPv6 EHs.GRE-in-UDP EncapsulationThis document specifies a method of encapsulating network protocol packets within GRE and UDP headers. This GRE-in-UDP encapsulation allows the UDP source port field to be used as an entropy field. This may be used for load-balancing of GRE traffic in transit networks using existing Equal-Cost Multipath (ECMP) mechanisms. There are two applicability scenarios for GRE-in-UDP with different requirements: (1) general Internet and (2) a traffic-managed controlled environment. The controlled environment has less restrictive requirements than the general Internet.IP Tunnels in the Internet ArchitectureThis document discusses the role of IP tunnels in the Internet architecture. An IP tunnel transits IP datagrams as payloads in non- link layer protocols. This document explains the relationship of IP tunnels to existing protocol layers and the challenges in supporting IP tunneling, based on the equivalence of tunnels to links. The implications of this document are used to derive recommendations that update MTU and fragment issues in RFC 4459.Work in ProgressTransport Options for UDPTransport protocols are extended through the use of transport header options. This document extends UDP by indicating the location, syntax, and semantics for UDP transport layer options.Work in ProgressAcknowledgementsThanks to ,
, ,
,
,
,
,
, ,
, ,
, ,
, , and
for their comments.
Authors' AddressesJuniper Networks2251 Corporate Park DriveHerndon20171VirginiaUnited States of Americarbonica@juniper.netUnaffiliatedSanta BarbaraCalifornia93117United States of AmericaFredBaker.IETF@gmail.comAPNIC6 Cordelia StBrisbane4101 QLDAustraliagih@apnic.netCheck Point Software959 Skyway RoadSan CarlosCalifornia94070United States of Americabob.hinden@gmail.comCiscoPhilip Pedersens vei 1N-1366 LysakerNorwayot@cisco.comSI6 NetworksEvaristo Carriego 2644HaedoProvincia de Buenos AiresArgentinafgont@si6networks.com