rfc9268v3.txt | rfc9268.txt | |||
---|---|---|---|---|
skipping to change at line 213 ¶ | skipping to change at line 213 ¶ | |||
mean that the Min-PMTU value does not account for all links along a | mean that the Min-PMTU value does not account for all links along a | |||
path. | path. | |||
2. Motivation and Problem Solved | 2. Motivation and Problem Solved | |||
The current state of Path MTU Discovery on the Internet is | The current state of Path MTU Discovery on the Internet is | |||
problematic. The mechanisms defined in [RFC8201] are known to not | problematic. The mechanisms defined in [RFC8201] are known to not | |||
work well in all environments. It fails to work in various cases, | work well in all environments. It fails to work in various cases, | |||
including when nodes in the middle of the network do not send ICMPv6 | including when nodes in the middle of the network do not send ICMPv6 | |||
PTB messages or rate-limited ICMPv6 messages or do not have a return | PTB messages or rate-limited ICMPv6 messages or do not have a return | |||
path to the source host. | path to the source host. This results in many transport-layer | |||
connections being configured to use smaller packets (e.g., 1280 | ||||
This results in many transport-layer connections being configured to | bytes) by default and makes it difficult to take advantage of paths | |||
use smaller packets (e.g., 1280 bytes) by default and makes it | with a larger PMTU where they do exist. Applications that send large | |||
difficult to take advantage of paths with a larger PMTU where they do | packets are forced to use IPv6 fragmentation [RFC8200], which can | |||
exist. Applications that send large packets are forced to use IPv6 | reduce the reliability of Internet communication [RFC8900]. | |||
fragmentation [RFC8200], which can reduce the reliability of Internet | ||||
communication [RFC8900]. | ||||
Encapsulations and network-layer tunnels further reduce the payload | Encapsulations and network-layer tunnels further reduce the payload | |||
size available for a transport protocol to use. Also, some use cases | size available for a transport protocol to use. Also, some use cases | |||
increase packet overhead, for example, Network Virtualization Using | increase packet overhead, for example, Network Virtualization Using | |||
Generic Routing Encapsulation (NVGRE) [RFC7637] encapsulates Layer 2 | Generic Routing Encapsulation (NVGRE) [RFC7637] encapsulates Layer 2 | |||
(L2) packets in an outer IP header and does not allow IP | (L2) packets in an outer IP header and does not allow IP | |||
fragmentation. | fragmentation. | |||
Sending larger packets can improve host performance, e.g., avoiding | Sending larger packets can improve host performance, e.g., avoiding | |||
limits to packet processing by the packet rate. An example of this | limits to packet processing by the packet rate. An example of this | |||
skipping to change at line 304 ¶ | skipping to change at line 302 ¶ | |||
Option Type (see Section 4.2 of [RFC8200]): | Option Type (see Section 4.2 of [RFC8200]): | |||
BB 00 Skip over this Option and continue processing. | BB 00 Skip over this Option and continue processing. | |||
C 1 Option Data can change en route to the packet's final | C 1 Option Data can change en route to the packet's final | |||
destination. | destination. | |||
TTTTT 10000 Option Type assigned from IANA [IANA-HBH]. | TTTTT 10000 Option Type assigned from IANA [IANA-HBH]. | |||
Length: 4 The size of the value field in Option Data | Length: 4 The size of the value field in Option Data | |||
field supports PMTU values from 0 to 65,534 octets, the | field supports PMTU values from 0 to 65,534 | |||
maximum size represented by the Path MTU Option. | octets, the maximum size represented by the | |||
Path MTU Option. | ||||
Min-PMTU: n 16-bits. The minimum MTU recorded along the path | Min-PMTU: n 16-bits. The minimum MTU recorded along the path | |||
in octets, reflecting the smallest link MTU that | in octets, reflecting the smallest link MTU that | |||
the packet experienced along the path. | the packet experienced along the path. | |||
A value less than the IPv6 minimum link | A value less than the IPv6 minimum link | |||
MTU [RFC8200] MUST be ignored. | MTU [RFC8200] MUST be ignored. | |||
Rtn-PMTU: n 15-bits. The returned Path MTU field, carrying the 15 | Rtn-PMTU: n 15-bits. The returned Path MTU field, carrying the 15 | |||
most significant bits of the latest received Min-PMTU | most significant bits of the latest received Min-PMTU | |||
field for the forward path. The value zero means that | field for the forward path. The value zero means that | |||
skipping to change at line 493 ¶ | skipping to change at line 492 ¶ | |||
* The MinPMTU HBH Option can be used with ICMPv6 [RFC4443]. This | * The MinPMTU HBH Option can be used with ICMPv6 [RFC4443]. This | |||
requires a response from the remote node and therefore is | requires a response from the remote node and therefore is | |||
restricted to use with ICMPv6 echo messages. The MinPMTU HBH | restricted to use with ICMPv6 echo messages. The MinPMTU HBH | |||
Option could provide additional information about the PMTU that | Option could provide additional information about the PMTU that | |||
might be supported by a path. This could be used as a diagnostic | might be supported by a path. This could be used as a diagnostic | |||
tool to measure the PMTU of a path. As with other uses, the | tool to measure the PMTU of a path. As with other uses, the | |||
actual supported PMTU is only confirmed after receiving a response | actual supported PMTU is only confirmed after receiving a response | |||
to a subsequent probe of the PMTU size. | to a subsequent probe of the PMTU size. | |||
* A datagram transport can utilize Datagram Packetization Layer PMTU | * A datagram transport can utilize DPLPMTUD [RFC8899]. For example, | |||
Discovery (DPLPMTUD) [RFC8899]. For example, QUIC (see | QUIC (see Section 14.3 of [RFC9000]) can use DPLPMTUD to determine | |||
Section 14.3 of [RFC9000]) can use DPLPMTUD to determine whether | whether the path to a destination will support a desired maximum | |||
the path to a destination will support a desired maximum datagram | datagram size. When using the IPv6 MinPMTU HBH Option, the Option | |||
size. When using the IPv6 MinPMTU HBH Option, the Option could be | could be added to an additional QUIC PMTU probe that is of minimal | |||
added to an additional QUIC PMTU probe that is of minimal size (or | size (or one no larger than the currently supported PMTU size). | |||
one no larger than the currently supported PMTU size). Once the | Once the return Path MTU value in the MinPMTU HBH Option has been | |||
return Path MTU value in the MinPMTU HBH Option has been learned, | learned, DPLPMTUD can be triggered to test for a larger PLPMTU | |||
DPLPMTUD can be triggered to test for a larger PLPMTU using an | using an appropriately sized PLPMTU probe packet (see | |||
appropriately sized PLPMTU probe packet (see Section 5.3.1 of | Section 5.3.1 of [RFC8899]). | |||
[RFC8899]). | ||||
* The use of this Option with DNS and DNSSEC over UDP is expected to | * The use of this Option with DNS and DNSSEC over UDP is expected to | |||
work for paths where the PMTU is symmetric. The DNS server will | work for paths where the PMTU is symmetric. The DNS server will | |||
learn the PMTU from the DNS query messages. If the Rtn-PMTU value | learn the PMTU from the DNS query messages. If the Rtn-PMTU value | |||
is smaller, then a large DNSSEC response might be dropped and the | is smaller, then a large DNSSEC response might be dropped and the | |||
known problems with PMTUD will then occur. DNS and DNSSEC over | known problems with PMTUD will then occur. DNS and DNSSEC over | |||
transport protocols that can carry the PMTU ought to work. | transport protocols that can carry the PMTU ought to work. | |||
* This method also can be used with anycast to discover the PMTU of | * This method also can be used with anycast to discover the PMTU of | |||
the path, but the use needs to be aware that the anycast binding | the path, but the use needs to be aware that the anycast binding | |||
skipping to change at line 988 ¶ | skipping to change at line 986 ¶ | |||
----Probe size d ----------------------------------------> | ----Probe size d ----------------------------------------> | |||
<---------------------------------- ACK of probe -------- | <---------------------------------- ACK of probe -------- | |||
----Packets of data size d ------------------------------> | ----Packets of data size d ------------------------------> | |||
<---------------------------------- ACK of probe -------- | <---------------------------------- ACK of probe -------- | |||
... | ... | |||
----Probe size e --------------X | ----Probe size e --------------X | |||
X----ICMPv6 PTB d' ----| | X----ICMPv6 PTB d' ----| | |||
----Packets of data size d ------------------------------> | ----Packets of data size d ------------------------------> | |||
----Probe size e --------------X (again) | ----Probe size e --------------X (again) | |||
X----ICMPv6 PTB d' ----| | X----ICMPv6 PTB d' ----| | |||
----Packets of data size d ------------------------------- | ----Packets of data size d ------------------------------> | |||
... | ... | |||
etc. until MaxProbes are unsuccessful and search phase completes. | etc. until MaxProbes are unsuccessful and search phase completes. | |||
----Packets of data size d ------------------------------> | ----Packets of data size d ------------------------------> | |||
Figure 3 | Figure 3 | |||
The second example considers DPLPMTUD with the MinPMTU HBH Option set | The second example considers DPLPMTUD with the MinPMTU HBH Option set | |||
on a connectivity probe packet. | on a connectivity probe packet. | |||
The IPv6 Option is sent end to end, and the Min-PMTU is updated by a | The IPv6 Option is sent end to end, and the Min-PMTU is updated by a | |||
skipping to change at line 1033 ¶ | skipping to change at line 1031 ¶ | |||
connectivity probe packet is dropped. | connectivity probe packet is dropped. | |||
In this case, the packet with the MinPMTU HBH Option is not received. | In this case, the packet with the MinPMTU HBH Option is not received. | |||
DPLPMTUD searches using probe packets of increasing size, increasing | DPLPMTUD searches using probe packets of increasing size, increasing | |||
the PLPMTU when the probes are confirmed. An ICMPv6 PTB message is | the PLPMTU when the probes are confirmed. An ICMPv6 PTB message is | |||
received when the probed size exceeds the actual PMTU, indicating a | received when the probed size exceeds the actual PMTU, indicating a | |||
PTB_SIZE of d'. DPLPMTUD immediately sends a probe packet of the | PTB_SIZE of d'. DPLPMTUD immediately sends a probe packet of the | |||
target size d'. If the probe packet is confirmed for the path, the | target size d'. If the probe packet is confirmed for the path, the | |||
PLPMTU is updated, allowing the source to use data packets up to size | PLPMTU is updated, allowing the source to use data packets up to size | |||
d'. If the ICMPv6 PTB message is not received, the DPLPMTU will be | d'. If the ICMPv6 PTB message is not received, the DPLPMTU will be | |||
the last confirmed probe size d. | the last confirmed probe size, which is d. | |||
----Packets of data size a -------------------------------> | ----Packets of data size a -------------------------------> | |||
----Connectivity probe with MinPMTU --------X | ----Connectivity probe with MinPMTU --------X | |||
----Packets of data size a -------------------------------> | ----Packets of data size a -------------------------------> | |||
----Probe size b -----------------------------------------> | ----Probe size b -----------------------------------------> | |||
<---------------------------------- ACK of probe -------- | <---------------------------------- ACK of probe -------- | |||
----Packets of data size b -------------------------------> | ----Packets of data size b -------------------------------> | |||
----Probe size c -----------------------------------------> | ----Probe size c -----------------------------------------> | |||
<---------------------------------- ACK of probe -------- | <---------------------------------- ACK of probe -------- | |||
----Packets of data size c -------------------------------> | ----Packets of data size c -------------------------------> | |||
End of changes. 5 change blocks. | ||||
23 lines changed or deleted | 21 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |