Congestion control method, device, equipment, medium and product
By acquiring and aggregating congestion signals in traffic management between large-model training nodes, and controlling the link based on the specified congestion control protocol, the congestion problem caused by incast is solved, and network transmission performance and speed regulation accuracy are improved.
Patent Information
- Application Number
- CN202411864636.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-17
- Publication Date
- 2025-05-02
- Estimated Expiration
- 2044-12-17
AI Technical Summary
In the traffic management between large-model training nodes, the prior art cannot completely solve the congestion problem caused by incast, resulting in limited network transmission performance.
By obtaining the congestion detection response results within the specified detection cycle, the congestion signals (such as ECN, CNP, RTT and INT) are determined, and the congestion signals with the same destination IP address and the source IP address are aggregated, and the congestion control is performed on the specified link based on the specified congestion control protocol (such as DCTCP, DCQCN, TIMELY, HPCC).
It improves the accuracy and reliability of speed regulation of specified links, reduces the trigger frequency of PFC, and improves the network performance of the large-model training cluster of the Intelligent Computing Center.
Smart Images

Figure CN119324902B_ABST
Abstract
Description
Background Art
[0002] At present, the traffic model between nodes in large model training is complex, which places extremely high demands on the networking scale and network transmission performance of the intelligent computing center. Fine-grained load balancing can effectively improve the performance of large-scale distributed training loads.
[0003] In related technologies, load balancing cannot completely solve the congestion problem caused by incast, and the sending rate still needs to be controlled through congestion control algorithms.
[0004] However, using a fine-grained load balancing strategy will disperse a flow to different paths for transmission. The network card using the traditional congestion control algorithm cannot determine which link the congestion state corresponds to. If the speed is still adjusted based on the existing flow-level congestion control protocol, it will easily lead to serious throughput fluctuations and cannot make accurate rate adjustments.
[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 poor accuracy of congestion control schemes caused by limitations and defects of related technologies to at least a certain extent.
[0007] According to a first aspect of an embodiment of the present disclosure, a congestion control method is provided, comprising: obtaining a congestion detection response result within a specified detection period, and determining a congestion signal according to the congestion detection response result, wherein the congestion signal comprises at least one of ECN, CNP, RTT and INT; aggregating congestion signals having the same destination IP address and the same source IP address to obtain a congestion calculation result within the specified detection period; and performing congestion control on a specified link based on a specified congestion control protocol and the congestion calculation result, wherein the specified link is determined by the destination IP address and the source IP address.
[0008] In an exemplary embodiment of the present disclosure, the algorithm of the specified congestion control protocol includes at least one of a DCTCP algorithm, a DCCQN algorithm, a TIMELY algorithm, and a HPCC algorithm.
[0009] In an exemplary embodiment of the present disclosure, before obtaining the congestion detection response result within the specified detection period, it also includes:
[0010] Sending a congestion detection packet to a receiving end, wherein the congestion detection packet is configured to add a congestion notification identifier to an ECN field in a header of the congestion detection packet when a network device detects congestion;
[0011] A congestion detection response result fed back by the receiving end is received, wherein the congestion detection response result includes a CNP packet generated by the receiving end according to the congestion notification identifier.
[0012] In an exemplary embodiment of the present disclosure, aggregating congestion signals having the same destination IP address and the same source IP address to obtain a congestion calculation result within a specified detection period includes:
[0013] Within the specified detection period, congestion signals with the same destination IP address and the same source IP address are aggregated;
[0014] Obtaining a congestion signal of aggregation processing in a previous detection cycle of the specified detection cycle;
[0015] The congestion signal of the aggregation processing in the specified detection cycle and the congestion signal of the aggregation processing in the previous detection cycle are weightedly calculated according to a preset weight to obtain a congestion calculation result in the specified detection cycle.
[0016] In an exemplary embodiment of the present disclosure, performing congestion control on a designated link based on a designated congestion control protocol and a congestion signal obtained through the aggregation process includes:
[0017] If it is determined that congestion control is performed based on the DCTCP algorithm in the specified congestion control protocol, the ECN is determined as a congestion signal;
[0018] Counting the proportion of data packets carrying ECN marks obtained through the aggregation process;
[0019] The transmission rate of the designated link is updated according to the ratio of the ECN.
[0020] In an exemplary embodiment of the present disclosure, performing congestion control on a designated link based on a designated congestion control protocol and a congestion signal obtained through the aggregation process further includes:
[0021] If it is determined that congestion control is performed based on the DCQCN algorithm in the specified congestion control protocol, the CNP packet is determined as a congestion signal;
[0022] Determining a congestion notification identifier obtained through the aggregation process;
[0023] The transmission rate of the designated link is updated according to the congestion notification identifier.
[0024] In an exemplary embodiment of the present disclosure, performing congestion control on a designated link based on a designated congestion control protocol and a congestion signal obtained through the aggregation process further includes:
[0025] If it is determined that congestion control is performed based on the TIMELY algorithm in the specified congestion control protocol, the RTT is determined as a congestion signal;
[0026] Determine an RTT result obtained through the aggregation process;
[0027] The transmission rate of the designated link is updated according to the RTT result.
[0028] In an exemplary embodiment of the present disclosure, performing congestion control on a designated link based on a designated congestion control protocol and a congestion signal obtained through the aggregation process further includes:
[0029] If it is determined that congestion control is performed based on the HPCC algorithm in the specified congestion control protocol, the INT is determined as a congestion signal;
[0030] Determine an INT result obtained through the polymerization process;
[0031] Calculate the actual link utilization rate according to the INT result;
[0032] The transmission rate of the designated link is updated according to the actual utilization rate of the link.
[0033] In an exemplary embodiment of the present disclosure, it further includes:
[0034] When updating the transmission rate of the designated link, detecting the number of times the transmission rate is continuously increased and / or the number of times the transmission rate is continuously decreased;
[0035] If the number of times the transmission rate is continuously increased exceeds a first preset number, or the number of times the transmission rate is continuously decreased exceeds a second preset number, the duration of the designated detection period is reduced.
[0036] According to a second aspect of an embodiment of the present disclosure, there is provided a congestion control device, including:
[0037] An acquisition module, configured to acquire a congestion detection response result within a specified detection period, and determine a congestion signal according to the congestion detection response result, wherein the congestion signal includes at least one of ECN, CNP, RTT and INT;
[0038] an aggregation module, configured to aggregate congestion signals having the same destination IP address and the same source IP address to obtain a congestion calculation result within a specified detection period;
[0039] The control module is configured to perform congestion control on a designated link based on a designated congestion control protocol and the congestion calculation result, wherein the designated link is determined by the destination IP address and the source IP address.
[0040] In an exemplary embodiment of the present disclosure, the algorithm of the specified congestion control protocol includes at least one of a DCTCP algorithm, a DCCQN algorithm, a TIMELY algorithm, and a HPCC algorithm.
[0041] 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.
[0042] 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.
[0043] 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.
[0044] The disclosed embodiment obtains the congestion detection response result within a specified detection period, determines the congestion signal based on the congestion detection response result, and aggregates the congestion signals with the same destination IP address and the same source IP address to obtain the congestion calculation result within the specified detection period, and then performs congestion control on the specified link based on the specified congestion control protocol and the congestion calculation result, thereby improving the accuracy and reliability of speed regulation of the specified link.
[0045] 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
[0046] 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.
[0047] Figure 1 A schematic diagram showing an exemplary system architecture to which a congestion control solution according to an embodiment of the present invention can be applied;
[0048] Figure 2 is a flow chart of a congestion control method in an exemplary embodiment of the present disclosure;
[0049] Figure 3 is a flow chart of another congestion control method in an exemplary embodiment of the present disclosure;
[0050] Figure 4 is a flow chart of another congestion control method in an exemplary embodiment of the present disclosure;
[0051] Figure 5 is a flow chart of another congestion control method in an exemplary embodiment of the present disclosure;
[0052] Figure 6 is a flow chart of another congestion control method in an exemplary embodiment of the present disclosure;
[0053] Figure 7 is a flow chart of another congestion control method in an exemplary embodiment of the present disclosure;
[0054] Figure 8 is a flow chart of another congestion control method in an exemplary embodiment of the present disclosure;
[0055] Fig. 9 is an architectural diagram of a congestion control solution in an exemplary embodiment of the present disclosure;
[0056] Fig.10 is a flow chart of fine-grained load balancing strategy data forwarding in a congestion control solution in an exemplary embodiment of the present disclosure;
[0057] Fig.11 is a workflow diagram of a DCTCP signal processing module of a congestion control solution in an exemplary embodiment of the present disclosure;
[0058] Fig.12 is a workflow diagram of a DCQCN signal processing module of a congestion control scheme in an exemplary embodiment of the present disclosure;
[0059] Fig.13 is a flow chart of a congestion control scheme in an exemplary embodiment of the present disclosure;
[0060] Fig.14 is a block diagram of a congestion control device in an exemplary embodiment of the present disclosure;
[0061] Fig.15 is a block diagram of an electronic device in an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION
[0062] 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.
[0063] 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.
[0064] The embodiments of the present disclosure involve the following technical terms:
[0065] ECN (Explicit Congestion Notification): is a mechanism for network congestion control that allows network devices to notify other devices by setting a specific flag bit in the ECN field in the IP packet header when congestion is detected (the switch queue length exceeds the waterline).
[0066] CNP (Congestion Notification Packets): When the receiving network card receives a data packet with an ECN mark, it generates a CNP packet and returns it to the sender to notify the sender that there is congestion in the link.
[0067] RTT (Round-Trip Time): refers to the time from sending a data packet to receiving the corresponding confirmation. RTT is usually used to evaluate the delay performance of the network.
[0068] PFC (Priority-based Flow Control): A flow control technology for achieving lossless networks. It is an enhancement of the Ethernet PAUSE mechanism. Its working principle is that when the receive buffer on the switch interface is filled to the threshold, a PAUSE frame is sent upstream to prevent the upstream device from sending more frames. PFC creates 8 virtual channels on an Ethernet link, allowing any of the virtual channels to be paused and restarted individually. PFC performs flow control based on ports and priorities, which can easily lead to victim flows, PFC deadlocks, PFC storms, and other problems, seriously affecting network performance. Therefore, it is necessary to use flow-level congestion control to avoid triggering PFC as much as possible.
[0069] AI (Additive Increase): A commonly used speed regulation strategy in congestion control that additively increases the sending rate.
[0070] MD (Multiplicative Decrease): A commonly used speed control strategy in congestion control that multiplicatively reduces the sending rate. AIMD is usually used in combination to make different flows converge to a fair rate.
[0071] Figure 1 A schematic diagram showing an exemplary system architecture to which the congestion control solution according to an embodiment of the present invention can be applied.
[0072] 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.
[0073] 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.
[0074] 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.
[0075] In some embodiments, the congestion control method provided by the embodiments of the present invention 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.
[0076] The exemplary embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.
[0077] Figure 2 is a flow chart of a congestion control method in an exemplary embodiment of the present disclosure.
[0078] refer to Figure 2 , congestion control methods may include:
[0079] Step S202: Acquire a congestion detection response result within a specified detection period, and determine a congestion signal according to the congestion detection response result.
[0080] In an exemplary embodiment of the present disclosure, the congestion signal includes at least one of ECN, CNP, RTT and INT.
[0081] Step S204: Aggregate the congestion signals with the same destination IP address and the same source IP address to obtain a congestion calculation result within a specified detection period.
[0082] In an exemplary embodiment of the present disclosure, the overall congestion of all equivalent paths between two nodes is estimated through periodic signal aggregation, and the speed of flows with the same destination IP and source IP is uniformly adjusted to achieve effective congestion control, greatly reduce the triggering of PFC, and further improve the network performance of the large model training cluster of the intelligent computing center, thereby meeting the ultra-large bandwidth and ultra-low latency requirements of AI training in the intelligent computing center.
[0083] Step S206, performing congestion control on a designated link based on a designated congestion control protocol and the congestion calculation result, wherein the designated link is determined by the destination IP address and the source IP address, and the algorithm of the designated congestion control protocol includes at least one of a DCTCP algorithm, a DCCQN algorithm, a TIMELY algorithm, and a HPCC algorithm.
[0084] The disclosed embodiment obtains the congestion detection response result within a specified detection period, determines the congestion signal based on the congestion detection response result, and aggregates the congestion signals with the same destination IP address and the same source IP address to obtain the congestion calculation result within the specified detection period, and then performs congestion control on the specified link based on the specified congestion control protocol and the congestion calculation result, thereby improving the accuracy and reliability of speed regulation of the specified link.
[0085] In an exemplary embodiment of the present disclosure, Figure 3 As shown, a congestion control solution that can work with the fine-grained load balancing strategy system 300 is provided. "Spine-Leaf" is a topology commonly used in data center network architecture. It estimates the overall congestion of all equivalent paths between two nodes through periodic signal aggregation, uniformly adjusts the speed of flows with the same destination IP, and achieves effective congestion control, greatly reduces the triggering of PFC, and further improves the network performance of the large model training cluster of the intelligent computing center, thereby meeting the ultra-large bandwidth and ultra-low latency requirements of AI training in the intelligent computing center. Below, each step of the congestion control method is described in detail.
[0086] In an exemplary embodiment of the present disclosure, Figure 4 As shown, the congestion signals with the same destination IP address and the same source IP address are aggregated to obtain the congestion calculation result within the specified detection period, including:
[0087] Step S402: within the specified detection period, congestion signals with the same destination IP address and the same source IP address are aggregated.
[0088] Step S404: Acquire a congestion signal of aggregation processing in a previous detection cycle of the designated detection cycle.
[0089] Step S406 , weighted calculation is performed on the congestion signal of the aggregation processing in the specified detection cycle and the congestion signal of the aggregation processing in the previous detection cycle according to a preset weight, so as to obtain a congestion calculation result in the specified detection cycle.
[0090] In an exemplary embodiment of the present disclosure, Figure 5 As shown, performing congestion control on a designated link based on a designated congestion control protocol and a congestion signal obtained through the aggregation process includes:
[0091] Step S502: If it is determined that congestion control is performed based on the DCTCP algorithm in the specified congestion control protocol, the ECN is determined as a congestion signal.
[0092] Step S504, counting the proportion of data packets carrying ECN marks obtained through the aggregation process.
[0093] Step S506: Update the transmission rate of the designated link according to the ECN ratio.
[0094] In an exemplary embodiment of the present disclosure, DCTCP is an algorithm improved based on the TCP protocol. In a data center network, the traffic pattern is characterized by burstiness and a high proportion of short flows. The slow start and congestion avoidance mechanisms of traditional TCP may cause network congestion and performance degradation in this environment. DCTCP enables the explicit congestion notification (ECN) function in the network switch. When the queue length of the switch reaches a certain threshold (such as the shallow queue threshold), it marks the ECN in the ACK packet returned to the sender. After receiving the ACK with the ECN mark, the sender adjusts its congestion window in a more refined way.
[0095] Specifically, the sender calculates a congestion factor based on the proportion of ECN-marked ACKs received, and then uses this factor to adjust the congestion window, rather than simply halving the window size as in traditional TCP.
[0096] In an exemplary embodiment of the present disclosure, Figure 6 As shown, performing congestion control on a designated link based on a designated congestion control protocol and a congestion signal obtained through the aggregation process further includes:
[0097] Step S602: If it is determined that congestion control is performed based on the DCQCN algorithm in the specified congestion control protocol, the CNP packet is determined as a congestion signal.
[0098] Step S604: determine the congestion notification identifier obtained through the aggregation process.
[0099] Step S606: Update the transmission rate of the designated link according to the congestion notification identifier.
[0100] In an exemplary embodiment of the present disclosure, DCQCN is an algorithm for a feedback-based congestion control protocol, which is mainly used in data center networks in lossless Ethernet environments. It establishes a tight feedback loop between network devices. When the switch detects congestion (through indicators such as queue length), it adds an ECN mark to the data packet. When the receiver receives a data packet carrying the ECN mark, it sends a congestion notification (CNP) to the sender. After receiving the CNP, the network card at the sender adjusts the sending rate in a quantized manner. This quantization process involves dividing the sending rate into multiple levels, and determining the level to which the sending rate should be reduced based on the number and frequency of CNPs received. At the same time, the sending network card will also periodically try to increase the sending rate to detect the available bandwidth of the network. This increase is gradual and avoids excessive congestion.
[0101] In an exemplary embodiment of the present disclosure, Figure 7 As shown, performing congestion control on a designated link based on a designated congestion control protocol and a congestion signal obtained through the aggregation process further includes:
[0102] Step S702: If it is determined that congestion control is performed based on the TIMELY algorithm in the specified congestion control protocol, the RTT is determined as a congestion signal.
[0103] Step S704: determine the RTT result obtained through the aggregation process.
[0104] Step S706: Update the transmission rate of the designated link according to the RTT result.
[0105] In an exemplary embodiment of the present disclosure, TIMELY is an algorithm of a new type of congestion control protocol, and its design concept is based on delay gradient rather than the traditional mechanism based on packet loss or queue length. It senses congestion by measuring the change in the round-trip delay (RTT) of data packets in the network. When the sender finds that the RTT continues to increase (forming a delay gradient), it is considered that the network is congested. Then, it adjusts the sending rate according to the size of the delay gradient. The specific adjustment method is to use an algorithm based on a proportional-integral-differential (PID) controller to calculate a suitable sending rate adjustment value based on the delay gradient to control the traffic injected into the network.
[0106] In an exemplary embodiment of the present disclosure, Figure 8 As shown, performing congestion control on a designated link based on a designated congestion control protocol and a congestion signal obtained through the aggregation process further includes:
[0107] Step S802: If it is determined that congestion control is performed based on the HPCC algorithm in the specified congestion control protocol, the INT is determined as a congestion signal.
[0108] Step S804, determining an INT result obtained through the aggregation processing.
[0109] Step S806: Calculate the actual link utilization rate according to the INT result.
[0110] Step S808: updating the transmission rate of the designated link according to the actual link utilization.
[0111] In an exemplary embodiment of the present disclosure, HPCC is an algorithm for a high-precision congestion control protocol that uses multiple information sources in the network to achieve accurate congestion control. It not only takes into account traditional network parameters such as delay and packet loss, but also combines information such as link utilization. In HPCC, the sender builds a comprehensive view of network congestion by collecting and analyzing feedback information from various nodes in the network (such as routers and switches). Then, based on this view, a complex mathematical model is used to calculate the optimal sending rate. This model takes into account the bandwidth of different links, delay characteristics, and the overall load of the network.
[0112] In an exemplary embodiment of the present disclosure, it further includes:
[0113] When updating the transmission rate of the designated link, detecting the number of times the transmission rate is continuously increased and / or the number of times the transmission rate is continuously decreased;
[0114] If the number of times the transmission rate is continuously increased exceeds a first preset number, or the number of times the transmission rate is continuously decreased exceeds a second preset number, the duration of the designated detection period is reduced.
[0115] In an exemplary embodiment of the present disclosure, Fig. 9 As shown, an embodiment of the present disclosure provides a congestion control system 900, which includes a signal collection module, a cycle control module, a rate control module and a network card hardware to jointly perform congestion control.
[0116] In an exemplary embodiment of the present disclosure, the signal collection module 902 is responsible for receiving and aggregating the congestion status of all possible paths within a cycle and reporting it to the rate control module 906 to calculate the update rate;
[0117] In an exemplary embodiment of the present disclosure, the period control module 904 controls the speed regulation period by means of a timer or a counter, and dynamically adjusts the speed regulation period based on feedback from the rate control module 906;
[0118] In an exemplary embodiment of the present disclosure, the rate control module 906 obtains the aggregate congestion status and calculates the update rate and sends it to the network card hardware. When the number of consecutive speed increases or speed decreases exceeds a threshold, the speed adjustment period is reduced to accelerate rate convergence.
[0119] In an exemplary embodiment of the present disclosure, in order to save hardware cache, the signal collection module 902 automatically aggregates after the network card receives a packet carrying a congestion status signal. The congestion signal includes ECN, RTT, INT, etc. A signal aggregation calculation method is shown in the following formula (1):
[0120] S n =α*S_new +(1-α)*S n-1 , formula (1)
[0121] Among them, S n is the nth aggregation signal, S_new is the newly received congestion signal, α is the weight parameter, the larger α is, the higher the weight of the newly received signal is, and the arithmetic mean of the signal within the period can be calculated by dynamically adjusting the α value.
[0122] In an exemplary embodiment of the present disclosure, a machine learning algorithm may be used to classify or cluster signals and then analyze the overall congestion status for speed regulation.
[0123] In an exemplary embodiment of the present disclosure, when the timer / counter exceeds a threshold, the current statistical value is reported, and the current data is cleared to start counting the next interval signal.
[0124] In an exemplary embodiment of the present disclosure, the period control module 904 is responsible for controlling the congestion signal range reported at a single time, and receives instructions transmitted by the rate control module 906 to adjust the reporting period.
[0125] In an exemplary embodiment of the present disclosure, the rate update module obtains the aggregate signal, calculates the update rate, and sends it to the network card hardware. When the number of consecutive speed increases or decreases exceeds a threshold, the period control module 904 is notified to reduce the speed adjustment period.
[0126] In an exemplary embodiment of the present disclosure, through periodic signal aggregation of the signal processing module, mainstream congestion control protocols such as DCTCP (Data Center TCP), DCCQN (Data Center Quantized CongestionNotification), TIMELY (TIMELY Congestion Control), and HPCC (High Precision Congestion Control) are used to adjust the link rate. The above protocols are compatible in fine-grained load balancing scenarios, reducing the difficulty of modifying the technical solution of the present disclosure.
[0127] In an exemplary embodiment of the present disclosure, Fig.10 As shown, the fine-grained load balancing policy data forwarding in a congestion control solution in an exemplary embodiment of the present disclosure includes the following steps:
[0128] Step S1002: receiving congestion status feedback.
[0129] Step S1004, aggregating congestion signals.
[0130] Step S1006, timer / counter exceeds threshold?
[0131] Step S1008, reset the timer / counter.
[0132] Step S1010: reporting a congestion signal.
[0133] Step S1012, clear the congestion signal.
[0134] Step S1014, calculating the update rate.
[0135] Step S1016: Return the new sending rate to the network card hardware.
[0136] Step S1018, record the number of consecutive speed-up / speed-down times N.
[0137] Step S1020, N>continuous increase / decrease times threshold?
[0138] Step S1022, restore the default preset period.
[0139] Step S1024, reducing the speed regulation cycle.
[0140] In an exemplary embodiment of the present disclosure, Fig.11 As shown, the execution steps of a DCTCP signal processing module of a congestion control scheme in an exemplary embodiment of the present disclosure include:
[0141] Step S1102, reset the timer / counter, Ecn_s=0, n=0.
[0142] Step S1104, receiving an ACK packet.
[0143] Step S1106, n=n+1, weight α=1 / n, n is a natural number, and n is the number of iterative calculations in step S1108.
[0144] Step S1108, updating the aggregate signal ecn_s n+1 =α*p.ecn+(1-α)*ecn_s n .
[0145] Step S1110, timer / counter exceeds threshold?
[0146] Step S1112, F=ecn_s n+1 .
[0147] Step S1114: reporting the F signal to the DCTCP control core.
[0148] In an exemplary embodiment of the present disclosure, the DCTCP algorithm uses ECN as a congestion signal, and calculates the update rate by counting the proportion of data packets carrying ECN marks within a certain period of time. If CNP is received within the T1 time interval, it means that the link is congested and needs to be reduced, then p.ecn is 1. If CNP is not received within the T2 (T2>T1) time interval, the speed is increased, and p.ecn is 0. In addition, a periodic aggregation congestion signal that is the same as the DCTCP speed regulation period can be set, and the signal processing module calculates the proportion of ACK packets carrying ECN marks within a period for rate control.
[0149] In an exemplary embodiment of the present disclosure, Fig.12 As shown, the execution steps of a DCQCN signal processing module of a congestion control solution in an exemplary embodiment of the present disclosure include:
[0150] Step S1202, reset the timer / counter, Ecn_s=0.
[0151] Step S1204, receiving an ACK packet.
[0152] Step S1206: Update the aggregate signal ecn_s n+1 =α*p.ecn+(1-α)*ecn_s n .
[0153] Step S1208, timer / counter exceeds threshold?
[0154] Step S1210, ecn_s n+1 >th? th is a preset threshold.
[0155] Step S1212, Cnp_flag=1.
[0156] Step S1214, Cnp_flag=0.
[0157] Step S1216, reporting the cnp_flag signal to the DCQCN control core.
[0158] In an exemplary embodiment of the present disclosure, DCQCN also uses ECN as a congestion signal. If CNP is received within the T1 time interval, indicating that the link is congested and needs to be decelerated, p.ecn is 1. If CNP is not received within the T2 (T2>T1) time interval, the speed is increased, and p.ecn is 0. Using the congestion control scheme of the present disclosure, the ECN mark is still carried by ACK, and the periodic aggregation congestion signal is set to the same period as the DCQCN deceleration period T1. The ECN mark score within the period is calculated by the exponentially weighted moving average (EWMA). Exceeding the preset threshold indicates that congestion occurs and the speed needs to be decelerated.
[0159] In an exemplary embodiment of the present disclosure, TIMELY (TIMELY Congestion Control) uses RTT as a congestion signal, uses the congestion control solution of the present disclosure, sets a signal aggregation period that is smaller than the TIMELY speed regulation period, calculates the round-trip delay new_RTT for each ACK packet received, and aggregates the RTT signal using formula (1). When the timer / counter exceeds the threshold, the aggregated RTT signal is reported to the TIMELY control core, which is regarded as a single RTT signal to calculate the update rate.
[0160] In an exemplary embodiment of the present disclosure, HPCC (High Precision Congestion Control) calculates the update rate of the actual link utilization based on the INT signal, uses the congestion control solution of the present disclosure, sets a signal aggregation period that is smaller than the HPCC speed regulation period, calculates the link utilization new_U each time an ACK packet is received, and uses formula (1) to aggregate the U signal. When the timer / counter exceeds the threshold, the aggregated U signal is reported to the HPCC control core and is regarded as a single new signal to calculate the update rate.
[0161] In an exemplary embodiment of the present disclosure, Fig.13 As shown, a congestion control solution in an exemplary embodiment of the present disclosure includes three core processes, namely, a congestion detection process 1302 , an RTT signal aggregation process 1304 and a rate update process 1306 .
[0162] In an exemplary embodiment of the present disclosure, in the congestion detection process 1302, the network card actively sends a congestion detection packet, and obtains the RTT value after receiving the corresponding ACK packet.
[0163] In an exemplary embodiment of the present disclosure, in the RTT signal aggregation process 1304, the RTT signal is aggregated by the above formula (1) to calculate the average RTT value measured in one cycle. After the timer times out, the aggregated signal is reported to the rate update module.
[0164] In an exemplary embodiment of the present disclosure, in the rate update process 1306, the rate update module determines whether the currently measured aggregate RTT value exceeds the preset target value. If so, it enters the MD speed reduction phase, otherwise it enters the AI speed increase phase.
[0165] In an exemplary embodiment of the present disclosure, when performing congestion adjustment according to an embodiment of the present disclosure, the user can turn on or off the periodic adjustment function according to demand.
[0166] Based on the above embodiments of the present disclosure, at least the following technical effects can be achieved:
[0167] 1. Through periodic signal aggregation, the overall congestion of all equivalent paths between two nodes is estimated, the speed of flows with the same destination IP is uniformly adjusted, and a dynamic period adjustment scheme is set to improve the speed adjustment accuracy. Effective and accurate congestion control is achieved for designated links, reducing the PFC triggering frequency.
[0168] 2. The method of aggregating congestion signals by exponentially weighted moving average is used to aggregate the signals immediately after receiving them, thus reducing the occupancy of the network card hardware cache.
[0169] 3. The congestion control solution proposed in the present disclosure only needs to be implemented on the network card side, without modifying the switch, which is conducive to reducing the cost of large-scale deployment.
[0170] 4. The congestion control solution proposed in the present disclosure can be combined with the existing mainstream data center congestion control protocol, and the aggregated congestion signal can be reported to the rate adjustment module to adjust the window or rate according to the existing congestion control protocol.
[0171] 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.
[0172] Fig.14 is a block diagram of a congestion control device in an exemplary embodiment of the present disclosure.
[0173] refer to Fig.14 , the congestion control device 1400 may include:
[0174] The acquisition module 1402 is configured to acquire a congestion detection response result within a specified detection period, and determine a congestion signal according to the congestion detection response result, wherein the congestion signal includes at least one of ECN, CNP, RTT and INT.
[0175] Aggregation module 1404 is configured to aggregate congestion signals with the same destination IP address and the same source IP address to obtain a congestion calculation result within a specified detection period.
[0176] The control module 1406 is configured to perform congestion control on a designated link based on a designated congestion control protocol and the congestion calculation result, wherein the designated link is determined by the destination IP address and the source IP address.
[0177] In an exemplary embodiment of the present disclosure, the algorithm of the specified congestion control protocol includes at least one of a DCTCP algorithm, a DCCQN algorithm, a TIMELY algorithm, and a HPCC algorithm.
[0178] In an exemplary embodiment of the present disclosure, the aggregation module 1404 is further configured to:
[0179] Within the specified detection period, congestion signals with the same destination IP address and the same source IP address are aggregated;
[0180] Obtaining a congestion signal of aggregation processing in a previous detection cycle of the specified detection cycle;
[0181] The congestion signal of the aggregation processing in the specified detection cycle and the congestion signal of the aggregation processing in the previous detection cycle are weightedly calculated according to a preset weight to obtain a congestion calculation result in the specified detection cycle.
[0182] In an exemplary embodiment of the present disclosure, the control module 1406 is further configured to:
[0183] If it is determined that congestion control is performed based on the DCTCP algorithm in the specified congestion control protocol, the ECN is determined as a congestion signal;
[0184] Counting the proportion of data packets carrying ECN marks obtained through the aggregation process;
[0185] The transmission rate of the designated link is updated according to the ratio of the ECN.
[0186] In an exemplary embodiment of the present disclosure, the control module 1406 is further configured to:
[0187] If it is determined that congestion control is performed based on the DCQCN algorithm in the specified congestion control protocol, the CNP packet is determined as a congestion signal;
[0188] Determining a congestion notification identifier obtained through the aggregation process;
[0189] The transmission rate of the designated link is updated according to the congestion notification identifier.
[0190] In an exemplary embodiment of the present disclosure, the control module 1406 is further configured to:
[0191] If it is determined that congestion control is performed based on the TIMELY algorithm in the specified congestion control protocol, the RTT is determined as a congestion signal;
[0192] Determine an RTT result obtained through the aggregation process;
[0193] The transmission rate of the designated link is updated according to the RTT result.
[0194] In an exemplary embodiment of the present disclosure, the control module 1406 is further configured to:
[0195] If it is determined that congestion control is performed based on the HPCC algorithm in the specified congestion control protocol, the INT is determined as a congestion signal;
[0196] Determine an INT result obtained through the polymerization process;
[0197] Calculate the actual link utilization rate according to the INT result;
[0198] The transmission rate of the designated link is updated according to the actual utilization rate of the link.
[0199] In an exemplary embodiment of the present disclosure, the congestion control device 1400 is further configured to:
[0200] When updating the transmission rate of the designated link, detecting the number of times the transmission rate is continuously increased and / or the number of times the transmission rate is continuously decreased;
[0201] If the number of times the transmission rate is continuously increased exceeds a first preset number, or the number of times the transmission rate is continuously decreased exceeds a second preset number, the duration of the designated detection period is reduced.
[0202] Since the functions of the device 1400 have been described in detail in the corresponding method embodiments, the present disclosure will not elaborate on them here.
[0203] 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.
[0204] In an exemplary embodiment of the present disclosure, an electronic device capable of implementing the above method is also provided.
[0205] It will be appreciated by those skilled in the art that various aspects of the present invention may be implemented as a system, method or program product. Therefore, various aspects of the present invention may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to herein as a "circuit", "module" or "system".
[0206] Refer to the following Fig.15 15 to 16. An electronic device 1500 according to this embodiment of the present invention is described. Fig.15 The electronic device 1500 shown is merely an example and should not limit the functions and scope of use of the embodiments of the present invention.
[0207] like Fig.15 As shown, the electronic device 1500 is in the form of a general computing device. The components of the electronic device 1500 may include but are not limited to: at least one processing unit 1510, at least one storage unit 1520, and a bus 1530 connecting different system components (including the storage unit 1520 and the processing unit 1510).
[0208] The storage unit stores program codes, which can be executed by the processing unit 1510, so that the processing unit 1510 performs the steps according to various exemplary embodiments of the present invention described in the above “Exemplary Method” section of this specification. For example, the processing unit 1510 can perform the method shown in the embodiment of the present disclosure.
[0209] The storage unit 1520 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 15201 and / or a cache storage unit 15202 , and may further include a read-only storage unit (ROM) 15203 .
[0210] The storage unit 1520 may also include a program / utility 15204 having a set (at least one) of program modules 15205, such program modules 15205 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.
[0211] Bus 1530 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.
[0212] The electronic device 1500 may also communicate with one or more external devices 1540 (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 1500, and / or may communicate with any device that enables the electronic device 1500 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed via an input / output (I / O) interface 1550. In addition, the electronic device 1500 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) via a network adapter 1560. As shown, the network adapter 1560 communicates with other modules of the electronic device 1500 via a bus 1530. 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 1500, 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.
[0213] 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.
[0214] 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 invention can 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 embodiments of the present invention described in the above "Exemplary Method" section of the present specification.
[0215] The program product for implementing the above method according to an embodiment of the present invention may adopt a portable compact disk read-only memory (CD-ROM) and include program code, and may be run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto, and in this document, a readable storage medium may be any tangible medium containing or storing a program, which may be used by or in combination with an instruction execution system, apparatus, or device.
[0216] 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.
[0217] 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.
[0218] 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.
[0219] 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 invention, 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).
[0220] In addition, the above-mentioned figures are only schematic illustrations of the processes included in the method according to an exemplary embodiment of the present invention, 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.
[0221] 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: Obtaining a congestion detection response result within a specified detection period, and determining a congestion signal according to the congestion detection response result, wherein the congestion signal includes at least one of ECN, CNP, RTT and INT; Aggregate congestion signals with the same destination IP address and source IP address to obtain the congestion calculation results within the specified detection period, including: Within the specified detection period, congestion signals with the same destination IP address and the same source IP address are aggregated; Obtaining a congestion signal of aggregation processing in a previous detection cycle of the specified detection cycle; Performing weighted calculation on the congestion signal of the aggregation processing in the specified detection period and the congestion signal of the aggregation processing in the previous detection period according to a preset weight, so as to obtain a congestion calculation result in the specified detection period; Congestion control is performed on a designated link based on a designated congestion control protocol and the congestion calculation result, where the designated link is determined by the destination IP address and the source IP address.
2. The congestion control method according to claim 1, characterized in that: The algorithm of the specified congestion control protocol includes at least one of a DCTCP algorithm, a DCCQN algorithm, a TIMELY algorithm and a HPCC algorithm.
3. The congestion control method according to claim 1 or 2, characterized in that: The step of performing congestion control on a designated link based on a designated congestion control protocol and a congestion signal obtained through the aggregation process includes: If it is determined that congestion control is performed based on the DCTCP algorithm in the specified congestion control protocol, the ECN is determined as a congestion signal; Counting the proportion of data packets carrying ECN marks obtained through the aggregation process; The transmission rate of the designated link is updated according to the ratio of the ECN.
4. The congestion control method according to claim 1 or 2, characterized in that: The step of performing congestion control on the designated link based on the designated congestion control protocol and the congestion signal obtained through the aggregation process further includes: If it is determined that congestion control is performed based on the DCQCN algorithm in the specified congestion control protocol, the CNP packet is determined as a congestion signal; Determining a congestion notification identifier obtained through the aggregation process; The transmission rate of the designated link is updated according to the congestion notification identifier.
5. The congestion control method according to claim 1 or 2, characterized in that: The step of performing congestion control on the designated link based on the designated congestion control protocol and the congestion signal obtained through the aggregation process further includes: If it is determined that congestion control is performed based on the TIMELY algorithm in the specified congestion control protocol, the RTT is determined as a congestion signal; Determine an RTT result obtained through the aggregation process; The transmission rate of the designated link is updated according to the RTT result.
6. The congestion control method according to claim 1 or 2, characterized in that: The step of performing congestion control on the designated link based on the designated congestion control protocol and the congestion signal obtained through the aggregation process further includes: If it is determined that congestion control is performed based on the HPCC algorithm in the specified congestion control protocol, the INT is determined as a congestion signal; Determine an INT result obtained through the polymerization process; Calculate the actual link utilization rate according to the INT result; The transmission rate of the designated link is updated according to the actual utilization rate of the link.
7. The congestion control method according to claim 1 or 2, characterized in that: Also includes: When updating the transmission rate of the designated link, detecting the number of times the transmission rate is continuously increased and / or the number of times the transmission rate is continuously decreased; If the number of times the transmission rate is continuously increased exceeds a first preset number, or the number of times the transmission rate is continuously decreased exceeds a second preset number, the duration of the designated detection period is reduced.
8. A congestion control device, characterized in that: include: an acquisition module, configured to acquire a congestion detection response result within a specified detection period, and determine a congestion signal according to the congestion detection response result, wherein the congestion signal includes at least one of ECN, CNP, RTT and INT; The aggregation module is configured to aggregate the congestion signals having the same destination IP address and the same source IP address to obtain the congestion calculation result within the specified detection period, including: Within the specified detection period, congestion signals with the same destination IP address and the same source IP address are aggregated; Obtaining a congestion signal of aggregation processing in a previous detection cycle of the specified detection cycle; Performing weighted calculation on the congestion signal of the aggregation processing in the specified detection period and the congestion signal of the aggregation processing in the previous detection period according to a preset weight, so as to obtain a congestion calculation result in the specified detection period; The control module is configured to perform congestion control on a designated link based on a designated congestion control protocol and the congestion calculation result, wherein the designated link is determined by the destination IP address and the source IP address.
9. 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 7 based on instructions stored in the memory.
10. 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 7 is implemented.
11. 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 7 is implemented.
Citation Information
Patent Citations
Cross-data center RDMA network congestion control method and system
CN117896324A