Internet-Draft Priming QUIC with Peer Hints March 2023
Blanchet Expires 9 September 2023 [Page]
Workgroup:
Internet Engineering Task Force
Internet-Draft:
draft-blanchet-quic-peerhints-00
Published:
Intended Status:
Standards Track
Expires:
Author:
M. Blanchet
Viagenie

Priming QUIC with Peer Hints for Atypical Networks, such as Delay-Tolerant Networks(DTN)

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.

Table of Contents

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. 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.

3. File Format

The values are expressed in a JSON object, typically stored as a file.

The top-level properties are as follows:

The following is an example:

<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.

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

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, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC3339]
Klyne, G. and C. Newman, "Date and Time on the Internet: Timestamps", RFC 3339, DOI 10.17487/RFC3339, , <https://www.rfc-editor.org/info/rfc3339>.
[RFC4291]
Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, DOI 10.17487/RFC4291, , <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, , <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, , <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, , <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, , <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, , <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

Marc Blanchet
Viagenie