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 { "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 } ] } 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, . 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, . [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, DOI 10.17487/RFC4291, February 2006, . [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, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10.17487/RFC9000, May 2021, . [RFC9002] Iyengar, J., Ed. and I. Swett, Ed., "QUIC Loss Detection and Congestion Control", RFC 9002, DOI 10.17487/RFC9002, May 2021, . 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, . 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]