Network rate control method and device, chip, network interface card, computer equipment, readable storage medium and program product

By adjusting the deceleration amplitude according to the congestion contribution ratio of different streams, the problem of low bandwidth utilization under multi-stream conditions is solved, and higher bandwidth utilization and faster convergence speed is achieved.

CN120186091AActive Publication Date: 2025-06-20SHENZHEN JAGUAR MICROSYSTEMS CO LTD
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
CN202510602307.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-12
Publication Date
2025-06-20
Estimated Expiration
2045-05-12

AI Technical Summary

Technical Problem

Under multi-stream conditions, the traditional congestion control algorithm has a large bandwidth waste and low utilization rate after deceleration to the speed increase range close to full bandwidth.

Method used

The rate reduction amplitude is determined by calculating the congestion contribution ratio of different streams, so that the amplitude is larger when the rate of flow is decelerated, and the amplitude is smaller when the rate of flow is decelerated, thereby reducing bandwidth waste during the rate of flow and improving bandwidth utilization.

Benefits of technology

It realizes reducing bandwidth waste during slowing down, improving bandwidth utilization, and converging to full bandwidth conditions faster under multi-stream conditions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120186091A_ABST
    Figure CN120186091A_ABST
Patent Text Reader

Abstract

The invention relates to a network rate control method and device, a chip, a network interface card, computer equipment, a computer readable storage medium and a computer program product. The method comprises the following steps: determining a current network rate; determining a target speed reduction coefficient based on the current network rate, wherein the target speed reduction coefficient is reduced along with the reduction of the current network rate; determining a first target network rate based on the current network rate and the target speed reduction coefficient; and adjusting the current network rate to be a first target network rate. By adopting the method, the bandwidth utilization rate can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This 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 latency, improve the overall throughput and stability of the network, and thus guarantee the quality of network services.

[0003] In traditional technologies, when an ECN (Explicit Congestion Notification) mark or a CNP (Congestion Notification Packet) is received, the sender multiplicatively reduces the sending rate, usually at a more gentle ratio instead of directly halving it, with \(r_c = r_c×(1–α / 2)\), where α is the quantization of the current flow congestion state, taking values in [0,1], and the maximum speed reduction is half.

[0004] However, in the case of multiple flows, when the multiplicatively reduced rate of different-rate flows uses the same coefficient when receiving a congestion signal, there is a large waste of bandwidth and low utilization rate in the speed-up interval from the speed reduction to near full bandwidth. 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 improve bandwidth utilization for the above technical problems.

[0006] In a first aspect, this application provides a network rate control method, and the method includes:

[0007] Determine the current network rate;

[0008] Based on the current network rate, determine a target speed reduction coefficient, where the target speed reduction coefficient decreases as the current network rate decreases;

[0009] Based on the current network rate and the target speed reduction coefficient, determine a first target network rate;

[0010] Adjust the current network rate to the first target network rate.

[0011] In one embodiment, determining the target speed reduction coefficient based on the current network rate includes:

[0012] Determine an extended speed reduction coefficient based on the network card line speed or bottleneck bandwidth and the current network rate, where the extended speed reduction coefficient decreases as the current network rate decreases;

[0013] Determine the target speed reduction coefficient based on the extended speed reduction coefficient and the basic speed reduction coefficient.

[0014] In one embodiment, determining the extended speed reduction coefficient based on the network card line speed or bottleneck bandwidth and the current network rate includes:

[0015] Obtain the extended speed reduction coefficient based on the following formula:

[0016]

[0017] Wherein, is the network rate after speed reduction in the previous round, that is, the current network rate, is the extended speed reduction coefficient, L is the network card line speed or bottleneck bandwidth, k is the extended speed reduction order, and k≥0; or

[0018] Obtain the extended speed reduction coefficient based on the following formula:

[0019]

[0020] Wherein, takes values in the interval [0,1] and is used to limit the minimum extended speed reduction amplitude.

[0021] In one embodiment, the method further includes:

[0022] Detect whether the cumulative speed reduction rounds are less than the round threshold;

[0023] In the case where the cumulative speed reduction rounds are less than the round threshold, continue to execute the step of determining the current network rate;

[0024] In the case where the cumulative speed reduction rounds are greater than or equal to the round threshold, obtain a second target network rate based on the current network rate and the basic speed reduction coefficient;

[0025] Adjust the current network rate to the second target network rate.

[0026] In one embodiment, the method further includes:

[0027] Receive a congestion notification message;

[0028] Determine the time difference between the current timestamp when the congestion notification message is received and the previous speed reduction timestamp;

[0029] Filter the congestion notification message when the time difference is not greater than the time window threshold.

[0030] When the time difference is greater than the time window threshold, continue to execute the step of detecting whether the cumulative deceleration round is less than the round threshold.

[0031] In one embodiment, after adjusting the current network rate to the first target network rate and adjusting the current network rate to the second target network rate, the method further includes:

[0032] Update the last deceleration timestamp and the cumulative deceleration round.

[0033] In a second aspect, the present application further provides a network rate control device, which includes:

[0034] A current network rate determination module, configured to determine the current network rate;

[0035] A target deceleration coefficient determination module, configured to determine a target deceleration coefficient based on the current network rate, where the target deceleration coefficient decreases as the current network rate decreases;

[0036] A first target network rate determination module, configured to determine a first target network rate based on the current network rate and the target deceleration coefficient;

[0037] An adjustment module, configured to adjust the current network rate to the first target network rate.

[0038] In a third aspect, the present application further provides a chip, including a memory and a processor, where the memory stores a computer program, and the processor executes the steps of the method in any of the above embodiments when executing the computer program.

[0039] In a fourth aspect, the present application further provides a network interface card, including the chip in any of the above embodiments and a plurality of interfaces, where the chip processes data or communicates externally through the interfaces.

[0040] In a fifth aspect, the present application further provides a computer device, including the network interface card in any of the above embodiments, where the network interface card is configured to process data or communicate externally.

[0041] In a sixth aspect, the present application further provides a computer-readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the method in any of the above embodiments are implemented.

[0042] In a seventh aspect, the present application further provides a computer program product, including a computer program, and when the computer program is executed by a processor, the steps of the method in any one of the above embodiments are implemented.

[0043] The above network rate control method, device, chip, network interface card, computer device, computer-readable storage medium and computer program product determine the current network rate; determine a target deceleration coefficient based on the current network rate, and the target deceleration coefficient decreases as the current network rate decreases; determine a first target network rate based on the current network rate and the target deceleration coefficient; adjust the current network rate to the first target network rate, so that when the flow with a high rate (fast flow) decelerates, the amplitude is larger, and when the flow with a low rate (slow flow) decelerates, the amplitude is smaller, thereby resulting in less bandwidth waste from deceleration to reaching the full bandwidth condition and higher bandwidth utilization. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] In order 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 following drawings are only some embodiments of the present application. For those of ordinary skill in the art, other related drawings can be obtained based on these drawings without creative efforts.

[0045] Figure 1 It is a schematic diagram of the change process of the congestion window of the typical TCP congestion control algorithm Reno;

[0046] Figure 2 It is a schematic diagram of the rate change process of the DCQCN algorithm;

[0047] Figure 3 It is an application environment diagram of the network rate control method in one embodiment;

[0048] Figure 4 It is a schematic flowchart of the network rate control method in one embodiment;

[0049] Figure 5 It is a comparison diagram of the bandwidth change situations of the standard AIMD algorithm and the network rate control method of the present application in one embodiment;

[0050] Figure 6 It is a schematic flowchart of the network rate control method in another embodiment;

[0051] Figure 7 It is a structural block diagram of the network rate control device in one embodiment;

[0052] Figure 8 It is an internal structure diagram of a computer device in one embodiment. Detailed implementation manners

[0053] In order to make the objectives, technical solutions and advantages of the present application more clear and understandable, 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). As shown in Figure 1 shown, Figure 1 FIG. is a schematic diagram of the change process of the congestion window of the typical TCP congestion control algorithm Reno. The change process of the congestion window of the TCP congestion control algorithm Reno includes:

[0056] Slow start: The main purpose of slow start is to gradually detect the available bandwidth of the network at the initial stage of connection establishment and prevent the sudden occurrence of network congestion. When a TCP connection starts to transmit data, the initial congestion window (cwnd, congestion window) is usually set to a small value, such as one or two maximum segment sizes (MSS, Maximum Segment Size). Whenever an acknowledgment (ACK) packet is received, the congestion window increases by 1 MSS, that is, the size of the congestion window doubles per round trip (R_TT), that is, cwnd = 2 * cwnd. This exponential growth continues until a packet loss (indicating network congestion) occurs or a pre-set threshold, called the slow start threshold (ssthresh, slow start threshold), is reached. Since the window size grows exponentially, the slow start stage can quickly reach the maximum transmission capacity of the network, but it may also cause network congestion too quickly.

[0057] Congestion Avoidance: After reaching the slow start threshold (ssthresh), to prevent network congestion, TCP enters the congestion avoidance phase and gradually increases the sending rate. When cwnd reaches or exceeds the slow start threshold, the growth of the congestion window changes from exponential to linear. Specifically, for each received ACK, the congestion window only increases by MSS / cwnd. 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 the sender starts sending data until the sender receives the acknowledgment from the receiver), the congestion window increases by approximately one MSS, that is, cwnd = cwnd + MSS. This linear growth can more smoothly detect the available bandwidth of the network and reduce the risk of congestion. The growth rate in the congestion avoidance phase is much slower than that in slow start, which is more robust and helps to maintain the stability of the network.

[0058] Congestion Signal Processing: Timeout Retransmission, Fast Retransmit, and Fast Recovery. TCP mainly detects network congestion through packet loss events and takes corresponding measures. Timeout Retransmission: If a data packet does not receive an ACK within a certain time, TCP assumes that the data packet is lost. At this time, TCP sets the slow start threshold (ssthresh) to half of the current window size and resets the congestion window (cwnd) to the initial value (usually 1MSS), that is, cwnd = MSS, and then enters the slow start phase. Fast Retransmit: When TCP receives three consecutive duplicate ACKs (usually indicating that a data packet is lost but the subsequent packets arrive successfully), it immediately retransmits the lost data packet instead of waiting for a timeout. This mechanism accelerates the process of recovering from packet loss. Fast Recovery: After Fast Retransmit, TCP does not directly enter the slow start but enters the fast recovery phase. At this time, TCP sets the slow start threshold (ssthresh) to half of the current congestion window, ssthresh = cwnd / 2, and at the same time sets the congestion window to the slow start threshold plus 3 MSS (because 3 duplicate ACKs have been received). After the fast recovery ends, the congestion window is set to the slow start threshold, that is, cwnd = ssthresh. Then, TCP enters the congestion avoidance phase instead of the slow start. The purpose of this is to quickly restore to the transmission rate before packet loss and avoid unnecessary deceleration. The Fast Retransmit and Fast Recovery mechanisms effectively reduce the delay of waiting for timeout retransmission and improve the transmission efficiency and overall performance of the network.

[0059] Figure 2This is the rate change process of the DCQCN algorithm. DCQCN (Data Center Quantized Congestion Notification) is a congestion control algorithm for data center networks (such as RDMA networks), which combines the idea of AIMD and the feedback mechanism based on ECN (Explicit Congestion Notification). In DCQCN, the sender judges the network congestion situation according to the received ECN mark. When there is no ECN mark, the sender linearly increases the sending rate in the AIMD manner (i.e., additive increase); when receiving an ECN mark, the sender multiplicatively reduces the sending rate, usually at a more gentle deceleration ratio rather than directly halving it, with \(r_c = r_c×(1–α / 2)\), where α is the quantization of the current flow congestion state, taking values in [0,1], and the maximum deceleration is half. The speed increase determination of DCQCN and the mode of speed increase depend on the following three factors: (1) Whether the T event occurs, that is, whether the CNP packet has not been received for more than the Timer (T event time period parameter) time. If it occurs, the T value is incremented by 1; (2) Whether the BC event occurs, that is, whether the CNP packet has not been received after sending more than ByteCounter bytes. If it occurs, the BC value is incremented by 1; (3) The numerical relationship among the T value, the BC value, and the speed increase state threshold F. If the larger value between the T value and the BC value is greater than 0 and less than F, the fast recovery speed increase algorithm is executed: \(r_c=(r_c+r_t) / 2\), where \(r_c\) is the current rate and \(r_t\) is the target rate; if the larger value between T and BC is greater than or equal to F and the smaller value is less than or equal to F, the proactive increase speed increase algorithm is executed: \(r_t=r_t+AI\), \(r_c=(r_c+r_t) / 2\), where AI is the statically configured single-rate increase amplitude; if the smaller value between T and BC is greater than F, the excessive proactive increase speed increase algorithm is executed: \(r_t=r_t+HAI\), \(r_c=(r_c+r_t) / 2\), where HAI is the statically configured single-rate increase amplitude and \(HAI>AI\).

[0060] In summary, there are at least the following problems in the above AIMD congestion control method:

[0061] (1) Slow convergence speed: Under multi-flow conditions, when receiving a congestion signal, the multiplicative rate reduction of different-rate flows uses the same coefficient, so there are problems of long time consumption and slow convergence speed when converging to the next time close to full bandwidth.

[0062] (2) Low bandwidth utilization: Under multi-flow conditions, when receiving a congestion signal, the multiplicative rate reduction of different-rate flows uses the same coefficient, so there is a large bandwidth waste and low utilization in the speed increase interval from deceleration to close to full bandwidth.

[0063] (3) Bandwidth fairness issue: Under the condition of multiple flows, the initial rates of different flows may be different. When receiving a congestion signal, if the multiplicative rate reduction of flows with different rates uses the same coefficient, the period to achieve fair bandwidth is long and the efficiency is low.

[0064] To solve the above at least one technical problem, this application proposes a network rate control method. In the case of congestion, by calculating the congestion contribution ratio of different flows to determine the rate reduction amplitude, so that the flow with a higher rate (fast flow) has a greater rate reduction amplitude when reducing the rate, and the flow with a lower rate (slow flow) has a smaller rate reduction amplitude when reducing the rate.

[0065] The network rate control method provided by the embodiments of this application can be applied to, for example Figure 3 the application environment shown in the figure. Among them, the data sender 102 communicates with the data receiver 104 through the network. The data sender 102 determines the current network rate; determines the target rate reduction coefficient based on the current network rate, and the target rate reduction coefficient decreases as the current network rate decreases; determines the first target network rate based on the current network rate and the target rate reduction coefficient; adjusts the current network rate to the first target network rate. In this way, the flow with a higher rate (fast flow) has a greater rate reduction amplitude when reducing the rate, and the flow with a lower rate (slow flow) has a smaller rate reduction amplitude when reducing the rate, so that the bandwidth waste from the time of rate reduction to reaching the full bandwidth condition is less, and the bandwidth utilization rate is higher.

[0066] In an exemplary embodiment, as Figure 4 shown in the figure, a network rate control method is provided. Taking the data sender in Figure 3 as an example, the method includes the following steps S402 to S408. Among them:

[0067] S402: Determine the current network rate.

[0068] Among them, the current network rate is the rate at which the data sender currently sends packets, that is, the network rate adjusted in the previous rate reduction round or the network rate before the network rate reduction.

[0069] S404: Determine the target rate reduction coefficient based on the current network rate, and the target rate reduction coefficient decreases as the current network rate decreases.

[0070] S406: Determine the first target network rate based on the current network rate and the target rate reduction coefficient.

[0071] Among them, in order to achieve a greater reduction amplitude when the flow with a high network rate is decelerated and a smaller reduction amplitude when the flow with a low network rate is decelerated, the target deceleration coefficient is determined based on the magnitude of the current network rate, where the target deceleration coefficient decreases as the current network rate decreases and increases as the current network rate increases. In this way, the first target network rate has a smaller deceleration amplitude when the current network rate decreases and a greater deceleration amplitude when the current network rate increases.

[0072] In some alternative embodiments, , where is the rate value or window value after the nth deceleration, that is, the first target network rate, is the rate value or window value after the previous deceleration, that is, the current network rate, is the target deceleration coefficient, and its value range is [0, 1].

[0073] S408: Adjust the current network rate to the first target network rate.

[0074] After determining the first target network rate, the current network rate is adjusted to the first target network rate, and the next round of rate adjustment is performed.

[0075] The above network rate control method, device, computer device, computer-readable storage medium, and computer program product determine the current network rate; determine the target deceleration coefficient based on the current network rate, where the target deceleration coefficient decreases as the current network rate decreases; determine the first target network rate based on the current network rate and the target deceleration coefficient; adjust the current network rate to the first target network rate. In this way, the flow with a high rate (fast flow) has a greater deceleration amplitude when decelerated, and the flow with a low rate (slow flow) has a smaller deceleration amplitude when decelerated, so that the bandwidth waste from deceleration to reaching the full bandwidth condition is less and the bandwidth utilization rate is higher.

[0076] In one of the alternative embodiments, determining the target deceleration coefficient based on the current network rate includes: determining an extended deceleration coefficient based on the network card line rate or bottleneck bandwidth, the current network rate, and the extended deceleration order, where the extended deceleration coefficient decreases as the current network rate decreases; determining the target deceleration coefficient based on the extended deceleration coefficient and the basic deceleration coefficient.

[0077] Among them, in order to calculate the congestion contribution ratio of different flows, the ideal solution is to calculate the proportion of the respective rates of multiple flows in the total bandwidth at the entrance of the congested link. However, from the perspective of a single flow, it is impossible to obtain the value of the total bandwidth at the entrance of the congested link in a global perspective manner. For this reason, in this application, a normalized reference value, such as the network card line rate or the bottleneck bandwidth size (assuming its value is LineRate), is used to replace the total bandwidth at the entrance of the congested link.

[0078] Determine an extended speed reduction coefficient based on the network card line speed or bottleneck bandwidth and the current network rate.

[0079] The network card line speed or bottleneck bandwidth refers to the maximum data transmission rate that the network card can achieve under ideal conditions, which is usually determined by the hardware specifications of the network card and the network environment. The network card line speed is the theoretical maximum transmission rate of the network card. In actual network transmission, the data stream may be restricted by various factors and fail to reach the line speed, and these restrictions are called bottleneck bandwidth.

[0080] In some alternative embodiments, determining the extended speed reduction coefficient based on the network card line speed or bottleneck bandwidth and the current network rate includes:

[0081] Obtain the extended speed reduction coefficient based on the following formula:

[0082]

[0083] where, is the network rate after speed reduction in the previous round, that is, the current network rate, is the extended speed reduction coefficient, L is the network card line speed or bottleneck bandwidth, k is the extended speed reduction order, and k ≥ 0; or

[0084] Obtain the extended speed reduction coefficient based on the following formula:

[0085]

[0086] where, takes values in the interval [0, 1] and is used to limit the minimum extended speed reduction amplitude.

[0087] It should be noted that other specific speed coupling speed reduction methods can also be selected, as long as the extended speed reduction coefficient follows that the value range of r(n) on the domain [0, L] is monotonically increasing or non-decreasing between [0, 1].

[0088] After determining the extended speed reduction coefficient, determine the target speed reduction coefficient based on the extended speed reduction coefficient and the basic speed reduction coefficient:

[0089]

[0090] where, is the basic speed reduction coefficient. In the TCP speed reduction algorithm the value is 0.5, and in the DCQCN speed reduction algorithm, its value is determined by the recurrence formula during its speed increase and decrease.

[0091] After obtaining the target speed reduction coefficient, the first target network rate can be obtained based on the current network rate and the target speed reduction coefficient:

[0092]

[0093] Among them, based on the above definitions, the following relationships hold:

[0094]

[0095] Observing the above deceleration recurrence formula, the following main conclusions can be obtained:

[0096] (1) The larger the rate of the flow, the higher the calculated extended deceleration coefficient, and the larger the actual deceleration coefficient.

[0097] (2) As the rate of a flow continuously decreases, its extended deceleration coefficient gradually becomes lower, and the actual deceleration coefficient also decreases.

[0098] See Figure 5 , Figure 5 is a comparison graph of the bandwidth changes between the standard AIMD algorithm and the network rate control method of the present application in an embodiment, where Figure 5 (a) in shows the bandwidth change of the standard AIMD algorithm with the round number n, Figure 5 (b) - Figure 5 (e) in show the n-round bandwidth changes of the network rate control algorithm of the present application when k takes different values (for example, Figure 5 k takes the value of 0.5 in (b), Figure 5 k takes the value of 1 in (c), Figure 5 k takes the value of 2 in (d), Figure 5 k takes the value of 3 in (e)). Among them, F1 and F2 respectively represent the normalized bandwidth / rate (relative to the bottleneck bandwidth) changes of the two flows that constitute congestion, and F1 + F2 represents the sum of the normalized bandwidths of the two flows. Each point in the line graph represents the normalized rate values of the two flows in a certain round. To converge to the full bandwidth, the sum value of F1 + F2 needs to be observed. The change in the abscissa experienced from the previous sum value of 1.0 to the next sum value of 1.0 represents the number of rounds of time used.

[0099] It can be seen that on the premise of the same speed-up method, changing the deceleration algorithm can make a significant difference in the bandwidth change of the flow. The specific differences are summarized as follows:

[0100] (1) Compared with the standard AIMD algorithm, the network rate control algorithm of the present application converges to the full bandwidth in fewer rounds and with higher efficiency after multi-flow deceleration. For example Figure 5 in (a), the standard AIMD algorithm needs nearly 25 rounds to converge to the full bandwidth after the second round of deceleration, while the network rate control algorithm of the present application only needs nearly or less than 20 rounds to converge to the full bandwidth.

[0101] (2) Compared with the standard AIMD algorithm, the network rate control algorithm of the present application has less bandwidth loss and higher bandwidth utilization. For example Figure 5 in (a), the average bandwidth utilization rate of the standard AIMD algorithm is only 74.6% within 200 rounds, while the average bandwidth utilization rate of the network rate control algorithm of the present application is as high as 82.2% - 94.7%.

[0102] (3) Compared with the standard AIMD algorithm, the network rate control algorithm of the present application has better bandwidth fairness and faster fair convergence. For example Figure 5 in (a), the standard AIMD algorithm takes nearly 110 rounds to converge to the fair bandwidth, while the network rate control algorithm of the present application only needs 70 - 90 rounds to converge to the fair bandwidth, and the bandwidth stability is higher.

[0103] In one optional embodiment, the above method further includes: detecting whether the cumulative deceleration rounds are less than the round threshold; in the case where the cumulative deceleration rounds are less than the round threshold, continuing to execute the step of determining the current network rate; in the case where the cumulative deceleration rounds are greater than or equal to the round threshold, obtaining a second target network rate based on the current network rate and the basic deceleration coefficient; adjusting the current network rate to the second target network rate.

[0104] In the multi - flow scenario, the fair bandwidth of each flow may be very low (for example, in the case of 1000 flows congesting one, the fair convergence bandwidth is LineRate / 1000), k = 1, when k = 1, the actual deceleration coefficient calculated by the above formula will be . In this case, congestion may not be able to achieve the goal of quickly suppressing congestion. To avoid this situation, the present application detects whether the cumulative deceleration rounds are less than the round threshold. In the case where the cumulative deceleration rounds are less than the round threshold, the optimized deceleration algorithm of the present application is used to obtain the first target network rate. In the case where the cumulative deceleration rounds are greater than or equal to the round threshold, a second target network rate is obtained based on the current network rate and the basic deceleration coefficient, that is, the ordinary deceleration mode. That is to say, after observing R (where R is the round threshold, and the recommended value range is 3 - 5 to support fast response) consecutive decelerations (satisfying n≥R), it can fall back to the ordinary deceleration mode, that is , to ensure fast congestion suppression in the multi - QP scenario.

[0105] In one optional embodiment, the method further includes: receiving a congestion notification message; determining the time difference between the current timestamp of receiving the congestion notification message and the previous deceleration timestamp; filtering the congestion notification message in the case where the time difference is not greater than the time window threshold; and continuing to execute the step of detecting whether the cumulative deceleration rounds are less than the round threshold in the case where the time difference is greater than the time window threshold.

[0106] Among them, when the data sender receives a congestion notification message, it needs to determine whether to filter the congestion notification message based on time setting. When the time difference is not greater than the time window threshold, the congestion notification message is filtered; otherwise, the speed reduction logic is executed.

[0107] Among them, the selection of the speed reduction logic is determined based on the cumulative speed reduction rounds. When the cumulative speed reduction rounds are less than the round threshold, the optimized speed reduction logic is executed, that is, the target speed reduction coefficient is determined based on the current network rate, and the target speed reduction coefficient decreases as the current network rate decreases; the first target network rate is determined based on the current network rate and the target speed reduction coefficient; when the cumulative speed reduction rounds are greater than or equal to the round threshold, the basic speed reduction logic is executed, that is, the second target network rate is obtained based on the current network rate and the basic speed reduction coefficient.

[0108] In one optional embodiment, after adjusting the current network rate to the first target network rate and adjusting the current network rate to the second target network rate, it further includes: updating the last speed reduction timestamp and the cumulative speed reduction rounds.

[0109] Among them, after adjusting the current network rate, the cumulative speed reduction rounds also need to be updated, that is, n = n + 1. In addition, the last speed reduction timestamp needs to be updated to the current timestamp.

[0110] For ease of understanding, as shown in Figure 6 shown, Figure 6 is a flowchart of a network rate control method in another embodiment. In this embodiment, when congestion occurs in the network, the packets passing through the congestion point (usually a switch node) will be marked with ECN CE (Congestion Experienced). The data receiver that receives the packet with the ECN CE mark filters the ECN packet based on the time window setting and generates a CNP packet, which is returned to the data sender.

[0111] After receiving the CNP packet, the data sender first determines whether to filter the current CNP packet processing (i.e., the speed reduction logic) based on the time window threshold (T). If the current timestamp (cur_timestamp) minus the last speed reduction timestamp (last_decrease_timestamp) is less than the time window threshold (i.e., the T value), then the current CNP packet processing is filtered and the speed reduction logic is not executed; otherwise, the subsequent speed reduction processing is normally executed.

[0112] When performing speed reduction, the data sender needs to first determine which speed reduction mode to execute. If the cumulative consecutive speed reduction times n are less than R, the optimized speed reduction mode is selected; otherwise, the normal speed reduction mode is executed.

[0113] When executing the normal speed reduction mode, the speed reduction logic is executed 。

[0114] When the optimization speed reduction mode is executed, execute the speed reduction logic ,wherein ,wherein 。

[0115] After the speed reduction execution is completed, update the cumulative speed reduction round n = n + 1, and update the last speed reduction timestamp (last_decrease_timestamp) to the current timestamp (cur_timestamp). Thus, the entire speed reduction processing logic is completed.

[0116] It should be noted that when accelerating, the data sender needs to reset the cumulative speed reduction round n to 0.

[0117] In the above embodiments, when the fast flow and the slow flow are decelerated simultaneously, and the deceleration amplitude of the slow flow is smaller and the acceleration algorithm remains unchanged, compared with the existing deceleration algorithm, the time taken to reach the full bandwidth again is shorter and the convergence speed is faster. When the fast flow and the slow flow are decelerated simultaneously, and the deceleration amplitude of the slow flow is smaller and the acceleration algorithm remains unchanged, compared with the existing deceleration algorithm, the bandwidth waste from the deceleration time to the full bandwidth condition is less and the bandwidth utilization rate is higher. When the fast flow and the slow flow are decelerated simultaneously, the deceleration amplitude of the fast flow is larger and the deceleration amplitude of the slow flow is smaller, and the acceleration algorithm remains unchanged, compared with the existing deceleration algorithm, the time taken to reach the fair bandwidth is shorter, the bandwidth fair convergence is faster, and the stability is higher.

[0118] It should be understood that although the steps in the flowcharts involved in the above embodiments are shown in sequence according to the arrows, these steps do not necessarily need to be 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 some of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages. These steps or stages do not necessarily need to be executed at the same moment, but can be executed at different moments. The execution order of these steps or stages does not necessarily need to be sequential, but can be executed alternately or alternately with at least some of the steps or stages in other steps or other steps.

[0119] Based on the same inventive concept, the embodiments of the present application also provide a network rate control device for implementing the network rate control method involved above. 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 repeated here.

[0120] In an exemplary embodiment, such asFigure 7 As shown in Figure 7 , a network rate control device is provided, including: a current network rate determination module 701, a target speed reduction coefficient determination module 702, a first target network rate determination module 703, and an adjustment module 704, where:

[0121] The current network rate determination module 701 is used to determine the current network rate;

[0122] The target speed reduction coefficient determination module 702 is used to determine a target speed reduction coefficient based on the current network rate, and the target speed reduction coefficient decreases as the current network rate decreases;

[0123] The first target network rate determination module 703 is used to determine a first target network rate based on the current network rate and the target speed reduction coefficient;

[0124] The adjustment module 704 is used to adjust the current network rate to the first target network rate.

[0125] In one optional embodiment, the above-mentioned target speed reduction coefficient determination module 702 is specifically used to determine an extended speed reduction coefficient based on the network card line speed or the bottleneck bandwidth and the current network rate, where the extended speed reduction coefficient decreases as the current network rate decreases;

[0126] Based on the extended speed reduction coefficient and the basic speed reduction coefficient, determine the target speed reduction coefficient.

[0127] In one optional embodiment, the above-mentioned target speed reduction coefficient determination module 702 is specifically used to obtain the extended speed reduction coefficient based on the following formula:

[0128]

[0129] Where, is the network rate after speed reduction in the previous round, that is, the current network rate, is the extended speed reduction coefficient, L is the network card line speed or the bottleneck bandwidth, k is the extended speed reduction order, and k≥0; or

[0130] Obtain the extended speed reduction coefficient based on the following formula:

[0131]

[0132] Where, takes values in the interval [0,1] and is used to limit the minimum extended speed reduction amplitude.

[0133] In one optional embodiment, the above-mentioned device further includes:

[0134] A detection module, configured to detect whether the cumulative number of speed reduction rounds is less than a round threshold; in the case where the cumulative number of speed reduction rounds is less than the round threshold, continue to execute the step of determining the current network rate; in the case where the cumulative number of speed reduction rounds is greater than or equal to the round threshold, obtain a second target network rate based on the current network rate and a basic speed reduction coefficient; and adjust the current network rate to the second target network rate.

[0135] In one alternative embodiment, the above device further includes:

[0136] A congestion judgment module, configured to receive a congestion notification message; determine a time difference between a current timestamp when the congestion notification message is received and a previous speed reduction timestamp; in the case where the time difference is not greater than a time window threshold, filter the congestion notification message; and in the case where the time difference is greater than the time window threshold, continue to execute the step of detecting whether the cumulative number of speed reduction rounds is less than the round threshold.

[0137] In one alternative embodiment, the above device further includes: a parameter update module, configured to update the previous speed reduction timestamp and the cumulative number of speed reduction rounds.

[0138] Each module in the above network rate control device can be implemented in whole or in part by software, hardware, and their combination. The above modules can be embedded in a processor in a computer device in a hardware form or be independent of the processor, or can be stored in a memory in the computer device in a software form, so as to facilitate the processor to call and execute the operations corresponding to the above respective modules.

[0139] In an exemplary embodiment, the present application further provides a chip, including a memory and a processor, where the memory stores a computer program, and when the processor executes the computer program, it performs the steps of the method in any one of the above embodiments. Among them, the chip can be a data processor (DPU, Data Processing Unit) chip, or other chips for processing data.

[0140] In an exemplary embodiment, the present application further provides a network interface card, including the chip as described in any one of the above embodiments and a plurality of interfaces, where the interfaces can include I / O interfaces such as PCI / PCIE interfaces, UART / USB / I2C / SPI / GPIO, etc., and the chip processes data or communicates externally through the interfaces.

[0141] 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 8As 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 a computer program. The internal memory provides an environment for the operation of the operating system and the computer program 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 process data or communicate with external terminals in a wired or wireless manner. The wireless manner can be implemented through WIFI, a mobile cellular network, near field communication (NFC), or other technologies. When the computer program is executed by the processor, it 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.

[0142] Those skilled in the art can understand that Figure 8 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 a different component layout.

[0143] In an exemplary embodiment, the computer device described in the above embodiment may be, for example, Figure 3 the data sender or the data receiver shown in the figure.

[0144] 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 current network rate; determining a target deceleration coefficient based on the current network rate, and the target deceleration coefficient decreases as the current network rate decreases; determining a first target network rate based on the current network rate and the target deceleration coefficient; and adjusting the current network rate to the first target network rate.

[0145] In one embodiment, when the processor executes a computer program, determining a target speed reduction coefficient based on the current network rate includes: determining an extended speed reduction coefficient based on the network card line speed or bottleneck bandwidth and the current network rate, where the extended speed reduction coefficient decreases as the current network rate decreases; determining the target speed reduction coefficient based on the extended speed reduction coefficient and the basic speed reduction coefficient.

[0146] In one embodiment, when the processor executes a computer program, determining an extended speed reduction coefficient based on the network card line speed or bottleneck bandwidth and the current network rate includes:

[0147] Obtaining the extended speed reduction coefficient based on the following formula:

[0148]

[0149] where, is the network rate after speed reduction in the previous round, that is, the current network rate, is the extended speed reduction coefficient, L is the network card line speed or bottleneck bandwidth, k is the extended speed reduction order, and k≥0; or

[0150] Obtaining the extended speed reduction coefficient based on the following formula:

[0151]

[0152] where, takes values in the interval [0,1] and is used to limit the minimum extended speed reduction amplitude.

[0153] In one embodiment, when the processor executes a computer program, the following steps are also implemented: detecting whether the cumulative speed reduction rounds are less than the round threshold; in the case where the cumulative speed reduction rounds are less than the round threshold, continuing to execute the step of determining the current network rate; in the case where the cumulative speed reduction rounds are greater than or equal to the round threshold, obtaining a second target network rate based on the current network rate and the basic speed reduction coefficient; adjusting the current network rate to the second target network rate.

[0154] In one embodiment, when the processor executes a computer program, the following steps are also implemented: receiving a congestion notification message; determining the time difference between the current timestamp when the congestion notification message is received and the previous speed reduction timestamp; in the case where the time difference is not greater than the time window threshold, filtering the congestion notification message; in the case where the time difference is greater than the time window threshold, continuing to execute the step of detecting whether the cumulative speed reduction rounds are less than the round threshold.

[0155] In one embodiment, after adjusting the current network rate to the first target network rate and adjusting the current network rate to the second target network rate when the processor executes a computer program, it further includes: updating the previous speed reduction timestamp and the cumulative speed reduction rounds.

[0156] 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 current network rate; determining a target speed reduction coefficient based on the current network rate, where the target speed reduction coefficient decreases as the current network rate decreases; determining a first target network rate based on the current network rate and the target speed reduction coefficient; and adjusting the current network rate to the first target network rate.

[0157] In one embodiment, determining the target speed reduction coefficient based on the current network rate when the computer program is executed by a processor includes: determining an extended speed reduction coefficient based on the network card line speed or the bottleneck bandwidth and the current network rate, where the extended speed reduction coefficient decreases as the current network rate decreases; and determining the target speed reduction coefficient based on the extended speed reduction coefficient and the basic speed reduction coefficient.

[0158] In one embodiment, determining the extended speed reduction coefficient based on the network card line speed or the bottleneck bandwidth and the current network rate when the computer program is executed by a processor includes:

[0159] Obtaining the extended speed reduction coefficient based on the following formula:

[0160]

[0161] where, is the network rate after speed reduction in the previous round, that is, the current network rate, is the extended speed reduction coefficient, L is the network card line speed or the bottleneck bandwidth, k is the extended speed reduction order, and k ≥ 0; or

[0162] Obtaining the extended speed reduction coefficient based on the following formula:

[0163]

[0164] where, takes values in the range of [0, 1] and is used to limit the minimum extended speed reduction amplitude.

[0165] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: detecting whether the cumulative speed reduction rounds are less than the round threshold; in the case where the cumulative speed reduction rounds are less than the round threshold, continuing to execute the step of determining the current network rate; in the case where the cumulative speed reduction rounds are greater than or equal to the round threshold, obtaining a second target network rate based on the current network rate and the basic speed reduction coefficient; and adjusting the current network rate to the second target network rate.

[0166] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: receiving a congestion notification message; determining the time difference between the current timestamp of receiving the congestion notification message and the previous speed reduction timestamp; filtering the congestion notification message when the time difference is not greater than the time window threshold; and continuing to execute the step of detecting whether the cumulative speed reduction round is less than the round threshold when the time difference is greater than the time window threshold.

[0167] In one embodiment, after adjusting the current network rate to the first target network rate and adjusting the current network rate to the second target network rate, which are implemented when the computer program is executed by a processor, the following are further included: updating the previous speed reduction timestamp and the cumulative speed reduction round.

[0168] 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 current network rate; determining a target speed reduction coefficient based on the current network rate, where the target speed reduction coefficient decreases as the current network rate decreases; determining a first target network rate based on the current network rate and the target speed reduction coefficient; and adjusting the current network rate to the first target network rate.

[0169] In one embodiment, determining the target speed reduction coefficient based on the current network rate, which is implemented when the computer program is executed by a processor, includes: determining an extended speed reduction coefficient based on the network card line speed or the bottleneck bandwidth and the current network rate, where the extended speed reduction coefficient decreases as the current network rate decreases; and determining the target speed reduction coefficient based on the extended speed reduction coefficient and the basic speed reduction coefficient.

[0170] In one embodiment, determining the extended speed reduction coefficient based on the network card line speed or the bottleneck bandwidth and the current network rate, which is implemented when the computer program is executed by a processor, includes:

[0171] Obtaining the extended speed reduction coefficient based on the following formula:

[0172]

[0173] where, is the network rate after the previous round of speed reduction, that is, the current network rate, is the extended speed reduction coefficient, L is the network card line speed or the bottleneck bandwidth, k is the extended speed reduction order, and k≥0; or

[0174] Obtaining the extended speed reduction coefficient based on the following formula:

[0175]

[0176] where, takes values in the range of [0,1], and is used to limit the minimum extended speed reduction amplitude.

[0177] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: detecting whether the cumulative deceleration round count is less than the round count threshold; continuing to execute the step of determining the current network rate when the cumulative deceleration round count is less than the round count threshold; obtaining a second target network rate based on the current network rate and the base deceleration coefficient when the cumulative deceleration round count is greater than or equal to the round count threshold; and adjusting the current network rate to the second target network rate.

[0178] In one embodiment, when the computer program is executed by a processor, the following steps are further implemented: receiving a congestion notification message; determining the time difference between the current timestamp of receiving the congestion notification message and the previous deceleration timestamp; filtering the congestion notification message when the time difference is not greater than the time window threshold; and continuing to execute the step of detecting whether the cumulative deceleration round count is less than the round count threshold when the time difference is greater than the time window threshold.

[0179] In one embodiment, after adjusting the current network rate to the first target network rate and adjusting the current network rate to the second target network rate, which are implemented when the computer program is executed by a processor, the following is further included: updating the previous deceleration timestamp and the cumulative deceleration round count.

[0180] 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.

[0181] 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 the present 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 the present 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 the present 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.

[0182] The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of 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 to be within the scope recorded in the present application.

[0183] 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 on 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 current network rate; Determining a target speed reduction coefficient based on the current network rate, wherein the target speed reduction coefficient decreases as the current network rate decreases; Determine a first target network rate based on the current network rate and the target speed reduction coefficient; The current network rate is adjusted to a first target network rate.

2. The method according to claim 1, characterized in that The determining a target speed reduction coefficient based on the current network rate includes: Determine an extended speed reduction coefficient based on the network card line speed or bottleneck bandwidth and the current network rate, wherein the extended speed reduction coefficient decreases as the current network rate decreases; Based on the extended speed reduction coefficient and the basic speed reduction coefficient, a target speed reduction coefficient is determined.

3. The method according to claim 2, characterized in that The step of determining the extended speed reduction coefficient based on the network card line speed or bottleneck bandwidth and the current network rate includes: The extended speed reduction factor is obtained based on the following formula: in, is the network rate after the last round of speed reduction, that is, the current network rate. is the extended speed reduction coefficient, L is the network card line speed or bottleneck bandwidth, k is the extended speed reduction order, and k ≥ 0; or The extended speed reduction factor is obtained based on the following formula: in, The value is in the interval [0,1] and is used to limit the minimum expansion speed reduction range.

4. The method according to any one of claims 1 to 3, characterized in that: The method further comprises: Check whether the cumulative speed reduction rounds are less than the round threshold; When the accumulated speed reduction rounds are less than the round threshold, continue to perform the step of determining the current network rate; When the accumulated speed reduction rounds are greater than or equal to the round threshold, obtaining a second target network rate based on the current network rate and a basic speed reduction coefficient; The current network rate is adjusted to a second target network rate.

5. The method according to claim 4, characterized in that The method further comprises: Receive congestion notification messages; Determine a time difference between a current timestamp of receiving the congestion notification message and a last speed reduction timestamp; When the time difference is not greater than a time window threshold, filtering the congestion notification message; When the time difference is greater than the time window threshold, the step of detecting whether the accumulated speed reduction rounds are less than the round threshold is continued.

6. The method according to claim 5, characterized in that After adjusting the current network rate to the first target network rate and adjusting the current network rate to the second target network rate, the method further includes: Update the last speed reduction timestamp and the cumulative speed reduction rounds.

7. A network rate control device, characterized in that: The device comprises: A current network rate determination module, used to determine the current network rate; A target speed reduction coefficient determination module, configured to determine a target speed reduction coefficient based on the current network rate, wherein the target speed reduction coefficient decreases as the current network rate decreases; A first target network rate determination module, configured to determine a first target network rate based on the current network rate and the target speed reduction coefficient; The adjustment module is used to adjust the current network rate to a first target network rate.

8. 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 6 are implemented.

9. A network interface card, characterized in that: The method comprises the chip as claimed in claim 8 and a plurality of interfaces, wherein the chip processes data or communicates externally through the interfaces.

10. A computer device, characterized in that: The network interface card comprises the network interface card as claimed in claim 9, wherein the network interface card is used for processing data or external communication.

11. 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 6 are implemented.

12. 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 6 are implemented.

Citation Information

Patent Citations

  • Network congestion control method based on quasi-Newton algorithm

    CN103095602A

  • Congestion mechanism control method based on QoS guarantee in heterogeneous network

    CN108881045A

  • Data sending method and device and computer device

    CN109951398A

  • Network congestion adjustment method and device, computing equipment and readable storage medium

    CN116915722A

  • Network rate adjustment method and device, storage medium and electronic equipment

    CN117376212A