<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" docName="draft-ietf-tsvwg-multipath-dccp-14" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" prepTime="2024-03-16T06:51:07" indexInclude="true" scripts="Common,Latin" tocDepth="3">
  <!-- xml2rfc v2v3 conversion 3.20.1 -->
  <front>
    <title abbrev="Multipath DCCP">DCCP Extensions for Multipath Operation with Multiple Addresses</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-multipath-dccp-14" stream="IETF"/>
    <author initials="M." surname="Amend" fullname="Markus Amend" role="editor">
      <organization abbrev="DT" showOnFrontPage="true">Deutsche Telekom</organization>
      <address>
        <postal>
          <street>Deutsche-Telekom-Allee 9</street>
          <city>Darmstadt</city>
          <code>64295</code>
          <country>Germany</country>
        </postal>
        <email>Markus.Amend@telekom.de</email>
      </address>
    </author>
    <author initials="A." surname="Brunstrom" fullname="Anna Brunstrom">
      <organization showOnFrontPage="true">Karlstad University</organization>
      <address>
        <postal>
          <street>Universitetsgatan 2</street>
          <city>Karlstad</city>
          <code>651 88</code>
          <country>Sweden</country>
        </postal>
        <email>anna.brunstrom@kau.se</email>
      </address>
    </author>
    <author initials="A." surname="Kassler" fullname="Andreas Kassler">
      <organization showOnFrontPage="true">Karlstad University</organization>
      <address>
        <postal>
          <street>Universitetsgatan 2</street>
          <city>Karlstad</city>
          <code>651 88</code>
          <country>Sweden</country>
        </postal>
        <email>andreas.kassler@kau.se</email>
      </address>
    </author>
    <author initials="V." surname="Rakocevic" fullname="Veselin Rakocevic">
      <organization showOnFrontPage="true">City, University of London</organization>
      <address>
        <postal>
          <street>Northampton Square</street>
          <city>London</city>
          <country>United Kingdom</country>
        </postal>
        <email>veselin.rakocevic.1@city.ac.uk</email>
      </address>
    </author>
    <author initials="S." surname="Johnson" fullname="Stephen Johnson">
      <organization showOnFrontPage="true">BT</organization>
      <address>
        <postal>
          <street>Adastral Park</street>
          <city>Martlesham Heath</city>
          <code>IP5 3RE</code>
          <country>United Kingdom</country>
        </postal>
        <email>stephen.h.johnson@bt.com</email>
      </address>
    </author>
    <date month="03" year="2024" day="17"/>
    <area>transport</area>
    <workgroup>Transport Area Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">DCCP communications as defined in <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> are restricted to a single path per
connection, yet multiple paths often exist between peers.  The
simultaneous use of available multiple paths for a DCCP session could
improve resource usage within the network and, thus, improve user
experience through higher throughput and improved resilience to
network failures.
Use cases for Multipath DCCP (MP-DCCP) are mobile devices (e.g., handsets, vehicles) and residential home gateways simultaneously connected to distinct networks as, e.g., 
a cellular and a Wireless Local Area (WLAN) network
or a cellular and a fixed access network. Compared to the existing multipath protocols, such as MPTCP, MP-DCCP provides specific support for non-TCP user
traffic (e.g., UDP or plain IP).</t>
      <t indent="0" pn="section-abstract-2">This document specifies a set of extensions to
DCCP to support multipath operations.  Multipath DCCP provides 
the ability to simultaneously use multiple
paths between peers.  The protocol offers
the same type of service to applications as DCCP and provides the
components necessary to establish and use multiple DCCP flows across
different paths simultaneously.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
        This Internet-Draft is submitted in full conformance with the
        provisions of BCP 78 and BCP 79.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
        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 <eref target="https://datatracker.ietf.org/drafts/current/" brackets="none"/>.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
        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."
        </t>
        <t indent="0" pn="section-boilerplate.1-4">
        This Internet-Draft will expire on 18 September 2024.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2024 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multipath-dccp-in-the-netwo">Multipath DCCP in the Networking Stack</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.3">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.3.1"><xref derivedContent="1.3" format="counter" sectionFormat="of" target="section-1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-operation-overview">Operation Overview</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp-dccp-concept">MP-DCCP Concept</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp-dccp-protocol">MP-DCCP Protocol</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multipath-capable-feature">Multipath Capable Feature</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-multipath-option">Multipath Option</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.2.2">
                  <li pn="section-toc.1-1.3.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.1.1"><xref derivedContent="3.2.1" format="counter" sectionFormat="of" target="section-3.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_confirm">MP_CONFIRM</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.2.1"><xref derivedContent="3.2.2" format="counter" sectionFormat="of" target="section-3.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_join">MP_JOIN</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.3">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.3.1"><xref derivedContent="3.2.3" format="counter" sectionFormat="of" target="section-3.2.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_fast_close">MP_FAST_CLOSE</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.4">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.4.1"><xref derivedContent="3.2.4" format="counter" sectionFormat="of" target="section-3.2.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_key">MP_KEY</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.5">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.5.1"><xref derivedContent="3.2.5" format="counter" sectionFormat="of" target="section-3.2.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_seq">MP_SEQ</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.6">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.6.1"><xref derivedContent="3.2.6" format="counter" sectionFormat="of" target="section-3.2.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_hmac">MP_HMAC</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.7">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.7.1"><xref derivedContent="3.2.7" format="counter" sectionFormat="of" target="section-3.2.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_rtt">MP_RTT</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.8">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.8.1"><xref derivedContent="3.2.8" format="counter" sectionFormat="of" target="section-3.2.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_addaddr">MP_ADDADDR</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.9">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.9.1"><xref derivedContent="3.2.9" format="counter" sectionFormat="of" target="section-3.2.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_removeaddr">MP_REMOVEADDR</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.10">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.10.1"><xref derivedContent="3.2.10" format="counter" sectionFormat="of" target="section-3.2.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_prio">MP_PRIO</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.11">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.11.1"><xref derivedContent="3.2.11" format="counter" sectionFormat="of" target="section-3.2.11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-mp_close">MP_CLOSE</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.12">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.12.1"><xref derivedContent="3.2.12" format="counter" sectionFormat="of" target="section-3.2.12"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-experimental-multipath-opti">Experimental Multipath option MP_EXP for private use</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mp-dccp-handshaking-procedu">MP-DCCP Handshaking Procedure</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.4">
                <t indent="0" pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-address-knowledge-exchange">Address knowledge exchange</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.4.2">
                  <li pn="section-toc.1-1.3.2.4.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.4.2.1.1"><xref derivedContent="3.4.1" format="counter" sectionFormat="of" target="section-3.4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-advertising-a-new-path-mp_a">Advertising a new path (MP_ADDADDR)</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.4.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.4.2.2.1"><xref derivedContent="3.4.2" format="counter" sectionFormat="of" target="section-3.4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-removing-a-path-mp_removead">Removing a path (MP_REMOVEADDR)</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.3.2.5">
                <t indent="0" pn="section-toc.1-1.3.2.5.1"><xref derivedContent="3.5" format="counter" sectionFormat="of" target="section-3.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-closing-an-mp-dccp-connecti">Closing an MP-DCCP connection</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.6">
                <t indent="0" pn="section-toc.1-1.3.2.6.1"><xref derivedContent="3.6" format="counter" sectionFormat="of" target="section-3.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-fallback">Fallback</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.7">
                <t indent="0" pn="section-toc.1-1.3.2.7.1"><xref derivedContent="3.7" format="counter" sectionFormat="of" target="section-3.7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-state-diagram">State Diagram</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.8">
                <t indent="0" pn="section-toc.1-1.3.2.8.1"><xref derivedContent="3.8" format="counter" sectionFormat="of" target="section-3.8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-congestion-control-consider">Congestion Control Considerations</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.9">
                <t indent="0" pn="section-toc.1-1.3.2.9.1"><xref derivedContent="3.9" format="counter" sectionFormat="of" target="section-3.9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-maximum-packet-size-conside">Maximum Packet Size Considerations</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.10">
                <t indent="0" pn="section-toc.1-1.3.2.10.1"><xref derivedContent="3.10" format="counter" sectionFormat="of" target="section-3.10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-maximum-number-of-subflows">Maximum number of Subflows</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.11">
                <t indent="0" pn="section-toc.1-1.3.2.11.1"><xref derivedContent="3.11" format="counter" sectionFormat="of" target="section-3.11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-path-usage-strategies">Path usage strategies</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.11.2">
                  <li pn="section-toc.1-1.3.2.11.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.11.2.1.1"><xref derivedContent="3.11.1" format="counter" sectionFormat="of" target="section-3.11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-path-mobility">Path mobility</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.11.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.11.2.2.1"><xref derivedContent="3.11.2" format="counter" sectionFormat="of" target="section-3.11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-concurrent-path-usage">Concurrent path usage</xref></t>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interactions-with-middlebox">Interactions with Middleboxes</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-implementation">Implementation</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-differences-from-multipath-">Differences from Multipath TCP</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="intro" numbered="true" removeInRFC="false" toc="include" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">Datagram Congestion Control Protocol (DCCP) <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> is a
transport protocol that provides bidirectional unicast connections of
congestion-controlled unreliable datagrams. DCCP communications are restricted to one single path. 
This document specifies a set of protocol changes that add multipath
support to DCCP; specifically, support for signaling and setting up
multiple paths (a.k.a, "subflows"), managing these subflows, reordering of
data, and termination of sessions.</t>
      <t indent="0" pn="section-1-2">Multipath DCCP (MP-DCCP) 
enables a DCCP connection to simultaneously establish a flow across multiple paths. This can be  beneficial to applications that transfer
large amounts of data, by utilizing the capacity/connectivity offered by 
multiple paths. In addition, the multipath extensions enable to tradeoff timeliness and reliability,
which is important for low-latency applications that do not require
guaranteed delivery services, such as Audio/Video streaming.</t>
      <t indent="0" pn="section-1-3">MP-DCCP was first suggested
in the context of the 3GPP work on 5G multi-access solutions
<xref target="I-D.amend-tsvwg-multipath-framework-mpdccp" format="default" sectionFormat="of" derivedContent="I-D.amend-tsvwg-multipath-framework-mpdccp"/> and for hybrid access
networks <xref target="I-D.lhwxz-hybrid-access-network-architecture" format="default" sectionFormat="of" derivedContent="I-D.lhwxz-hybrid-access-network-architecture"/><xref target="I-D.muley-network-based-bonding-hybrid-access" format="default" sectionFormat="of" derivedContent="I-D.muley-network-based-bonding-hybrid-access"/>, where
MP-DCCP can be applied for load-balancing, seamless session handover, and bandwidth
aggregation (referred to as Access Traffic Steering, Switching, and Splitting (ATSSS)
in the 3GPP terminology <xref target="TS23.501" format="default" sectionFormat="of" derivedContent="TS23.501"/>).
More details on potential use cases for MP-DCCP are provided in <xref target="multipath-dccp.org" format="default" sectionFormat="of" derivedContent="multipath-dccp.org"/>, <xref target="IETF115.Slides" format="default" sectionFormat="of" derivedContent="IETF115.Slides"/>, and <xref target="MP-DCCP.Paper" format="default" sectionFormat="of" derivedContent="MP-DCCP.Paper"/>.
All these use cases profit from an Open Source Linux reference implementation provided under <xref target="multipath-dccp.org" format="default" sectionFormat="of" derivedContent="multipath-dccp.org"/>.</t>
      <t indent="0" pn="section-1-4">Encapsulation for DCCP in UDP is defined in <xref target="RFC6773" format="default" sectionFormat="of" derivedContent="RFC6773"/>.
<xref target="I-D.amend-tsvwg-multipath-framework-mpdccp" format="default" sectionFormat="of" derivedContent="I-D.amend-tsvwg-multipath-framework-mpdccp"/> proposes a 
lightweight encapsulation for DCCP flow headers appropriate for unreliable 
IP traffic in terms of UDP and other non-TCP packets in comparison to MPTCP.
This is not considered in the present specification.</t>
      <t indent="0" pn="section-1-5">Similar to MP-DCCP, MP-QUIC is designed to enable the simultaneous usage of 
multiple paths for a single connection <xref target="I-D.ietf-quic-multipath" format="default" sectionFormat="of" derivedContent="I-D.ietf-quic-multipath"/>. MP-QUIC is based on QUIC 
in a similar way as MP-DCCP is based on DCCP.
MP-QUIC inherits the properties of QUIC with its various facets of encryption, multi-streaming and the STREAM and DATAGRAM transport characteristic. This makes a practical multipath implementation very complex. In contrast, MP-DCCP is based exclusively on the lean concept of DCCP. For traffic that is already encrypted, MP-DCCP is the more efficient choice as it does not apply its own encryption mechanisms. Also, the procedures defined by MP-DCCP, which allow subsequent reordering of traffic, improve performance, as shown in <xref target="MP-DCCP.Paper" format="default" sectionFormat="of" derivedContent="MP-DCCP.Paper"/>, and are not available in MP-QUIC.</t>
      <section anchor="mpdccp_network_stack" numbered="true" removeInRFC="false" toc="include" pn="section-1.1">
        <name slugifiedName="name-multipath-dccp-in-the-netwo">Multipath DCCP in the Networking Stack</name>
        <t indent="0" pn="section-1.1-1">MP-DCCP provides a set of features to DCCP; <xref target="ref-comparison-of-standard-dccp-and-mp-dccp-protocol-stacks" format="default" sectionFormat="of" derivedContent="Figure 1"/> illustrates this layering. 
It operates at the transport layer and can be used as a transport for
both higher and lower layers. 
It is
designed to be used by applications in the same way as DCCP with no
changes to the application itself.</t>
        <figure anchor="ref-comparison-of-standard-dccp-and-mp-dccp-protocol-stacks" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-comparison-of-standard-dccp">Comparison of standard DCCP and MP-DCCP protocol stacks</name>
          <artwork align="left" pn="section-1.1-2.1"><![CDATA[
                             +-------------------------------+
                             |           Application         |
+---------------+            +-------------------------------+
|  Application  |            |            MP-DCCP            |
+---------------+            + - - - - - - - + - - - - - - - +
|      DCCP     |            |Subflow (DCCP) |Subflow (DCCP) |
+---------------+            +-------------------------------+
|      IP       |            |       IP      |      IP       |
+---------------+            +-------------------------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="terminology" numbered="true" removeInRFC="false" toc="include" pn="section-1.2">
        <name slugifiedName="name-terminology">Terminology</name>
        <t indent="0" pn="section-1.2-1">This document uses terms that are either specific
for multipath transport or are defined in the context of MP-DCCP,
similar to <xref target="RFC8684" format="default" sectionFormat="of" derivedContent="RFC8684"/>, as follows:</t>
        <t indent="0" pn="section-1.2-2">Path: A sequence of links between a sender and a receiver, defined in
this context by a 4-tuple of source and destination address/port pairs.</t>
        <t indent="0" pn="section-1.2-3">(MP-DCCP) Connection: A set of one or more subflows, over which an
application can communicate between two hosts. The MP-DCCP connection is
exposed as single DCCP socket to the application.</t>
        <t indent="0" pn="section-1.2-4">Connection Identifier (CI): A locally unique identifier given to a multipath connection by a
host.</t>
        <t indent="0" pn="section-1.2-5">Host: An end host operating an MP-DCCP implementation, and either
initiating or accepting an MP-DCCP connection.</t>
        <t indent="0" pn="section-1.2-6">Subflow: A subflow refers to a DCCP flow transmitted using a specific path (4-tuple of source and destination address/port
pairs) that forms one of the multipath flows used by a single connection.</t>
        <t indent="0" pn="section-1.2-7">In addition to these
terms, within the framework of MP-DCCP, the interpretation of, and effect on,
regular single-path DCCP semantics is discussed in <xref target="protocol" format="default" sectionFormat="of" derivedContent="Section 3"/>.</t>
      </section>
      <section anchor="requirements-language" numbered="true" removeInRFC="false" toc="include" pn="section-1.3">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.3-1">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 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all
   capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="op_overview" numbered="true" removeInRFC="false" toc="include" pn="section-2">
      <name slugifiedName="name-operation-overview">Operation Overview</name>
      <t indent="0" pn="section-2-1">DCCP transmits congestion-controlled unreliable datagrams over a single path.<br/>
Various congestion control mechanisms have been specified to optimize
DCCP performance for specific traffic types in terms of profiles denoted
by a Congestion Control IDentifier (CCID).
However, DCCP does not provide built-in 
support for managing multiple subflows within one DCCP connection.</t>
      <t indent="0" pn="section-2-2">The extension of DCCP for Multipath-DCCP (MP-DCCP) is 
described in detail in <xref target="protocol" format="default" sectionFormat="of" derivedContent="Section 3"/>.</t>
      <t indent="0" pn="section-2-3">At a high level of the MP-DCCP operation, the data 
stream from a DCCP application is split 
by MP-DCCP operation into one or more subflows which can be 
transmitted via different - also physically isolated - paths.
The corresponding control information allows the receiver to optionally 
re-assemble and deliver the received data in the originally transmitted order to the 
recipient application. This may be necessary because DCCP does not guarantee in-order delivery.
The details of the transmission scheduling mechanism and 
optional reordering mechanism are up to the sender and receiver, respectively,
and are outside the scope of this document.</t>
      <t indent="0" pn="section-2-4">A Multipath DCCP connection provides a bidirectional connection of datagrams 
between two hosts exchanging data using DCCP. It does not require 
any change to the applications. Multipath DCCP enables the 
hosts to use multiple paths with different IP addresses to transport 
the packets of an MP-DCCP connection. MP-DCCP manages the request, 
set-up, authentication, prioritization, modification, and removal of
the DCCP subflows on different paths as well as the exchange of performance 
parameters.<br/>
The number of DCCP subflows can vary during the 
lifetime of a Multipath DCCP connection. The details of the path management decisions for
when to add or remove subflows are outside the scope of this document.</t>
      <t indent="0" pn="section-2-5">The Multipath Capability for MP-DCCP is negotiated with a new DCCP 
feature, as specified in <xref target="mp_capable" format="default" sectionFormat="of" derivedContent="Section 3.1"/>. Once 
negotiated, all subsequent MP-DCCP operations for that connection are signalled with a 
variable length multipath-related option, as described in <xref target="protocol" format="default" sectionFormat="of" derivedContent="Section 3"/>.
All MP-DCCP operations are signaled by Multipath options described in <xref target="MP_OPT" format="default" sectionFormat="of" derivedContent="Section 3.2"/>. Options that 
require confirmation from the remote peer are retransmitted by the sender until confirmed or until 
confirmation is no longer considered relevant.</t>
      <t indent="0" pn="section-2-6">The following sections define MP-DCCP behavior in detail.</t>
      <section anchor="concept" numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-mp-dccp-concept">MP-DCCP Concept</name>
        <t indent="0" pn="section-2.1-1"><xref target="ref-example-mp-dccp-usage-scenario" format="default" sectionFormat="of" derivedContent="Figure 2"/> provides a general overview of the MP-DCCP working mode, whose main 
characteristics are summarized in this section.</t>
        <figure anchor="ref-example-mp-dccp-usage-scenario" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-example-mp-dccp-usage-scena">Example MP-DCCP usage scenario</name>
          <artwork align="left" pn="section-2.1-2.1"><![CDATA[
           Host A                               Host B
------------------------             ------------------------
Address A1    Address A2             Address B1    Address B2
----------    ----------             ----------    ----------
  |             |                      |             |
  |         (DCCP subflow setup)       |             |
  |----------------------------------->|             |
  |<-----------------------------------|             |
  |             |                      |             |
  |             |  (DCCP subflow setup)|             |
  |             |--------------------->|             |
  |             |<---------------------|             |
  | merge individual DCCP subflows to one MP-DCCP connection
  |             |                      |             |
]]></artwork>
        </figure>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-2.1-3">
          <li pn="section-2.1-3.1">
            <t indent="0" pn="section-2.1-3.1.1">An MP-DCCP connection begins with a 4-way handshake, between 
two hosts. In <xref target="ref-example-mp-dccp-usage-scenario" format="default" sectionFormat="of" derivedContent="Figure 2"/>,
an MP-DCCP connection is established between addresses A1 and B1 on Hosts
A and B, respectively. In the handshake, a Multipath Capable feature is used to negotiate multipath support for the connection. Host specific keys are also exchanged between Host A and Host B during the handshake. The details of the MP-DCCP handshaking procedure is described in <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/>. MP-DCCP does not require both peers to have 
more than one address.</t>
          </li>
          <li pn="section-2.1-3.2">
            <t indent="0" pn="section-2.1-3.2.1">When additional paths and corresponding addresses/ports are available, additional DCCP subflows can be created on 
these paths and attached to the existing MP-DCCP connection. An MP_JOIN option is used to connect a new DCCP subflow to an existing MP-DCCP connection. It contains a Connection Identifier during the setup of the initial subflow and is exchanged in the 4-way handshake for the subflow together with the Multipath Capable feature. The example in <xref target="ref-example-mp-dccp-usage-scenario" format="default" sectionFormat="of" derivedContent="Figure 2"/> illustrates creation of an additional DCCP subflow between Address A2 on Host A and Address B1 on Host B. The two subflows
continues to provide a single connection to the applications at both
endpoints.</t>
          </li>
          <li pn="section-2.1-3.3">
            <t indent="0" pn="section-2.1-3.3.1">MP-DCCP identifies multiple paths by the presence of multiple
addresses/ports at hosts.  Combinations of these multiple addresses/ports
indicate the additional paths.  In the example, other potential
paths that could be set up are A1&lt;-&gt;B2 and A2&lt;-&gt;B2.  Although the
additional subflow in the example is shown as being initiated from A2, an additional subflow could
alternatively have been initiated from B1 or B2.</t>
          </li>
          <li pn="section-2.1-3.4">
            <t indent="0" pn="section-2.1-3.4.1">The discovery and setup of additional subflows is achieved
through a path management method including the logic and details of the procedures for adding/removing subflows;
this document describes measures to allow a host to initiate new subflows and signal available addresses 
between peers. The definition of a path management method is, however, out of scope of this document and subject to a 
corresponding policy and the specifics of the implementation. If a MP-DCCP peer host limits  the maximum number of paths that can be maintained (e.g., similar to what is discussed in Section 3.4 of <xref target="RFC8041" format="default" sectionFormat="of" derivedContent="RFC8041"/>, the creation of new subflows from that peer host needs to be avoided and incoming subflow requests terminated.</t>
          </li>
          <li pn="section-2.1-3.5">
            <t indent="0" pn="section-2.1-3.5.1">Through the use of multipath options, MP-DCCP adds connection-level sequence numbers and exchange of
Round-Trip Time (RTT) information to enable optional reordering features. As a hint for scheduling decisions, a multipath option that allows a peer to indicate its priorities for what path to use is also defined.</t>
          </li>
          <li pn="section-2.1-3.6">
            <t indent="0" pn="section-2.1-3.6.1">Subflows are terminated in the same way as regular DCCP connections, as described
in (<xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>, Section 8.3). MP-DCCP connections are closed by including an MP_CLOSE option in subflow DCCP-CloseReq or DCCP-Close messages. An MP-DCCP connection may also be reset through the use of an MP_FAST_CLOSE option. Key data from the initial handshake is included in the MP_CLOSE and MP_FAST_CLOSE to protect from unauthorized shutdown of MP-DCCP connections.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="protocol" numbered="true" removeInRFC="false" toc="include" pn="section-3">
      <name slugifiedName="name-mp-dccp-protocol">MP-DCCP Protocol</name>
      <t indent="0" pn="section-3-1">The DCCP protocol feature list (<xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>, Section 6.4) is
updated by adding  a new Multipath feature with Feature number 10, as
shown in <xref target="ref-feature-list" format="default" sectionFormat="of" derivedContent="Table 1"/>.</t>
      <table anchor="ref-feature-list" align="center" pn="table-1">
        <name slugifiedName="name-multipath-feature">Multipath feature</name>
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1">Number</th>
            <th align="left" colspan="1" rowspan="1">Meaning</th>
            <th align="center" colspan="1" rowspan="1">Rec'n Rule</th>
            <th align="center" colspan="1" rowspan="1">Initial Value</th>
            <th align="center" colspan="1" rowspan="1">Req'd</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">10</td>
            <td align="left" colspan="1" rowspan="1">Multipath Capable</td>
            <td align="center" colspan="1" rowspan="1">SP</td>
            <td align="center" colspan="1" rowspan="1">0</td>
            <td align="center" colspan="1" rowspan="1">N</td>
          </tr>
        </tbody>
      </table>
      <dl indent="3" newline="false" spacing="normal" pn="section-3-3">
        <dt pn="section-3-3.1">Rec'n Rule:</dt>
        <dd pn="section-3-3.2">
          <t indent="0" pn="section-3-3.2.1">The reconciliation rule used for the feature. SP indicates the server-priority.</t>
        </dd>
        <dt pn="section-3-3.3">Initial Value:</dt>
        <dd pn="section-3-3.4">
          <t indent="0" pn="section-3-3.4.1">The initial value for the feature. Every feature has a known initial value.</t>
        </dd>
        <dt pn="section-3-3.5">Req'd:</dt>
        <dd pn="section-3-3.6">
          <t indent="0" pn="section-3-3.6.1">This column is "Y" if and only if every DCCP implementation MUST
understand the feature. If it is "N", then the feature behaves like an extension, and it is safe to respond to Change options for the feature
with empty Confirm options.</t>
        </dd>
      </dl>
      <t indent="0" pn="section-3-4">This specification adds a DCCP protocol option as defined in (<xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>, Section 5.8) providing
a new Multipath related variable-length option with option type 46, as
shown in <xref target="ref-option-list" format="default" sectionFormat="of" derivedContent="Table 2"/>.</t>
      <table anchor="ref-option-list" align="center" pn="table-2">
        <name slugifiedName="name-multipath-option-set">Multipath option set</name>
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1">Type</th>
            <th align="center" colspan="1" rowspan="1">Option Length</th>
            <th align="center" colspan="1" rowspan="1">Meaning</th>
            <th align="center" colspan="1" rowspan="1">DCCP-Data?</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">46</td>
            <td align="center" colspan="1" rowspan="1">variable</td>
            <td align="center" colspan="1" rowspan="1">Multipath</td>
            <td align="center" colspan="1" rowspan="1">Y</td>
          </tr>
        </tbody>
      </table>
      <section anchor="mp_capable" numbered="true" removeInRFC="false" toc="include" pn="section-3.1">
        <name slugifiedName="name-multipath-capable-feature">Multipath Capable Feature</name>
        <t indent="0" pn="section-3.1-1">A DCCP endpoint negotiates the Multipath Capable Feature to determine whether multipath extensions can be enabled for a DCCP connection.</t>
        <t indent="0" pn="section-3.1-2">The Multipath Capable feature (MP_CAPABLE) has feature number 10 and follows the structure for features given in <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> Section 6. Beside the negotiation of the feature itself, also one or several values can be exchanged. The value field specified here for the Multipath Capable feature has a length of one-byte and can be repeated several times within the DCCP option for feature negotiation if required for example to announce support of different versions of the protocol. For that, the leftmost four bits in <xref target="ref-mp-capable-format" format="default" sectionFormat="of" derivedContent="Figure 3"/> specify the compatible version of the
MP-DCCP implementation and MUST be set to 0 following this specification. The four bits following the Version field are unassigned in version 0 and MUST be set to zero by the sender and MUST be ignored by the receiver.</t>
        <figure anchor="ref-mp-capable-format" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-format-of-the-multipath-cap">Format of the Multipath Capable feature value field</name>
          <artwork align="left" pn="section-3.1-3.1"><![CDATA[
    0  1  2  3   4  5  6  7
   +-----------+------------+
   |  Version  | Unassigned |
   +-----------+------------+
]]></artwork>
        </figure>
        <t indent="0" pn="section-3.1-4">The setting of the MP_CAPABLE feature MUST follow the server-priority reconciliation rule described
in (<xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>, Section 6.3.1). This allows multiple versions to be
specified in order of priority.</t>
        <t indent="0" pn="section-3.1-5">The negotiation MUST be a part of the initial handshake procedure
 described in <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/>. No subsequent re-negotiation of
the MP_CAPABLE feature is allowed for the same MP-DCCP connection.</t>
        <t indent="0" pn="section-3.1-6">Clients MUST include a Change R option during the initial handshake request to
supply a list of supported MP-DCCP protocol versions, ordered by preference.</t>
        <t indent="0" pn="section-3.1-7">Servers MUST include a Confirm L option in the subsequent response to agree on
an MP-DCCP version to be used from the Client list, followed by its own
supported version(s), ordered by preference. Any subflow added to an existing MP-DCCP connection MUST use the
version negotiated for the first subflow.</t>
        <t indent="0" pn="section-3.1-8">If no agreement is found, the Server MUST reply with an empty Confirm L option
with feature number 10 and no values.</t>
        <t indent="0" pn="section-3.1-9">An example of successful version negotiation is shown hereafter and follows the negotiation example shown in <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> Section 6.5. For better understanding, this example uses the unspecified MP-DCCP versions 1 and 2 in addition to the MP-DCCP version 0 specified in this document:</t>
        <figure anchor="ref-mp-capable-example" align="left" suppress-title="false" pn="figure-4">
          <name slugifiedName="name-example-of-mp-dccp-support-">Example of MP-DCCP support negotiation using MP_CAPABLE</name>
          <artwork align="left" pn="section-3.1-10.1"><![CDATA[
      Client                                             Server
      ------                                             ------
      DCCP-Req + Change R(MP_CAPABLE, 1 0)
                     ----------------------------------->

                      DCCP-Resp + Confirm L(MP_CAPABLE, 1, 2 1 0)
            <-----------------------------------

                 * agreement on version = 1 *
]]></artwork>
        </figure>
        <ol spacing="normal" type="1" indent="adaptive" start="1" pn="section-3.1-11"><li pn="section-3.1-11.1" derivedCounter="1.">
            <t indent="0" pn="section-3.1-11.1.1">The Client indicates support for both MP-DCCP versions 1 and 0, with a preference
for version 1.</t>
          </li>
          <li pn="section-3.1-11.2" derivedCounter="2.">
            <t indent="0" pn="section-3.1-11.2.1">Server agrees on using MP-DCCP version 1 indicated by the first value, and supplies its own preference list with the following values.</t>
          </li>
          <li pn="section-3.1-11.3" derivedCounter="3.">
            <t indent="0" pn="section-3.1-11.3.1">MP-DCCP is then enabled between the Client and Server with version 1.</t>
          </li>
        </ol>
        <t indent="0" pn="section-3.1-12">Unlike the example in <xref target="ref-mp-capable-example" format="default" sectionFormat="of" derivedContent="Figure 4"/>, this document only allows the negotiation of MP-DCCP version 0, which means that client and server must support it.</t>
        <t indent="0" pn="section-3.1-13">If the version negotiation fails or the MP_CAPABLE feature is not present in the DCCP-Request or DCCP-Response packets of the initial handshake procedure, the MP-DCCP connection SHOULD fallback to regular DCCP or MUST close the connection. Further details are specified in <xref target="fallback" format="default" sectionFormat="of" derivedContent="Section 3.6"/></t>
      </section>
      <section anchor="MP_OPT" numbered="true" removeInRFC="false" toc="include" pn="section-3.2">
        <name slugifiedName="name-multipath-option">Multipath Option</name>
        <t indent="0" pn="section-3.2-1">MP-DCCP uses one single option to signal various multipath-related operations. The format of this multipath option is shown in <xref target="ref-mp-option-format" format="default" sectionFormat="of" derivedContent="Figure 5"/>.</t>
        <figure anchor="ref-mp-option-format" align="left" suppress-title="false" pn="figure-5">
          <name slugifiedName="name-multipath-option-format">Multipath option format</name>
          <artwork align="left" pn="section-3.2-2.1"><![CDATA[
            1          2          3         
 01234567 89012345 67890123 45678901 23456789
+--------+--------+--------+--------+--------+
|00101110| Length | MP_OPT | Value(s) ...
+--------+--------+--------+--------+--------+
 Type=46
]]></artwork>
        </figure>
        <t indent="0" pn="section-3.2-3">The fields used by the the multipath option are described in <xref target="ref-mp-option-list" format="default" sectionFormat="of" derivedContent="Table 3"/>. MP_OPT refers to an Multipath option.</t>
        <table anchor="ref-mp-option-list" align="center" pn="table-3">
          <name slugifiedName="name-mp_opt-option-types">MP_OPT option types</name>
          <thead>
            <tr>
              <th align="left" colspan="1" rowspan="1">Type</th>
              <th align="left" colspan="1" rowspan="1">Option Length</th>
              <th align="left" colspan="1" rowspan="1">MP_OPT</th>
              <th align="left" colspan="1" rowspan="1">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">var</td>
              <td align="left" colspan="1" rowspan="1">0 =MP_CONFIRM</td>
              <td align="left" colspan="1" rowspan="1">Confirm reception and processing of an MP_OPT option</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">12</td>
              <td align="left" colspan="1" rowspan="1">1 =MP_JOIN</td>
              <td align="left" colspan="1" rowspan="1">Join path to an existing MP-DCCP connection</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">var</td>
              <td align="left" colspan="1" rowspan="1">2 =MP_FAST_CLOSE</td>
              <td align="left" colspan="1" rowspan="1">Close an MP-DCCP connection unconditionally</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">var</td>
              <td align="left" colspan="1" rowspan="1">3 =MP_KEY</td>
              <td align="left" colspan="1" rowspan="1">Exchange key material for MP_HMAC</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">9</td>
              <td align="left" colspan="1" rowspan="1">4 =MP_SEQ</td>
              <td align="left" colspan="1" rowspan="1">Multipath Sequence Number</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">23</td>
              <td align="left" colspan="1" rowspan="1">5 =MP_HMAC</td>
              <td align="left" colspan="1" rowspan="1">HMA Code for authentication</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">12</td>
              <td align="left" colspan="1" rowspan="1">6 =MP_RTT</td>
              <td align="left" colspan="1" rowspan="1">Transmit RTT values</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">var</td>
              <td align="left" colspan="1" rowspan="1">7 =MP_ADDADDR</td>
              <td align="left" colspan="1" rowspan="1">Advertise additional Address</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">8 =MP_REMOVEADDR</td>
              <td align="left" colspan="1" rowspan="1">Remove Address</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">4</td>
              <td align="left" colspan="1" rowspan="1">9 =MP_PRIO</td>
              <td align="left" colspan="1" rowspan="1">Change subflow Priority</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">var</td>
              <td align="left" colspan="1" rowspan="1">10 =MP_CLOSE</td>
              <td align="left" colspan="1" rowspan="1">Close an MP-DCCP subflow</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">var</td>
              <td align="left" colspan="1" rowspan="1">11 =MP_EXP</td>
              <td align="left" colspan="1" rowspan="1">Experimental for private use</td>
            </tr>
            <tr>
              <td align="left" colspan="1" rowspan="1">46</td>
              <td align="left" colspan="1" rowspan="1">TBD</td>
              <td align="left" colspan="1" rowspan="1">&gt;11</td>
              <td align="left" colspan="1" rowspan="1">Reserved for future MP options.</td>
            </tr>
          </tbody>
        </table>
        <t indent="0" pn="section-3.2-5">Future MP options could be defined in a later version or extension to this specification.</t>
        <t indent="0" pn="section-3.2-6">These operations are largely inspired by the signals defined in <xref target="RFC8684" format="default" sectionFormat="of" derivedContent="RFC8684"/>.</t>
        <section anchor="MP_CONFIRM" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.1">
          <name slugifiedName="name-mp_confirm">MP_CONFIRM</name>
          <figure anchor="ref-mp-confirm-format" align="left" suppress-title="false" pn="figure-6">
            <name slugifiedName="name-format-of-the-mp_confirm-op">Format of the MP_CONFIRM option</name>
            <artwork align="left" pn="section-3.2.1-1.1"><![CDATA[
              1          2          3           4          5
   01234567 89012345 67890123 45678901 23456789 01234567 89012345
  +--------+--------+--------+--------+--------+--------+--------+
  |00101110|  var   |00000000| List of confirmations ...
  +--------+--------+--------+--------+--------+--------+--------+
   Type=46   Length  MP_OPT=0
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.1-2">Some multipath options require confirmation from the remote peer (see <xref target="ref-mp-option-confirm" format="default" sectionFormat="of" derivedContent="Table 4"/>). Such options will be retransmitted by the sender 
until an MP_CONFIRM is received or confirmation of options is identified outdated. The further processing of the multipath options in the
receiving host is not the subject of MP_CONFIRM.</t>
          <t indent="0" pn="section-3.2.1-3">Multipath options could arrive out-of-order, therefore multipath options defined in <xref target="ref-mp-option-confirm" format="default" sectionFormat="of" derivedContent="Table 4"/>
MUST be sent in a DCCP datagram with MP_SEQ <xref target="MP_SEQ" format="default" sectionFormat="of" derivedContent="Section 3.2.5"/>. This allows a receiver to identify whether
multipath options are associated with obsolete datasets (information carried in the option header) that would otherwise conflict with newer datasets. In the case of MP_ADDADDR or MP_REMOVEADDR the same dataset is identified based on AddressID, whereas the same dataset for MP_PRIO is identified by the subflow in use. An outdated
multipath option is detected at the receiver if a previous multipath option referring to the same dataset contained a higher sequence number
in the MP_SEQ. An MP_CONFIRM MAY be generated for multipath options that are identified as outdated.</t>
          <t indent="0" pn="section-3.2.1-4">Similarly an MP_CONFIRM could arrive out of order. The associated
MP_SEQ received MUST be echoed to ensure that the most recent multipath option is confirmed. This protects from inconsistencies that could occur, e.g. if three MP_PRIO options are sent one after
the other on one path in order to first set the path priority to 0, then to 1 and finally to 0 again. Without an associated
MP_SEQ, a loss of the third MP_PRIO option and a loss of the MP_CONFIRM of the second update and the third update would
cause the sender to incorrectly interpret that the priority value was set to 0 without recognizing that the receiver has applied
priority value 1.</t>
          <t indent="0" pn="section-3.2.1-5">The length of the MP_CONFIRM option and the path over which the option is sent depend on the confirmed multipath options and the received
MP_SEQ, which are both copied verbatim and appended as a list of confirmations. The list is structured by first listing the received
MP_SEQ followed by the related multipath option or options to confirm. The same rules apply when multipath options with different MP_SEQs are confirmed at
once. This could happen if a datagram with MP_PRIO and a first MP_SEQ_1 and another datagram with MP_ADDADDR and a second MP_SEQ_2 are
received in short succession. In this case, the structure described above is concatenated resulting in MP_SEQ_2 + MP_ADDADDR + MP_SEQ_1 + MP_PRIO.
The order of the confirmed multipath options in the list of confirmations MUST reflect the incoming order at the host who sends the MP_CONFIRM, with the most
recent suboption received listed first. This could allow the host receiving the MP_CONFIRM to verify that the options were applied in the correct order
and to take countermeasures if they were not, e.g., if an MP_REMOVEADDR overtakes an MP_ADDADDR that refers to the same dataset.</t>
          <table anchor="ref-mp-option-confirm" align="center" pn="table-4">
            <name slugifiedName="name-multipath-options-requiring">Multipath options requiring confirmation</name>
            <thead>
              <tr>
                <th align="left" colspan="1" rowspan="1">Type</th>
                <th align="left" colspan="1" rowspan="1">Option Length</th>
                <th align="left" colspan="1" rowspan="1">MP_OPT</th>
                <th align="left" colspan="1" rowspan="1">MP_CONFIRM Sending path</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" colspan="1" rowspan="1">46</td>
                <td align="left" colspan="1" rowspan="1">var</td>
                <td align="left" colspan="1" rowspan="1">7 =MP_ADDADDR</td>
                <td align="left" colspan="1" rowspan="1">Any available</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">46</td>
                <td align="left" colspan="1" rowspan="1">4</td>
                <td align="left" colspan="1" rowspan="1">8 =MP_REMOVEADDR</td>
                <td align="left" colspan="1" rowspan="1">Any available</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">46</td>
                <td align="left" colspan="1" rowspan="1">4</td>
                <td align="left" colspan="1" rowspan="1">9 =MP_PRIO</td>
                <td align="left" colspan="1" rowspan="1">Any available</td>
              </tr>
            </tbody>
          </table>
          <t indent="0" pn="section-3.2.1-7">An example to illustrate the MP-DCCP confirm procedure for the MP_PRIO option is shown in <xref target="ref-mp-dccp-confirm-good" format="default" sectionFormat="of" derivedContent="Figure 7"/>. The host A sends a 
DCCP-Request on path A2-B2 with an MP_PRIO option with value 1 and associated sequence number of 1. Host B replies on the same path in 
this instance (any path can be used) with a DCCP-Response containing the MP_CONFIRM option and a list containing the original sequence number (1)
together with the associated option (MP_PRIO).</t>
          <figure anchor="ref-mp-dccp-confirm-good" align="left" suppress-title="false" pn="figure-7">
            <name slugifiedName="name-example-mp-dccp-confirm-pro">Example MP-DCCP CONFIRM procedure</name>
            <artwork align="left" pn="section-3.2.1-8.1"><![CDATA[
          Host A                                     Host B 
------------------------                     ------------------------
Address A1    Address A2                     Address B1    Address B2
----------    ----------                     ----------    ----------
     |             |                                   |       |
     |             | DCCP-Request(seqno 1) + MP_PRIO(1)|       |
     |             |------------------------------------------>|
     |             |                                   |       |
     |             | DCCP-Response +                   |       |
     |             |<---- MP_CONFIRM(seqno 1, MP_PRIO) --------|
     |             |                                   |       |
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.1-9">A second example to illustrate the same MP-DCCP confirm procedure but where an out of date option is also delivered is shown in (<xref target="ref-mp-dccp-confirm-outdated" format="default" sectionFormat="of" derivedContent="Figure 8"/>.
Here, the first DCCP-Data is sent from Host A to Host B with option MP_PRIO set to 4. Host A subsequently sends the second DCCP-Data with option MP_PRIO
set to 1. In this case, the delivery of the first MP_PRIO is delayed in the network between Host A and Host B and arrives after the second MP_PRIO. Host B
ignores this second MP_PRIO as the associated sequence number is earlier than the first. Host B sends a DCCP-Ack confirming receipt of the MP_PRIO(1) with sequence number 2.</t>
          <figure anchor="ref-mp-dccp-confirm-outdated" align="left" suppress-title="false" pn="figure-8">
            <name slugifiedName="name-example-mp-dccp-confirm-proc">Example MP-DCCP CONFIRM procedure with outdated suboption</name>
            <artwork align="left" pn="section-3.2.1-10.1"><![CDATA[
          Host A                                     Host B 
------------------------                     ------------------------
Address A1    Address A2                     Address B1    Address B2
----------    ----------                     ----------    ----------
     |             |                                   |       |
     |             | DCCP-Data(seqno 1) +  MP_PRIO(4)  |       |
     |             |------------                       |       |
     |             |            \                      |       |
     |             | DCCP-Data(seqno 2) +  MP_PRIO(1)  |       |
     |             |--------------\--------------------------->|
     |             |               \                   |       |
     |             |                -------------------------->|
     |             |                                   |       |
     |             | DCCP-Ack +                        |       |
     |             |<---- MP_CONFIRM(seqno 2, MP_PRIO) --------|
     |             |                                   |       |
]]></artwork>
          </figure>
        </section>
        <section anchor="MP_JOIN" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.2">
          <name slugifiedName="name-mp_join">MP_JOIN</name>
          <figure anchor="ref-MP_JOIN" align="left" suppress-title="false" pn="figure-9">
            <name slugifiedName="name-format-of-the-mp_join-subop">Format of the MP_JOIN suboption</name>
            <artwork align="left" pn="section-3.2.2-1.1"><![CDATA[
              1          2          3
   01234567 89012345 67890123 45678901
  +--------+--------+--------+--------+
  |00101110|00001100|00000001| Addr ID|
  +--------+--------+--------+--------+
  | Connection Identifier            |
  +--------+--------+--------+--------+
  | Nonce                             |
  +--------+--------+--------+--------+
   Type=46  Length=12 MP_OPT=1
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.2-2">The MP_JOIN option is used to add a new subflow to an existing MP-DCCP
connection and REQUIRES a successful establishment of the first subflow using MP_KEY.
The Connection Identifier (CI) is the one from the peer host,
which was previously exchanged with the MP_KEY option.
MP_HMAC MUST be set when using MP_JOIN within a DCCP-Response packet (See
<xref target="MP_HMAC" format="default" sectionFormat="of" derivedContent="Section 3.2.6"/> for details).</t>
          <t indent="0" pn="section-3.2.2-3">The MP_JOIN option includes an "Addr ID" (Address ID) generated by the sender of the option, used to identify the source
address of this packet, even if the IP header was changed in
transit by a middlebox.  The value of this field is generated
by the sender and MUST map uniquely to a source IP address for the
sending host.  The Address ID allows address removal (<xref target="MP_REMOVEADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.9"/>)
without needing to know what the source address at the receiver is,
thus allowing address removal through NATs.  The Address ID also
allows correlation between new subflow setup attempts and address
signaling (<xref target="MP_ADDADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.8"/>), to prevent setting up duplicate subflows
on the same path, if an MP_JOIN and MP_ADDADDR are sent at the same
time.</t>
          <t indent="0" pn="section-3.2.2-4">The Address IDs of the subflow used in the initial DCCP Request/Response exchange of
the first subflow in the connection are implicit, and have the value
zero.  A host MUST store the mappings between Address IDs and
addresses both for itself and the remote host.  An implementation
will also need to know which local and remote Address IDs are
associated with which established subflows, for when addresses are
removed from a local or remote host. An Address ID always MUST be unique
over the lifetime of a subflow and can only be re-assigned if sender and
receiver no longer have them in use.</t>
          <t indent="0" pn="section-3.2.2-5">The Nonce is a 32-bit random value locally generated for every MP_JOIN option.
Together with the CI, the Nonce value builds the basis to calculate the
HMAC used in the handshaking process as described in <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/>.</t>
          <t indent="0" pn="section-3.2.2-6">If the CI cannot be verified by the receiving host during a handshake negotiation, 
the new subflow MUST be closed, as specified in <xref target="fallback" format="default" sectionFormat="of" derivedContent="Section 3.6"/>.</t>
        </section>
        <section anchor="MP_FAST_CLOSE" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.3">
          <name slugifiedName="name-mp_fast_close">MP_FAST_CLOSE</name>
          <t indent="0" pn="section-3.2.3-1">DCCP can send a Close or Reset signal to abruptly close a
connection.  Using MP-DCCP, a regular Close or Reset only has the scope of the
subflow over which a signal was received. 
As such, it will only close the subflow and does not
affect other remaining subflows or the MP-DCCP connection (unless it is the last
subflow).
This permits break-before-make handover between
subflows.</t>
          <t indent="0" pn="section-3.2.3-2">In order to provide an MP-DCCP-level
"reset" and thus allow the abrupt closure of the MP-DCCP connection, the MP_FAST_CLOSE suboption can be used.</t>
          <figure anchor="ref-MP_FAST_CLOSE" align="left" suppress-title="false" pn="figure-10">
            <name slugifiedName="name-format-of-the-mp_fast_close">Format of the MP_FAST_CLOSE suboption</name>
            <artwork align="left" pn="section-3.2.3-3.1"><![CDATA[
              1          2          3
   01234567 89012345 67890123 45678901 23456789
  +--------+--------+--------+--------+--------+
  |00101110|  var   |00000010| Key Data ...
  +--------+--------+--------+--------+--------+
   Type=46   Length  MP_OPT=2
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.3-4">When host A wants to abruptly close an MP-DCCP connection with host B, it will send out the MP_FAST_CLOSE. The MP_FAST_CLOSE suboption MUST be sent from host A on all subflows 
using a DCCP-Reset packet with Reset Code 13. The requirement to send the MP_FAST_CLOSE on all subflows increases the probability that host B will receive the MP_FAST_CLOSE to take the same action. To protect from unauthorized shutdown of a MP-DCCP connection, 
the selected Key Data of the peer host during the handshaking procedure 
is carried by the MP_FAST_CLOSE option.</t>
          <t indent="0" pn="section-3.2.3-5">After sending the MP_FAST_CLOSE on all subflows, host A will tear down all subflows 
and the multipath DCCP connection immediately terminates.</t>
          <t indent="0" pn="section-3.2.3-6">Upon reception of the first MP_FAST_CLOSE with successfully validated 
Key Data, host B will send a DCCP Reset packet response on all subflows to 
host A with Reset Code 13 to clean potential middlebox states. 
Host B will then tear down all subflows and terminate the MP-DCCP connection.</t>
        </section>
        <section anchor="MP_KEY" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.4">
          <name slugifiedName="name-mp_key">MP_KEY</name>
          <figure anchor="ref-MP_KEY" align="left" suppress-title="false" pn="figure-11">
            <name slugifiedName="name-format-of-the-mp_key-subopt">Format of the MP_KEY suboption</name>
            <artwork align="left" pn="section-3.2.4-1.1"><![CDATA[
                       1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +---------------+---------------+---------------+---------------+
  |0 0 1 0 1 1 1 0|      var      |0 0 0 0 0 0 1 1|     resvd     | 
  +---------------+---------------+---------------+---------------+
  |                     Connection Identifier                     |
  +---------------+---------------+---------------+---------------+
  |  Key Type (1) |  Key Data (1) |  Key Type (2) |  Key Data (2) |
  +---------------+---------------+---------------+---------------+
  |  Key Type (3) | ...
  +---------------+---------------+
      Type=46          Length         MP_OPT=3
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.4-2">The MP_KEY suboption is used to exchange a Connection Identifier (CI) and key material between
hosts for a given connection.
The CI is a unique number that is configured per host during the initial exchange of a connection with MP_KEY and is necessary to connect other DCCP subflows to an MP-DCCP connection with MP_JOIN (<xref target="MP_JOIN" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/>). Its size of 32-bits also defines the maximum number of simultaneous MP-DCCP connections in a host to 2^32.
According to the Key related elements of the MP_KEY suboption, the Length varies between 17 and 73 Bytes for a single-key message, and up to
115 Bytes when all specified Key Types 0-2 are provided. The Key Type field 
specifies the type of the following key data. 
The set of key types are shown in <xref target="ref-key-type-list" format="default" sectionFormat="of" derivedContent="Table 5"/>.</t>
          <table anchor="ref-key-type-list" align="center" pn="table-5">
            <name slugifiedName="name-mp_key-key-types">MP_KEY key types</name>
            <thead>
              <tr>
                <th align="left" colspan="1" rowspan="1">Key  Type</th>
                <th align="left" colspan="1" rowspan="1">Key Length (Bytes)</th>
                <th align="left" colspan="1" rowspan="1">Meaning</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left" colspan="1" rowspan="1">0 =Plain Text</td>
                <td align="left" colspan="1" rowspan="1">8</td>
                <td align="left" colspan="1" rowspan="1">Plain Text Key</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">1 =ECDHE-C25519-SHA256</td>
                <td align="left" colspan="1" rowspan="1">32</td>
                <td align="left" colspan="1" rowspan="1">ECDHE with SHA256 and Curve25519</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">2 =ECDHE-C25519-SHA512</td>
                <td align="left" colspan="1" rowspan="1">64</td>
                <td align="left" colspan="1" rowspan="1">ECDHE with SHA512 and Curve25519</td>
              </tr>
              <tr>
                <td align="left" colspan="1" rowspan="1">3-255</td>
                <td align="left" colspan="1" rowspan="1"> </td>
                <td align="left" colspan="1" rowspan="1">Unassigned</td>
              </tr>
            </tbody>
          </table>
          <dl newline="true" indent="3" spacing="normal" pn="section-3.2.4-4">
            <dt pn="section-3.2.4-4.1">Plain Text</dt>
            <dd pn="section-3.2.4-4.2">
              <t indent="0" pn="section-3.2.4-4.2.1">Key Material is exchanged in plain text between hosts, and the key
parts (key-a, key-b) are used by each host to generate the derived
key (d-key) by concatenating the two parts with the local key
in front (e.g. hostA d-key(A)=(key-a+key-b), hostB d-key(B)=(key-b+key-a)).</t>
            </dd>
          </dl>
          <dl newline="true" indent="3" spacing="normal" pn="section-3.2.4-5">
            <dt pn="section-3.2.4-5.1">ECDHE-SHA256-C25519</dt>
            <dd pn="section-3.2.4-5.2">
              <t indent="0" pn="section-3.2.4-5.2.1">Public Key Material is exchanged via ECDHE key exchange with SHA256 and
Curve 25519 to generate the derived key (d-key) from the shared secret.
The full potential of ECDHE use is realized when it is combined with peer
authentication technologies to protect against men-in-the-middle attacks. This can
be achieved, for example, with separate use and verification of certificates
issued by a certificate authority.</t>
            </dd>
          </dl>
          <dl newline="true" indent="3" spacing="normal" pn="section-3.2.4-6">
            <dt pn="section-3.2.4-6.1">ECDHE-SHA512-C25519</dt>
            <dd pn="section-3.2.4-6.2">
              <t indent="0" pn="section-3.2.4-6.2.1">Public Key Material is exchanged via ECDHE key exchange with SHA512 and
Curve 25519 to generate the derived key (d-key) from the shared secret.</t>
            </dd>
          </dl>
          <t indent="0" pn="section-3.2.4-7">Multiple keys are only permitted in the DCCP-Request message
of the handshake procedure for the first subflow. This allows the hosts to agree
on a single key type to be used, as described in <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/></t>
          <t indent="0" pn="section-3.2.4-8">It is possible that not all hosts will have all key types. If the key type cannot be agreed in the 
handshake procedure, the MP-DCCP connection MUST fall back to not using MP-DCCP, as 
indicated in <xref target="fallback" format="default" sectionFormat="of" derivedContent="Section 3.6"/>.</t>
        </section>
        <section anchor="MP_SEQ" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.5">
          <name slugifiedName="name-mp_seq">MP_SEQ</name>
          <figure anchor="ref-MP_SEQ" align="left" suppress-title="false" pn="figure-12">
            <name slugifiedName="name-format-of-the-mp_seq-subopt">Format of the MP_SEQ suboption</name>
            <artwork align="left" pn="section-3.2.5-1.1"><![CDATA[
              1          2          3           4          5
   01234567 89012345 67890123 45678901 23456789 01234567 89012345
  +--------+--------+--------+--------+--------+--------+--------+
  |00101110|00001001|00000100| Multipath Sequence Number         
  +--------+--------+--------+--------+--------+--------+--------+
                    |
  +--------+--------+
   Type=46  Length=9 MP_OPT=4
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.5-2">The MP_SEQ suboption is used for end-to-end 48-bit datagram-based sequence
numbers of an MP-DCCP connection. The initial data sequence
number (IDSN) SHOULD be set randomly <xref target="RFC4086" format="default" sectionFormat="of" derivedContent="RFC4086"/>.</t>
          <t indent="0" pn="section-3.2.5-3">The MP_SEQ number space is
independent from the path individual sequence number space and MUST be
sent with all DCCP-Data and DCCP-DataACK packets.</t>
          <t indent="0" pn="section-3.2.5-4">When the sequence number space is exhausted, the sequence number MUST
be wrapped. <xref target="RFC7323" format="default" sectionFormat="of" derivedContent="RFC7323"/> provides guidance on selecting an appropriately
sized sequence number space according to the maximum segment lifetime of
TCP. 64 bits is the recommended size for TCP to avoid the sequence number
space going through within the segment lifetime. For DCCP, the Maximum
Segment Lifetime is the same as that of TCP as specified in <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>,
Section 3.4. Compared to TCP, the sequence number for DCCP is incremented
per packet rather than per byte transmitted. For this reason, the 48 bits
chosen in MP_SEQ are considered sufficiently large.</t>
        </section>
        <section anchor="MP_HMAC" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.6">
          <name slugifiedName="name-mp_hmac">MP_HMAC</name>
          <figure anchor="ref-MP_HMAC" align="left" suppress-title="false" pn="figure-13">
            <name slugifiedName="name-format-of-the-mp_hmac-subop">Format of the MP_HMAC suboption</name>
            <artwork align="left" pn="section-3.2.6-1.1"><![CDATA[
              1          2          3           4
   01234567 89012345 67890123 45678901 23456789 01234567
  +--------+--------+--------+--------+--------+--------+
  |00101110|00010111|00000101| HMAC-SHA256 (20 bytes) ...
  +--------+--------+--------+--------+--------+--------+
   Type=46  Length=23 MP_OPT=5
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.6-2">The MP_HMAC suboption is used to provide authentication for the
MP_ADDADDR, and MP_REMOVEADDR suboptions. In addition, it provides
authentication for subflows joining an existing MP_DCCP connection,
as described in the second and third step of the handshake of a
subsequent subflow in <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/>. For this specification of MP-DCCP,
the HMAC code is generated according to <xref target="RFC2104" format="default" sectionFormat="of" derivedContent="RFC2104"/> in combination
with the SHA256 hash algorithm described in <xref target="RFC6234" format="default" sectionFormat="of" derivedContent="RFC6234"/>, with the
output truncated to the leftmost 160 bits (20 bytes).</t>
          <t indent="0" pn="section-3.2.6-3">The "Key" used for the HMAC computation is the derived key (d-key)
described in <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/>, while the HMAC "Message" for MP_JOIN, MP_ADDADDR and MP_REMOVEADDR is a concatenation of:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.2.6-4">
            <li pn="section-3.2.6-4.1">
              <t indent="0" pn="section-3.2.6-4.1.1">for MP_JOIN: The nonces of the MP_JOIN messages for which authentication
   shall be performed. Depending on whether Host A or Host B performs the HMAC-SHA256 calculation, it is carried out as follows:
   MP_HMAC(A) = HMAC-SHA256(Key=d-key(A), Msg=RA+RB)
   MP_HMAC(B) = HMAC-SHA256(Key=d-key(B), Msg=RB+RA)
   An usage example is shown in <xref target="ref-mp-dccp-handshaking" format="default" sectionFormat="of" derivedContent="Figure 21"/>.</t>
            </li>
            <li pn="section-3.2.6-4.2">
              <t indent="0" pn="section-3.2.6-4.2.1">for MP_ADDADDR: The Address ID with associated IP address and if defined port,
   otherwise two octets of value 0. IP address and port MUST be used in network byte
   order (NBO). Depending on whether Host A or Host B performs the HMAC-SHA256 calculation,
   it is carried out as follows:
   MP_HMAC(A) = HMAC-SHA256(Key=d-key(A), Msg=Address ID+NBO(IP)+NBO(Port))
   MP_HMAC(B) = HMAC-SHA256(Key=d-key(B), Msg=Address ID+NBO(IP)+NBO(Port))</t>
            </li>
            <li pn="section-3.2.6-4.3">
              <t indent="0" pn="section-3.2.6-4.3.1">for MP_REMOVEADDR: Solely the Address ID.
   Depending on whether Host A or Host B performs the HMAC-SHA256 calculation,
   it is carried out as follows:
   MP_HMAC(A) = HMAC-SHA256(Key=d-key(A), Msg=Address ID)
   MP_HMAC(B) = HMAC-SHA256(Key=d-key(B), Msg=Address ID)</t>
            </li>
          </ul>
          <t indent="0" pn="section-3.2.6-5">MP_JOIN, MP_ADDADDR and MP_REMOVEADDR can co-exist or be used multiple times
within a single DCCP packet. All these multipath options require an individual
MP_HMAC option. This ensures that the MP_HMAC is correctly associated.
Otherwise, the receiver cannot validate multiple MP_JOIN, MP_ADDADDR or
MP_REMOVEADDR. Therefore, a MP_HMAC MUST directly follow its associated multipath
option. In the likely case of sending a MP_JOIN together with a MP_ADDADDR, this
results in concatenating MP_JOIN + MP_HMAC_1 + MP_ADDADDR + MP_HMAC_2, whereas the
first MP_HMAC_1 is associated with the MP_JOIN and the second MP_HMAC_2 is associated with the
MP_ADDADDR suboption.</t>
          <t indent="0" pn="section-3.2.6-6">On the receiver side, the HMAC validation of the suboptions MUST be carried out according to
the sending sequence in which the associated MP_HMAC follows a suboption. If the suboption
cannot be validated by a receiving host because the HMAC validation fails, the subsequent handling depends
on which suboption was being verified. If the suboption to be authenticated was either
MP_ADDADDR or MP_REMOVEADDR, the receiving host MUST silently ignore it (see <xref target="MP_ADDADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.8"/> and <xref target="MP_REMOVEADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.9"/>). 
If the suboption to be authenticated was MP_JOIN, the subflow MUST be closed (see <xref target="fallback" format="default" sectionFormat="of" derivedContent="Section 3.6"/>).
In the event that an MP_HMAC cannot be associated with a suboption, unless it is an MP_HMAC sent
in DCCP-Ack in response to a DCCP-Response packet containing an MP_JOIN option, this MP_HMAC MUST be ignored.</t>
        </section>
        <section anchor="MP_RTT" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.7">
          <name slugifiedName="name-mp_rtt">MP_RTT</name>
          <figure anchor="ref-MP_RTT" align="left" suppress-title="false" pn="figure-14">
            <name slugifiedName="name-format-of-the-mp_rtt-subopt">Format of the MP_RTT suboption</name>
            <artwork align="left" pn="section-3.2.7-1.1"><![CDATA[
              1          2          3           4          5
   01234567 89012345 67890123 45678901 23456789 01234567 89012345
  +--------+--------+--------+--------+--------+--------+--------+
  |00101110|00001100|00000110|RTT Type| RTT
  +--------+--------+--------+--------+--------+--------+--------+
           | Age                               |
  +--------+--------+--------+--------+--------+
   Type=46  Length=12 MP_OPT=6
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.7-2">The MP_RTT suboption is used to transmit RTT values and age
(represented in milliseconds) that belong to the path over which this information is transmitted.
This information is useful for the receiving host to
calculate the RTT difference between the subflows and to estimate whether
missing data has been lost.</t>
          <t indent="0" pn="section-3.2.7-3">The RTT and Age information is a 32-bit integer. This covers a period of
approximately 1193 hours.</t>
          <t indent="0" pn="section-3.2.7-4">The Field RTT type indicates the type of RTT estimation, according to the following description:</t>
          <dl newline="true" indent="3" spacing="normal" pn="section-3.2.7-5">
            <dt pn="section-3.2.7-5.1">Raw RTT (=0)</dt>
            <dd pn="section-3.2.7-5.2">
              <t indent="0" pn="section-3.2.7-5.2.1">Raw RTT value of the last Datagram Round-Trip</t>
            </dd>
          </dl>
          <dl newline="true" indent="3" spacing="normal" pn="section-3.2.7-6">
            <dt pn="section-3.2.7-6.1">Min RTT (=1)</dt>
            <dd pn="section-3.2.7-6.2">
              <t indent="0" pn="section-3.2.7-6.2.1">Min RTT value over a given period</t>
            </dd>
          </dl>
          <dl newline="true" indent="3" spacing="normal" pn="section-3.2.7-7">
            <dt pn="section-3.2.7-7.1">Max RTT (=2)</dt>
            <dd pn="section-3.2.7-7.2">
              <t indent="0" pn="section-3.2.7-7.2.1">Max RTT value over a given period</t>
            </dd>
          </dl>
          <dl newline="true" indent="3" spacing="normal" pn="section-3.2.7-8">
            <dt pn="section-3.2.7-8.1">Smooth RTT (=3)</dt>
            <dd pn="section-3.2.7-8.2">
              <t indent="0" pn="section-3.2.7-8.2.1">Averaged RTT value over a given period</t>
            </dd>
          </dl>
          <t indent="0" pn="section-3.2.7-9">Each CCID specifies the algorithms and period applied for their corresponding RTT estimations.The availability of the above described types, to be used in the MP_RTT option, depends on the CCID implementation in place.</t>
          <dl newline="true" indent="3" spacing="normal" pn="section-3.2.7-10">
            <dt pn="section-3.2.7-10.1">Age</dt>
            <dd pn="section-3.2.7-10.2">
              <t indent="0" pn="section-3.2.7-10.2.1">The Age parameter defines the time difference between now - creation of the MP_RTT option -
 and the conducted RTT measurement in milliseconds. If no previous measurement
 exists, e.g., when initialized, the value is 0.</t>
            </dd>
          </dl>
          <t indent="0" pn="section-3.2.7-11">An example of a flow showing  the exchange of path individual 
RTT information is provided in
<xref target="ref-MP_RTT_example" format="default" sectionFormat="of" derivedContent="Figure 15"/>. 
RTT1 refers to the first path and RTT2 to the second path. The
RTT values could be extracted from the sender's Congestion Control procedure and are conveyed to the receiving host using the MP_RTT suboption. With the reception of RTT1
and RTT2, the receiver is able to calculate the path_delta which corresponds to
the absolute difference of both values.
In the case that the path individual RTTs are symmetric in the down- and uplink directions and there is no jitter, packets with missing sequence number MP_SEQ, e.g., in a reordering process, can be assumed lost after path_delta/2.</t>
          <figure anchor="ref-MP_RTT_example" align="left" suppress-title="false" pn="figure-15">
            <name slugifiedName="name-exemplary-flow-of-mp_rtt-ex">Exemplary flow of MP_RTT exchange and usage</name>
            <artwork align="left" pn="section-3.2.7-12.1"><![CDATA[
   MP-DCCP                   MP-DCCP
   Sender                    Receiver
   +--------+  MP_RTT(RTT1)  +-------------+
   |   RTT1 |----------------|             |
   |        |                | path_delta= |
   |        |  MP_RTT(RTT2)  | |RTT1-RTT2| |
   |   RTT2 |----------------|             |
   +--------+                +-------------+
]]></artwork>
          </figure>
        </section>
        <section anchor="MP_ADDADDR" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.8">
          <name slugifiedName="name-mp_addaddr">MP_ADDADDR</name>
          <t indent="0" pn="section-3.2.8-1">The MP_ADDADDR suboption announces additional addresses (and, optionally,
port numbers) by which a host can be reached. This can be sent at any
time during an existing MP-DCCP connection, when the sender wishes to
enable multiple paths and/or when additional paths become available.
Multiple instances of this suboption within a packet 
can simultaneously advertise new addresses.</t>
          <t indent="0" pn="section-3.2.8-2">The Length is variable depending on the address family (IPv4 or IPv6) and whether a port number is
used. This field is in range between 8 and 22 bytes.</t>
          <t indent="0" pn="section-3.2.8-3">The final 2 octets, optionally specify the DCCP port number to
use, and their presence can be inferred from the length of the option.
Although it is expected that the majority of use cases will use the
same port pairs as used for the initial subflow (e.g., port 80
remains port 80 on all subflows, as does the ephemeral port at the
client), there could be cases (such as port-based load balancing) where
the explicit specification of a different port is required.  If no
port is specified, the receiving host MUST assume that any attempt to
connect to the specified address uses the port already used by the
subflow on which the MP_ADDADDR signal was sent.</t>
          <t indent="0" pn="section-3.2.8-4">Along with the MP_ADDADDR option an MP_HMAC option MUST be sent for
authentication. The truncated HMAC parameter present in this MP_HMAC
option is the leftmost 20 bytes of an HMAC, negotiated and calculated
as described in <xref target="MP_HMAC" format="default" sectionFormat="of" derivedContent="Section 3.2.6"/>. In the same way as for MP_JOIN,
the key for the HMAC algorithm, in the case of the message transmitted
by Host A, will be Key-A followed by Key-B, and in the case of Host B,
Key-B followed by Key-A.  These are the keys that were exchanged and
selected in the original MP_KEY handshake. The message for the HMAC is
the Address ID, IP address, and port number that precede the HMAC in the
MP_ADDADDR option.  If the port number is not present in the MP_ADDADDR option,
the HMAC message will include 2 octets of value zero.
The rationale for the HMAC is to prevent unauthorized entities from
injecting MP_ADDADDR signals in an attempt to hijack a connection.
Note that, additionally, the presence of this HMAC prevents the
address from being changed in flight unless the key is known by an
intermediary.  If a host receives an MP_ADDADDR option for which it
cannot validate the HMAC, it SHOULD silently ignore the option.</t>
          <t indent="0" pn="section-3.2.8-5">The presence of an MP_SEQ <xref target="MP_SEQ" format="default" sectionFormat="of" derivedContent="Section 3.2.5"/> MUST be ensured in a DCCP datagram
in which MP_ADDADDR is sent, as described in <xref target="MP_CONFIRM" format="default" sectionFormat="of" derivedContent="Section 3.2.1"/>.</t>
          <figure anchor="ref-MP_ADDADDR" align="left" suppress-title="false" pn="figure-16">
            <name slugifiedName="name-format-of-the-mp_addaddr-su">Format of the MP_ADDADDR suboption</name>
            <artwork align="left" pn="section-3.2.8-6.1"><![CDATA[
                      1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +---------------+---------------+-------+-------+---------------+
  |0 0 1 0 1 1 1 0|      var      |0 0 0 0 0 1 1 1|  Address ID   |
  +---------------+---------------+-------+-------+---------------+
  |          Address (IPv4 - 4 bytes / IPv6 - 16 bytes)           |
  +-------------------------------+-------------------------------+
  |   Port (2 bytes, optional)    | + MP_HMAC option
  +-------------------------------+
       Type=46         Length         MP_OPT=7
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.8-7">Each address has an Address ID that could be used for uniquely
identifying the address within a connection for address removal.
Each host maintains a list of unique Address IDs and it manages these as it wishes. The
Address ID is also used to identify MP_JOIN options (see <xref target="MP_JOIN" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/>)
relating to the same address, even when address translators are in use.
The Address ID MUST uniquely identify the address for the sender of the
option (within the scope of the connection); the mechanism for
allocating such IDs is implementation specific.</t>
          <t indent="0" pn="section-3.2.8-8">All Address IDs learned via either MP_JOIN or MP_ADDADDR can be stored
by the receiver in a data structure that gathers all the
Address-ID-to-address mappings for a connection (identified by a CI
pair). In this way, there is a stored mapping between the Address ID,
the observed source address, and the CI pair for future processing of control
information for a connection. Note that an implementation
MAY discard incoming address advertisements - for example, to
avoid the required mapping state, or because advertised addresses
are of no use to it (for example, IPv6 addresses when it has IPv4
only).  Therefore, a host MUST treat address advertisements as soft
state, and the sender MAY choose to refresh advertisements periodically.</t>
          <t indent="0" pn="section-3.2.8-9">A host
MAY advertise private addresses, e.g., because there is a 
NAT on the path.  It is
desirable to allow this, since there could be cases where both hosts
have additional interfaces on the same private network.</t>
          <t indent="0" pn="section-3.2.8-10">The MP_JOIN handshake to
create a new subflow (<xref target="MP_JOIN" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/>) provides mechanisms to minimize
security risks.  The MP_JOIN message contains a 32-bit CI that
uniquely identifies a connection to the receiving host. If the
CI is unknown, the host MUST send a DCCP-Reset.</t>
          <t indent="0" pn="section-3.2.8-11">Further security considerations around the issue of
MP_ADDADDR messages that accidentally misdirect, or maliciously direct,
new MP_JOIN attempts are discussed in <xref target="security" format="default" sectionFormat="of" derivedContent="Section 4"/>.
If a sending host of an MP_ADDADDR knows that no incoming subflows can
be established at a particular address, an MP_ADDADDR SHOULD NOT
announce that address unless the sending host has new knowledge about
the possibility to do so. This information can be obtained from local
firewall or routing settings, knowledge about availability of external
NAT or firewall, or from connectivity checks performed by the
host/application.</t>
          <t indent="0" pn="section-3.2.8-12">The reception of an MP_ADDADDR message is acknowledged using MP_CONFIRM
(<xref target="MP_CONFIRM" format="default" sectionFormat="of" derivedContent="Section 3.2.1"/>). This ensures reliable exchange of address
information.</t>
          <t indent="0" pn="section-3.2.8-13">A host MAY send an MP_ADDADDR message with an already assigned Address
ID, but the Address MUST be the same as previously assigned to this
Address ID, and the Port MUST be different from one already in use
for this Address ID.  If these conditions are not met, the receiver
SHOULD silently ignore the MP_ADDADDR.  A host wishing to replace an
existing Address ID MUST first remove the existing one (<xref target="MP_REMOVEADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.9"/>).</t>
          <t indent="0" pn="section-3.2.8-14">A host that receives an MP_ADDADDR, but finds at connection set up
that the IP address and port number is unsuccessful, SHOULD NOT perform
further connection attempts to this address/port combination for this
connection. However, a sender that wishes to trigger a new incoming
connection attempt on a previously advertised address/port combination
can therefore refresh the MP_ADDADDR information by sending the option again.</t>
        </section>
        <section anchor="MP_REMOVEADDR" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.9">
          <name slugifiedName="name-mp_removeaddr">MP_REMOVEADDR</name>
          <t indent="0" pn="section-3.2.9-1">If, during the lifetime of an MP-DCCP connection, a previously announced
address becomes invalid (e.g., if an interface disappears), the
affected host SHOULD announce this. The peer can remove a previously 
added address with an Address ID from a connection
using the Remove Address (MP_REMOVEADDR) suboption. This
will terminate any subflows currently using that address.</t>
          <t indent="0" pn="section-3.2.9-2">Along with the MP_REMOVEADDR suboption a MP_HMAC option MUST be sent for
authentication. The truncated HMAC parameter present in this MP_HMAC
option is the leftmost 20 bytes of an HMAC, negotiated and calculated
as described in <xref target="MP_HMAC" format="default" sectionFormat="of" derivedContent="Section 3.2.6"/>. In the same way as for MP_JOIN,
the key for the HMAC algorithm, in the case of the message transmitted
by Host A, will be Key-A followed by Key-B, and in the case of Host B,
Key-B followed by Key-A.  These are the keys that were exchanged and
selected in the original MP_KEY handshake. The message for the HMAC is
the Address ID.</t>
          <t indent="0" pn="section-3.2.9-3">The rationale for using a HMAC is to prevent unauthorized entities from
injecting MP_REMOVEADDR signals in an attempt to hijack a connection.
Note that, additionally, the presence of this HMAC prevents the
address from being modified in flight unless the key is known by an
intermediary.  If a host receives an MP_REMOVEADDR option for which it
cannot validate the HMAC, it SHOULD silently ignore the option.</t>
          <t indent="0" pn="section-3.2.9-4">A receiver MUST include a MP_SEQ <xref target="MP_SEQ" format="default" sectionFormat="of" derivedContent="Section 3.2.5"/> in a DCCP datagram that sends
an  MP_REMOVEADDR. Further details are given in <xref target="MP_CONFIRM" format="default" sectionFormat="of" derivedContent="Section 3.2.1"/>.</t>
          <t indent="0" pn="section-3.2.9-5">The reception of an MP_REMOVEADDR message is acknowledged using MP_CONFIRM
(<xref target="MP_CONFIRM" format="default" sectionFormat="of" derivedContent="Section 3.2.1"/>). This ensures reliable exchange of address
information. To avoid inconsistent states, the sender releases 
the address ID only after MP_REMOVEADDR has been confirmed.</t>
          <t indent="0" pn="section-3.2.9-6">The sending and receiving of this message SHOULD trigger the closing procedure
described in <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> between the client and the server, respectively on the affected
subflow(s) (if possible). This helps remove middlebox state, before
removing any local state.</t>
          <t indent="0" pn="section-3.2.9-7">Address removal is done by Address ID to allow the use of NATs and other
middleboxes that rewrite source addresses.  If there is no address
at the requested Address ID, the receiver will silently ignore the request.</t>
          <figure anchor="refMP_REMOVEADDR" align="left" suppress-title="false" pn="figure-17">
            <name slugifiedName="name-format-of-the-mp_removeaddr">Format of the MP_REMOVEADDR suboption</name>
            <artwork align="left" pn="section-3.2.9-8.1"><![CDATA[
                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|0 0 1 0 1 1 1 0|0 0 0 0 0 1 0 0|0 0 0 0 1 0 0 0|   Address ID  |
+---------------+---------------+---------------+---------------+
     Type=46        Length=4         MP_OPT=8

-> followed by MP_HMAC option
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.9-9">A subflow that is still functioning MUST be closed with a DCCP-Close
exchange as in regular DCCP, rather than using this option. For more
information, see <xref target="closing" format="default" sectionFormat="of" derivedContent="Section 3.5"/>.</t>
        </section>
        <section anchor="MP_PRIO" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.10">
          <name slugifiedName="name-mp_prio">MP_PRIO</name>
          <t indent="0" pn="section-3.2.10-1">The path priority SHOULD be considered as hints 
for the packet scheduler when making decisions which path to use for 
payload traffic.
When a single specific path from the set of available
paths is treated with higher priority compared to the others
when making scheduling decisions for payload traffic, a host can 
signal such change in priority to the peer.
This could be used when there are different costs for
using different paths (e.g., WiFi is free while cellular has limit on
volume, 5G has higher energy consumption). The priority of a path
could also change, for example, when a mobile host runs out
of battery, the usage of only a single path may be the preferred choice
of the user.</t>
          <t indent="0" pn="section-3.2.10-2">The MP_PRIO suboption, shown below, can be used to set a priority flag
for the subflow over which the suboption is received.</t>
          <figure anchor="ref-MP_PRIO" align="left" suppress-title="false" pn="figure-18">
            <name slugifiedName="name-format-of-the-mp_prio-subop">Format of the MP_PRIO suboption</name>
            <artwork align="left" pn="section-3.2.10-3.1"><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +---------------+---------------+---------------+--------------+
   |0 0 1 0 1 1 1 0|0 0 0 0 0 1 0 0|0 0 0 0 1 0 0 1|(resvd)| prio |
   +---------------+---------------+---------------+--------------+
       Type=46         Length=4        MP_OPT=9
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.10-4">The following values are available for the Prio field:</t>
          <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.2.10-5">
            <li pn="section-3.2.10-5.1">
              <t indent="0" pn="section-3.2.10-5.1.1">0: Do not use. The path is not available.</t>
            </li>
            <li pn="section-3.2.10-5.2">
              <t indent="0" pn="section-3.2.10-5.2.1">1: Standby: do not use this path for traffic scheduling, if another
   path (secondary or primary) is available. The path will only be used if 
   other secondary or primary paths are not established.</t>
            </li>
            <li pn="section-3.2.10-5.3">
              <t indent="0" pn="section-3.2.10-5.3.1">2: Secondary: do not use this path for traffic scheduling, if the other
   paths are good enough. The path will be used occasionally for increasing 
   temporarily the available capacity, e.g. when primary paths are 
   congested or are not available. This is the recommended setting for
   paths that have costs or data caps as these paths will be used less
   frequently then primary paths.</t>
            </li>
            <li pn="section-3.2.10-5.4">
              <t indent="0" pn="section-3.2.10-5.4.1">3 - 15: Primary: The path can be used for packet scheduling decisions. The 
   priority number indicates the relative priority of one path over the 
   other for primary paths. Higher numbers indicate higher priority. 
   The peer should consider sending traffic first over higher priority paths. 
   This is the recommended setting for paths that do not have a cost or 
   data caps associated with them as these paths will be frequently used.</t>
            </li>
          </ul>
          <t indent="0" pn="section-3.2.10-6">Example use cases include:
1) Setting Wi-Fi path to Primary and Cellular paths to Secondary. In this case
   Wi-Fi will be used and Cellular will be used only if the Wi-Fi path is congested or not
   available. Such setting results in using the Cellular path only temporally, 
   if more capacity is needed than the WiFi path can provide, indicating a 
   clear priority of the Wi-Fi path over the Cellular due to e.g. cost reasons.
2) Setting Wi-Fi path to Primary and Cellular to Standby. In this case Wi-Fi
   will be used and Cellular will be used only if the Wi-Fi path is not available. 
3) Setting Wi-Fi path to Primary and Cellular path to Primary. In this case,
   both paths can be used when making packet scheduling decisions.</t>
          <t indent="0" pn="section-3.2.10-7">If not specified, the default behavior is to always use a path for 
packet scheduling decisions (MP_PRIO=3), when the path has been established and 
added to an existing MP-DCCP connection. At least one path ought to have a 
MP_PRIO value greater or equal to one for it to be allowed to send on the 
connection. It is RECOMMENDED to update at least one path to a non-zero MP_PRIO
value when an MP-DCCP connection enters a state where all paths remain with an
MP_PRIO value of zero. This helps an MP-DCCP connection to 
schedule when the multipath scheduler strictly respects MP_PRIO value 0.
MP_PRIO is assumed to be exchanged reliably using the MP_CONFIRM 
mechanisms (see <xref target="ref-mp-option-confirm" format="default" sectionFormat="of" derivedContent="Table 4"/>).</t>
          <t indent="0" pn="section-3.2.10-8">The relative ratio of the primary path values 3-15 depends on the path usage strategy, which is described in more detail in <xref target="path_usage_strategy" format="default" sectionFormat="of" derivedContent="Section 3.11"/>. In the case of path mobility <xref target="path_mobility" format="default" sectionFormat="of" derivedContent="Section 3.11.1"/>, only one path can be used at a time and MUST be the appropriate one that has the highest available priority value including also the prio numbers 1 and 2. In the other case of concurrent path usage (<xref target="concurrent_usage" format="default" sectionFormat="of" derivedContent="Section 3.11.2"/>), the definition is up to the multipath scheduler logic.</t>
          <t indent="0" pn="section-3.2.10-9">A MP_SEQ <xref target="MP_SEQ" format="default" sectionFormat="of" derivedContent="Section 3.2.5"/> MUST be present in a DCCP datagram
in which MP_PRIO is sent. Further details are given in <xref target="MP_CONFIRM" format="default" sectionFormat="of" derivedContent="Section 3.2.1"/>.</t>
        </section>
        <section anchor="MP_CLOSE" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.11">
          <name slugifiedName="name-mp_close">MP_CLOSE</name>
          <figure anchor="ref-MP_CLOSE" align="left" suppress-title="false" pn="figure-19">
            <name slugifiedName="name-format-of-the-mp_close-subo">Format of the MP_CLOSE suboption</name>
            <artwork align="left" pn="section-3.2.11-1.1"><![CDATA[
              1          2          3           
   01234567 89012345 67890123 45678901 23456789 
  +--------+--------+--------+--------+--------+
  |00101110|  var   |00001010| Key Data ...
  +--------+--------+--------+--------+--------+
   Type=46   Length  MP_OPT=10
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.11-2">An MP-DCCP connection can be gracefully closed by sending and MP_CLOSE to the peer host. 
On all subflows, the regular termination procedure as described in <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> 
MUST be initiated using MP_CLOSE in the initial packet (either a DCCP-CloseReq or a DCCP-Close). 
When  a DCCP-CloseReq is used, the following DCCP-Close MUST also carry the MP_CLOSE 
to avoid keeping a state in the sender of the DCCP-CloseReq. 
At the initiator of the DCCP-CloseReq, all sockets including the MP-DCCP connection socket, 
transition to CLOSEREQ state. 
To protect from unauthorized shutdown of a multi-path connection, the selected Key Data of 
the peer host during the handshaking procedure MUST be included in by the MP_CLOSE option 
and must be validated by the peer host. 
Note, the Key Data is different between MP_CLOSE option carried by DCCP-CloseReq or DCCP-Close.</t>
          <t indent="0" pn="section-3.2.11-3">On reception of the first DCCP-CloseReq carrying a MP_CLOSE with valid Key Data, 
or due to a local decision, all subflows transition to the CLOSING state 
before transmitting a DCCP-Close carrying MP_CLOSE. 
The MP-DCCP connection socket on the host sending the DCCP-Close reflects the state of 
the initial subflow during handshake with MP_KEY option. 
If the initial subflow no longer exists, the state moves immediately to CLOSED.</t>
          <t indent="0" pn="section-3.2.11-4">Upon reception of the first DCCP-Close carrying a MP_CLOSE with valid Key Data 
at the peer host, all subflows, as well as the MP-DCCP connection socket, 
move to the CLOSED state. After this, a DCCP-Reset with Reset Code 1 
MUST be sent on any subflow in response to a received DCCP-Close containing a valid MP_CLOSE option.</t>
          <t indent="0" pn="section-3.2.11-5">When the MP-DCCP connection socket is in CLOSEREQ or CLOSE state, new subflow requests using MP_JOIN MUST be ignored.</t>
          <t indent="0" pn="section-3.2.11-6">Contrary to a MP_FAST_CLOSE <xref target="MP_FAST_CLOSE" format="default" sectionFormat="of" derivedContent="Section 3.2.3"/>, no single-sided abrupt termination is applied.</t>
        </section>
        <section anchor="MP_EXP" numbered="true" removeInRFC="false" toc="include" pn="section-3.2.12">
          <name slugifiedName="name-experimental-multipath-opti">Experimental Multipath option MP_EXP for private use</name>
          <t indent="0" pn="section-3.2.12-1">This section reserves a Multipath option to define and specify any experimental additional feature for improving and optimization of the MP-DCCP protocol. This
option could be applicable to specific environments or scenarios according to potential new requirements and is meant for private use only. MP_OPT 
feature number 11 is specified with an exemplary description as below:</t>
          <figure anchor="ref-MP_EXP" align="left" suppress-title="false" pn="figure-20">
            <name slugifiedName="name-format-of-the-mp_exp-subopt">Format of the MP_EXP suboption</name>
            <artwork align="left" pn="section-3.2.12-2.1"><![CDATA[
                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+---------------+
|0 0 1 0 1 1 1 0|      var      |0 0 0 0 1 0 1 1|   Data TBD    |
+---------------+---------------+---------------+---------------+
|   ...                                                         
+---------------------------------------------------------------+
     Type=46         Length         MP_OPT=11
]]></artwork>
          </figure>
          <t indent="0" pn="section-3.2.12-3">The Data field can carry any data according to the foreseen use by the experimenters with a maximum length of 252 Bytes.</t>
        </section>
      </section>
      <section anchor="handshaking" numbered="true" removeInRFC="false" toc="include" pn="section-3.3">
        <name slugifiedName="name-mp-dccp-handshaking-procedu">MP-DCCP Handshaking Procedure</name>
        <t indent="0" pn="section-3.3-1">An example to illustrate the MP-DCCP handshake procedure is shown in <xref target="ref-mp-dccp-handshaking" format="default" sectionFormat="of" derivedContent="Figure 21"/>.</t>
        <figure anchor="ref-mp-dccp-handshaking" align="left" suppress-title="false" pn="figure-21">
          <name slugifiedName="name-example-mp-dccp-handshake">Example MP-DCCP handshake</name>
          <artwork align="left" pn="section-3.3-2.1"><![CDATA[
          Host A                                         Host B 
------------------------                              ----------
Address A1    Address A2                              Address B1
----------    ----------                              ----------
     |             |                                       |
     |           DCCP-Request + Change R (MP_CAPABLE,...)  |
     |---- MP_KEY(CI-A + Key-A(1), Key-A(2),...) --------->|
     |<------------------- MP_KEY(CI-B + Key-B) -----------|
     |       DCCP-Response +  Confirm L (MP_CAPABLE, ...)  |
     |             |                                       |
     |   DCCP-Ack  |                                       |
     |---------------------------------------------------->|
     |<----------------------------------------------------|
     |   DCCP-Ack  |                                       |
     |             |                                       |
     |             |DCCP-Request + Change R(MP_CAPABLE,...)|
     |             |--- MP_JOIN(CI-B,RA) ----------------->|
     |             |<------MP_JOIN(CI-A,RB) + MP_HMAC(B)---|
     |             |DCCP-Response+Confirm L(MP_CAPABLE,...)|
     |             |                                       |
     |             |DCCP-Ack                               |
     |             |-------- MP_HMAC(A) ------------------>|
     |             |<--------------------------------------|
     |             |DCCP-ACK                               |
]]></artwork>
        </figure>
        <t indent="0" pn="section-3.3-3">The basic initial handshake for the first subflow is as follows:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.3-4">
          <li pn="section-3.3-4.1">
            <t indent="0" pn="section-3.3-4.1.1">Host A sends a DCCP-Request with the MP-Capable feature Change
request and the MP_KEY option with an Host-specific CI-A and a Key-A for
each of the supported key types as described in <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/>. CI-A is a unique identifier during the
lifetime of a MP-DCCP connection.</t>
          </li>
          <li pn="section-3.3-4.2">
            <t indent="0" pn="section-3.3-4.2.1">Host B sends a DCCP-Response with Confirm feature for
MP-Capable and the MP_Key option with a unique Host-specific CI-B and a single Host-specific Key-B.
The type of the key is chosen from the list of supported types
from the previous request.</t>
          </li>
          <li pn="section-3.3-4.3">
            <t indent="0" pn="section-3.3-4.3.1">Host A sends a DCCP-Ack to confirm the proper key exchange.</t>
          </li>
          <li pn="section-3.3-4.4">
            <t indent="0" pn="section-3.3-4.4.1">Host B sends a DCCP-Ack to complete the handshake and set both connection ends to the OPEN state.</t>
          </li>
        </ul>
        <t indent="0" pn="section-3.3-5">It should be noted that DCCP is protected against corruption of DCCP header data (section 9 of <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>), so no additional mechanisms beyond the general confirmation are required to ensure that the header data has been properly received.</t>
        <t indent="0" pn="section-3.3-6">Host A waits for the final DCCP-Ack from host B before starting any
establishment of additional subflow connections.</t>
        <t indent="0" pn="section-3.3-7">The handshake for subsequent subflows based on a successful initial
handshake is as follows:</t>
        <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.3-8">
          <li pn="section-3.3-8.1">
            <t indent="0" pn="section-3.3-8.1.1">Host A sends a DCCP-Request with the MP-Capable feature Change
request and the MP_JOIN option with Host B's CI-B,
obtained during the initial handshake. Additionally, an own random nonce
RA is transmitted with the MP_JOIN.</t>
          </li>
          <li pn="section-3.3-8.2">
            <t indent="0" pn="section-3.3-8.2.1">Host B computes the HMAC of the DCCP-Request and sends a DCCP-Response
with Confirm feature option for MP-Capable and the MP_JOIN option with
the CI-A and a random nonce RB together with the computed MP_HMAC.
The HMAC is calculated by taking the leftmost 20 bytes from the SHA256 hash
of a HMAC code created by using the nonce received with MP_JOIN(A) and the
local nonce RB as message and the derived key described in <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/> as key:  </t>
            <t indent="0" pn="section-3.3-8.2.2">
MP_HMAC(B) = HMAC-SHA256(Key=d-key(B), Msg=RB+RA)</t>
          </li>
          <li pn="section-3.3-8.3">
            <t indent="0" pn="section-3.3-8.3.1">Host A sends a DCCP-Ack with the HMAC computed for the DCCP-Response.
The HMAC is calculated by taking the leftmost 20 bytes from the SHA256 hash
of a HMAC code created by using the local nonce RA and the nonce received
with MP_JOIN(B) as message and the derived key described in <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/> as key:  </t>
            <t indent="0" pn="section-3.3-8.3.2">
MP_HMAC(A) = HMAC-SHA256(Key=d-key(A), Msg=RA+RB)</t>
          </li>
          <li pn="section-3.3-8.4">
            <t indent="0" pn="section-3.3-8.4.1">Host B sends a DCCP-Ack to confirm the HMAC and to conclude the
handshaking.</t>
          </li>
        </ul>
      </section>
      <section anchor="address-knowledge-exchange" numbered="true" removeInRFC="false" toc="include" pn="section-3.4">
        <name slugifiedName="name-address-knowledge-exchange">Address knowledge exchange</name>
        <section anchor="advertising-a-new-path-mpaddaddr" numbered="true" removeInRFC="false" toc="include" pn="section-3.4.1">
          <name slugifiedName="name-advertising-a-new-path-mp_a">Advertising a new path (MP_ADDADDR)</name>
          <t indent="0" pn="section-3.4.1-1">When a host (Host A) wants to advertise the availability of a new path, it should use the MP_ADDADDR option (<xref target="MP_ADDADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.8"/>) as
shown in the example in <xref target="ref-mp-dccp-add-address" format="default" sectionFormat="of" derivedContent="Figure 22"/>. The MP_ADDADDR option passed in the DCCP-Data contains the following parameters:
* an identifier (id 2) for the new IP address which is used as a reference in subsequent control exchanges.
* the IP address of the new path (A2_IP)
* A pair of octets specifying the port number associated with this IP address. The value of 00 here indicates that the port number is the same
  as that used for the initial subflow address A1_IP</t>
          <t indent="0" pn="section-3.4.1-2">The following options MUST be included in a packet carrying MP_ADDADDR:
* the leftmost 20 bytes of the HMAC(A) generated during the initial handshaking procedure described in <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/> and <xref target="MP_HMAC" format="default" sectionFormat="of" derivedContent="Section 3.2.6"/>
* the MP_SEQ option with the sequence number (seqno 12) for this message according to <xref target="MP_SEQ" format="default" sectionFormat="of" derivedContent="Section 3.2.5"/>.</t>
          <t indent="0" pn="section-3.4.1-3">Host B acknowledges receipt of the MP_ADDADDR message with a DCCP-Ack containing the MP_CONFIRM option. The parameters supplied in this
response are as follows:
* an MP_CONFIRM containing the MP_SEQ number (seqno 12) of the packet carrying the option that we are confirming together with the MP_ADDADDR option
* the leftmost 20 bytes of the HMAC(B) generated during the initial handshaking procedure <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/></t>
          <figure anchor="ref-mp-dccp-add-address" align="left" suppress-title="false" pn="figure-22">
            <name slugifiedName="name-example-mp-dccp-addaddr-pro">Example MP-DCCP ADDADDR procedure</name>
            <artwork align="left" pn="section-3.4.1-4.1"><![CDATA[
          Host A                                         Host B 
------------------------                              -----------
Address A1    Address A2                               Address B1
----------    ----------                              -----------
     |             |                                       |
     |   DCCP-Data +  MP_ADDADDR(id 2, A2_IP, 00) +        |
     |------- MP_HMAC(A) + MP_SEQ(seqno 12) -------------->|
     |             |                                       |      
     |   DCCP-Ack + MP_HMAC(B) +                           |
     |<----- MP_CONFIRM(seqno 12, MP_ADDADDR) -------------|
]]></artwork>
          </figure>
        </section>
        <section anchor="removing-a-path-mpremoveaddr" numbered="true" removeInRFC="false" toc="include" pn="section-3.4.2">
          <name slugifiedName="name-removing-a-path-mp_removead">Removing a path (MP_REMOVEADDR)</name>
          <t indent="0" pn="section-3.4.2-1">When a host (Host A) wants to indicate that a path is no longer available, it should use the MP_REMOVEADDR option (<xref target="MP_REMOVEADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.9"/>) as
shown in the example in <xref target="ref-mp-dccp-remove-address" format="default" sectionFormat="of" derivedContent="Figure 23"/>. The MP_REMOVEADDR option passed in the DCCP-Data contains the following parameters:
* an identifier (id 2) for the IP address to remove (A2_IP) and which was specified in a previous MP_ADDADDR message.</t>
          <t indent="0" pn="section-3.4.2-2">The following options must be included in a packet carrying MP_REMOVEADDR
* the leftmost 20 bytes of the HMAC(A) generated during the initial handshaking procedure described in <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/> and <xref target="MP_HMAC" format="default" sectionFormat="of" derivedContent="Section 3.2.6"/>
* the MP_SEQ option with the sequence number (seqno 33) for this message according to <xref target="MP_SEQ" format="default" sectionFormat="of" derivedContent="Section 3.2.5"/>.</t>
          <t indent="0" pn="section-3.4.2-3">Host B acknowledges receipt of the MP_REMOVEADDR message with a DCCP-Ack containing the MP_CONFIRM option. The parameters supplied in this
response are as follows:
* an MP_CONFIRM containing the MP_SEQ number (seqno 33) of the packet carrying the option that we are confirming, together with the MP_REMOVEADDR option
* the leftmost 20 bytes of the HMAC(B) generated during the initial handshaking procedure <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/></t>
          <figure anchor="ref-mp-dccp-remove-address" align="left" suppress-title="false" pn="figure-23">
            <name slugifiedName="name-example-mp-dccp-removeaddr-">Example MP-DCCP REMOVEADDR procedure</name>
            <artwork align="left" pn="section-3.4.2-4.1"><![CDATA[
          Host A                                         Host B 
------------------------                              -----------
Address A1    Address A2                               Address B1
----------    ----------                              -----------
     |             |                                       |
     |   DCCP-Data +  MP_REMOVEADDR(id 2) +                |
     |------- MP_HMAC(A) + MP_SEQ(seqno 33) -------------->|
     |             |                                       |      
     |   DCCP-Ack + MP_HMAC(B) +                           |
     |<----- MP_CONFIRM(seqno 33, MP_REMOVEADDR) ----------|
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="closing" numbered="true" removeInRFC="false" toc="include" pn="section-3.5">
        <name slugifiedName="name-closing-an-mp-dccp-connecti">Closing an MP-DCCP connection</name>
        <t indent="0" pn="section-3.5-1">When a host wants to close an existing subflow but not the whole MP-DCCP
connection, it MUST initiate the regular DCCP connection termination procedure 
as described in Section 5.6 of <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>, i.e., it sends a DCCP-Close/DCCP-Reset on the subflow. This
may be preceded by a DCCP-CloseReq. In the event of an irregular termination of a subflow,
e.g., during subflow establishment, it MUST use an appropriate DCCP reset code as specified in IANA <xref target="DCCP.Parameter" format="default" sectionFormat="of" derivedContent="DCCP.Parameter"/> for DCCP operations. This could be, for example, sending reset code 5 (Option Error) when an MP-DCCP
option provides invalid data or reset code 9 (Too Busy) when the maximum number of maintainable paths
is reached. Note that receiving a reset code 9 for secondary subflows SHOULD NOT impact already existing active
subflows. If necessary, these subflows are terminated in a subsequent step using the procedures described in
this section.</t>
        <t indent="0" pn="section-3.5-2">A host terminates an MP-DCCP connection using the DCCP connection termination specified in section 5.5 of
<xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> on each subflow with the first packet on each subflow carrying MP_CLOSE (see <xref target="MP_CLOSE" format="default" sectionFormat="of" derivedContent="Section 3.2.11"/>).</t>
        <artwork align="left" pn="section-3.5-3"><![CDATA[
  Host A                                   Host B
  ------                                   ------
                                   <-      Optional DCCP-CloseReq +
                                           MP_CLOSE [A's key] 
                                           [on all subflows]
  DCCP-Close + MP_CLOSE            ->
  [B's key] [on all subflows]
                                   <-      DCCP-Reset
                                           [on all subflows]
]]></artwork>
        <t indent="0" pn="section-3.5-4">Additionally, an MP-DCCP connection may be closed abruptly using the "Fast Close"
procedure described in <xref target="MP_FAST_CLOSE" format="default" sectionFormat="of" derivedContent="Section 3.2.3"/>, where a DCCP-Reset is sent on all
subflows, each carrying the MP_FAST_CLOSE option.</t>
        <artwork align="left" pn="section-3.5-5"><![CDATA[
  Host A                                   Host B
  ------                                   ------
  DCCP-Reset + MP_FAST_CLOSE       ->
  [B's key] [on all subflows]
                                   <-      DCCP-Reset
                                           [on all subflows]
]]></artwork>
      </section>
      <section anchor="fallback" numbered="true" removeInRFC="false" toc="include" pn="section-3.6">
        <name slugifiedName="name-fallback">Fallback</name>
        <t indent="0" pn="section-3.6-1">When a subflow fails to operate following MP-DCCP intended behavior, it is 
necessary to proceed with a fallback. This may be either falling back 
to regular DCCP <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> or removing a problematic subflow. The main reasons for 
subflow failing include: no MP support at peer host, failure to negotiate protocol
version, loss of Multipath options, faulty/non-supported MP-DCCP options or modification
of payload data.</t>
        <t indent="0" pn="section-3.6-2">At the start of an MP-DCCP connection, the handshake ensures exchange of MP-DCCP feature and
options and thus ensures that the path is fully MP-DCCP capable. If during the
handshake procedure it appears that DCCP-Request or DCCP-Response
messages do not carry the MP_CAPABLE feature, the MP-DCCP connection will not be 
established and the handshake SHOULD fallback to regular DCCP (if this is not 
possible it MUST be closed).</t>
        <t indent="0" pn="section-3.6-3">A connection SHOULD fallback to regular DCCP if the endpoints fail to agree on a
protocol version to use during the Multipath Capable feature negotiation. This is described in
<xref target="mp_capable" format="default" sectionFormat="of" derivedContent="Section 3.1"/>. The protocol version negotiation distinguishes between negotiation
for the initial connection establishment, and addition of subsequent subflows. If
protocol version negotiation is not successful during the initial connection establishment,
MP-DCCP connection will fallback to regular DCCP.</t>
        <t indent="0" pn="section-3.6-4">The fallback procedure to regular DCCP MUST be also applied if the MP_KEY <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/> Key Type cannot be negotiated.</t>
        <t indent="0" pn="section-3.6-5">If a subflow attempts to join an existing MP-DCCP connection, but MP-DCCP options or MP_CAPABLE
feature are not present or are faulty in the handshake procedure, that subflow MUST be closed.
This is especially the case if a different MP_CAPABLE version than the originally negotiated
version is used. Reception of a non-verifiable MP_HMAC (<xref target="MP_HMAC" format="default" sectionFormat="of" derivedContent="Section 3.2.6"/>) or an invalid
CI used in MP_JOIN (<xref target="MP_JOIN" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/>) during flow establishment MUST cause the
subflow to be closed.</t>
        <t indent="0" pn="section-3.6-6">The subflow closing procedure MUST be also applied if a final ACK carrying MP_KEY with wrong Key-A/Key-B is
received or MP_KEY option is malformed.</t>
        <t indent="0" pn="section-3.6-7">Another relevant case is when payload data is modified by middleboxes. DCCP uses 
checksum to protect the data, as described in section 9 of <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>. A checksum will 
fail if the data has been changed in any way. All data from the start of the segment that
failed the checksum onwards cannot be considered trustworthy. DCCP defines that if 
the checksum fails, the receiving endpoint MUST drop the application data and report 
that data as dropped due to corruption using a Data Dropped option (Drop Code 3, 
Corrupt). If data is dropped due to corruption for an MP-DCCP connection, the affected
subflow MAY be closed.</t>
      </section>
      <section anchor="state-diagram" numbered="true" removeInRFC="false" toc="include" pn="section-3.7">
        <name slugifiedName="name-state-diagram">State Diagram</name>
        <t indent="0" pn="section-3.7-1">The MP-DCCP per subflow state transitions to a large extent follow the
state transitions defined for DCCP in <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>, with some modifications 
due to the MP-DCCP four-way handshake and fast close procedures. The state diagram below
illustrates the most common state transitions.  The diagram is illustrative.
For example, there are arcs (not shown) from several additional states 
to TIMEWAIT, contingent on the receipt of a valid DCCP-Reset.</t>
        <t indent="0" pn="section-3.7-2">The states transitioned
when moving from the CLOSED to OPEN state during the four-way handshake
remain the same as for DCCP, but it is no longer possible to transmit
application data while in the REQUEST state. The fast close procedure
can be triggered by either the client or the server and results in the transmission
of a Reset packet. The fast close procedure moves the state of the client and server
directly to TIMEWAIT and CLOSED, respectively.</t>
        <figure anchor="ref-mp-dccp-state-transition" align="left" suppress-title="false" pn="figure-24">
          <name slugifiedName="name-most-common-state-transitio">Most common state transitions of a MP-DCCP subflow</name>
          <artwork align="left" pn="section-3.7-3.1"><![CDATA[
   +----------------------------+    +------------------------------+
   |                            v    v                              |
   |                         +----------+                           |
   |           +-------------+  CLOSED  +-------------+             |
   |           | passive     +----------+   active    |             |
   |           |  open                       open     |             |
   |           |                          snd Request |             |
   |           v                                      v             |
   |     +-----------+                           +----------+       |
   |     |  LISTEN   |                           | REQUEST  |       |
   |     +-----+-----+                           +----+-----+       |
   |           | rcv Request             rcv Response |             |
   |           | snd Response              snd Ack    |             |
   |           v                                      v             |
   |     +-----------+                           +----------+       |
   |     |  RESPOND  |                           | PARTOPEN |       |
   |     +-----+-----+                           +----+-----+       |
   |           | rcv Ack             rcv Ack/DataAck  |             |
   |           | snd Ack                              |             |
   |           |             +-----------+            |             |
   |           +------------>|   OPEN    |<-----------+             |
   |                         +--+-+-+-+--+                          |
   |        server active close | | | |   active close              |
   |            snd CloseReq    | | | | or rcv CloseReq             |
   |                            | | | |    snd Close                |
   |                            | | | |                             |
   |     +-----------+          | | | |            +----------+     |
   |     | CLOSEREQ  |<---------+ | | +----------->| CLOSING  |     |
   |     +-----+-----+            | |              +----+-----+     |
   |           | rcv Close        | |         rcv Reset |           |
   |           | snd Reset        | |                   |           |
   |           |                  | | active FastClose  |           |
   |<----------+        rcv Close | | or rcv FastClose  v           |
   |   or server active FastClose | | snd Reset    +----+-----+     |
   |      or server rcv FastClose | +------------->| TIMEWAIT |     |
   |                    snd Reset |                +----+-----+     |
   +------------------------------+                     |           |
                                                        +-----------+
                                                    2MSL timer expires
]]></artwork>
        </figure>
      </section>
      <section anchor="congestion-control-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-3.8">
        <name slugifiedName="name-congestion-control-consider">Congestion Control Considerations</name>
        <t indent="0" pn="section-3.8-1">Senders MUST manage per-path congestion status, and avoid to
sending more data on a given path than congestion control
for each path allows.</t>
      </section>
      <section anchor="mps" numbered="true" removeInRFC="false" toc="include" pn="section-3.9">
        <name slugifiedName="name-maximum-packet-size-conside">Maximum Packet Size Considerations</name>
        <t indent="0" pn="section-3.9-1">A DCCP implementation maintains the maximum packet size (MPS) during operation of a DCCP session. This procedure is specified for single-path DCCP in <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>, Section 14. Without any restrictions, this is adopted for MP-DCCP operations, in particular the PMTU measurement and the Sender Behaviour. The DCCP application interface SHOULD allow the application to discover the current MPS. This reflects the current supported largest size for the data stream that can be used across the set of all active MP-DCCP subflows.</t>
      </section>
      <section anchor="maximum-number-of-subflows" numbered="true" removeInRFC="false" toc="include" pn="section-3.10">
        <name slugifiedName="name-maximum-number-of-subflows">Maximum number of Subflows</name>
        <t indent="0" pn="section-3.10-1">In theory, an infinite number of subflows can be created within an MP-DCCP connection, as there is no element in the protocol that represents a restriction. In practical scenarios, however, there will be resource limitations on the host or use cases that do not benefit from additional subflows.</t>
        <t indent="0" pn="section-3.10-2">It is RECOMMENDED to limit the number of subflows in implementations and to reject incoming subflow requests with a DCCP-Reset using the Reset Code "too busy" as specified in <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> if this limit is exceeded.</t>
      </section>
      <section anchor="path_usage_strategy" numbered="true" removeInRFC="false" toc="include" pn="section-3.11">
        <name slugifiedName="name-path-usage-strategies">Path usage strategies</name>
        <t indent="0" pn="section-3.11-1">MP-DCCP can be configured to realize one of several strategies for path usage, via selecting one DCCP subflow of the multiple DCCP subflows within a MP-DCCP connection for data transmission. This can be a dynamic process further facilitated by the means of DCCP and MP-DCCP defined options such as path preference using MP-PRIO, adding or removing DCCP subflows using MP_REMOVEADDR, MP_ADDADDR or DCCP-Close/DCCP-Reset and also path metrics such as packet-loss-rate, CWND or RTT provided by the Congestion Control Algorithm.
Selecting an appropriate method can allow MP-DCCP to realize different path utilization strategies that make MP-DCCP suitable for end-to-end implementation over the Internet or in controlled environments such as Hybrid Access or 5G ATSSS.</t>
        <section anchor="path_mobility" numbered="true" removeInRFC="false" toc="include" pn="section-3.11.1">
          <name slugifiedName="name-path-mobility">Path mobility</name>
          <t indent="0" pn="section-3.11.1-1">The path mobility strategy provides the use of a single path with a seamless handover function to continue the connection when the currently used path is deemed unsuitable for service delivery.
Some of the DCCP subflows of a MP-DCCP connection might become inactive due to either the occurrence of certain error conditions (e.g., DCCP timeout, packet loss threshold, RTT threshold, closed/removed) or adjustments from the MP-DCCP user.
When there is outbound data to send and the primary path becomes inactive (e.g., due to failures) or de-prioritized, the MP-DCCP endpoint SHOULD try to send the data through an alternate path with a different source or destination address (depending on the point of failure), if one exists. This process SHOULD respect the path priority configured by MP_PRIO or if not available pick the most divergent source-destination pair from the original used source-destination pair.
Note: Rules for picking the most appropriate source-destination pair are an implementation decision and are not specified within this document.
Path mobility is supported in the current Linux reference implementation <xref target="multipath-dccp.org" format="default" sectionFormat="of" derivedContent="multipath-dccp.org"/>.</t>
        </section>
        <section anchor="concurrent_usage" numbered="true" removeInRFC="false" toc="include" pn="section-3.11.2">
          <name slugifiedName="name-concurrent-path-usage">Concurrent path usage</name>
          <t indent="0" pn="section-3.11.2-1">Different to a path mobility strategy, the selection between MP-DCCP
subflows is a per-packet decision that is a part of the multipath
scheduling process. This method would allow multiple subflows to be
simultaneously used to aggregate the path resources to obtain higher
connection throughput.</t>
          <t indent="0" pn="section-3.11.2-2">In this scenario, the selection of congestion control, per-packet scheduling
and potential re-ordering method determines a concurrent path utilization
strategy and result in a particular transport characteristic.
A concurrent path usage method uses a scheduling design that could seek to 
maximize reliability, throughput, minimizing latency, etc.</t>
          <t indent="0" pn="section-3.11.2-3">Concurrent path usage over the Internet can have implications. When a 
Multipath DCCP connection uses two or more paths, there is no guarantee 
that these paths are fully disjoint.  When two (or more) subflows share 
the same bottleneck, using a standard congestion control scheme could 
result in an unfair distribution of the capacity with the multipath 
connection using more capacity than competing single path connections.<br/>
Multipath TCP uses the coupled congestion control Linked Increases 
Algorithm (LIA) specified in the experimental specification <xref target="RFC6356" format="default" sectionFormat="of" derivedContent="RFC6356"/> to solve this problem.  This 
scheme could also be specified for Multipath DCCP.  The same applies to 
other coupled congestion control schemes that have been proposed for 
Multipath TCP such as Opportunistic Linked Increases Algorithm <xref target="OLIA" format="default" sectionFormat="of" derivedContent="OLIA"/>.</t>
          <t indent="0" pn="section-3.11.2-4">The specification of scheduling for concurrent multipath and related the 
congestion control algorithms and re-ordering methods for use in the general
Internet are outside the scope of this document. If, and when, the IETF
specifies a method for concurrent usage of multiple paths for the
general Internet, the framework specified in this document could be used to 
provide an IETF recommended method for MP-DCCP.</t>
        </section>
      </section>
    </section>
    <section anchor="security" numbered="true" removeInRFC="false" toc="include" pn="section-4">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-4-1">Similar to DCCP, MP-DCCP does not provide cryptographic security
guarantees inherently. Thus, if applications need cryptographic security
(integrity, authentication, confidentiality, access control, and
anti-replay protection) the use of IPsec, DTLS over DCCP <xref target="RFC5238" format="default" sectionFormat="of" derivedContent="RFC5238"/> or other
end-to-end security is recommended;
Secure Real-time Transport Protocol (SRTP) <xref target="RFC3711" format="default" sectionFormat="of" derivedContent="RFC3711"/> is one candidate
protocol for authentication. Together with Encryption of Header
Extensions in SRTP, as provided by <xref target="RFC6904" format="default" sectionFormat="of" derivedContent="RFC6904"/>, also integrity would
be provided.</t>
      <t indent="0" pn="section-4-2">DCCP <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> provides protection against hijacking
and limits the potential impact of some denial-of-service attacks, but
DCCP provides no inherent protection against an on-path attacker snooping on data
packets. Regarding the security of MP-DCCP no additional risks should be
introduced compared to regular DCCP. Thereof derived are the
following key security requirements to be fulfilled by MP-DCCP:</t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-3">
        <li pn="section-4-3.1">
          <t indent="0" pn="section-4-3.1.1">Provide a mechanism to confirm that parties involved in a subflow
handshake are identical to those in the original connection setup.</t>
        </li>
        <li pn="section-4-3.2">
          <t indent="0" pn="section-4-3.2.1">Provide verification that the new address to be included in a MP
connection is valid for a peer to receive traffic at before using it.</t>
        </li>
        <li pn="section-4-3.3">
          <t indent="0" pn="section-4-3.3.1">Provide replay protection, i.e., ensure that a request to add/remove a
subflow is 'fresh'.</t>
        </li>
      </ul>
      <t indent="0" pn="section-4-4">To achieve these goals, MP-DCCP includes a hash-based handshake
algorithm documented in Sections <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/>, <xref target="MP_HMAC" format="default" sectionFormat="of" derivedContent="Section 3.2.6"/> and <xref target="handshaking" format="default" sectionFormat="of" derivedContent="Section 3.3"/>. The
security of the MP-DCCP connection depends on the use of keys that are
shared once at the start of the first subflow and are never sent again
over the network. To ease demultiplexing while not revealing
cryptographic material, subsequent subflows use the initially exchanged
CI information. The keys exchanged once at the beginning are
concatenated and used as keys for creating Hash-based Message
Authentication Codes (HMACs) used on subflow setup, in order to verify
that the parties in the handshake of subsequent subflows are the same as in the original
connection setup. It also provides verification that the peer can
receive traffic at this new address. Replay attacks would still be
possible when only keys are used;
therefore, the handshakes use single-use random numbers (nonces) at both
ends -- this ensures that the HMAC will never be the same on two handshakes.
Guidance on generating random numbers suitable for use as keys is given
in <xref target="RFC4086" format="default" sectionFormat="of" derivedContent="RFC4086"/>. During normal operation, regular DCCP protection
mechanisms (such as header checksum to protect DCCP headers against
corruption) is designed to provide the same level of protection against attacks on
individual DCCP subflows as exists for regular DCCP.</t>
      <t indent="0" pn="section-4-5">As discussed in <xref target="MP_ADDADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.8"/>, a host may advertise its private
addresses, but these might point to different hosts in the receiver's
network.  The MP_JOIN handshake (<xref target="MP_JOIN" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/>) is designed to ensure that this
does not set up a subflow to the incorrect host.
However, it could still create unwanted DCCP handshake traffic.  This
feature of MP-DCCP could be a target for denial-of-service exploits,
with malicious participants in MP-DCCP connections encouraging the
recipient to target other hosts in the network.  Therefore,
implementations should consider heuristics at both the
sender and receiver to reduce the impact of this.</t>
      <t indent="0" pn="section-4-6">As described in <xref target="mps" format="default" sectionFormat="of" derivedContent="Section 3.9"/>, a Maximum Packet Size (MPS) is maintained for a MP-DCCP connection.
If MP-DCCP exposes a minimum MPS across all paths,
any change to one path impacts the sender for all paths.
To mitigate attacks that seek to force a low MPS, MP-DCCP
could detect an attempt to reduce the MPS less than a minimum MPS, and then
stop using these paths.</t>
    </section>
    <section anchor="middlebox" numbered="true" removeInRFC="false" toc="include" pn="section-5">
      <name slugifiedName="name-interactions-with-middlebox">Interactions with Middleboxes</name>
      <t indent="0" pn="section-5-1">Issues from interaction with on-path middleboxes such as NATs, firewalls, proxies,
intrusion detection systems (IDSs), and others have to be considered for all
extensions to standard protocols since otherwise unexpected reactions of
middleboxes may hinder its deployment. DCCP already provides means to
mitigate the potential impact of middleboxes, also in comparison to TCP (see
<xref target="RFC4043" format="default" sectionFormat="of" derivedContent="RFC4043"/>, Section 16). When both hosts are located behind a NAT or
firewall entity, specific measures have to be applied such as the <xref target="RFC5596" format="default" sectionFormat="of" derivedContent="RFC5596"/>-specified
simultaneous-open technique that update the (traditionally asymmetric)
connection-establishment procedures for DCCP.  Further standardized technologies
addressing middleboxes operating as NATs are provided in <xref target="RFC5597" format="default" sectionFormat="of" derivedContent="RFC5597"/>.</t>
      <t indent="0" pn="section-5-2"><xref target="RFC6773" format="default" sectionFormat="of" derivedContent="RFC6773"/> specifies UDP Encapsulation for NAT Traversal of DCCP sessions,
similar to other UDP encapsulations such as for SCTP <xref target="RFC6951" format="default" sectionFormat="of" derivedContent="RFC6951"/>. Future
specifications by the IETF could specify other methods for DCCP encapsulation.</t>
      <t indent="0" pn="section-5-3">The security impact of MP-DCCP aware middleboxes is discussed in <xref target="security" format="default" sectionFormat="of" derivedContent="Section 4"/></t>
    </section>
    <section anchor="implementation" numbered="true" removeInRFC="false" toc="include" pn="section-6">
      <name slugifiedName="name-implementation">Implementation</name>
      <t indent="0" pn="section-6-1">The approach described above has been implemented in open source across different testbeds and a new scheduling algorithm has been extensively tested. Also 
demonstrations of a laboratory setup have been executed and have been published at <xref target="multipath-dccp.org" format="default" sectionFormat="of" derivedContent="multipath-dccp.org"/>.</t>
    </section>
    <section anchor="acknowledgments" numbered="true" removeInRFC="false" toc="include" pn="section-7">
      <name slugifiedName="name-acknowledgments">Acknowledgments</name>
      <t indent="0" pn="section-7-1"><xref target="RFC6824" format="default" sectionFormat="of" derivedContent="RFC6824"/> and <xref target="RFC8684" format="default" sectionFormat="of" derivedContent="RFC8684"/> defined Multipath TCP and provided important
inputs for this specification.</t>
      <t indent="0" pn="section-7-2">The authors gratefully acknowledge significant input into this document from Dirk von Hugo, Nathalie Romo Moreno, Omar Nassef, Mohamed Boucadair, Simone Ferlin, Olivier Bonaventure, Gorry Fairhurst and Behcet Sarikaya.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" removeInRFC="false" toc="include" pn="section-8">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-8-1">This section provides guidance to the Internet Assigned Numbers Authority (IANA) regarding registration of values related to the MP extension of the DCCP protocol 
in accordance with <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>.  This document defines one new value which is requested to be allocated in the IANA DCCP Feature Numbers registry and three new registries to be allocated in the DCCP registry group.</t>
      <t indent="0" pn="section-8-2">This document requests IANA to assign a new DCCP feature parameter for negotiating
the support of multipath capability for DCCP sessions between hosts
as described in <xref target="protocol" format="default" sectionFormat="of" derivedContent="Section 3"/>. The following entry in <xref target="ref-add-feature-list" format="default" sectionFormat="of" derivedContent="Table 6"/> should be
added to the Feature Numbers registry in the DCCP registry group according to <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/>, Section 19.4. under the "DCCP Protocol" heading.</t>
      <table anchor="ref-add-feature-list" align="center" pn="table-6">
        <name slugifiedName="name-addition-to-dccp-feature-nu">Addition to DCCP Feature Numbers registry</name>
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1">Value</th>
            <th align="center" colspan="1" rowspan="1">Feature Name</th>
            <th align="center" colspan="1" rowspan="1">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">10 suggested</td>
            <td align="center" colspan="1" rowspan="1">Multipath Capable</td>
            <td align="center" colspan="1" rowspan="1">[ThisDocument]</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-8-4">Sect. <xref target="mp_capable" format="default" sectionFormat="of" derivedContent="Section 3.1"/> specifies the new 1-Byte entry above includes a 4-bit part to specify the version of the used MP-DCCP implementation. This document requests IANA to create a new 'MP-DCCP Versions' registry within the DCCP registry group to track the MP-DCCP version. The initial content of this registry is as follows:</t>
      <table anchor="ref-add-version-list" align="center" pn="table-7">
        <name slugifiedName="name-mp-dccp-versions-registry">MP-DCCP Versions Registry</name>
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1">Version</th>
            <th align="center" colspan="1" rowspan="1">Value</th>
            <th align="center" colspan="1" rowspan="1">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">0</td>
            <td align="center" colspan="1" rowspan="1">0000 suggested</td>
            <td align="center" colspan="1" rowspan="1">[ThisDocument]</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Unassigned</td>
            <td align="center" colspan="1" rowspan="1">0001 - 1111</td>
            <td align="center" colspan="1" rowspan="1"> </td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-8-6">Future MP-DCCP versions 1 to 15 are assigned from this registry using the Specification Required policy (Section 4.6 of <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>).</t>
      <t indent="0" pn="section-8-7">This document requests IANA to assign value 46 in the DCCP "Option Types" registry to "Multipath Options", as described in <xref target="MP_OPT" format="default" sectionFormat="of" derivedContent="Section 3.2"/>.</t>
      <t indent="0" pn="section-8-8">IANA is requested to create a new 'Multipath Options' registry within the DCCP registry group. The following entries in <xref target="ref-add-proto-opt-list" format="default" sectionFormat="of" derivedContent="Table 8"/> should be added to the new 'Multipath Options' registry. The registry in <xref target="ref-add-proto-opt-list" format="default" sectionFormat="of" derivedContent="Table 8"/> has an upper boundary of 255 in the numeric value field.</t>
      <table anchor="ref-add-proto-opt-list" align="center" pn="table-8">
        <name slugifiedName="name-multipath-options-registry">Multipath Options registry</name>
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1">Multipath Option</th>
            <th align="center" colspan="1" rowspan="1">Name</th>
            <th align="center" colspan="1" rowspan="1">Description</th>
            <th align="center" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=0</td>
            <td align="center" colspan="1" rowspan="1">MP_CONFIRM</td>
            <td align="center" colspan="1" rowspan="1">Confirm reception/processing of an MP_OPT option</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_CONFIRM" format="default" sectionFormat="of" derivedContent="Section 3.2.1"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=1</td>
            <td align="center" colspan="1" rowspan="1">MP_JOIN</td>
            <td align="center" colspan="1" rowspan="1">Join subflow to existing MP-DCCP connection</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_JOIN" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=2</td>
            <td align="center" colspan="1" rowspan="1">MP_FAST_CLOSE</td>
            <td align="center" colspan="1" rowspan="1">Close MP-DCCP connection</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_FAST_CLOSE" format="default" sectionFormat="of" derivedContent="Section 3.2.3"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=3</td>
            <td align="center" colspan="1" rowspan="1">MP_KEY</td>
            <td align="center" colspan="1" rowspan="1">Exchange key material for MP_HMAC</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=4</td>
            <td align="center" colspan="1" rowspan="1">MP_SEQ</td>
            <td align="center" colspan="1" rowspan="1">Multipath sequence number</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_SEQ" format="default" sectionFormat="of" derivedContent="Section 3.2.5"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=5</td>
            <td align="center" colspan="1" rowspan="1">MP_HMAC</td>
            <td align="center" colspan="1" rowspan="1">Hash-based message auth. code for MP-DCCP</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_HMAC" format="default" sectionFormat="of" derivedContent="Section 3.2.6"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=6</td>
            <td align="center" colspan="1" rowspan="1">MP_RTT</td>
            <td align="center" colspan="1" rowspan="1">Transmit RTT values and calculation parameters</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_RTT" format="default" sectionFormat="of" derivedContent="Section 3.2.7"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=7</td>
            <td align="center" colspan="1" rowspan="1">MP_ADDADDR</td>
            <td align="center" colspan="1" rowspan="1">Advertise additional address(es)/port(s)</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_ADDADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.8"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=8</td>
            <td align="center" colspan="1" rowspan="1">MP_REMOVEADDR</td>
            <td align="center" colspan="1" rowspan="1">Remove address(es)/ port(s)</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_REMOVEADDR" format="default" sectionFormat="of" derivedContent="Section 3.2.9"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=9</td>
            <td align="center" colspan="1" rowspan="1">MP_PRIO</td>
            <td align="center" colspan="1" rowspan="1">Change subflow priority</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_PRIO" format="default" sectionFormat="of" derivedContent="Section 3.2.10"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=10</td>
            <td align="center" colspan="1" rowspan="1">MP_CLOSE</td>
            <td align="center" colspan="1" rowspan="1">Close MP-DCCP subflow</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_CLOSE" format="default" sectionFormat="of" derivedContent="Section 3.2.11"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT=11</td>
            <td align="center" colspan="1" rowspan="1">MP_EXP</td>
            <td align="center" colspan="1" rowspan="1">Experimental suboption for private use</td>
            <td align="center" colspan="1" rowspan="1">
              <xref target="MP_EXP" format="default" sectionFormat="of" derivedContent="Section 3.2.12"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">MP_OPT&gt;11</td>
            <td align="center" colspan="1" rowspan="1">Unassigned</td>
            <td align="center" colspan="1" rowspan="1">Reserved for future Multipath Options</td>
            <td align="center" colspan="1" rowspan="1"> </td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-8-10">Future Multipath options with MP_OPT&gt;11 are assigned from this registry using the Specification Required policy (Section 4.6 of <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>).</t>
      <t indent="0" pn="section-8-11">In addition IANA is requested to assign a new DCCP Reset Code value 13 suggested in the DCCP Reset Codes Registry, with the short description "Abrupt MP termination".  Use of this reset code is defined in section <xref target="MP_FAST_CLOSE" format="default" sectionFormat="of" derivedContent="Section 3.2.3"/>.</t>
      <t indent="0" pn="section-8-12">In addition IANA is requested to assign for this version of the MP-DCCP protocol a new 'Multipath Key Type' registry containing three different suboptions to the MP_KEY option to identify the MP_KEY Key types in terms of 8-bit values as specified in <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/> according to the entries in <xref target="ref-mp_key-sub-opt-list" format="default" sectionFormat="of" derivedContent="Table 9"/> below. Values in range 3-255 (decimal) inclusive remain unassigned in this here specified version 0 of the protocol and are assigned via Specification Required <xref target="RFC8126" format="default" sectionFormat="of" derivedContent="RFC8126"/>
in potential future versions of the MP-DCCP protocol.</t>
      <table anchor="ref-mp_key-sub-opt-list" align="center" pn="table-9">
        <name slugifiedName="name-multipath-key-type-registry">Multipath Key Type registry with the MP_KEY Key Types for key data exchange on different paths</name>
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1">Type</th>
            <th align="center" colspan="1" rowspan="1">Name</th>
            <th align="center" colspan="1" rowspan="1">Meaning</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">0</td>
            <td align="center" colspan="1" rowspan="1">Plain Text</td>
            <td align="center" colspan="1" rowspan="1">Plain text key</td>
            <td align="left" colspan="1" rowspan="1">
              <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">1</td>
            <td align="center" colspan="1" rowspan="1">ECDHE-C25519-SHA256</td>
            <td align="center" colspan="1" rowspan="1">ECDHE with SHA256 and Curve25519</td>
            <td align="left" colspan="1" rowspan="1">
              <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">2</td>
            <td align="center" colspan="1" rowspan="1">ECDHE-C25519-SHA512</td>
            <td align="center" colspan="1" rowspan="1">ECDHE with SHA512 and Curve25519</td>
            <td align="left" colspan="1" rowspan="1">
              <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/></td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">3-255</td>
            <td align="center" colspan="1" rowspan="1">Unassigned</td>
            <td align="center" colspan="1" rowspan="1">Reserved for future use</td>
            <td align="left" colspan="1" rowspan="1">
              <xref target="MP_KEY" format="default" sectionFormat="of" derivedContent="Section 3.2.4"/></td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references anchor="sec-normative-references" pn="section-9.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="DCCP.Parameter" target="https://www.iana.org/assignments/dccp-parameters/dccp-parameters.xhtml" quoteTitle="true" derivedAnchor="DCCP.Parameter">
          <front>
            <title>IANA Datagram Congestion Control Protocol (DCCP) Parameters</title>
            <author>
              <organization showOnFrontPage="true"/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC2119" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc2119" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t indent="0">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="RFC4340" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc4340" derivedAnchor="RFC4340">
          <front>
            <title>Datagram Congestion Control Protocol (DCCP)</title>
            <author fullname="E. Kohler" initials="E." surname="Kohler"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <date month="March" year="2006"/>
            <abstract>
              <t indent="0">The Datagram Congestion Control Protocol (DCCP) is a transport protocol that provides bidirectional unicast connections of congestion-controlled unreliable datagrams. DCCP is suitable for applications that transfer fairly large amounts of data and that can benefit from control over the tradeoff between timeliness and reliability. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4340"/>
          <seriesInfo name="DOI" value="10.17487/RFC4340"/>
        </reference>
      </references>
      <references anchor="sec-informative-references" pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.amend-iccrg-multipath-reordering" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-amend-iccrg-multipath-reordering-03" derivedAnchor="I-D.amend-iccrg-multipath-reordering">
          <front>
            <title>Multipath sequence maintenance</title>
            <author fullname="Markus Amend" initials="M." surname="Amend">
              <organization showOnFrontPage="true">Deutsche Telekom</organization>
            </author>
            <author fullname="Dirk Von Hugo" initials="D." surname="Von Hugo">
              <organization showOnFrontPage="true">Deutsche Telekom</organization>
            </author>
            <date day="25" month="October" year="2021"/>
            <abstract>
              <t indent="0">   This document discusses the issue of packet reordering which occurs
   as a specific problem in multi-path connections without reliable
   transport protocols such as TCP.  The topic is relevant for devices
   connected via multiple accesses technologies towards the network as
   is foreseen, e.g., within Access Traffic Selection, Switching, and
   Splitting (ATSSS) service of 3rd Generation Partnership Project
   (3GPP) enabling fixed mobile converged (FMC) scenario.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amend-iccrg-multipath-reordering-03"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.amend-tsvwg-multipath-framework-mpdccp" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-amend-tsvwg-multipath-framework-mpdccp-01" derivedAnchor="I-D.amend-tsvwg-multipath-framework-mpdccp">
          <front>
            <title>A multipath framework for UDP traffic over heterogeneous access networks</title>
            <author fullname="Markus Amend" initials="M." surname="Amend">
              <organization showOnFrontPage="true">Deutsche Telekom</organization>
            </author>
            <author fullname="Eckard Bogenfeld" initials="E." surname="Bogenfeld">
              <organization showOnFrontPage="true">Deutsche Telekom</organization>
            </author>
            <author fullname="Anna Brunstrom" initials="A." surname="Brunstrom">
              <organization showOnFrontPage="true">Karlstad University</organization>
            </author>
            <author fullname="Andreas Kassler" initials="A." surname="Kassler">
              <organization showOnFrontPage="true">Karlstad University</organization>
            </author>
            <author fullname="Veselin Rakocevic" initials="V." surname="Rakocevic">
              <organization showOnFrontPage="true">City University of London</organization>
            </author>
            <date day="8" month="July" year="2019"/>
            <abstract>
              <t indent="0">   More and more of today's devices are multi-homing capable, in
   particular 3GPP user equipment like smartphones.  In the current
   standardization of the next upcoming mobile network generation 5G
   Rel.16, this is especially targeted in the study group Access Traffic
   Steering Switching Splitting [TR23.793].  ATSSS describes the
   flexible selection or combination of 3GPP untrusted access like Wi-Fi
   and cellular access, overcoming the single-access limitation of
   today's devices and services.  Another multi-connectivity scenario is
   the Hybrid Access [I-D.lhwxz-hybrid-access-network-architecture][I-D.
   muley-network-based-bonding-hybrid-access], providing multiple access
   for CPEs, which extends the traditional way of single access
   connectivity at home to dual-connectivity over 3GPP and fixed access.
   A missing piece in the ATSSS and Hybrid Access is the access and path
   measurement, which is required for efficient and beneficial traffic
   steering decisions.  This becomes particularly important in
   heterogeneous access networks with a multitude of volatile access
   paths.  While MP-TCP has been proposed to be used within ATSSS, there
   are drawbacks when being used to encapsulate unreliable traffic as it
   blindly retransmits each lost frame leading to excessive delay and
   potential head-of-line blocking.  A decision for MP-TCP though leaves
   the increasing share of UDP in today's traffic mix
   (&lt;https://arxiv.org/abs/1801.05168&gt;) unconsidered.  In this document,
   a multi-access framework is proposed leveraging the MP-DCCP network
   protocol, which enables flexible traffic steering, switching and
   splitting also for unreliable traffic.  A benefit is the support for
   pluggable congestion control which enables our framework to be used
   either independent or complementary to MP-TCP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-amend-tsvwg-multipath-framework-mpdccp-01"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.ietf-quic-multipath" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-ietf-quic-multipath-06" derivedAnchor="I-D.ietf-quic-multipath">
          <front>
            <title>Multipath Extension for QUIC</title>
            <author fullname="Yanmei Liu" initials="Y." surname="Liu">
              <organization showOnFrontPage="true">Alibaba Inc.</organization>
            </author>
            <author fullname="Yunfei Ma" initials="Y." surname="Ma">
              <organization showOnFrontPage="true">Uber Technologies Inc.</organization>
            </author>
            <author fullname="Quentin De Coninck" initials="Q." surname="De Coninck">
              <organization showOnFrontPage="true">University of Mons (UMONS)</organization>
            </author>
            <author fullname="Olivier Bonaventure" initials="O." surname="Bonaventure">
              <organization showOnFrontPage="true">UCLouvain and Tessares</organization>
            </author>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization showOnFrontPage="true">Private Octopus Inc.</organization>
            </author>
            <author fullname="Mirja Kuehlewind" initials="M." surname="Kuehlewind">
              <organization showOnFrontPage="true">Ericsson</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t indent="0">   This document specifies a multipath extension for the QUIC protocol
   to enable the simultaneous usage of multiple paths for a single
   connection.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Discussion of this document takes place on the QUIC Working Group
   mailing list (quic@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/quic/.

   Source for this draft and an issue tracker can be found at
   https://github.com/mirjak/draft-lmbdhk-quic-multipath.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-06"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.lhwxz-hybrid-access-network-architecture" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-lhwxz-hybrid-access-network-architecture-02" derivedAnchor="I-D.lhwxz-hybrid-access-network-architecture">
          <front>
            <title>Hybrid Access Network Architecture</title>
            <author fullname="Nicolai Leymann" initials="N." surname="Leymann">
              <organization showOnFrontPage="true">Deutsche Telekom AG</organization>
            </author>
            <author fullname="Cornelius Heidemann" initials="C." surname="Heidemann">
              <organization showOnFrontPage="true">Deutsche Telekom AG</organization>
            </author>
            <author fullname="Margaret Cullen" initials="M." surname="Cullen">
              <organization showOnFrontPage="true">Painless Security</organization>
            </author>
            <author fullname="Li Xue" initials="L." surname="Xue">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <author fullname="Mingui Zhang" initials="M." surname="Zhang">
              <organization showOnFrontPage="true">Huawei</organization>
            </author>
            <date day="13" month="January" year="2015"/>
            <abstract>
              <t indent="0">   Residential and Enterprise customers require continuously increasing
   bandwidth, however it may be difficult for operators to update or
   rebuild existing fixed access networks, especially when they are
   deployed in certain areas.  This document discusses a general way to
   address this problem by bundling together multiple heterogeneous
   access networks according to certain management policies.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-lhwxz-hybrid-access-network-architecture-02"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.muley-network-based-bonding-hybrid-access" quoteTitle="true" target="https://datatracker.ietf.org/doc/html/draft-muley-network-based-bonding-hybrid-access-03" derivedAnchor="I-D.muley-network-based-bonding-hybrid-access">
          <front>
            <title>Network based Bonding solution for Hybrid Access</title>
            <author fullname="Praveen Muley" initials="P." surname="Muley">
              <organization showOnFrontPage="true">Nokia</organization>
            </author>
            <author fullname="Wim Henderickx" initials="W." surname="Henderickx">
              <organization showOnFrontPage="true">Nokia</organization>
            </author>
            <author fullname="Liang Geng" initials="L." surname="Geng">
              <organization showOnFrontPage="true">China Mobile</organization>
            </author>
            <author fullname="Hans Liu" initials="H." surname="Liu">
              <organization showOnFrontPage="true">D-Link Corp</organization>
            </author>
            <author fullname="Loris Cardullo" initials="L." surname="Cardullo">
              <organization showOnFrontPage="true">Vodafone</organization>
            </author>
            <author fullname="Jonathan Newton" initials="J." surname="Newton">
              <organization showOnFrontPage="true">Vodafone</organization>
            </author>
            <author fullname="SungHoon Seo" initials="S." surname="Seo">
              <organization showOnFrontPage="true">Korea Telecom</organization>
            </author>
            <author fullname="Sagiv Draznin" initials="S." surname="Draznin">
              <organization showOnFrontPage="true">Verizon Wireless</organization>
            </author>
            <author fullname="Basavaraj Patil" initials="B." surname="Patil">
              <organization showOnFrontPage="true">AT&amp;T</organization>
            </author>
            <date day="22" month="October" year="2018"/>
            <abstract>
              <t indent="0">   In order to address increasing bandwidth demands, operators are
   considering bundling of multiple heterogeneous access networks
   (Hybrid access) for residential and enterprise customers. This
   document describes a solution for Hybrid access and covers the use
   case scenarios.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-muley-network-based-bonding-hybrid-access-03"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="IETF115.Slides" target="https://datatracker.ietf.org/meeting/105/materials/slides-105-tsvwg-sessa-62-dccp-extensions-for-multipath-operation-00" quoteTitle="true" derivedAnchor="IETF115.Slides">
          <front>
            <title>MP-DCCP for enabling transfer of UDP/IP traffic over multiple data paths in multi-connectivity networks</title>
            <author initials="M." surname="Amend" fullname="Markus Amend">
              <organization showOnFrontPage="true"/>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="IETF105" value=""/>
        </reference>
        <reference anchor="MP-DCCP.Paper" quoteTitle="true" target="https://doi.org/10.1109/LCN44214.2019.8990746" derivedAnchor="MP-DCCP.Paper">
          <front>
            <title>A Framework for Multiaccess Support for Unreliable Internet Traffic using Multipath DCCP</title>
            <author initials="M." surname="Amend" fullname="Markus Amend">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Bogenfeld" fullname="Eckard Bogenfeld">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Cvjetkovic" fullname="Milan Cvjetkovic">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="V." surname="Rakocevic" fullname="Veselin Rakocevic">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Pieska" fullname="Marcus Pieska">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Kassler" fullname="Andreas Kassler">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Brunstrom" fullname="Anna Brunstrom">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2019" month="October"/>
          </front>
          <seriesInfo name="DOI" value="10.1109/LCN44214.2019.8990746"/>
        </reference>
        <reference anchor="multipath-dccp.org" target="https://multipath-dccp.org/" quoteTitle="true" derivedAnchor="multipath-dccp.org">
          <front>
            <title>Multipath extension for DCCP</title>
            <author>
              <organization showOnFrontPage="true"/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OLIA" quoteTitle="true" derivedAnchor="OLIA">
          <front>
            <title>MPTCP is not pareto-optimal: performance issues and a possible solution</title>
            <author initials="R." surname="Khalili">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Gast">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Popovic">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="U." surname="Upadhyay">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Le Boudec">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012"/>
          </front>
          <seriesInfo name="Proceedings of the 8th international conference on Emerging networking experiments and technologies, ACM" value=""/>
        </reference>
        <reference anchor="RFC0793" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc793" derivedAnchor="RFC0793">
          <front>
            <title>Transmission Control Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="RFC" value="793"/>
          <seriesInfo name="DOI" value="10.17487/RFC0793"/>
        </reference>
        <reference anchor="RFC2104" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc2104" derivedAnchor="RFC2104">
          <front>
            <title>HMAC: Keyed-Hashing for Message Authentication</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="M. Bellare" initials="M." surname="Bellare"/>
            <author fullname="R. Canetti" initials="R." surname="Canetti"/>
            <date month="February" year="1997"/>
            <abstract>
              <t indent="0">This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2104"/>
          <seriesInfo name="DOI" value="10.17487/RFC2104"/>
        </reference>
        <reference anchor="RFC3711" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc3711" derivedAnchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t indent="0">This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="RFC4043" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc4043" derivedAnchor="RFC4043">
          <front>
            <title>Internet X.509 Public Key Infrastructure Permanent Identifier</title>
            <author fullname="D. Pinkas" initials="D." surname="Pinkas"/>
            <author fullname="T. Gindin" initials="T." surname="Gindin"/>
            <date month="May" year="2005"/>
            <abstract>
              <t indent="0">This document defines a new form of name, called permanent identifier, that may be included in the subjectAltName extension of a public key certificate issued to an entity.</t>
              <t indent="0">The permanent identifier is an optional feature that may be used by a CA to indicate that two or more certificates relate to the same entity, even if they contain different subject name (DNs) or different names in the subjectAltName extension, or if the name or the affiliation of that entity stored in the subject or another name form in the subjectAltName extension has changed.</t>
              <t indent="0">The subject name, carried in the subject field, is only unique for each subject entity certified by the one CA as defined by the issuer name field. However, the new name form can carry a name that is unique for each subject entity certified by a CA. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4043"/>
          <seriesInfo name="DOI" value="10.17487/RFC4043"/>
        </reference>
        <reference anchor="RFC4086" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc4086" derivedAnchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <date month="June" year="2005"/>
            <abstract>
              <t indent="0">Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts. However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities. The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t indent="0">Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult. This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities. It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications. 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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
        <reference anchor="RFC5238" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc5238" derivedAnchor="RFC5238">
          <front>
            <title>Datagram Transport Layer Security (DTLS) over the Datagram Congestion Control Protocol (DCCP)</title>
            <author fullname="T. Phelan" initials="T." surname="Phelan"/>
            <date month="May" year="2008"/>
            <abstract>
              <t indent="0">This document specifies the use of Datagram Transport Layer Security (DTLS) over the Datagram Congestion Control Protocol (DCCP). DTLS provides communications privacy for applications that use datagram transport protocols and allows client/server applications to communicate in a way that is designed to prevent eavesdropping and detect tampering or message forgery. DCCP is a transport protocol that provides a congestion-controlled unreliable datagram service. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5238"/>
          <seriesInfo name="DOI" value="10.17487/RFC5238"/>
        </reference>
        <reference anchor="RFC5595" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc5595" derivedAnchor="RFC5595">
          <front>
            <title>The Datagram Congestion Control Protocol (DCCP) Service Codes</title>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <date month="September" year="2009"/>
            <abstract>
              <t indent="0">This document describes the usage of Service Codes by the Datagram Congestion Control Protocol, RFC 4340. It motivates the setting of a Service Code by applications. Service Codes provide a method to identify the intended service/application to process a DCCP connection request. This provides improved flexibility in the use and assignment of port numbers for connection multiplexing. The use of a DCCP Service Code can also enable more explicit coordination of services with middleboxes (e.g., network address translators and firewalls). This document updates the specification provided in RFC 4340. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5595"/>
          <seriesInfo name="DOI" value="10.17487/RFC5595"/>
        </reference>
        <reference anchor="RFC5596" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc5596" derivedAnchor="RFC5596">
          <front>
            <title>Datagram Congestion Control Protocol (DCCP) Simultaneous-Open Technique to Facilitate NAT/Middlebox Traversal</title>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <date month="September" year="2009"/>
            <abstract>
              <t indent="0">This document specifies an update to the Datagram Congestion Control Protocol (DCCP), a connection-oriented and datagram-based transport protocol. The update adds support for the DCCP-Listen packet. This assists DCCP applications to communicate through middleboxes (e.g., a Network Address Port Translator or a DCCP server behind a firewall), where peering endpoints need to initiate communication in a near- simultaneous manner to establish necessary middlebox state. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5596"/>
          <seriesInfo name="DOI" value="10.17487/RFC5596"/>
        </reference>
        <reference anchor="RFC5597" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc5597" derivedAnchor="RFC5597">
          <front>
            <title>Network Address Translation (NAT) Behavioral Requirements for the Datagram Congestion Control Protocol</title>
            <author fullname="R. Denis-Courmont" initials="R." surname="Denis-Courmont"/>
            <date month="September" year="2009"/>
            <abstract>
              <t indent="0">This document defines a set of requirements for NATs handling the Datagram Congestion Control Protocol (DCCP). These requirements allow DCCP applications, such as streaming applications, to operate consistently, and they are very similar to the TCP requirements for NATs, which have already been published by the IETF. Ensuring that NATs meet this set of requirements will greatly increase the likelihood that applications using DCCP will function properly. 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="150"/>
          <seriesInfo name="RFC" value="5597"/>
          <seriesInfo name="DOI" value="10.17487/RFC5597"/>
        </reference>
        <reference anchor="RFC6234" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc6234" derivedAnchor="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t indent="0">Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC6356" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc6356" derivedAnchor="RFC6356">
          <front>
            <title>Coupled Congestion Control for Multipath Transport Protocols</title>
            <author fullname="C. Raiciu" initials="C." surname="Raiciu"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <author fullname="D. Wischik" initials="D." surname="Wischik"/>
            <date month="October" year="2011"/>
            <abstract>
              <t indent="0">Often endpoints are connected by multiple paths, but communications are usually restricted to a single path per connection. Resource usage within the network would be more efficient were it possible for these multiple paths to be used concurrently. Multipath TCP is a proposal to achieve multipath transport in TCP.</t>
              <t indent="0">New congestion control algorithms are needed for multipath transport protocols such as Multipath TCP, as single path algorithms have a series of issues in the multipath context. One of the prominent problems is that running existing algorithms such as standard TCP independently on each path would give the multipath flow more than its fair share at a bottleneck link traversed by more than one of its subflows. Further, it is desirable that a source with multiple paths available will transfer more traffic using the least congested of the paths, achieving a property called "resource pooling" where a bundle of links effectively behaves like one shared link with bigger capacity. This would increase the overall efficiency of the network and also its robustness to failure.</t>
              <t indent="0">This document presents a congestion control algorithm that couples the congestion control algorithms running on different subflows by linking their increase functions, and dynamically controls the overall aggressiveness of the multipath flow. The result is a practical algorithm that is fair to TCP at bottlenecks while moving traffic away from congested links. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6356"/>
          <seriesInfo name="DOI" value="10.17487/RFC6356"/>
        </reference>
        <reference anchor="RFC6773" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc6773" derivedAnchor="RFC6773">
          <front>
            <title>DCCP-UDP: A Datagram Congestion Control Protocol UDP Encapsulation for NAT Traversal</title>
            <author fullname="T. Phelan" initials="T." surname="Phelan"/>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="November" year="2012"/>
            <abstract>
              <t indent="0">This document specifies an alternative encapsulation of the Datagram Congestion Control Protocol (DCCP), referred to as DCCP-UDP. This encapsulation allows DCCP to be carried through the current generation of Network Address Translation (NAT) middleboxes without modification of those middleboxes. This document also updates the Session Description Protocol (SDP) information for DCCP defined in RFC 5762. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6773"/>
          <seriesInfo name="DOI" value="10.17487/RFC6773"/>
        </reference>
        <reference anchor="RFC6824" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc6824" derivedAnchor="RFC6824">
          <front>
            <title>TCP Extensions for Multipath Operation with Multiple Addresses</title>
            <author fullname="A. Ford" initials="A." surname="Ford"/>
            <author fullname="C. Raiciu" initials="C." surname="Raiciu"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <author fullname="O. Bonaventure" initials="O." surname="Bonaventure"/>
            <date month="January" year="2013"/>
            <abstract>
              <t indent="0">TCP/IP communication is currently restricted to a single path per connection, yet multiple paths often exist between peers. The simultaneous use of these multiple paths for a TCP/IP session would improve resource usage within the network and, thus, improve user experience through higher throughput and improved resilience to network failure.</t>
              <t indent="0">Multipath TCP provides the ability to simultaneously use multiple paths between peers. This document presents a set of extensions to traditional TCP to support multipath operation. The protocol offers the same type of service to applications as TCP (i.e., reliable bytestream), and it provides the components necessary to establish and use multiple TCP flows across potentially disjoint paths. This document defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6824"/>
          <seriesInfo name="DOI" value="10.17487/RFC6824"/>
        </reference>
        <reference anchor="RFC6904" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc6904" derivedAnchor="RFC6904">
          <front>
            <title>Encryption of Header Extensions in the Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="J. Lennox" initials="J." surname="Lennox"/>
            <date month="April" year="2013"/>
            <abstract>
              <t indent="0">The Secure Real-time Transport Protocol (SRTP) provides authentication, but not encryption, of the headers of Real-time Transport Protocol (RTP) packets. However, RTP header extensions may carry sensitive information for which participants in multimedia sessions want confidentiality. This document provides a mechanism, extending the mechanisms of SRTP, to selectively encrypt RTP header extensions in SRTP.</t>
              <t indent="0">This document updates RFC 3711, the Secure Real-time Transport Protocol specification, to require that all future SRTP encryption transforms specify how RTP header extensions are to be encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6904"/>
          <seriesInfo name="DOI" value="10.17487/RFC6904"/>
        </reference>
        <reference anchor="RFC6951" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc6951" derivedAnchor="RFC6951">
          <front>
            <title>UDP Encapsulation of Stream Control Transmission Protocol (SCTP) Packets for End-Host to End-Host Communication</title>
            <author fullname="M. Tuexen" initials="M." surname="Tuexen"/>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <date month="May" year="2013"/>
            <abstract>
              <t indent="0">This document describes a simple method of encapsulating Stream Control Transmission Protocol (SCTP) packets into UDP packets and its limitations. This allows the usage of SCTP in networks with legacy NATs that do not support SCTP. It can also be used to implement SCTP on hosts without directly accessing the IP layer, for example, implementing it as part of the application without requiring special privileges.</t>
              <t indent="0">Please note that this document only describes the functionality required within an SCTP stack to add on UDP encapsulation, providing only those mechanisms for two end-hosts to communicate with each other over UDP ports. In particular, it does not provide mechanisms to determine whether UDP encapsulation is being used by the peer, nor the mechanisms for determining which remote UDP port number can be used. These functions are out of scope for this document.</t>
              <t indent="0">This document covers only end-hosts and not tunneling (egress or ingress) endpoints.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6951"/>
          <seriesInfo name="DOI" value="10.17487/RFC6951"/>
        </reference>
        <reference anchor="RFC7323" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc7323" derivedAnchor="RFC7323">
          <front>
            <title>TCP Extensions for High Performance</title>
            <author fullname="D. Borman" initials="D." surname="Borman"/>
            <author fullname="B. Braden" initials="B." surname="Braden"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <author fullname="R. Scheffenegger" initials="R." role="editor" surname="Scheffenegger"/>
            <date month="September" year="2014"/>
            <abstract>
              <t indent="0">This document specifies a set of TCP extensions to improve performance over paths with a large bandwidth * delay product and to provide reliable operation over very high-speed paths. It defines the TCP Window Scale (WS) option and the TCP Timestamps (TS) option and their semantics. The Window Scale option is used to support larger receive windows, while the Timestamps option can be used for at least two distinct mechanisms, Protection Against Wrapped Sequences (PAWS) and Round-Trip Time Measurement (RTTM), that are also described herein.</t>
              <t indent="0">This document obsoletes RFC 1323 and describes changes from it.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7323"/>
          <seriesInfo name="DOI" value="10.17487/RFC7323"/>
        </reference>
        <reference anchor="RFC8041" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc8041" derivedAnchor="RFC8041">
          <front>
            <title>Use Cases and Operational Experience with Multipath TCP</title>
            <author fullname="O. Bonaventure" initials="O." surname="Bonaventure"/>
            <author fullname="C. Paasch" initials="C." surname="Paasch"/>
            <author fullname="G. Detal" initials="G." surname="Detal"/>
            <date month="January" year="2017"/>
            <abstract>
              <t indent="0">This document discusses both use cases and operational experience with Multipath TCP (MPTCP) in real networks. It lists several prominent use cases where Multipath TCP has been considered and is being used. It also gives insight to some heuristics and decisions that have helped to realize these use cases and suggests possible improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8041"/>
          <seriesInfo name="DOI" value="10.17487/RFC8041"/>
        </reference>
        <reference anchor="RFC8126" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc8126" derivedAnchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t indent="0">Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t indent="0">To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t indent="0">This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8174" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc8174" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t indent="0">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>
        <reference anchor="RFC8684" quoteTitle="true" target="https://www.rfc-editor.org/rfc/rfc8684" derivedAnchor="RFC8684">
          <front>
            <title>TCP Extensions for Multipath Operation with Multiple Addresses</title>
            <author fullname="A. Ford" initials="A." surname="Ford"/>
            <author fullname="C. Raiciu" initials="C." surname="Raiciu"/>
            <author fullname="M. Handley" initials="M." surname="Handley"/>
            <author fullname="O. Bonaventure" initials="O." surname="Bonaventure"/>
            <author fullname="C. Paasch" initials="C." surname="Paasch"/>
            <date month="March" year="2020"/>
            <abstract>
              <t indent="0">TCP/IP communication is currently restricted to a single path per connection, yet multiple paths often exist between peers. The simultaneous use of these multiple paths for a TCP/IP session would improve resource usage within the network and thus improve user experience through higher throughput and improved resilience to network failure.</t>
              <t indent="0">Multipath TCP provides the ability to simultaneously use multiple paths between peers. This document presents a set of extensions to traditional TCP to support multipath operation. The protocol offers the same type of service to applications as TCP (i.e., a reliable bytestream), and it provides the components necessary to establish and use multiple TCP flows across potentially disjoint paths.</t>
              <t indent="0">This document specifies v1 of Multipath TCP, obsoleting v0 as specified in RFC 6824, through clarifications and modifications primarily driven by deployment experience.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8684"/>
          <seriesInfo name="DOI" value="10.17487/RFC8684"/>
        </reference>
        <reference anchor="TS23.501" target="https://www.3gpp.org/ftp//Specs/archive/23_series/23.501/23501-g70.zip" quoteTitle="true" derivedAnchor="TS23.501">
          <front>
            <title>System architecture for the 5G System; Stage 2; Release 16</title>
            <author>
              <organization showOnFrontPage="true">3GPP</organization>
            </author>
            <date year="2020" month="December"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="diff_mptcp" numbered="true" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-differences-from-multipath-">Differences from Multipath TCP</name>
      <t indent="0" pn="section-appendix.a-1">This appendix is Informative.</t>
      <t indent="0" pn="section-appendix.a-2">Multipath DCCP is similar to Multipath TCP <xref target="RFC8684" format="default" sectionFormat="of" derivedContent="RFC8684"/>, in that it
extends the related basic DCCP transport protocol <xref target="RFC4340" format="default" sectionFormat="of" derivedContent="RFC4340"/> with
multipath capabilities in the same way as Multipath TCP extends TCP
<xref target="RFC0793" format="default" sectionFormat="of" derivedContent="RFC0793"/>.
However, because of the differences between the underlying TCP and DCCP
protocols, the transport characteristics of MPTCP and MP-DCCP are
different.</t>
      <t indent="0" pn="section-appendix.a-3"><xref target="table_tcp_dccp_comp" format="default" sectionFormat="of" derivedContent="Table 10"/> compares the protocol characteristics of TCP
and DCCP, which are by nature inherited by their respective multipath
extensions.  A major difference lies in the delivery of payload, which
is for TCP an exact copy of the generated byte-stream. DCCP behaves
in a different way and does not guarantee to deliver any payload nor the
order of delivery.
Since this is mainly affecting the receiving endpoint of a TCP or
DCCP communication, many similarities on the sender side can be identified.
Both transport protocols share the 3-way initiation of a
communication and both employ congestion control to adapt the sending
rate to the path characteristics.</t>
      <table anchor="table_tcp_dccp_comp" align="center" pn="table-10">
        <name slugifiedName="name-tcp-and-dccp-protocol-compa">TCP and DCCP protocol comparison</name>
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1">Feature</th>
            <th align="center" colspan="1" rowspan="1">TCP</th>
            <th align="center" colspan="1" rowspan="1">DCCP</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">Full-Duplex</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Connection-Oriented</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Header option space</td>
            <td align="center" colspan="1" rowspan="1">40 bytes</td>
            <td align="center" colspan="1" rowspan="1">&lt; 1008 bytes or PMTU</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Data transfer</td>
            <td align="center" colspan="1" rowspan="1">reliable</td>
            <td align="center" colspan="1" rowspan="1">unreliable</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Packet-loss handling</td>
            <td align="center" colspan="1" rowspan="1">re-transmission</td>
            <td align="center" colspan="1" rowspan="1">report only</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Ordered data delivery</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">no</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Sequence numbers</td>
            <td align="center" colspan="1" rowspan="1">one per byte</td>
            <td align="center" colspan="1" rowspan="1">one per PDU</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Flow control</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">no</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Congestion control</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">ECN support</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Selective ACK</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">depends on congestion control</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Fix message boundaries</td>
            <td align="center" colspan="1" rowspan="1">no</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Path MTU discovery</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Fragmentation</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">no</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">SYN flood protection</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">no</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Half-open connections</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">no</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-appendix.a-5">Consequently, the multipath features, shown in
<xref target="table_mptcp_mpdccp_comp" format="default" sectionFormat="of" derivedContent="Table 11"/>, are the same, supporting volatile paths
having varying capacity and latency, session handover and path
aggregation capabilities. All of them profit by the existence of
congestion control.</t>
      <table anchor="table_mptcp_mpdccp_comp" align="center" pn="table-11">
        <name slugifiedName="name-mptcp-and-mp-dccp-protocol-">MPTCP and MP-DCCP protocol comparison</name>
        <thead>
          <tr>
            <th align="center" colspan="1" rowspan="1">Feature</th>
            <th align="center" colspan="1" rowspan="1">MPTCP</th>
            <th align="center" colspan="1" rowspan="1">MP-DCCP</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">Volatile paths</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Session handover</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Path aggregation</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Data reordering</td>
            <td align="center" colspan="1" rowspan="1">yes</td>
            <td align="center" colspan="1" rowspan="1">optional</td>
          </tr>
          <tr>
            <td align="center" colspan="1" rowspan="1">Expandability</td>
            <td align="center" colspan="1" rowspan="1">limited by TCP header</td>
            <td align="center" colspan="1" rowspan="1">flexible</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-appendix.a-7">Therefore, the sender logic is not much different between MP-DCCP and
MPTCP.</t>
      <t indent="0" pn="section-appendix.a-8">The receiver side for MP-DCCP has to deal with the unreliable delivery provided by 
DCCP. The multipath sequence numbers included in MP-DCCP (see <xref target="MP_SEQ" format="default" sectionFormat="of" derivedContent="Section 3.2.5"/>) facilitates
adding optional mechanisms for data stream packet reordering 
at the receiver.  Information from the MP_RTT multipath option (<xref target="MP_RTT" format="default" sectionFormat="of" derivedContent="Section 3.2.7"/>), 
DCCP path sequencing and the DCCP Timestamp Option provide further means 
for advanced reordering approaches, e.g., as proposed in <xref target="I-D.amend-iccrg-multipath-reordering" format="default" sectionFormat="of" derivedContent="I-D.amend-iccrg-multipath-reordering"/>.
Such mechanisms do, however, not affect interoperability
and are not part of the MP-DCCP protocol.  Many 
applications that use unreliable transport protocols can also inherently process 
out-of-sequence data (e.g., through adaptive audio and video buffers), 
and so additional reordering support might not be necessary. The addition of optional 
reordering mechanisms are likely to be needed when the 
different DCCP subflows are routed across paths with different latencies. 
In theory, applications using DCCP are aware that packet reordering could 
occur, because DCCP does not provide mechanisms to restore the original packet order.</t>
      <t indent="0" pn="section-appendix.a-9">In contrast to TCP, the receiver processing for MPTCP adopted a rigid
"just wait" approach, because TCP guarantees reliable in-order delivery.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="M." surname="Amend" fullname="Markus Amend" role="editor">
        <organization abbrev="DT" showOnFrontPage="true">Deutsche Telekom</organization>
        <address>
          <postal>
            <street>Deutsche-Telekom-Allee 9</street>
            <city>Darmstadt</city>
            <code>64295</code>
            <country>Germany</country>
          </postal>
          <email>Markus.Amend@telekom.de</email>
        </address>
      </author>
      <author initials="A." surname="Brunstrom" fullname="Anna Brunstrom">
        <organization showOnFrontPage="true">Karlstad University</organization>
        <address>
          <postal>
            <street>Universitetsgatan 2</street>
            <city>Karlstad</city>
            <code>651 88</code>
            <country>Sweden</country>
          </postal>
          <email>anna.brunstrom@kau.se</email>
        </address>
      </author>
      <author initials="A." surname="Kassler" fullname="Andreas Kassler">
        <organization showOnFrontPage="true">Karlstad University</organization>
        <address>
          <postal>
            <street>Universitetsgatan 2</street>
            <city>Karlstad</city>
            <code>651 88</code>
            <country>Sweden</country>
          </postal>
          <email>andreas.kassler@kau.se</email>
        </address>
      </author>
      <author initials="V." surname="Rakocevic" fullname="Veselin Rakocevic">
        <organization showOnFrontPage="true">City, University of London</organization>
        <address>
          <postal>
            <street>Northampton Square</street>
            <city>London</city>
            <country>United Kingdom</country>
          </postal>
          <email>veselin.rakocevic.1@city.ac.uk</email>
        </address>
      </author>
      <author initials="S." surname="Johnson" fullname="Stephen Johnson">
        <organization showOnFrontPage="true">BT</organization>
        <address>
          <postal>
            <street>Adastral Park</street>
            <city>Martlesham Heath</city>
            <code>IP5 3RE</code>
            <country>United Kingdom</country>
          </postal>
          <email>stephen.h.johnson@bt.com</email>
        </address>
      </author>
    </section>
  </back>
  <!-- ##markdown-source:
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
5RSzlHaZmCphhC0u1OeT15QlmdJ4/xjmYzAiuA2mx//v//l/Kzph6Ez2Gasd
RZFNhso4yu0ALoZyOhc74+Iq0NTJuAFw3ALAt4eCa8hkoS5EZFo+MbPpZD0u
6WY+JrGjmwM1F8UxLqrhw3ZaycmzRmEB8vHx2D3+vXIiX2rBZ0WR4iXX2GVX
bpXnP6a+D27LTPN5qHTQRKJvz637lAfoTWS2qDRe8zJn5PNkqfXzSUPeg66L
rd6z5V7B1+BrKrHz6oury1zDS/2qmtJCBkIv2vX/mIWO1m/sFy1efyVI3QFY
m2+30Lev/XPTrRMuLU6xY2hwdOFSqhITjJG+2AKgOmvIVtd7jm2SY8luZaMs
Wto4hjLkrfacRqATW95haugBG19KjVMPYmHiCH0afGiUsrHkytMiEW1orp24
uALuhfPGBbaESImjpq0BbgLFa0Fh6qyz+VVaGaDqUGzRQ0fEzjqfggm8/neU
Bxsksp18muz1PLnjNE1etA9J4MCAimziChIM3ZtLSCBa/M5QgCI2aZoTFhs2
aLz39ui4Bw+OGQAGYwkZLE7svXoGbHJ2O74ur0wvvGg+HmV3N+FEIBPGqF6J
OOObhF1YKKBArYp4LZpm6u0vMIlmrHGz4Il13XlAVetk0rJVsmqdabB6bvBA
hlpu11ydsRvxuuq8of4H58zKMCQawt7i7NWMcZhBavsriGYjT0kmua1Rak7D
KlSUembz/yQEf9WFvxUDMAS+YhwyjaiekC5tINgrksLnuZ4frszD+kTKXngv
GP1O8ha1wXZXpqKqWQONBmrsMgW1iHODs3YVKhy5Iq9Q865vHf5b0cezr6KP
VsHm/xyGzq+1dH5LU+e3snUGXs1w4LK3xIX7CbHDPrAstAo1Xu6wpNwVCjSU
dyvDym2Hzf90GPCsySppwX53zPwPfuxylPyQbSGvxvC32GbMDbnNNqMnxpO2
YoWf+DTVICEYjIUbZAQfpM5wCibgVt3tPvZti5jQTgHvgDm5vbDASbkd8kK7
n7+fyGDudwJ+IT+93OwC341CxFWztHBAzujg8sNt96mGttx4n4Yl+K98o+7v
/x1u1I40/P/klyouw9deqv3uW7V1RP7nYv3vdLGG7RV21bqmbn+xIvX9F7tY
9/f78SrYGWy5WOPbZNvdas5NdL2inn4goBXdIf8fv9OM9VgZ9/crRdlG6Req
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
bSRZs5EBAA==

-->

</rfc>
