CN113824648B - QoE-based MPTCP data packet scheduling method and device - Google Patents
QoE-based MPTCP data packet scheduling method and device Download PDFInfo
- Publication number
- CN113824648B CN113824648B CN202111076606.XA CN202111076606A CN113824648B CN 113824648 B CN113824648 B CN 113824648B CN 202111076606 A CN202111076606 A CN 202111076606A CN 113824648 B CN113824648 B CN 113824648B
- Authority
- CN
- China
- Prior art keywords
- mptcp
- substream
- qoe
- target
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The invention provides a QoE-based MPTCP data packet scheduling method and a device, wherein the method comprises the following steps: acquiring QoE parameter values of a target application program; wherein the QoE parameter value is used to characterize the service requirements of the target application; based on the QoE parameter value, controlling and executing the sorting operation aiming at the characteristic parameters of each MPTCP substream in the target network state to obtain a sorting result; wherein the characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product; scheduling the data packet of the target application program to a target MPTCP subflow based on the QoE parameter value and the sequencing result; and the matching degree of the characteristic parameters of the target MPTCP substream and the service requirement of the target application program is highest. The invention can realize congestion control and data packet scheduling based on MPTCP and can simultaneously meet the data transmission requirements of different types of application programs.
Description
Technical Field
The present invention relates to the field of communications and computer networks, and in particular, to a QoE-based MPTCP packet scheduling method and apparatus.
Background
Since the purpose of the multipath transmission control protocol (MultiPath Transmission Control Protocol, MPTCP) is to use multiple paths simultaneously to maximize channel resource usage, the applicable scenario of MPTCP is also becoming more and more extensive with the construction of more and more base stations (4G/5G) or public WiFi access points, such as in edge wireless networks and car networking.
In the prior art, when a mobile intelligent terminal is connected to an edge wireless network through MPTCP, the size of a congestion window is adjusted based on the average congestion window of each sub-stream and the average effective throughput of each sub-stream predicted by round trip time, so that the data packet scheduling and the congestion control are realized.
However, since the prior art only considers the round trip time and the average congestion window of each sub-flow when implementing the packet scheduling and the congestion control, and does not consider different requirements of various application programs on the mobile intelligent terminal on data transmission, the reliability and the accuracy of performing the packet scheduling and the congestion control based on the MPTCP are not high.
Disclosure of Invention
The invention provides a QoE-based MPTCP data packet scheduling method and device, which are used for solving the problem that the reliability and the accuracy of data packet scheduling and congestion control are not high due to the fact that round trip time and average congestion window of each sub-stream are only considered when data packet scheduling and congestion control are carried out in the prior art, and achieving the purpose that the data transmission requirements of different types of application programs can be met simultaneously when the data packet scheduling and the congestion control are carried out based on MPTCP.
The invention provides a QoE-based MPTCP data packet scheduling method, which comprises the following steps:
Acquiring QoE parameter values of a target application program; wherein the QoE parameter value is used to characterize the service requirements of the target application;
Based on the QoE parameter value, controlling and executing the sorting operation aiming at the characteristic parameters of each MPTCP substream in the target network state to obtain a sorting result; wherein the characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product;
scheduling the data packet of the target application program to a target MPTCP subflow based on the QoE parameter value and the sequencing result; and the matching degree of the characteristic parameters of the target MPTCP substream and the service requirement of the target application program is highest.
According to the QoE-based MPTCP packet scheduling method provided by the present invention, the controlling and executing the sorting operation for the characteristic parameters of each MPTCP subflow in the target network state based on the QoE parameter value, to obtain the sorting result, includes:
Establishing a plurality of MPTCP substreams between the MPTCP substreams and a server;
When the condition of the target network is detected to represent network congestion, based on the QoE parameter value, controlling to execute the adjustment operation of a congestion window value or a slow start threshold value for each MPTCP subflow;
and when the adjustment operation is determined to be executed, sorting the characteristic parameters of each MPTCP substream respectively to obtain a sorting result.
According to the QoE-based MPTCP packet scheduling method provided by the present invention, when the target network state is detected to represent network congestion, based on the QoE parameter value, the adjustment operation of the congestion window value or the slow start threshold value for each MPTCP subflow is controlled and executed, including:
when the state of the target network is detected to represent network congestion, the size relation between the congestion window value and the slow start threshold value in each MPTCP substream is respectively judged;
When the congestion window value is determined to be smaller than a slow start threshold value and the QoE parameter value characterizes at least two different service requirements, respectively adjusting the slow start threshold value to be a congestion window value of a first preset multiple;
and when the congestion window value is determined to be greater than or equal to a slow start threshold value and the QoE parameter value characterizes at least two different service requirements, respectively adjusting the congestion window value to be the maximum value of the bandwidth delay and the congestion window value.
According to the QoE-based MPTCP packet scheduling method provided by the present invention, the establishing a plurality of MPTCP subflows with a server includes:
acquiring a public network IP address list of a server;
When the public network IP address list is determined to comprise one public network IP address, N private IP addresses are used for respectively establishing N MPTCP substreams between the public network IP addresses;
When the public network IP address list comprises M public network IP addresses, N private IP addresses are used for respectively establishing N x M MPTCP subflows with the M public network IP addresses; wherein N, M are integers greater than 1, respectively.
According to the QoE-based MPTCP packet scheduling method provided by the present invention, when the target network state is detected to represent network congestion, based on the QoE parameter value, the adjustment operation of the congestion window value or the slow start threshold value for each MPTCP subflow is controlled and executed, including:
When the state of the target network is detected to represent network congestion and the QoE parameter value represents at least two different service requirements, sending a data packet to a server;
And when the confirmation packet fed back by the server for the data packet is not received within the preset time period, respectively adjusting the slow start threshold value in each MPTCP substream to be the maximum value of a congestion window value and a preset congestion window threshold value which are of a second preset multiple.
According to the QoE-based MPTCP packet scheduling method provided by the present invention, after the step of obtaining the QoE parameter value of the target application program, the method further includes:
When determining that the QoE parameter value represents a first MPTCP substream of a service requirement, judging the accumulated number of data packets sent to a server through the first MPTCP substream;
And when the accumulated number exceeds a preset number threshold, controlling to stop data transmission operation between the server and the first MPTCP substream.
According to the QoE-based MPTCP packet scheduling method provided by the present invention, the QoE parameter value of the target application program is obtained, including:
and acquiring a preset socket address, and reading QoE parameter values of a target application program from preset bytes of the preset socket address.
The invention also provides an MPTCP data packet scheduling device based on QoE, which comprises:
the acquisition module is used for acquiring QoE parameter values of the target application program; wherein the QoE parameter value is used to characterize the service requirements of the target application;
The control module is used for controlling and executing the sorting operation aiming at the characteristic parameters of each MPTCP substream in the target network state based on the QoE parameter value to obtain a sorting result; wherein the characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product;
a scheduling module, configured to schedule, based on the QoE parameter value and the ordering result, a data packet of the target application program into a target MPTCP subflow; and the matching degree of the characteristic parameters of the target MPTCP substream and the service requirement of the target application program is highest.
The invention also provides an electronic device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, wherein the processor implements the steps of the QoE-based MPTCP packet scheduling method according to any of the above when executing the program.
The present invention also provides a non-transitory computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements the steps of a QoE-based MPTCP packet scheduling method as described in any of the above.
The invention provides a QoE-based MPTCP data packet scheduling method and a QoE-based MPTCP data packet scheduling device, wherein the QoE-based MPTCP data packet scheduling method comprises the steps of firstly obtaining QoE parameter values capable of representing service requirements of a target application program, then controlling and executing a sequencing value of characteristic parameters of each MPTCP subflow in a target network state based on the QoE parameter values, and finally executing scheduling operation of data packets of the target application program based on the sequencing result and the QoE parameter values; because the characteristic parameters of each MPTCP substream at least comprise round trip delay, congestion window value and bandwidth delay product, the characteristic parameters of each MPTCP substream in the target network state are sequenced based on the QoE parameter value of the target application program, the purpose of accurately knowing the transmission quality of each MPTCP substream in the network congestion state can be achieved, and the purpose of rapidly and accurately scheduling the data packet of the target application program into the MPTCP substream which is most matched with the service requirement of the data packet can also be achieved, so that the network congestion control and the data packet scheduling based on the MPTCP can simultaneously meet the data transmission requirements of different types of application programs, and the depth and the breadth of the application of the MPTCP protocol in an actual edge wireless network are greatly accelerated.
Drawings
In order to more clearly illustrate the invention or the technical solutions of the prior art, the following description will briefly explain the drawings used in the embodiments or the description of the prior art, and it is obvious that the drawings in the following description are some embodiments of the invention, and other drawings can be obtained according to the drawings without inventive effort for a person skilled in the art.
Fig. 1 is a flow chart of a QoE-based MPTCP packet scheduling method provided by the present invention;
Fig. 2 is a schematic diagram of defining QoE parameter values of a target application according to the present invention;
Fig. 3 is a schematic diagram of a process of establishing an MPTCP subflow when a public network IP address is provided in the present invention;
Fig. 4 is a schematic diagram of a process of establishing MPTCP subflow when a plurality of public network IP addresses are provided in the present invention;
Fig. 5 is a schematic diagram of a key structure used when a QoE parameter value provided by an embodiment of the present invention is transferred to a terminal core;
FIG. 6 is a schematic diagram of a real test environment provided by an embodiment of the present invention;
Fig. 7 is a schematic diagram of a process of using a browser in Android 11 to access a cloud server to provide video according to an embodiment of the present invention;
FIG. 8 is a schematic diagram of testing network performance parameters from OnePlus T to a cloud server using two commands (iporf 3 and ping) provided by an embodiment of the present invention;
Fig. 9 is a schematic diagram of a correspondence between a file size range and a file number included in a folder driver uploaded to a cloud server by using a scp command according to an embodiment of the present invention;
Fig. 10 is a schematic diagram of performance comparison of sending 160MB of data to a cloud server when QoE parameter values=1, 2,3, 7, 11 through def-cubic, def-ola, QMS-QCC, respectively, using scp according to an embodiment of the present invention;
fig. 11 is a schematic diagram of performance comparison of sending 160MB of data to a cloud server when QoE parameter values=1, 2, 3, 7, and 11 through def-cubic, def-ola, and QMS-QCC, respectively, using the iperf3 according to the embodiment of the present invention;
fig. 12 is a schematic structural diagram of an MPTCP packet scheduling device based on QoE according to an embodiment of the present invention;
fig. 13 is a schematic structural diagram of an electronic device provided by the present invention.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the present invention more apparent, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings, and it is apparent that the described embodiments are some embodiments of the present invention, not all embodiments. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
With the construction of more and more base stations (4G/5G) or WiFi access points in public places, the application fields of MPTCP are more and more, such as an edge wireless network and an Internet of vehicles.
In an edge wireless network, due to the asymmetry of network paths (i.e. WiFi and cellular), performance of MPTCP will be deteriorated, good packet scheduling may significantly improve MPTCP throughput, and incorrect packet scheduling may prevent users from benefiting from multi-substream aggregation capability, and the existing scheduler may perform scheduling operation on the packets, but cannot perform effective and reasonable packet scheduling when various APPs running on the mobile intelligent terminal run, because different APPs have different requirements on data volume, instantaneity and reliability of transmission, so that efficiency and reliability of packet scheduling and congestion control in a network congestion state are low.
Based on the above problems, the invention provides a QoE-based MPTCP packet scheduling method, which aims to solve the problem that different service requirements of various application programs can be satisfied simultaneously when congestion control and packet scheduling are effectively performed in a network congestion state, and an execution main body of the QoE-based MPTCP packet scheduling method is a terminal core of a mobile intelligent terminal. Fig. 1 is a flow chart of an MPTCP packet scheduling method based on QoE, provided by the invention, as shown in fig. 1, where the QoE-based MPTCP packet scheduling method includes:
step S110, obtaining QoE parameter values of the target application program.
Wherein the QoE parameter value may be used to characterize the service requirements of the target application.
Specifically, an operating system in the mobile intelligent terminal may be composed of a user space and a terminal kernel, the user space includes various application programs, a target application program may be one of the various application programs, when the target application program receives a start trigger instruction of a user, a quality of experience (Quality of Experience, qoE) parameter value may be generated based on a service requirement of the target application program on data transmission, and then the QoE parameter value is transmitted to the terminal kernel; the activation trigger instruction may be an instruction generated based on a touch operation of the user.
As shown in fig. 2, regarding the QoE parameter value generated by the target application, an 8-bit byte may be used to represent a service requirement, and the value of each bit may be 0 or 1, if the value is 1, to indicate that the service needs to be provided, and if the value is 0, to indicate that the service does not need to be provided; and, the 8-bit byte may be represented as 8 columns in fig. 2, when the low 4 bits in the 8-bit byte are adopted, column WiFi may represent that MPTCP subflows are established through a WiFi network interface, column cellular network (cellular) represents that MPTCP subflows are established through a cellular network interface, large file (bigfile) represents that the target application program tends to transmit the large file, column real-time (real time) represents that the target application program tends to transmit the small file in real time and is sensitive to delay, different service requirements may be combined into a plurality of service requirement groups, the value of each service requirement group is QoE parameter value, the last column in fig. 2 represents the value of each service requirement group, and fig. 2 shows that QoE parameter value may be 1,2, 3, 7 or 11.
Further, in fig. 2, a QoE parameter value of 1 indicates that the target application tends to send data only over the WiFi substream; a QoE parameter value of 2 indicates that the target application tends to send data only through the cellular substream; qoE parameter value 3 represents establishing a sub-flow for MPTCP connection over the WiFi network interface and the cellular network interface, through which the target application may send data; qoE parameter value 7 indicates that the target application is inclined to transfer large files over WiFi and cellular substreams, the particular substream over which each packet is sent is determined by congestion control and packet scheduling, with the goal of providing better large file transfer performance in the wireless edge network; qoE parameter value 11 indicates that the target application tends to transport small files over WiFi and cellular substreams, and the particular substream over which each packet is sent is also determined by congestion control and packet scheduling, even though the WiFi network is functioning well, the MPTCP substream that can provide the lowest delay is scheduled based on very delay-sensitive requirements.
It should be noted that if the service requirements of the target application program exceeds eight kinds, for example, the service requirements of the target application program may include price, cost, power consumption, and the like in addition to the several service requirements shown in fig. 2, all service requirement groups may be directly numbered at this time, the value obtained after numbering is the QoE parameter value, and the value range of the QoE parameter value may be 1-254.
And step 120, based on the QoE parameter value, controlling and executing the sorting operation of the characteristic parameters of each MPTCP substream in the target network state to obtain a sorting result.
The characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product, and the target network state can at least comprise the state of network congestion.
Specifically, the terminal kernel of the mobile intelligent terminal can detect the network state in real time, so that congestion control operation can be started in time when network congestion is detected; when the terminal kernel detects network congestion each time, congestion control operation can be performed on each MPTCP subflow based on the obtained QoE parameter value of the target application program, for example, parameters to be maintained of the MPTCP subflow can be adjusted based on the QoE parameter value, the parameters to be maintained can include parameters representing effective utilization of available resources and correct use of bandwidth, so that each MPTCP subflow enters a congestion avoidance stage or a slow start stage in a network congestion state, then, the characteristic parameters of each MPTCP subflow entering the congestion avoidance stage or the slow start stage are respectively sequenced to obtain a sequencing result, when the characteristic parameters at least include round trip delay, a congestion window value and a bandwidth delay product, the sequencing result can include the sequencing value (rtt_cwnd, sort_bdp) of each MPTCP subflow, if the round trip delay of a certain MPTCP subflow is the minimum value, the sort_rt_is set to be 1, and if the MPTCP subflow is not the minimum value, the round trip delay is set to be 0; setting the start_cwnd of a certain MPTCP subflow to 1 if its congestion window value is maximum, and setting the start_cwnd of the MPTCP subflow to 0 if its congestion window value is not maximum; the start_bdp of a certain MPTCP subflow is set to 1 if its bandwidth-delay product is maximum, and the start_bdp of the MPTCP subflow is set to 0 if its bandwidth-delay product is not maximum. Thus, the ranking result may be used to characterize the performance quality level of each MPTCP subflow after performing congestion control operations based on the QoE parameter values.
Step S130, scheduling the data packet of the target application program to a target MPTCP subflow based on the QoE parameter value and the sorting result.
The characteristic parameter of the target MPTCP subflow may have the highest matching degree with the service requirement of the target application program.
Specifically, the terminal core of the mobile intelligent terminal may schedule the data packet of the target application program to the target MPTCP subflow with the highest matching degree with the service requirement based on the QoE parameter value and the round trip delay, congestion window and bandwidth delay product sequencing value (sort_rtt, sort_cwnd, sort_bdp) of each MPTCP subflow, and the scheduling process may include: for the situation that the value of trigger is 1, when the QoE parameter value is determined to be 1, the 4G substream is paused to be used, and the WIFI substream is scheduled to be used as a target MPTCP substream for data transmission; when the QoE parameter value is 2, the WIFI substream is suspended to be used, and the 4G substream is scheduled to be used as a target MPTCP substream for data transmission; when the QoE parameter value is 3, selecting the sub-stream with the largest bandwidth delay product and the smallest round trip delay from the WiFi sub-stream and the cellular sub-stream, selecting the sub-stream with the largest congestion window, selecting the MPTCP sub-stream with the smallest round trip delay again, and then taking the selected sub-stream as the target MPTCP sub-stream to send a data packet to a server; when the QoE parameter value is 7, selecting the substream with the largest congestion window from the WiFi substream and the cellular substream, and then taking the selected substream as a target MPTCP substream transmission large file; when the QoE parameter value is 11, a substream with the smallest round trip delay is first selected from the WiFi substream and the cellular substream, and then the selected substream is used as a target MPTCP substream transmission small file.
The MPTCP subflow scheduling process for the trigger value of 0 may schedule the subflows for data transmission based on the conventional scheduling algorithm, which is not described herein.
The QoE-based MPTCP data packet scheduling method provided by the invention comprises the steps of firstly obtaining QoE parameter values capable of representing service requirements of a target application program, then controlling and executing a sequencing value of characteristic parameters of each MPTCP subflow in a target network state based on the QoE parameter values, and finally executing scheduling operation of data packets of the target application program based on the sequencing result and the QoE parameter values; because the characteristic parameters of each MPTCP substream at least comprise round trip delay, congestion window value and bandwidth delay product, the characteristic parameters of each MPTCP substream in the target network state are sequenced based on the QoE parameter value of the target application program, the purpose of accurately knowing the transmission quality of each MPTCP substream in the network congestion state can be achieved, and the purpose of rapidly and accurately scheduling the data packet of the target application program into the MPTCP substream which is most matched with the service requirement of the data packet can also be achieved, so that the network congestion control and the data packet scheduling based on the MPTCP can simultaneously meet the data transmission requirements of different types of application programs, and the depth and the breadth of the application of the MPTCP protocol in an actual edge wireless network are greatly accelerated.
Alternatively, step S120 may be implemented by the following procedure:
Firstly, establishing a plurality of MPTCP substreams between the MPTCP substreams and a server; then, when the condition of the target network is detected to represent network congestion, based on the QoE parameter value, controlling to execute the adjustment operation of the congestion window value or the slow start threshold value for each MPTCP subflow; and finally, when the adjustment operation is determined to be executed, the characteristic parameters of each MPTCP substream are respectively sequenced, and a sequencing result is obtained.
Specifically, when detecting that the target application program generates the QoE parameter value, the terminal kernel of the mobile intelligent terminal can be further connected to the cloud server through system call connection, and a plurality of MPTCP substreams are established between the MPTCP protocol and the cloud server; the network state can be detected in real time, so that the congestion window value or the slow start threshold value of each MPTCP subflow can be timely adjusted based on the QoE parameter value when the network congestion state occurs, thereby avoiding or preventing the MPTCP subflow from being affected by network congestion. Wherein the slow start threshold and congestion window value may be the to-be-maintained parameters for each MPTCP subflow.
Further, after the terminal kernel detects that the congestion window value or the slow start threshold value of each MPTCP subflow is adjusted, it may be determined that the adjustment operation for the congestion window value or the slow start threshold value of each MPTCP subflow is performed, and at this time, the characteristic parameters of each MPTCP subflow may be respectively subjected to the sorting operation, so as to obtain a sorting result.
The method for scheduling the MPTCP data packet based on the QoE adjusts the congestion window value or the slow start threshold value of each MPTCP substream in the network congestion state based on the QoE parameter value of the target application program, and further sorts the characteristic parameters of each MPTCP substream when the adjustment operation execution is finished, thereby achieving the purpose of improving the bandwidth utilization efficiency of each MPTCP substream and the effective utilization rate of available resources, and providing a powerful basis for subsequent scheduling of the MPTCP substream with the highest service demand matching degree with the target application program.
Optionally, the process of establishing a plurality of MPTCP subflows between the mobile intelligent terminal and the server includes:
acquiring a public network IP address list of a server; when determining that a public network IP address list comprises a public network IP address, establishing N MPTCP substreams between N private IP addresses and the public network IP address respectively; when the public network IP address list comprises M public network IP addresses, N private IP addresses are used for respectively establishing N x M MPTCP subflows with the M public network IP addresses; wherein N, M are integers greater than 1, respectively.
Specifically, the terminal core of the mobile intelligent terminal firstly receives the public network IP address list sent by the cloud server, and determines whether the number of public network IP addresses in the public network IP address list is one or more, when it is determined that the public network IP address list includes one public network IP address, as shown in fig. 3, a plurality of MPTCP subflows may be established between a plurality of network interfaces and the public network IP address, where the establishment process includes:
firstly, an MPTCP multipath control module of a terminal core sends a SYN packet with an MPTCP_CAPABLE option to a cloud server; then, if the cloud server supports the MPTCP protocol, sending a SYN+ACK data packet with an MPTCP_CAPABLE option to an MPTCP multipath control module; finally, the MPTCP multipath control module initiates the MPTCP connection and establishes the first MPTCP subflow (main subflow) by acknowledging the MPTCP connection by sending an ACK packet with the mptcp_capability option to the cloud server. In the process of establishing the first MPTCP subflow, the MPTCP multipath control module and the cloud server exchange random keys for generating tokens for authentication when a new subflow is added. After the MPTCP multipath control module establishes a first MPTCP subflow (main subflow) with the cloud server through a three-way handshake (including mptcp_capability option), the MPTCP multipath control module uses a second private IP address of the mobile intelligent terminal to establish a connection with a public network IP address of the cloud server through a SYN packet of the mptcp_join option, and then successfully establishes a second subflow (auxiliary subflow). The cloud server sends a private IP address list to the MPTCP multipath control module, which then fails if it uses the private IP address of the mobile intelligent terminal to establish a connection with the private IP address of the cloud server through the SYN packet of the mptcp_join option. When the mobile intelligent terminal has N private IP addresses, N MPTCP substreams can be established between the mobile intelligent terminal and the cloud server by using a SYN data packet (comprising an MPTCP_CAPABLE option or an MPTCP_JOIN option), and each application program on the mobile intelligent terminal can simultaneously use the N MPTCP substreams to send data to the cloud server.
In addition, when it is determined that the public network IP address list includes M public network IP addresses, as shown in fig. 4, n×m MPTCP subflows may be established between the N network interfaces and the M public network IP addresses, where the establishment procedure includes:
When the public network IP address list includes M public network IP addresses, the cloud server may transmit the public network IP address list including M public network IP addresses to the Linux kernel of the cloud server by executing a user space program by the cloud server administrator, and then the Linux kernel sends the public network IP address list including M public network IP addresses to the terminal kernel of the mobile intelligent terminal, where the terminal kernel may establish n×m MPTCP subflows, such as cellular subflows and WiFi subflows, based on N private IP addresses and M public network IP addresses, where each MPTCP subflow is established by using a SYN packet (including mptcp_capability option or mptcp_join option) respectively.
It should be noted that, when the terminal core has established multiple MPTCP subflows with the cloud server, it may be verified by the target application program that the data packets are sent to the cloud server by each MPTCP subflow, for example, the target application program sends a data packet to the cloud server through each MPTCP subflow, the terminal core may receive an Acknowledgement (ACK) packet fed back by the cloud server, and based on a time point of each received ACK packet, the terminal core may calculate a round trip delay of each MPTCP subflow and perform a round trip delay update operation to update the round trip delay of each MPTCP subflow to a minimum round trip delay, where the update operation may include: and when the calculated round-trip delay of a certain MPTCP substream is smaller than the current round-trip of the MPTCP substream, updating the current delay into the calculated round-trip delay.
Then, after the target application program sends L data packets to the cloud server through each MPTCP subflow, when the terminal kernel receives L ACK packets on each MPTCP subflow and performs a Round Trip Time (RTT) update operation, it may be determined that each MPTCP subflow can stably transmit data, and the Round Trip Time of each MPTCP subflow is the minimum Round Trip Time, and further the value of the trigger is set to 1, where the trigger value is 1, which may characterize the behavior that the QoE parameter transferred by the target application program to the terminal kernel starts to affect congestion control and packet scheduling. Wherein L may have a value of 30 and W may be less than or equal to 30.
According to the QoE-based MPTCP data packet scheduling method, the purpose of flexibly and reliably establishing a plurality of MPTCP substreams is achieved by using the mode of establishing the MPTCP substreams between the N private IP addresses of the mobile intelligent terminal and one public network IP address or a plurality of public network IP addresses of the server, and the diversity of the MPTCP substreams is effectively improved.
Optionally, for the case that the QoE parameter value of the target application is 3, 7 or 11, when the terminal kernel detects that the target network state characterizes network congestion, based on the QoE parameter value, controlling to execute an adjustment operation of the congestion window value or the slow start threshold value for each MPTCP subflow, including:
When the state of the target network is detected to represent network congestion, firstly, the size relation between the congestion window value and the slow start threshold value in each MPTCP substream is respectively judged; then, when the congestion window value is smaller than a slow start threshold value and the QoE parameter value characterizes at least two different service requirements, respectively adjusting the slow start threshold value to be a congestion window value of a first preset multiple; and finally, when the congestion window value is larger than or equal to a slow start threshold value and the QoE parameter value characterizes at least two different service requirements, respectively adjusting the congestion window value to be the maximum value of the bandwidth time delay and the congestion window value.
Specifically, when the terminal kernel detects that the target network state is the network congestion state, the size relation between the congestion window value of each MPTCP subflow and the slow start threshold value can be judged first, when the congestion window value of a certain MPTCP subflow is smaller than the slow start threshold value and the QoE parameter value is 3, 7 or 11, the MPTCP subflow is controlled to perform the slow start stage, and when the trigger value is 1 and the value of slowone is 1, the slow start threshold value (ssthresh) of the MPTCP subflow is adjusted to be 9/8 times of the congestion window value (CWND), that is, ssthresh=cwnd is 9/8, and meanwhile the value of slowone is set to be 0; when the value of trigger is 1 and the value of slowone is 0, then ssthresh of the MPTCP subflow is set to CWND, i.e. ssthresh=cwnd. The effect of the condition variable slowone is that each round of congestion control performs an update operation only once for the slow-start threshold of each MPTCP subflow, respectively.
When the congestion window value of a certain MPTCP subflow is greater than or equal to the slow start threshold and the QoE parameter value is 3, 7 or 11, the MPTCP subflow is controlled to enter a congestion avoidance phase, then a value of a Bandwidth Delay Product (BDP) of the MPTCP subflow is calculated based on the minimum round trip delay and bottleneck bandwidth estimation value of the MPTCP subflow, and then the maximum value of BDP and CWND of the MPTCP subflow is set as the congestion window value of the MPTCP subflow, that is, cwnd=max (CWND, BDP). In this way, the adjustment operation of the congestion window value or slow-start threshold value of each MPTCP subflow is achieved.
Optionally, for the case that the QoE parameter value of the target application is 3, 7 or 11, when the terminal kernel detects that the target network state characterizes network congestion, based on the QoE parameter value, controlling to execute an adjustment operation of the congestion window value or the slow start threshold value for each MPTCP subflow, including:
When the state of the target network is detected to represent network congestion and the QoE parameter value represents at least two different service requirements, sending a data packet to a server; and when the confirmation packet fed back by the server for the data packet is not received within the preset time period, respectively adjusting the slow start threshold value in each MPTCP substream to be the maximum value of a congestion window value and a preset congestion window threshold value which are of a second preset multiple.
Specifically, when the terminal kernel detects that the target network state is a network congestion state and the QoE parameter value characterizes at least two different service requirements, that is, the QoE parameter value is 3, 7 or 11, the target application program is controlled to respectively send data packets to the cloud server through each MPTCP subflow and receive ACK packets fed back by the cloud server for each data packet, when it is determined that no ACK packet fed back by the cloud server for the data packet is received within a preset time period after a certain MPTCP subflow sends a data packet, the MPTCP subflow is considered to have packet loss, at this time, the terminal kernel controls and adjusts the slow start threshold of the MPTCP subflow, and can adjust the slow start threshold of the MPTCP subflow to be a maximum value of 0.7 times of congestion window values and 2, that is, ssthresh=max ((CWND 717)/1024,2); the slow start threshold of the MPTCP subflow may also be adjusted to a maximum of 0.9 times the congestion window value and 2, i.e. ssthresh=max ((cwnd×922)/1024,2), with the aim of ensuring better throughput and maximum bandwidth utilization. Wherein the second preset multiple may be 0.7 or 0.9.
Optionally, for the case that the QoE parameter value of the target application is 1 or 2, when the terminal kernel detects that the target network state characterizes network congestion, based on the QoE parameter value, controlling to execute an adjustment operation of the congestion window value or the slow start threshold value for each MPTCP subflow, including:
Firstly, when a first MPTCP substream of which the QoE parameter value represents one service requirement is determined, judging the accumulated number of data packets sent to a server through the first MPTCP substream; and then determining that when the accumulated number exceeds a preset number threshold, controlling to stop the data transmission operation between the control and the server in the first MPTCP subflow.
Specifically, based on the condition that the QoE parameter value is 1 or 2, it may be set that the mobile intelligent terminal includes two network interfaces and corresponds to the WIFI substream and the 4G substream, the terminal kernel may set a receiving window value (RWND) based on its receiving capability, and write the receiving window value into a window field in the TCP header and then send the receiving window value to the cloud server, where the sending window upper limit value of the cloud server may be set as the minimum value of the congestion window value and the receiving window value, that is, the sending window upper limit of the cloud server is min (CWND, RWND); and, each time the target application transmits a packet to the cloud server through a certain MPTCP subflow, the value of nif_ sends belonging to the MPTCP subflow will be increased by 1, and the variable nif_ sends represents the number of packets transmitted through the MPTCP subflow.
Further, when the terminal kernel determines that the QoE parameter value is 1 and the data packet is transmitted between the 4G substream and the cloud server, determining the number nif_ sends of the data packets transmitted in the WiFi substream, and when the number nif_ sends of the data packets transmitted in the WiFi substream is greater than J, stopping data transmission between the mobile intelligent terminal and the cloud server in the 4G substream in a manner of transmitting ZeroWindow data packets in the 4G substream to the cloud server; when the terminal kernel determines that the QoE parameter value is 2 and the data packets are transmitted between the cloud server and the WIFI substream, the quantity nif_ sends of the data packets transmitted in the 4G substream is determined, and when the quantity nif_ sends of the data packets transmitted in the 4G substream is determined to be larger than J, the data transmission between the mobile intelligent terminal and the cloud server in the WiFi substream is stopped in a mode that the Zero Window data packets are transmitted to the cloud server through the WiFi substream. The value of J may be determined based on the number of data packets included in the information amount of the packet capturing analysis, for example, the value of J may be 10.
In addition, based on the condition that the QoE parameter value is 1 or 2, in order to ensure that the cloud server timely knows the time point when the mobile intelligent terminal receives data again, the cloud server can send a keep-alive packet to the mobile intelligent terminal through a WIFI substream or a 4G substream at regular intervals, and when the cloud server receives TCP ZeroWindow data packets fed back by the mobile intelligent terminal based on the keep-alive packet, the connection of the WIFI substream or the 4G substream can be continuously maintained; when the mobile intelligent terminal receives the data transmission starting instruction while in the suspension state, the transient state can be updated to the data transmission state, and the cloud server is further informed of the time point of recovering the data stream by sending a TCP Window update packet to the cloud server. Therefore, the cloud server is prevented from turning off the corresponding MPTCP substream connection when the mobile intelligent terminal does not send data temporarily or turning off the MPTCP substream connection when the cloud server cannot receive the data sent by the mobile intelligent terminal for a long time. When QoE is equal to 1 or 2, the mobile intelligent terminal may also save a certain bandwidth in a manner that any data packet is not transmitted through the 4G sub-stream or the WiFi sub-stream.
It should be noted that, for the sending window of the cloud server, the upper limit is min (CWND, RWND), if RWND is smaller than CWND, the receiving capability of the mobile intelligent terminal limits the maximum value of the sending window of the cloud server, and if CWND is smaller than RWND, the network congestion limits the maximum value of the sending window of the cloud server; since the TCP header allocates only 16 bits for the window segment variable (RWND) and is maintained by the mobile intelligent terminal, the mobile intelligent terminal can advertise 2 16 B or 64KB as its RWND; if the window scaling option is used and a scaling factor of a power of 2 is maintained, a window of up to 1GB may be advertised. In addition, since the mobile intelligent terminal uses the receiving window value RWND to limit (e.g., reduce) the number of packets transmitted by the cloud server, the network intermediate device (e.g., network address translation, firewall, etc.) performing the flow control does not affect the method of the present invention.
According to the QoE-based MPTCP data packet scheduling method provided by the invention, when the QoE parameter value of the target application program represents at least two different service requirements, the purpose of congestion control or packet loss processing based on MPTCP is realized by executing the adjustment operation mode of the slow start threshold value or the congestion window value of each MPTCP sub-stream, and when the QoE parameter value of the target application program represents one service requirement, the purpose of congestion control of the two MPTCP sub-streams is realized by mutually exclusive use of the two MPTCP sub-streams, so that the flexibility and the reliability of executing congestion control for each MPTCP by the mobile intelligent terminal are improved, and the diversity and the accuracy of data interaction between the mobile intelligent terminal and the cloud server are also improved.
Optionally, the process of step S110 may include: the method comprises the steps of firstly obtaining a preset socket address, and then further reading QoE parameter values of a target application program from preset bytes of the preset socket address.
Specifically, when the target application program generates the QoE parameter value based on its own service requirement for data transmission, the QoE parameter value may be transferred to the terminal core through a preset socket address, and the manner in which the target application program transfers the QoE parameter value to the terminal core through the preset socket address includes: as shown in fig. 5b, when the target application connects to the cloud server using IPv4, the target application may use the 16 th byte in struct sockaddr_in to deliver QoE parameter values to the terminal core; as shown in fig. 5c, when the target application connects to the cloud server using IPv6, the target application may send QoE parameter values to the terminal kernel using byte 2 in struct sockaddr_in6. Wherein, the sockaddr and the sockaddr_in are 16 bytes, and since the 9 th byte to the 16 th byte in the sockaddr_in are not used, any one byte of the 8 bytes can be used for placing the QoE parameter value, the invention uses the 16 th byte in the sockaddr_in and the sockaddr to place the QoE parameter value; wherein struct sockaddr and struct sockaddr_in represent IPv4 sockets, respectively, and sockaddr_in6 represents IPv6 sockets.
It should be noted that, as shown in fig. 5, the two preset sockets of the sockaddr and the sockaddr_in are 16 bytes, the preset socket of the struct sockaddr_in6 is 28 bytes, and the three preset sockets all include sin_family of 2 bytes. The sockaddr uses the remaining 14 bytes to represent sa_data, while the sockaddr_in splits the 14 bytes into sin_port (port), sin_addr (IP address), and sin_zero, which are used to stuff bytes so that the sockaddr_in and the sockaddr remain the same size. Also, in the user space, the sockaddr_in structure is filled with a protocol family type, an IP address, and a port number, and then converted to a sockaddr in the terminal core.
In struct sockaddr_in6, the type of member sin6_family is unsigned short int and its maximum is 45 (include/linux/socket.h), which is much smaller than 255 (first byte), so the second byte of member sin6_family can also be used to represent QoE parameters, as shown in fig. 5 c. Of course, for struct sockaddr_in, the second byte of member sin_family may also be used to represent the QoE parameter, as shown in fig. 5 b.
According to the QoE-based MPTCP data packet scheduling method, the QoE parameter value is simply and efficiently transmitted to the terminal core by reading the QoE parameter value from the preset byte of the preset socket, and the transmission reliability of the QoE parameter value is effectively improved.
To illustrate the availability and effectiveness of the QoE parameter value driven MPTCP packet scheduling method for an edge wireless network of the present invention, a test environment shown in fig. 6 may be set for verification, in fig. 6, the cloud server is a remote cloud server having 2 CPU cores, 4GB memory, 4Mbps downlink bandwidth, fedora (version 5.4 Linux kernel) is installed, an ethernet interface is used, MPTCP v0.95 is integrated in the Linux kernel, and a default LRF scheduler is used; the mobile intelligent terminal is a mobile phone OnePlus T running Android11, and the modified MPTCP v0.95 (including congestion control QCC and packet scheduling QMS) is integrated in the Android11 kernel using 4G and WiFi network interfaces. While accessing video (http:// 8.140.122.222/jdhl.mp4) provided by the cloud server using the browser in Android11, the cloud server uses tcpdump command to perform packet-grabbing analysis, and it can be determined that video data is transmitted simultaneously through two paths, as shown in fig. 7. Two commands (iperf 3 and ping) were used in Android11 to test network performance from OnePlus T to cloud servers, the measured network parameters are shown in fig. 8. The TTL (time to live) default value of Android11 is 64, so OnePlus T is 12 (64-52) and 14 (64-50) respectively through the hops between WiFi and 4G and cloud server, RTT (round trip time) is in milliseconds, mdev parameter in ping command output represents average deviation (total standard deviation), which is essentially the average value of each RTT from RTT average value, and the higher the mdev is, the larger the variation amplitude of RTT is.
Two types of data were next tested: (1) A 160MB single file (generated using the iperf3 command); (2) The folder drivers from the Linux kernel, including 4749 files, total 160MB, the correspondence between the file size range and the number of files is shown in fig. 9.
The method of the invention is implemented in Android 11, and three combinations of congestion control and packet scheduling are tested and compared: (1) def-cubic: a combination of default LRF scheduler and cubic congestion controller; (2) def-olia: a combination of default LRF scheduler and olia congestion controller; (3) QMS-QCC: a combination of QMS scheduler and QCC congestion controller.
The following takes 2 experiments as examples: (1) Sending 160MB data (folder drivers) to a cloud server using scp; (2) sending 160MB of data to the cloud server using the iperf 3. And (3) injection: the source code of scp and iperf3 has been modified to support delivery of QoE parameters.
An example of QoE-driven MPTCP packet scheduling method for an edge wireless network includes the steps of:
Step1, when QoE parameter values are 1, 2, 3, 7 and 11 respectively, 160MB data (folder drivers) are sent to a cloud server through def-cubic by using scp;
step 2, when QoE parameter values are 1,2, 3, 7 and 11 respectively, 160MB data (folder drivers) are sent to the cloud server through def-olia by using scp;
step 3, when QoE parameter values are 1, 2,3, 7 and 11 respectively, 160MB data (folder drivers) are sent to the cloud server through QMS-QCC by using scp;
step 4, when QoE parameter values are 1, 2, 3, 7 and 11 respectively, 160MB data is sent to the cloud server through def-cubic by using the iperf 3;
Step 5, when QoE parameter values are 1, 2, 3, 7 and 11 respectively, 160MB data is sent to the cloud server through def-olia by using the iperf 3;
and 6, when the QoE parameter values are 1,2, 3, 7 and 11 respectively, 160MB of data is sent to the cloud server through QMS-QCC by using the iporf 3.
Step 1 further comprises: the mobile phone terminal sets data packet scheduling and congestion control (def-cubic), and the mobile phone terminal uses scp to upload data and time, specifically, the step 1 comprises the following steps:
When the qoe parameter value=1, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 1drivers 8.140.122.222:/root/upload data and times;
when the qoe parameter value=2, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 2drivers 8.140.122.222:/root/upload data and times;
when the qoe parameter value=3, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 3drivers 8.140.122.222:/root/upload data and times;
When the qoe parameter value=7, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 7drivers 8.140.122.222:/root/upload data and times;
When the qoe parameter value=11, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 11drivers 8.140.122.222:/root/upload data and times;
so far, step 1 ends.
The step 2 further comprises: the mobile phone terminal is provided with a scheduler and a congestion controller (def-olia), the mobile phone terminal uses scp to upload data and time, and specifically, the step 2 comprises the following steps:
When the qoe parameter value=1, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 1drivers 8.140.122.222:/root/upload data and times;
When the qoe parameter value=2, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 2drivers 8.140.122.222:/root/upload data and times;
when the qoe parameter value=3, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 3drivers 8.140.122.222:/root/upload data and times;
When the qoe parameter value=7, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 7drivers 8.140.122.222:/root/upload data and times;
When the qoe parameter value=11, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 11drivers 8.140.122.222:/root/upload data and times;
So far, step 2 ends.
The step 3 further comprises: the mobile phone terminal sets a scheduler and a congestion controller (QMS-QCC), and uses scp to upload data and time, and specifically, the step 3 includes the following steps:
When the qoe parameter value=1, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 1drivers 8.140.122.222:/root/upload data and times;
When the qoe parameter value=2, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 2drivers 8.140.122.222:/root/upload data and times;
When the qoe parameter value=3, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc to set up the scheduler and congestion controller; the mobile phone end executes command time scp-rQ 3drivers 8.140.122.222:/root/upload data and times;
when the qoe parameter value=7, the mobile phone sets the scheduler and congestion controller using sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc; the mobile phone end executes command time scp-rQ 7drivers 8.140.122.222:/root/upload data and times;
when the qoe parameter value=11, the mobile phone sets the scheduler and congestion controller using sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc; the mobile phone end executes command time scp-rQ 11drivers 8.140.122.222:/root/upload data and times;
so far, step 3 ends.
The test results of steps 1-3 are shown in FIG. 10. When the QoE parameter value is equal to 1, data is only transmitted in the WiFi substream, when the QoE parameter value is equal to 2, data is only (mainly) transmitted in the 4G substream, i.e. when QoE is equal to 1 or 2, the 4G substream is suspended and the WiFi substream is used; and vice versa. As shown in fig. 8, the average upstream bandwidth of the WiFi interface is greater than that of the 4G interface. As shown in fig. 10, when QoE parameter values are equal to 3, 7 and 11, the WiFi substream transmits data approximately twice as much time as the 4G substream for QMS-QCC. When the QoE parameter values of def-cubic and def-olia are equal to 3 and 7 and the QoE parameter value of def-cubic is equal to 11, the data transmission time is longer than that of QMS-qcs, although WiFi and 4G sub-streams can be used to transmit data from beginning to end, thereby indicating that qcs and QMS have better packet scheduling performance.
Step 4 further comprises: the mobile phone terminal is provided with a scheduler and a congestion controller (def-cubic), the mobile phone terminal uses the iperf3 to upload data and time, and specifically, the step 4 comprises the following steps:
When the qoe parameter value=1, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=2, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe 2-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=3, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=7, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe 7-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=11, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= cubic to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe-c 8.140.122.222-f K-n 160M to upload data and time;
So far, step 4 ends.
Step 5 further comprises: the mobile phone terminal is provided with a scheduler and a congestion controller (def-olia), the mobile phone terminal uses the iperf3 to upload data and time, and the step 5 specifically comprises the following steps:
when the qoe parameter value=1, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=2, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe 2-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=3, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=7, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe 7-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=11, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=default & sysctl net, ipv4.Tcp_ congestion _control= olia to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe-c 8.140.122.222-f K-n 160M to upload data and time;
So far, step 5 ends.
Step 6 further comprises: the mobile phone terminal sets a scheduler and a congestion controller (QMS-QCC), and the mobile phone terminal uses the iperf3 to upload data and time, specifically, the step 6 comprises the following steps:
when the qoe parameter value=1, the mobile phone sets the scheduler and congestion controller using sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc; the mobile phone end executes the command TIME IPERF-qoe-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=2, the mobile phone sets the scheduler and congestion controller using sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc; the mobile phone end executes the command TIME IPERF-qoe 2-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=3, the mobile phone end uses sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc to set up the scheduler and congestion controller; the mobile phone end executes the command TIME IPERF-qoe-c 8.140.122.222-f K-n 160M to upload data and time;
when the qoe parameter value=7, the mobile phone sets the scheduler and congestion controller using sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc; the mobile phone end executes the command TIME IPERF-qoe 7-c 8.140.122.222-f K-n 160M to upload data and time;
When the qoe parameter value=11, the mobile phone sets the scheduler and congestion controller using sysctl net, mptcp, mptcp_schedule=qms = sysctl net, ipv4.Tcp_ congestion _control=qcc; the mobile phone end executes the command TIME IPERF-qoe-c 8.140.122.222-f K-n 160M to upload data and time;
So far, step 6 ends.
The test results of steps 4-6 are shown in FIG. 11. When the QoE parameter value is equal to 1, data is only transmitted in the WiFi substream; when the QoE parameter value is equal to 2, data is only (mainly) transmitted in the 4G sub-stream, i.e. when the QoE parameter value is equal to 1 or 2, the 4G sub-stream is suspended and the WiFi sub-stream is used; and vice versa. As shown in fig. 8, the average upstream bandwidth of the WiFi interface is greater than that of the 4G interface. As shown in fig. 11, when the QoE parameter value is equal to 3, 7, 11, the WiFi sub-stream transmission data time is about 5 times longer than the 4G sub-stream transmission data for def-cubic; for def-olia, the time for the WiFi substream to transmit data is longer than the 4G substream when the QoE parameter value is equal to 3 and 11, but the time for the 4G substream to transmit data is longer than the WiFi substream when the QoE parameter value is equal to 11. For QMS-QCS, when QoE parameter value is equal to 3, 7, 11, wiFi and 4G substreams are used for transmitting data from beginning to end, and the data transmission completion time is less than def-cubic and def-olia, which indicates that QCS and QMS have better data packet scheduling performance.
The test results of the steps 1-6 are synthesized, and the QCC and QMS have better data packet scheduling performance under the condition of different QoE parameter values no matter the big block data or the small block data.
The QoE-based MPTCP packet scheduling device provided by the present invention is described below, and the QoE-based MPTCP packet scheduling device described below and the QoE-based MPTCP packet scheduling method described above may be referred to correspondingly to each other.
The present invention provides a QoE-based MPTCP packet scheduling device, as shown in fig. 12, which includes:
an obtaining module 1201, configured to obtain a QoE parameter value of a target application; wherein the QoE parameter value is used to characterize the service requirements of the target application;
A control module 1202, configured to control to perform a sorting operation for a characteristic parameter of each MPTCP subflow in the target network state based on the QoE parameter value, so as to obtain a sorting result; wherein the characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product;
a scheduling module 1203, configured to schedule, based on the QoE parameter value and the ordering result, the data packet of the target application program into a target MPTCP subflow; and the matching degree of the characteristic parameters of the target MPTCP substream and the service requirement of the target application program is highest.
Optionally, the control module 1202 may be specifically configured to establish a plurality of MPTCP subflows with the server; when the condition of the target network is detected to represent network congestion, based on the QoE parameter value, controlling to execute the adjustment operation of a congestion window value or a slow start threshold value for each MPTCP subflow; and when the adjustment operation is determined to be executed, sorting the characteristic parameters of each MPTCP substream respectively to obtain a sorting result.
Optionally, the control module 1202 may be further configured to determine a size relationship between the congestion window value and the slow start threshold in each MPTCP subflow when the network congestion is represented by the target network state is detected; when the congestion window value is determined to be smaller than a slow start threshold value and the QoE parameter value characterizes at least two different service requirements, respectively adjusting the slow start threshold value to be a congestion window value of a first preset multiple; and when the congestion window value is determined to be greater than or equal to a slow start threshold value and the QoE parameter value characterizes at least two different service requirements, respectively adjusting the congestion window value to be the maximum value of the bandwidth delay and the congestion window value.
Optionally, the control module 1202 may be further configured to obtain a public network IP address list of the server; when the public network IP address list is determined to comprise one public network IP address, N private IP addresses are used for respectively establishing N MPTCP substreams between the public network IP addresses; when the public network IP address list comprises M public network IP addresses, N private IP addresses are used for respectively establishing N x M MPTCP subflows with the M public network IP addresses; wherein N, M are integers greater than 1, respectively.
Optionally, the control module 1202 may be further configured to send a data packet to a server when the target network state is detected to represent network congestion and the QoE parameter value represents at least two different service requirements; and when the confirmation packet fed back by the server for the data packet is not received within the preset time period, respectively adjusting the slow start threshold value in each MPTCP substream to be the maximum value of a congestion window value and a preset congestion window threshold value which are of a second preset multiple.
Optionally, the control module 1202 may be further configured to determine, when determining that the QoE parameter value characterizes a first MPTCP subflow of a service requirement, an accumulated number of data packets sent to a server through the first MPTCP subflow; and when the accumulated number exceeds a preset number threshold, controlling to stop data transmission operation between the server and the first MPTCP substream.
Optionally, the obtaining module 1201 may be specifically further configured to obtain a preset socket address, and read a QoE parameter value of the target application from a preset byte of the preset socket address.
Fig. 13 illustrates a physical schematic diagram of an electronic device, as shown in fig. 13, the electronic device 1300 may include: processor 1310, communication interface Communications Interface 1320, memory 1330 and communication bus 1340, wherein processor 1310, communication interface 1320, memory 1330 communicate with each other via communication bus 1340. Processor 1310 may invoke logic instructions in memory 1330 to perform a QoE-based MPTCP packet scheduling method, the method comprising: acquiring QoE parameter values of a target application program; wherein the QoE parameter value is used to characterize the service requirements of the target application; based on the QoE parameter value, controlling and executing the sorting operation aiming at the characteristic parameters of each MPTCP substream in the target network state to obtain a sorting result; wherein the characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product; scheduling the data packet of the target application program to a target MPTCP subflow based on the QoE parameter value and the sequencing result; and the matching degree of the characteristic parameters of the target MPTCP substream and the service requirement of the target application program is highest.
Further, the logic instructions in the memory 1330 can be implemented in the form of software functional units and can be stored in a computer readable storage medium when sold or used as a stand alone product. Based on this understanding, the technical solution of the present invention may be embodied essentially or in a part contributing to the prior art or in a part of the technical solution, in the form of a software product stored in a storage medium, comprising several instructions for causing a computer device (which may be a personal computer, a server, a network device, etc.) to perform all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a usb disk, a removable hard disk, a Read-Only Memory (ROM), a random access Memory (RAM, random Access Memory), a magnetic disk, or an optical disk, or other various media capable of storing program codes.
In another aspect, the present invention also provides a computer program product comprising a computer program stored on a non-transitory computer readable storage medium, the computer program comprising program instructions which, when executed by a computer, are capable of performing the QoE-based MPTCP packet scheduling method provided by the above methods, the method comprising: acquiring QoE parameter values of a target application program; wherein the QoE parameter value is used to characterize the service requirements of the target application; based on the QoE parameter value, controlling and executing the sorting operation aiming at the characteristic parameters of each MPTCP substream in the target network state to obtain a sorting result; wherein the characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product; scheduling the data packet of the target application program to a target MPTCP subflow based on the QoE parameter value and the sequencing result; and the matching degree of the characteristic parameters of the target MPTCP substream and the service requirement of the target application program is highest.
In yet another aspect, the present invention further provides a non-transitory computer readable storage medium having stored thereon a computer program, which when executed by a processor is implemented to perform the above-provided QoE-based MPTCP packet scheduling method, the method comprising: acquiring QoE parameter values of a target application program; wherein the QoE parameter value is used to characterize the service requirements of the target application; based on the QoE parameter value, controlling and executing the sorting operation aiming at the characteristic parameters of each MPTCP substream in the target network state to obtain a sorting result; wherein the characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product; scheduling the data packet of the target application program to a target MPTCP subflow based on the QoE parameter value and the sequencing result; and the matching degree of the characteristic parameters of the target MPTCP substream and the service requirement of the target application program is highest.
The apparatus embodiments described above are merely illustrative, wherein the elements illustrated as separate elements may or may not be physically separate, and the elements shown as elements may or may not be physical elements, may be located in one place, or may be distributed over a plurality of network elements. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art will understand and implement the present invention without undue burden.
From the above description of the embodiments, it will be apparent to those skilled in the art that the embodiments may be implemented by means of software plus necessary general hardware platforms, or of course may be implemented by means of hardware. Based on this understanding, the foregoing technical solution may be embodied essentially or in a part contributing to the prior art in the form of a software product, which may be stored in a computer readable storage medium, such as ROM/RAM, a magnetic disk, an optical disk, etc., including several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute the method described in the respective embodiments or some parts of the embodiments.
Finally, it should be noted that: the above embodiments are only for illustrating the technical solution of the present invention, and are not limiting; although the invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims (10)
1. The MPTCP data packet scheduling method based on QoE is characterized by comprising the following steps:
Acquiring QoE parameter values of a target application program; wherein the QoE parameter value is used to characterize a service requirement of the target application, the service requirement comprising that the target application is intended to transmit data only through a WiFi substream, that the target application is intended to transmit data only through a cellular substream, that the target application is intended to transmit data through the WiFi substream and the cellular substream, that the target application is intended to transmit large files through the WiFi substream and the cellular substream, and that the target application is intended to transmit small files through at least one of the WiFi substream and the cellular substream;
Based on the QoE parameter value, controlling and executing the sorting operation aiming at the characteristic parameters of each MPTCP substream in the target network state to obtain a sorting result; wherein the characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product;
Scheduling the data packet of the target application program to a target MPTCP subflow based on the QoE parameter value and the sequencing result; the matching degree between the characteristic parameters of the target MPTCP substream and the service requirement of the target application program is highest;
The scheduling procedure in case the value of the trigger is 1 comprises: suspending the use of the cellular substream and scheduling the WiFi substream for data transmission as the target MPTCP substream, suspending the use of the WiFi substream and scheduling the cellular substream for data transmission as the target MPTCP substream; selecting the sub-stream with the largest bandwidth delay product and the smallest round trip delay from the WiFi sub-stream and the cellular sub-stream, selecting the sub-stream with the largest congestion window, selecting the MPTCP sub-stream with the smallest round trip delay again, and then taking the selected sub-stream as the target MPTCP sub-stream to send a data packet to a server; selecting a substream with the largest congestion window from the WiFi substream and the cellular substream, and then taking the selected substream as the target MPTCP substream transmission large file; selecting a substream with the smallest round trip time delay from the WiFi substream and the cellular substream, and taking the selected substream as one of the target MPTCP substream transmission small files; and the trigger value is 1, so that the QoE parameter value transmitted to the terminal kernel by the target application program starts to influence the congestion control and the data packet scheduling behaviors.
2. The QoE-based MPTCP packet scheduling method of claim 1, wherein said controlling, based on the QoE parameter value, performing a sorting operation for the characteristic parameter of each MPTCP subflow in the target network state, to obtain a sorting result includes:
Establishing a plurality of MPTCP substreams between the MPTCP substreams and a server;
When the condition of the target network is detected to represent network congestion, based on the QoE parameter value, controlling to execute the adjustment operation of a congestion window value or a slow start threshold value for each MPTCP subflow;
and when the adjustment operation is determined to be executed, sorting the characteristic parameters of each MPTCP substream respectively to obtain a sorting result.
3. The QoE-based MPTCP packet scheduling method of claim 2, wherein when the detected target network state characterizes network congestion, controlling to perform an adjustment operation of a congestion window value or a slow start threshold for each MPTCP subflow based on the QoE parameter value, comprising:
when the state of the target network is detected to represent network congestion, the size relation between the congestion window value and the slow start threshold value in each MPTCP substream is respectively judged;
When the congestion window value is determined to be smaller than a slow start threshold value and the QoE parameter value characterizes at least two different service requirements, respectively adjusting the slow start threshold value to be a congestion window value of a first preset multiple;
and when the congestion window value is determined to be greater than or equal to a slow start threshold value and the QoE parameter value characterizes at least two different service requirements, respectively adjusting the congestion window value to be the maximum value of the bandwidth delay and the congestion window value.
4. The QoE-based MPTCP packet scheduling method of claim 2, wherein said establishing a plurality of MPTCP subflows with the server comprises:
acquiring a public network IP address list of a server;
When the public network IP address list is determined to comprise one public network IP address, N private IP addresses are used for respectively establishing N MPTCP substreams between the public network IP addresses;
When the public network IP address list comprises M public network IP addresses, N private IP addresses are used for respectively establishing N x M MPTCP subflows with the M public network IP addresses; wherein N, M are integers greater than 1, respectively.
5. The QoE-based MPTCP packet scheduling method of claim 2, wherein when the detected target network state characterizes network congestion, controlling to perform an adjustment operation of a congestion window value or a slow start threshold for each MPTCP subflow based on the QoE parameter value, comprising:
When the state of the target network is detected to represent network congestion and the QoE parameter value represents at least two different service requirements, sending a data packet to a server;
And when the confirmation packet fed back by the server for the data packet is not received within the preset time period, respectively adjusting the slow start threshold value in each MPTCP substream to be the maximum value of a congestion window value and a preset congestion window threshold value which are of a second preset multiple.
6. The QoE-based MPTCP packet scheduling method of claim 1, wherein after said step of obtaining QoE parameter values of the target application, said method further comprises:
When determining that the QoE parameter value represents a first MPTCP substream of a service requirement, judging the accumulated number of data packets sent to a server through the first MPTCP substream;
And when the accumulated number exceeds a preset number threshold, controlling to stop data transmission operation between the server and the first MPTCP substream.
7. The QoE-based MPTCP packet scheduling method of claim 1, wherein said obtaining QoE parameter values of the target application program comprises:
and acquiring a preset socket address, and reading QoE parameter values of a target application program from preset bytes of the preset socket address.
8. An MPTCP packet scheduling device based on QoE, which is characterized by comprising:
The acquisition module is used for acquiring QoE parameter values of the target application program; wherein the QoE parameter value is used to characterize a service requirement of the target application, the service requirement comprising that the target application is intended to transmit data only through a WiFi substream, that the target application is intended to transmit data only through a cellular substream, that the target application is intended to transmit data through the WiFi substream and the cellular substream, that the target application is intended to transmit large files through the WiFi substream and the cellular substream, and that the target application is intended to transmit small files through at least one of the WiFi substream and the cellular substream;
The control module is used for controlling and executing the sorting operation aiming at the characteristic parameters of each MPTCP substream in the target network state based on the QoE parameter value to obtain a sorting result; wherein the characteristic parameters at least comprise round trip delay, congestion window value and bandwidth delay product;
A scheduling module, configured to schedule, based on the QoE parameter value and the ordering result, a data packet of the target application program into a target MPTCP subflow; the matching degree between the characteristic parameters of the target MPTCP substream and the service requirement of the target application program is highest;
The scheduling procedure in case the value of the trigger is 1 comprises: suspending the use of the cellular substream and scheduling the WiFi substream for data transmission as the target MPTCP substream, suspending the use of the WiFi substream and scheduling the cellular substream for data transmission as the target MPTCP substream; selecting the sub-stream with the largest bandwidth delay product and the smallest round trip delay from the WiFi sub-stream and the cellular sub-stream, selecting the sub-stream with the largest congestion window, selecting the MPTCP sub-stream with the smallest round trip delay again, and then taking the selected sub-stream as the target MPTCP sub-stream to send a data packet to a server; selecting a substream with the largest congestion window from the WiFi substream and the cellular substream, and then taking the selected substream as the target MPTCP substream transmission large file; selecting a substream with the smallest round trip time delay from the WiFi substream and the cellular substream, and taking the selected substream as one of the target MPTCP substream transmission small files; and the trigger value is 1, so that the QoE parameter value transmitted to the terminal kernel by the target application program starts to influence the congestion control and the data packet scheduling behaviors.
9. An electronic device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, wherein the processor performs the steps of the QoE-based MPTCP packet scheduling method of any of claims 1 to 7 when the program is executed.
10. A non-transitory computer readable storage medium having stored thereon a computer program, which when executed by a processor, implements the steps of the QoE-based MPTCP packet scheduling method of any of claims 1 to 7.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111076606.XA CN113824648B (en) | 2021-09-14 | 2021-09-14 | QoE-based MPTCP data packet scheduling method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111076606.XA CN113824648B (en) | 2021-09-14 | 2021-09-14 | QoE-based MPTCP data packet scheduling method and device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113824648A CN113824648A (en) | 2021-12-21 |
CN113824648B true CN113824648B (en) | 2024-06-28 |
Family
ID=78922428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111076606.XA Active CN113824648B (en) | 2021-09-14 | 2021-09-14 | QoE-based MPTCP data packet scheduling method and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113824648B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826646A (en) * | 2022-02-28 | 2022-07-29 | 天翼安全科技有限公司 | Network abnormal behavior detection method and device and electronic equipment |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016082438A (en) * | 2014-10-17 | 2016-05-16 | 日本電気株式会社 | Communication control device, radio communication system, communication control method and radio base station |
FR3032852A1 (en) * | 2015-02-13 | 2016-08-19 | Orange | METHOD FOR SELECTING NETWORK CONNECTION CONCENTRATORS |
CN106656856B (en) * | 2016-12-16 | 2019-07-26 | 浙江大学 | A Packet Scheduling Method Resisting MPTCP Receive Buffer Blocking |
US11283721B2 (en) * | 2018-06-27 | 2022-03-22 | Nokia Solutions And Networks Oy | Application-based traffic control in multipath networks |
CN111031078B (en) * | 2018-10-09 | 2021-05-04 | 华为技术有限公司 | Communication method and device |
CN113207147A (en) * | 2021-03-16 | 2021-08-03 | 网络通信与安全紫金山实验室 | MPTCP congestion control method based on deep reinforcement learning and storage medium thereof |
-
2021
- 2021-09-14 CN CN202111076606.XA patent/CN113824648B/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN113824648A (en) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220329535A1 (en) | Data flow control method and apparatus | |
US12081446B2 (en) | Systems and methods for pacing data flows | |
CN110798869B (en) | Network switching method, electronic equipment and chip subsystem | |
US11271848B2 (en) | Data transmission method, apparatus, and device | |
US20190028929A1 (en) | Data-interface flow-splitting method, apparatus, terminal device, and computer storage medium | |
US20150237525A1 (en) | Traffic Shaping and Steering for a Multipath Transmission Control Protocol Connection | |
US20170027016A1 (en) | Communication device, wireless communication device, and communication method | |
CN106471847B (en) | Method and apparatus for communicating data communication sessions between radio access networks | |
WO2017008701A1 (en) | Data transmission method, apparatus, and user device | |
Zhao et al. | On/off traffic shaping in the internet: Motivation, challenges, and solutions | |
CN113824648B (en) | QoE-based MPTCP data packet scheduling method and device | |
CN104219111B (en) | Link bundling method and communication system based on MLPPP | |
CN108574615B (en) | Content transmission method, device and system based on multipath MPTCP | |
CN111917511B (en) | A method of receiving data | |
Scharf | Performance Evaluation of Fast Startup Congestion Control Schemes: (Work in Progress) | |
EP3949680B1 (en) | Methods and arrangements for managing round trip time associated with provision of a data flow via a multi-access communication network | |
Endo et al. | Channel Responsive Wireless TCP | |
KR20170064737A (en) | Network data processing speed measuring method and apparatus | |
CN119096527A (en) | Method for reducing packet loss in session slow start stage | |
Grinnemo et al. | Deliverable D3. 2-Final Report on Transport Protocol Enhancements | |
Hayes et al. | Final Report on Transport Protocol Enhancements | |
KR20130010759A (en) | Apparatus and method for simultaneously transmitting data in heterogeneous network | |
Savoric | Identifying and evaluating the potential of reusing network information from different flows | |
KR20130102866A (en) | Apparatus and method for simultaneously transmitting data in heterogeneous network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |