Internet DRAFT - draft-blanchet-quic-peerhints
draft-blanchet-quic-peerhints
Internet Engineering Task Force M. Blanchet
Internet-Draft Viagenie
Intended status: Standards Track 8 March 2023
Expires: 9 September 2023
Priming QUIC with Peer Hints for Atypical Networks, such as Delay-
Tolerant Networks(DTN)
draft-blanchet-quic-peerhints-00
Abstract
Abstract
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 9 September 2023.
Copyright Notice
Copyright (c) 2023 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 (https://trustee.ietf.org/
license-info) 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 Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Blanchet Expires 9 September 2023 [Page 1]
Internet-Draft Priming QUIC with Peer Hints March 2023
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2
2. Peer Hints . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. File Format . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Considerations . . . . . . . . . . . . . . . . . . . . . . . 4
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
6. Security Considerations . . . . . . . . . . . . . . . . . . . 5
7. TODO and Comments (section to be deleted when ready for
publication) . . . . . . . . . . . . . . . . . . . . . . 5
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
8.1. Normative References . . . . . . . . . . . . . . . . . . 5
8.2. Informative References . . . . . . . . . . . . . . . . . 6
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 6
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
Long delay networks such as in space communications may possibly use
the IP protocol as IP as no notion of delivery time. However, it
requires that the transport and application layers work properly in
the context of long delays. In space radio communications, it is
typical to have delays in order of multiple minutes and maybe hours.
This document describes a configuration profile for QUIC and HTTP3
implementations to properly work in these scenarios. It can also be
used for any use case where some initial QUIC parameters should be
changed from the defaults.
1.1. 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 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. Peer Hints
A QUIC stack is primed with a config that defines various parameters
for a destination, so that the QUIC stack converges faster. For
example, when a network is known to be "far", with a large and known
in advance latency, such as in space, the QUIC stack is primed with
an initial RTT of that destination, for example 20 minutes, so that
the QUIC RTT calculation is converging much faster and does not
generate a lot of useless retransmits and does not timeout. It
should be noted that these priming values are just hints and the QUIC
stack may decide to not honor them, or to use more prudent values.
Blanchet Expires 9 September 2023 [Page 2]
Internet-Draft Priming QUIC with Peer Hints March 2023
For example, if the value is very large, the QUIC stack may decide to
start with half of the proposed value.
The properties and their values are as follows. All values must
follow the maximums specified in their corresponding definitions in
QUIC RFCs.
* destination: an IPv4 prefix in CIDR format [RFC4632] or an IPv6
prefix [RFC4291]. A single host may be expressed without the
/length suffix.
* initial_rtt: unsigned integer. in ms. see [RFC9002] section 6.2.2
* max_idle_timeout: unsigned integer. in ms. see [RFC9000] section
18.2
* active_connection_id_limit: unsigned integer. see [RFC9000]
section 18.2
* TBD: others?
3. File Format
The values are expressed in a JSON object, typically stored as a
file.
The top-level properties are as follows:
* type: mandatory. always set to "quicPeerHints". This enables
identification of that file outside of the expected context.
* version: mandatory. this document set to 1. New specifications
may define new versions.
* lastUpdated: mandatory. the last time this file was updated in
[RFC3339] format
* quicHints: mandatory. a non-empty array of hints
The following is an example:
Blanchet Expires 9 September 2023 [Page 3]
Internet-Draft Priming QUIC with Peer Hints March 2023
<CODE BEGINS>
{
"type": "quicPeerHints",
"version": 1,
"lastUpdated": "2025-01-17T23:20:50Z",
"quicHints": [
{
"destination": "2001:db8:1234::/48",
"initial_rtt": 600000,
"max_idle_timeout": 1500000,
"active_connection_id_limit": 100000
},
{
"destination": "192.0.2.0/24",
"initial_rtt": 30000,
"max_idle_timeout": 100000,
"active_connection_id_limit": 10000
}
]
}
<CODE ENDS>
4. Considerations
The mechanism to distribute such configuration to the QUIC stack is
undefined in this document. For the use case that triggered this
work, space networking, it is expected that these configuration will
be fairly static, loaded in advance and very seldomly need to be
updated. However, other use cases may require updates more often and
therefore may need a protocol to distribute such configuration. A
possible candidate protocol to update this configuration is [RFC8175]
but that would apply to networks reachable via a single link where
all the characteristics are inherited from that link.
Similarly to typical forwarding and routing algorithms, if a
destination address matches multiple address prefixes, the most
specific prefix will be used as a match. In case multiple prefixes
have the same length, the last one encountered while parsing the file
is the one used as a match
Some configuration values are defined in this document. However, it
is possible that other parameters might need to be added in the
future. Therefore, an IANA registry of values is defined to support
future definition of parameters. The actual possible values or range
of values for a specific parameter is not shown in the IANA registry.
Discussion on the semantics of the parameter, its possible values,
etc... must be in the referenced document. The IANA registry only
contains the JSON syntax useful for a JSON parser.
Blanchet Expires 9 September 2023 [Page 4]
Internet-Draft Priming QUIC with Peer Hints March 2023
5. IANA Considerations
TBD. policy: specification required and expert review.
columns: JSON property name, JSON object type, reference
6. Security Considerations
If a QUIC stack is configured by this mechanism with a bad
configuration, it may result in a denial-of-service attack, as for
example, putting very low timeouts that would trigger timeouts for
some or all networks, therefore denying any connection. To minimize
those issues, the QUIC stack should accept values only within a
certain range, that makes sense for the use cases of the QUIC stack.
Moreover, while the destination values of :: or 0.0.0.0/0 are
permitted by this document, the QUIC stack may disable these values
as they would be applied to all destinations: in such case, some
messages should be logged.
7. TODO and Comments (section to be deleted when ready for publication)
a list of TODOs and comments not yet resolved in this version
* MT: remove active_connection_id_limit as not needed since
negotiated and not need to be primed
* MT: consider initial congestion window. CH: Not tying the CWIN:
very good. Starting with extra large CWIN can be very risky.
* CH: The idle timeout tends to be application specific. LP:
h3-nginx config parameter in quiche
* CH: DOS attacks with spoofed packets. A single spoofed with
address in the selected range will tie connection resource for a
long time.
* MT: consider domain names. MB: I disagree because side effects of
TTL=0, split views, ...
8. References
8.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
Blanchet Expires 9 September 2023 [Page 5]
Internet-Draft Priming QUIC with Peer Hints March 2023
[RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<https://www.rfc-editor.org/info/rfc3339>.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, DOI 10.17487/RFC4291, February
2006, <https://www.rfc-editor.org/info/rfc4291>.
[RFC4632] Fuller, V. and T. Li, "Classless Inter-domain Routing
(CIDR): The Internet Address Assignment and Aggregation
Plan", BCP 122, RFC 4632, DOI 10.17487/RFC4632, August
2006, <https://www.rfc-editor.org/info/rfc4632>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", RFC 9000,
DOI 10.17487/RFC9000, May 2021,
<https://www.rfc-editor.org/info/rfc9000>.
[RFC9002] Iyengar, J., Ed. and I. Swett, Ed., "QUIC Loss Detection
and Congestion Control", RFC 9002, DOI 10.17487/RFC9002,
May 2021, <https://www.rfc-editor.org/info/rfc9002>.
8.2. Informative References
[RFC8175] Ratliff, S., Jury, S., Satterwhite, D., Taylor, R., and B.
Berry, "Dynamic Link Exchange Protocol (DLEP)", RFC 8175,
DOI 10.17487/RFC8175, June 2017,
<https://www.rfc-editor.org/info/rfc8175>.
Acknowledgements
This work is based on extensive testing of QUIC and HTTP3
implementations and working closely with implementers. There are
acknowledged here: Martin Thompson, Christian Huitema, Ian Swett,
Michael Bishop. It is also the result of initial discussions with
Eric Kinnear, Maxime Piraux, François Michel. All bad ideas are from
the author.
This document has been reviewed and commented by the following
people, in no particular order: Martin Thompson, Lucas Purdue,
Christian Huitema.
Author's Address
Blanchet Expires 9 September 2023 [Page 6]
Internet-Draft Priming QUIC with Peer Hints March 2023
Marc Blanchet
Viagenie
Email: marc.blanchet@viagenie.ca
Blanchet Expires 9 September 2023 [Page 7]