rfc9308v1.txt | rfc9308.txt | |||
---|---|---|---|---|
Internet Engineering Task Force (IETF) M. Kühlewind | Internet Engineering Task Force (IETF) M. Kühlewind | |||
Request for Comments: 9308 Ericsson | Request for Comments: 9308 Ericsson | |||
Category: Informational B. Trammell | Category: Informational B. Trammell | |||
ISSN: 2070-1721 Google | ISSN: 2070-1721 Google Switzerland GmbH | |||
August 2022 | September 2022 | |||
Applicability of the QUIC Transport Protocol | Applicability of the QUIC Transport Protocol | |||
Abstract | Abstract | |||
This document discusses the applicability of the QUIC transport | This document discusses the applicability of the QUIC transport | |||
protocol, focusing on caveats impacting application protocol | protocol, focusing on caveats impacting application protocol | |||
development and deployment over QUIC. Its intended audience is | development and deployment over QUIC. Its intended audience is | |||
designers of application protocol mappings to QUIC and implementors | designers of application protocol mappings to QUIC and implementors | |||
of these application protocols. | of these application protocols. | |||
skipping to change at line 82 ¶ | skipping to change at line 82 ¶ | |||
11.3. Using Server Retry for Redirection | 11.3. Using Server Retry for Redirection | |||
12. Quality of Service (QoS) and Diffserv Code Point (DSCP) | 12. Quality of Service (QoS) and Diffserv Code Point (DSCP) | |||
13. Use of Versions and Cryptographic Handshake | 13. Use of Versions and Cryptographic Handshake | |||
14. Enabling Deployment of New Versions | 14. Enabling Deployment of New Versions | |||
15. Unreliable Datagram Service over QUIC | 15. Unreliable Datagram Service over QUIC | |||
16. IANA Considerations | 16. IANA Considerations | |||
17. Security Considerations | 17. Security Considerations | |||
18. References | 18. References | |||
18.1. Normative References | 18.1. Normative References | |||
18.2. Informative References | 18.2. Informative References | |||
Contributors | ||||
Acknowledgments | Acknowledgments | |||
Contributors | ||||
Authors' Addresses | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
QUIC [QUIC] is a new transport protocol providing a number of | QUIC [QUIC] is a new transport protocol providing a number of | |||
advanced features. While initially designed for the HTTP use case, | advanced features. While initially designed for the HTTP use case, | |||
it provides capabilities that can be used with a much wider variety | it provides capabilities that can be used with a much wider variety | |||
of applications. QUIC is encapsulated in UDP. QUIC version 1 | of applications. QUIC is encapsulated in UDP. QUIC version 1 | |||
integrates TLS 1.3 [TLS13] to encrypt all payload data and most | integrates TLS 1.3 [TLS13] to encrypt all payload data and most | |||
control information. The version of HTTP that uses QUIC is known as | control information. The version of HTTP that uses QUIC is known as | |||
skipping to change at line 193 ¶ | skipping to change at line 193 ¶ | |||
data. | data. | |||
Application data sent by the client in 0-RTT packets could be | Application data sent by the client in 0-RTT packets could be | |||
processed more than once if it is replayed. Applications need to be | processed more than once if it is replayed. Applications need to be | |||
aware of what is safe to send in 0-RTT. Application protocols that | aware of what is safe to send in 0-RTT. Application protocols that | |||
seek to enable the use of 0-RTT need a careful analysis and a | seek to enable the use of 0-RTT need a careful analysis and a | |||
description of what can be sent in 0-RTT; see Section 5.6 of | description of what can be sent in 0-RTT; see Section 5.6 of | |||
[QUIC-TLS]. | [QUIC-TLS]. | |||
In some cases, it might be sufficient to limit application data sent | In some cases, it might be sufficient to limit application data sent | |||
in 0-RTT to that which only causes actions at a server that are known | in 0-RTT to data that does not cause actions with lasting effects at | |||
to be free of lasting effect. Initiating data retrieval or | a server. Initiating data retrieval or establishing configuration | |||
establishing configuration are examples of actions that could be | are examples of actions that could be safe. Idempotent operations -- | |||
safe. Idempotent operations -- those for which repetition has the | those for which repetition has the same net effect as a single | |||
same net effect as a single operation -- might be safe. However, it | operation -- might be safe. However, it is also possible to combine | |||
is also possible to combine individually idempotent operations into a | individually idempotent operations into a non-idempotent sequence of | |||
non-idempotent sequence of operations. | operations. | |||
Once a server accepts 0-RTT data, there is no means of selectively | Once a server accepts 0-RTT data, there is no means of selectively | |||
discarding data that is received. However, protocols can define ways | discarding data that is received. However, protocols can define ways | |||
to reject individual actions that might be unsafe if replayed. | to reject individual actions that might be unsafe if replayed. | |||
Some TLS implementations and deployments might be able to provide | Some TLS implementations and deployments might be able to provide | |||
partial or even complete replay protection, which could be used to | partial or even complete replay protection, which could be used to | |||
manage replay risk. | manage replay risk. | |||
3.2. Session Resumption versus Keep-Alive | 3.2. Session Resumption versus Keep-Alive | |||
skipping to change at line 226 ¶ | skipping to change at line 226 ¶ | |||
no evidence of widespread implementation of this guideline in the | no evidence of widespread implementation of this guideline in the | |||
literature. However, short network timeout for UDP is well- | literature. However, short network timeout for UDP is well- | |||
documented. According to a 2010 study ([Hatonen10]), UDP | documented. According to a 2010 study ([Hatonen10]), UDP | |||
applications can assume that any NAT binding or other state entry can | applications can assume that any NAT binding or other state entry can | |||
expire after just thirty seconds of inactivity. Section 3.5 of | expire after just thirty seconds of inactivity. Section 3.5 of | |||
[RFC8085] further discusses keep-alive intervals for UDP: it requires | [RFC8085] further discusses keep-alive intervals for UDP: it requires | |||
that there is a minimum value of 15 seconds, but recommends larger | that there is a minimum value of 15 seconds, but recommends larger | |||
values, or that keep-alive is omitted entirely. | values, or that keep-alive is omitted entirely. | |||
By using a connection ID, QUIC is designed to be robust to NAT | By using a connection ID, QUIC is designed to be robust to NAT | |||
address rebinding after a timeout. However, this only helps if one | rebinding after a timeout. However, this only helps if one endpoint | |||
endpoint maintains availability at the address its peer uses and the | maintains availability at the address its peer uses and the peer is | |||
peer is the one to send after the timeout occurs. | the one to send after the timeout occurs. | |||
Some QUIC connections might not be robust to NAT rebinding because | Some QUIC connections might not be robust to NAT rebinding because | |||
the routing infrastructure (in particular, load balancers) uses the | the routing infrastructure (in particular, load balancers) uses the | |||
address/port 4-tuple to direct traffic. Furthermore, middleboxes | address/port 4-tuple to direct traffic. Furthermore, middleboxes | |||
with functions other than address translation could still affect the | with functions other than address translation could still affect the | |||
path. In particular, some firewalls do not admit server traffic for | path. In particular, some firewalls do not admit server traffic for | |||
which the firewall has no recent state for a corresponding packet | which the firewall has no recent state for a corresponding packet | |||
sent from the client. | sent from the client. | |||
QUIC applications can adjust idle periods to manage the risk of | QUIC applications can adjust idle periods to manage the risk of | |||
timeout. Idle periods and the network idle timeout are distinct from | timeout. Idle periods and the network idle timeout are distinct from | |||
the connection idle timeout, which is defined as the minimum of | the connection idle timeout, which is defined as the minimum of | |||
either endpoint's idle timeout parameter; see Section 10.1 of | either endpoint's idle timeout parameter; see Section 10.1 of [QUIC]. | |||
[QUIC]). There are three options: | There are three options: | |||
* Ignore the issue if the application-layer protocol consists only | * Ignore the issue if the application-layer protocol consists only | |||
of interactions with no or very short idle periods or if the | of interactions with no or very short idle periods or if the | |||
protocol's resistance to NAT rebinding is sufficient. | protocol's resistance to NAT rebinding is sufficient. | |||
* Ensure there are no long idle periods. | * Ensure there are no long idle periods. | |||
* Resume the session after a long idle period, using 0-RTT | * Resume the session after a long idle period, using 0-RTT | |||
resumption when appropriate. | resumption when appropriate. | |||
skipping to change at line 444 ¶ | skipping to change at line 444 ¶ | |||
endpoints or in transit on the network. However, there are several | endpoints or in transit on the network. However, there are several | |||
ways in which limits can produce conditions that can cause a | ways in which limits can produce conditions that can cause a | |||
connection to either perform suboptimally or become deadlocked. | connection to either perform suboptimally or become deadlocked. | |||
Deadlocks in flow control are possible for any protocol that uses | Deadlocks in flow control are possible for any protocol that uses | |||
QUIC, though whether they become a problem depends on how | QUIC, though whether they become a problem depends on how | |||
implementations consume data and provide flow control credit. | implementations consume data and provide flow control credit. | |||
Understanding what causes deadlocking might help implementations | Understanding what causes deadlocking might help implementations | |||
avoid deadlocks. | avoid deadlocks. | |||
The size and rate of transport flow control credit updates can affect | The size and rate of updates to flow control credit can affect | |||
performance. Applications that use QUIC often have a data consumer | performance. Applications that use QUIC often have a data consumer | |||
that reads data from transport buffers. Some implementations might | that reads data from transport buffers. Some implementations might | |||
have independent transport-layer and application-layer receive | have independent receive buffers at the transport layer and | |||
buffers. Consuming data does not always imply it is immediately | application layer. Consuming data does not always imply it is | |||
processed. However, a common flow control implementation technique | immediately processed. However, a common implementation technique is | |||
is to extend credit to the sender by emitting MAX_DATA and/or | to extend flow control credit to the sender by emitting MAX_DATA and/ | |||
MAX_STREAM_DATA frames as data is consumed. Delivery of these frames | or MAX_STREAM_DATA frames as data is consumed. Delivery of these | |||
is affected by the latency of the back channel from the receiver to | frames is affected by the latency of the back channel from the | |||
the data sender. If credit is not extended in a timely manner, the | receiver to the data sender. If credit is not extended in a timely | |||
sending application can be blocked, effectively throttling the | manner, the sending application can be blocked, effectively | |||
sender. | throttling the sender. | |||
Large application messages can produce deadlocking if the recipient | Large application messages can produce deadlocking if the recipient | |||
does not read data from the transport incrementally. If the message | does not read data from the transport incrementally. If the message | |||
is larger than the flow control credit available and the recipient | is larger than the flow control credit available and the recipient | |||
does not release additional flow control credit until the entire | does not release additional flow control credit until the entire | |||
message is received and delivered, a deadlock can occur. This is | message is received and delivered, a deadlock can occur. This is | |||
possible even where stream flow control limits are not reached | possible even where stream flow control limits are not reached | |||
because connection flow control limits can be consumed by other | because connection flow control limits can be consumed by other | |||
streams. | streams. | |||
skipping to change at line 510 ¶ | skipping to change at line 510 ¶ | |||
initial_max_streams_uni transport parameters. As streams are opened | initial_max_streams_uni transport parameters. As streams are opened | |||
and closed, they are consumed, and the cumulative total is | and closed, they are consumed, and the cumulative total is | |||
incremented. Limits can be increased using the MAX_STREAMS frame, | incremented. Limits can be increased using the MAX_STREAMS frame, | |||
but there is no mechanism to reduce limits. Once stream limits are | but there is no mechanism to reduce limits. Once stream limits are | |||
reached, no more streams can be opened, which prevents applications | reached, no more streams can be opened, which prevents applications | |||
using QUIC from making further progress. At this stage, connections | using QUIC from making further progress. At this stage, connections | |||
can be terminated via idle timeout or explicit close; see Section 10. | can be terminated via idle timeout or explicit close; see Section 10. | |||
An application that uses QUIC and communicates a cumulative stream | An application that uses QUIC and communicates a cumulative stream | |||
limit might require the connection to be closed before the limit is | limit might require the connection to be closed before the limit is | |||
reached, e.g., to stop the server to perform scheduled maintenance. | reached, e.g., to stop the server in order to perform scheduled | |||
Immediate connection close causes abrupt closure of actively used | maintenance. Immediate connection close causes abrupt closure of | |||
streams. Depending on how an application uses QUIC streams, this | actively used streams. Depending on how an application uses QUIC | |||
could be undesirable or detrimental to behavior or performance. | streams, this could be undesirable or detrimental to behavior or | |||
performance. | ||||
A more graceful closure technique is to stop sending increases to | A more graceful closure technique is to stop sending increases to | |||
stream limits and allow the connection to naturally terminate once | stream limits and allow the connection to naturally terminate once | |||
remaining streams are consumed. However, the period of time it takes | remaining streams are consumed. However, the period of time it takes | |||
to do so is dependent on the peer, and an unpredictable closing | to do so is dependent on the peer, and an unpredictable closing | |||
period might not fit application or operational needs. Applications | period might not fit application or operational needs. Applications | |||
using QUIC can be conservative with open stream limits in order to | using QUIC can be conservative with open stream limits in order to | |||
reduce the commitment and indeterminism. However, being overly | reduce the commitment and indeterminism. However, being overly | |||
conservative with stream limits affects stream concurrency. | conservative with stream limits affects stream concurrency. | |||
Balancing these aspects can be specific to applications and their | Balancing these aspects can be specific to applications and their | |||
skipping to change at line 544 ¶ | skipping to change at line 545 ¶ | |||
connection, it can be terminated safely by a connection close or | connection, it can be terminated safely by a connection close or | |||
after expiration of the idle timeout (see Section 10). | after expiration of the idle timeout (see Section 10). | |||
5. Packetization and Latency | 5. Packetization and Latency | |||
QUIC exposes an interface that provides multiple streams to the | QUIC exposes an interface that provides multiple streams to the | |||
application; however, the application usually cannot control how data | application; however, the application usually cannot control how data | |||
transmitted over those streams is mapped into frames or how those | transmitted over those streams is mapped into frames or how those | |||
frames are bundled into packets. | frames are bundled into packets. | |||
By default, many implementations will try to maximally pack QUIC | By default, many implementations will try to pack STREAM frames from | |||
packets DATA frames from one or more streams to minimize bandwidth | one or more streams into each QUIC packet, in order to minimize | |||
consumption and computational costs (see Section 13 of [QUIC]). If | bandwidth consumption and computational costs (see Section 13 of | |||
there is not enough data available to fill a packet, an | [QUIC]). If there is not enough data available to fill a packet, an | |||
implementation might wait for a short time to optimize bandwidth | implementation might wait for a short time to optimize bandwidth | |||
efficiency instead of latency. This delay can either be | efficiency instead of latency. This delay can either be | |||
preconfigured or dynamically adjusted based on the observed sending | preconfigured or dynamically adjusted based on the observed sending | |||
pattern of the application. | pattern of the application. | |||
If the application requires low latency, with only small chunks of | If the application requires low latency, with only small chunks of | |||
data to send, it may be valuable to indicate to QUIC that all data | data to send, it may be valuable to indicate to QUIC that all data | |||
should be sent out immediately. Alternatively, if the application | should be sent out immediately. Alternatively, if the application | |||
expects to use a specific sending pattern, it can also provide a | expects to use a specific sending pattern, it can also provide a | |||
suggested delay to QUIC for how long to wait before bundling frames | suggested delay to QUIC for how long to wait before bundling frames | |||
skipping to change at line 630 ¶ | skipping to change at line 631 ¶ | |||
In general, port numbers serve two purposes: "first, they provide a | In general, port numbers serve two purposes: "first, they provide a | |||
demultiplexing identifier to differentiate transport sessions between | demultiplexing identifier to differentiate transport sessions between | |||
the same pair of endpoints, and second, they may also identify the | the same pair of endpoints, and second, they may also identify the | |||
application protocol and associated service to which processes | application protocol and associated service to which processes | |||
connect" (Section 3 of [RFC6335]). The assumption that an | connect" (Section 3 of [RFC6335]). The assumption that an | |||
application can be identified in the network based on the port number | application can be identified in the network based on the port number | |||
is less true today due to encapsulation and mechanisms for dynamic | is less true today due to encapsulation and mechanisms for dynamic | |||
port assignments, as noted in [RFC6335]. | port assignments, as noted in [RFC6335]. | |||
As QUIC is a general-purpose transport protocol, there are no | As QUIC is a general-purpose transport protocol, there are no | |||
requirements that servers use a particular UDP port for QUIC. For | requirements that servers use a particular UDP port for QUIC. For an | |||
applications with a fallback to TCP that do not already have an | application with a fallback to TCP that does not already have an | |||
alternate mapping to UDP, usually the registration (if necessary) and | alternate mapping to UDP, it is usually appropriate to register (if | |||
use of the UDP port number corresponding to the TCP port already | necessary) and use the UDP port number corresponding to the TCP port | |||
registered for the application is appropriate. For example, the | already registered for the application. For example, the default | |||
default port for HTTP/3 [QUIC-HTTP] is UDP port 443, analogous to | port for HTTP/3 [QUIC-HTTP] is UDP port 443, analogous to HTTP/1.1 or | |||
HTTP/1.1 or HTTP/2 over TLS over TCP. | HTTP/2 over TLS over TCP. | |||
Given the prevalence of the assumption in network management practice | Given the prevalence of the assumption in network management practice | |||
that a port number maps unambiguously to an application, the use of | that a port number maps unambiguously to an application, the use of | |||
ports that cannot easily be mapped to a registered service name might | ports that cannot easily be mapped to a registered service name might | |||
lead to blocking or other changes to the forwarding behavior by | lead to blocking or other changes to the forwarding behavior by | |||
network elements such as firewalls that use the port number for | network elements such as firewalls that use the port number for | |||
application identification. | application identification. | |||
Applications could define an alternate endpoint discovery mechanism | Applications could define an alternate endpoint discovery mechanism | |||
to allow the usage of ports other than the default. For example, | to allow the usage of ports other than the default. For example, | |||
skipping to change at line 684 ¶ | skipping to change at line 685 ¶ | |||
to server misconfiguration: | to server misconfiguration: | |||
* port 53 - DNS [RFC1034] | * port 53 - DNS [RFC1034] | |||
* port 123 - NTP [RFC5905] | * port 123 - NTP [RFC5905] | |||
* port 1900 - SSDP [SSDP] | * port 1900 - SSDP [SSDP] | |||
* port 5353 - mDNS [RFC6762] | * port 5353 - mDNS [RFC6762] | |||
* port 11211 - memcached | * port 11211 - memcache | |||
Services might block source ports associated with protocols known to | Services might block source ports associated with protocols known to | |||
be vulnerable to reflection attacks to avoid the overhead of | be vulnerable to reflection attacks to avoid the overhead of | |||
processing large numbers of packets. However, this practice has | processing large numbers of packets. However, this practice has | |||
negative effects on clients -- not only does it require establishment | negative effects on clients -- not only does it require establishment | |||
of a new connection but in some instances might cause the client to | of a new connection but in some instances might cause the client to | |||
avoid using QUIC for that service for a period of time and downgrade | avoid using QUIC for that service for a period of time and downgrade | |||
to a non-UDP protocol (see Section 2). | to a non-UDP protocol (see Section 2). | |||
As a result, client implementations are encouraged to avoid using | As a result, client implementations are encouraged to avoid using | |||
skipping to change at line 841 ¶ | skipping to change at line 842 ¶ | |||
the connection ID. | the connection ID. | |||
While sufficiently robust connection ID generation schemes will | While sufficiently robust connection ID generation schemes will | |||
mitigate linkability issues, they do not provide full protection. | mitigate linkability issues, they do not provide full protection. | |||
Analysis of the lifetimes of 6-tuples (source and destination | Analysis of the lifetimes of 6-tuples (source and destination | |||
addresses as well as the migrated Connection ID) may expose these | addresses as well as the migrated Connection ID) may expose these | |||
links anyway. | links anyway. | |||
In the case where connection migration in a server pool is rare, it | In the case where connection migration in a server pool is rare, it | |||
is trivial for an observer to associate two connection IDs. | is trivial for an observer to associate two connection IDs. | |||
Conversely, in the opposite limit where every server handles multiple | Conversely, where every server handles multiple simultaneous | |||
simultaneous migrations, even an exposed server mapping may be | migrations, even an exposed server mapping may be insufficient | |||
insufficient information. | information. | |||
The most efficient mitigations for these attacks are through network | The most efficient mitigations for these attacks are through network | |||
design and/or operational practices, by using a load-balancing | design and/or operational practices, by using a load-balancing | |||
architecture that loads more flows onto a single server-side address, | architecture that loads more flows onto a single server-side address, | |||
by coordinating the timing of migrations in an attempt to increase | by coordinating the timing of migrations in an attempt to increase | |||
the number of simultaneous migrations at a given time, or by using | the number of simultaneous migrations at a given time, or by using | |||
other means. | other means. | |||
11.3. Using Server Retry for Redirection | 11.3. Using Server Retry for Redirection | |||
skipping to change at line 871 ¶ | skipping to change at line 872 ¶ | |||
QUIC. | QUIC. | |||
In this case, it is assumed that all servers belonging to a certain | In this case, it is assumed that all servers belonging to a certain | |||
pool are served in cooperation with load balancers that forward the | pool are served in cooperation with load balancers that forward the | |||
traffic based on the connection ID. A server can choose the | traffic based on the connection ID. A server can choose the | |||
connection ID in the Retry packet such that the load balancer will | connection ID in the Retry packet such that the load balancer will | |||
redirect the next Initial packet to a different server in that pool. | redirect the next Initial packet to a different server in that pool. | |||
Alternatively, the load balancer can directly offer a Retry offload | Alternatively, the load balancer can directly offer a Retry offload | |||
as further described in [QUIC-RETRY]. | as further described in [QUIC-RETRY]. | |||
Section 4 of [RFC5077] describes an example approach for constructing | The approach described in Section 4 of [RFC5077] for constructing TLS | |||
TLS resumption tickets that can be also applied for validation | resumption tickets provides an example that can be also applied to | |||
tokens; however, the use of more modern cryptographic algorithms is | validation tokens. However, the use of more modern cryptographic | |||
highly recommended. | algorithms is highly recommended. | |||
12. Quality of Service (QoS) and Diffserv Code Point (DSCP) | 12. Quality of Service (QoS) and Diffserv Code Point (DSCP) | |||
QUIC, as defined in [QUIC], has a single congestion controller and | QUIC, as defined in [QUIC], has a single congestion controller and | |||
recovery handler. This design assumes that all packets of a QUIC | recovery handler. This design assumes that all packets of a QUIC | |||
connection, or at least with the same 5-tuple {dest addr, source | connection, or at least with the same 5-tuple {dest addr, source | |||
addr, protocol, dest port, source port}, that have the same Diffserv | addr, protocol, dest port, source port}, that have the same Diffserv | |||
Code Point (DSCP) [RFC2475] will receive similar network treatment | Code Point (DSCP) [RFC2475] will receive similar network treatment | |||
since feedback about loss or delay of each packet is used as input to | since feedback about loss or delay of each packet is used as input to | |||
the congestion controller. Therefore, packets belonging to the same | the congestion controller. Therefore, packets belonging to the same | |||
skipping to change at line 964 ¶ | skipping to change at line 965 ¶ | |||
transmission service of QUIC provides a stream-based interface to | transmission service of QUIC provides a stream-based interface to | |||
send and receive data in order over multiple QUIC streams, the | send and receive data in order over multiple QUIC streams, the | |||
datagram service has an unordered message-based interface. If | datagram service has an unordered message-based interface. If | |||
needed, an application-layer framing can be used on top to allow | needed, an application-layer framing can be used on top to allow | |||
separate flows of unreliable datagrams to be multiplexed on one QUIC | separate flows of unreliable datagrams to be multiplexed on one QUIC | |||
connection. | connection. | |||
16. IANA Considerations | 16. IANA Considerations | |||
This document has no actions for IANA; however, note that Section 8 | This document has no actions for IANA; however, note that Section 8 | |||
recommends that application bindings to QUIC for applications using | recommends that an application that has already registered a TCP port | |||
TCP register UDP ports analogous to their existing TCP registrations. | but wants to specify QUIC as a transport should register a UDP port | |||
analogous to their existing TCP registration. | ||||
17. Security Considerations | 17. Security Considerations | |||
See the security considerations in [QUIC] and [QUIC-TLS]; the | See the security considerations in [QUIC] and [QUIC-TLS]; the | |||
security considerations for the underlying transport protocol are | security considerations for the underlying transport protocol are | |||
relevant for applications using QUIC. Considerations on linkability, | relevant for applications using QUIC. Considerations on linkability, | |||
replay attacks, and randomness discussed in [QUIC-TLS] should be | replay attacks, and randomness discussed in [QUIC-TLS] should be | |||
taken into account when deploying and using QUIC. | taken into account when deploying and using QUIC. | |||
Further, migration to a new address exposes a linkage between client | Further, migration to a new address exposes a linkage between client | |||
skipping to change at line 1013 ¶ | skipping to change at line 1015 ¶ | |||
RFC 8999, DOI 10.17487/RFC8999, May 2021, | RFC 8999, DOI 10.17487/RFC8999, May 2021, | |||
<https://www.rfc-editor.org/info/rfc8999>. | <https://www.rfc-editor.org/info/rfc8999>. | |||
[QUIC-TLS] Thomson, M., Ed. and S. Turner, Ed., "Using TLS to Secure | [QUIC-TLS] Thomson, M., Ed. and S. Turner, Ed., "Using TLS to Secure | |||
QUIC", RFC 9001, DOI 10.17487/RFC9001, May 2021, | QUIC", RFC 9001, DOI 10.17487/RFC9001, May 2021, | |||
<https://www.rfc-editor.org/info/rfc9001>. | <https://www.rfc-editor.org/info/rfc9001>. | |||
18.2. Informative References | 18.2. Informative References | |||
[Edeline16] | [Edeline16] | |||
Edeline, K., Kuehlewind, M., Trammell, B., Aben, E., and | Edeline, K., Kühlewind, M., Trammell, B., Aben, E., and B. | |||
B. Donnet, "Using UDP for Internet Transport Evolution", | Donnet, "Using UDP for Internet Transport Evolution", | |||
DOI 10.48550/arXiv.1612.07816, 22 December 2016, | DOI 10.48550/arXiv.1612.07816, 22 December 2016, | |||
<https://arxiv.org/abs/1612.07816>. | <https://arxiv.org/abs/1612.07816>. | |||
[Hatonen10] | [Hatonen10] | |||
Hätönen, S., Nyrhinen, A., Eggert, L., Strowes, S., | Hätönen, S., Nyrhinen, A., Eggert, L., Strowes, S., | |||
Sarolahti, P., and M. Kojo, "An Experimental Study of Home | Sarolahti, P., and M. Kojo, "An Experimental Study of Home | |||
Gateway Characteristics", Proc. ACM IMC 2010, November | Gateway Characteristics", Proc. ACM IMC 2010, November | |||
2010, <https://conferences.sigcomm.org/imc/2010/papers/ | 2010, <https://conferences.sigcomm.org/imc/2010/papers/ | |||
p260.pdf>. | p260.pdf>. | |||
skipping to change at line 1054 ¶ | skipping to change at line 1056 ¶ | |||
Bishop, M., Ed., "HTTP/3", RFC 9114, DOI 10.17487/RFC9114, | Bishop, M., Ed., "HTTP/3", RFC 9114, DOI 10.17487/RFC9114, | |||
June 2022, <https://www.rfc-editor.org/info/rfc9114>. | June 2022, <https://www.rfc-editor.org/info/rfc9114>. | |||
[QUIC-LB] Duke, M., Banks, N., and C. Huitema, "QUIC-LB: Generating | [QUIC-LB] Duke, M., Banks, N., and C. Huitema, "QUIC-LB: Generating | |||
Routable QUIC Connection IDs", Work in Progress, Internet- | Routable QUIC Connection IDs", Work in Progress, Internet- | |||
Draft, draft-ietf-quic-load-balancers-14, 11 July 2022, | Draft, draft-ietf-quic-load-balancers-14, 11 July 2022, | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-quic- | <https://datatracker.ietf.org/doc/html/draft-ietf-quic- | |||
load-balancers-14>. | load-balancers-14>. | |||
[QUIC-MANAGEABILITY] | [QUIC-MANAGEABILITY] | |||
Kuehlewind, M. and B. Trammell, "Manageability of the QUIC | Kühlewind, M. and B. Trammell, "Manageability of the QUIC | |||
Transport Protocol", Work in Progress, Internet-Draft, | Transport Protocol", RFC 9312, DOI 10.17487/RFC9312, | |||
draft-ietf-quic-manageability-18, 15 July 2022, | September 2022, <https://www.rfc-editor.org/info/rfc9312>. | |||
<https://datatracker.ietf.org/doc/html/draft-ietf-quic- | ||||
manageability-18>. | ||||
[QUIC-RETRY] | [QUIC-RETRY] | |||
Duke, M. and N. Banks, "QUIC Retry Offload", Work in | Duke, M. and N. Banks, "QUIC Retry Offload", Work in | |||
Progress, Internet-Draft, draft-ietf-quic-retry-offload- | Progress, Internet-Draft, draft-ietf-quic-retry-offload- | |||
00, 25 May 2022, <https://datatracker.ietf.org/doc/html/ | 00, 25 May 2022, <https://datatracker.ietf.org/doc/html/ | |||
draft-ietf-quic-retry-offload-00>. | draft-ietf-quic-retry-offload-00>. | |||
[QUIC-VERSION-NEGOTIATION] | [QUIC-VERSION-NEGOTIATION] | |||
Schinazi, D. and E. Rescorla, "Compatible Version | Schinazi, D. and E. Rescorla, "Compatible Version | |||
Negotiation for QUIC", Work in Progress, Internet-Draft, | Negotiation for QUIC", Work in Progress, Internet-Draft, | |||
skipping to change at line 1173 ¶ | skipping to change at line 1173 ¶ | |||
[TLS13] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [TLS13] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
<https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
[Trammell16] | [Trammell16] | |||
Trammell, B. and M. Kühlewind, "Internet Path Transparency | Trammell, B. and M. Kühlewind, "Internet Path Transparency | |||
Measurements using RIPE Atlas", RIPE 72 MAT Presentation, | Measurements using RIPE Atlas", RIPE 72 MAT Presentation, | |||
25 May 2016, <https://ripe72.ripe.net/wp-content/uploads/ | 25 May 2016, <https://ripe72.ripe.net/wp-content/uploads/ | |||
presentations/86-atlas-udpdiff.pdf>. | presentations/86-atlas-udpdiff.pdf>. | |||
Contributors | Acknowledgments | |||
The following people have contributed significant text to or feedback | Special thanks to Last Call reviewers Chris Lonvick and Ines Robles. | |||
on this document: | ||||
* Gorry Fairhurst | This work was partially supported by the European Commission under | |||
Horizon 2020 grant agreement no. 688421 Measurement and Architecture | ||||
for a Middleboxed Internet (MAMI) and by the Swiss State Secretariat | ||||
for Education, Research, and Innovation under contract no. 15.0268. | ||||
This support does not imply endorsement. | ||||
* Ian Swett | Contributors | |||
* Igor Lubashev | The following people have contributed significant text to or feedback | |||
on this document: | ||||
* Lucas Pardue | Gorry Fairhurst | |||
* Mike Bishop | Ian Swett | |||
* Mark Nottingham | Igor Lubashev | |||
* Martin Duke | Lucas Pardue | |||
* Martin Thomson | Mike Bishop | |||
* Sean Turner | Mark Nottingham | |||
* Tommy Pauly | Martin Duke | |||
Acknowledgments | Martin Thomson | |||
Special thanks to Last Call reviewers Chris Lonvick and Ines Robles. | Sean Turner | |||
This work was partially supported by the European Commission under | Tommy Pauly | |||
Horizon 2020 grant agreement no. 688421 Measurement and Architecture | ||||
for a Middleboxed Internet (MAMI) and by the Swiss State Secretariat | ||||
for Education, Research, and Innovation under contract no. 15.0268. | ||||
This support does not imply endorsement. | ||||
Authors' Addresses | Authors' Addresses | |||
Mirja Kühlewind | Mirja Kühlewind | |||
Ericsson | Ericsson | |||
Email: mirja.kuehlewind@ericsson.com | Email: mirja.kuehlewind@ericsson.com | |||
Brian Trammell | Brian Trammell | |||
Google Switzerland GmbH | ||||
Gustav-Gull-Platz 1 | Gustav-Gull-Platz 1 | |||
CH-8004 Zurich | CH-8004 Zurich | |||
Switzerland | Switzerland | |||
Email: ietf@trammell.ch | Email: ietf@trammell.ch | |||
End of changes. 33 change blocks. | ||||
78 lines changed or deleted | 78 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |