Ramp-up Logic Determination Method, Apparatus, Chip, Network Interface Card, Computer Device, Readable Storage Medium, and Program Product

By combining the dual-constraint strategy of time and number of sent bytes in the RDMA network card, the speed-up logic is dynamically adjusted, and the improper speed-up problem caused by ByteCounter in the DCQCN algorithm is solved, and the network congestion mitigation efficiency and simplicity of parameter tuning is improved.

CN119814705BActive Publication Date: 2025-08-01SHENZHEN JAGUAR MICROSYSTEMS CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510302898.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-03-14
Publication Date
2025-08-01
Estimated Expiration
2045-03-14

AI Technical Summary

Technical Problem

In the DCQCN algorithm of existing RDMA network cards, ByteCounter as a static parameter configuration may lead to improper speedup, resulting in uneffective network congestion, and parameter tuning is difficult and poor scalability.

Method used

The expected number of sent bytes based on the current network rate and T event time period parameters are used to dynamically adjust the speed-up logic, and the double-constraint strategy combining time and number of sent bytes is avoided improper speed-up.

Benefits of technology

It effectively avoids improper speed-up caused by low transmission byte threshold, simplifies the parameter tuning process, and improves the scalability of parameter settings.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119814705B_ABST
    Figure CN119814705B_ABST
Patent Text Reader

Abstract

The present application relates to a method, apparatus, computer device, computer-readable storage medium, and computer program product for determining an acceleration logic. The method includes: obtaining an expected number of bytes to be sent when an expected T event is triggered based on the current network rate and the T event time period parameter; and executing the acceleration logic when the currently sent number of bytes is greater than the expected number of bytes. In the method of the present application, the expected number of bytes to be sent is a value that dynamically changes with the current rate, and can be adaptively adjusted according to the actual congestion situation of the current flow. By coupling the T event time period parameter and the number of bytes to be sent, it is possible to effectively avoid improper acceleration caused by too low a threshold for the number of bytes to be sent.
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 method and apparatus for determining speed increase logic, a chip, a network interface card, a computer device, a computer-readable storage medium, and a computer program product. Background Art

[0002] Currently, RDMA (Remote Direct Memory Access) network cards need to use a congestion control (CC) algorithm to detect and alleviate congestion in the network. The most mainstream congestion control algorithm is DCQCN (Data Center Quantized Congestion Notification).

[0003] In the traditional technology, in the case where it is determined that there is no congestion in the network, a speed increase operation is performed. The speed increase determination and the speed increase mode in DCQCN depend on the following three factors: (1) Whether the T event occurs, that is, whether a congestion notification packet has not been received for more than the Timer time. If it occurs, the T value (that is, the number of occurrences of the T event) is incremented by 1; (2) Whether the BC event occurs, that is, whether more than ByteCounter bytes have been sent without receiving a CNP (Congestion Notification Packet). If it occurs, the BC value (the number of occurrences of the BC event) is incremented by 1; (3) The speed increase logic is determined based on the numerical relationship among T, BC, and the speed increase status threshold value F. The speed increase logic includes: the Fast Recovery process, the Additive Increase process, and the Hyper Increase process; the Fast Recovery process is to restore to a rate close to that before speed reduction, the Additive Increase process is to continue to detect the available bandwidth, and the Hyper Increase process is to more actively detect the available bandwidth.

[0004] However, configuring ByteCounter as a static parameter may lead to improper speed increase. Different from the Timer parameter, the setting of the ByteCounter parameter is not restricted by the speed reduction parameter. Therefore, if the ByteCounter is set too small, there may be such a contradictory situation: within the K (rp_rate_reduce_monitor_period) period, the speed is increased due to the triggering of the BC event, but a CNP is received and the speed needs to be reduced. This repeated speed increase and decrease within the same K period may always exist, and congestion may not be effectively alleviated due to the existence of improper speed increase, resulting in the failure of the algorithm. Summary of the Invention

[0005] Based on this, in view of the above technical problems, it is necessary to provide a method, apparatus, chip, network interface card, computer device, computer-readable storage medium, and computer program product for determining a speed-up logic that can effectively avoid improper speed-up caused by too low a threshold of the number of bytes to be sent.

[0006] In a first aspect, the present application provides a method for determining a speed-up logic, the method comprising:

[0007] Based on the current network rate and the T event time period parameter, obtain the expected number of bytes to be sent when the expected T event is triggered;

[0008] Execute the speed-up logic when the currently sent number of bytes is greater than the expected number of bytes to be sent.

[0009] In one optional embodiment, before executing the speed-up logic, it further includes:

[0010] When the currently sent number of bytes is greater than the expected number of bytes to be sent, update the number of occurrences of the BC event, where the currently sent number of bytes is the number of bytes sent from the update time of the number of occurrences of the previous BC event to the current time;

[0011] Determine the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up state threshold value.

[0012] In one optional embodiment, determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up state threshold value includes:

[0013] When the number of occurrences of the BC event is less than the speed-up state threshold value, determine the speed-up logic as a fast recovery logic, and the fast recovery logic is used to restore the network rate to the rate before deceleration.

[0014] In one optional embodiment, determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up state threshold value includes:

[0015] When the number of occurrences of the BC event is greater than or equal to the speed-up state threshold value and less than or equal to the speed-up state threshold value of the target multiple, determine the speed-up logic as an active increase logic; the active increase logic is used to detect the first available bandwidth.

[0016] In one optional embodiment, determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up state threshold value further includes:

[0017] When the number of occurrences of the BC event is greater than the target multiple of the speed-up state threshold value, determine that the speed-up logic is the excessive active increase logic; the excessive active increase logic is used to detect the second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

[0018] In one alternative embodiment, before obtaining the expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter, it further includes:

[0019] When no congestion notification message is received at the end of the time period corresponding to the T event time period parameter, continue to execute the step of obtaining the expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter;

[0020] When a congestion notification message is received at the end of the time period corresponding to the T event time period parameter, reset the number of occurrences of the BC event and the current number of bytes already sent.

[0021] In a second aspect, the present application further provides a device for determining speed-up logic, and the device includes:

[0022] An expected number of bytes to be sent calculation module, which is configured to obtain the expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter;

[0023] An update module, which is used to execute the speed-up logic when the current number of bytes already sent is greater than the expected number of bytes to be sent.

[0024] In a third aspect, the present application further provides a chip, which includes a memory and a processor, the memory stores a computer program, and when the processor executes the computer program, it implements the steps of the method in any one of the above embodiments.

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

[0026] In a fifth aspect, the present application further provides a computer device, which includes the network interface card in any one of the above embodiments, and the network interface card is used to process data or communicate externally.

[0027] 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, it implements the steps of the method in any one of the above embodiments.

[0028] In a seventh aspect, the present application further provides a computer program product, including a computer program, which when executed by a processor, implements the steps of the method in any one of the above embodiments.

[0029] The above method, apparatus, chip, network interface card, computer device, computer-readable storage medium, and computer program product for determining the speed increase logic obtain the expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter. Thus, when the currently sent number of bytes is greater than the expected number of bytes, the speed increase logic is executed. The expected number of bytes to be sent is a value that dynamically changes with the current rate and can be adaptively adjusted according to the actual congestion situation of the current flow. Coupling the T event time period parameter and the number of bytes to be sent can effectively avoid improper speed increase caused by too low a threshold for the number of bytes to be sent. BRIEF DESCRIPTION OF THE DRAWINGS

[0030] 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, other related drawings can be obtained based on these drawings without creative efforts.

[0031] Figure 1 is a schematic flowchart of the speed increase and decrease process of the standard DCQCN algorithm;

[0032] Figure 2 is a schematic diagram of the application environment of the method for determining the speed increase logic in an embodiment;

[0033] Figure 3 is a schematic flowchart of the method for determining the speed increase logic in an embodiment;

[0034] Figure 4 is a schematic flowchart of the method for determining the speed increase logic in another embodiment;

[0035] Figure 5 is a schematic block diagram of the structure of the apparatus for determining the speed increase logic in an embodiment;

[0036] Figure 6 is a schematic internal structure diagram of a computer device in an embodiment. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0037] In order to make the objectives, technical solutions, and advantages of the present application clearer, the following further details the present application in conjunction with the 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.

[0038] Currently, mainstream RDMA network card products based on the RoCE (RDMA over Converged Ethernet) protocol generally implement this congestion control mechanism based on the publicly available DCQCN algorithm model.

[0039] DCQCN follows the RP-CP-NP model. The Reaction Point (RP), that is, the data sender is the main body executing the algorithm, responsible for performing up and down speed operations. The Congestion Point (CP) marks the ECN (Explicit Congestion Notification) for the data packets on the outgoing port by checking the buffer queue size. If the queue size is lower than k min , no marking is performed; if the queue size is between k min and k max , probabilistic marking is performed (the marking probability is linearly related to the queue size); if the queue size is greater than k max , the ECN is definitely marked for the message. The NotificationPoint (NP), when receiving a data packet with an ECN mark, if it receives ECN data packets of the same flow within the same sampling period (this sampling period is determined based on the downspeed filtering threshold K), it ignores them, otherwise it needs to respond with a Congestion Notification Packet (CNP). After the RP receives the CNP message, it determines that there is congestion in the current network and performs a downspeed operation. The downspeed realizes congestion quantization by using the α parameter (the larger α is, the higher the congestion degree, and vice versa, the lower the congestion degree). If after the time period (this time period is determined based on the Reaction Point upspeed filtering threshold Timer) ends (or the size of the sent messages exceeds ByteCounter), the Reaction Point does not receive the CNP message, it determines that there is no congestion in the current network and can perform an upspeed operation. The upspeed is divided into three stages: the Fast Recovery process, that is, recovering to a rate close to before the downspeed; the Additive Increase process, that is, continuing to detect the available bandwidth; the Hyper Increase process, that is, more actively detecting the available bandwidth.

[0040] The up and down speed flow of the standard DCQCN algorithm is as Figure 1As shown, this application mainly focuses on the speed-up logic of the standard DCQCN algorithm. The speed-up determination of DCQCN and the mode of speed-up depend on the following three factors: (1) Whether the T event occurs, that is, whether no CNP packet is received after exceeding the Timer time. If it occurs, the T value (the number of occurrences of the T event) is incremented by 1; (2) Whether the BC event occurs, that is, whether no CNP packet is received after sending more than ByteCounter bytes. If it occurs, the BC value (the number of occurrences of the BC event) is incremented by 1; (3) The numerical relationship among the T value, the BC value, and the speed-up status threshold value 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-up 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 active increase speed-up 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 active increase speed-up 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.

[0041] The relevant parameter configurations for the speed-up and speed-down of the standard DCQCN algorithm are listed in Table 1 below. They are all static configuration parameters and will not be changed automatically during the algorithm operation once configured successfully. Combining the above, it can be seen that the T event and the BC event can independently contribute to the fast recovery and active increase speed-up processes respectively, and the two are decoupled. However, the Timer configuration of the T event is restricted by the speed-down filtering threshold value K and cannot be greater than the speed-down filtering threshold, that is, Timer > K.

[0042] Table 1 Relevant Parameters for Speed-up and Speed-down of DCQCN Algorithm

[0043]

[0044] However, in the above standard DCQCN algorithm, the following problems may exist:

[0045] Configuring rp_byte_reset (i.e., the ByteCounter parameter) as a static parameter may lead to improper speed increase. Different from the rp_time_reset (Timer parameter), the setting of the rp_byte_reset parameter is not restricted by the speed reduction parameter. Therefore, if the rp_byte_reset is set too small, there may be a contradictory situation: within the K (rp_rate_reduce_monitor_period) period, the speed increases due to the triggering of the BC event, but at the same time, a CNP is received and the speed needs to be reduced. Such repeated speed increase and decrease within the same K period may persist, and congestion may not be effectively alleviated due to the improper speed increase, resulting in the failure of the algorithm.

[0046] The speed increase determination based on the static parameter configuration of rp_time_reset (Timer parameter) may lead to improper speed increase. Although the setting of the rp_time_reset parameter needs to follow the principle of being greater than the K parameter and does not face the above problems, the speed increase determination based on time may still cause improper speed increase. The reason is that the current flow may be in a state of no traffic or only a small amount of traffic being sent. Therefore, the reason for not receiving a CNP within the rp_time_reset time is not that congestion will not occur when sending at the current rate, but simply that the sent traffic is small: r_c > ulp_flow_rate, where ulp_flow_rate is the traffic supply rate of the upper-layer application.

[0047] The parameter setting with the logical separation of rp_byte_reset and rp_time_reset increases the difficulty of parameter tuning and has poor scalability. Although the standard DCQCN algorithm provides recommended values for the speed increase and decrease configuration parameters, these values need to be tuned separately under different network conditions (such as 25Gbps network cards and 200Gbps network cards) or service models. Moreover, the increase in the number of parameters exponentially increases the pressure on the tuning complexity. The current dual-speed increase parameter configuration scheme has high tuning difficulty and poor scalability.

[0048] To solve the above technical problems, the present application provides a method for determining the speed increase logic. This method proposes an implicit speed increase determination mechanism based on the number of sent bytes and designs a dual-constraint speed increase determination strategy based on the coupling of time and the number of sent bytes.

[0049] The method for determining the speed increase logic provided by the embodiments of the present application can be applied to, for example Figure 2In the application environment shown. Among them, the data sender 102 communicates with the data receiver 104 through the network. The data sender 102 obtains the expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter; in the case where the current number of bytes sent is greater than the expected number of bytes to be sent, the number of BC events occurring is updated, and the current number of bytes sent is the number of bytes sent from the update time of the number of BC events occurring last time to the current time; the speed-up logic is determined based on the relationship between the number of BC events occurring and the speed-up state threshold value. In this way, the T event time period parameter and the number of bytes sent are coupled, and the speed-up logic is determined through double constraints, which can avoid improper speed-up of two types: "too low byte count threshold for sending" and "too little supply traffic".

[0050] In an exemplary embodiment, as Figure 3 shown, a method for determining the speed-up logic is provided. Taking the data sender in Figure 2 as an example, the following steps S302 to S304 are included. Among them:

[0051] S302: Obtain the expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter.

[0052] Among them, the current network rate is the rate at which the data sender currently sends packets, represented by r_c. The T event time period parameter is rp_time_reset in the above text.

[0053] Since the judgment of whether the T event occurs is related to the T event time period parameter time, and whether the BC event occurs is related to the reaction point speed-up byte count threshold, that is, the parameter rp_byte_reset, in order to avoid improper speed-up caused by independent speed-up judgments of the T event and the BC event and realize the coupling of the parameters corresponding to the T event and the BC event, the expected number of bytes to be sent when the expected T event is triggered is introduced, that is, when the T event is triggered, the expected number of bytes to be sent. Therefore, the expected number of bytes sent expected_bytes_sent value can be used to replace the static configuration parameter rp_byte_reset.

[0054] The expected number of bytes to be sent when the expected T event is triggered is equal to the product of the current network rate and the T event time period parameter, that is, expected_bytes_sent = r_c rp_time_reset.

[0055] S304: In the case where the current number of bytes sent is greater than the expected number of bytes to be sent, update the number of BC events occurring and execute the speed-up logic.

[0056] The current number of bytes sent is the number of bytes sent from the update time of the number of BC events occurred last time to the current time.

[0057] When the data sender detects that the current number of bytes sent exceeds the expected number of bytes to be sent (expected_bytes_sent), the speed-up logic is executed. That is, if the expected_bytes_sent number of packets are sent without receiving the CNP signal, it means that the current network rate of the current flow does not cause network congestion, and the speed can be increased.

[0058] Since the update of the number of BC events occurred already includes the packet sending number constraint and the time constraint (because the acquisition of the expected number of bytes to be sent requires the T event time period parameter), the speed-up logic determination can be simplified to if the number of packets sent is greater than expected_bytes_sent (i.e., bytes_sent>r_c rp_time_reset), the speed is increased.

[0059] The advantages of expected_bytes_sent are as follows: First, there is no need to manually set the byte threshold, reducing the cumbersome parameter tuning process; Second, it is a value that changes dynamically with the current rate and can be adaptively adjusted according to the actual congestion situation of the current flow; Third, it is constrained by the rp_time_reset parameter configuration and will not cause improper speed increase during the speed reduction detection period. Fourth, the expected_bytes_sent parameter explicitly expresses the packet sending number constraint and implicitly includes the time constraint (i.e., rp_time_reset). Therefore, using this threshold can naturally implement the dual-constraint speed-up determination strategy based on the coupling of time and the number of packets sent.

[0060] The above method for determining the speed-up logic is based on the current network rate and the T event time period parameter to obtain the expected number of bytes to be sent when the expected T event is triggered. In this way, when the current number of bytes sent is greater than the expected number of bytes to be sent, the speed-up logic is executed. The expected number of bytes to be sent is a value that changes dynamically with the current rate and can be adaptively adjusted according to the actual congestion situation of the current flow. Coupling the T event time period parameter and the number of bytes sent can effectively avoid improper speed increase caused by too low byte threshold.

[0061] In one optional embodiment, before executing the speed-up logic, it further includes: when the current number of bytes sent is greater than the expected number of bytes to be sent, updating the number of BC events occurred. The current number of bytes sent is the number of bytes sent from the update time of the number of BC events occurred last time to the current time; determining the speed-up logic based on the relationship between the number of BC events occurred and the speed-up status threshold value.

[0062] When the currently transmitted byte count is greater than the expected transmitted byte count, the BC event is triggered, that is, the number of occurrences of the BC event is updated. It should be noted that the currently transmitted byte count is the number of bytes transmitted from the update moment of the number of occurrences of the previous BC event to the current moment. That is, after each update of the number of occurrences of the BC event, the currently transmitted byte count needs to be reset.

[0063] Subsequently, the speed-up logic is determined based on the relationship between the number of occurrences of the BC event and the speed-up status threshold.

[0064] The speed-up status threshold is the F in the above text, that is, the reaction point speed-up status threshold. Based on the relationship between the number of occurrences of the BC event and the speed-up status threshold, the corresponding speed-up logic can be determined. In this application, in order to match the standard DCQCN algorithm, the speed-up logic in three stages can be determined based on the relationship between the number of occurrences of the BC event and the speed-up status threshold.

[0065] In one optional embodiment, determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up status threshold includes: when the number of occurrences of the BC event is less than the speed-up status threshold, determining the speed-up logic as the fast recovery logic, and the fast recovery logic is used to restore the network rate to the rate before deceleration.

[0066] In one optional embodiment, determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up status threshold includes: when the number of occurrences of the BC event is greater than or equal to the speed-up status threshold and less than or equal to the speed-up status threshold of the target multiple, determining the speed-up logic as the active increase logic; the active increase logic is used to detect the first available bandwidth.

[0067] In one optional embodiment, determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up status threshold further includes: when the number of occurrences of the BC event is greater than the speed-up status threshold of the target multiple, determining the speed-up logic as the excessive active increase logic; the excessive active increase logic is used to detect the second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

[0068] The fast recovery logic is used to restore the network rate to the rate before deceleration. The excessive active increase logic is used to detect the first available bandwidth. The excessive active increase logic is used to detect the second available bandwidth, and the first available bandwidth is greater than the second available bandwidth.

[0069] Among them, the fast recovery logic, the active increase logic, and the excessive active increase logic can increase the network rate linearly or non-linearly. The non-linear increase of the network rate can be obtained based on the speed-up curve of a convex function or based on the speed-up curve of a concave function.

[0070] For ease of understanding, the fast recovery logic, the active increase logic, and the overactive increase logic in this application are described by taking the linear increase of the network rate as an example:

[0071] The fast recovery logic includes: calculating the first average rate of the current network rate and the target network rate, and taking the first average rate as the new current network rate. That is, r_c = (r_c + r_t) / 2, where r_c is the current rate and r_t is the target rate.

[0072] The overactive increase logic includes: updating the target network rate based on the configured first single - time network rate increase to obtain the first target network rate, calculating the second average rate of the current network rate and the first target network rate, and taking the second average rate as the new current network rate. That is, r_t = r_t + HAI, r_c = (r_c + r_t) / 2, where HAI is the single - time rate increase configured statically, that is, the first single - time network rate increase, and HAI > AI.

[0073] The active increase logic includes: updating the target network rate based on the configured second single - time network rate increase to obtain the second target network rate, calculating the third average rate of the current network rate and the second target network rate, and taking the third average rate as the new current network rate, where the second single - time network rate increase is less than the first single - time network rate increase. That is, r_t = r_t + AI, r_c = (r_c + r_t) / 2, where AI is the single - time rate increase configured statically, that is, the second single - time network rate increase.

[0074] In this application, which speed - up logic to adopt can be determined based on the relationship between the number of BC events occurring and the speed - up state threshold value. Specifically, when the number of BC events occurring is less than the speed - up state threshold value, that is, when the BC value < F, the fast recovery logic is executed. When the number of BC events occurring is not less than the speed - up state threshold value, it is then continued to determine whether the number of BC events occurring is greater than the speed - up state threshold value of the target multiple. For example, when the target multiple is 2, it is judged whether BC value > 2F holds. If BC value > 2F, the overactive increase logic is executed, otherwise the active increase logic is executed.

[0075] In summary, when the BC value < F, the fast recovery logic is executed; when the BC value > 2F, the overactive increase logic is executed; when F < BC value < 2F, the active increase logic is executed.

[0076] The above - mentioned embodiments give a way to determine the speed - up logic. In other embodiments, other ways to determine the speed - up logic can be obtained based on the relationship between the number of BC events occurring and the speed - up state threshold value, and no specific limitation is made here.

[0077] In one alternative embodiment, the above method further includes: when the currently sent number of bytes is less than or equal to the expected number of bytes to be sent, waiting for the next speed increase logic determination process.

[0078] In one alternative embodiment, before obtaining the expected number of bytes to be sent at the expected T event trigger based on the current network rate and the T event time period parameter, it further includes: when no congestion notification message is received at the end of the time period corresponding to the T event time period parameter, continuing to execute the step of obtaining the expected number of bytes to be sent at the expected T event trigger based on the current network rate and the T event time period parameter; when a congestion notification message is received at the end of the time period corresponding to the T event time period parameter, resetting the number of BC event occurrences and the currently sent number of bytes.

[0079] Among them, in combination Figure 4 as shown Figure 4 is a schematic diagram of the three-stage speed increase process of the speed increase logic determination method in one embodiment. In this embodiment, after the data sender completes the sending of a specific message, when no congestion notification message is received at the end of the time period corresponding to the T event time period parameter, a speed increase logic process is performed once.

[0080] Among them, first check whether the currently sent number of bytes (bytes_sent) is greater than the expected number of bytes to be sent (that is, expected_bytes_sent = r_c * rp_time_reset). If not, no speed increase is performed and wait for the next processing, that is, wait for the next speed increase logic determination process.

[0081] If the currently sent number of bytes is greater than the expected number of bytes to be sent, update the BC value, that is, BC = BC + 1, and reset the currently sent number of bytes, for example, set it to 0, and then determine the speed increase logic based on the relationship between the BC value and F. Specifically, when the BC value < F, execute the fast recovery logic; when the BC value > 2F, execute the excess active increase logic; when F < BC value < 2F, execute the active increase logic. And after completing the speed increase logic, the algorithm feeds back the indicated target network rate to the message processing module.

[0082] Among them, when a congestion notification message is received at the end of the time period corresponding to the T event time period parameter, reset the number of BC event occurrences and the currently sent number of bytes. When a congestion notification message is received, a speed decrease operation needs to be performed, and both the number of BC event occurrences and the currently sent number of bytes are set to 0.

[0083] In the above method for determining the speed-up logic, the rp_byte_reset parameter is not required, which reduces the number of parameters to be adjusted, greatly reduces the difficulty of parameter adjustment, enhances the scalability of parameter settings, and can be applied to various service models (such as different network card conditions, topologies, and traffic). Moreover, a dual-constraint speed-up determination strategy based on the coupling of time and the number of transmitted bytes is implemented. If only the time condition or the specific number of transmitted bytes condition is satisfied, the speed-up is not performed. The speed-up is only performed when both conditions are satisfied, which can effectively avoid two types of improper speed-ups: too low a threshold for the number of transmitted bytes and too little supplied traffic.

[0084] It should be understood that although the steps in the flowcharts involved in the above embodiments are sequentially shown according to the arrows, 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.

[0085] Based on the same inventive concept, an embodiment of the present application further provides a speed-up logic determination device for implementing the above-mentioned speed-up logic determination method. The solution provided by this device to solve the problem is similar to the solution described in the above method. Therefore, the specific limitations in one or more embodiments of the speed-up logic determination device provided below can refer to the limitations on the speed-up logic determination method in the above text, and will not be repeated here.

[0086] In an exemplary embodiment, as Figure 5 shown, a speed-up logic determination device is provided, including: an expected transmitted byte count calculation module 501 and an update module 502, where:

[0087] The expected transmitted byte count calculation module 501 is configured to obtain the expected transmitted byte count at the expected T event trigger based on the current network rate and the T event time period parameter;

[0088] The update module 502 is used to execute the speed-up logic when the currently transmitted byte count is greater than the expected transmitted byte count.

[0089] In one of the optional embodiments, the above device further includes:

[0090] An update module 502, configured to update the number of BC events occurred when the currently transmitted byte count is greater than the expected transmitted byte count, where the currently transmitted byte count is the number of bytes transmitted from the update moment of the number of BC events occurred last time to the current moment;

[0091] A speed-up logic determination module, configured to determine the speed-up logic based on the relationship between the number of BC events occurred and the speed-up status threshold value.

[0092] In one optional embodiment, the above speed-up logic determination module is specifically configured to determine the speed-up logic as a fast recovery logic when the number of BC events occurred is less than the speed-up status threshold value, and the fast recovery logic is used to restore the network rate to the rate before the speed reduction.

[0093] In one optional embodiment, the above speed-up logic determination module is specifically configured to determine the speed-up logic as an active increase logic when the number of BC events occurred is greater than or equal to the speed-up status threshold value and less than or equal to the speed-up status threshold value of the target multiple; the active increase logic is used to detect the first available bandwidth.

[0094] In one optional embodiment, the above speed-up logic determination module is specifically configured to determine the speed-up logic as an excessive active increase logic when the number of BC events occurred is greater than the speed-up status threshold value of the target multiple; the excessive active increase logic is used to detect the second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

[0095] In one optional embodiment, the above device further includes:

[0096] A loop module, configured to wait for the next speed-up logic determination process when the currently transmitted byte count is less than or equal to the expected transmitted byte count.

[0097] In one optional embodiment, the above device further includes:

[0098] A congestion judgment module, configured to continue to execute the step of obtaining the expected transmitted byte count at the expected T event trigger based on the current network rate and the T event time period parameter when no congestion notification message is received at the end of the time period corresponding to the T event time period parameter; and reset the number of BC events occurred and the currently transmitted byte count when a congestion notification message is received at the end of the time period corresponding to the T event time period parameter.

[0099] Each module in the above-mentioned speed-up logic determination device can be implemented in whole or in part by software, hardware, or a combination thereof. Each of the above modules can be embedded in the processor in the computer device in the form of hardware or be independent of the processor, or can be stored in the memory in the computer device in the form of software, so that the processor can call and execute the operations corresponding to each of the above modules.

[0100] The present application also 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 described in any one of the above embodiments are implemented. Among them, the chip can be a data processing unit (DPU) chip or other chips for processing data.

[0101] The present application also provides a network interface card, including the chip described in any one of the above embodiments and a plurality of interfaces. Among them, 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.

[0102] 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 6 shown. 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, a speed-up logic determination method is implemented. 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 covered on the display screen, or a button, a trackball, or a touchpad provided on the housing of the computer device, or an external keyboard, a touchpad, or a mouse, etc.

[0103] Those skilled in the art can understand that Figure 6 the structure shown in Figure 6 is only a block diagram of some structures related to the solution of this application, and does not constitute a limitation on the computer device to which the solution of this 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.

[0104] In an exemplary embodiment, the computer device described in the above embodiment may be a data sender or a data receiver as shown in Figure 2 . Figure 2 shown.

[0105] 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: obtaining an expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter; and executing a speed-up logic when the current number of bytes sent is greater than the expected number of bytes to be sent.

[0106] In an embodiment, before executing the speed-up logic implemented when the processor executes the computer program, it further includes: updating the number of occurrences of the BC event when the current number of bytes sent is greater than the expected number of bytes to be sent, where the current number of bytes sent is the number of bytes sent from the update time of the number of occurrences of the previous BC event to the current time; and determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up state threshold value.

[0107] In an embodiment, determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up state threshold value implemented when the processor executes the computer program includes: determining the speed-up logic as a fast recovery logic when the number of occurrences of the BC event is less than the speed-up state threshold value, and the fast recovery logic is used to restore the network rate to the rate before deceleration.

[0108] In an embodiment, determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up state threshold value implemented when the processor executes the computer program includes: determining the speed-up logic as an active increase logic when the number of occurrences of the BC event is greater than or equal to the speed-up state threshold value and less than or equal to the target multiple of the speed-up state threshold value; and the active increase logic is used to detect the first available bandwidth.

[0109] In one embodiment, when the processor executes a computer program, the speed-up logic determined based on the relationship between the number of BC events occurring and the speed-up state threshold further includes: when the number of BC events occurring is greater than the speed-up state threshold of the target multiple, determining the speed-up logic as the overactive increase logic; the overactive increase logic is used to detect the second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

[0110] In one embodiment, before obtaining the expected number of bytes to be sent when the T event is triggered based on the current network rate and the T event time period parameter when the processor executes a computer program, it further includes: when no congestion notification packet is received at the end of the time period corresponding to the T event time period parameter, continuing to execute the step of obtaining the expected number of bytes to be sent when the T event is triggered based on the current network rate and the T event time period parameter; when a congestion notification packet is received at the end of the time period corresponding to the T event time period parameter, resetting the number of BC events occurring and the current number of bytes already sent.

[0111] 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: obtaining the expected number of bytes to be sent when the T event is triggered based on the current network rate and the T event time period parameter; when the current number of bytes already sent is greater than the expected number of bytes to be sent, executing the speed-up logic.

[0112] In one embodiment, before executing the speed-up logic when the computer program is executed by the processor, it further includes: when the current number of bytes already sent is greater than the expected number of bytes to be sent, updating the number of BC events occurring, where the current number of bytes already sent is the number of bytes sent from the update time of the number of BC events occurring last time to the current time; determining the speed-up logic based on the relationship between the number of BC events occurring and the speed-up state threshold.

[0113] In one embodiment, when the computer program is executed by the processor, determining the speed-up logic based on the relationship between the number of BC events occurring and the speed-up state threshold includes: when the number of BC events occurring is less than the speed-up state threshold, determining the speed-up logic as the fast recovery logic, and the fast recovery logic is used to restore the network rate to the rate before deceleration.

[0114] In one embodiment, when the computer program is executed by the processor, determining the speed-up logic based on the relationship between the number of BC events occurring and the speed-up state threshold includes: when the number of BC events occurring is greater than or equal to the speed-up state threshold and less than or equal to the speed-up state threshold of the target multiple, determining the speed-up logic as the active increase logic; the active increase logic is used to detect the first available bandwidth.

[0115] In one embodiment, when the computer program is executed by a processor, determining the speed-up logic based on the relationship between the number of BC events occurring and the speed-up state threshold value further includes: when the number of BC events occurring is greater than the speed-up state threshold value of the target multiple, determining the speed-up logic as the overactive increase logic; the overactive increase logic is used to detect the second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

[0116] In one embodiment, before obtaining the expected number of bytes to be sent when the T event is triggered based on the current network rate and the T event time period parameter when the computer program is executed by a processor, it further includes: when no congestion notification packet is received at the end of the time period corresponding to the T event time period parameter, continuing to execute the step of obtaining the expected number of bytes to be sent when the T event is triggered based on the current network rate and the T event time period parameter; when a congestion notification packet is received at the end of the time period corresponding to the T event time period parameter, resetting the number of BC events occurring and the current number of bytes already sent.

[0117] In one embodiment, a computer program product is provided, including a computer program, and when the computer program is executed by a processor, the following steps are implemented: obtaining the expected number of bytes to be sent when the T event is triggered based on the current network rate and the T event time period parameter; when the current number of bytes already sent is greater than the expected number of bytes to be sent, executing the speed-up logic.

[0118] In one embodiment, before executing the speed-up logic when the computer program is executed by a processor, it further includes: when the current number of bytes already sent is greater than the expected number of bytes to be sent, updating the number of BC events occurring, where the current number of bytes already sent is the number of bytes sent from the update time of the number of BC events occurring last time to the current time; determining the speed-up logic based on the relationship between the number of BC events occurring and the speed-up state threshold value.

[0119] In one embodiment, determining the speed-up logic based on the relationship between the number of BC events occurring and the speed-up state threshold value when the computer program is executed by a processor includes: when the number of BC events occurring is less than the speed-up state threshold value, determining the speed-up logic as the fast recovery logic, and the fast recovery logic is used to restore the network rate to the rate before deceleration.

[0120] In one embodiment, determining the speed-up logic based on the relationship between the number of BC events occurring and the speed-up state threshold value when the computer program is executed by a processor includes: when the number of BC events occurring is greater than or equal to the speed-up state threshold value and less than or equal to the speed-up state threshold value of the target multiple, determining the speed-up logic as the active increase logic; the active increase logic is used to detect the first available bandwidth.

[0121] In one embodiment, when the computer program is executed by a processor, determining the speed-up logic based on the relationship between the number of BC events occurring and the speed-up state threshold value further includes: when the number of BC events occurring is greater than the speed-up state threshold value of the target multiple, determining the speed-up logic as the overactive increase logic; the overactive increase logic is used to detect the second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

[0122] In one embodiment, before obtaining the expected number of bytes to be sent when the T event is triggered based on the current network rate and the T event time period parameter when the computer program is executed by a processor, it further includes: when no congestion notification message is received at the end of the time period corresponding to the T event time period parameter, continuing to execute the step of obtaining the expected number of bytes to be sent when the T event is triggered based on the current network rate and the T event time period parameter; when a congestion notification message is received at the end of the time period corresponding to the T event time period parameter, resetting the number of BC events occurring and the currently sent number of bytes.

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

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

[0125] 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 as the scope recorded in this application.

[0126] 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 method for determining speed-up logic, characterized in that The method includes: Based on the current network rate and the T event time period parameter, obtaining the expected number of bytes to be sent when the expected T event is triggered; where the T event is an event that occurs when no congestion notification message is received after exceeding the Timer time. When the currently sent number of bytes is greater than the expected number of bytes to be sent, execute the speed-up logic. Before executing the speed-up logic, it further includes: When the currently sent number of bytes is greater than the expected number of bytes to be sent, update the number of occurrences of the BC event. The currently sent number of bytes is the number of bytes sent from the update moment of the number of occurrences of the previous BC event to the current moment; where the BC event is an event that occurs when more than ByteCounter bytes are sent and no congestion notification message is received. Determine the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up status threshold value.

2. The method according to claim 1, characterized in that, The determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up status threshold value includes: When the number of occurrences of the BC event is less than the speed-up status threshold value, determine the speed-up logic as the fast recovery logic, and the fast recovery logic is used to restore the network rate to the rate before deceleration.

3. The method according to claim 1, characterized in that, The determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up status threshold value includes: When the number of occurrences of the BC event is greater than or equal to the speed-up status threshold value and less than or equal to the target multiple of the speed-up status threshold value, determine the speed-up logic as the active increase logic; the active increase logic is used to detect the first available bandwidth.

4. The method according to claim 3, wherein The determining the speed-up logic based on the relationship between the number of occurrences of the BC event and the speed-up status threshold value further includes: When the number of occurrences of the BC event is greater than the target multiple of the speed-up status threshold value, determine the speed-up logic as the excess active increase logic; the excess active increase logic is used to detect the second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

5. The method according to any one of claims 1 to 3, characterized in that Before obtaining the expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter, it further includes: When no congestion notification message is received at the end of the time period corresponding to the T event time period parameter, continue to execute the step of obtaining the expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter. When a congestion notification message is received at the end of the time period corresponding to the T event time period parameter, reset the number of occurrences of the BC event and the currently sent number of bytes.

6. A device for determining acceleration logic, characterized in that The device includes: An expected number of bytes to be sent calculation module, which is applied to obtain the expected number of bytes to be sent when the expected T event is triggered based on the current network rate and the T event time period parameter; where the T event is an event that occurs when no congestion notification message is received after exceeding the Timer time. A speed-up module, which is used to execute the speed-up logic when the currently sent number of bytes is greater than the expected number of bytes to be sent. An update module, configured to update the number of BC events occurred when the currently sent byte count is greater than the expected sent byte count, where the currently sent byte count is the number of bytes sent from the update moment of the number of the BC events occurred last time to the current moment; wherein, the BC event is an event that occurs when more than ByteCounter bytes are sent without receiving a congestion notification message. A speed-up logic determination module, configured to determine a speed-up logic based on the relationship between the number of BC events occurred and a speed-up status threshold value.

7. 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 5 are implemented.

8. A network interface card, characterized in that, It includes the chip according to claim 7 and a plurality of interfaces, and the chip processes data or communicates externally through the interfaces.

9. A computer device, characterized in that, It includes the network interface card according to claim 8, and the network interface card is configured to process data or communicate externally.

10. 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 5 are implemented.

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

Citation Information

Patent Citations

  • Method and system for network congestion management

    CN101582852A