Internet-Draft | SDN MPTCP-aware MPQUIC-aware using ALTO | August 2022 |
Xing, et al. | Expires 21 February 2023 | [Page] |
This document aims to study and implement Multipath Transmission Control Protocol (MPTCP) and Multipath QUIC (MP_QUIC) 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, which can reduce the probability of transmission path congestion and improving path utilization.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 21 February 2023.¶
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
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 [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[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 [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 [MPQUIC] is a multi-path transmission protocol designed on the basis of QUIC. SDN [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 [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 [MultipathTester].¶
Realize the coupling control of MPTCP and MPQUIC subflows in the context of SDN, 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.¶
At present, some scholars have studied the model of deploying MPTCP or MPQUIC in software-defined network, [QUICSDN] \ [SDN_for_MPTCP] \ [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 [SDN_ALTO_proof] \ [SDN_ALTO], which is already a successful solution.¶
The purpose of this document is to:¶
Describe the model that an SDN controller can use to MPTCP or MPQUIC data packets in the software-defined network.¶
According to the global information obtained by the AlTO, the controller allocates MPTCP or MPQUIC data packets with efficient transmission path.¶
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 [RFC2119].¶
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.¶
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).¶
The architectural framework of multi-path transmission model based on SDN controller MPTCP and MPQUIC using ALTO is shown in Figure 1.¶
+--------------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¶
The SDN-based MPTCP and MPQUIC transmission control using ALTO model consists of three parts.¶
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¶
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¶
+---------------------+ +----------------------------+ | 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¶
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:¶
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 [RFC7149], [RFC7285], [RFC6824] and [RFC9000].¶
TBD.¶
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. This model also supports data transmission in multiple software-defined networks, and can also be applied to satellite networks, marine networks, etc. to transmit data.¶
The authors thank all reviewers for their comments.¶