Skip to main content

Quic Logging for Convergence of Congestion Control from Retained State
draft-custura-tsvwg-careful-resume-qlog-02

Document Type Active Internet-Draft (individual)
Authors Ana Custura , Gorry Fairhurst
Last updated 2025-03-16
RFC stream (None)
Intended RFC status (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-custura-tsvwg-careful-resume-qlog-02
Internet Engineering Task Force                               A. Custura
Internet-Draft                                              G. Fairhurst
Intended status: Standards Track                  University of Aberdeen
Expires: 17 September 2025                                 16 March 2025

 Quic Logging for Convergence of Congestion Control from Retained State
               draft-custura-tsvwg-careful-resume-qlog-02

Abstract

   This document specifies a logging format for a cautious method for
   Careful Resume when using the IETF quic transport protocol.  It
   defines the logging format for qlog.

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 17 September 2025.

Copyright Notice

   Copyright (c) 2025 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.

Custura & Fairhurst     Expires 17 September 2025               [Page 1]
Internet-Draft           Qlog for Careful Resume              March 2025

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Language, Notation and Terms  . . . . . . . . . . . . . . . .   2
     2.1.  Requirements Language . . . . . . . . . . . . . . . . . .   3
     2.2.  Notation and Terms  . . . . . . . . . . . . . . . . . . .   3
   3.  The Phases of CC using Careful Resume . . . . . . . . . . . .   3
     3.1.  Observing . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.2.  Mapping of triggers to phase transitions  . . . . . . . .   4
     3.3.  QLOG support for QUIC . . . . . . . . . . . . . . . . . .   6
       3.3.1.  The CarefulResumePhaseUpdated Event . . . . . . . . .   6
   4.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .   7
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   9
   Appendix A.  Internet Draft Revision details  . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

   This document defines a way to provide logging for Careful
   Resume[I-D.ietf-tsvwg-careful-resume] when used with QUIC
   [RFC9000][RFC9002].

   [I-D.ietf-tsvwg-careful-resume] defines a Congestion Control (CC)
   mechanism called Careful Resume, which is expected to reduce the time
   to complete a transfer when the transfer sends significantly more
   data than allowed by the Initial congestion Window (IW), and where
   the BDP of the path is also significantly more than the IW.  It
   introduces an alternative mechanism to select initial CC parameters
   that seeks to more rapidly and safely grow the sending rate
   controlled by the congestion window (CWND).  CC algorithms that are
   rate-based can make similar adjustments to their target sending rate.

   When used with the QUIC transport, Careful Resume provides transport
   services that resemble those that could be implemented in TCP, using
   methods such as TCP Control Block (TCB) [RFC9040] caching.

2.  Language, Notation and Terms

   This subsection provides a brief summary of key terms and the
   requirements language.

Custura & Fairhurst     Expires 17 September 2025               [Page 2]
Internet-Draft           Qlog for Careful Resume              March 2025

2.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.2.  Notation and Terms

   The document uses language drawn from a range of IETF RFCs.  The
   following terms are defined:

      Careful Resume (CR): The method specified in
      [I-D.ietf-tsvwg-careful-resume].  All other terms in this section,
      except CWND, are defined in the same document.

      CWND: The congestion window, or equivalent CC variable limiting
      the maximum sending rate;

      current_rtt: A sample measurement of the current RTT;

      PipeSize: A measure of the validated available capacity based on
      the acknowledged data;

      saved_cwnd: The preserved capacity derived from observation of a
      previous connection;

      saved_rtt: The preserved minimum RTT;

      Unvalidated Packet: A packet sent when the CWND has been increased
      beyond the size normally permitted by the CC algorithm; if such a
      packet is acknowledged, it contries to the PipeSize, if congestion
      is detected, it triggers entry to the Safe Retreat Phase.

3.  The Phases of CC using Careful Resume

   Careful Resume[I-D.ietf-tsvwg-careful-resume] defines a series of
   phases that a congestion controller moves through as a connection
   uses the mechanism.  The key phases are illustrated in Figure 1.

Custura & Fairhurst     Expires 17 September 2025               [Page 3]
Internet-Draft           Qlog for Careful Resume              March 2025

   Normal ...> Connect -> Reconnaissance --------------------> Normal
   (Observing)              |                                    ^
                            v                                    |
                           Unvalidated --------------------------+
                            |      |                             |
                            |      +--> Validating --------------+
                            |               |                    |
                            |               |                    |
                            +---------------+--> Safe Retreat ---+

        Figure 1: Key transitions between Phases in Careful Resume.

   Examples of these transitions between phases are provided in the
   annexe to [I-D.ietf-tsvwg-careful-resume].

3.1.  Observing

   There are currently no qlog events associated with this phase.

3.2.  Mapping of triggers to phase transitions

   Careful Resume phases are abbreviated as follows:

   *  *Unval* = Unvalidated Phase

   *  *Val* = Validating Phase

   *  *Recon* = Reconnaissance Phase

   *  *SR* = Safe Retreat Phase

   *  *Norm* = Normal Phase

 +---------------------+-------------------------------+-------+-------+
 | Trigger             | Description                   | From  | To    |
 +---------------------+-------------------------------+-------+-------+
 | cwnd_limited        | When sender has confirmed the | Recon | Unval |
 |                     | RTT, has received an ACK for  |       |       |
 |                     | the initial data without      |       |       |
 |                     | reported congestion and has   |       |       |
 |                     | more data to send than the    |       |       |
 |                     | CWND would allow.             |       |       |
 +---------------------+-------------------------------+-------+-------+
 | rtt_not_validated   | If the current_rtt is not     | Recon | Norm  |
 |                     | confirmed the sender MUST     | Unval |       |
 |                     | enter the Normal Phase.       |       |       |

Custura & Fairhurst     Expires 17 September 2025               [Page 4]
Internet-Draft           Qlog for Careful Resume              March 2025

 +---------------------+-------------------------------+-------+-------+
 | last_unvalidated_   | Completed sending all         | Unval | Val   |
 | packet_sent         | unvalidated packets, e.g.,    |       |       |
 |                     | when flight_size is equal to  |       |       |
 |                     | the CWND after the jump       |       |       |
 +---------------------+-------------------------------+-------+-------+
 | first_unvalidated_  | The sender enters the         | Unval | Val   |
 | packet_acknowledged | Validating Phase when an ACK  |       |       |
 |                     | is received for the first     |       |       |
 |                     | packet number (or higher)     |       |       |
 |                     | sent in the Unvalidated Phase.|       |       |
 +---------------------+-------------------------------+-------+-------+
 | rtt_exceeded        | When greater than 1 RTT has   | Unval | Val   |
 |                     | passed in Unvalidated Phase.  |       |       |
 +---------------------+-------------------------------+-------+-------+
 | rate_limited        | If the flight_size is less    | Unval | Norm  |
 |                     | than or equal to the PipeSize |       |       |
 |                     | sender enters Normal Phase.   |       |       |
 +---------------------+-------------------------------+-------+-------+
 | last_unvalidated_   | The sender enters the Normal  | Val   | Norm  |
 | packet_acknowledged | Phase when an ACK is received |       |       |
 |                     | for the last packet number    |       |       |
 |                     | (or higher) that was sent in  |       |       |
 |                     | the Unvalidated Phase.        |       |       |
 +---------------------+-------------------------------+-------+-------+
 | packet_loss         | If a sender determines that   | Unval | SR    |
 |                     | congestion was experienced,   | Val   |       |
 |                     | e.g., packet loss, the sender |       |       |
 |                     | enters the Safe Retreat Phase.|       |       |
 +---------------------+-------------------------------+-------+-------+
 | ECN_CE              | If a sender determines that   | Unval | SR    |
 |                     | congestion was experienced,   | Val   |       |
 |                     | e.g., ECN-CE marking, sender  |       |       |
 |                     | enters the Safe Retreat Phase.|       |       |
 +---------------------+-------------------------------+-------+-------+
 | exit_recovery       | The sender enters the Normal  | SR    | Norm  |
 |                     | Phase when the last packet    |       |       |
 |                     | sent in the Unvalidated Phase |       |       |
 |                     | is ACKed.                     |       |       |
 +---------------------+-------------------------------+-------+-------+

           Figure 2: Mapping of triggers to phase transitions

Custura & Fairhurst     Expires 17 September 2025               [Page 5]
Internet-Draft           Qlog for Careful Resume              March 2025

3.3.  QLOG support for QUIC

   This section provides definitions that enable a Careful Resume
   implementation to generate qlog events when using QUIC.  It
   introduces an event to report a phase transition at the sender, and
   its associated description.  The event's state parameters (which
   include mandatory CR-specific metrics and optionally CWND or
   ssthresh) are intended to reflect the state after the phase
   transition.

   The event and data structure definitions in this section are
   expressed in the Concise Data Definition Language (CDDL) [RFC8610]
   and its extensions described in [I-D.ietf-quic-qlog-quic-events].
   The current convention is to use long names for variables.  For
   example, "CWND" is expanded as "congestion_window" and "saved_cwnd"
   is expanded as "saved_congestion_window".

3.3.1.  The CarefulResumePhaseUpdated Event

   Importance: Extra

   When the CC algorithm changes the Careful Resume Phase described in
   Section 3 of this specification.

   Definition:

   QUICCarefulResumePhaseUpdated = {
   ? old: CarefulResumePhase,
   new: CarefulResumePhase,
   state_data: CarefulResumeStateParameters,
   ? restored_data: CarefulResumeRestoredParameters,

   ? trigger:
           ; for the Unvalidated phase,
           ; when there is more data to send than available CWND
           "congestion_window_limited" /
           ; for the Validating phase
           ; when more than one RTT has passed in the Unvalidated Phase
           "rtt_exceeded" /
           ; for the Validating phase
           "first_unvalidated_packet_acknowledged" /
           ; for the Validating phase
           ; when all unvalidated packets have been sent
           "last_unvalidated_packet_sent" /
           ; for the Normal phase
           ; and no remaining unvalidated packets to be acknowledged
           "last_unvalidated_packet_acknowledged" /
           ; for the Normal phase, when CR not allowed

Custura & Fairhurst     Expires 17 September 2025               [Page 6]
Internet-Draft           Qlog for Careful Resume              March 2025

           "rtt_not_validated" /
           ; for the Normal phase,
           ; when sending fewer unvalidated packets than CWND permits
           "rate_limited" /
           ; for the Safe Retreat phase, when loss detected
           "packet_loss" /
           ; for the Safe Retreat phase,
           ; when ECN congestion experienced reported
           "ECN_CE" /
           ; for the Normal phase 1 RTT after a congestion event
           "exit_recovery"

   * $$quic-carefulresumephaseupdated-extension
   }

   CarefulResumePhase =
           "reconnaissance" /
           "unvalidated" /
           "validating" /
           "normal" /
           "safe_retreat"

   CarefulResumeStateParameters = {
         pipesize: uint32,
         first_unvalidated_packet: uint32,
         last_unvalidated_packet: uint32,
         ? congestion_window: uint32,
         ? ssthresh: uint32
   }

   CarefulResumeRestoredParameters = {
         saved_congestion_window: uint32,
         saved_rtt: float32
   }

   $ProtocolEventData /= QUICCarefulResumePhaseUpdated

     Figure 3: CDDL description of the CarefulResumePhaseUpdated event

4.  Acknowledgments

   The authors would like to thank Robin Marx and Lucar Purdue for their
   fruitful comments in developing this specification.

Custura & Fairhurst     Expires 17 September 2025               [Page 7]
Internet-Draft           Qlog for Careful Resume              March 2025

5.  IANA Considerations

   Note by RM: This event type is to be added to the "qlog event schema
   URIs" registered at IANA, but the qlog event schema URIs registry has
   not yet been actually created at IANA because the qlog registry has
   not yet been created.

6.  Security Considerations

   This document does not exhibit specific security considerations.

7.  References

7.1.  Normative References

   [I-D.ietf-quic-qlog-quic-events]
              Marx, R., Niccolini, L., Seemann, M., and L. Pardue, "QUIC
              event definitions for qlog", Work in Progress, Internet-
              Draft, draft-ietf-quic-qlog-quic-events-09, 21 October
              2024, <https://datatracker.ietf.org/doc/html/draft-ietf-
              quic-qlog-quic-events-09>.

   [I-D.ietf-tsvwg-careful-resume]
              Kuhn, N., Stephan, E., Fairhurst, G., Secchi, R., and C.
              Huitema, "Convergence of Congestion Control from Retained
              State", Work in Progress, Internet-Draft, draft-ietf-
              tsvwg-careful-resume-15, 28 February 2025,
              <https://datatracker.ietf.org/api/v1/doc/document/draft-
              ietf-tsvwg-careful-resume/>.

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

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

   [RFC8610]  Birkholz, H., Vigano, C., and C. Bormann, "Concise Data
              Definition Language (CDDL): A Notational Convention to
              Express Concise Binary Object Representation (CBOR) and
              JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610,
              June 2019, <https://www.rfc-editor.org/info/rfc8610>.

Custura & Fairhurst     Expires 17 September 2025               [Page 8]
Internet-Draft           Qlog for Careful Resume              March 2025

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

7.2.  Informative References

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

   [RFC9040]  Touch, J., Welzl, M., and S. Islam, "TCP Control Block
              Interdependence", RFC 9040, DOI 10.17487/RFC9040, July
              2021, <https://www.rfc-editor.org/info/rfc9040>.

Appendix A.  Internet Draft Revision details

      ID -00 Text extracted from the TSVWG WG draft for CR.

      ID -01 Refactors initial text from CR into a table matching the
      qlog triggers.  Add one new trigger, 'rtt_exceeded'; update text
      for trigger "congestion_window_limited", based on comments from
      Finic8; updates CDDL based on comments from R.  Marx

      ID -02 Adds a missing trigger when jump cwnd fully used, a list of
      abbreviations and clarifies that logged values are expected to
      reflect the post-transition state.

Authors' Addresses

   Ana Custura
   University of Aberdeen
   Department of Engineering
   Fraser Noble Building
   Aberdeen
   AB24 3UE
   United Kingdom
   Email: ana@erg.abdn.ac.uk

   Godred Fairhurst
   University of Aberdeen
   Department of Engineering
   Fraser Noble Building
   Aberdeen
   AB24 3UE
   United Kingdom
   Email: gorry@erg.abdn.ac.uk

Custura & Fairhurst     Expires 17 September 2025               [Page 9]