<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.26 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-kozuka-quic-failover-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.0 -->
  <front>
    <title abbrev="QUIC failover">Multipath QUIC Path Failover Mechanism</title>
    <seriesInfo name="Internet-Draft" value="draft-kozuka-quic-failover-00"/>
    <author fullname="Masahiro Kozuka">
      <organization>Okayama University</organization>
      <address>
        <email>masa.koz@kozuka.jp</email>
      </address>
    </author>
    <date year="2023" month="March" day="31"/>
    <area>Transport</area>
    <workgroup>QUIC</workgroup>
    <keyword>QUIC</keyword>
    <keyword>failover</keyword>
    <keyword>multipath</keyword>
    <abstract>
      <t>The proposed path failover mechanism provides a seamless way to recover from path failures in Multipath QUIC. It allows the protocol to take advantage of multiple paths while maintaining reliability and security. The implementation and deployment of this mechanism should be done with careful consideration of security and performance.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://masa-koz.github.io/quic-failover/draft-kozuka-quic-failover.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-kozuka-quic-failover/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        QUIC Working Group mailing list (<eref target="mailto:quic@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/quic/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/quic/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/masa-koz/quic-failover"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Multipath QUIC provides improved network performance and reliability by using multiple network paths concurrently. However, if one of the paths fails, it can cause a disruption in the communication. This document proposes a path failover mechanism for Multipath QUIC, which allows it to recover from path failures seamlessly.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
    </section>
    <section anchor="path-failover-mechanism">
      <name>Path Failover Mechanism</name>
      <t>Multipath QUIC uses multiple paths to transfer data concurrently. Each path has its own metrics, such as RTT, available bandwidth, and congestion level. These metrics are monitored by the sender using the Path Quality Estimation (PQE) framework. When a path failure is detected, the sender chooses a new path to transfer data.
The sender detects a path failure when the path metrics show a significant degradation. This can be caused by a network outage or congestion. If the path metrics remain degraded for a certain duration, the sender assumes the path has failed and triggers the failover mechanism.
When the failover mechanism is triggered, the sender selects a new path to transfer data from a list of available paths. The selection criteria can be based on various factors, such as available bandwidth, RTT, and congestion level. The sender also considers the path diversity to choose a path that is different from the failed path.
After selecting a new path, the sender checks whether it is valid by sending a connectivity check packet. If the path is valid, it starts sending data on the new path. If the new path also fails, the sender repeats the failover mechanism with a different path.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The failover mechanism should not compromise the security of the communication. The selection of a new path should not leak information about the failed path or the communication itself. Therefore, the selection criteria should not depend on any information that can be obtained by an eavesdropper.
The connectivity check packet should be authenticated to prevent spoofing attacks. The sender should verify the authenticity of the packet before deciding to use the new path. The sender should also limit the number of failover attempts to prevent denial-of-service attacks.
The failover mechanism should not introduce any new vulnerabilities to the Multipath QUIC protocol. Therefore, it should be thoroughly tested and reviewed before being deployed.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner">
            <organization/>
          </author>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba">
            <organization/>
          </author>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
48fhNgYQAAA=

-->

</rfc>
