<?xml version="1.0" encoding="US-ASCII"?>
<!-- This is built from a template for a generic Internet Draft. Suggestions for
     improvement welcome - write to Brian Carpenter, brian.e.carpenter @ gmail.com 
     This can be converted using the Web service at http://xml.resource.org/ -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<!-- You want a table of contents -->
<!-- Use symbolic labels for references -->
<!-- This sorts the references -->
<!-- Change to "yes" if someone has disclosed IPR for the draft -->
<!-- This defines the specific filename and version number of your draft (and inserts the appropriate IETF boilerplate -->
<?rfc sortrefs="yes"?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc topblock="yes"?>
<?rfc comments="no"?>
<rfc category="std" docName="draft-xing-nmop-sdn-controller-aware-mptcp-mpquic-01" ipr="trust200902">
  <front>
    <title abbrev="SDN MPTCP-aware MPQUIC-aware using ALTO">The SDN-based MPTCP-aware and MPQUIC-aware Transmission Control Model using ALTO</title>
    <author fullname="Ziyang Xing" initials="Z." surname="Xing">
      <organization>Changchun University of Science and Technology</organization>
      <address>
        <postal>
          <street/>
          <city>Changchun</city>
          <code>130022</code>
          <country>P. R. China</country>
          <region/>
        </postal>
        <phone/>
        <email>xzynet@gmail.com</email>
        <uri/>
      </address>
    </author>
    <author fullname="Xiaoqiang Di" initials="X." surname="Di">
      <organization>Changchun University of Science and Technology</organization>
      <address>
        <postal>
          <street/>
          <city>Changchun</city>
          <code>130022</code>
          <country>P. R. China</country>
        </postal>
        <email>dixiaoqiang@cust.edu.cn</email>
      </address>
    </author>  

    <author fullname="Hui Qi" initials="H." surname="Qi">
      <organization>Changchun University of Science and Technology</organization>
      <address>
        <postal>
          <street/>
          <city>Changchun</city>
          <code>130022</code>
          <country>P. R. China</country>
          <region/>
        </postal>
        <phone/>
        <email>qihui@cust.edu.cn</email>
        <uri/>
      </address>
    </author>
   
    <!---->
    <date day="18" month="June" year="2024"/>
    <area>Operations and Management Area</area>
    <workgroup>nmop</workgroup>
    <keyword>SDN, Controller, MPTCP, MPQUIC, ALTO</keyword>
    <abstract>
      <t>This document aims to study and implement Multipath Transmission Control Protocol (MPTCP) and Multipath QUIC (MPQUIC) using application layer traffic optimization (ALTO) in software defined network (SDN). In a software-defined network, ALTO server collects network cost indicators (including link delay, number of paths, availability, network traffic, bandwidth and packet loss rate etc.), and the controller extracts MPTCP or MPQUIC packet header to allocate MPTCP or MPQUIC packet to suitable transmission path according to the network cost indicators by ALTO and YANG topology modules, which can reduce the probability of transmission path congestion and improving path utilization in a multipath transmission network. </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>The conventional TCP protocol only uses one path between a server and a client to exchange data. In order to realize the simultaneous transmission of data via multiple paths between a server and a client, the IETF standardized MPTCP <xref target="RFC8684"/> . MPTCP uses multiple paths between hosts to transmit data at the same time, but it is necessary to modify the operating system kernel to change the protocol stack of both parties or use an application proxy <xref target="RFC8803"/> in order to increase the MPTCP protocol. MPTCP has disadvantages such as difficulty in deployment. In order to solve the drawbacks in the transmission network and adapt to the faster development of the Internet, Google proposed the HTTP/3 protocol which is QUIC <xref target="RFC9000"/>. QUIC has many new features, such as: 0-RTT, forward error correction, connection migration, flexible congestion control, multiplexing without head-of-line blocking, and more. MPQUIC <xref target="MPQUIC"/> is a multi-path transmission protocol designed on the basis of QUIC. SDN <xref target="RFC7149"/> is a new network innovation architecture. By separating control and forwarding, it breaks the closedness of traditional network equipment, and uses programming to make network management more concise and programmability. ALTO <xref target="RFC7285"/> can obtain and expose global network information to a controller, such as network traffic, link delay, etc. MPTCP and MPQUIC have their own characteristics <xref target="MultipathTester"/>.</t>

      <t>Realize the coupling control of MPTCP and MPQUIC subflows in the context of SDN, and obtain the network state information and allocate the optimal path according to the information conveyed in the ALTO Protocol, so as to improve the bandwidth utilization and resource allocation fairness, effectively alleviate the network congestion and realize the load balance between paths.</t>

      <t>At present, some scholars have studied the model of deploying MPTCP or MPQUIC in software-defined network, <xref target="QUICSDN"/> \ <xref target="SDN for MPTCP"/> \ <xref target="SDN MPTCP"/>, but their SDN controller cannot manage the headers of MPTCP and MPQUIC data packets at the same time, and cannot manage of MPTCP and MPQUIC links at the same time.The ALTO Protocol can easily obtain various network states (including multiple SDNs, dynamic networks) from controller without the internal details of the network provider, and deliver controller decisions <xref target="SDN ALTO proof"/> \ <xref target="SDN ALTO"/>, which is already a successful solution.</t>
      <t>The purpose of this document is to:</t>
      <t>Describe the model that an SDN controller can use to MPTCP or MPQUIC data packets in the software-defined network.</t>
      <t>According to the global information obtained by the AlTO, the controller allocates MPTCP or MPQUIC data packets with efficient transmission path. </t>
      
</section>
    <section anchor="term" title="Terminology">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119"/>.</t>
    </section>

    <section title="Original transmission control mode of MPTCP or MPQUIC in SDN">
      <t>In a software-defined network, the original controller cannot extract MPTCP or MPQUIC data packets. If MPTCP or MPQUIC as a server/client is deployed in SDN with a original controller and there are multiple transmission paths, the controller only selects one of the paths to exchange data, and the other paths are "idle" (i.e., there is only one path to transmit data). The utilization rate is low, and it is impossible to transmit data on multiple paths at the same time, resulting in low transmission efficiency.</t>
    </section>
<section title='Delivering functions by ALTO'>
  <t>An ALTO server is used to obtain network status information, and an SDN controller is considered as an ALTO client. The ALTO server collects network cost indicators (including link delay, number of paths, availability, network traffic, bandwidth and packet loss rate).</t>
</section>    
<section title='Architectural Framework'>
<t>The architectural framework of multi-path transmission model based on SDN controller MPTCP and MPQUIC using ALTO is shown in Figure 1.</t>
<figure>
<artwork><![CDATA[
+--------------Network Status Acquisition----------------+
|                     ALTO Server                        |
|       (Network topology, traffic distribution,         |
|               link delay/bandwidth)                    |
+---------------^----------------------------------------+
                |
                +------ALTO Protocol----+
                                        |
+-----------Control Plane-(ALTO Client)-v----------------+
|    +-------------------------------------------+       |
|    |     Extract MPTCP / MPQUIC header module  |       |
|    |          (Extract packet header)          |       |
|    +---------------------+---------------------+       |
|                          |                             |
|                     token or CID                       |
|                          |                             |
|    +---------------------v---------------------+       | 
|    |            Path selection module          |       |
| +-->    (Select the appropriate path from      <--+    |
| |  |    the candidate paths - assigned path)   |  |    |
| |  +---------------------+---------------------+  |    |   
| |                        |                   Allocated |
| |            +-----Allocate path------+         path   |
| |            |                        |           |    |
| |  +---------v----------+ +-----------v--------+  |    |
| |  |     Flow rules     | |  Link management   |  |    |
| |  | generation module  | |      module        |  |    |
| |  |   (All switch      | |(Manage the mapping +--+    |
| |  |  assignment flow   | |table flows and save|       |
| |  |  tables for the    | |   the connection   |       |
| |  |  selected path)    | |    information)    |       |
| |  +---------+----------| +--------------------+       |
+-|------------|-----------------------------------------+
 Network       |
 status        +----Flow rules-----+
  |                                |
  |  +---------------Data Plane----v-------------+ 
  |  | +------------------+ +------------------+ |
  |  | |    SDN switch    | |    SDN switch    | |
  +--+ | (Forwarding flow | | (Forwarding flow | |
     | | rules and obtain | | rules and obtain | |
     | |  network status) | |  network status) | |
     | +------------------+ +------------------+ |
     +-------------------------------------------+

Figure 1: Schematic diagram of SDN-based MPTCP-aware and MPQUIC-aware
transmission control model using ALTO]]></artwork>
</figure>
<t>The SDN-based MPTCP and MPQUIC transmission control using ALTO model consists of three parts.</t>
<ul>
  <li>The first part is the network status acquisition module, which acquires basic network status information from ALTO. </li>
  <li>The second part is the control plane, that is the SDN controller, also the client of ALTO, which includes extracting MPTCP / MPQUIC header module, path selection module,  flow rules generation module and link management module. The main function is to extract the header identifier token of MPTCP (or CID of MPQUIC) according to the data packet (token from MPTCP unencrypted header and CID from MPQUIC unencrypted header, see Figure 2-3 for details), obtain the global information of the whole network according to ALTO and allocate suitable paths and put flow rules to switches according to the global information of the entire network, and manage the links of the entire network at the same time.</li>
  <li>The third part is the data plane which is some OpenFlow switches. It executes the flow rules issued by the controller and realizes the forwarding of data packets.</li>
</ul>
<figure>
<artwork><![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
 +---------------+---------------+-------+-----+-+---------------+
 |     Kind      |  Length = 12  |Subtype|     |B|   Address ID  |
 +---------------+---------------+-------+-----+-+---------------+
 |                   Receiver's Token (32 bits)                  |
 +---------------------------------------------------------------+
 |                Sender's Random Number (32 bits)               |
 +---------------------------------------------------------------+
Figure 2: MPTCP Header Packet Format]]></artwork></figure>
<figure>
<artwork><![CDATA[
  Long Header Packet {
   Header Form (1) = 1,
   Fixed Bit (1) = 1,
   Long Packet Type (2),
   Type-Specific Bits (4),
   Version (32),
   Destination Connection ID Length (8),
   Destination Connection ID (0..160),
   Source Connection ID Length (8),
   Source Connection ID (0..160),
   Type-Specific Payload (..),
  }
Figure 3: QUIC Header Packet Format]]></artwork></figure>
</section>
<section title="Implementation and Deployment">
<figure>
<artwork name="SDN-based MPTCP-aware and MPQUIC-aware multi-path transmission control model using ALTO"><![CDATA[
      +---------------------+        +----------------------------+
      | Create a flow table |        |The packet p arrives at s1, |
      +----------+----------+        | and s1 performs flow rules <---+
                 |                   |   item matching on p       |   |
                 |                   +--------------+-------------+   |
      +----------v----------+                       |                 |
      |Obtain Network Status|                       |                 |
      |Extract packet header|<-----+                |                 |
      +----------+----------+      |                v                 |
                 |                 |                /\                |
     +-----------+------------+    |               /  \               |
     |           |            |    +---NO-----Match successful?       |
     v           v            v                    \  /               |
    /\          /\           /\                     \/                |
   /  \        /  \         /  \                    YES               |
MP_CAPABLE     CID         MP_JOIN                   |                |
   \  /        \  /         \  /                     |                |
    \/          \/           \/         +------------v--------------+ |
    |            |            |         |Forward packet according to|-+ 
    |            |            v         |the flow rules instruction |
    |            |     +------+------+  +------------^--------------+                 
    |            |     |Extract token|               |
    |            |     +------+------+               |
    |            |            |                      |
    |            |            |                      |
    |     +------v----+ +-----v-------+              |
    |     | key=Q+CID | | key=T+token |              |
    |     +-----+-----+ +------+------+              |
    |           |              |                     |
    |           +------+-------+                     |
    |                  |                             |
    |                  v                             |
    |                 /\                             |
    |                /  \                            |
    |             Is there a key                     |
    |        +--in the flow table?--+                |
    |        |       \  /           |                |
    |       NO        \/           YES               |
    |        |                      |                |
    | +------v----------+   +-------v------+         |
    | |Extract source IP|   |              |         |
    | |destination IP   |   | Path of all  |         |
    | |source port      |   | subflows in  |         |
    | |destination port |   | value,RL     |         |
    | |and subflow      |   |              |         |
    | |identifier       |   |              |         |
    | +-------+---------+   +-------+------+         |
    |         |                     |                |
    |         |                     |                |    
    | +-------v---------+   +-------v-------+        |
    | |Add the subflow  |   |Extract the    |        |
    | |meta information |   |subflow meta   |        |
    | |to value and then|   |information    |        |
    | |save <key:value> |   |and add it to  |        |
    | |to the flow rules|   |value          |        |
    | +-------+---------+   +-------+-------+        |
    +-------->|                     |                |
              |                     |                |
      +-------v---------+   +-------v------+         |
      |                 |   |Allocate a new|         |
      |Allocate the     |   |path to p, and|         |
      |first path to p  |   |route does not|         |
      |route            |   |belong to RL  |         |
      +-------+---------+   +-------+------+         |
              |                     |                |
              +----------+----------+                |
                         |                           |
                         |                           |
   +---------------------v----------------------+    |
   |Put forward and reverse flow rules to switch|----+
   +--------------------------------------------+    
Figure 4: The flow chart of the SDN-based MPTCP-aware and MPQUIC-aware
 multi-path transmission control model using ALTO]]></artwork></figure>
      <t>The flow chart of the SDN-based MPTCP-aware and MPQUIC-aware multi-path transmission control model using ALTO is shown in Figure 4. The transmission control model is realized by the following steps:</t>
      <ul>
      <li>
        Step 1. The ALTO server collects network cost indicators (including link delay, number of paths, availability, network traffic, bandwidth and packet loss rate, etc.), which are recorded as: G (V, e), network topology g, V is the vertex and E is the edge.
      </li>
      <li>Step 2. The connection ID(CID) is the connection identifier of MPQUIC, and can be obtained from the QUIC header(connection ID, see Figure 3 for details). The SDN controller creates a mapping table flows for storing MPTCP or MPQUIC connection information, and each entry structure of the mapping table flows is &lt;key:value&gt;; wherein key is the unique identifier of MPTCP or MPQUIC connection, When the packet comes from MPTCP, key=T+token; and when the packet comes from MPQUIC, key=Q+CID (The letters T and Q are used to distinguish MPTCP and MPQUIC). value is a set of sub-stream meta-information, each item in the set is a sub-stream meta-information; each sub-stream meta-information consists of source IP, destination IP, source port, destination port, MPTCP (or MPQUIC) sub-stream identifier and the path route composition.</li>
      <li>Step 3. When the data packet p from the MPTCP or MPQUIC server reaches the first switch s1, the first switch s1 extracts the header field of the data packet p, extracts the source IP, source port, destination IP and the destination port matches the source IP, source port, destination IP and destination port of the flow table in the first switch s1 respectively, and judges whether the matching is successful. If so, go to step 13; if not, then the first switch s1 encapsulates the data packet p and forwards it to the SDN controller, and at the same time adds the data packet p to the waiting queue.</li>
      <li>Step 4. After receiving the data packet p, the SDN controller extracts the header field of the data packet p, extracts the connection identifier of the data packet, and generates a key value, where when the data packet comes from MPTCP, key=T+token; When the packet comes from MPQUIC, key=Q+CID. Then query whether there is a key in the mapping table flows, if so, go to step 8, if not, go to step 5.</li>
      <li>Step 5. Extract the source IP, destination IP, source port, and destination port of the data packet p and generate a key value, where when the data packet comes from MPTCP, key=T+token; and when the data packet comes from MPQUIC, key=Q+CID .</li>
      <li>Step 6. ALTO to get basic network information. The controller calculates the threshold T according to the global network state information (network topology, number of switches, etc.). Using the depth-first traversal algorithm, find the available path set R={r_1,...,r_i,...,r_m } from all source nodes whose length does not exceed a certain threshold T to the destination node, r_i is the i available path, in the available path set Select a shortest path r_i in R as the path route of the sub-flow, where r_i=&lt;s_(i,1),...,s_(i,j),...&gt;, s_(i,j) represents the i available path The switch numbered j, where i belong to [1,m],j belong to [1,T].</li>
      <li>Step 7. Use the MPTCP and MPQUIC connection identifiers as the unique identifier key of the MPTCP and MPQUIC connections, where the key is the unique identifier of the MPTCP and MPQUIC connections. When the data packet comes from MPTCP, key=T+token; and the data packet comes from In MPQUIC, key=Q+CID. The source IP, source port, destination IP, destination port, MPTCP, MPQUIC sub-flow identifier and path route of the data packet p are added to the set value of sub-flow meta information as sub-flow meta-information, and then the &lt;key:value&gt; The form is saved to the mapping table flows, and go to step 11.</li>
      <li>Step 8. The SDN controller updates the flows table according to the global information of the network, and takes out the value from the connection identifier, and then composes all paths in the value into a set RL={r_1,r_2,...}.</li>
      <li>Step 9. The SDN controller searches for a suitable disjoint path for the data packet p according to the method in Step 5, and sets the found path as route=r_i, where r_i not belong to RL.</li>
      <li>Step 10. Extract the source IP, destination IP, source port, destination port, and MPTCP, MPQUIC sub-flow identifiers of the data packet p, and convert the source IP, source port, destination IP, destination port, MPTCP (or MPQUIC) sub-flow identifiers and the path route is added to the value as sub-flow meta information.</li>
      <li>Step 11. The SDN controller uses the source IP, source port, destination IP and destination port to issue the flow table to all switches in the route route, and set the route route=r_i=&lt;s_(i,1),...,s_(i,j-1),s_(i.j),s_(i,j+1),...&gt;, for the switch s_(i,j), the flow entry sent is the source IP, source port to the destination, the data packets of IP and destination port are forwarded to s_(i,j+1).</li>
      <li>Step 12. The controller sends the reverse flow table to all switches on the route route and sets the route route=r_i=&lt;s_(i,1),...,s_(i,j-1),s_(i,j),s_(i,j+1),...&gt;, for the switch s_(i,j) ,the flow table entry sent is to forward the data packets from the destination IP, destination port to source IP, and source port to s_(i,j-1).</li>
      <li>Step 13. The switch already contains a flow entry for processing the data packet p, and forwards the data packet according to the rules defined by the flow entry, and completes the processing of the data packet p. If an error occurs or execution fails, the timestamp, error code, source switch number and error switch number are sent to the ALTO server, which records them in the error.log file.</li>
      </ul>
    </section>
  <section title="Security Considerations">
      <t>The transmission control model uses the default security mechanism of SDN\ALTO\MPTCP\QUIC in the network, and does not modify the default security mechanisms such as encryption and authentication models <xref target="RFC7149"/>, <xref target="RFC7285"/>, <xref target="RFC6824"/> and <xref target="RFC9000"/>.</t>
    </section>
    <section title="IANA Considerations">
      <t>TBD.</t>
    </section>
  <section title="Discussion">
      <t>The SDN transmission control model proposed in this document can simultaneously identify MPTCP and MPQUIC data packets and allocate optimal paths according to the network status obtained by ALTO, which expands the application scope of MPTCP and MPQUIC. In order to verify its comprehensive transmission performance, a fat-tree data center network is designed. The transmission control method proposed in this document improves the throughput by about 3 times compared to the default transmission control method <xref target="Survey"/> \ <xref target="Optimizing multipath QUIC"/>. This model can also be applied to satellite networks, marine networks, etc.</t>
      <t>In future work, We will further research multipath transmission in software defined information-centric network.</t>
    </section>
    <section title="Acknowledgments">
      <t>The authors thank all reviewers for their comments.</t>
    </section>      
  </middle>

  <back>
    <references title="References">
<references title="Normative References">
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <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="RFC9000" target="https://www.rfc-editor.org/info/rfc9000">
<front>
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
<author initials="J." surname="Iyengar" fullname="J. Iyengar" role="editor">
<organization/>
</author>
<author initials="M." surname="Thomson" fullname="M. Thomson" role="editor">
<organization/>
</author>
<date year="2021" month="May"/>
<abstract>
<t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="9000"/>
<seriesInfo name="DOI" value="10.17487/RFC9000"/>
</reference>

<reference anchor="RFC8803" target="https://www.rfc-editor.org/info/rfc8803">
<front>
<title>0-RTT TCP Convert Protocol</title>
<author fullname="O. Bonaventure" initials="O" role="editor" surname="Bonaventure"/>
<author fullname="M. Boucadair" initials="M" role="editor" surname="Boucadair"/>
<author fullname="S. Gundavelli" initials="S" surname="Gundavelli"/>
<author fullname="S. Seo" initials="S" surname="Seo"/>
<author fullname="B. Hesmans" initials="B" surname="Hesmans"/>
<date month="July" year="2020"/>
<abstract>
<t>This document specifies an application proxy, called Transport Converter, to assist the deployment of TCP extensions such as Multipath TCP. A Transport Converter may provide conversion service for one or more TCP extensions. The conversion service is provided by means of the 0-RTT TCP Convert Protocol (Convert).</t>
<t>This protocol provides 0-RTT (Zero Round-Trip Time) conversion service since no extra delay is induced by the protocol compared to connections that are not proxied. Also, the Convert Protocol does not require any encapsulation (no tunnels whatsoever).</t>
<t>This specification assumes an explicit model, where the Transport Converter is explicitly configured on hosts. As a sample applicability use case, this document specifies how the Convert Protocol applies for Multipath TCP.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="8803"/>
<seriesInfo name="DOI" value="10.17487/RFC8803"/>
</reference>

<reference anchor="RFC8684" target="https://www.rfc-editor.org/info/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>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>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>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="RFC7285" target="https://www.rfc-editor.org/info/rfc7285">
<front>
<title>Application-Layer Traffic Optimization (ALTO) Protocol</title>
<author initials="R." surname="Alimi" fullname="R. Alimi" role="editor">
<organization/>
</author>
<author initials="R." surname="Penno" fullname="R. Penno" role="editor">
<organization/>
</author>
<author initials="Y." surname="Yang" fullname="Y. Yang" role="editor">
<organization/>
</author>
<author initials="S." surname="Kiesel" fullname="S. Kiesel">
<organization/>
</author>
<author initials="S." surname="Previdi" fullname="S. Previdi">
<organization/>
</author>
<author initials="W." surname="Roome" fullname="W. Roome">
<organization/>
</author>
<author initials="S." surname="Shalunov" fullname="S. Shalunov">
<organization/>
</author>
<author initials="R." surname="Woundy" fullname="R. Woundy">
<organization/>
</author>
<date year="2014" month="September"/>
<abstract>
<t>Applications using the Internet already have access to some topology information of Internet Service Provider (ISP) networks. For example, views to Internet routing tables at Looking Glass servers are available and can be practically downloaded to many network application clients. What is missing is knowledge of the underlying network topologies from the point of view of ISPs. In other words, what an ISP prefers in terms of traffic optimization -- and a way to distribute it.</t>
<t>The Application-Layer Traffic Optimization (ALTO) services defined in this document provide network information (e.g., basic network location structure and preferences of network paths) with the goal of modifying network resource consumption patterns while maintaining or improving application performance. The basic information of ALTO is based on abstract maps of a network. These maps provide a simplified view, yet enough information about a network for applications to effectively utilize them. Additional services are built on top of the maps.</t>
<t>This document describes a protocol implementing the ALTO services. Although the ALTO services would primarily be provided by ISPs, other entities, such as content service providers, could also provide ALTO services. Applications that could use the ALTO services are those that have a choice to which end points to connect. Examples of such applications are peer-to-peer (P2P) and content delivery networks.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="7285"/>
<seriesInfo name="DOI" value="10.17487/RFC7285"/>
</reference>

<reference anchor="RFC7149" target="https://www.rfc-editor.org/info/rfc7149">
<front>
<title>Software-Defined Networking: A Perspective from within a Service Provider Environment</title>
<author fullname="M. Boucadair" initials="M" surname="Boucadair"/>
<author fullname="C. Jacquenet" initials="C" surname="Jacquenet"/>
<date month="March" year="2014"/>
<abstract>
<t>Software-Defined Networking (SDN) has been one of the major buzz words of the networking industry for the past couple of years. And yet, no clear definition of what SDN actually covers has been broadly admitted so far. This document aims to clarify the SDN landscape by providing a perspective on requirements, issues, and other considerations about SDN, as seen from within a service provider environment.</t>
<t>It is not meant to endlessly discuss what SDN truly means but rather to suggest a functional taxonomy of the techniques that can be used under an SDN umbrella and to elaborate on the various pending issues the combined activation of such techniques inevitably raises. As such, a definition of SDN is only mentioned for the sake of clarification.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="7149"/>
<seriesInfo name="DOI" value="10.17487/RFC7149"/>
</reference>

<reference anchor="RFC6824" target="https://www.rfc-editor.org/info/rfc6824">
<front>
<title>TCP Extensions for Multipath Operation with Multiple Addresses</title>
<author initials="A." surname="Ford" fullname="A. Ford">
<organization/>
</author>
<author initials="C." surname="Raiciu" fullname="C. Raiciu">
<organization/>
</author>
<author initials="M." surname="Handley" fullname="M. Handley">
<organization/>
</author>
<author initials="O." surname="Bonaventure" fullname="O. Bonaventure">
<organization/>
</author>
<date year="2013" month="January"/>
<abstract>
<t>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>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>
</references>
<references title="Informative References">
        <reference anchor="Survey" target="https://doi.org/10.1016/j.jnca.2022.103581">
        <front>
          <title>Afzal S, Testoni V, Rothenberg C E, et al. A holistic survey of multipath wireless video streaming[J]. Journal of Network and Computer Applications, 2023, 212: 103581.</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>  
        <reference anchor="MPQUIC" target="https://datatracker.ietf.org/doc/draft-ietf-quic-multipath/">
        <front>
          <title>Multipath Extension for QUIC</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>
        <reference anchor="MultipathTester" target="https://10.23919/TMA.2019.8784653">
        <front>
          <title>Coninck Q D ,  Bonaventure O . MultipathTester: Comparing MPTCP and MPQUIC in Mobile Environments[C]// 2019 Network Traffic Measurement and Analysis Conference (TMA). 2019.</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>
        <reference anchor="Optimizing multipath QUIC" target="https://doi.org/10.1016/j.comnet.2022.109198">
        <front>
          <title>Zeng H, Cui L, Tso F P, et al. Optimizing multipath QUIC transmission over heterogeneous paths[J]. Computer Networks, 2022, 215: 109198.</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>      
      <reference anchor="QUICSDN" target="https://ui.adsabs.harvard.edu/abs/2021arXiv210708336K">
        <front>
          <title>Kumar P , Chen J , Dezfouli B . QuicSDN: Transitioning from TCP to QUIC for Southbound Communication in SDNs[J]. 2021.</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>
      <reference anchor="SDN ALTO proof" target="https://doi.org/10.1109/NETWKS.2014.6959200">
        <front>
          <title>Faigl, Z. ,  Z. Szabo , and  R. Schulcz . "Application-layer traffic optimization in software-defined mobile networks: A proof-of-concept implementation." IEEE(2014):1-6.</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="SDN ALTO" target="https://doi.org/10.1109/ICC.2012.6364858">
        <front>
          <title>V. K. Gurbani, M. Scharf, T. V. Lakshman, V. Hilt and E. Marocco, "Abstracting network state in Software Defined Networks (SDN) for rendezvous services," 2012 IEEE International Conference on Communications (ICC), 2012, pp. 6627-6632.</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>      
      <reference anchor="SDN for MPTCP" target="https://doi.org/10.1109/ICC.2017.7996653">
        <front>
          <title>Hussein A , Elhajj I H , Chehab A , et al. SDN for MPTCP: An enhanced architecture for large data transfers in datacenters[C]// IEEE International Conference on Communications. IEEE, 2017.</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="SDN MPTCP" target="https://doi.org/10.1109/WCNC.2019.8885585">
        <front>
          <title>7. K. Gao, C. Xu, J. Qin, S. Yang, , et al. QoS-driven Path Selection for MPTCP: A Scalable SDN-assisted Approach, 2019 IEEE Wireless Communications and Networking Conference (WCNC)[C], 2019.</title>
          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>
    </references>
    </references>
  </back>
</rfc>