Congestion control method, device, equipment, medium and product
Through RTT measurement and preset transmission rate algorithm, the problem of existing congestion control algorithms depend on switch waterline configuration is solved, and more efficient and reliable congestion control is achieved, reducing the difficulty of deployment and tuning.
Patent Information
- Application Number
- CN202411018071.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-26
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2044-07-26
AI Technical Summary
The existing congestion control algorithms rely heavily on switch waterline configuration, which makes it difficult to tune in large-scale networking of intelligent computing centers, which easily leads to network congestion.
By sending an RTT measurement request to the network card, the network congestion status is determined based on the sending and receiving time information in the RTT measurement response message, and the new transmission rate is calculated according to the preset transmission rate algorithm and feedback is feedback to the network card, reducing the dependence on the switch waterline configuration.
It greatly reduces the difficulty of hyperparameter adjustment in the congestion control scheme, improves the reliability and timeliness of congestion control, and simplifies the deployment and tuning process.
Smart Images

Figure CN118555251B_ABST
Abstract
Description
Background Art
[0002] Currently, the most widely used congestion control algorithm in commercial network cards is DCQCN, which was proposed by Microsoft in 2015. This algorithm uses Explicit Congestion Control (ECN) as a signal to identify and handle congestion.
[0003] In the related art, DCQCN relies on the switch marking ECN signal for speed regulation. The random early detection (RED) strategy it uses starts marking only when the queue reaches above Kmin, and the ECN marking probability jumps to 1 when the switch queue is greater than Kmax.
[0004] However, the above congestion control scheme not only requires the switch to have accurate configuration of Kmin and Kmax waterlines, but also requires frequent modification and optimization of the switch waterlines for scenarios with requirements for latency and throughput. In the large-scale networking of the intelligent computing center, if there is a switch waterline configuration error, it will slow down the training performance and is extremely difficult to troubleshoot, which may lead to serious network congestion.
[0005] It should be noted that the information disclosed in the above background technology section is only used to enhance the understanding of the background of the present disclosure, and therefore may include information that does not constitute the prior art known to ordinary technicians in the field. Summary of the invention
[0006] The purpose of the present disclosure is to provide a congestion control method, apparatus, device, medium and product, which are used to overcome the problems such as unreliable congestion control schemes caused by the limitations and defects of related technologies, at least to a certain extent.
[0007] According to the first aspect of an embodiment of the present disclosure, a congestion control method is provided, comprising: sending an RTT measurement request to a network card, and determining the congestion state of the network based on the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request; determining a new transmission rate based on a preset transmission rate algorithm corresponding to the congestion state, and feeding back the new transmission rate to the network card.
[0008] In an exemplary embodiment of the present disclosure, sending an RTT measurement request to a network card, and determining the congestion state of the network according to the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request includes:
[0009] Sending the RTT measurement request to the network card, and recording the sending time of the RTT measurement request as the first time;
[0010] In response to the RTT measurement response message fed back by the network card, parsing a second time and a third time in the RTT measurement response message, wherein the second time is the time when the network card receives the RTT measurement request, and the third time is the event when the network card sends the RTT measurement response message;
[0011] Recording the time of receiving the RTT measurement response message and recording it as the fourth time;
[0012] The congestion state of the network is determined according to the first time, the second time, the third time, and the fourth time.
[0013] In an exemplary embodiment of the present disclosure, determining the congestion state of the network according to the first time, the second time, the third time, and the fourth time includes:
[0014] Determine a baseline RTT, a target RTT, and a predicted RTT according to the first time, the second time, the third time, and the fourth time;
[0015] The congestion state of the network is determined based on the magnitude relationship among the baseline RTT, the target RTT, and the predicted RTT.
[0016] In an exemplary embodiment of the present disclosure, determining the baseline RTT, the target RTT, and the predicted RTT according to the first time, the second time, the third time, and the fourth time includes:
[0017] Calculate the first time, the second time, the third time, and the fourth time according to a first preset algorithm, and determine the calculation result as the path RTT;
[0018] Calculate the second time and the third time according to a second preset algorithm, and determine the calculation result as the remote delay RTT;
[0019] Determine the baseline RTT according to the smaller value of the path RTT calculated last time in the historical record and the remote delay RTT calculated last time in the historical record;
[0020] Determine the target RTT according to the baseline RTT, the current transmission rate and a preset target delay factor, wherein the target RTT includes a path target RTT and / or a remote delay target RTT;
[0021] The predicted RTT is determined according to the current RTT, the previous RTT, the current fourth time and the previous fourth time, where the predicted RTT includes the path predicted RTT and / or the remote delay predicted RTT.
[0022] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT includes:
[0023] Comparing the size relationship between the current path RTT and the path target RTT, and recording the comparison result as a first size relationship;
[0024] Comparing the size relationship between the path prediction RTT and the path target RTT, and recording the comparison result as a second size relationship;
[0025] A congestion state of the network required for calculating a path rate is determined according to the first size relationship and the second size relationship.
[0026] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT includes:
[0027] Comparing the magnitude relationship between the current remote delay RTT and the remote delay target RTT, and recording the comparison result as a third magnitude relationship;
[0028] Comparing the magnitude relationship between the remote delay prediction RTT and the remote delay target RTT, and recording the comparison result as a fourth magnitude relationship;
[0029] The congestion state of the network required for calculating the far-end delay rate is determined according to the third size relationship and the fourth size relationship.
[0030] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT includes:
[0031] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0032] If it is determined that the current RTT is less than the target RTT, and it is determined that the predicted RTT is less than the target RTT, then the congestion state of the network is determined to be a first congestion state.
[0033] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT further includes:
[0034] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0035] If it is determined that the current RTT is greater than or equal to the target RTT, and it is determined that the predicted RTT is less than the target RTT, then the congestion state of the network is determined to be a second congestion state.
[0036] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT further includes:
[0037] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0038] If it is determined that the current RTT is less than the target RTT, and it is determined that the predicted RTT is greater than or equal to the target RTT, then the congestion state of the network is determined to be a third congestion state.
[0039] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT further includes:
[0040] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0041] If it is determined that the current RTT is greater than or equal to the target RTT, and it is determined that the predicted RTT is greater than or equal to the target RTT, then the congestion state of the network is determined to be a fourth congestion state.
[0042] In an exemplary embodiment of the present disclosure, determining a new transmission rate according to a preset transmission rate algorithm corresponding to the congestion state, and feeding back the new transmission rate to the network card includes:
[0043] Obtaining a preset first acceleration factor, a second acceleration factor, and a deceleration factor;
[0044] Calculate the remote delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the deceleration factor according to the preset transmission rate algorithm corresponding to the congestion state, respectively, wherein the current rate includes the current path rate and the current remote delay rate;
[0045] A new transmission rate is determined according to the smaller rate between the remote delay rate and the path rate, and the new transmission rate is fed back to the network card.
[0046] In an exemplary embodiment of the present disclosure, respectively calculating the far-end delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes:
[0047] If it is determined that the congestion state is the first congestion state, summing the current rate and the first acceleration factor according to a first preset transmission rate algorithm;
[0048] The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
[0049] In an exemplary embodiment of the present disclosure, respectively calculating the far-end delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes:
[0050] If it is determined that the congestion state is the second congestion state, summing the current rate and the second acceleration factor according to a second preset transmission rate algorithm;
[0051] The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
[0052] In an exemplary embodiment of the present disclosure, respectively calculating the far-end delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes:
[0053] If it is determined that the congestion state is the third congestion state, summing the current rate and the first acceleration factor of a specified proportion according to a third preset transmission rate algorithm;
[0054] The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
[0055] In an exemplary embodiment of the present disclosure, respectively calculating the far-end delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes:
[0056] If it is determined that the congestion state is the fourth congestion state, performing a specified calculation on the current rate, the speed reduction factor, the baseline RTT, the predicted RTT, and the target RTT according to a fourth preset transmission rate algorithm;
[0057] The far-end delay rate and the path rate are calculated respectively according to the results of the specified calculation.
[0058] According to a second aspect of an embodiment of the present disclosure, there is provided a congestion control device, including:
[0059] The measurement module is configured to send an RTT measurement request to the network card, and determine the congestion state of the network according to the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request;
[0060] The feedback module is configured to determine a new transmission rate according to a preset transmission rate algorithm corresponding to the congestion state, and feed back the new transmission rate to the network card.
[0061] According to a third aspect of the present disclosure, there is provided an electronic device, comprising: a memory; and a processor coupled to the memory, wherein the processor is configured to execute any one of the methods described above based on instructions stored in the memory.
[0062] According to a fourth aspect of the present disclosure, a computer-readable storage medium is provided, on which a program is stored, and when the program is executed by a processor, the congestion control method as described in any one of the above items is implemented.
[0063] According to a fifth aspect of the present disclosure, a computer program product is provided, comprising a computer program, wherein the computer program implements any of the above-described congestion control methods when executed by a processor.
[0064] The disclosed embodiment sends an RTT measurement request to the network card, determines the congestion state of the network according to the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request, and then determines a new transmission rate according to a preset transmission rate algorithm corresponding to the congestion state, and feeds back the new transmission rate to the network card, thereby solving the problem of the strong dependence of the commercial DCQCN algorithm on the switch waterline configuration, greatly reducing the hyperparameters in the congestion control scheme, and achieving optimal performance for different services through simple configuration. On the premise of improving the reliability and timeliness of the congestion control scheme, the difficulty of deploying and tuning the congestion control algorithm is greatly reduced.
[0065] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0066] The accompanying drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present disclosure, and together with the specification are used to explain the principles of the present disclosure. Obviously, the accompanying drawings described below are only some embodiments of the present disclosure, and for ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without creative work.
[0067] Figure 1 A schematic diagram showing an exemplary system architecture to which the congestion control solution of the embodiments of the present disclosure can be applied;
[0068] Figure 2 is a flow chart of a congestion control method in an exemplary embodiment of the present disclosure;
[0069] Figure 3 is an architectural diagram of a congestion control solution in an exemplary embodiment of the present disclosure;
[0070] Figure 4 is an interaction diagram of a congestion control scheme in an exemplary embodiment of the present disclosure;
[0071] Figure 5 is a flow chart of another congestion control method in an exemplary embodiment of the present disclosure;
[0072] Figure 6 is a flow chart of another congestion control method in an exemplary embodiment of the present disclosure;
[0073] Figure 7 is a block diagram of a congestion control device in an exemplary embodiment of the present disclosure;
[0074] Figure 8 is a block diagram of an electronic device in an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION
[0075] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as being limited to the examples set forth herein; on the contrary, these embodiments are provided so that the present disclosure will be more comprehensive and complete, and the concepts of the example embodiments are fully conveyed to those skilled in the art. The described features, structures, or characteristics may be combined in one or more embodiments in any suitable manner. In the following description, many specific details are provided to provide a full understanding of the embodiments of the present disclosure. However, those skilled in the art will appreciate that the technical solutions of the present disclosure may be practiced while omitting one or more of the specific details, or other methods, components, devices, steps, etc. may be adopted. In other cases, known technical solutions are not shown or described in detail to avoid obscuring various aspects of the present disclosure.
[0076] In addition, the accompanying drawings are only schematic diagrams of the present disclosure, and the same reference numerals in the drawings represent the same or similar parts, so their repeated description will be omitted. Some of the block diagrams shown in the accompanying drawings are functional entities, which do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in one or more hardware modules or integrated circuits, or implemented in different networks and / or processor devices and / or microcontroller devices.
[0077] The following terms involved in the embodiments of the present disclosure are described as shown in Table 1:
[0078] Table 1
[0079]
[0080] Figure 1 A schematic diagram showing an exemplary system architecture to which the congestion control solution of the embodiments of the present disclosure can be applied.
[0081] like Figure 1 As shown, the system architecture 100 may include one or more of terminal devices 101, 102, 103, a network 104, and a server 105. The network 104 is used to provide a medium for communication links between the terminal devices 101, 102, 103 and the server 105. The network 104 may include various connection types, such as wired, wireless communication links, or optical fiber cables, etc.
[0082] It should be understood that Figure 1 The number of terminal devices, networks and servers in the embodiment is only for illustration. According to the implementation requirements, there may be any number of terminal devices, networks and servers. For example, the server 105 may be a server cluster composed of multiple servers.
[0083] Users can use terminal devices 101, 102, 103 to interact with server 105 through network 104 to receive or send messages, etc. Terminal devices 101, 102, 103 can be various electronic devices with display screens, including but not limited to smart phones, tablet computers, portable computers, desktop computers, etc.
[0084] In some embodiments, the congestion control method provided by the embodiments of the present disclosure is generally executed by the server 105. Accordingly, the congestion control device is generally arranged in the terminal device 103 (or the terminal device 101 or 102). In other embodiments, some terminals may have functions similar to those of the server device to execute the method.
[0085] The exemplary embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.
[0086] Figure 2 is a flow chart of a congestion control method in an exemplary embodiment of the present disclosure.
[0087] refer to Figure 2 , congestion control methods may include:
[0088] Step S202, sending an RTT measurement request to the network card, and determining the network congestion state according to the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request;
[0089] Step S204: determining a new transmission rate according to a preset transmission rate algorithm corresponding to the congestion state, and feeding back the new transmission rate to the network card.
[0090] The disclosed embodiment sends an RTT measurement request to the network card, determines the congestion state of the network according to the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request, and then determines a new transmission rate according to a preset transmission rate algorithm corresponding to the congestion state, and feeds back the new transmission rate to the network card, thereby solving the problem of the strong dependence of the commercial DCQCN algorithm on the switch waterline configuration, greatly reducing the hyperparameters in the congestion control scheme, and achieving optimal performance for different services through simple configuration. On the premise of improving the reliability and timeliness of the congestion control scheme, the difficulty of deploying and tuning the congestion control algorithm is greatly reduced.
[0091] Next, each step of the congestion control method is described in detail.
[0092] In an exemplary embodiment of the present disclosure, sending an RTT measurement request to a network card, and determining the congestion state of the network according to the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request includes:
[0093] Sending the RTT measurement request to the network card, and recording the sending time of the RTT measurement request as the first time;
[0094] In response to the RTT measurement response message fed back by the network card, parsing a second time and a third time in the RTT measurement response message, wherein the second time is the time when the network card receives the RTT measurement request, and the third time is the event when the network card sends the RTT measurement response message;
[0095] Recording the time of receiving the RTT measurement response message and recording it as the fourth time;
[0096] The congestion state of the network is determined according to the first time, the second time, the third time, and the fourth time.
[0097] In an exemplary embodiment of the present disclosure, determining the congestion state of the network according to the first time, the second time, the third time, and the fourth time includes:
[0098] Determine a baseline RTT, a target RTT, and a predicted RTT according to the first time, the second time, the third time, and the fourth time;
[0099] The congestion state of the network is determined based on the magnitude relationship among the baseline RTT, the target RTT, and the predicted RTT.
[0100] In an exemplary embodiment of the present disclosure, the congestion state of the network is divided into four states according to the first time, the second time, the third time and the fourth time, as shown in Table 2, specifically including network unobstructed, congestion is about to be relieved, congestion is about to occur and congestion is aggravated, but not limited to this.
[0101] Table 2
[0102]
[0103] In an exemplary embodiment of the present disclosure, determining the baseline RTT, the target RTT, and the predicted RTT according to the first time, the second time, the third time, and the fourth time includes:
[0104] Calculate the first time, the second time, the third time, and the fourth time according to a first preset algorithm, and determine the calculation result as the path RTT;
[0105] Calculate the second time and the third time according to a second preset algorithm, and determine the calculation result as the remote delay RTT;
[0106] Determine the baseline RTT according to the smaller value of the path RTT calculated last time in the historical record and the remote delay RTT calculated last time in the historical record;
[0107] Determine the target RTT according to the baseline RTT, the current transmission rate and a preset target delay factor, wherein the target RTT includes a path target RTT and / or a remote delay target RTT;
[0108] The predicted RTT is determined according to the current RTT, the previous RTT, the current fourth time and the previous fourth time, where the predicted RTT includes the path predicted RTT and / or the remote delay predicted RTT.
[0109] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT includes:
[0110] Comparing the size relationship between the current path RTT and the path target RTT, and recording the comparison result as a first size relationship;
[0111] Comparing the size relationship between the path prediction RTT and the path target RTT, and recording the comparison result as a second size relationship;
[0112] A congestion state of the network required for calculating a path rate is determined according to the first size relationship and the second size relationship.
[0113] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT includes:
[0114] Comparing the magnitude relationship between the current remote delay RTT and the remote delay target RTT, and recording the comparison result as a third magnitude relationship;
[0115] Comparing the magnitude relationship between the remote delay prediction RTT and the remote delay target RTT, and recording the comparison result as a fourth magnitude relationship;
[0116] The congestion state of the network required for calculating the far-end delay rate is determined according to the third size relationship and the fourth size relationship.
[0117] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT includes:
[0118] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0119] If it is determined that the current RTT is less than the target RTT, and it is determined that the predicted RTT is less than the target RTT, then the congestion state of the network is determined to be a first congestion state.
[0120] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT further includes:
[0121] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0122] If it is determined that the current RTT is greater than or equal to the target RTT, and it is determined that the predicted RTT is less than the target RTT, then the congestion state of the network is determined to be a second congestion state.
[0123] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT further includes:
[0124] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0125] If it is determined that the current RTT is less than the target RTT, and it is determined that the predicted RTT is greater than or equal to the target RTT, then the congestion state of the network is determined to be a third congestion state.
[0126] In an exemplary embodiment of the present disclosure, determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT further includes:
[0127] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0128] If it is determined that the current RTT is greater than or equal to the target RTT, and it is determined that the predicted RTT is greater than or equal to the target RTT, then the congestion state of the network is determined to be a fourth congestion state.
[0129] In an exemplary embodiment of the present disclosure, determining a new transmission rate according to a preset transmission rate algorithm corresponding to the congestion state, and feeding back the new transmission rate to the network card includes:
[0130] Obtaining a preset first acceleration factor, a second acceleration factor, and a deceleration factor;
[0131] Calculate the remote delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the deceleration factor according to the preset transmission rate algorithm corresponding to the congestion state, respectively, wherein the current rate includes the current path rate and the current remote delay rate;
[0132] A new transmission rate is determined according to the smaller rate between the remote delay rate and the path rate, and the new transmission rate is fed back to the network card.
[0133] In an exemplary embodiment of the present disclosure, respectively calculating the far-end delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes:
[0134] If it is determined that the congestion state is the first congestion state, summing the current rate and the first acceleration factor according to a first preset transmission rate algorithm;
[0135] The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
[0136] In an exemplary embodiment of the present disclosure, respectively calculating the far-end delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes:
[0137] If it is determined that the congestion state is the second congestion state, summing the current rate and the second acceleration factor according to a second preset transmission rate algorithm;
[0138] The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
[0139] In an exemplary embodiment of the present disclosure, respectively calculating the far-end delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes:
[0140] If it is determined that the congestion state is the third congestion state, summing the current rate and the first acceleration factor of a specified proportion according to a third preset transmission rate algorithm;
[0141] The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
[0142] In an exemplary embodiment of the present disclosure, respectively calculating the far-end delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes:
[0143] If it is determined that the congestion state is the fourth congestion state, performing a specified calculation on the current rate, the speed reduction factor, the baseline RTT, the predicted RTT, and the target RTT according to a fourth preset transmission rate algorithm;
[0144] The far-end delay rate and the path rate are calculated respectively according to the results of the specified calculation.
[0145] In an exemplary embodiment of the present disclosure, Figure 3 and Figure 4As shown, the granularity of the transmission rate adjustment can be to control each packet, or to control a group of data consisting of multiple packets (called a burst), but is not limited thereto.
[0146] In an exemplary embodiment of the present disclosure, it is assumed that the current network topology is 10:1 incast.
[0147] In an exemplary embodiment of the present disclosure, the bandwidth of each link is 100 Gbps, and the basic delay on each hop link is 1 us.
[0148] In an exemplary embodiment of the present disclosure, each of the 10 sending nodes simultaneously sends a 1 GB stream (RDMA send), constituting a typical incast scenario.
[0149] In an exemplary embodiment of the present disclosure, data from each sender starts to be sent at a line rate of R=100 Gbps.
[0150] In an exemplary embodiment of the present disclosure, four hyperparameters are involved: W is the target delay factor, which can be configured to be 4.
[0151] In an exemplary embodiment of the present disclosure, since the theoretical link RTT of the current topology is 4 hops×1us=4us, in order to make the current rate Rc have a more significant impact on the calculation result when calculating the targetRTT, W may also be increased.
[0152] In an exemplary embodiment of the present disclosure, configuring a larger W can enable the algorithm to more actively seize idle bandwidth, which is suitable for scenarios with significant high throughput requirements.
[0153] In an exemplary embodiment of the present disclosure, configuring a smaller W can enable the algorithm to relieve congestion faster, which is suitable for scenarios with significant low latency requirements.
[0154] In an exemplary embodiment of the present disclosure, AI is an acceleration factor and can be configured as 50 Mbps.
[0155] In an exemplary embodiment of the present disclosure, HAI is a fast acceleration factor and can be configured as 500 Mbps.
[0156] In an exemplary embodiment of the present disclosure, G is a speed reduction factor and can be configured as 0.3.
[0157] It should be noted that the specific configuration values of the above four hyperparameters are only examples, but not limited to them.
[0158] In an exemplary embodiment of the present disclosure, Figure 3 and Figure 4As shown, based on the embodiment of the present disclosure, the congestion point (CP) 304 is configured with a waterline, and the perception and regulation of the link congestion state can be achieved through the collaboration of the sender (Reaction Point, RP, also known as the responder) 302 and the receiver (Notification Point, NP, also known as the notifier) 306. The difficulty of existing network deployment and the risk of configuration errors are greatly reduced.
[0159] The sender RP 302: When the RTT measurement module sends a data message for the first time, it requests the local network card hardware to carry an RTT detection message, and then requests a new RTT detection message again after receiving the RTT response message.
[0160] Local network card hardware: sends an RTT detection packet and records the sending time t1 in the message.
[0161] Remote network card hardware: receives the RTT detection packet, generates an RTT response packet, and records in the message the time t2 when the request is received and the time t3 when the response is sent.
[0162] Local network card hardware: receives the RTT response packet and records the time t4 when the response is received in the message.
[0163] In an exemplary embodiment of the present disclosure, the RTT measurement module of the sender RP 302 parses the RTT response packet, obtains t1, t2, t3, and t4, and writes them into the rate control module context.
[0164] In an exemplary embodiment of the present disclosure, the rate control module working in the sender RP 302 calculates the link delay pathRTT, the remote delay remoteDelay, the target link delay (the link part in targetRTT, targetPathRTT), the target remote delay (the remote delay part in targetRTT, targetRemoteDelay), the predicted link delay (the link part predPathRTT in predRTT), and the predicted remote delay (the remote part predRemoteDelay in predRTT) according to the algorithm in the technical solution.
[0165] In an exemplary embodiment of the present disclosure, the rate control module working in the sender RP 302 calculates which of the four congestion states the link and the remote end correspond to at the current moment according to the algorithm in the technical solution, and performs acceleration and deceleration operations according to the correspondence between the congestion state and the acceleration and deceleration algorithm.
[0166] In an exemplary embodiment of the present disclosure, the rate control module working in the sender RP 302 obtains the calculation results corresponding to the link congestion state and the calculation results corresponding to the remote congestion state respectively, and takes the minimum value of the two as the result of this calculation, and sends the rate to the local network card hardware.
[0167] In an exemplary embodiment of the present disclosure, after receiving the rate, the local network card hardware sends the data packet at the specified rate the next time it sends the data packet.
[0168] In an exemplary embodiment of the present disclosure, after multiple rounds of iterations, the sending rate of each sender in this embodiment will stabilize at about 10 Gbps.
[0169] In an exemplary embodiment of the present disclosure, Figure 5 As shown in FIG. 1 , the architecture of the congestion control solution is constructed by the RTT measurement module, the local network card hardware, the remote network card hardware and the rate control module, which specifically includes the following steps:
[0170] Step S502: The RTT measurement module is responsible for sending an RTT measurement request to the network card and recording the measurement result.
[0171] Step S504: the local network card hardware sends an RTT detection packet and records the sending time t1 in the packet.
[0172] Step S506: The remote network card hardware receives the RTT detection packet, generates an RTT response packet, and records in the message the time t2 when the request is received and the time t3 when the response is sent.
[0173] Step S508, the local network card hardware receives the RTT response packet and records the time t4 of receiving the response in the message.
[0174] Step S510: The rate control module starts sending at the line rate and reads the RTT measurement result.
[0175] Step S512: The rate control module calculates the current network congestion state according to the timestamps at each moment in the RTT response message, obtains a new sending rate, and informs the network card to send data at the new rate for the next time.
[0176] In an exemplary embodiment of the present disclosure, Figure 6 As shown, determining a new transmission rate according to the smaller value of the path rate and the rate of the far-end delay includes the following steps:
[0177] Step S602: RTT measurement event is completed, including the above t1, t2, t3 and t4, but not limited thereto.
[0178] Step S604, calculating the rate corresponding to the path RTT, including: calculating the current pathRTT; calculating the target pathRTT and predicting the pathRTT; matching the four congestion stages and adjusting the speed; calculating the transmission rate according to the path delay.
[0179] Step S606, calculating the rate corresponding to the remote delay RTT, including: calculating the current remoteDelay; calculating the target remoteDelay and predicting the remoteDelay; matching the four congestion stages and adjusting the speed; calculating the transmission rate according to the path delay.
[0180] Step S608: Take the smaller value of the transmission rate calculated in step S604 and the transmission rate calculated in step S606 as the new transmission rate and send it to the hardware of the network card.
[0181] In an exemplary embodiment of the present disclosure, the calculation of path RTT and remote delay is calculated by the timestamp in the RTT response message. Path RTT and remote delay are calculated at the same time, and the minimum value of the rates calculated by the two is taken as the final result.
[0182] In an exemplary embodiment of the present disclosure, the baseRTT is obtained as follows: baseRTT consists of two parts, corresponding to the delay on the link and the remote host. After the QP link is established, it is obtained by continuously taking the minimum value of pathRTT and remotedelay. Specifically, the minimum value can be updated using the EWMA algorithm.
[0183] In an exemplary embodiment of the present disclosure, the target RTT (targetRTT) is calculated as follows: based on the measured baseRTT, according to the current rate Rc, Increase in inverse proportion.
[0184] In an exemplary embodiment of the present disclosure, the predicted RTT (predRTT) is calculated based on the current and last RTTs, and the timestamps of the current and last received RTT responses.
[0185] In an exemplary embodiment of the present disclosure, the speed regulation algorithms for four congestion states include:
[0186] ;
[0187] ;
[0188] ;
[0189] ;
[0190] General acceleration ;
[0191] Fast acceleration ;
[0192] Slow Acceleration ;
[0193] slow down ;
[0194] in, is the current RTT, For the last predicted RTT, The timestamp of the current RTT response received. is the timestamp of the last RTT response received, W is the target delay factor, AI is the acceleration factor (i.e. the first acceleration factor), HAI is the fast acceleration factor (i.e. the second acceleration factor), and G is the speed reduction factor.
[0195] In summary, compared with the prior art, the above embodiments of the present disclosure have the following main advantages:
[0196] 1. Greatly reduce the difficulty of existing network deployment: Design a congestion control solution based on RTT, which can avoid dependence on switch waterline configuration. Through the collaboration between the sender and the receiver, the link congestion status can be perceived and regulated, thereby greatly reducing the difficulty of existing network deployment and the risk of switch configuration errors. At the same time, the algorithm hyperparameters are greatly reduced, effectively reducing the complexity of algorithm tuning.
[0197] 2. A more refined network congestion state modeling is achieved: a method is designed to divide the network congestion state into four types based on RTT. Compared with the existing technology, it can more finely represent the current network congestion state, thereby achieving more refined rate control.
[0198] 3. A finely designed speed regulation scheme achieves higher performance: a scheme that simultaneously takes into account path delay and remote delay, a scheme for obtaining baseline delay, and a speed regulation algorithm for four congestion states are designed. PFC triggering can be avoided to the greatest extent, thereby achieving higher bandwidth, high fairness in multi-flow bandwidth allocation, and rapid response to microbursts.
[0199] Corresponding to the above method embodiments, the present disclosure also provides a congestion control device, which can be used to execute the above method embodiments.
[0200] Figure 7 is a block diagram of a congestion control device in an exemplary embodiment of the present disclosure.
[0201] refer to Figure 7 , the congestion control device 700 may include:
[0202] The measurement module 702 is configured to send an RTT measurement request to the network card, and determine the network congestion state according to the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request;
[0203] The feedback module 704 is configured to determine a new transmission rate according to a preset transmission rate algorithm corresponding to the congestion state, and feed back the new transmission rate to the network card.
[0204] In an exemplary embodiment of the present disclosure, the measurement module 702 is further configured to:
[0205] Sending the RTT measurement request to the network card, and recording the sending time of the RTT measurement request as the first time;
[0206] In response to the RTT measurement response message fed back by the network card, parsing a second time and a third time in the RTT measurement response message, wherein the second time is the time when the network card receives the RTT measurement request, and the third time is the event when the network card sends the RTT measurement response message;
[0207] Recording the time of receiving the RTT measurement response message and recording it as the fourth time;
[0208] The congestion state of the network is determined according to the first time, the second time, the third time, and the fourth time.
[0209] In an exemplary embodiment of the present disclosure, the measurement module 702 is further configured to:
[0210] Determine a baseline RTT, a target RTT, and a predicted RTT according to the first time, the second time, the third time, and the fourth time;
[0211] The congestion state of the network is determined based on the magnitude relationship among the baseline RTT, the target RTT, and the predicted RTT.
[0212] In an exemplary embodiment of the present disclosure, the measurement module 702 is further configured to:
[0213] Calculate the first time, the second time, the third time, and the fourth time according to a first preset algorithm, and determine the calculation result as the path RTT;
[0214] Calculate the second time and the third time according to a second preset algorithm, and determine the calculation result as the remote delay RTT;
[0215] Determine the baseline RTT according to the smaller value of the path RTT calculated last time in the historical record and the remote delay RTT calculated last time in the historical record;
[0216] Determine the target RTT according to the baseline RTT, the current transmission rate and a preset target delay factor, wherein the target RTT includes a path target RTT and / or a remote delay target RTT;
[0217] The predicted RTT is determined according to the current RTT, the previous RTT, the current fourth time and the previous fourth time, where the predicted RTT includes the path predicted RTT and / or the remote delay predicted RTT.
[0218] In an exemplary embodiment of the present disclosure, the measurement module 702 is further configured to:
[0219] Comparing the size relationship between the current path RTT and the path target RTT, and recording the comparison result as a first size relationship;
[0220] Comparing the size relationship between the path prediction RTT and the path target RTT, and recording the comparison result as a second size relationship;
[0221] Determining a congestion state of the network required for calculating a path rate according to the first size relationship and the second size relationship
[0222] In an exemplary embodiment of the present disclosure, the measurement module 702 is further configured to:
[0223] Comparing the magnitude relationship between the current remote delay RTT and the remote delay target RTT, and recording the comparison result as a third magnitude relationship;
[0224] Comparing the magnitude relationship between the remote delay prediction RTT and the remote delay target RTT, and recording the comparison result as a fourth magnitude relationship;
[0225] Determining the congestion state of the network required for calculating the far-end delay rate according to the third size relationship and the fourth size relationship
[0226] In an exemplary embodiment of the present disclosure, the measurement module 702 is further configured to:
[0227] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0228] If it is determined that the current RTT is less than the target RTT, and it is determined that the predicted RTT is less than the target RTT, then the congestion state of the network is determined to be a first congestion state.
[0229] In an exemplary embodiment of the present disclosure, the measurement module 702 is further configured to:
[0230] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0231] If it is determined that the current RTT is greater than or equal to the target RTT, and it is determined that the predicted RTT is less than the target RTT, then the congestion state of the network is determined to be a second congestion state.
[0232] In an exemplary embodiment of the present disclosure, the measurement module 702 is further configured to:
[0233] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0234] If it is determined that the current RTT is less than the target RTT, and it is determined that the predicted RTT is greater than or equal to the target RTT, then the congestion state of the network is determined to be a third congestion state.
[0235] In an exemplary embodiment of the present disclosure, the measurement module 702 is further configured to:
[0236] Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT;
[0237] If it is determined that the current RTT is greater than or equal to the target RTT, and it is determined that the predicted RTT is greater than or equal to the target RTT, then the congestion state of the network is determined to be a fourth congestion state.
[0238] In an exemplary embodiment of the present disclosure, the feedback module 704 is further configured to:
[0239] Obtaining a preset first acceleration factor, a second acceleration factor, and a deceleration factor;
[0240] Calculate the remote delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the deceleration factor according to the preset transmission rate algorithm corresponding to the congestion state, respectively, wherein the current rate includes the current path rate and the current remote delay rate;
[0241] A new transmission rate is determined according to the smaller rate between the remote delay rate and the path rate, and the new transmission rate is fed back to the network card.
[0242] In an exemplary embodiment of the present disclosure, the feedback module 704 is further configured to:
[0243] If it is determined that the congestion state is the first congestion state, summing the current rate and the first acceleration factor according to a first preset transmission rate algorithm;
[0244] The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
[0245] In an exemplary embodiment of the present disclosure, the feedback module 704 is further configured to:
[0246] If it is determined that the congestion state is the second congestion state, summing the current rate and the second acceleration factor according to a second preset transmission rate algorithm;
[0247] The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
[0248] In an exemplary embodiment of the present disclosure, the feedback module 704 is further configured to:
[0249] If it is determined that the congestion state is the third congestion state, summing the current rate and the first acceleration factor of a specified proportion according to a third preset transmission rate algorithm;
[0250] The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
[0251] In an exemplary embodiment of the present disclosure, the feedback module 704 is further configured to:
[0252] If it is determined that the congestion state is the fourth congestion state, performing a specified calculation on the current rate, the speed reduction factor, the baseline RTT, the predicted RTT, and the target RTT according to a fourth preset transmission rate algorithm;
[0253] The far-end delay rate and the path rate are calculated respectively according to the results of the specified calculation.
[0254] Since the functions of the device 700 have been described in detail in the corresponding method embodiments, the present disclosure will not elaborate on them here.
[0255] It should be noted that, although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into multiple modules or units to be embodied.
[0256] In an exemplary embodiment of the present disclosure, an electronic device capable of implementing the above method is also provided.
[0257] Those skilled in the art will appreciate that various aspects of the present disclosure may be implemented as systems, methods or program products. Therefore, various aspects of the present disclosure may be specifically implemented in the following forms, namely: complete hardware implementation, complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to herein as "circuits", "modules" or "systems".
[0258] Refer to the following Figure 8 The electronic device 800 according to this embodiment of the present disclosure is described. Figure 8 The electronic device 800 shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0259] like Figure 8 As shown, the electronic device 800 is in the form of a general computing device. The components of the electronic device 800 may include but are not limited to: at least one processing unit 810, at least one storage unit 820, and a bus 830 connecting different system components (including the storage unit 820 and the processing unit 810).
[0260] The storage unit stores program codes, which can be executed by the processing unit 810, so that the processing unit 810 performs the steps according to various exemplary embodiments of the present disclosure described in the above “Exemplary Method” section of this specification. For example, the processing unit 810 can perform the method shown in the embodiment of the present disclosure.
[0261] The storage unit 820 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 8201 and / or a cache storage unit 8202 , and may further include a read-only storage unit (ROM) 8203 .
[0262] The storage unit 820 may also include a program / utility 8204 having a set (at least one) of program modules 8205, such program modules 8205 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.
[0263] Bus 830 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
[0264] The electronic device 800 may also communicate with one or more external devices 840 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 800, and / or may communicate with any device (e.g., routers, modems, etc.) that enables the electronic device 800 to communicate with one or more other computing devices. This communication may be performed through an input / output (I / O) interface 850. In addition, the electronic device 800 may also communicate with one or more networks (e.g., local area networks (LANs), wide area networks (WANs), and / or public networks, such as the Internet) through a network adapter 860. As shown, the network adapter 860 communicates with other modules of the electronic device 800 through a bus 830. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 800, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.
[0265] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes a number of instructions to enable a computing device (which can be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the implementation of the present disclosure.
[0266] In an exemplary embodiment of the present disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the above method of the present specification is stored. In some possible implementations, various aspects of the present disclosure may also be implemented in the form of a program product, which includes a program code, and when the program product is run on a terminal device, the program code is used to enable the terminal device to execute the steps according to various exemplary implementations of the present disclosure described in the above "Exemplary Method" section of the present specification.
[0267] The program product for implementing the above method according to the embodiment of the present disclosure can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be run on a terminal device, such as a personal computer. However, the program product of the present disclosure is not limited thereto, and in this document, a readable storage medium can be any tangible medium containing or storing a program, which can be used by or in combination with an instruction execution system, an apparatus or a device.
[0268] Among them, the readable medium can be a readable signal medium or a readable storage medium. The readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples (non-exhaustive list) of readable storage media include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.
[0269] Computer readable signal media may include data signals propagated in baseband or as part of a carrier wave, in which readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Readable signal media may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0270] The program code embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
[0271] In an exemplary embodiment of the present disclosure, a computer program product is also provided, which can be loaded or stored in any combination of one or more readable media, and can be written in any combination of one or more programming languages to perform the program code of the present disclosure, wherein the programming language includes an object-oriented programming language, such as Java, C++, etc., and also includes a conventional procedural programming language, such as "C" language or similar programming language. The program code can be executed completely on the user computing device, partially on the user device, as an independent software package, partially on the user computing device and partially on the remote computing device, or completely on the remote computing device or server. In the case of a remote computing device, the remote computing device can be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (for example, using an Internet service provider to connect through the Internet).
[0272] In addition, the above-mentioned figures are only schematic illustrations of the processes included in the method according to the exemplary embodiments of the present disclosure, and are not intended to be limiting. It is easy to understand that the processes shown in the above-mentioned figures do not indicate or limit the time sequence of these processes. In addition, it is also easy to understand that these processes can be performed synchronously or asynchronously, for example, in multiple modules.
[0273] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of the present disclosure that follow the general principles of the present disclosure and include common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The specification and examples are to be considered exemplary only, and the true scope and concept of the present disclosure are indicated by the claims.
Claims
1. A congestion control method, characterized in that: include: Send an RTT measurement request to the network card, and determine the network congestion status according to the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request, including: Sending the RTT measurement request to the network card, and recording the sending time of the RTT measurement request as the first time; In response to the RTT measurement response message fed back by the network card, parsing the second time and the third time in the RTT measurement response message, where the second time is the time when the network card receives the RTT measurement request, and the third time is the time when the network card sends the RTT measurement response message; Recording the time of receiving the RTT measurement response message and recording it as the fourth time; Determining a baseline RTT, a target RTT, and a predicted RTT according to the first time, the second time, the third time, and the fourth time includes: Calculate the first time, the second time, the third time, and the fourth time according to a first preset algorithm, and determine the calculation result as the path RTT; Calculate the second time and the third time according to a second preset algorithm, and determine the calculation result as the remote delay RTT; Determine the baseline RTT according to the smaller value of the path RTT calculated last time in the historical record and the remote delay RTT calculated last time in the historical record; Determine the target RTT according to the baseline RTT, the current transmission rate and a preset target delay factor, wherein the target RTT includes a path target RTT and / or a remote delay target RTT; Determine the predicted RTT according to the current RTT, the previous RTT, the current fourth time and the previous fourth time, wherein the predicted RTT includes the path predicted RTT and / or the remote delay predicted RTT; Determine the congestion state of the network based on the size relationship among the baseline RTT, the target RTT and the predicted RTT; A new transmission rate is determined according to a preset transmission rate algorithm corresponding to the congestion state, and the new transmission rate is fed back to the network card.
2. The congestion control method according to claim 1, characterized in that: Determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT includes: Compare the size relationship between the current path RTT and the path target RTT, and record the comparison result as the first size relationship; Comparing the size relationship between the path prediction RTT and the path target RTT, and recording the comparison result as a second size relationship; A congestion state of the network required for calculating a path rate is determined according to the first size relationship and the second size relationship.
3. The congestion control method according to claim 2, characterized in that: Determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT includes: Compare the magnitude relationship between the current remote delay RTT and the remote delay target RTT, and record the comparison result as the third magnitude relationship; Comparing the magnitude relationship between the remote delay prediction RTT and the remote delay target RTT, and recording the comparison result as a fourth magnitude relationship; The congestion state of the network required for calculating the far-end delay rate is determined according to the third size relationship and the fourth size relationship, and the congestion state of the network is the first congestion state, the second congestion state, the third congestion state, or the fourth congestion state.
4. The congestion control method according to claim 3, characterized in that: Determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT includes: Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT; If it is determined that the current RTT is less than the target RTT, and it is determined that the predicted RTT is less than the target RTT, then the congestion state of the network is determined to be the first congestion state, If the target RTT is the remote delay target RTT, the predicted RTT is the current remote delay RTT; if the target RTT is the path target RTT, the predicted RTT is the current path RTT.
5. The congestion control method according to claim 3, characterized in that: Determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT further includes: Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT; If it is determined that the current RTT is greater than or equal to the target RTT, and it is determined that the predicted RTT is less than the target RTT, then the congestion state of the network is determined to be the second congestion state, If the target RTT is the remote delay target RTT, the predicted RTT is the current remote delay RTT; if the target RTT is the path target RTT, the predicted RTT is the current path RTT.
6. The congestion control method according to claim 3, characterized in that: Determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT further includes: Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT; If it is determined that the current RTT is less than the target RTT, and it is determined that the predicted RTT is greater than or equal to the target RTT, then the congestion state of the network is determined to be the third congestion state, If the target RTT is the remote delay target RTT, the predicted RTT is the current remote delay RTT; if the target RTT is the path target RTT, the predicted RTT is the current path RTT.
7. The congestion control method according to claim 3, characterized in that: Determining the congestion state of the network based on the size relationship among the baseline RTT, the target RTT, and the predicted RTT further includes: Comparing the size relationship between the current RTT and the target RTT, and comparing the size relationship between the predicted RTT and the target RTT; If it is determined that the current RTT is greater than or equal to the target RTT, and it is determined that the predicted RTT is greater than or equal to the target RTT, then the congestion state of the network is determined to be the fourth congestion state, If the target RTT is the remote delay target RTT, the predicted RTT is the current remote delay RTT; if the target RTT is the path target RTT, the predicted RTT is the current path RTT.
8. The congestion control method according to any one of claims 4 to 7, characterized in that: Determining a new transmission rate according to a preset transmission rate algorithm corresponding to the congestion state, and feeding back the new transmission rate to the network card includes: Obtaining a preset first acceleration factor, a second acceleration factor, and a deceleration factor; Calculate the remote delay rate and the path rate for the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the deceleration factor according to the preset transmission rate algorithm corresponding to the congestion state, respectively, wherein the current rate includes the current path rate and the current remote delay rate; A new transmission rate is determined according to the smaller rate between the remote delay rate and the path rate, and the new transmission rate is fed back to the network card.
9. The congestion control method according to claim 8, characterized in that: Calculating the remote delay rate and the path rate respectively based on the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes: If it is determined that the congestion state is the first congestion state, summing the current rate and the first acceleration factor according to a first preset transmission rate algorithm; The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
10. The congestion control method according to claim 8, characterized in that: Calculating the remote delay rate and the path rate respectively based on the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes: If it is determined that the congestion state is the second congestion state, summing the current rate and the second acceleration factor according to a second preset transmission rate algorithm; The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
11. The congestion control method according to claim 8, characterized in that: Calculating the remote delay rate and the path rate respectively based on the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes: If it is determined that the congestion state is the third congestion state, summing the current rate and the first acceleration factor of a specified proportion according to a third preset transmission rate algorithm; The far-end delay rate and the path rate are calculated respectively according to the result of the sum calculation.
12. The congestion control method according to claim 8, characterized in that: Calculating the remote delay rate and the path rate respectively based on the current rate, the first acceleration factor, the second acceleration factor, and the specified parameters in the speed reduction factor according to the preset transmission rate algorithm corresponding to the congestion state includes: If it is determined that the congestion state is the fourth congestion state, performing a specified calculation on the current rate, the speed reduction factor, the baseline RTT, the predicted RTT, and the target RTT according to a fourth preset transmission rate algorithm; The far-end delay rate and the path rate are calculated respectively according to the results of the specified calculation.
13. A congestion control device, characterized in that: include: The measurement module is configured to send an RTT measurement request to the network card, and determine the congestion state of the network according to the sending and receiving time information in the RTT measurement response message corresponding to the RTT measurement request, including: Sending the RTT measurement request to the network card, and recording the sending time of the RTT measurement request as the first time; In response to the RTT measurement response message fed back by the network card, parsing the second time and the third time in the RTT measurement response message, where the second time is the time when the network card receives the RTT measurement request, and the third time is the time when the network card sends the RTT measurement response message; Recording the time of receiving the RTT measurement response message and recording it as the fourth time; Determining a baseline RTT, a target RTT, and a predicted RTT according to the first time, the second time, the third time, and the fourth time includes: Calculate the first time, the second time, the third time, and the fourth time according to a first preset algorithm, and determine the calculation result as the path RTT; Calculate the second time and the third time according to a second preset algorithm, and determine the calculation result as the remote delay RTT; Determine the baseline RTT according to the smaller value of the path RTT calculated last time in the historical record and the remote delay RTT calculated last time in the historical record; Determine the target RTT according to the baseline RTT, the current transmission rate and a preset target delay factor, wherein the target RTT includes a path target RTT and / or a remote delay target RTT; Determine the predicted RTT according to the current RTT, the previous RTT, the current fourth time and the previous fourth time, wherein the predicted RTT includes the path predicted RTT and / or the remote delay predicted RTT; Determine the congestion state of the network based on the size relationship among the baseline RTT, the target RTT and the predicted RTT; The feedback module is configured to determine a new transmission rate according to a preset transmission rate algorithm corresponding to the congestion state, and feed back the new transmission rate to the network card.
14. An electronic device, characterized in that: include: Memory; as well as A processor coupled to the memory, wherein the processor is configured to execute the congestion control method according to any one of claims 1 to 12 based on instructions stored in the memory.
15. A computer-readable storage medium having a program stored thereon, wherein when the program is executed by a processor, the congestion control method according to any one of claims 1 to 12 is implemented.
16. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the congestion control method according to any one of claims 1 to 12 is implemented.
