draft-ietf-tsvwg-datagram-plpmtud-14.txt   draft-ietf-tsvwg-datagram-plpmtud-15.txt 
Internet Engineering Task Force G. Fairhurst Internet Engineering Task Force G. Fairhurst
Internet-Draft T. Jones Internet-Draft T. Jones
Updates: 4821, 4960, 8085 (if approved) University of Aberdeen Updates: 4821, 4960, 6951, 8085, 8261 (if University of Aberdeen
Intended status: Standards Track M. Tuexen approved) M. Tuexen
Expires: 15 August 2020 I. Ruengeler Intended status: Standards Track I. Ruengeler
T. Voelker Expires: 27 August 2020 T. Voelker
Muenster University of Applied Sciences Muenster University of Applied Sciences
12 February 2020 24 February 2020
Packetization Layer Path MTU Discovery for Datagram Transports Packetization Layer Path MTU Discovery for Datagram Transports
draft-ietf-tsvwg-datagram-plpmtud-14 draft-ietf-tsvwg-datagram-plpmtud-15
Abstract Abstract
This document describes a robust method for Path MTU Discovery This document describes a robust method for Path MTU Discovery
(PMTUD) for datagram Packetization Layers (PLs). It describes an (PMTUD) for datagram Packetization Layers (PLs). It describes an
extension to RFC 1191 and RFC 8201, which specifies ICMP-based Path extension to RFC 1191 and RFC 8201, which specifies ICMP-based Path
MTU Discovery for IPv4 and IPv6. The method allows a PL, or a MTU Discovery for IPv4 and IPv6. The method allows a PL, or a
datagram application that uses a PL, to discover whether a network datagram application that uses a PL, to discover whether a network
path can support the current size of datagram. This can be used to path can support the current size of datagram. This can be used to
detect and reduce the message size when a sender encounters a packet detect and reduce the message size when a sender encounters a packet
black hole (where packets are discarded). The method can probe a black hole (where packets are discarded). The method can probe a
network path with progressively larger packets to discover whether network path with progressively larger packets to discover whether
the maximum packet size can be increased. This allows a sender to the maximum packet size can be increased. This allows a sender to
determine an appropriate packet size, providing functionality for determine an appropriate packet size, providing functionality for
datagram transports that is equivalent to the Packetization Layer datagram transports that is equivalent to the Packetization Layer
PMTUD specification for TCP, specified in RFC 4821. PMTUD specification for TCP, specified in RFC 4821.
The document updates RFC 4821 to specify the method for datagram PLs, The document updates RFC 4821 to specify the method for datagram PLs,
and updates RFC 8085 as the method to use in place of RFC 4821 with and updates RFC 8085 as the method to use in place of RFC 4821 with
UDP datagrams. Section 7.3 of RFC4960 recommends an endpoint apply UDP datagrams. Section 7.3 of RFC4960 recommends an endpoint apply
the techniques in RFC4821 on a per-destination-address basis. the techniques in RFC 4821 on a per-destination-address basis. RFC
RFC4960 is updated to recommend that SCTP uses the method specified 4960, RFC 6951 and RFC 8261 are updated to recommend that SCTP, SCTP
in this document instead of the method in RFC4821. encapsulated in UDP and SCTP encapsulated in DTLS use the method
specified in this document instead of the method in RFC 4821.
The document also provides implementation notes for incorporating The document also provides implementation notes for incorporating
Datagram PMTUD into IETF datagram transports or applications that use Datagram PMTUD into IETF datagram transports or applications that use
datagram transports. datagram transports.
When published, this specification updates RFC 4821 and RFC 8085. When published, this specification updates RFC 4960, RFC 4821, RFC
8085 and RFC 8261.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 15 August 2020. This Internet-Draft will expire on 27 August 2020.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 2, line 43 skipping to change at page 2, line 43
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1. Classical Path MTU Discovery . . . . . . . . . . . . . . 4 1.1. Classical Path MTU Discovery . . . . . . . . . . . . . . 4
1.2. Packetization Layer Path MTU Discovery . . . . . . . . . 6 1.2. Packetization Layer Path MTU Discovery . . . . . . . . . 6
1.3. Path MTU Discovery for Datagram Services . . . . . . . . 7 1.3. Path MTU Discovery for Datagram Services . . . . . . . . 7
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 8 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 8
3. Features Required to Provide Datagram PLPMTUD . . . . . . . . 10 3. Features Required to Provide Datagram PLPMTUD . . . . . . . . 10
4. DPLPMTUD Mechanisms . . . . . . . . . . . . . . . . . . . . . 13 4. DPLPMTUD Mechanisms . . . . . . . . . . . . . . . . . . . . . 13
4.1. PLPMTU Probe Packets . . . . . . . . . . . . . . . . . . 13 4.1. PLPMTU Probe Packets . . . . . . . . . . . . . . . . . . 13
4.2. Confirmation of Probed Packet Size . . . . . . . . . . . 14 4.2. Confirmation of Probed Packet Size . . . . . . . . . . . 14
4.3. Black Hole Detection . . . . . . . . . . . . . . . . . . 15 4.3. Black Hole Detection . . . . . . . . . . . . . . . . . . 15
4.4. The Maximum Packet Size (MPS) . . . . . . . . . . . . . . 15 4.4. The Maximum Packet Size (MPS) . . . . . . . . . . . . . . 16
4.5. Disabling the Effect of PMTUD . . . . . . . . . . . . . . 16 4.5. Disabling the Effect of PMTUD . . . . . . . . . . . . . . 17
4.6. Response to PTB Messages . . . . . . . . . . . . . . . . 17 4.6. Response to PTB Messages . . . . . . . . . . . . . . . . 17
4.6.1. Validation of PTB Messages . . . . . . . . . . . . . 17 4.6.1. Validation of PTB Messages . . . . . . . . . . . . . 17
4.6.2. Use of PTB Messages . . . . . . . . . . . . . . . . . 18 4.6.2. Use of PTB Messages . . . . . . . . . . . . . . . . . 18
5. Datagram Packetization Layer PMTUD . . . . . . . . . . . . . 19 5. Datagram Packetization Layer PMTUD . . . . . . . . . . . . . 19
5.1. DPLPMTUD Components . . . . . . . . . . . . . . . . . . . 20 5.1. DPLPMTUD Components . . . . . . . . . . . . . . . . . . . 20
5.1.1. Timers . . . . . . . . . . . . . . . . . . . . . . . 20 5.1.1. Timers . . . . . . . . . . . . . . . . . . . . . . . 20
5.1.2. Constants . . . . . . . . . . . . . . . . . . . . . . 21 5.1.2. Constants . . . . . . . . . . . . . . . . . . . . . . 21
5.1.3. Variables . . . . . . . . . . . . . . . . . . . . . . 22 5.1.3. Variables . . . . . . . . . . . . . . . . . . . . . . 22
5.1.4. Overview of DPLPMTUD Phases . . . . . . . . . . . . . 23 5.1.4. Overview of DPLPMTUD Phases . . . . . . . . . . . . . 23
5.2. State Machine . . . . . . . . . . . . . . . . . . . . . . 24 5.2. State Machine . . . . . . . . . . . . . . . . . . . . . . 24
skipping to change at page 3, line 27 skipping to change at page 3, line 27
6.1.5. Validating the Path . . . . . . . . . . . . . . . . . 30 6.1.5. Validating the Path . . . . . . . . . . . . . . . . . 30
6.1.6. Handling of PTB Messages . . . . . . . . . . . . . . 30 6.1.6. Handling of PTB Messages . . . . . . . . . . . . . . 30
6.2. DPLPMTUD for SCTP . . . . . . . . . . . . . . . . . . . . 31 6.2. DPLPMTUD for SCTP . . . . . . . . . . . . . . . . . . . . 31
6.2.1. SCTP/IPv4 and SCTP/IPv6 . . . . . . . . . . . . . . . 31 6.2.1. SCTP/IPv4 and SCTP/IPv6 . . . . . . . . . . . . . . . 31
6.2.1.1. Initial Connectivity . . . . . . . . . . . . . . 31 6.2.1.1. Initial Connectivity . . . . . . . . . . . . . . 31
6.2.1.2. Sending SCTP Probe Packets . . . . . . . . . . . 31 6.2.1.2. Sending SCTP Probe Packets . . . . . . . . . . . 31
6.2.1.3. Validating the Path with SCTP . . . . . . . . . . 32 6.2.1.3. Validating the Path with SCTP . . . . . . . . . . 32
6.2.1.4. PTB Message Handling by SCTP . . . . . . . . . . 32 6.2.1.4. PTB Message Handling by SCTP . . . . . . . . . . 32
6.2.2. DPLPMTUD for SCTP/UDP . . . . . . . . . . . . . . . . 32 6.2.2. DPLPMTUD for SCTP/UDP . . . . . . . . . . . . . . . . 32
6.2.2.1. Initial Connectivity . . . . . . . . . . . . . . 32 6.2.2.1. Initial Connectivity . . . . . . . . . . . . . . 32
6.2.2.2. Sending SCTP/UDP Probe Packets . . . . . . . . . 32 6.2.2.2. Sending SCTP/UDP Probe Packets . . . . . . . . . 33
6.2.2.3. Validating the Path with SCTP/UDP . . . . . . . . 32 6.2.2.3. Validating the Path with SCTP/UDP . . . . . . . . 33
6.2.2.4. Handling of PTB Messages by SCTP/UDP . . . . . . 33 6.2.2.4. Handling of PTB Messages by SCTP/UDP . . . . . . 33
6.2.3. DPLPMTUD for SCTP/DTLS . . . . . . . . . . . . . . . 33 6.2.3. DPLPMTUD for SCTP/DTLS . . . . . . . . . . . . . . . 33
6.2.3.1. Initial Connectivity . . . . . . . . . . . . . . 33 6.2.3.1. Initial Connectivity . . . . . . . . . . . . . . 33
6.2.3.2. Sending SCTP/DTLS Probe Packets . . . . . . . . . 33 6.2.3.2. Sending SCTP/DTLS Probe Packets . . . . . . . . . 33
6.2.3.3. Validating the Path with SCTP/DTLS . . . . . . . 33 6.2.3.3. Validating the Path with SCTP/DTLS . . . . . . . 33
6.2.3.4. Handling of PTB Messages by SCTP/DTLS . . . . . . 33 6.2.3.4. Handling of PTB Messages by SCTP/DTLS . . . . . . 34
6.3. DPLPMTUD for QUIC . . . . . . . . . . . . . . . . . . . . 33 6.3. DPLPMTUD for QUIC . . . . . . . . . . . . . . . . . . . . 34
6.3.1. Initial Connectivity . . . . . . . . . . . . . . . . 34 6.3.1. Initial Connectivity . . . . . . . . . . . . . . . . 34
6.3.2. Sending QUIC Probe Packets . . . . . . . . . . . . . 34 6.3.2. Sending QUIC Probe Packets . . . . . . . . . . . . . 34
6.3.3. Validating the Path with QUIC . . . . . . . . . . . . 34 6.3.3. Validating the Path with QUIC . . . . . . . . . . . . 35
6.3.4. Handling of PTB Messages by QUIC . . . . . . . . . . 34 6.3.4. Handling of PTB Messages by QUIC . . . . . . . . . . 35
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 35 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 35
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35
9. Security Considerations . . . . . . . . . . . . . . . . . . . 35 9. Security Considerations . . . . . . . . . . . . . . . . . . . 35
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 36 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 36
10.1. Normative References . . . . . . . . . . . . . . . . . . 36 10.1. Normative References . . . . . . . . . . . . . . . . . . 36
10.2. Informative References . . . . . . . . . . . . . . . . . 38 10.2. Informative References . . . . . . . . . . . . . . . . . 38
Appendix A. Revision Notes . . . . . . . . . . . . . . . . . . . 39 Appendix A. Revision Notes . . . . . . . . . . . . . . . . . . . 39
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 43
1. Introduction 1. Introduction
skipping to change at page 8, line 11 skipping to change at page 8, line 11
It also defines the current congestion control MPS (CCMPS) supported It also defines the current congestion control MPS (CCMPS) supported
by a network path. This recommends use of PMTUD, and suggests use of by a network path. This recommends use of PMTUD, and suggests use of
control packets (DCCP-Sync) as path probe packets, because they do control packets (DCCP-Sync) as path probe packets, because they do
not risk application data loss. The method defined in this not risk application data loss. The method defined in this
specification can be used with DCCP. specification can be used with DCCP.
Section 6 specifies the method for datagram transports and provides Section 6 specifies the method for datagram transports and provides
information to enable the implementation of PLPMTUD with other information to enable the implementation of PLPMTUD with other
datagram transports and applications that use datagram transports. datagram transports and applications that use datagram transports.
Section 6 also provides updated recommendations for [RFC6951] and
[RFC8261].
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119] [RFC8174] when, and only when, they appear in all 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
Other terminology is directly copied from [RFC4821], and the Other terminology is directly copied from [RFC4821], and the
definitions in [RFC1122]. definitions in [RFC1122].
skipping to change at page 32, line 35 skipping to change at page 32, line 35
When a PTB message has been validated, the PTB_SIZE reported in the When a PTB message has been validated, the PTB_SIZE reported in the
PTB message SHOULD be used with the DPLPMTUD algorithm, providing PTB message SHOULD be used with the DPLPMTUD algorithm, providing
that the reported PTB_SIZE is less than the current probe size (see that the reported PTB_SIZE is less than the current probe size (see
Section 4.6). Section 4.6).
6.2.2. DPLPMTUD for SCTP/UDP 6.2.2. DPLPMTUD for SCTP/UDP
The UDP encapsulation of SCTP is specified in [RFC6951]. The UDP encapsulation of SCTP is specified in [RFC6951].
This specification updates the reference to RFC 4821 in section 5.6
of RFC 6951 to refer to XXXTHISRFCXXX. RFC 6951 is updated by
addition of the following sentence is to be added at the end of
section 5.6: "The RECOMMENDED method for determining the MTU of the
path is specified in XXXTHISRFCXXX".
XXX RFC EDITOR - please replace XXXTHISRFCXXX when published XXX
6.2.2.1. Initial Connectivity 6.2.2.1. Initial Connectivity
A sender can enter the BASE state as soon as SCTP connectivity has A sender can enter the BASE state as soon as SCTP connectivity has
been confirmed. been confirmed.
6.2.2.2. Sending SCTP/UDP Probe Packets 6.2.2.2. Sending SCTP/UDP Probe Packets
Packet probing can be performed as specified in Section 6.2.1.2. The Packet probing can be performed as specified in Section 6.2.1.2. The
maximum payload is reduced by 8 bytes, which has to be considered maximum payload is reduced by 8 bytes, which has to be considered
when filling the PAD chunk. when filling the PAD chunk.
skipping to change at page 33, line 19 skipping to change at page 33, line 30
SCTP common header are contained in the PTB message, which can be the SCTP common header are contained in the PTB message, which can be the
case for ICMPv4 (but note the UDP header also consumes a part of the case for ICMPv4 (but note the UDP header also consumes a part of the
quoted packet header) and is normally the case for ICMPv6. When the quoted packet header) and is normally the case for ICMPv6. When the
validation is completed, the PTB_SIZE indicated in the PTB message validation is completed, the PTB_SIZE indicated in the PTB message
SHOULD be used with the DPLPMTUD providing that the reported PTB_SIZE SHOULD be used with the DPLPMTUD providing that the reported PTB_SIZE
is less than the current probe size. is less than the current probe size.
6.2.3. DPLPMTUD for SCTP/DTLS 6.2.3. DPLPMTUD for SCTP/DTLS
The Datagram Transport Layer Security (DTLS) encapsulation of SCTP is The Datagram Transport Layer Security (DTLS) encapsulation of SCTP is
specified in [RFC8261]. This is used for data channels in WebRTC specified in [RFC8261] . This is used for data channels in WebRTC
implementations. implementations. This specification updates the reference to RFC
4821 in section 5 of RFC 8261 to refer to XXXTHISRFCXXX.
XXX RFC EDITOR - please replace XXXTHISRFCXXX when published XXX
6.2.3.1. Initial Connectivity 6.2.3.1. Initial Connectivity
A sender can enter the BASE state as soon as SCTP connectivity has A sender can enter the BASE state as soon as SCTP connectivity has
been confirmed. been confirmed.
6.2.3.2. Sending SCTP/DTLS Probe Packets 6.2.3.2. Sending SCTP/DTLS Probe Packets
Packet probing can be done, as specified in Section 6.2.1.2. Packet probing can be done, as specified in Section 6.2.1.2.
skipping to change at page 36, line 35 skipping to change at page 36, line 51
being delivered (black holed) when the PLPMTU is larger than the being delivered (black holed) when the PLPMTU is larger than the
smallest actual PMTU. smallest actual PMTU.
10. References 10. References
10.1. Normative References 10.1. Normative References
[I-D.ietf-quic-transport] [I-D.ietf-quic-transport]
Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed Iyengar, J. and M. Thomson, "QUIC: A UDP-Based Multiplexed
and Secure Transport", Work in Progress, Internet-Draft, and Secure Transport", Work in Progress, Internet-Draft,
draft-ietf-quic-transport-20, 23 April 2019, draft-ietf-quic-transport-27, 21 February 2020,
<http://www.ietf.org/internet-drafts/draft-ietf-quic- <http://www.ietf.org/internet-drafts/draft-ietf-quic-
transport-20.txt>. transport-27.txt>.
[RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768,
DOI 10.17487/RFC0768, August 1980, DOI 10.17487/RFC0768, August 1980,
<https://www.rfc-editor.org/info/rfc768>. <https://www.rfc-editor.org/info/rfc768>.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791,
DOI 10.17487/RFC0791, September 1981, DOI 10.17487/RFC0791, September 1981,
<https://www.rfc-editor.org/info/rfc791>. <https://www.rfc-editor.org/info/rfc791>.
[RFC1191] Mogul, J.C. and S.E. Deering, "Path MTU discovery", [RFC1191] Mogul, J.C. and S.E. Deering, "Path MTU discovery",
 End of changes. 15 change blocks. 
23 lines changed or deleted 39 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/