Network rate control method and device, chip, network interface card, computer equipment, readable storage medium and program product
By updating the network rate according to the RTT of the stream, the larger the RTT, the larger the increase in the flow rate, the problem of unfair bandwidth allocation caused by RTT unfairness under the AIMD algorithm is solved, and bandwidth fairness and high bandwidth utilization under multi-stream conditions are achieved.
Patent Information
- Application Number
- CN202510310857.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-03-14
- Publication Date
- 2025-06-10
AI Technical Summary
Under multi-stream conditions, AIMD-based congestion control algorithm results in unfair bandwidth allocation of different streams of RTT, and the larger the RTT, the slower the flow rate grows, resulting in low bandwidth occupancy and long-tail delay.
By determining the RTT of the current stream and updating the network rate based on the RTT, the larger the RTT, the greater the increase in each rate of the stream, thereby ensuring bandwidth fairness. The specific method includes obtaining the RTT of the virtual stream as the baseline RTT, calculating the target multiple of the current stream RTT relative to the baseline RTT, and updating the network rate of the current stream to reflect the target multiple.
The bandwidth fairness under multi-stream conditions is achieved, long-tail delay caused by RTT unfairness is avoided, and the overall bandwidth utilization of the network is improved.
Smart Images

Figure CN120128548A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technologies, and in particular, to a network rate control method, apparatus, chip, network interface card, computer device, computer-readable storage medium, and computer program product. Background Art
[0002] The main purpose of the congestion control algorithm is to manage network traffic, prevent network congestion, and ensure the efficient transmission of data packets in the network. By adjusting the sending rate, the congestion control algorithm can avoid waste of network resources, reduce data packet loss and delay, improve the overall throughput and stability of the network, and thus guarantee the quality of network services.
[0003] In traditional technologies, whether it is the TCP (Transmission Control Protocol) protocol or the RDMA (Remote Direct Memory Access) technology, the mainstream congestion control algorithms are based on the AIMD (Additive Increase Multiply Decrease) mechanism.
[0004] However, in the case of multiple flows, if the RTTs (Round-trip times) of different flows are different, their rate increase intervals are different based on the AIMD mechanism. For the standard AIMD scheme, the larger the RTT of a flow, the longer its rate increase interval, the fewer the number of times the rate increases during the additive increase process in the same time, and the slower the rate growth, which leads to the problem of bandwidth unfairness. Summary of the Invention
[0005] Based on this, it is necessary to provide a network rate control method, apparatus, chip, network interface card, computer device, computer-readable storage medium, and computer program product that can ensure bandwidth fairness for the above technical problems.
[0006] In a first aspect, the present application provides a network rate control method, and the method includes:
[0007] Determine the RTT of the current flow;
[0008] Update the network rate of the current flow based on the RTT of the current flow, where the larger the RTT of the current flow, the greater the increase amplitude of the network rate of the current flow during the update.
[0009] In an optional embodiment, the updating the network rate of the current flow based on the RTT of the current flow includes:
[0010] Obtain a constructed virtual flow, and the RTT of the virtual flow is the baseline RTT;
[0011] Calculate a target multiple of the RTT of the current flow relative to the baseline RTT, where the target multiple is an integer multiple;
[0012] Update the network rate of the current flow based on the current network rate of the current flow and the target multiple, where the larger the target multiple, the greater the increase in the network rate of the current flow during the update.
[0013] In one alternative embodiment, the updating the network rate of the current flow based on the current network rate of the current flow and the target multiple includes:
[0014] Obtain the updated network rate of the current flow based on the following formula;
[0015]
[0016] where r(n) is the updated network rate of the current flow, r(n - 1) is the network rate of the current flow before the update, T 0 is the baseline RTT, T is the RTT of the current flow, is the target multiple, α is the target amplitude, and the target amplitude is greater than 0.
[0017] In one alternative embodiment, the method further includes:
[0018] When updating the network rate of the current flow, synchronously update the network rate of the virtual flow;
[0019] Obtain the network rate of the current flow after deceleration based on the network rate of the virtual flow.
[0020] In one alternative embodiment, the synchronously updating the network rate of the virtual flow includes:
[0021] When accelerating, every time the baseline RTT time elapses, the network rate of the virtual flow increases by the target amplitude.
[0022] In one alternative embodiment, the synchronously updating the network rate of the virtual flow includes:
[0023] When decelerating, determine a first network rate of the virtual flow before deceleration based on the target multiple and the current network rate of the virtual flow;
[0024] Obtain a second network rate of the virtual flow after deceleration based on the first network rate;
[0025] Re-accelerate the second network rate to obtain the target network rate of the virtual flow at the current moment.
[0026] In one alternative embodiment, synchronously updating the network rate of the virtual stream includes:
[0027] In the case of accelerating, updating the network rate of the virtual stream based on the following formula:
[0028] r s (t) = r s (t - T 0 ) + α
[0029] where r s (t) is the rate of the virtual stream at time t, and α is the target amplitude;
[0030] In the case of decelerating, updating the network rate of the virtual stream based on the following formula:
[0031] r s (t) = [r s (t) - C] · (1 - β)
[0032] where C = (K - 1) · α, β is the multiplicative reduction factor, and K is the target multiple.
[0033] In a second aspect, the present application further provides a network rate control device, which includes:
[0034] An RTT determination module, configured to determine the RTT of the current stream;
[0035] A network rate update module, configured to update the network rate of the current stream based on the RTT of the current stream, where the greater the RTT of the current stream, the greater the increase amplitude of the network rate of the current stream during update.
[0036] In a third aspect, the present application further provides a chip, which includes a memory and a processor, where the memory stores a computer program, and the processor implements the steps of the method described in any one of the above embodiments when executing the computer program.
[0037] In a fourth aspect, the present application further provides a network interface card, which includes the chip described in any one of the above embodiments and a plurality of interfaces, and the chip processes data or communicates externally through the interfaces.
[0038] In a fifth aspect, the present application further provides a computer device, which includes the network interface card described in any one of the above embodiments, and the network interface card is used to process data or communicate externally.
[0039] In a sixth aspect, the present application further provides a computer-readable storage medium, on which a computer program is stored, and the computer program implements the steps of the method described in any one of the above embodiments when being executed by a processor.
[0040] In a seventh aspect, the present application further provides a computer program product, including a computer program, where when the computer program is executed by a processor, the steps of the method described in any one of the above embodiments are implemented.
[0041] For the above network rate control method, device, chip, network interface card, computer device, computer-readable storage medium, and computer program product, the RTT of the current flow is determined; based on the RTT of the current flow, the network rate of the current flow is updated, where the greater the RTT of the current flow, the greater the increase amplitude of the network rate of the current flow during the update. In this way, for a flow with a larger RTT, the rate increase amplitude each time is also larger, thus ensuring fairness. BRIEF DESCRIPTION OF THE DRAWINGS
[0042] To more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following will briefly introduce the drawings required for use in the description of the embodiments of the present application or related technologies. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other related drawings can also be obtained based on these drawings.
[0043] Figure 1 It is a schematic diagram of the change process of the congestion window of the typical TCP congestion control algorithm Reno;
[0044] Figure 2 It is a schematic diagram of the comparison of the multi-flow AIMD speed increase under different RTTs;
[0045] Figure 3 It is a schematic diagram of the application environment of the network rate control method in an embodiment;
[0046] Figure 4 It is a schematic diagram of the flow of the network rate control method in an embodiment;
[0047] Figure 5 It is a schematic diagram of the network rate control of multi-flows under different RTTs in an embodiment;
[0048] Figure 6 It is a schematic diagram of the comparison of the rate update processes of 3 flows starting from the same initial value under three schemes in an embodiment;
[0049] Figure 7 It is a schematic diagram of the comparison of the rate update processes of 3 flows under three schemes at different RTTs in an embodiment;
[0050] Figure 8 It is a schematic diagram of the comparison of the rate update processes of 3 flows under three schemes at different RTTs in another embodiment;
[0051] Figure 9 is a schematic block diagram of the structure of a network rate control device in an embodiment;
[0052] Figure 10 is a schematic internal structure diagram of a computer device in an embodiment. Detailed implementation manners
[0053] In order to make the objectives, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0054] In the traditional technology, whether it is the TCP (Transmission Control Protocol) protocol or the RDMA (Remote Direct Memory Access) technology, the mainstream congestion control algorithms are all based on the AIMD (additive increase, multiplicative decrease) mechanism.
[0055] TCP CC (Congestion Control), such as the Reno algorithm, includes four main stages: slow start, congestion avoidance, congestion signal processing (including timeout retransmission, fast retransmission and fast recovery). Combined Figure 1 as shown Figure 1It is a schematic diagram of the change process of the congestion window of the typical TCP congestion control algorithm Reno, where the two stages of congestion avoidance and congestion signal processing respectively interpret additive increase AI and multiplicative decrease MD. Specifically, in the congestion avoidance stage, each time an ACK is received, the congestion window increases by MSS (Maximum Segment Size) / cwnd (Congestion Window). At the end of each round (each round is regarded as a round-trip time, RTT. The round-trip time represents the total delay experienced from the time when the sender sends data until the sender receives the confirmation from the receiver), the congestion window increases by approximately one MSS, that is, cwnd = cwnd + MSS. If represented by rate, the general rate update formula for the additive increase process is: r_c = r_c + α(per-RTT), where α is the additive increase coefficient, per-RTT represents one RTT (Round-Trip Time, network round-trip time), and r_c is the network rate. In the congestion signal processing stage, typically, when 3 duplicate ACKs are received, TCP sets the slow start threshold (ssthresh) to half of the current congestion window and makes the congestion window equal to the slow start threshold after the fast recovery ends, that is, cwnd = ssthresh. If represented by rate, the general rate update formula for multiplicative decrease is: r_c = r_c·(1 - β), where β is the multiplicative reduction coefficient.
[0056] DCQCN (Data Center Quantized Congestion Notification) is a congestion control algorithm for data center networks (such as RDMA networks). In the DCQCN algorithm, the positive increase process and the ultra-positive increase process of speed increase and the speed decrease process also follow the AIMD mechanism, which will not be elaborated here.
[0057] In summary, the above congestion control algorithms have at least the following problems:
[0058] RTT unfairness problem: Under the condition of multiple flows, if the RTTs of different flows are different, their speed increase intervals are different. For the standard AIMD scheme, the larger the RTT of a flow, the longer the speed increase interval, the fewer the number of times the rate increases during the additive increase process in the same time, and the slower the rate growth, which further leads to the bandwidth unfairness problem.
[0059] Long-tailed delay in the scenario of different RTTs: In the scenario of different RTTs for long flows, due to the further extension of the RTT unfairness problem, the lower the bandwidth occupancy rate of the flow with a larger RTT, and the longer the flow completion time (FCT), resulting in the long-tailed delay problem, which further affects the overall delay performance of multi-flow tasks.
[0060] Combined Figure 2 as shown Figure 2 It is a schematic diagram for comparing the multi - flow AIMD speed - up under different RTTs. In this embodiment, under the condition of different RTTs for multi - flows, the basic AIMD speed - up and slow - down algorithms are executed, and there are significant differences in bandwidth changes and bandwidth utilization. Obviously, the flow with a smaller RTT has a greater advantage during speed - up, with more growth rounds and a larger absolute value of rate increase within the same time period.
[0061] To solve the above - mentioned at least one technical problem, the present application proposes a network rate control method. For the flow with a larger RTT, the amplitude of each rate increase is also larger. In this way, even if the frequency of its increase within the same time period is less, the absolute value of the increase is not less than that of the flow with a smaller RTT.
[0062] The network rate control method provided by the embodiments of the present application can be applied to an application environment such as Figure 3 as shown. Among them, the data sender 102 communicates with the data receiver 104 through the network. The data sender 102 determines the RTT of the current flow; based on the RTT of the current flow, the network rate of the current flow is updated, where the larger the RTT of the current flow, the greater the increase amplitude of the network rate of the current flow. In this way, for the flow with a larger RTT, the amplitude of each rate increase is also larger, thus ensuring fairness.
[0063] In an exemplary embodiment, as Figure 4 shown, a network rate control method is provided. Taking the data sender in Figure 1 as an example for illustration, it includes the following steps S402 to step S404. Among them:
[0064] S402: Determine the RTT of the current flow.
[0065] Wherein, RTT refers to the time required from when the data sender sends data to when the data sender receives the confirmation from the data receiver, and it is an important indicator for measuring network latency. RTT can be obtained through any method, and no specific limitation is made here.
[0066] S404: Based on the RTT of the current flow, update the network rate of the current flow, where the larger the RTT of the current flow, the greater the increase amplitude of the network rate of the current flow during the update.
[0067] Among them, combined Figure 2As shown, flows with smaller RTT during speed-up have greater advantages, with more growth rounds and a larger absolute value of rate growth within the same time period. To ensure bandwidth fairness among flows, the rate increase of a flow is made proportional to the size of its RTT, that is: the larger the RTT of a flow, the greater the amplitude of rate increase each time. In this way, even though the frequency of its increase is less within the same time period, the absolute value of the increase is not less than that of a flow with a smaller RTT.
[0068] The above network rate control method determines the RTT of the current flow; based on the RTT of the current flow, it updates the network rate of the current flow, where the larger the RTT of the current flow, the greater the amplitude of increase in the network rate of the current flow during update. In this way, the larger the RTT of a flow, the greater the amplitude of rate increase each time, thus ensuring fairness.
[0069] In one optional embodiment, updating the network rate of the current flow based on the RTT of the current flow includes: obtaining a constructed virtual flow, where the RTT of the virtual flow is the baseline RTT; calculating the target multiple of the RTT of the current flow relative to the baseline RTT, and the target multiple is an integer multiple; updating the network rate of the current flow based on the current network rate of the current flow and the target multiple, where the larger the target multiple, the greater the amplitude of increase in the network rate of the current flow.
[0070] The virtual flow does not actually exist and is only used as an anchor for network rate update. The RTT of this virtual flow is the baseline RTT, and the baseline RTT is a fixed value. If the baseline RTT is T 0 then it satisfies T 0 << T, where T is the RTT of the service flow, and approximately where K is the target multiple, and the target multiple is an integer multiple. And the larger the target multiple, the greater the amplitude of increase in the network rate of the current flow.
[0071] In one optional embodiment, updating the network rate of the current flow based on the current network rate of the current flow and the target multiple includes:
[0072] Obtaining the updated network rate of the current flow based on the following formula;
[0073]
[0074] where r(n) is the updated network rate of the current flow, r(n - 1) is the network rate of the current flow before update, T 0 is the baseline RTT, T is the RTT of the current flow, is the target multiple, and α is the target amplitude, and the target amplitude is greater than 0.
[0075] Based on the above formula, it can be determined that a virtual flow every T 0The time rate increases by α, and the absolute rate after T time, that is, is the increase amplitude of the network rate of the current flow.
[0076] Combined with Figure 5 as shown, Figure 5 is a schematic diagram of the network rate control of multiple flows under different RTTs in an embodiment. In this embodiment, Figure 5 in (a), α = 0.01, β = 0.5, Figure 5 in (b), α = 0.02, β = 0.5. It can be seen from Figure 5 that when accelerating, flows with different RTTs can be well fitted and have similar bandwidth levels, thus ensuring fairness during acceleration. However, for deceleration, different deceleration timings will lead to subsequent acceleration bias. The flow with a larger RTT receives the deceleration feedback later, and the subsequent growth bottleneck is lower, and the bandwidth that can be preempted is less. As Figure 5 shown in (b), during the first-round acceleration process, although the rate growth of flows with different RTTs is very similar, after all execute the first-round deceleration, the flow with a larger RTT has a greater disadvantage and lower bandwidth preemption ability during the next acceleration process.
[0077] To solve this technical problem, the present application provides a method for network rate control during deceleration, including: when updating the network rate of the current flow, synchronously updating the network rate of the virtual flow; based on the network rate of the virtual flow, obtaining the network rate of the current flow after deceleration.
[0078] It should be noted that this virtual flow does not actually exist, but is only used as an anchor for the rate update of the service flow. The update of the network rate of the virtual flow can be called the virtual flow shadow update strategy.
[0079] Among them, the network rate control method during deceleration is implemented by updating the network rate of the virtual flow, that is, when updating the network rate of the current flow, synchronously updating the network rate of the virtual flow, and the update of the network rate of the virtual flow includes the update of the network rate of the virtual flow during acceleration and the update of the network rate of the virtual flow during deceleration.
[0080] In one optional embodiment, synchronously updating the network rate of the virtual flow includes: when accelerating, every time the baseline RTT time passes, the network rate of the virtual flow increases by the target amplitude.
[0081] Specifically, the acceleration update method of the virtual flow is: r s (t) = r s (t - T 0 ) + α, that is, every time T 0 time passes, the network rate increases by α, where r s(t) is the network rate of the virtual flow at time t, r s (t - T 0 ) The network rate of the virtual flow at t - T 0 time, and α is the target amplitude.
[0082] In one alternative embodiment, synchronously updating the network rate of the virtual flow includes: in the case of speed reduction, determining a first network rate of the virtual flow before speed reduction based on a target multiple and the current network rate of the virtual flow; obtaining a second network rate of the virtual flow after speed reduction based on the first network rate; and re-accelerating the second network rate to obtain the target network rate of the virtual flow at the current moment.
[0083] Among them, the current flow receives the congestion signal and reduces its speed at a time later than the virtual flow. Therefore, according to the RTT relationship, it can be calculated that the time when the network rate of the current flow decreases is delayed by (K - 1)·T 0 time. That is to say, when the current flow performs shadow update on the virtual flow, an additional amplitude of (K - 1)·α is added. Thus, the magnitude of the first network rate of the virtual flow before speed reduction can be determined as r s (t - (K - 1)·T 0 ) = r s (t) - (K - 1)·α, where r s (t - (K - 1)·T 0 ) represents the network rate of the virtual flow at t - (K - 1)·T 0 time, r s (t) is the network rate of the virtual flow at time t, α is the target amplitude, and K is the target multiple. This process of determining the first network rate of the virtual flow before speed reduction can be called the fallback process.
[0084] According to the speed reduction formula of the virtual flow r s (t) = r s (t)·(1 - β), the second network rate of the virtual flow after speed reduction can be obtained based on the first network rate, that is, based on the network rate of the virtual flow at t - (K - 1)·T 0 time and the β multiplicative reduction factor, the network rate of the virtual flow after speed reduction at t - (K - 1)·T 0 time can be obtained, that is, r s (t - (K - 1)·T 0 ) = r s (t - (K - 1)·T 0 )·(1 - β), where r s (t - (K - 1)·T 0 + T 0 ) represents t - (K - 1)·T 0The network rate of the virtual flow at a moment, and β is the multiplicative reduction coefficient. And since the first network rate before the virtual flow decelerates is r s (t - (K - 1)·T 0 ) = r s (t) - (K - 1)·α, therefore, the second network rate after the virtual flow decelerates is r s (t - (K - 1)·T 0 ) = r s (t - (K - 1)·T 0 )·(1 - β) = [r s (t) - (K - 1)·α]·(1 - β).
[0085] Finally, the second network rate is accelerated again to obtain the target network rate of the virtual flow at the current moment, that is, the network rate after accelerating the virtual flow after deceleration to the current moment t is: r s (t) = r s (t - (K - 1)·T 0 ) + (K - 1)·α = [r s (t) - (K - 1)·α]·(1 - β) + (K - 1)·α. The process of decelerating and then accelerating the network rate of the virtual flow to obtain the network rate at the current moment t can be called the compensation process.
[0086] In addition, it should be noted that the fallback and the compensation value are the same, both C = (K - 1)·α.
[0087] To sum up, synchronously updating the network rate of the virtual flow includes:
[0088] In the case of acceleration, update the network rate of the virtual flow based on the following formula:
[0089] r s (t) = r s (t - T 0 ) + α
[0090] where r s (t) is the rate of the virtual flow at time t, and α is the target amplitude;
[0091] In the case of deceleration, the deceleration formula for the virtual flow is r s (t) = r s (t)·(1 - β), and update the network rate of the virtual flow based on the following formula:
[0092] r s (t) = [r s (t) - C]·(1 - β) + C
[0093] Among them, C = (K - 1)·α, β is the multiplicative reduction coefficient, and K is the target multiple.
[0094] Finally, based on the network rate of the updated virtual flow after speed reduction, the network rate of the current flow after speed reduction is obtained, that is, the network rate r c (t) is adjusted to be consistent with the network rate of the updated virtual flow after speed reduction, r c (t) = r s (t), so that after speed reduction, the process of resuming speed can still be executed according to the speed-up algorithm in the above text, that is This not only has better fairness but also higher overall bandwidth utilization.
[0095] The above network rate control method supports rate anchoring of long RTT flows and short RTT flows relative to the virtual flow, so that multiple flows can stably converge to the fair bandwidth. In addition, during speed reduction, long RTT flows can obtain more bandwidth compensation to align with the rate of the baseline RTT virtual flow. Compared with the standard AIMD algorithm without bandwidth compensation, the present application can achieve higher overall bandwidth utilization.
[0096] Among them, for the convenience of comparing each scheme, the network rate speed-up method in the present application is called the K-AIMD scheme, and the network rate speed-reduction method in the present application is called the S-AIMD scheme.
[0097] Combined with Figure 6 shown, Figure 6 is a schematic diagram comparing the rate update processes of three flows starting from the same initial value under three schemes in an embodiment. In this embodiment, RTT_F1 = T0, RTT_F2 = 2T0, and RTT_F3 = 3T0. △avg_rate represents the width of the upper and lower limits of the average bandwidth of the three flows (the flow with the largest average bandwidth minus the flow with the smallest average bandwidth), which is used to measure the RTT bandwidth fairness. The smaller the value, the better the fairness. bw_util represents the overall average bandwidth utilization, and the larger the value, the higher the utilization of the bandwidth. Among them Figure 6 (a) is the standard AIMD scheme, △avg_rate = 0.255, bw_util = 74.7%. Figure 6 (b) is the K-AIMD scheme, △avg_rate = 0.255, bw_util = 74.7%. Figure 6 (c) is the S-AIMD scheme, △avg_rate = 0.255, bw_util = 74.7%. It can be seen from Figure 6 that the bandwidth fairness of the K-AIMD scheme is far better than that of the standard AIMD scheme, while the S-AIMD scheme is significantly better than the K-AIMD scheme in terms of bandwidth fairness and has higher bandwidth utilization.
[0098] Combined Figure 7 with Figure 8 as shown, where Figure 7 in it, RTT_F1 = 1, RTT_F2 = 2, RTT_F3 = 10, α = 0.01, β = 0.5, Figure 8 in it, RTT_F1 = 3, RTT_F2 = 5, RTT_F3 = 8, α = 0.01, β = 0.5. Where Figure 7 (a) in it is the standard AIMD scheme, △avg_rate = 0.395, bw_util = 74.1%. Figure 7 (b) in it is the K - AIMD scheme, △avg_rate = 0.076, bw_util = 78.2%. Figure 7 (c) in it is the S - AIMD scheme, △avg_rate = 0.038, bw_util = 86.4%. Figure 8 (a) in it is the standard AIMD scheme, △avg_rate = 0.170, bw_util = 69.5%. Figure 8 (b) in it is the K - AIMD scheme, △avg_rate = 0.054, bw_util = 82.9%. Figure 8 (c) in it is the S - AIMD scheme, △avg_rate = 0.025, bw_util = 85.6%. It can be seen that as RTT increases, the S - AIMD scheme is still consistently superior to the AIMD and K - AIMD schemes in terms of bandwidth fairness and bandwidth utilization.
[0099] It should be understood that although each step in the flowcharts involved in the above embodiments is shown in sequence according to the arrow indication, these steps are not necessarily executed in the order indicated by the arrows. Unless there is a clear description in this article, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily executed at the same moment, but can be executed at different moments. The execution order of these steps or stages is not necessarily sequential, but can be executed alternately or in turn with at least a part of other steps or steps or stages in other steps.
[0100] Based on the same inventive concept, the embodiments of the present application also provide a network rate control device for implementing the above - mentioned network rate control method. The implementation solutions provided by this device to solve problems are similar to the implementation solutions described in the above method. Therefore, the specific limitations in one or more embodiments of the network rate control device provided below can refer to the limitations on the network rate control method in the above text, and will not be elaborated here.
[0101] In an exemplary embodiment, as Figure 9 shown, a network rate control device is provided, including: an RTT determination module 901 and a network rate update module 902, where:
[0102] The RTT determination module 901 is configured to determine the RTT of the current flow;
[0103] The network rate update module 902 is configured to update the network rate of the current flow based on the RTT of the current flow, where the greater the RTT of the current flow, the greater the increase in the network rate of the current flow during the update.
[0104] In one alternative embodiment, the above-mentioned network rate update module 902 is specifically configured to obtain a constructed virtual flow, and the RTT of the virtual flow is the baseline RTT; calculate the target multiple of the RTT of the current flow relative to the baseline RTT, and the target multiple is an integer multiple; update the network rate of the current flow based on the current network rate of the current flow and the target multiple, where the greater the target multiple, the greater the increase in the network rate of the current flow during the update.
[0105] In one alternative embodiment, the above-mentioned network rate update module 902 is specifically configured to obtain the updated network rate of the current flow based on the following formula;
[0106]
[0107] where r(n) is the updated network rate of the current flow, r(n - 1) is the network rate of the current flow before the update, T 0 is the baseline RTT, T is the RTT of the current flow, is the target multiple, α is the target amplitude, and the target amplitude is greater than 0.
[0108] In one alternative embodiment, the above-mentioned device further includes: a network rate reduction module, configured to synchronously update the network rate of the virtual flow when updating the network rate of the current flow; obtain the network rate of the current flow after speed reduction based on the network rate of the virtual flow.
[0109] In one alternative embodiment, the above-mentioned network rate reduction module is specifically configured to increase the network rate of the virtual flow by the target amplitude every time the baseline RTT time elapses when accelerating.
[0110] In one alternative embodiment, the above-mentioned network rate reduction module is specifically configured to, in the case of speed reduction, determine the first network rate of the virtual flow before speed reduction based on the target multiple and the current network rate of the virtual flow; obtain the second network rate of the virtual flow after speed reduction based on the first network rate; and re-accelerate the second network rate to obtain the target network rate of the virtual flow at the current moment.
[0111] In one alternative embodiment, the above-mentioned network rate reduction module is specifically configured to, in the case of speed increase, update the network rate of the virtual flow based on the following formula:
[0112] r s (t) = r s (t - T 0 ) + α
[0113] where r s (t) is the rate of the virtual flow at time t, and α is the target amplitude;
[0114] In the case of speed reduction, update the network rate of the virtual flow based on the following formula:
[0115] r s (t) = [r s (t) - C] · (1 - β),
[0116] where C = (K - 1) · α, β is the multiplicative reduction coefficient, and K is the target multiple.
[0117] Each module in the above-mentioned network rate control device can be implemented in whole or in part by software, hardware, and their combination. The above-mentioned modules can be embedded in the processor of the computer device in hardware form or independent of it, or stored in the memory of the computer device in software form, so that the processor can call and execute the operations corresponding to the above-mentioned modules.
[0118] In an exemplary embodiment, the present application further provides a chip, including a memory and a processor. The memory stores a computer program, and when the processor executes the computer program, the steps of the method in any one of the above-mentioned embodiments are implemented.
[0119] In an exemplary embodiment, the present application further provides a network interface card, including the chip and multiple interfaces as in any one of the above-mentioned embodiments. The chip processes data or communicates externally through the interfaces.
[0120] In an exemplary embodiment, a computer device is provided. The computer device can be a terminal, and its internal structure diagram can be as Figure 10As shown in the figure. The computer device includes a processor, a memory, an input / output interface, a network interface card, a display unit, and an input device. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the network interface card, the display unit, and the input device are connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and external devices. The network interface card of the computer device is used to communicate with external terminals in a wired or wireless manner, and the wireless manner can be achieved through WIFI, a mobile cellular network, near field communication (NFC), or other technologies. The computer program, when executed by the processor, implements a network rate control method. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the computer device can be a touch layer covering the display screen, or a button, a trackball, or a touchpad provided on the housing of the computer device, or an external keyboard, touchpad, or mouse, etc.
[0121] Those skilled in the art can understand that Figure 10 the structure shown in the figure is only a block diagram of some structures related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have different component arrangements.
[0122] In an exemplary embodiment, a computer device is provided, including a memory and a processor. A computer program is stored in the memory. When the processor executes the computer program, the following steps are implemented: determining the RTT of the current flow; based on the RTT of the current flow, updating the network rate of the current flow, where the larger the RTT of the current flow, the greater the increase in the network rate of the current flow when updating.
[0123] In an embodiment, the updating of the network rate of the current flow based on the RTT of the current flow implemented when the processor executes the computer program includes: obtaining a constructed virtual flow, and the RTT of the virtual flow is the baseline RTT; calculating the target multiple of the RTT of the current flow relative to the baseline RTT, and the target multiple is an integer multiple; updating the network rate of the current flow based on the current network rate of the current flow and the target multiple, where the larger the target multiple, the greater the increase in the network rate of the current flow when updating.
[0124] In one embodiment, when the processor executes a computer program, updating the network rate of the current flow based on the current network rate of the current flow and a target multiple includes: obtaining the updated network rate of the current flow according to the following formula;
[0125]
[0126] where r(n) is the updated network rate of the current flow, r(n - 1) is the network rate of the current flow before update, T 0 is the baseline RTT, T is the RTT of the current flow, is the target multiple, α is the target amplitude, and the target amplitude is greater than 0.
[0127] In one embodiment, when the processor executes a computer program, the following steps are further implemented: when updating the network rate of the current flow, synchronously updating the network rate of the virtual flow; obtaining the network rate of the current flow after speed reduction based on the network rate of the virtual flow.
[0128] In one embodiment, when the processor executes a computer program, synchronously updating the network rate of the virtual flow includes: when accelerating, every time the baseline RTT elapses, the network rate of the virtual flow increases by the target amplitude.
[0129] In one embodiment, when the processor executes a computer program, synchronously updating the network rate of the virtual flow includes: when decelerating, determining the first network rate of the virtual flow before deceleration based on the target multiple and the current network rate of the virtual flow; obtaining the second network rate of the virtual flow after deceleration based on the first network rate; re - accelerating the second network rate to obtain the target network rate of the virtual flow at the current moment.
[0130] In one embodiment, when the processor executes a computer program, synchronously updating the network rate of the virtual flow includes:
[0131] When accelerating, updating the network rate of the virtual flow according to the following formula:
[0132] r s (t) = r s (t - T 0 ) + α
[0133] where r s (t) is the rate of the virtual flow at time t, and α is the target amplitude;
[0134] When decelerating, updating the network rate of the virtual flow according to the following formula:
[0135] r s (t) = [rs (t)-C]·(1-β),
[0136] where C = (K - 1)·α, β is a multiplicative reduction coefficient, and K is a target multiple.
[0137] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the following steps are implemented: determining the RTT of the current flow; updating the network rate of the current flow based on the RTT of the current flow, where the greater the RTT of the current flow, the greater the increase in the network rate of the current flow during the update.
[0138] In one embodiment, the updating of the network rate of the current flow based on the RTT of the current flow, when the computer program is executed by a processor, includes: obtaining a constructed virtual flow, where the RTT of the virtual flow is the baseline RTT; calculating the target multiple of the RTT of the current flow relative to the baseline RTT, where the target multiple is an integer multiple; updating the network rate of the current flow based on the current network rate of the current flow and the target multiple, where the greater the target multiple, the greater the increase in the network rate of the current flow during the update.
[0139] In one embodiment, the updating of the network rate of the current flow based on the current network rate of the current flow and the target multiple, when the computer program is executed by a processor, includes: obtaining the updated network rate of the current flow based on the following formula;
[0140]
[0141] where r(n) is the updated network rate of the current flow, r(n - 1) is the network rate of the current flow before the update, T 0 is the baseline RTT, T is the RTT of the current flow, is the target multiple, α is the target amplitude, and the target amplitude is greater than 0.
[0142] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: when updating the network rate of the current flow, synchronously updating the network rate of the virtual flow; obtaining the network rate of the current flow after speed reduction based on the network rate of the virtual flow.
[0143] In one embodiment, the synchronous updating of the network rate of the virtual flow, when the computer program is executed by a processor, includes: in the case of speed increase, every time the baseline RTT time elapses, the network rate of the virtual flow increases by the target amplitude.
[0144] In one embodiment, when the computer program is executed by a processor, synchronously updating the network rate of a virtual flow includes: in the case of deceleration, determining a first network rate of the virtual flow before deceleration based on a target multiple and the current network rate of the virtual flow; obtaining a second network rate of the virtual flow after deceleration based on the first network rate; and re-accelerating the second network rate to obtain the target network rate of the virtual flow at the current moment.
[0145] In one embodiment, when the computer program is executed by a processor, synchronously updating the network rate of a virtual flow includes:
[0146] In the case of acceleration, updating the network rate of the virtual flow based on the following formula:
[0147] r s (t) = r s (t - T 0 ) + α
[0148] where r s (t) is the rate of the virtual flow at time t, and α is the target amplitude;
[0149] In the case of deceleration, updating the network rate of the virtual flow based on the following formula:
[0150] r s (t) = [r s (t) - C] · (1 - β),
[0151] where C = (K - 1) · α, β is the multiplicative reduction coefficient, and K is the target multiple.
[0152] In one embodiment, a computer program product is provided, including a computer program which, when executed by a processor, implements the following steps: determining the RTT of the current flow; and updating the network rate of the current flow based on the RTT of the current flow, where the greater the RTT of the current flow, the greater the increase amplitude of the network rate of the current flow during update.
[0153] In one embodiment, when the computer program is executed by a processor, updating the network rate of the current flow based on the RTT of the current flow includes: obtaining a constructed virtual flow, where the RTT of the virtual flow is the baseline RTT; calculating the target multiple of the RTT of the current flow and the baseline RTT, where the target multiple is an integer multiple; and updating the network rate of the current flow based on the relative target multiple of the current network rate of the current flow, where the greater the target multiple, the greater the increase amplitude of the network rate of the current flow during update.
[0154] In one embodiment, when the computer program is executed by a processor, updating the network rate of the current flow based on the current network rate of the current flow and a target multiple includes: obtaining the updated network rate of the current flow according to the following formula;
[0155]
[0156] where r(n) is the updated network rate of the current flow, r(n - 1) is the network rate of the current flow before update, T 0 is the baseline RTT, T is the RTT of the current flow, is the target multiple, α is the target amplitude, and the target amplitude is greater than 0.
[0157] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: when updating the network rate of the current flow, synchronously updating the network rate of the virtual flow; obtaining the throttled network rate of the current flow based on the network rate of the virtual flow.
[0158] In one embodiment, when the computer program is executed by a processor, synchronously updating the network rate of the virtual flow includes: when accelerating, every time the baseline RTT time elapses, the network rate of the virtual flow increases by the target amplitude.
[0159] In one embodiment, when the computer program is executed by a processor, synchronously updating the network rate of the virtual flow includes: when decelerating, determining the first network rate of the virtual flow before deceleration based on the target multiple and the current network rate of the virtual flow; obtaining the second network rate of the virtual flow after deceleration based on the first network rate; and re-accelerating the second network rate to obtain the target network rate of the virtual flow at the current moment.
[0160] In one embodiment, when the computer program is executed by a processor, synchronously updating the network rate of the virtual flow includes:
[0161] When accelerating, updating the network rate of the virtual flow according to the following formula:
[0162] r s (t) = r s (t - T 0 ) + α
[0163] where r s (t) is the rate of the virtual flow at time t, and α is the target amplitude;
[0164] When decelerating, updating the network rate of the virtual flow according to the following formula:
[0165] r s (t) = [r s(t)-C]·(1-β),
[0166] where C = (K - 1)·α, β is a multiplicative reduction coefficient, and K is a target multiple.
[0167] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data need to comply with relevant regulations.
[0168] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the embodiments provided in this application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The databases involved in the embodiments provided in this application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the embodiments provided in this application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, artificial intelligence (AI) processors, etc., without limitation.
[0169] The technical features of the above embodiments can be combined arbitrarily. For the sake of concise description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope recorded in this application.
[0170] The above-described embodiments merely represent several implementation manners of the present application. The description thereof is relatively specific and detailed, but it should not be construed as a limitation to the patent scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all fall within the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the appended claims.
Claims
1. A network rate control method, characterized in that: The method comprises: Determine the RTT of the current stream; Based on the RTT of the current flow, the network rate of the current flow is updated, wherein the larger the RTT of the current flow is, the larger the increase in the network rate of the current flow is during the update.
2. The method according to claim 1, characterized in that The updating of the network rate of the current flow based on the RTT of the current flow includes: Acquire a constructed virtual flow, wherein the RTT of the virtual flow is a baseline RTT; Calculate a target multiple of the RTT of the current flow relative to the baseline RTT, where the target multiple is an integer multiple; The network rate of the current flow is updated based on the current network rate of the current flow and the target multiple, wherein the larger the target multiple is, the larger the increase in the network rate of the current flow is when it is updated.
3. The method according to claim 2, characterized in that The updating the network rate of the current flow based on the current network rate of the current flow and the target multiple includes: Obtain the updated network rate of the current flow based on the following formula; Wherein, r(n) is the network rate of the current flow after the update, r(n-1) is the network rate of the current flow before the update, T0 is the baseline RTT, T is the RTT of the current flow, is the target multiple, α is the target amplitude, and the target amplitude is greater than 0.
4. The method according to any one of claims 2 to 3, characterized in that: The method further comprises: When the network rate of the current stream is updated, the network rate of the virtual stream is updated synchronously; Based on the network rate of the virtual flow, the network rate of the current flow after the speed reduction is obtained.
5. The method according to claim 4, characterized in that The synchronously updating the network rate of the virtual stream includes: In the case of speed increase, the network rate of the virtual flow increases by a target amount every time the baseline RTT time passes.
6. The method according to claim 4, characterized in that The synchronously updating the network rate of the virtual stream includes: In the case of speed reduction, determining a first network rate of the virtual flow before speed reduction based on the target multiple and the current network rate of the virtual flow; Obtaining a second network rate after the virtual flow is decelerated based on the first network rate; The second network rate is increased again to obtain the target network rate of the virtual flow at the current moment.
7. The method according to claim 4, characterized in that The synchronously updating the network rate of the virtual stream includes: In the case of a speed increase, the network rate of the virtual flow is updated based on the following formula: r s (t)=r s (t-T0)+α Among them, r s (t) is the rate of the virtual flow at time t, and α is the target amplitude; In the case of a speed reduction, the network rate of the virtual flow is updated based on the following formula: r s (t)=[r s (t)-C]·(1-β), Wherein, C = (K-1)·α, β is the multiplicative reduction coefficient, and K is the target multiple.
8. A network rate control device, characterized in that: The device comprises: RTT determination module, used to determine the RTT of the current flow; The network rate updating module is used to update the network rate of the current flow based on the RTT of the current flow, wherein the larger the RTT of the current flow, the larger the increase in the network rate of the current flow during the update.
9. A chip comprising a memory and a processor, wherein the memory stores a computer program, characterized in that: When the processor executes the computer program, the steps of the method according to any one of claims 1 to 7 are implemented.
10. A network interface card, characterized in that: It comprises the chip as claimed in claim 9 and a plurality of interfaces, wherein the chip processes data or communicates externally through the interfaces.
11. A computer device, characterized in that: The network interface card comprises the network interface card as claimed in claim 10, wherein the network interface card is used for processing data or external communication.
12. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.
13. A computer program product, comprising a computer program, characterized in that When the computer program is executed by a processor, the steps of the method according to any one of claims 1 to 7 are implemented.