< draft-xing-alto-sdn-controller-aware-mptcp-mpquic-04.txt   draft-xing-alto-sdn-controller-aware-mptcp-mpquic-05.txt >
alto Z. Xing alto Z. Xing
Internet-Draft H. Qi Internet-Draft X. Di
Intended status: Informational X. Di Intended status: Informational H. Qi
Expires: 28 October 2022 Changchun University of Science and Technology Expires: 13 November 2022 Changchun University of Science and Technology
26 April 2022 12 May 2022
The SDN-based MPTCP-aware and MPQUIC-aware Transmission Control Model The SDN-based MPTCP-aware and MPQUIC-aware Transmission Control Model
using ALTO using ALTO
draft-xing-alto-sdn-controller-aware-mptcp-mpquic-04 draft-xing-alto-sdn-controller-aware-mptcp-mpquic-05
Abstract Abstract
This document aims to study and implement MultiPath Transmission This document aims to study and implement MultiPath Transmission
Control Protocol (MPTCP) and MultiPath Quick UDP Internet Connection Control Protocol (MPTCP) and MultiPath Quick UDP Internet Connection
(MPQUIC) using application layer traffic optimization (ALTO) in (MPQUIC) using application layer traffic optimization (ALTO) in
software defined network (SDN). In a software-defined network, ALTO software defined network (SDN). In a software-defined network, ALTO
server collects network cost indicators (including link delay, number server collects network cost indicators (including link delay, number
of paths, availability, network traffic, bandwidth and packet loss of paths, availability, network traffic, bandwidth and packet loss
rate etc.), and the controller extracts MPTCP or MPQUIC packet header rate etc.), and the controller extracts MPTCP or MPQUIC packet header
skipping to change at page 1, line 42 skipping to change at page 1, line 42
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 28 October 2022. This Internet-Draft will expire on 13 November 2022.
Copyright Notice Copyright Notice
Copyright (c) 2022 IETF Trust and the persons identified as the Copyright (c) 2022 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 8, line 8 skipping to change at page 8, line 8
| | | |
+---------------------v----------------------+ | +---------------------v----------------------+ |
|Put forward and reverse flow rules to switch|----+ |Put forward and reverse flow rules to switch|----+
+--------------------------------------------+ +--------------------------------------------+
Figure 2 The flow chart of the SDN-based MPTCP-aware and MPQUIC-aware Figure 2 The flow chart of the SDN-based MPTCP-aware and MPQUIC-aware
multi-path transmission control model using ALTO multi-path transmission control model using ALTO
The flow chart of the SDN-based MPTCP-aware and MPQUIC-aware multi- The flow chart of the SDN-based MPTCP-aware and MPQUIC-aware multi-
path transmission control model using ALTO is shown in Figure 2. The path transmission control model using ALTO is shown in Figure 2. The
transmission control model is realized by the following steps: transmission control model is realized by the following steps:
* Step 1. The SDN controller creates a mapping table flows for * Step 1.ALTO server collects network cost indicators (including
link delay, number of paths, availability, network traffic,
bandwidth and packet loss rate), which are recorded as: G (V, e),
network topology g, V is the vertex and E is the edge.
* Step 2. The SDN controller creates a mapping table flows for
storing MPTCP or MPQUIC connection information, and each entry storing MPTCP or MPQUIC connection information, and each entry
structure of the mapping table flows is <key:value>; wherein key structure of the mapping table flows is <key:value>; wherein key
is the unique identifier of MPTCP or MPQUIC connection, When the is the unique identifier of MPTCP or MPQUIC connection, When the
packet comes from MPTCP, key=T+token; and when the packet comes 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 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- 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 item in the set is a sub-stream meta-
information; each sub-stream meta-information consists of source information; each sub-stream meta-information consists of source
IP, destination IP, source port, destination port, MPTCP (or IP, destination IP, source port, destination port, MPTCP (or
MPQUIC) sub-stream identifier and the path route composition. MPQUIC) sub-stream identifier and the path route composition.
* Step 2. When the data packet p of a certain MPTCP or MPQUIC * Step 3. When the data packet p of a certain MPTCP or MPQUIC
subflow reaches the first switch s1, the first switch s1 extracts subflow reaches the first switch s1, the first switch s1 extracts
the header field of the data packet p, extracts the source IP, the header field of the data packet p, extracts the source IP,
source port, destination IP and the destination port matches the source port, destination IP and the destination port matches the
source IP, source port, destination IP and destination port of the source IP, source port, destination IP and destination port of the
flow table in the first switch s1 respectively, and judges whether flow table in the first switch s1 respectively, and judges whether
the matching is successful. If so, go to step 12; if not, then 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 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 SDN controller, and at the same time adds the data packet p
to the waiting queue. to the waiting queue.
* Step 3. After receiving the data packet p, the SDN controller * Step 4. After receiving the data packet p, the SDN controller
extracts the header field of the data packet p, extracts the extracts the header field of the data packet p, extracts the
connection identifier of the data packet, and generates a key connection identifier of the data packet, and generates a key
value, where when the data packet comes from MPTCP, key=T+token; value, where when the data packet comes from MPTCP, key=T+token;
When the packet comes from MPQUIC, key=Q+CID. Then query whether 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 7, if there is a key in the mapping table flows, if so, go to step 8, if
not, go to step 4. not, go to step 5.
* Step 4. Extract the source IP, destination IP, source port, and * Step 5. Extract the source IP, destination IP, source port, and
destination port of the data packet p and generate a key value, 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 where when the data packet comes from MPTCP, key=T+token; and when
the data packet comes from MPQUIC, key=Q+CID . the data packet comes from MPQUIC, key=Q+CID .
* Step 5. ALTO to get basic network information. The controller * Step 6. ALTO to get basic network information. The controller
calculates the threshold T according to the global network state calculates the threshold T according to the global network state
information (network topology, number of switches, etc.). Using information (network topology, number of switches, etc.). Using
the depth-first traversal algorithm, find the available path set the depth-first traversal algorithm, find the available path set
R={r_1,...,r_i,...,r_m } from all source nodes whose length does 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 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 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 path r_i in R as the path route of the sub-flow, where
r_i=<s_(i,1),...,s_(i,j),...>, s_(i,j) represents the i available r_i=<s_(i,1),...,s_(i,j),...>, s_(i,j) represents the i available
path The switch numbered j, where i belong to [1,m],j belong to path The switch numbered j, where i belong to [1,m],j belong to
[1,T]. [1,T].
* Step 6. Use the MPTCP and MPQUIC connection identifiers as the * Step 7. Use the MPTCP and MPQUIC connection identifiers as the
unique identifier key of the MPTCP and MPQUIC connections, where unique identifier key of the MPTCP and MPQUIC connections, where
the key is the unique identifier of the MPTCP and MPQUIC the key is the unique identifier of the MPTCP and MPQUIC
connections. When the data packet comes from MPTCP, key=T+token; connections. When the data packet comes from MPTCP, key=T+token;
and the data packet comes from In MPQUIC, key=Q+CID. The source and the data packet comes from In MPQUIC, key=Q+CID. The source
IP, source port, destination IP, destination port, MPTCP, MPQUIC IP, source port, destination IP, destination port, MPTCP, MPQUIC
sub-flow identifier and path route of the data packet p are added 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- to the set value of sub-flow meta information as sub-flow meta-
information, and then the <key:value> The form is saved to the information, and then the <key:value> The form is saved to the
mapping table flows, and go to step 10. mapping table flows, and go to step 11.
* Step 7. The SDN controller updates the flows table according to * Step 8. The SDN controller updates the flows table according to
the global information of the network, and takes out the value the global information of the network, and takes out the value
from the connection identifier, and then composes all paths in the from the connection identifier, and then composes all paths in the
value into a set RL={r_1,r_2,...}. value into a set RL={r_1,r_2,...}.
* Step 8. The SDN controller searches for a suitable disjoint path * 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 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. the found path as route=r_i, where r_i not belong to RL.
* Step 9. Extract the source IP, destination IP, source port, * Step 10. Extract the source IP, destination IP, source port,
destination port, and MPTCP, MPQUIC sub-flow identifiers of the destination port, and MPTCP, MPQUIC sub-flow identifiers of the
data packet p, and convert the source IP, source port, destination data packet p, and convert the source IP, source port, destination
IP, destination port, MPTCP (or MPQUIC) sub-flow identifiers and IP, destination port, MPTCP (or MPQUIC) sub-flow identifiers and
the path route is added to the value as sub-flow meta information. the path route is added to the value as sub-flow meta information.
* Step 10. The SDN controller uses the source IP, source port, * Step 11. The SDN controller uses the source IP, source port,
destination IP and destination port to issue the flow table to all destination IP and destination port to issue the flow table to all
switches in the route route, and set the route switches in the route route, and set the route
route=r_i=<s_(i,1),...,s_(i,j-1),s_(i.j),s_(i,j+1),...>, for the route=r_i=<s_(i,1),...,s_(i,j-1),s_(i.j),s_(i,j+1),...>, for the
switch s_(i,j), the flow entry sent is the source IP, source port 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 to the destination, the data packets of IP and destination port
are forwarded to s_(i,j+1). are forwarded to s_(i,j+1).
* Step 11. The controller sends the reverse flow table to all * Step 12. The controller sends the reverse flow table to all
switches on the route route and sets the route switches on the route route and sets the route
route=r_i=<s_(i,1),...,s_(i,j-1),s_(i,j),s_(i,j+1),...>, for the route=r_i=<s_(i,1),...,s_(i,j-1),s_(i,j),s_(i,j+1),...>, for the
switch s_(i,j) ,the flow table entry sent is to forward the data switch s_(i,j) ,the flow table entry sent is to forward the data
packets from the destination IP, destination port to source IP, packets from the destination IP, destination port to source IP,
and source port to s_(i,j-1). and source port to s_(i,j-1).
* Step 12. The switch already contains a flow entry for processing * Step 13. The switch already contains a flow entry for processing
the data packet p, and forwards the data packet according to the the data packet p, and forwards the data packet according to the
rules defined by the flow entry, and completes the processing of rules defined by the flow entry, and completes the processing of
the data packet p. Step 2 is executed when the forwarding fails the data packet p. Step 3 is executed when the forwarding fails
or the processing of other subsequent data packets returns. or the processing of other subsequent data packets returns.
7. Security Considerations 7. Security Considerations
The transmission control model uses the default security mechanism of The transmission control model uses the default security mechanism of
SDN\ALTO\MPTCP\MPQUIC in the network, and does not modify the default SDN\ALTO\MPTCP\QUIC in the network, and does not modify the default
security mechanisms such as encryption and authentication models security mechanisms such as encryption and authentication models
[RFC7426], [RFC7285], [RFC6824] and [RFC9000]. [RFC7426], [RFC7285], [RFC6824] and [RFC9000].
8. IANA Considerations 8. IANA Considerations
TBD. TBD.
9. Discussion 9. Discussion
The SDN transmission control model proposed in this document can The SDN transmission control model proposed in this document can
skipping to change at page 10, line 38 skipping to change at page 10, line 45
verify its comprehensive transmission performance, a fat-tree data verify its comprehensive transmission performance, a fat-tree data
center network is designed. The transmission control method proposed center network is designed. The transmission control method proposed
in this document improves the throughput by about 3 times compared to in this document improves the throughput by about 3 times compared to
the default transmission control method. This model also supports the default transmission control method. This model also supports
data transmission in multiple software-defined networks, and can also data transmission in multiple software-defined networks, and can also
be applied to satellite networks, marine networks, etc. to transmit be applied to satellite networks, marine networks, etc. to transmit
data. data.
10. Acknowledgments 10. Acknowledgments
The authors thank many reviewers for their comments. The authors thank all reviewers for their comments.
11. References 11. References
11.1. Normative References 11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
skipping to change at page 12, line 29 skipping to change at page 12, line 40
and Networking Conference (WCNC), 2019, pp. 1-6,", and Networking Conference (WCNC), 2019, pp. 1-6,",
<https://doi.org/10.1109/WCNC.2019.8885585>. <https://doi.org/10.1109/WCNC.2019.8885585>.
Authors' Addresses Authors' Addresses
Ziyang Xing Ziyang Xing
Changchun University of Science and Technology Changchun University of Science and Technology
Changchun Changchun
Email: more60@163.com Email: more60@163.com
Hui Qi Xiaoqiang Di
Changchun University of Science and Technology Changchun University of Science and Technology
Changchun Changchun
Email: qihui@cust.edu.cn Email: dixiaoqiang@cust.edu.cn
Xiaoqiang Di Hui Qi
Changchun University of Science and Technology Changchun University of Science and Technology
Changchun Changchun
Email: dixiaoqiang@cust.edu.cn Email: qihui@cust.edu.cn
 End of changes. 25 change blocks. 
28 lines changed or deleted 33 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/