End-network convergence congestion control method and device
By building multiple transmission queue pairs and comprehensively considering multiple data indicators for data allocation, the problem of low accuracy of existing congestion control methods is solved, more efficient network congestion management is achieved, and the efficiency of training of large language models is improved.
Patent Information
- Application Number
- CN202510570417.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-30
- Publication Date
- 2025-08-08
AI Technical Summary
The existing congestion control method uses measurement data round trip time or the number of congestion notification packets to control congestion alone, resulting in low accuracy of congestion control and is unable to effectively deal with network congestion problems during training of large language models.
Multiple transmission queue pairs are constructed and initialized, and data round trip time is comprehensively considered, the number of confirmed data packets and the number of congestion notification packets are confirmed, and data is allocated to multiple transmission queue pairs using the congestion control algorithm, a joint control algorithm and congestion degree evaluation index are constructed, and data is transmitted through multiple transmission queue pairs.
It improves the accuracy of congestion control, reduces network congestion, realizes reasonable allocation of transmission queue pairs, and improves the efficiency of training of large language models.
Smart Images

Figure CN120455370A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of network convergence congestion control, and in particular to a method and device for end-to-end network convergence congestion control. Background Art
[0002] With the widespread application of large language models, congestion control in intelligent computing networks has become an issue that cannot be ignored. Large language models have a huge number of parameters, and inter-machine communication will generate a large amount of low-entropy traffic in a short period of time, which may instantly fill up the port cache and cause congestion. Therefore, when training large models, it is crucial to implement an effective congestion control strategy.
[0003] Currently, related congestion control methods only use the measurement of data round-trip time or the number of congestion notification packets to perform congestion control, resulting in low congestion control accuracy. Summary of the Invention
[0004] In view of this, the present invention provides a method and apparatus for end-to-end congestion control to solve the problem of poor congestion control effect of related congestion control methods.
[0005] In a first aspect, the present invention provides a method for controlling congestion in an end-to-end convergence network, which is applied to a source end, wherein the source end and the sink end are connected via a network-side switch, and the source end and the sink end are arranged on the end side; the method comprises:
[0006] Build and initialize multiple transmit queue pairs;
[0007] Get the round trip time, number of acknowledged packets, and number of congestion notification packets corresponding to the transmission queue pair;
[0008] Based on the measured data round trip time, the number of confirmation data packets and the number of congestion notification packets, a congestion control algorithm is used to respectively allocate data to the multiple transmission queue pairs so as to transmit the data through the multiple transmission queue pairs.
[0009] The end-to-end converged congestion control method provided in this embodiment comprehensively considers the measured data round-trip time, number of confirmation data packets, and number of congestion notification packets corresponding to the transmission queue pairs when communicating between large model training machines. It constructs a joint control algorithm and congestion level evaluation index. Specifically, based on the number of congestion notification packets fed back from the network side and the measured data round-trip time calculated on the end side, a congestion control algorithm is used to allocate data to multiple transmission queue pairs. This avoids the problem of poor congestion control effectiveness caused by jitter or inaccurate single-dimensional information, thereby improving the accuracy of congestion control.
[0010] In an optional embodiment, based on the measured round-trip time of data, the number of acknowledgment packets, and the number of congestion notification packets, a congestion control algorithm is used to allocate data to the multiple transmission queue pairs, so as to transmit data through the multiple transmission queue pairs, including:
[0011] Set the network-side congestion threshold factor and compare the number of congestion notification packets with the product of the network-side congestion threshold factor and the number of confirmed packets;
[0012] If the number of congestion notification packets is greater than or equal to the product of the network-side congestion state threshold factor and the number of confirmed data packets, the congestion levels of multiple transmission queue pairs are calculated, and the transmission queue pair corresponding to the minimum congestion level value is used to transmit data;
[0013] Alternatively, if the number of congestion notification packets is less than the product of the network-side congestion status threshold factor and the number of confirmed data packets, the measured data round-trip time is compared with the target data round-trip time, and the data allocation amounts of multiple transmission queue pairs are adjusted based on the comparison results to transmit data through multiple transmission queue pairs.
[0014] The end-to-end convergence congestion control method provided in this embodiment calculates the congestion level value of each transmission queue pair, uses the transmission queue pair corresponding to the minimum congestion level value to transmit data, or adjusts the data allocation amount for multiple transmission queue pairs by combining the measured data round-trip time and the number of congestion notification packets fed back from the network side. This reduces network congestion, achieves reasonable allocation of transmission data to the transmission queue pairs, and improves the accuracy of congestion control.
[0015] In an optional implementation, if the number of confirmed congestion notification packets is greater than or equal to the product of the network-side congestion state threshold factor and the number of confirmed data packets, the congestion levels of multiple transmission queue pairs are calculated, and the transmission queue pair corresponding to the minimum congestion level value is used to transmit data. The congestion level calculation formula is as follows:
[0016]
[0017] in, Indicates the congestion level value, Indicates the number of congestion notification packets. Indicates the number of confirmed data packets. Indicates the round trip time of the measured data, Expressed as target data round trip time.
[0018] In an optional implementation, if the number of congestion notification packets is less than the product of the network-side congestion state threshold factor and the number of acknowledgement packets, comparing the measured data round-trip time with the target data round-trip time, and adjusting data allocation amounts of the multiple transmission queue pairs based on the comparison result, so as to transmit data through the multiple transmission queue pairs, including:
[0019] If the measured data round trip time is greater than or equal to the target data round trip time, reducing the data allocation amount of the plurality of transmission queue pairs, and using the transmission queue pairs with the reduced data allocation amount to transmit data;
[0020] Alternatively, if the measured data round-trip time is less than the target data round-trip time, the data allocation amounts of the plurality of transmission queue pairs are restored, and the transmission queue pairs with the restored data allocation amounts are used to transmit data.
[0021] The end-to-end convergence congestion control method provided in this embodiment compares the round-trip time of measured data with the round-trip time of target data, and then reasonably adjusts the size of data transmitted within the transmission queue by using multiplicative reduction or additive increase, thereby alleviating network congestion and avoiding low congestion control effect caused by jitter or inaccuracy of single-dimensional information.
[0022] In an optional embodiment, if the measured data round-trip time is greater than or equal to the target data round-trip time, the data allocation amount of the multiple transmission queue pairs is reduced, and the transmission queue pairs with the reduced data allocation amount are used to transmit data. The expression for reducing the data allocation amount of the multiple transmission queue pairs is:
[0023]
[0024] in, is the data allocation amount of the i-th transmission queue pair, and β is the multiplicative factor.
[0025] In an optional embodiment, if the measured data round-trip time is less than the target data round-trip time, the data allocations of the multiple transmission queue pairs are restored, and the transmission queue pairs with the restored data allocations are used to transmit data. The expression for restoring the data allocations of the multiple transmission queue pairs is:
[0026]
[0027] Here, α is the additive factor.
[0028] In a second aspect, the present invention provides a device for end-to-end congestion control, the device comprising:
[0029] A building module for building and initializing multiple transmission queue pairs;
[0030] An acquisition module, used to obtain the round-trip time of measured data, the number of confirmed data packets and the number of congestion notification packets corresponding to the transmission queue pair;
[0031] The allocation module is used to allocate data to the multiple transmission queue pairs respectively based on the measured data round-trip time, the number of confirmed data packets and the number of congestion notification packets using a congestion control algorithm, so as to transmit data through the multiple transmission queue pairs.
[0032] In a third aspect, the present invention provides a computer device comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, computer instructions being stored in the memory, and the processor executing the computer instructions to execute the end-to-end convergence congestion control method of the first aspect or any corresponding embodiment thereof.
[0033] In a fourth aspect, the present invention provides a computer-readable storage medium having computer instructions stored thereon, the computer instructions being used to enable a computer to execute the end-to-end convergence congestion control method of the first aspect or any corresponding embodiment thereof.
[0034] In a fifth aspect, the present invention provides a computer program product, comprising computer instructions, which are used to enable a computer to execute the end-to-end convergence congestion control method of the first aspect or any corresponding embodiment thereof. BRIEF DESCRIPTION OF THE DRAWINGS
[0035] In order to more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the specific embodiments or the description of the prior art. Obviously, the drawings described below are some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0036] Figure 1 1 is a schematic diagram of a synchronization detection process of a congestion control mechanism for end-to-end convergence according to an embodiment of the present invention;
[0037] Figure 2 is a flow chart of a method for controlling congestion in end-to-end convergence according to an embodiment of the present invention;
[0038] Figure 3 is a schematic diagram of a DNC active congestion control mode based on NCCL according to an embodiment of the present invention;
[0039] Figure 4 is a flow chart of another end-to-end congestion control method according to an embodiment of the present invention;
[0040] Figure 5 is a schematic flow chart of a DNC congestion control algorithm according to an embodiment of the present invention;
[0041] Figure 6 This is a structural block diagram of a device for end-to-end congestion control according to an embodiment of the present invention;
[0042] Figure 7 Schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. DETAILED DESCRIPTION
[0043] To make the purpose, technical solutions, and advantages of the embodiments of the present invention more clear, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the accompanying drawings in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without making creative efforts shall fall within the scope of protection of the present invention.
[0044] In the data-driven era, the rapid development of artificial intelligence technology has greatly promoted the rise of intelligent computing networks. Intelligent computing networks integrate high-performance computing, big data processing, artificial intelligence algorithms and advanced network technologies, aiming to build an efficient, flexible and intelligent computing resource scheduling and management platform to support the efficient training and inference of complex large models.
[0045] However, with the widespread application of large language models, congestion control in intelligent computing networks has become an issue that cannot be ignored. Large model training means a larger amount of communication data. Due to the large number of large model parameters, a large amount of low-entropy traffic will be generated in a short period of time during inter-machine communication, which may instantly fill up the port cache and cause congestion. Therefore, when conducting large model training, it is crucial to implement an effective congestion control strategy.
[0046] On the one hand, large model training is a distributed training method that is extremely sensitive to latency. Congestion in some links will seriously affect the overall training efficiency of large language models. On the other hand, related congestion control methods are mainly divided into congestion detection based on network-side switches and RTT detection methods based on end-side network cards. Both of the above congestion control methods have certain problems with poor congestion control effects.
[0047] Congestion control mechanism based on network-side switch detection: ECN (Explicit Congestion Notification) congestion detection is the most common congestion detection method. When network congestion occurs, the switch marks the ECN field in the congested packet before forwarding it. The receiver reports the congestion situation to the sender based on the ECN flag and adjusts the sending rate. ECN-based congestion control algorithms probabilistically mark packets based on the degree of network congestion to achieve adaptive sending rate adjustment. Among them, DC-QCN (Data Center Quantized Congestion Notification) is the main ECN-based congestion control algorithm, which needs to be used in conjunction with PFC (Priority Flow Control). The performance is closely related to the parameter selection (marking threshold), which makes parameter adjustment complex and still difficult to avoid PFC deadlock and PFC storm.
[0048] Congestion control mechanisms based on end-to-end network interface card (NIC) RTT (Round-Trip Time) detection: RTT is the time interval between a sender sending a data packet and receiving an acknowledgment packet from the peer. It reflects end-to-end network latency. If congestion occurs, data packets will wait in the receive queue, resulting in a correspondingly higher RTT. RTT-based congestion control algorithms determine the RTT based on the ACK (Acknowledgment Packet) returned by the receiver and use the RTT gradient or a specific algorithm to control the sender's send window size. Among these RTT-based congestion control algorithms, Timely (Timeout-Inferred Rate Adaptation for Congestion Control) and Swift (a delay-based congestion control algorithm for intra-datacenter communications) are the most common. Their accuracy depends on the accuracy of RTT measurement. High-precision RTT measurement requires specialized hardware support, which is costly. Furthermore, the system is sensitive to RTT changes and requires reasonable modeling to avoid overreaction.
[0049] Therefore, building a congestion control mechanism that can have an end-to-end integration perspective and comprehensive coverage of influencing factors is a key requirement for improving the efficiency of LLM (Large Language Model) training.
[0050] In order to solve the above technical problems, an embodiment of the present invention provides a method for controlling congestion of end-to-end convergence, which is applied to the source end 101. Figure 1As shown, the source end 101 and the sink end 102 are connected via a network-side switch 103 , and the source end 101 and the sink end 102 are arranged on a terminal side 104 .
[0051] Among them, the end side 104 is the interface or device that the user contacts (such as a mobile terminal and a client), the network side 105 is the underlying network support, and the end side 104 and the network side 105 together constitute the end network; the network side switch 103 is set on the network side 105, using Spine (backbone) devices and Leaf (leaf) devices.
[0052] Spine devices and Leaf devices refer to two switching layers in a data center network topology, namely the Spine layer and the Leaf layer. The Spine layer is composed of high-performance, high-port-density three-layer switches, which is equivalent to the core layer in a three-layer architecture; the Leaf layer is composed of access switches, which is equivalent to the access layer in a three-layer architecture; the Spine devices and Leaf devices are fully meshed, realizing high-bandwidth, low-latency, and non-blocking network communication.
[0053] According to an embodiment of the present invention, an embodiment of an end-to-end convergence congestion control method is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.
[0054] In this embodiment, a method for controlling congestion in a terminal-network convergence is provided, which can be used for the above-mentioned source terminal. Figure 2 FIG. 1 is a flow chart of a method for controlling congestion in an end-to-end convergence manner according to an embodiment of the present invention. Figure 2 As shown, the process includes the following steps:
[0055] Step S201: construct and initialize multiple transmission queue pairs.
[0056] Specifically, NCCL is set at the source end 101. It is a collective communication library (Collective Communication Library) that implements collective communication software and is provided to upper-layer applications as a software module. NCCL also constructs and initializes k QPs (Queue Pairs): Q k ={q1,q2,q3,…,q k A QP is a transmission queue pair in RDMA (Remote Direct Memory Access). In RDMA technology, the communication subject is the QP, not the node (each node can apply for and use multiple QPs). A local QP can connect to a remote QP, thus realizing point-to-point data transmission.
[0057] Step S202 : obtaining the measured data round trip time, the number of confirmed data packets, and the number of congestion notification packets corresponding to the transmission queue pair.
[0058] Specifically, when the training of a large model of the intelligent computing network requires multiple nodes to communicate between machines, the RTT measurement function of the end-side network card (the network adapter deployed on the end side 104) and the ECN detection function of the network-side switch 103 are synchronously turned on to prevent the problem of incomplete congestion response caused by single-dimensional measurement; when a congestion point appears in the network, the ECN mechanism of the network-side switch 103 labels the ECN bit of the packet header according to the linear growth probability of the queue length, and the destination end 102 returns a congestion notification CNP (Congestion Notification Packet) to the source end 101. At the same time, the end-side network card calculates the RTT of the data transmitted by each QP to observe the congestion situation.
[0059] Further, if Figure 3 As shown, the RTT time (i.e., the round-trip time of measured data) that NCCL reads the data packet in the i-th QP from the end-side network card is The number of ACK packets (Acknowledgment Packets) received by the source end of each P2P (Peer-to-Peer) transmission And the number of received explicit congestion notifications CNP is i∈k.
[0060] Step S203 : Based on the measured data round trip time, the number of confirmed data packets and the number of congestion notification packets, a congestion control algorithm is used to respectively allocate data to the multiple transmission queue pairs so as to transmit data through the multiple transmission queue pairs.
[0061] Specifically, NCCL integrates DNC (Device-Net Congestion Scheme, congestion control algorithm) to measure the round-trip time of data. Number of congestion notification packets Number of confirmed packets The three indicators are analyzed and calculated, and the QP task scheduling module is used to reasonably allocate QPs and adjust the transmission data size of tasks within the QP. The congestion control algorithm is integrated into NCCL, which reduces the cost. At the same time, QP control can actively switch high-load channels to ensure the latency requirements of collective communication.
[0062] The end-to-end converged congestion control method provided in this embodiment comprehensively considers the measured data round-trip time, number of confirmation data packets, and number of congestion notification packets corresponding to the transmission queue pairs when communicating between large model training machines. It constructs a joint control algorithm and congestion level evaluation index. Specifically, based on the number of congestion notification packets fed back from the network side and the measured data round-trip time calculated on the end side, a congestion control algorithm is used to allocate data to multiple transmission queue pairs. This avoids the problem of poor congestion control effectiveness caused by jitter or inaccurate single-dimensional information, thereby improving the accuracy of congestion control.
[0063] In this embodiment, a congestion control method for end-to-end convergence is provided, which can be used for the above-mentioned source end. Figure 4 FIG. 1 is a flow chart of a method for controlling congestion in an end-to-end convergence manner according to an embodiment of the present invention. Figure 4 As shown, the process includes the following steps:
[0064] Step S401: Build and initialize multiple transmission queue pairs. Figure 2 Step S201 of the illustrated embodiment will not be described in detail here.
[0065] Step S402: Obtain the measured data round trip time, number of confirmed data packets, and number of congestion notification packets corresponding to the transmission queue. Figure 2 Step S202 of the illustrated embodiment will not be described in detail here.
[0066] Step S403 : Based on the measured data round trip time, the number of acknowledgement packets, and the number of congestion notification packets, a congestion control algorithm is used to allocate data to the multiple transmission queue pairs, so as to transmit data through the multiple transmission queue pairs.
[0067] Specifically, the above step S403 includes:
[0068] Step S4031: Set the network side congestion state threshold factor, and compare the number of congestion notification packets with the product of the network side congestion state threshold factor and the number of confirmed data packets.
[0069] Step S4032: If the number of congestion notification packets is greater than or equal to the product of the network-side congestion threshold factor and the number of confirmed data packets, the congestion levels of multiple transmission queue pairs are calculated, and the transmission queue pair corresponding to the minimum congestion level value is used to transmit data.
[0070] Specifically, if Figure 5 As shown, the number of congestion notification packets The network side congestion threshold factor δ and the number of confirmed data packets If the product of This means that the network is severely congested. NCCL will receive congestion notification packets based on the number of packets received. The congestion level of each QP is calculated by measuring the round-trip time of data, and the QP with the lowest congestion level is switched to for data transmission.
[0071] Furthermore, the calculation formula of the congestion level value is as follows:
[0072] (1)
[0073] in, Indicates the congestion level value, Indicates the number of congestion notification packets. Indicates the number of confirmed data packets. Indicates the round trip time of the measured data, Expressed as target data round trip time.
[0074] Step S4033, or, if the number of congestion notification packets is less than the product of the network-side congestion state threshold factor and the number of confirmed data packets, the measured data round-trip time is compared with the target data round-trip time, and the data allocation amounts of the multiple transmission queue pairs are adjusted based on the comparison results to transmit data through the multiple transmission queue pairs.
[0075] In some optional implementations, the above step S4033 includes:
[0076] In step a1, if the measured data round trip time is greater than or equal to the target data round trip time, the data allocation amount of the plurality of transmission queue pairs is reduced, and the transmission queue pairs with the reduced data allocation amount are used to transmit data.
[0077] Specifically, if Figure 5 As shown, if Combined with the round-trip time of the measurement data from the end-side statistics Round trip time to target data Perform analysis if This means that there is a certain degree of congestion in the network. NCCL should adjust the data allocation of QP to alleviate the congestion. It should take into account the performance of the end network and reduce the data allocation of the transmission queue pair:
[0078] The expression for reducing the data allocation amount of multiple transmission queue pairs is:
[0079]
[0080] in, is the data allocation amount of the i-th transmission queue pair, and β is the multiplicative factor.
[0081] Step a2: Alternatively, if the measured data round trip time is less than the target data round trip time, the data allocation amounts of the plurality of transmission queue pairs are restored, and the transmission queue pairs with restored data allocation amounts are used to transmit data.
[0082] Specifically, if NCCL can restore the data allocation amount of the transmission queue to the QP in an additive manner, and use the transmission queue with the restored data allocation amount to transmit data to the QP.
[0083] The expression for recovering the data allocation of multiple transmission queue pairs is:
[0084]
[0085] Here, α is the additive factor.
[0086] The end-to-end convergence congestion control method provided in this embodiment calculates the congestion level value of each transmission queue pair, uses the transmission queue pair corresponding to the minimum congestion level value to transmit data, or adjusts the data allocation amount for multiple transmission queue pairs by combining the measured data round-trip time and the number of congestion notification packets fed back from the network side. This reduces network congestion, achieves reasonable allocation of transmission data to the transmission queue pairs, and improves the accuracy of congestion control.
[0087] This embodiment also provides an end-to-end convergence congestion control device for implementing the aforementioned embodiments and preferred implementations. Details already described will not be repeated. As used below, the term "module" may refer to a combination of software and / or hardware that implements a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, implementation in hardware, or a combination of software and hardware, is also possible and contemplated.
[0088] This embodiment provides a device for controlling congestion in a terminal-network convergence manner. Figure 6 Shown, including:
[0089] The construction module 601 is used to construct and initialize multiple transmission queue pairs.
[0090] The acquisition module 602 is configured to acquire the measured data round trip time, the number of confirmed data packets, and the number of congestion notification packets corresponding to the transmission queue.
[0091] The allocation module 603 is configured to allocate data to the multiple transmission queue pairs based on the measured round-trip time of data, the number of confirmed data packets and the number of congestion notification packets using a congestion control algorithm, so as to transmit data through the multiple transmission queue pairs.
[0092] In some optional implementations, the allocation module 603 includes:
[0093] The setting unit is used to set the network side congestion state threshold factor and compare the number of confirmed data packets with the product of the network side congestion state threshold factor and the number of congestion notification packets.
[0094] a calculation unit, configured to calculate congestion levels of a plurality of transmission queue pairs if the number of congested data packets is greater than or equal to the product of a network-side congestion state threshold factor and the number of confirmed data packets, and transmit data using the transmission queue pair corresponding to the minimum congestion level value;
[0095] A comparing unit is configured to compare the measured data round-trip time with the target data round-trip time if the number of congestion notification packets is less than the product of the network-side congestion state threshold factor and the number of confirmed data packets, and adjust the data allocation amounts of the multiple transmission queue pairs based on the comparison results to transmit data through the multiple transmission queue pairs.
[0096] In some optional implementations, the calculation formula for the congestion level value in the calculation unit is as follows:
[0097]
[0098] in, Indicates the congestion level value, Indicates the number of congestion notification packets. Indicates the number of confirmed data packets. Indicates the round trip time of the measured data, Expressed as target data round trip time.
[0099] In some optional embodiments, the comparison unit includes:
[0100] The reducing subunit is configured to reduce the data allocation amount of the plurality of transmission queue pairs if the measured data round trip time is greater than or equal to the target data round trip time, and transmit data using the transmission queue pairs with the reduced data allocation amount.
[0101] The recovery subunit is used to recover the data allocation of the plurality of transmission queue pairs if the measured data round trip time is less than the target data round trip time, and transmit data using the transmission queue pairs after recovering the data allocation.
[0102] In some optional implementations, the expression for reducing the data allocation amount of multiple transmission queue pairs in the subunit is:
[0103]
[0104] in, is the data allocation amount of the i-th transmission queue pair, and β is the multiplicative factor.
[0105] In some optional implementations, the expression for restoring the data allocation amount of multiple transmission queue pairs in the recovery subunit is:
[0106]
[0107] Here, α is the additive factor.
[0108] The further functional description of each of the above modules and units is the same as that of the above corresponding embodiments and will not be repeated here.
[0109] The end-to-end convergence congestion control device in this embodiment is presented in the form of a functional unit, where the unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that executes one or more software or fixed programs, and / or other devices that can provide the above functions.
[0110] The embodiment of the present invention also provides a computer device having the above Figure 6 The end-to-end congestion control device is shown.
[0111] See also Figure 7 , Figure 7 is a structural diagram of a computer device provided by an optional embodiment of the present invention, such as Figure 7 As shown, the computer device includes: one or more processors 10, a memory 20, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. Various components utilize different buses to communicate with each other and can be installed on a common mainboard or installed in other ways as needed. The processor can process the instructions executed in the computer device, including instructions stored in or on the memory to display the graphical information of a GUI on an external input / output device (such as, a display device coupled to the interface). In some optional embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories. Equally, multiple computer devices can be connected, and each device provides part of the necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Figure 7 A processor 10 is taken as an example.
[0112] The processor 10 may be a central processing unit, a network processor, or a combination thereof. The processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit, a programmable logic device, or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general purpose array logic, or any combination thereof.
[0113] The memory 20 stores instructions that can be executed by at least one processor 10, so as to enable at least one processor 10 to execute the method shown in the above embodiment.
[0114] The memory 20 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and application programs required for at least one function; the data storage area may store data created based on the use of the computer device, etc. In addition, the memory 20 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some optional embodiments, the memory 20 may optionally include a memory remotely located relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0115] The memory 20 may include a volatile memory, such as a random access memory; the memory may also include a non-volatile memory, such as a flash memory, a hard disk or a solid-state drive; the memory 20 may also include a combination of the above types of memory.
[0116] The computer device further includes an input device 30 and an output device 40. The processor 10, the memory 20, the input device 30 and the output device 40 may be connected via a bus or other means. Figure 7 The bus connection is taken as an example.
[0117] The input device 30 can receive input digital or character information and generate key signal input related to user settings and function control of the computer device, such as a touch screen, a keypad, a mouse, a trackpad, a touch pad, an indicator stick, one or more mouse buttons, a trackball, a joystick, etc. The output device 40 can include a display device, an auxiliary lighting device (e.g., an LED), and a tactile feedback device (e.g., a vibration motor). The above-mentioned display device includes but is not limited to a liquid crystal display, a light emitting diode, a display, and a plasma display. In some optional embodiments, the display device can be a touch screen.
[0118] The embodiment of the present invention also provides a computer-readable storage medium. The above-mentioned method according to the embodiment of the present invention can be implemented in hardware, firmware, or implemented as a computer code that can be recorded in a storage medium, or implemented as a computer code that is originally stored in a remote storage medium or a non-temporary machine-readable storage medium and downloaded through a network and will be stored in a local storage medium, so that the method described herein can be stored in such software processing on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. Among them, the storage medium can be a magnetic disk, an optical disk, a read-only storage memory, a random access memory, a flash memory, a hard disk or a solid-state drive, etc.; further, the storage medium can also include a combination of the above-mentioned types of memory. It can be understood that a computer, a processor, a microprocessor controller or programmable hardware includes a storage component that can store or receive software or computer code. When the software or computer code is accessed and executed by a computer, a processor or hardware, the method shown in the above embodiment is implemented.
[0119] A portion of the present invention may be applied as a computer program product, such as a computer program instruction, which, when executed by a computer, can call or provide the method and / or technical solution according to the present invention through the operation of the computer. Those skilled in the art should understand that the form in which the computer program instruction exists in a computer-readable medium includes, but is not limited to, a source file, an executable file, an installation package file, etc. Accordingly, the way in which the computer program instruction is executed by the computer includes, but is not limited to: the computer directly executes the instruction, or the computer compiles the instruction and then executes the corresponding compiled program, or the computer reads and executes the instruction, or the computer reads and installs the instruction and then executes the corresponding installed program. Here, the computer-readable medium may be any available computer-readable storage medium or communication medium that can be accessed by the computer.
[0120] Although the embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art may make various modifications and variations without departing from the spirit and scope of the present invention. Such modifications and variations are all within the scope defined by the appended claims.
Claims
1. A congestion control method for end-to-end convergence, characterized in that: Applied to a source end, the source end and the sink end are connected via a network-side switch, and the source end and the sink end are arranged on the end side; the method includes: Build and initialize multiple transmit queue pairs; Obtaining the measured data round trip time, the number of confirmed data packets, and the number of congestion notification packets corresponding to the transmission queue pair; Based on the measured data round trip time, the number of acknowledgment data packets and the number of congestion notification packets, a congestion control algorithm is used to respectively allocate data to the multiple transmission queue pairs so as to transmit data through the multiple transmission queue pairs.
2. The method according to claim 1, characterized in that The method further comprises: allocating data to the plurality of transmission queue pairs based on the measured data round trip time, the number of the confirmation data packets, and the number of the congestion notification packets by using a congestion control algorithm, so as to transmit data through the plurality of transmission queue pairs; Setting a network-side congestion state threshold factor, and comparing the number of congestion notification packets with the product of the network-side congestion state threshold factor and the number of confirmation data packets; If the number of the congestion notification packets is greater than or equal to the product of the network-side congestion state threshold factor and the number of the confirmation data packets, then calculating the congestion degree values of the multiple transmission queue pairs, and using the transmission queue pair corresponding to the minimum congestion degree value to transmit the data; Alternatively, if the number of congestion notification packets is less than the product of the network-side congestion status threshold factor and the number of confirmation data packets, the measured data round-trip time is compared with the target data round-trip time, and the data allocation amounts of the multiple transmission queue pairs are adjusted based on the comparison results to transmit the data through the multiple transmission queue pairs.
3. The method according to claim 2, characterized in that If the number of congestion notification packets is greater than or equal to the product of the network-side congestion state threshold factor and the number of confirmation data packets, the congestion levels of the multiple transmission queue pairs are calculated, and the transmission queue pair corresponding to the minimum congestion level value is used to transmit the data. The calculation formula of the congestion level value is as follows: in, Indicates the congestion level value, Indicates the number of congestion notification packets. Indicates the number of confirmed data packets. Indicates the round trip time of the measured data, Expressed as target data round trip time.
4. The method according to claim 2, characterized in that If the number of the congestion notification packets is less than the product of the network-side congestion state threshold factor and the number of the confirmation data packets, comparing the measured data round-trip time with the target data round-trip time, and adjusting the data allocation amounts of the multiple transmission queue pairs based on the comparison results, so as to transmit the data through the multiple transmission queue pairs, including: If the measured data round-trip time is greater than or equal to the target data round-trip time, reducing the data allocation amount of the plurality of transmission queue pairs, and using the transmission queue pairs with the reduced data allocation amount to transmit the data; Alternatively, if the measured data round-trip time is less than the target data round-trip time, the data allocation amounts of the plurality of transmission queue pairs are restored, and the data is transmitted using the transmission queue pairs with restored data allocation amounts.
5. The method according to claim 4, characterized in that If the number of congestion notification packets is less than the product of the network-side congestion state threshold factor and the number of confirmation data packets, and the measured data round-trip time is greater than or equal to the target data round-trip time, then reducing the data allocation amount of the multiple transmission queue pairs, and using the transmission queue pairs with the reduced data allocation amount to transmit the data. The expression for reducing the data allocation amount of the multiple transmission queue pairs is: in, is the data allocation amount of the i-th transmission queue pair, and β is the multiplicative factor.
6. The method according to claim 4, characterized in that If the measured data round-trip time is less than the target data round-trip time, the data allocation amounts of the multiple transmission queue pairs are restored, and the data is transmitted using the transmission queue pairs after the data allocation amounts are restored. The expression for restoring the data allocation amounts of the multiple transmission queue pairs is: Here, α is the additive factor.
7. A device for end-to-end congestion control, characterized in that: The device comprises: A building module for building and initializing multiple transmission queue pairs; An acquisition module, configured to acquire the round trip time of measured data, the number of confirmed data packets, and the number of congestion notification packets corresponding to the transmission queue; An allocation module is configured to allocate data to the plurality of transmission queue pairs respectively based on the measured data round trip time, the number of confirmation data packets and the number of congestion notification packets by using a congestion control algorithm, so as to transmit data through the plurality of transmission queue pairs.
8. A computer device, characterized in that: include: A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the end-to-end convergence congestion control method according to any one of claims 1 to 6 by executing the computer instructions.
9. A computer-readable storage medium, characterized in that The computer-readable storage medium stores computer instructions, and the computer instructions are used to enable a computer to execute the end-to-end convergence congestion control method according to any one of claims 1 to 6.
10. A computer program product, characterized in that The method comprises computer instructions, wherein the computer instructions are used to enable a computer to execute the end-to-end convergence congestion control method according to any one of claims 1 to 6.