Speed raising logic determination method and device, chip, network interface card, computer equipment, readable storage medium and program product

By dynamically calculating the expected number of sent bytes and updating the number of BC events in the DCQCN algorithm, determining the speed-up logic is solved, and the problem of improper speed-up caused by the static parameter configuration of ByteCounter is achieved, effectively alleviating network congestion.

CN119814705AActive Publication Date: 2025-04-11SHENZHEN JAGUAR MICROSYSTEMS CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In the existing DCQCN algorithm, ByteCounter as a static parameter configuration may lead to improper speedup, resulting in network congestion not being effectively alleviated, and the algorithm fails.

Method used

By dynamically calculating the expected number of transmitted bytes when the expected T event is triggered based on the current network rate and T event time period parameters, and when the number of sent bytes is greater than the expected number of transmitted bytes, the number of BC events occurs is updated, and the speed-up logic is determined based on the relationship between the number of BC events and the speed-up state threshold value.

Benefits of technology

It effectively avoids improper speed-up caused by low transmission byte threshold, ensures that network congestion is effectively alleviated, and avoids algorithm failure.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119814705A_ABST
    Figure CN119814705A_ABST
Patent Text Reader

Abstract

The invention relates to a speed raising logic determination method and device, computer equipment, a computer readable storage medium and a computer program product. The method comprises the following steps: obtaining an expected sending byte number when an expected T event is triggered based on a current network rate and a time period parameter of the T event; and under the condition that the number of currently sent bytes is greater than the expected number of sent bytes, executing acceleration logic. According to the method, the expected number of sent bytes is a value dynamically changing along with the current rate, adaptive adjustment can be carried out according to the actual congestion situation of the current flow, the time period parameter of the T event and the number of sent bytes are coupled, and improper speed increase caused by the fact that the threshold of the number of sent bytes is too low can be effectively avoided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a method, device, chip, network interface card, computer equipment, computer-readable storage medium and computer program product for determining speed-up logic. Background Art

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

[0003] In traditional technology, the DCQCN algorithm performs a speed increase operation when it is determined that the network is not congested. The speed increase judgment of DCQCN and the speed increase mode it is in depend on the following three factors: (1) Whether the T event occurs, that is, whether the congestion notification packet is not received within the timer time. If it occurs, the T value (that is, the number of times the T event occurs) increases by 1; (2) Whether the BC event occurs, that is, whether more than ByteCounter bytes are sent without receiving CNP (Congestion Notification Packet). If it occurs, the BC value (the number of times the BC event occurs) increases by 1; (3) The speed increase logic is determined based on the numerical relationship between T, BC and the speed increase state threshold value F. The speed increase logic includes: Fast Recovery process, Additive Increase process and Hyper Increase process; Fast Recovery process is to restore to a rate close to the rate before the speed reduction, Additive Increase process is to continue to detect available bandwidth, and Hyper Increase process is to more actively detect available bandwidth.

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

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

[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, the expected number of bytes to be sent when the T event is triggered is obtained;

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

[0009] In one of the optional embodiments, before executing the speed-up logic, the method further includes:

[0010] When the current number of bytes sent is greater than the expected number of bytes sent, the number of BC event occurrences is updated, where the current number of bytes sent is the number of bytes sent from the last time the number of BC event occurrences was updated to the current time;

[0011] The speed-up logic is determined based on the relationship between the number of BC events occurring and the speed-up state threshold value.

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

[0013] When the number of BC events occurring is less than the speed-up state threshold, the speed-up logic is determined to be a fast recovery logic, and the fast recovery logic is used to restore the network rate to the rate before the speed reduction.

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

[0015] 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 target multiple of the speed-up state threshold value, the speed-up logic is determined to be an active increase logic; the active increase logic is used to detect the first available bandwidth.

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

[0017] When the number of BC events occurring is greater than the speed-up state threshold value of the target multiple, the speed-up logic is determined to be an excess active increase logic; the excess active increase logic is used to detect a second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

[0018] In one of the optional embodiments, 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, the method further includes:

[0019] If 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 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, the number of BC event occurrences and the current number of sent bytes are reset.

[0021] In a second aspect, the present application further provides a speed-up logic determination device, the device comprising:

[0022] The expected number of bytes to be sent is calculated by a module for 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;

[0023] The update module is used to execute the speed-up logic when the number of bytes currently sent is greater than the expected number of bytes to be sent.

[0024] In a third aspect, the present application further provides a chip, comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the method described in any one of the above embodiments when executing the computer program.

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

[0026] In a fifth aspect, the present application also provides a computer device, comprising a network interface card as described in any one of the above embodiments, wherein 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 having a computer program stored thereon, and when the computer program is executed by a processor, the steps of the method described in any one of the above embodiments are implemented.

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

[0029] The above-mentioned speed-up logic determination method, device, chip, network interface card, computer equipment, computer-readable storage medium and computer program product 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 cycle parameter. 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. The T event time cycle parameter and the number of bytes to be sent are coupled, which can effectively avoid improper speed increases caused by too low a threshold for the number of bytes to be sent. BRIEF DESCRIPTION OF THE DRAWINGS

[0030] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the drawings required for use in the embodiments of the present application or related technical descriptions will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.

[0031] Figure 1 This is a flow chart of the speed-up and speed-down process of the standard DCQCN algorithm;

[0032] Figure 2 A schematic diagram of an application environment of a method for determining a speed-up logic in an embodiment;

[0033] Figure 3 A schematic diagram of a flow chart of a method for determining a speed-up logic in an embodiment;

[0034] Figure 4 It is a flowchart of a method for determining a speed-up logic in another embodiment;

[0035] Figure 5 It is a schematic block diagram of the structure of a speed-up logic determination device in one embodiment;

[0036] Figure 6 Schematic diagram of the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0037] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with 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.

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

[0039] DCQCN follows the RP-CP-NP model. The Reaction Point (RP), i.e. the data sender, is the main body of the algorithm and is responsible for executing the speed increase or decrease operation. The Congestion Point (CP) marks the data packet of the outgoing port with ECN (Explicit Congestion Notification) by checking the size of the buffer queue. If the queue size is less than k, min , no marking is performed; if the queue size is k min and k max If the queue size is greater than k, probabilistic marking is performed (the marking probability is linearly related to the queue size); if the queue size is greater than k max , then the message is deterministically marked with ECN. When the Notification Point (NP) receives a packet with ECN mark, if it receives an ECN packet of the same flow within the same sampling period (the sampling period is determined based on the speed reduction filter threshold value K), it will ignore it, otherwise it needs to respond with a congestion notification packet (CNP). After receiving the CNP message, the RP determines that the current network is congested and performs a speed reduction operation. The speed reduction is achieved by using the α parameter to quantify the congestion (the larger the α, the higher the congestion level, and vice versa). If the reaction point does not receive a CNP message after the time period (the time period is determined based on the reaction point speed increase filtering threshold Timer) ends (or the number of sent messages exceeds ByteCounter), it is determined that the current network is not congested and the speed increase operation can be performed. The speed increase is divided into three stages: Fast Recovery process, that is, restoring to a rate close to the rate before the speed reduction, Active Increase process, that is, continuing to detect available bandwidth, and Hyper Increase process, that is, more actively detecting available bandwidth.

[0040] The standard DCQCN algorithm speed-up and speed-down process is as follows Figure 1As shown, this application mainly focuses on the speed-up logic of the standard DCQCN algorithm. The speed-up judgment of DCQCN and the speed-up mode it is in depend on the following three factors: (1) whether the T event occurs, that is, whether the CNP message is not received within the Timer time. If it occurs, the T value (the number of times the T event occurs) is increased by 1; (2) whether the BC event occurs, that is, whether more than ByteCounter bytes are sent without receiving the CNP message. If it occurs, the BC value (the number of times the BC event occurs) is increased by 1; (3) the numerical relationship between the T value, the BC value and the speed-up state threshold value F. If the larger value between T and BC 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 active 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; if the smaller value between T and BC is greater than F, the excess active 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, and HAI>AI.

[0041] The speed-up and speed-down related parameter configurations of the standard DCQCN algorithm are listed in Table 1 below. They are all static configuration parameters. Once configured successfully, they will not change automatically during the algorithm operation. Combined with the above, it can be seen that T events and BC events can independently promote fast recovery and actively increase the speed-up process, and the two are decoupled. However, the Timer configuration of the T event is subject to the speed-down filter threshold value K, which cannot be greater than the speed-down filter threshold, and Timer>K.

[0042] Table 1 DCQCN algorithm speed-up and speed-down related parameters

[0043]

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

[0045] Configuring rp_byte_reset (ByteCounter parameter) as a static parameter may lead to improper speed increase. Unlike rp_time_reset (Timer parameter), the setting of rp_byte_reset parameter is not constrained by the speed reduction parameter. Therefore, if rp_byte_reset is set too small, there may be a contradictory situation: the speed is increased due to the triggering of BC events within the K (rp_rate_reduce_monitor_period) period, but the speed needs to be reduced due to the CNP. This repeated speed increase and decrease within the same K period may continue to exist, and congestion may not be effectively alleviated due to the existence of improper speed increase, resulting in algorithm failure.

[0046] The speed increase decision based on the static parameter configuration of rp_time_reset (Timer parameter) may lead to improper speed increase. Although the rp_time_reset parameter setting must follow the principle of being greater than the K parameter and will not face the above problem, the time-based speed increase decision may still lead to 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 CNP within the rp_time_reset time is not that there will be no congestion at the current rate, but that the sending traffic is simply small: r_c>ulp_flow_rate, where ulp_flow_rate is the traffic supply rate of the upper-layer application.

[0047] 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 speed-up and speed-down configuration parameters, these values ​​must be tuned separately under different network conditions (such as 25Gbps network card 200Gbps network card) or business models, and the increase in the number of parameters increases the pressure on tuning complexity exponentially. The current dual speed-up parameter configuration solution is difficult to tune and has poor scalability.

[0048] In order to solve the above technical problems, the present application provides a speed-up logic determination method, which proposes an implicit speed-up determination mechanism based on the number of bytes sent, and designs a dual-constraint speed-up determination strategy based on the coupling of time and the number of bytes sent.

[0049] The speed-up logic determination method provided in the embodiment of the present application can be applied to the following examples: 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 T event is triggered based on the current network rate and the T event time cycle parameter; when the current number of bytes sent is greater than the expected number of bytes to be sent, the number of BC event occurrences is updated, and the current number of bytes sent is the number of bytes sent from the last update time of the number of BC event occurrences to the current time; the speed-up logic is determined based on the relationship between the number of BC event occurrences and the speed-up state threshold value. In this way, the T event time cycle parameter and the number of bytes sent are coupled, and the speed-up logic is determined through double constraints, which can avoid the two types of improper speed increases: "the threshold of the number of bytes sent is too low" and "the supply flow is too small".

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

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

[0052] 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 the rp_time_reset mentioned above.

[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 number threshold, that is, the parameter rp_byte_reset, in order to avoid improper speed-up caused by the independent speed-up judgment of the T event and the BC event, the coupling of the parameters corresponding to the T event and the BC event is realized, and the expected number of bytes to be sent when the T event is triggered is introduced, that is, the expected number of bytes to be sent when the T event is triggered. Therefore, the expected number of bytes to be sent, expected_bytes_sent, can be used to replace the static configuration parameter rp_byte_reset.

[0054] The expected number of bytes sent when the 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: When the number of bytes currently sent is greater than the expected number of bytes to be sent, the number of BC events that occur is updated and the speed-up logic is executed.

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

[0057] When the data sender detects that the number of bytes currently sent exceeds the expected number of bytes expected_bytes_sent, the rate increase logic is executed. In other words, if the expected_bytes_sent number of messages 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 rate increase can be executed.

[0058] Since the update of the number of BC events has included the constraints on the number of sent messages and the time constraint (because the acquisition of the expected number of sent bytes requires the T event time period parameter), the speed-up logic can be simplified to determine if the sent message is greater than expected_bytes_sent (that is, bytes_sent>r_c rp_time_reset), the speed will be increased.

[0059] The advantages of expected_bytes_sent are: first, there is no need to manually set the byte count threshold, reducing the tedious 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 increases during the speed reduction detection period. Fourth, the expected_bytes_sent parameter explicitly expresses the number of sent packets and implicitly includes the time constraint (i.e., rp_time_reset). Therefore, using this threshold can naturally implement a dual-constraint speed increase decision strategy based on the coupling of time and the number of sent packets.

[0060] The above-mentioned speed-up logic determination method obtains 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 cycle parameter. 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. The T event time cycle parameter and the number of bytes to be sent are coupled, which can effectively avoid improper speed increases caused by too low a threshold for the number of bytes to be sent.

[0061] In one of the optional embodiments, before executing the speed-up logic, it also includes: when the current number of bytes sent is greater than the expected number of bytes sent, updating the number of BC events that have occurred, the current number of bytes sent is the number of bytes sent from the last time the number of BC events was updated to the current time; and determining the speed-up logic based on the relationship between the number of BC events that have occurred and the speed-up state threshold value.

[0062] When the current number of bytes sent is greater than the expected number of bytes sent, a BC event is triggered, that is, the number of BC event occurrences is updated. One point that needs to be explained is that the current number of bytes sent is the number of bytes sent from the last update time of the number of BC event occurrences to the current time, that is, each time the number of BC event occurrences is updated, the current number of bytes sent needs to be reset.

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

[0064] The speed-up state threshold value is F mentioned above, that is, the reaction point speed-up state threshold. The corresponding speed-up logic can be determined based on the relationship between the number of BC events and the speed-up state threshold value. In this application, in order to achieve matching with the standard DCQCN algorithm, the speed-up logic of the three stages can be determined based on the relationship between the number of BC events and the speed-up state threshold value.

[0065] In one of the optional embodiments, the speed-up logic is determined based on the relationship between the number of BC events occurring and the speed-up state threshold value, including: when the number of BC events occurring is less than the speed-up state threshold value, the speed-up logic is determined to be a fast recovery logic, and the fast recovery logic is used to restore the network rate to the rate before the speed reduction.

[0066] In one of the optional embodiments, the speed-up logic is determined based on the relationship between the number of BC event occurrences and the speed-up state threshold value, including: when the number of BC event occurrences 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, determining the speed-up logic to be an active increase logic; the active increase logic is used to detect the first available bandwidth.

[0067] In one of the optional embodiments, the speed-up logic is determined based on the relationship between the number of BC event occurrences and the speed-up state threshold value, and also includes: when the number of BC event occurrences is greater than the speed-up state threshold value of a target multiple, determining the speed-up logic to be an 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.

[0068] The fast recovery logic is used to restore the network rate to the rate before the speed reduction. The excess active increase logic is used to detect the first available bandwidth. The excess 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, active increase logic and excess active increase logic can be a linear increase in network rate or a nonlinear increase in network rate. The nonlinear increase in network rate can include a speed increase curve based on a convex function or a speed increase curve based on 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 using 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 using 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 using 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 determined 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 BC value < F, the fast recovery logic is executed; when BC value > 2F, the overactive increase logic is executed; when F < BC value < 2F, the active increase logic is executed.

[0076] In the above - mentioned embodiments, a method for determining the speed - up logic is given. In other embodiments, other methods for determining 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 specific limitations are not made here.

[0077] In one alternative embodiment, the above method further includes: when the currently transmitted byte count is less than or equal to the expected transmitted byte count, waiting for the next speed-up logic determination process.

[0078] In one alternative embodiment, before 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, 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 transmitted byte count 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 transmitted byte count.

[0079] Among them, in combination Figure 4 as shown Figure 4 is a schematic diagram of the three-stage speed-up process of the speed-up logic determination method in an embodiment. In this embodiment, after the data sender completes the transmission 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-up logic process is performed once.

[0080] Among them, first check whether the currently transmitted byte count (bytes_sent) is greater than the expected transmitted byte count (that is, expected_bytes_sent = r_c * rp_time_reset). If not, no speed-up is performed and wait for the next process, that is, wait for the next speed-up logic determination process.

[0081] If the currently transmitted byte count is greater than the expected transmitted byte count, update the BC value, that is, BC = BC + 1, and reset the currently transmitted byte count, for example, set it to 0, and then determine the speed-up 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 excessive proactive increase logic; when F < BC value < 2F, execute the proactive increase logic. And after completing the speed-up 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 transmitted byte count. When a congestion notification message is received, a speed-down operation needs to be performed, and both the number of BC event occurrences and the currently transmitted byte count are set to 0.

[0083] The above speed increase logic determination method does not require the rp_byte_reset parameter, which reduces the amount of parameter adjustment, greatly reduces the difficulty of parameter adjustment, and enhances the scalability of parameter settings. It can be applied to a variety of business models (such as different network card conditions, topologies, and traffic, etc.). It also implements a dual-constraint speed increase determination strategy based on the coupling of time and the number of bytes sent. If only the time condition or the specific number of bytes sent is met, the speed increase will not be performed. The speed increase is performed only when both conditions are met, which can effectively avoid the two types of improper speed increases: too low a threshold for the number of bytes sent and too little supply traffic.

[0084] It should be understood that, although the steps in the flowcharts involved in the above embodiments are displayed in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps is not strictly limited in order, 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, and these steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily carried out in sequence, but can be executed in turn or alternately with other steps or at least a part of the steps or stages in other steps.

[0085] Based on the same inventive concept, the embodiment of the present application also provides a speed-up logic determination device for implementing the speed-up logic determination method involved above. The implementation scheme for solving the problem provided by the device is similar to the implementation scheme recorded in the above method, so the specific limitations in one or more speed-up logic determination device embodiments provided below can refer to the limitations of the speed-up logic determination method above, and will not be repeated here.

[0086] In an exemplary embodiment, Figure 5 As shown, a speed-up logic determination device is provided, including: an expected number of bytes to be sent calculation module 501 and an update module 502, wherein:

[0087] The expected number of bytes to be sent calculation module 501 is used 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;

[0088] The updating module 502 is used to execute the speed-up logic when the number of bytes currently sent is greater than the expected number of bytes to be sent.

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

[0090] An updating module 502 is used to update the number of BC event occurrences when the current number of bytes sent is greater than the expected number of bytes sent, where the current number of bytes sent is the number of bytes sent from the last update time of the number of BC event occurrences to the current time;

[0091] The speed-up logic determination module is used to determine the speed-up logic based on the relationship between the number of BC events and the speed-up state threshold value.

[0092] In one of the optional embodiments, the speed-up logic determination module is specifically used to determine that the speed-up logic is a fast recovery logic when the number of BC events occurring is less than the speed-up state threshold value. The fast recovery logic is used to restore the network rate to the rate before the speed reduction.

[0093] In one of the optional embodiments, the above-mentioned speed-up logic determination module is specifically used to determine that the speed-up logic is an active increase logic 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 target multiple of the speed-up state threshold value; the active increase logic is used to detect the first available bandwidth.

[0094] In one of the optional embodiments, the above-mentioned speed-up logic determination module is specifically used to determine that the speed-up logic is an excess active increase logic when the number of BC events occurring is greater than the speed-up state threshold value of the target multiple; 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.

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

[0096] The loop module is used to wait for the next speed-up logic judgment process when the number of bytes currently sent is less than or equal to the expected number of bytes to be sent.

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

[0098] The congestion judgment module is used to continue 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 if 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 that have occurred and the current number of bytes sent if 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-mentioned modules can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a 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, wherein the memory stores a computer program, and the processor implements the steps of the method described in any of the above embodiments when executing the computer program. The chip may be a data processing unit (DPU) chip, or other chips for processing data.

[0101] The present application also provides a network interface card, comprising a chip and multiple interfaces as described in any of the above embodiments, wherein the interface may include a PCI / PCIE interface, an I / O interface such as UART / USB / I2C / SPI / GPIO, etc., and the chip processes data or communicates externally through the interface.

[0102] In an exemplary embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as shown in FIG. Figure 6 As shown. The computer device includes a processor, a memory, an input / output interface, a network interface card, a display unit and an input device. 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. 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 an external device. The network interface card of the computer device is used to process data or communicate with an external terminal in a wired or wireless manner, and 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, and the input device of the computer device can be a touch layer covering the display screen, or a button, trackball or touchpad set on the computer device shell, or an external keyboard, touchpad or mouse.

[0103] Those skilled in the art will understand that Figure 6 The structure shown in the figure is only a block diagram of a part of the structure 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 certain components, or have a different arrangement of components.

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

[0105] In an exemplary embodiment, a computer device is provided, including a memory and a processor, wherein a computer program is stored in the memory, and the processor implements the following steps when executing the computer program: based on the current network rate and the T event time period parameter, obtaining the expected number of bytes to be sent when the T event is triggered; and executing the speed increase logic when the current number of bytes sent is greater than the expected number of bytes to be sent.

[0106] In one embodiment, before the execution speed-up logic implemented by the processor when executing the computer program, it also includes: when the current number of bytes sent is greater than the expected number of bytes sent, updating the number of BC events that have occurred, the current number of bytes sent is the number of bytes sent from the last update time of the number of BC events to the current time; determining the speed-up logic based on the relationship between the number of BC events that have occurred and the speed-up state threshold value.

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

[0108] In one embodiment, the speed-up logic determined based on the relationship between the number of BC event occurrences and the speed-up state threshold value implemented when the processor executes a computer program includes: when the number of BC event occurrences 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, determining that the speed-up logic is an active increase logic; the active increase logic is used to detect the first available bandwidth.

[0109] In one embodiment, the speed-up logic determined based on the relationship between the number of BC event occurrences and the speed-up state threshold value implemented when the processor executes a computer program also includes: when the number of BC event occurrences is greater than the speed-up state threshold value of a target multiple, determining the speed-up logic to be an excess active increase logic; the excess active increase logic is used to detect a 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 cycle parameter, the method implemented by the processor when executing a computer program also includes: when no congestion notification message is received at the end of the time period corresponding to the T event time cycle 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 cycle parameter; when a congestion notification message is received at the end of the time period corresponding to the T event time cycle parameter, resetting the number of BC event occurrences and the current number of bytes 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: based on the current network rate and the T event time period parameter, the expected number of bytes to be sent when the expected T event is triggered is obtained; when the current number of bytes sent is greater than the expected number of bytes to be sent, the speed increase logic is executed.

[0112] In one embodiment, before the execution speed-up logic implemented when the computer program is executed by the processor, it also includes: when the current number of bytes sent is greater than the expected number of bytes sent, updating the number of BC events that have occurred, the current number of bytes sent is the number of bytes sent from the last update time of the number of BC events to the current time; determining the speed-up logic based on the relationship between the number of BC events that have occurred and the speed-up state threshold value.

[0113] In one embodiment, the computer program implemented when executed by the processor determines the speed-up logic based on the relationship between the number of BC event occurrences and the speed-up state threshold value, including: when the number of BC event occurrences is less than the speed-up state threshold value, determining the speed-up logic as fast recovery logic, and the fast recovery logic is used to restore the network rate to the rate before the speed reduction.

[0114] In one embodiment, the computer program implemented when being executed by a processor determines the speed-up logic based on the relationship between the number of BC event occurrences and the speed-up state threshold value, including: when the number of BC event occurrences 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, determining the speed-up logic to be an active increase logic; the active increase logic is used to detect the first available bandwidth.

[0115] In one embodiment, the computer program implemented when being executed by a processor determines the speed-up logic based on the relationship between the number of BC event occurrences and the speed-up state threshold value, and also includes: when the number of BC event occurrences is greater than the speed-up state threshold value of a target multiple, determining the speed-up logic to be an excess active increase logic; the excess active increase logic is used to detect a second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

[0116] In one embodiment, the computer program implemented when executed by the processor also 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 expected T event is triggered based on the current network rate and the T event time period parameter; and 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 current number of bytes sent.

[0117] In one embodiment, a computer program product is provided, including a computer program, which, when executed by a processor, implements the following steps: based on the current network rate and the T event time period parameter, obtains the expected number of bytes to be sent when the T event is expected to be triggered; and when the current number of bytes sent is greater than the expected number of bytes to be sent, executes the speed increase logic.

[0118] In one embodiment, before the execution speed-up logic implemented when the computer program is executed by the processor, it also includes: when the current number of bytes sent is greater than the expected number of bytes sent, updating the number of BC events that have occurred, the current number of bytes sent is the number of bytes sent from the last update time of the number of BC events to the current time; determining the speed-up logic based on the relationship between the number of BC events that have occurred and the speed-up state threshold value.

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

[0120] In one embodiment, the computer program implemented when being executed by a processor determines the speed-up logic based on the relationship between the number of BC event occurrences and the speed-up state threshold value, including: when the number of BC event occurrences 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, determining the speed-up logic to be an active increase logic; the active increase logic is used to detect the first available bandwidth.

[0121] In one embodiment, the computer program implemented when being executed by a processor determines the speed-up logic based on the relationship between the number of BC event occurrences and the speed-up state threshold value, and also includes: when the number of BC event occurrences is greater than the speed-up state threshold value of a target multiple, determining the speed-up logic to be an excess active increase logic; the excess active increase logic is used to detect a second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

[0122] In one embodiment, the computer program implemented when executed by the processor also 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 expected T event is triggered based on the current network rate and the T event time period parameter; and 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 current number of bytes sent.

[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 used 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 must comply with relevant regulations.

[0124] A person of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment method can be completed by instructing the relevant hardware through a computer program, and 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-mentioned methods. Among them, any reference to the 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), magnetic 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. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The database involved in each embodiment provided in this application may include at least one of a relational database and a non-relational database. Non-relational databases may include distributed databases based on blockchains, etc., but are not limited to this. The processor involved in each embodiment provided in this application may be a general-purpose processor, a central processing unit, a graphics processor, a digital signal processor, a programmable logic device, a data processing logic device based on quantum computing, an artificial intelligence (AI) processor, etc., but are not limited to this.

[0125] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, 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, they should be considered to be within the scope of this application.

[0126] The above-described embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the present application. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the attached claims.

Claims

1. A method for determining a speed-up logic, characterized in that: The method comprises: Based on the current network rate and the T event time period parameter, the expected number of bytes to be sent when the T event is triggered is obtained; When the number of bytes currently sent is greater than the expected number of bytes to be sent, the speed-up logic is executed.

2. The method according to claim 1, characterized in that Before executing the speed-up logic, the method further includes: When the current number of bytes sent is greater than the expected number of bytes sent, the number of BC event occurrences is updated, where the current number of bytes sent is the number of bytes sent from the last time the number of BC event occurrences was updated 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.

3. The method according to claim 2, characterized in that The determining of the speed-up logic based on the relationship between the number of occurrences of the BC events and the speed-up state threshold value includes: When the number of BC events occurring is less than the speed-up state threshold, the speed-up logic is determined to be a fast recovery logic, and the fast recovery logic is used to restore the network rate to the rate before the speed reduction.

4. The method according to claim 2, characterized in that: The determining of the speed-up logic based on the relationship between the number of occurrences of the BC events and the speed-up state threshold value 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 target multiple of the speed-up state threshold value, the speed-up logic is determined to be an active increase logic; the active increase logic is used to detect the first available bandwidth.

5. The method according to claim 4, characterized in that The determining of the speed-up logic based on the relationship between the number of occurrences of the BC events and the speed-up state threshold value also includes: When the number of BC events occurring is greater than the speed-up state threshold value of the target multiple, the speed-up logic is determined to be an excess active increase logic; the excess active increase logic is used to detect a second available bandwidth, and the second available bandwidth is greater than the first available bandwidth.

6. The method according to any one of claims 2 to 4, 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, the method further includes: If 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 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, the number of BC event occurrences and the current number of sent bytes are reset.

7. A speed-up logic determination device, characterized in that: The device comprises: The expected number of bytes to be sent is calculated by a module for 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; The update module is used to execute the speed-up logic when the number of bytes currently sent is greater than the expected number of bytes to be sent.

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: It 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

  • Method and system for network congestion management

    CN101582852A

  • Rate optimized congestion management

    CN114145001A

  • Bandwidth detection method and device, electronic equipment and storage medium

    CN116566919A

  • Congestion control method and device

    CN117061438A

  • Congestion control method, device, medium and program product

    CN117579556A