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]