Internet-Draft Qlog for Careful Resume February 2025
Custura & Fairhurst Expires 15 August 2025 [Page]
Workgroup:
Internet Engineering Task Force
Internet-Draft:
draft-custura-tsvwg-careful-resume-qlog-00
Published:
Intended Status:
Standards Track
Expires:
Authors:
A. Custura
University of Aberdeen
G. Fairhurst
University of Aberdeen

Quic Logging for Convergence of Congestion Control from Retained State

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 15 August 2025.

Table of Contents

1. Introduction

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

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 XXX

  • 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 (see [I-D.ietf-tsvwg-careful-resume]);

  • saved_rtt: The preserved minimum RTT (see [I-D.ietf-tsvwg-careful-resume]).

  • 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 contributes to the PipeSize, but 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.


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 currnetly no qlog events associated with this phase.

3.2. Reconnaissance Phase

A sender enters the Reconnaissance Phase after connection setup. In this phase, the CWND is initialised to the IW, and the sender transmits initial data.

Reconnaissance Phase (Path confirmed): When a sender has confirmed the RTT and also has received an acknowledgement for the initial data without reported congestion, it MAY then enter the Unvalidated Phase. The associated qlog event is XXX.

3.3. Unvalidated Phase

The Unvalidated Phase is designed to enable the CWND to more rapidly get up to speed by using paced transmission of a tentatively increased CWND.

Unvalidated Phase (Confirming the path on entry): If the current_rtt is not confirmed, the sender MUST enter the Normal Phase (see trigger rtt_not_validated in Section 4).

Unvalidated Phase (Receiving acknowledgement for an unvalidated packet): The sender enters the Validating Phase when an acknowledgement is received for the first packet number (or higher) that was sent in the Unvalidated Phase or greater than 1 RTT has passed in the Unvalidated Phase (see first_unvalidated_packet_acknowledged in Section 4).

3.4. Validating Phase

The Validating Phase checks whether all packets sent in the Unvalidated Phase were received without inducing congestion. The CWND remains unvalidated and the sender typically remains in this phase for one RTT.

Validating Phase (Congestion indication): If a sender determines that congestion was experienced (e.g., packet loss or ECN-CE marking), Careful Resume enters the Safe Retreat Phase (see trigger packet_loss and ECN_CE in Section 4).

Validating Phase (Receiving acknowledgement of the unvalidated packets): The sender enters the Normal Phase when an acknowledgement is received for the last packet number (or higher) that was sent in the Unvalidated Phase (see last_unvalidated_packet_acknowledged in Section 4). This indicates that the packets sent in the Unvalidated Phase were acknowledged without congestion.

3.5. Safe Retreat Phase

This phase is entered when congestion is detected for an unvalidated packet. It drains the path of other unvalidated packets. (This trigger is the same as used by a QUIC sender to transition from Slow-Start to Recovery [RFC9002].)

Safe Retreat Phase (Acknowledgement of unvalidated packets): The sender enters the Normal Phase when the last packet (or a later packet) sent during the Unvalidated Phase has been acknowledged. On leaving the Safe Retreat Phase, the log is updated to exit_recovery, see Section 4.)

4. 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 the current phase of a sender, and an associated description.

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

4.1. The cr_phase Event

Importance: Extra

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

Definition:

RecoveryCarefulResumePhaseUpdated = {
? old_phase: CarefulResumePhase,
new_phase: CarefulResumePhase,
state_data: CarefulResumeStateParameters,
? restored_data: CarefulResumeRestoredParameters,
? trigger:
        ; for the Unvalidated phase, when no unvalidated packets
        "congestion_window_limited" /
        ; for the Validating phase
        "first_unvalidated_packet_acknowledged" /
    ; for the Normal phase
    ; and no remaining unvalidated packets to be acknowledged
        "last_unvalidated_packet_acknowledged" /
        ; for the Normal phase, when CR not allowed
        "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"
}

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

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

CarefulResumeRestoredParameters = {
saved_congestion_window: uint,
saved_rtt: float32
}
Figure 2

5. Acknowledgments

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

6. IANA Considerations

No current parameters are required to be registered by IANA.

7. Security Considerations

This document does not exhibit specific security considerations.

8. References

8.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, , <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-13, , <https://datatracker.ietf.org/doc/html/draft-ietf-tsvwg-careful-resume-13>.
[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>.
[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>.
[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, , <https://www.rfc-editor.org/info/rfc8610>.
[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>.

8.2. Informative References

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

Appendix A. Internet Draft Revision details

Authors' Addresses

Ana Custura
University of Aberdeen
Department of Engineering
Fraser Noble Building
Aberdeen
AB24 3UE
United Kingdom
Godred Fairhurst
University of Aberdeen
Department of Engineering
Fraser Noble Building
Aberdeen
AB24 3UE
United Kingdom