Data transmission rate control method and device, electronic equipment and storage medium
By running multiple congestion control algorithms simultaneously in a network environment and combining them with a machine learning model, the optimal congestion control result is dynamically determined, solving the problem that existing congestion control algorithms cannot adapt to dynamic changes, and achieving more efficient network performance and user experience.
Patent Information
- Application Number
- CN202310869120.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-14
- Publication Date
- 2025-11-28
- Estimated Expiration
- 2043-07-14
AI Technical Summary
Existing congestion control algorithms struggle to adapt to dynamically changing network environments and user demands, leading to decreased network performance and failing to meet the critical latency requirements of modern streaming media applications.
By acquiring network information, executing multiple preset congestion control strategies, and combining machine learning models and various congestion control algorithms such as BBR, Cubic, Copa, and Reno, the system dynamically determines the optimal congestion control result and adjusts the data transmission rate to adapt to the network environment and user needs.
It improved network performance, increased bandwidth utilization, reduced transmission rate jitter, met the needs of different network environments and users, and enhanced the user experience.
Smart Images

Figure CN116668373B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to the technical field of computer networks, and particularly relates to a data sending rate control method and device, an electronic device and a storage medium. BACKGROUND
[0002] Network congestion refers to a phenomenon that a large number of request packets arrive at a part of a communication subnetwork, so that the part of the network cannot be processed in time, thereby causing the performance of the part or even the entire network to decline, and in severe cases, even causing network communication services to be suspended. In view of this, related technologies provide congestion control algorithms. However, each congestion control algorithm in the related technologies is usually only applicable to a specific network environment. For example, some congestion control algorithms are suitable for improving bandwidth utilization, while some congestion control algorithms are more sensitive to latency, and some congestion control algorithms are more sensitive to packet loss. However, in actual situations, network environments and user demands are often dynamically changing, and the congestion control methods in the related technologies are difficult to meet actual demands. SUMMARY
[0003] Therefore, the present disclosure provides a data sending rate control method and device, an electronic device and a storage medium to solve the problem that conventional congestion control schemes are difficult to be applied to dynamically changing network environments and user demands.
[0004] In a first aspect, the present disclosure provides a data sending rate control method, which comprises:
[0005] obtaining network information, the network information representing network information of a communication link between a server and a client;
[0006] executing a plurality of preset congestion control strategies according to the network information to obtain a plurality of congestion control results; wherein the congestion control result is used to adjust a data sending rate, and the data sending rate represents a rate at which the server sends data to the client;
[0007] deciding a target control result from the plurality of congestion control results, and controlling the data sending rate according to the target control result, the target control result being one of the plurality of congestion control results.
[0008] The present disclosure can simultaneously run a plurality of congestion control strategies under the current network information, and effectively decide the outputs of the plurality of different congestion control strategies, so as to select, as the best control result, a congestion control result output by an optimal congestion control strategy matched with the current network information according to the current network environment, and adjust the data sending rate according to the best control result. It can be seen that the present disclosure can be better applied to dynamically changing network environments and user demands, and effectively improve network performance.
[0009] In a second aspect, the present disclosure provides a data sending rate control apparatus, the control apparatus comprising:
[0010] an obtaining unit configured to obtain network information, the network information indicating network information of a communication link between a server and a client;
[0011] an executing unit configured to execute a plurality of preset congestion control strategies according to the network information to obtain a plurality of congestion control results, wherein the congestion control results are used to adjust a data sending rate, and the data sending rate indicates a rate at which the server sends data to the client;
[0012] a decision unit configured to decide a target control result from the plurality of congestion control results, and control the data sending rate according to the target control result, wherein the target control result is one of the plurality of congestion control results.
[0013] In a third aspect, the present disclosure provides an electronic device, comprising a memory and a processor, the memory and the processor being communicatively connected with each other, the memory storing computer instructions, and the processor executing the computer instructions to perform the data sending rate control method of the first aspect or any of the corresponding embodiments thereof.
[0014] In a fourth aspect, the present disclosure provides a computer readable storage medium, the computer readable storage medium storing computer instructions, and the computer instructions being used to make a computer perform the data sending rate control method of the first aspect or any of the corresponding embodiments thereof. BRIEF DESCRIPTION OF DRAWINGS
[0015] In order to more clearly illustrate the specific embodiments of the present disclosure or the technical solutions in the prior art, the drawings needed in the specific embodiments or prior art description will be briefly introduced as follows. Obviously, the drawings in the following description are some embodiments of the present disclosure, and those skilled in the art can also obtain other drawings according to these drawings without creative labor.
[0016] Figure 1 is a flowchart of a data sending rate control method according to an embodiment of the present disclosure;
[0017] Figure 2 is a flowchart of another data sending rate control method according to an embodiment of the present disclosure;
[0018] Figure 3 is a flowchart of still another data sending rate control method according to an embodiment of the present disclosure;
[0019] Figure 4 is a flowchart of yet another data sending rate control method according to an embodiment of the present disclosure;
[0020] Figure 5 is a flowchart of a data sending rate control method combined with a decision model according to an embodiment of the present disclosure;
[0021] Figure 6 is an architecture diagram of a system for implementing a data sending rate control method according to an embodiment of the present disclosure;
[0022] Figure 7 is an architecture diagram of another system for implementing a data sending rate control method according to an embodiment of the present disclosure;
[0023] Figure 8 is a schematic diagram of client-server communication according to an embodiment of the present disclosure;
[0024] Figure 9 is a structural block diagram of a data sending rate control apparatus according to an embodiment of the present disclosure;
[0025] Figure 10 is a hardware structure schematic diagram of an electronic device according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0026] To make the objectives, technical solutions, and advantages of the embodiments of the present disclosure clearer, the technical solutions in the embodiments of the present disclosure will be described below in a clear and complete manner with reference to the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are some but not all of the embodiments of the present disclosure. Based on the embodiments in the present disclosure, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the protection scope of the present disclosure.
[0027] It can be understood that, before using the technical solutions disclosed in the embodiments of the present disclosure, the type, use range, use scenario, and the like of personal information involved in the present disclosure should be informed to the user and the authorization of the user should be obtained through appropriate means according to relevant laws and regulations.
[0028] For example, in response to receiving an active request of a user, prompt information is sent to the user to explicitly prompt the user that the operation requested to be performed will need to obtain and use personal information of the user. Thus, the user can autonomously select whether to provide personal information to the electronic device, application program, server, or storage medium, and the like software or hardware that performs the operation of the technical solutions of the present disclosure according to the prompt information.
[0029] As an optional but not limited implementation manner, in response to receiving an active request of a user, the manner of sending prompt information to the user may, for example, be a pop-up window manner, and the prompt information may, for example, be presented in the pop-up window in a text manner. In addition, the pop-up window may, for example, carry a selection control for the user to select “agree” or “disagree” to provide personal information to the electronic device.
[0030] It can be understood that the above notification and user authorization obtaining process is only illustrative, and does not limit the implementation of the present disclosure, and other ways that meet the relevant laws and regulations can also be applied to the implementation of the present disclosure.
[0031] To effectively solve the network congestion problem, a variety of congestion control algorithms are provided in the related art, but none of these algorithms can achieve high network performance in all network environments and user requirements, because different congestion control algorithms are usually designed for specific network environments. For example, C2TCP (Cellular Controlled Delay Transmission Control Protocol) is designed for cellular data networks, DCTCP (Date Center Transmission Control Protocol) is generally designed for data center networks, Cubic (window adjustment) algorithm is more sensitive to packet loss and insensitive to network delay jitter, and BBR (Bottleneck Bandwidth and Round-trip propagation time) algorithm is more sensitive to delay. Moreover, with the change of network environment and user demand, the control targets of different congestion control algorithms are often different, for example, the main control target of Cubic algorithm is to improve bandwidth utilization, but for dynamically changing network environment and user demand, the related art cannot meet the actual network environment and user demand, for example, for modern streaming media applications such as short video applications, delay is often a more critical target. Therefore, how to reasonably control congestion according to the current network environment and user demand is crucial.
[0032] According to the embodiments of the present disclosure, a data sending rate control method embodiment is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although the logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0033] A data sending rate control method is provided in the embodiment, which can be used for a server, and specifically applied to a data sending device (specifically, a QUIC layer in the data sending device) in the server. The full name of QUIC is Quick UDP Internet Connection, and the meaning is fast user datagram network connection. The full name of UDP is User Datagram Protocol, and the meaning is user datagram protocol. In one or more embodiments of the disclosure, the server can be a CDN (Content Delivery Network) server. CDN is a network architecture based on distributed systems, which is used to provide efficient, fast and reliable content delivery services. CDN stores content on servers distributed in multiple locations, so that users can obtain content from the nearest server, thereby reducing network delay and improving user experience. The working principle of CDN is to distribute content to the edge nodes closest to the user, which are usually located in the geographical location of the user. When the user requests to access specific content, CDN will select the nearest edge node according to the user's location and provide content from the node. In this way, the distance and time of data transmission can be reduced, and the loading speed of content can be improved. CDN is an effective content distribution solution that can improve website performance, save bandwidth costs, improve reliability and scalability, and provide security features. Therefore, the data sending rate control method provided in one or more embodiments of the disclosure can be used for a content distribution network.
[0034] Figure 1 The flow chart of the data sending rate control method according to the embodiment of the disclosure is shown in FIG. 1, which includes the following steps: Figure 1
[0035] In step S101, network information is obtained, which represents the network information of the communication link between the server and the client.
[0036] In the embodiment, the obtained network information can not only be used to represent the condition of the network between one or more clients and the server, but also be used to represent the condition of the client. The condition of the client can be used to represent the demand of the user.
[0037] In some optional embodiments, the above step S101 includes:
[0038] In step a1, an acknowledgement message sent by the client is received.
[0039] The acknowledgment packet in the embodiment specifically refers to an ACK packet, ACK stands for Acknowledgment, and the most basic role of the ACK packet is to confirm that the data sent has been received without error; in the embodiment, the latest network information can be determined through the ACK packet.
[0040] Step a2, updating the network information according to the acknowledgment packet to obtain updated network information.
[0041] Specifically, the latest network information can be determined by using the acknowledgment packet. Taking the round-trip time in the network information as an example, the round-trip time is calculated based on the timestamp information carried in the acknowledgment packet, and the specific calculation method can be selected from the existing calculation methods.
[0042] Based on the ACK packet, the embodiment can accurately determine the latest network information, thereby reliably updating the network information currently used by each congestion control algorithm.
[0043] In some optional embodiments, the network information includes one or more of the round-trip time (RTT, Round-Trip Time), the smoothed round-trip time (SRTT, Smoothed Round-Trip Time), the minimum round-trip time (minRTT, Minimum Round-Trip Time), the bandwidth (bandwidth), and the random packet loss rate.
[0044] The network information in the embodiment is not limited to the above-mentioned cases, for example, the network information also includes but is not limited to the Quality of Services (Qos), the number of unconfirmed bytes (inflight), the number of simulated connections (connectionsnum), and other network parameters.
[0045] Compared with the problem that one congestion control algorithm in the related art cannot achieve high performance in a loaded network environment and user demand, the embodiment can select a suitable congestion control algorithm combination according to one or more network information of the bandwidth, the round-trip time, the random packet loss rate, the Qos, the smoothed round-trip time, and the minimum round-trip time, run multiple congestion control algorithms in one data stream at the same time, and make a decision by referring to the output results of the multiple congestion control algorithms, thereby outputting the optimal congestion control result and greatly improving the network performance.
[0046] Step S102, executing multiple preset congestion control strategies according to the network information to obtain multiple congestion control results; wherein the congestion control result is used to adjust the data sending rate, and the data sending rate represents the rate at which the server sends data to the client.
[0047] In the embodiment, the plurality of preset congestion control strategies can include two or more different congestion control strategies. Each preset congestion control strategy represents a congestion control algorithm, and the network information used by different congestion control algorithms can be the same or different.
[0048] In some optional embodiments, the plurality of preset congestion control strategies include at least two of the BBR congestion control algorithm, the Cubic congestion control algorithm, the Copa (in a delay control mode) congestion control algorithm, and the Reno (based on a packet loss feedback mode) congestion control algorithm.
[0049] The network information (i.e., input parameters) used by the BBR congestion control algorithm can include bandwidth, RTT (round trip time), minRTT, SRTT (smoothed RTT), and inflight (number of unacknowledged bytes). The network information (i.e., input parameters) used by the Cubic congestion control algorithm can include bandwidth, RTT (round trip time), minRTT, SRTT (smoothed RTT), inflight (number of unacknowledged bytes), and connectionsnum (simulated number of connections). The network information (i.e., input parameters) used by the Copa congestion control algorithm can include RTT (round trip time), minRTT, SRTT (smoothed RTT), and inflight (number of unacknowledged bytes). In the above examples of the plurality of congestion control algorithms, the process of obtaining a congestion control result based on the respective input parameters can be selected from related technologies, and the embodiment will not be described in detail.
[0050] The BBR congestion control algorithm, the Cubic congestion control algorithm, the Copa congestion control algorithm, the Reno congestion control algorithm, and other congestion control algorithms used by the present disclosure are integrated in the congestion control algorithm pool.
[0051] In the face of complex and variable network environments and user needs, the embodiment can select the result that best meets the current needs from the output results of at least two of the BBR congestion control algorithm, the Cubic congestion control algorithm, the Copa congestion control algorithm, and the Reno congestion control algorithm, thereby significantly improving network performance.
[0052] In some optional embodiments, the congestion control result is a congestion control window value or a congestion control sending rate value.
[0053] The congestion control window specifically refers to cwnd, and the full name is congestion window; the congestion control sending rate value specifically refers to pacing rate (adjusted rate), which represents the data sending rate obtained after processing by the congestion control algorithm.
[0054] In a specific implementation, for the congestion control window value, the embodiment can convert it into a corresponding congestion control sending rate value, for example, the corresponding pacing rate can be determined by calculating the ratio of cwnd to SRTT, the unit of cwnd is bytes (byte), the unit of pacing rate is Bps (bit rate), and the unit of SRTT is ms (millisecond), and the embodiment first converts the unit of SRTT into s (second); in the embodiment, the corresponding pacing rate can be calculated by using 8*cwnd*1000000 / SRTT, so as to ensure that the units of algorithms are the same; for the congestion control sending rate value output by the algorithm, it can be directly used for decision and output.
[0055] For different congestion control algorithms, the output result can be cwnd or pacing rate, and the embodiment can be applied to more congestion control algorithms by using the above method of using cwnd or pacing rate as the congestion control result. In addition, the above method of calculating the pacing rate by using SRTT can reduce the influence of network delay jitter on determining the optimal congestion control algorithm, and improve the accuracy of pacing rate determination.
[0056] In step S103, a target control result is decided from the plurality of congestion control results, and the data sending rate is controlled according to the target control result, and the target control result is one of the plurality of congestion control results.
[0057] Therefore, the embodiment can select the congestion control result most suitable for the current network situation and user demand from the plurality of congestion control results as the target control result.
[0058] The embodiment can synchronize the execution of multiple congestion control strategies in the case of current network information, and make effective decisions on the outputs of multiple different congestion control strategies, so as to select the optimal congestion control result output by the congestion control strategy matched with the current network information as the target control result according to the current network environment, the target control result being the best control result of the current decision, and adjust the data sending rate according to the best control result. It can be seen that the embodiment can be better applied to the dynamic network environment and user demand, and based on the use of multiple preset congestion control strategies, the present disclosure achieves the purpose of effectively improving network performance. Moreover, although the present disclosure uses multiple congestion control algorithms, it does not need to switch between different congestion control algorithms, avoiding the problem of sending rate jitter caused by algorithm switching process, and improving network bandwidth utilization.
[0059] In the embodiment, a data sending rate control method is provided, which can be used for a server, and specifically applied to a data sending device (specifically, a QUIC layer in the data sending device) in the server, Figure 2 is a flowchart of the data sending rate control method according to the embodiment of the present disclosure, as shown in Figure 2 , the flowchart includes the following steps:
[0060] Step S201, obtaining network information, the network information representing network information of a communication link between the server and the client. For details, please refer to step S101 of the embodiment shown in Figure 1 , which will not be repeated here.
[0061] Step S202, executing multiple preset congestion control strategies according to the network information to obtain multiple congestion control results; wherein the congestion control result is used to adjust the data sending rate, and the data sending rate represents the rate at which the server sends data to the client. For details, please refer to step S102 of the embodiment shown in Figure 1 , which will not be repeated here.
[0062] Step S203, deciding a target control result from the multiple congestion control results, and controlling the data sending rate according to the target control result, the target control result being one of the multiple congestion control results.
[0063] Specifically, the above step S203 includes:
[0064] Step S2031, obtaining expected rate information sent by the client, the expected rate information being used to represent the data sending rate requested by the client.
[0065] In the embodiment, the QoE processing module can be configured on the data receiving device in the server, and the QoE processing module can be used to acquire the request information sent by the client and parse the expected rate information from the request information.
[0066] In step S2032, the plurality of congestion control results are matched with the expected rate information respectively, and the congestion control result with the highest matching degree with the expected rate information is determined as the target control result.
[0067] Generally, the congestion control result closest to the expected rate can be determined as the congestion control result with the highest matching degree, and in the embodiment, the influence of the network information on the screening process can also be considered to select the congestion control result most suitable for the current network condition and user demand. Thus, in the process of network dynamic change, the embodiment refers to the congestion control results of a plurality of congestion control algorithms, and uses the expected rate information as the basis for screening the plurality of congestion control results to determine the optimal sending rate, thereby increasing the network bandwidth utilization, further meeting the actual demand of the client, and fundamentally meeting the real demand of the user. The disclosure can thus significantly improve the user experience and improve the user satisfaction.
[0068] In some optional embodiments, the step S2032 includes:
[0069] In step b1, if at least one of the plurality of first sending rates corresponding to the plurality of congestion control results is greater than the second sending rate corresponding to the expected rate information, the plurality of first sending rates are respectively subtracted from the second sending rate to obtain a plurality of difference results.
[0070] If the congestion control result is a congestion control window value, the first sending rate corresponding to the congestion control result is a pacing rate calculated by using the congestion control window value; if the congestion control result is a pacing rate, the first sending rate corresponding to the congestion control result is the pacing rate.
[0071] In the embodiment of the disclosure, the second sending rate corresponding to the expected rate information represents the expected rate, and as long as there is a congestion control result greater than the expected rate, the difference between each congestion control result and the expected rate is determined, and a plurality of difference results are determined.
[0072] In step b2, the minimum value in the absolute values of the plurality of difference results is determined, and the congestion control result corresponding to the minimum value is determined as the congestion control result with the highest matching degree with the expected rate information.
[0073] Based on the calculation of the minimum value of the absolute value of each difference result, the embodiment can determine the congestion control result closest to the expected rate, so as to accurately determine the congestion control result with the highest matching degree with the expected rate information.
[0074] In some optional embodiments, the step S2032 comprises:
[0075] Step c1, if the plurality of first sending rates corresponding to the plurality of congestion control results are all less than the second sending rate corresponding to the expected rate information, determining the maximum value in the plurality of first sending rates.
[0076] In some practical application scenarios, if the congestion control results output by each congestion control algorithm are all less than the expected rate, the embodiment filters out the result with the maximum sending rate in these congestion control results.
[0077] Step c2, determining the congestion control result corresponding to the maximum value as the congestion control result with the highest matching degree with the expected rate information.
[0078] For the case that the congestion control results output by all congestion control algorithms do not reach the expected rate, by using the congestion control result with the maximum sending rate as the congestion control result with the highest matching degree with the expected rate information, the embodiment can maximize the use of bandwidth on the basis of realizing congestion control.
[0079] In the embodiment, a data sending rate control method is provided, which can be used for a server and specifically applied to a data sending device (specifically, a QUIC layer in the data sending device) in the server, Figure 3 is a flowchart of the data sending rate control method according to the embodiment of the disclosure, as shown in Figure 3 The flowchart comprises the following steps:
[0080] Step S310, receiving data request information sent by a client.
[0081] In the embodiment, the data request information can be extracted from the request image of the client, and of course, the data request information carrying the expected rate information can also be directly obtained.
[0082] Step S320, parsing the expected rate information from the data request information.
[0083] Based on the manner that the data request information carries the expected rate information, the server of the embodiment can accurately know the expected value of the client for the data sending rate in the current connection process of the client and the server, and this manner further meets the dynamic change of user demand at different times and in different network environments.
[0084] Step S301, obtaining network information, the network information representing network information of a communication link between the server and the client. For details, please refer to Figure 2 Step S201 of the embodiment shown, which will not be repeated here.
[0085] Step S302, executing a plurality of preset congestion control strategies according to the network information to obtain a plurality of congestion control results; wherein the congestion control result is used to adjust the data sending rate, and the data sending rate represents the rate at which the server sends data to the client. For details, please refer to Figure 2 Step S202 of the embodiment shown, which will not be repeated here.
[0086] Step S303, deciding a target control result from the plurality of congestion control results, and controlling the data sending rate according to the target control result, the target control result being one of the plurality of congestion control results.
[0087] Specifically, the above step S303 includes:
[0088] Step S3031, obtaining expected rate information sent by the client, the expected rate information being used to represent the data sending rate requested by the client. For details, please refer to Figure 2 Step S2031 of the embodiment shown, which will not be repeated here.
[0089] Step S3032, matching the plurality of congestion control results with the expected rate information respectively, determining the congestion control result with the highest matching degree with the expected rate information as the target control result. For details, please refer to Figure 2 Step S2032 of the embodiment shown, which will not be repeated here.
[0090] In this embodiment, a data sending rate control method is provided, which can be used for a server, and specifically applied to a data sending device (specifically, a QUIC layer in the data sending device) in the server, Figure 4 is a flowchart of the data sending rate control method according to the embodiments of the present disclosure, as Figure 4 shown, the flow includes the following steps:
[0091] Step S401, obtaining network information, the network information representing network information of a communication link between the server and the client. For details, please refer to Figure 1 Step S101 of the embodiment shown, which will not be repeated here.
[0092] Step S402, executing a plurality of preset congestion control strategies according to the network information to obtain a plurality of congestion control results; wherein the congestion control result is used to adjust the data sending rate, and the data sending rate represents the rate at which the server sends data to the client. For details, please refer to Figure 1 Step S102 of the embodiment shown, which will not be repeated here.
[0093] Step S403, determining a target control result from the plurality of congestion control results, the target control result being one of the plurality of congestion control results, and controlling the data sending rate according to the target control result.
[0094] Specifically, the step S403 includes:
[0095] Step S4031, determining a maximum value from a plurality of first sending rates corresponding to the plurality of congestion control results.
[0096] Step S4032, determining a congestion control result corresponding to the maximum value as the target control result.
[0097] Therefore, the embodiments of the present disclosure can significantly improve the data sending rate by selecting the maximum value from the sending rates corresponding to the congestion control results output by the plurality of congestion control algorithms, thereby further improving the bandwidth utilization and enhancing the network performance.
[0098] In some optional embodiments, the step S403 includes: selecting one congestion control algorithm as a main algorithm from a plurality of congestion control algorithms included in the plurality of preset congestion control strategies, and selecting the unselected congestion control algorithms as auxiliary algorithms.
[0099] Optionally, if there are multiple auxiliary algorithms, the algorithm outputting the target control result can be the main algorithm or the auxiliary algorithm.
[0100] Specifically, the embodiments can select one congestion control algorithm as a main algorithm from a plurality of congestion control algorithms, and select the unselected algorithms as auxiliary algorithms, determine the target control result through a main algorithm and at least one auxiliary algorithm mode, for example, set the BBR congestion control algorithm as the main algorithm, and the main algorithm will enter the RTT detection phase every 10s, while there is no RTT detection phase in the case of setting the Cubic congestion control algorithm as the main algorithm. It can be seen that the main and auxiliary algorithm mode in the embodiments can help to optimize the congestion control result.
[0101] In the embodiments, a data sending rate control method is provided, which can be used for a server, and specifically applied to a data sending device (specifically, a QUIC layer in the data sending device) in the server, Figure 5 is a flowchart of the data sending rate control method according to the embodiments of the present disclosure, as shown in Figure 5 The flowchart includes the following steps:
[0102] Step S501, obtaining network information, the network information indicating network information of a communication link between the server and the client. For details, please refer to the step S101 of the embodiment shown in Figure 1 herein.
[0103] Step S502, a plurality of preset congestion control strategies are executed according to the network information, and a plurality of congestion control results are obtained; wherein, the congestion control result is used to adjust the data sending rate, and the data sending rate represents the rate of the server sending data to the client. For details, please refer to Figure 1 Step S102 of the embodiment shown will not be described here.
[0104] Step S503, a target control result is decided from the plurality of congestion control results, and the data sending rate is controlled according to the target control result, and the target control result is one of the plurality of congestion control results.
[0105] Specifically, the above step S503 includes:
[0106] Step c1, input the plurality of congestion control results into the trained decision model, and output the target control result by using the decision model.
[0107] Based on the trained decision model, the plurality of congestion control results are decided, and the embodiment can also more efficiently and accurately determine the target control result.
[0108] In some optional embodiments, the decision model is a machine learning model constructed based on the XGBoost (Distributed Gradient Boosting Library) gradient boosting decision tree algorithm.
[0109] The machine learning model constructed based on the XGBoost gradient boosting decision tree algorithm is a model with the advantages of light weight, high accuracy, interpretability and verifiability, etc. The XGBoost gradient boosting decision tree algorithm can be selected and offline learning is used to train by collecting historical real data, wherein the historical real data is historical data under different network states, the congestion control result output by each congestion control algorithm and the network parameter are taken as input, and the optimal congestion control window value or pacing rate is output, so as to realize the functions of judging the current network situation and deciding the pacing rate by using the trained model, and achieve the purpose of outputting more reasonable decision results, etc.
[0110] As Figure 6 and Figure 7As shown, this disclosure provides a congestion control algorithm fusion framework based on QUIC. QUIC, involved in this disclosure, is a low-latency Internet transport protocol based on UDP. QUIC uses UDP as the underlying transport protocol, incorporates TLS (Transport Layer Security) encryption, and combines the reliability-related characteristics of TCP (Transmission Control Protocol). QUIC can be further implemented at the application layer (i.e., user space), allowing for extensive modifications without updating the kernel. QUIC also supports pluggable congestion control algorithms; different congestion control algorithms can be implemented at the application level without requiring operating system or kernel support. Even different connections within a single application can support different congestion control configurations, thus the solution disclosed in this disclosure can be better implemented on QUIC. Even for a single server, the user network environments it connects to vary greatly; this disclosure can provide different but more accurate and effective congestion control for each user to better cope with complex and ever-changing network environments.
[0111] like Figure 6 As shown, this embodiment forms a congestion control algorithm pool within the QUIC layer. Each congestion control algorithm involved in this disclosure is set within this congestion control algorithm pool. Multiple congestion control algorithms run simultaneously within this algorithm pool, and each congestion control algorithm outputs a result, which is a congestion control window value and / or a congestion control transmission rate value, and is transmitted to the decision module. The decision module in this embodiment is also set within the QUIC layer. The decision module can obtain network parameters (e.g., RTT, SRTT) through the network parameter interface, and decides on the optimal congestion control algorithm output value among the results of multiple congestion control algorithms, which is then transmitted to the QUIC transmission control module. The QUIC transmission control module then effectively adjusts the data transmission rate and transmits data based on the optimal congestion control algorithm output value. More specifically, the congestion control algorithm pool accesses network parameters (such as the updated SRTT) through the network parameter interface. The congestion control algorithm pool receives ACK packets returned by the client and updates the current network information such as RTT, SRTT, and minRTT based on the information carried in the ACK packets. Each congestion control algorithm processes the ACK and updates the congestion control window value or pacing rate output by the congestion control algorithm based on the ACK information and outputs it.
[0112] Taking the congestion control algorithms in the congestion control algorithm pool, including BBR, Cubic, and Copa, as an example, when the client sends an ACK packet, the ACK packet is passed to the BBR, Cubic, and Copa congestion control algorithms. The BBR and Copa congestion control algorithms update at least one of the following information based on the information in the ACK packet: RTT, bandwidth, congestion control window value, pacing rate, etc. The Cubic congestion control algorithm determines whether packet loss has occurred based on the information in the ACK packet. If packet loss occurs, it adjusts the congestion control window value and slow start threshold value. If no packet loss occurs, it increases the congestion control window value according to the current state. The BBR, Cubic, and Copa congestion control algorithms each transmit their congestion control results to the decision module. If a congestion control window value exists that is larger than that of the BBR algorithm (e.g., Cubic or Copa), the maximum value is selected from the window values output by the other algorithms, and the corresponding pacing rate is calculated. This pacing rate is then transmitted to the QUIC transmission control module, which sends data according to the input pacing rate. This process is repeated until the current connection between the client and server ends.
[0113] In some optional implementations, the client sends an ACK packet, which is then passed to each congestion control algorithm in the congestion control algorithm pool. Each congestion control algorithm can update at least one of the following based on the information in the ACK packet: RTT, bandwidth, congestion control window value, pacing rate, etc. The decision module obtains network parameters through the network parameter interface. In this embodiment, a machine learning model based on the XGBoost gradient boosting decision tree algorithm, which has been trained, is integrated into the decision module. The decision module can take the congestion control window value and network parameters output by each congestion control algorithm as input, output the optimal congestion control window value or pacing rate, and pass the optimal pacing rate to the QUIC sending control module. The QUIC sending control module sends data according to the passed pacing rate. This process is repeated until the current connection between the client and the server ends.
[0114] like Figure 7 As shown, in Figure 6On the basis of the prior art, a QoE (Quality of Experience) processing module can be added, and the QoE processing module can be used to obtain request information sent by a client. The expected rate involved in the present disclosure is actually information carried in a request sent by the client. After the server receives the request information sent by the client, the field information in the request information is extracted to obtain the expected rate. In a specific implementation, other information can also be obtained from the request information sent by the client, and in this embodiment, the information is integrated as a request image of the client.
[0115] As Figure 7 and Figure 8As shown, the embodiment can implement the BBR congestion control algorithm and the Reno congestion control algorithm on the basis of the QUIC protocol. The client transmits ACK packets and request images containing expected rate information, the QoE processing module processes the request images, obtains the expected rate information contained therein, and transmits the expected rate information to the decision module. The ACK packets are transmitted to the BBR congestion control algorithm and the Reno congestion control algorithm in the congestion control algorithm pool. The BBR congestion control algorithm updates one or more of RTT, bandwidth, congestion control window value, pacing rate, and the like according to the information in the ACK packet. The Reno congestion control algorithm determines whether packet loss has occurred according to the information in the ACK packet. If there is packet loss, the congestion control window value and the slow start threshold value are adjusted. If there is no packet loss, the congestion control window value is increased according to the current state. The BBR congestion control algorithm and the Reno congestion control algorithm respectively transmit the new pacing rate and the congestion control window value to the decision module. The decision module obtains SRTT through the network parameter interface, wherein the unit of cwnd is bytes, the unit of pacing rate is Bps, and the unit of SRTT is ms. SRTT is first converted into s, cwnd / SRTT is used to determine the pacing rate corresponding to the Reno algorithm, and the calculated result is consistent with the unit of the pacing rate in BBR, so that it can be directly compared. The embodiment uses SRTT to reduce the influence of network delay jitter and better represents the current network state. The pacing rates of the two congestion control algorithms are compared with the expected rate. If there is a pacing rate greater than the expected rate, the pacing rate greater than the expected rate is all reduced by the expected rate, the calculated pacing rate values are compared, and the pacing rate value closest to the expected rate, that is, the smallest pacing rate value, is transmitted to the QUIC sending control module. If there is no pacing rate greater than the expected rate, it means that the pacing rates output by the BBR congestion control algorithm and the Reno congestion control algorithm are all less than the expected rate. The maximum pacing rate is selected as the output value of the decision module and is transmitted to the QUIC sending control module. The QUIC sending control module transmits data according to the transmitted pacing rate after receiving the pacing rate transmitted by the decision module. The above process is repeatedly executed until the current connection process between the client and the server is completed.
[0116] In summary, the technical solution provided by the present disclosure realizes a scheme of simultaneously running multiple congestion control algorithms on the basis of the QUIC protocol, so that different congestion control algorithms are used according to different network environments at different times in the same connection, according to different characteristics of different congestion control algorithms, such as the anti-packet loss characteristic of the BBR congestion control algorithm and the anti-RTT jitter characteristic of the Reno congestion control algorithm. For example, when RTT jitter is severe, the present disclosure avoids the BBR congestion control algorithm from becoming a bottleneck that limits the sending rate, and the Reno congestion control algorithm can be used to output a congestion control window value to calculate a pacing rate, thereby improving the sending rate and helping to meet the expected rate. Or, in the case of a high packet loss rate, the congestion control window value output by the BBR congestion control algorithm is higher than the congestion control window value output by the Reno congestion control algorithm, so the congestion control window value output by the BBR congestion control algorithm is used in this case, thereby improving the bandwidth utilization of the connection and reducing the connection completion time. Moreover, the scheme provided in one or more embodiments of the present disclosure has the advantage of simultaneously running multiple congestion control algorithms compared to conventional congestion control algorithms, and the advantages of multiple congestion control algorithms are also brought into play. Moreover, the scheme of the present disclosure does not need to perform a switching process between multiple congestion control algorithms, so that the sending rate jitter caused by algorithm switching does not occur, and there is no need to judge the switching time of the algorithm, thereby further improving the ability to resist network jitter and packet loss and improving network bandwidth utilization.
[0117] In the present embodiment, a data sending rate control device is also provided, which is used to implement the above-mentioned embodiments and preferred embodiments, and will not be described again. As used below, the term "module" or "unit" can be a combination of software and / or hardware that implements a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware or a combination of software and hardware is also possible and is contemplated.
[0118] The present embodiment provides a data sending rate control device, as shown in Figure 9 , comprising:
[0119] The acquisition unit 901 is configured to acquire network information, the network information indicating network information of a communication link between the server and the client.
[0120] The execution unit 902 is configured to execute multiple preset congestion control strategies according to the network information to obtain multiple congestion control results; wherein the congestion control result is used to adjust the data sending rate, and the data sending rate indicates the rate at which the server sends data to the client.
[0121] The decision unit 903 is configured to determine a target control result from the plurality of congestion control results, and control the data sending rate according to the target control result, where the target control result is one of the plurality of congestion control results.
[0122] In some optional embodiments, the decision unit 903 includes:
[0123] The obtaining sub-unit is configured to obtain the expected rate information sent by the client, where the expected rate information is used to represent the data sending rate requested by the client.
[0124] The matching sub-unit is configured to match the plurality of congestion control results with the expected rate information respectively, and determine the congestion control result with the highest matching degree with the expected rate information as the target control result.
[0125] In some optional embodiments, the matching sub-unit includes:
[0126] The difference calculating sub-unit is configured to calculate the difference between the plurality of first sending rates corresponding to the plurality of congestion control results and the second sending rate corresponding to the expected rate information respectively, to obtain a plurality of difference results, where the difference is calculated according to that at least one of the plurality of first sending rates is greater than the second sending rate.
[0127] The first determining sub-unit is configured to determine the minimum value in the absolute values of the plurality of difference results, and determine the congestion control result corresponding to the minimum value as the congestion control result with the highest matching degree with the expected rate information.
[0128] In some optional embodiments, the matching sub-unit includes:
[0129] The maximum value selecting sub-unit is configured to determine the maximum value in the plurality of first sending rates corresponding to the plurality of congestion control results, according to that all of the plurality of first sending rates are less than the second sending rate corresponding to the expected rate information.
[0130] The second determining sub-unit is configured to determine the congestion control result corresponding to the maximum value as the congestion control result with the highest matching degree with the expected rate information.
[0131] In some optional embodiments, the obtaining sub-unit includes:
[0132] The receiving sub-unit is configured to receive the data request information sent by the client.
[0133] The parsing sub-unit is configured to parse the expected rate information from the data request information.
[0134] In some optional embodiments, the decision unit 903 includes:
[0135] The maximum value determination sub-unit is configured to determine a maximum value among the plurality of first sending rates corresponding to the plurality of congestion control results.
[0136] The result determination sub-unit is configured to determine the congestion control result corresponding to the maximum value as the target control result.
[0137] In some optional embodiments, the decision unit 903 is specifically configured to input the plurality of congestion control results into the trained decision model, and output the target control result by using the decision model.
[0138] In some optional embodiments, the decision model is a machine learning model constructed based on an XGBoost gradient boosting decision tree algorithm.
[0139] In some optional embodiments, the obtaining unit 901 comprises:
[0140] The receiving sub-unit is configured to receive the acknowledgement message sent by the client.
[0141] The updating sub-unit is configured to update the network information according to the acknowledgement message to obtain the updated network information.
[0142] In some optional embodiments, the network information comprises one or more of a round-trip delay, a smoothed round-trip delay, a minimum round-trip delay, a bandwidth, and a random packet loss rate.
[0143] In some optional embodiments, the congestion control result is a congestion control window value or a sending rate value of congestion control.
[0144] In some optional embodiments, the plurality of preset congestion control strategies comprises at least two of a BBR congestion control algorithm, a Cubic congestion control algorithm, a Copa congestion control algorithm, and a Reno congestion control algorithm.
[0145] In some optional embodiments, the decision unit 903 is further configured to select one congestion control algorithm from the plurality of congestion control algorithms included in the plurality of preset congestion control strategies as a main algorithm, and select the unselected congestion control algorithms as auxiliary algorithms.
[0146] Further function descriptions of the above-mentioned various modules and units are the same as those of the above-mentioned corresponding embodiments, and will not be described here again.
[0147] The data sending rate control device in the embodiment is presented in the form of functional units. The units herein refer to ASIC (Application Specific Integrated Circuit) circuits, processors and memories executing one or more software or fixed programs, and / or other devices that can provide the above-mentioned functions.
[0148] This disclosure also provides an electronic device having the above-described features. Figure 9 The data transmission rate control device shown.
[0149] Please see Figure 10 , Figure 10 This is a schematic diagram of the structure of an electronic device provided in an optional embodiment of this disclosure, such as... Figure 10 As shown, the electronic device includes one or more processors 10, memory 20, and interfaces for connecting the components, including high-speed interfaces and low-speed interfaces. The components communicate with each other via different buses and can be mounted on a common motherboard or otherwise as required. The processors can process instructions executed within the electronic device, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as display devices coupled to the interfaces). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories and multiple memory modules, if desired. Similarly, multiple electronic devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). Figure 10 Take a processor 10 as an example.
[0150] Processor 10 may be a central processing unit, a network processor, or a combination thereof. Processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The programmable logic device may be a complex programmable logic device (CAMP), a field-programmable gate array (FPGA), a general-purpose array logic (GDA), or any combination thereof.
[0151] The memory 20 stores instructions executable by at least one processor 10 to cause the at least one processor 10 to perform the method shown in the above embodiments.
[0152] The memory 20 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the electronic device. Furthermore, the memory 20 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 20 may optionally include memory remotely located relative to the processor 10, and these remote memories may be connected to the electronic device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0153] The memory 20 can include a volatile memory, such as a random access memory, and / or can include a non-volatile memory, such as a flash memory, a hard disk or a solid state drive. The memory 20 can also include a combination of the above-mentioned types of memory.
[0154] The electronic device also includes a communication interface 30 for communicating with other devices or communication networks.
[0155] The embodiments of the present disclosure further provide a computer readable storage medium, and the method according to the embodiments of the present disclosure can be implemented in hardware, firmware, or recorded in a storage medium, or be implemented through computer code originally stored in a remote storage medium or non-transitory machine readable storage medium and downloaded to a local storage medium, so that the method described herein can be processed by such software on a storage medium using a general purpose computer, a special purpose processor, or programmable or special purpose hardware. The storage medium can be a magnetic disk, an optical disk, a read-only memory, a random access memory, a flash memory, a hard disk or a solid state disk, etc. Further, the storage medium can also include a combination of the above-mentioned types of memory. It can be understood that the computer, processor, microprocessor controller or programmable hardware includes a storage component that can store or receive software or computer code, when the software or computer code is accessed and executed by the computer, processor or hardware, the method shown in the above embodiments is implemented.
[0156] Although the embodiments of the present disclosure are described in conjunction with the accompanying drawings, various modifications and changes can be made by those skilled in the art without departing from the spirit and scope of the present disclosure, and such modifications and changes fall within the scope defined by the appended claims.
Claims
1. A data transmission rate control method characterized by comprising the steps of, The method comprises: obtaining network information, the network information representing network information of a communication link between a server and a client; executing a plurality of preset congestion control strategies according to the network information to obtain a plurality of congestion control results; wherein the congestion control results are used to adjust a data sending rate, the data sending rate representing a rate at which the server sends data to the client, and the congestion control results are congestion control window values or congestion control sending rate values; deciding a target control result from the plurality of congestion control results, and controlling the data sending rate according to the target control result, the target control result being one of the plurality of congestion control results.
2. The method of claim 1, wherein, The decision of the target control result from the plurality of congestion control results comprises: obtaining expected rate information sent by the client, the expected rate information being used to represent a data sending rate requested by the client; matching the plurality of congestion control results with the expected rate information respectively, and determining a congestion control result with the highest matching degree with the expected rate information as the target control result.
3. The method of claim 2, wherein, The matching of the plurality of congestion control results with the expected rate information respectively to determine the congestion control result with the highest matching degree with the expected rate information comprises: if at least one of a plurality of first sending rates corresponding to the plurality of congestion control results is greater than a second sending rate corresponding to the expected rate information, then performing difference value calculation on the plurality of first sending rates and the second sending rate respectively to obtain a plurality of difference value results; determining a minimum value in absolute values of the plurality of difference value results, and determining a congestion control result corresponding to the minimum value as the congestion control result with the highest matching degree with the expected rate information.
4. The method of claim 2, wherein, The matching of the plurality of congestion control results with the expected rate information respectively to determine the congestion control result with the highest matching degree with the expected rate information comprises: if all of the plurality of first sending rates corresponding to the plurality of congestion control results are less than the second sending rate corresponding to the expected rate information, then determining a maximum value in the plurality of first sending rates; determining a congestion control result corresponding to the maximum value as the congestion control result with the highest matching degree with the expected rate information.
5. The method according to any one of claims 2 to 4, characterized in that, The obtaining of the expected rate information sent by the client comprises: receiving data request information sent by the client; parsing the expected rate information from the data request information.
6. The method of claim 1, wherein, The decision of the target control result from the plurality of congestion control results comprises: determining a maximum value in a plurality of first sending rates corresponding to the plurality of congestion control results; determining a congestion control result corresponding to the maximum value as the target control result.
7. The method of claim 1, wherein, The decision of the target control result from the plurality of congestion control results comprises: inputting the plurality of congestion control results into a trained decision model, and outputting the target control result by using the decision model.
8. The method of claim 7, wherein The decision model is a machine learning model constructed based on an XGBoost gradient boosting decision tree algorithm.
9. The method of claim 1, wherein, The network information includes: Receiving an acknowledgement message sent by the client; Updating the network information according to the acknowledgement message to obtain updated network information.
10. The method of any one of claims 1-4 or 6-9, wherein The network information includes one or more of round-trip delay, smoothed round-trip delay, minimum round-trip delay, bandwidth, and random packet loss rate.
11. The method of any one of claims 1-4 or 6-9, wherein The plurality of preset congestion control strategies include at least two of BBR congestion control algorithm, Cubic congestion control algorithm, Copa congestion control algorithm, and Reno congestion control algorithm.
12. The method of claim 11, wherein, The decision of the target control result from the plurality of congestion control results includes: From the plurality of congestion control algorithms included in the plurality of preset congestion control strategies, a congestion control algorithm is selected as a main algorithm, and an unselected congestion control algorithm is selected as a secondary algorithm.
13. A data transmission rate control apparatus characterized by comprising: The apparatus includes: An obtaining unit configured to obtain network information, the network information representing network information of a communication link between a server and a client; An executing unit configured to execute a plurality of preset congestion control strategies according to the network information to obtain a plurality of congestion control results, wherein the congestion control result is used to adjust a data sending rate, the data sending rate representing a rate at which the server sends data to the client, and the congestion control result is a congestion control window value or a congestion control sending rate value; A decision unit configured to decide a target control result from the plurality of congestion control results, and control the data sending rate according to the target control result, wherein the target control result is one of the plurality of congestion control results.
14. An electronic device, comprising: including: A memory and a processor, which are communicatively connected, the memory stores computer instructions, and the processor executes the computer instructions to perform the data sending rate control method of any one of claims 1-12.
15. A computer-readable storage medium, characterized in that, The computer readable storage medium stores computer instructions, and the computer instructions are used to make a computer execute the data sending rate control method of any one of claims 1-12.