Ethernet rdma active congestion control method, apparatus and device
By using probe data packets and a fake ACK mechanism in Ethernet RDMA networks to dynamically adjust the transmission path and rate, the complexity and latency sensitivity of the DCQCN algorithm are solved, achieving fast and accurate congestion control and improving network performance and stability.
Patent Information
- Application Number
- CN202410977165.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-19
- Publication Date
- 2026-01-06
- Estimated Expiration
- 2044-07-19
AI Technical Summary
Existing RDMA-based data center network congestion control algorithms, such as DCQCN, are highly complex, sensitive to network latency, and may introduce uncertainties, leading to network performance degradation and stability issues.
The Ethernet RDMA active congestion control method is adopted. The sending end marks the probe data packets, the forwarding device sends the false ACK, calculates the congestion status information, and adds the congestion status between nodes to the true ACK. The sending end updates the network delay topology based on the true ACK and dynamically adjusts the sending path and rate to achieve fast congestion feedback and avoid network congestion.
It achieves fast and accurate congestion control, reduces network latency, improves network throughput and stability, and maintains compatibility with existing protocols without requiring modification of the packet header.
Smart Images

Figure CN118714093B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of communication technology, and in particular to an Ethernet RDMA active congestion control method, apparatus, and device. Background Technology
[0002] As data centers continue to expand in scale and business types become increasingly complex, data center networks face greater challenges, with low latency being a core requirement.
[0003] When the incoming traffic exceeds the network's capacity, network congestion occurs, leading to increased queuing delays, buffer overflows, and packet loss. Continuous packet loss and retransmission further drastically reduces the network's effective throughput, and may even cause network collapse.
[0004] To address these issues, various congestion control algorithms for data center networks have emerged in recent years. Among them, RDMA-based solutions have received widespread attention. Remote Direct Memory Access (RDMA) is a high-speed network communication technology that can bypass the operating system to directly access remote memory, thereby significantly reducing communication latency. In high-performance networks, especially with RDMA over Converged Ethernet (RoCE) v2, the importance of congestion issues has further increased, placing higher demands on the latency of congestion control technologies.
[0005] Currently, several RDMA-based technical solutions have proposed low-latency congestion control mechanisms. For example, Data Center Quantized Congestion Notification (DCQCN) is a congestion control algorithm based on Explicit Congestion Notification (ECN), which can quickly detect and avoid congestion.
[0006] However, the current DCQCN technology has the following technical shortcomings:
[0007] Complexity: The DCQCN algorithm is relatively complex, requiring the implementation of certain logic and algorithms in switches and network devices, which increases the cost of deployment and maintenance.
[0008] Sensitive to network latency: The DCQCN algorithm is highly sensitive to network latency, especially under high load, which can introduce additional delays. This can impact the performance of latency-sensitive applications.
[0009] Potential Uncertainty Introduced: Since the DCQCN algorithm is based on a quantized congestion notification mechanism, there may be quantization errors and uncertainties, which may affect the accuracy and stability of the algorithm. Summary of the Invention
[0010] In view of this, the present invention provides an Ethernet RDMA active congestion control method, apparatus and device to solve the technical problem of poor real-time performance and accuracy of congestion control based on Ethernet RDMA related protocols.
[0011] Based on one aspect of the embodiments of the present invention, the present invention provides an Ethernet RDMA active congestion control method, which is applied to a network device employing Ethernet Remote Memory Direct Access (RDMA) technology, and the method includes:
[0012] When the sending end and the receiving end establish a connection, the sending window and sending rate of the forwarding path are initialized;
[0013] When the sending end sends data packets to the receiving end, it marks some data packets as probe data packets;
[0014] After receiving the probe data packet, the forwarding device on the forwarding path sends a pseudo ACK of the probe data packet to the forwarding device of the next hop.
[0015] After receiving a false ACK from the next hop, the forwarding device calculates the transmission rate between itself and the next hop based on the false ACK and records the current congestion status information. It also adjusts the transmission rate between itself and the next hop in real time according to the transmission window of the path. The congestion status information includes at least the transmission rate, round-trip time (RTT), processing delay, and bandwidth.
[0016] After receiving a true ACK message for the probe data packet sent by the receiving end, the forwarding device appends the congestion status information of the probe data packet recorded locally to the true ACK message and sends it to the sending end.
[0017] After receiving a true ACK, the sending end calculates the RTT and transmission rate of the entire path based on the true ACK, calculates the new path transmission window and transmission rate based on the congestion control policy, and distributes the new path transmission window and transmission rate to each forwarding device on the path.
[0018] Furthermore, the method also includes:
[0019] The sending end updates the network delay topology based on the congestion status information between each node attached in the true ACK message, calculates the path delay of each path based on the network delay topology, and dynamically adjusts the path priority according to the path delay magnitude.
[0020] Furthermore, the method also includes:
[0021] The sending end decides which forwarding path to use for forwarding data packets based on path priority and switches forwarding paths, or decides the load weight of data packets transmitted on different paths.
[0022] Based on one aspect of the embodiments of the present invention, the present invention also provides an Ethernet RDMA active congestion control method, which is applied to a transmitting end device employing Ethernet Remote Memory Direct Access (RDMA) technology, and the method includes:
[0023] Establish a connection with the receiving device and initialize the sending window and sending rate of the forwarding path;
[0024] Send data packets to the receiving end, and mark some data packets as probe data packets;
[0025] The receiving forwarding device returns a true ACK, which includes congestion status information calculated by each forwarding device along the path based on the false ACK sent by the next-level forwarding device, and congestion status information calculated by the last-hop forwarding device based on the true ACK sent by the receiving end; the congestion status information includes at least the transmission rate, round-trip time (RTT), processing delay, and bandwidth.
[0026] The RTT and transmission rate of the entire path are calculated based on the true ACK, and a new path transmission window and transmission rate are calculated based on the congestion control policy. The new path transmission window and transmission rate are then distributed to each forwarding device on the path.
[0027] Furthermore, the method also includes:
[0028] The network latency topology is updated based on the congestion status information between nodes attached to the true ACK message. The path latency of each path is calculated based on the network latency topology, and the path priority is dynamically adjusted according to the path latency.
[0029] Furthermore, the method for marking the data packet as a probe data packet is any one of the following methods:
[0030] Systematic sampling labeling method: This method selects one data packet from every preset number of data packets and labels it as a probe data packet;
[0031] Random sampling labeling method: This method determines whether each data packet is a probe data packet according to a fixed probability, and if it is selected, the data packet is labeled as a probe data packet;
[0032] Regional sampling and labeling method: This method samples according to a specific window area. When the sending window reaches a preset threshold, a portion of data packets are randomly selected within the effective area of the sending window and labeled as probe data packets.
[0033] Based on one aspect of the embodiments of the present invention, the present invention also provides an Ethernet RDMA active congestion control method, which is applied to a forwarding device employing Ethernet Remote Memory Direct Access (RDMA) technology, and the method includes:
[0034] After receiving the path sending window and sending rate from the sending end, the forwarding device forwards data packets based on the path sending window and sending rate.
[0035] After receiving the probe data packet, the forwarding device on the forwarding path sends a pseudo ACK of the probe data packet to the forwarding device of the next hop.
[0036] After receiving a false ACK from the next hop, the forwarding device calculates the transmission rate between itself and the next hop based on the false ACK and records the current congestion status information. It also adjusts the transmission rate between itself and the next hop in real time according to the transmission window of the path. The congestion status information includes at least the transmission rate, round-trip time (RTT), processing delay, and bandwidth.
[0037] After receiving a true ACK message for the probe data packet sent by the receiving end, the forwarding device appends the congestion status information of the probe data packet recorded locally to the true ACK message and sends it to the sending end.
[0038] Based on one aspect of the embodiments of the present invention, the present invention also provides an Ethernet RDMA active congestion control device, which is applied to a transmitting end device employing Ethernet Remote Memory Direct Access (RDMA) technology, and the device includes:
[0039] The congestion control module is used to establish a connection with the receiving device, initialize the sending window and sending rate of the forwarding path; calculate the RTT and sending rate of the entire path based on the true ACK returned by the forwarding device, calculate the new path sending window and sending rate based on the congestion control strategy, and send the new path sending window and sending rate to each forwarding device on the path.
[0040] The transceiver module is used to send data packets to the receiving end, marking some data packets as probe data packets; and to receive true ACKs returned by the forwarding devices. The true ACKs include congestion status information calculated by each forwarding device on the path based on the false ACKs sent by the next-level forwarding device, and congestion status information calculated by the last-hop forwarding device based on the true ACKs sent by the receiving end. The congestion status information includes at least the transmission rate, round-trip time (RTT), processing delay, and bandwidth.
[0041] Furthermore, the device also includes:
[0042] The network topology module is used to update the network delay topology based on the congestion status information between nodes attached to the true ACK message, calculate the path delay of each path through the network delay topology, and dynamically adjust the path priority according to the path delay magnitude.
[0043] Based on one aspect of the embodiments of the present invention, the present invention also provides an Ethernet RDMA active congestion control device, which is applied to a forwarding device employing Ethernet Remote Memory Direct Access (RDMA) technology, and the device includes:
[0044] The forwarding module is used to forward data packets based on the path sending window and sending rate after receiving the path sending window and sending rate from the sending end.
[0045] The pseudo-ACK processing module is used to send a pseudo-ACK of the probe data packet to the next-hop forwarding device after receiving the probe data packet; after receiving the pseudo-ACK sent by the next hop, calculate the transmission rate between the next hop and the next hop based on the pseudo-ACK and record the current congestion status information; and after receiving the true ACK packet of the probe data packet sent by the receiving end, append the congestion status information of the probe data packet recorded locally to the true ACK and send it to the sending end; the congestion status information includes at least the transmission rate, round-trip time (RTT), processing delay, and bandwidth.
[0046] The first congestion control module is used to adjust the transmission rate between the path and the next hop in real time according to the transmission window of the path.
[0047] In this invention, the forwarding device calculates the transmission rate between nodes based on the pseudo-ACK sent by the next hop, and includes congestion status information between adjacent nodes in the true ACK. This allows the sender to quickly detect the congestion status between nodes in the network path, rapidly identify congestion points, and proactively avoid congestion. Real-time adjustments to the data transmission rate between nodes enable rapid congestion feedback, preventing the aggravation of link congestion and achieving rapid congestion convergence. This invention does not require adding or modifying the RoCE header, exhibiting excellent compatibility. Attached Figure Description
[0048] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments of the present invention or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in the present invention. For those skilled in the art, other drawings can be obtained from these drawings of the embodiments of the present invention.
[0049] Figure 1 This is a schematic diagram of the network topology between the sending and receiving ends of a remote direct memory access protocol based on Ethernet in one embodiment of the present invention.
[0050] Figure 2 This is a flowchart illustrating the steps of an end-to-end active congestion control method based on Ethernet RDMA according to an embodiment of the present invention.
[0051] Figure 3 This is a schematic diagram illustrating how a forwarding device on a forwarding path adds inter-node congestion status information to a true ACK packet and forwards it to the sending end in one embodiment of the present invention.
[0052] Figure 4 This is a schematic diagram of the network delay topology detected by the sending end through the congestion status information attached to the true ACK message in one embodiment of the present invention;
[0053] Figure 5 This is a schematic diagram of the format structure of a true ACK message sent from the receiving end to the sending end in one embodiment of the present invention;
[0054] Figure 6 This is a schematic diagram of the pseudo-ACK packet format structure sent by the forwarding device to the next hop in one embodiment of the present invention;
[0055] Figure 7 This is a schematic diagram of an electronic device structure for implementing the Ethernet RDMA congestion control method provided by the present invention, according to an embodiment of the present invention. Detailed Implementation
[0056] The terminology used in this embodiment of the invention is for the purpose of describing particular embodiments only and is not intended to limit the embodiments of the invention. The singular forms “a,” “the,” and “the” used in this embodiment are also intended to include the plural forms unless the context clearly indicates otherwise. Although embodiments of the invention may be described in terms such as first, second, and third, this descriptive method is only used to distinguish similar information, entities, or steps, and not to describe a specific order or sequence. For example, without departing from the scope of the embodiments of the invention, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Furthermore, in some scenarios, first information may refer to one piece of information or multiple pieces of information of the same kind. In addition, the word “if” used can be interpreted as “when…”, “when…”, or “in response to a determination.” The term “and / or” in this invention is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone, where A and B can be singular or plural. Furthermore, in the description of this invention, unless otherwise stated, “multiple” means two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can be expressed as: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.
[0057] To address the technical issues of poor real-time performance in congestion control within Ethernet-based remote direct memory access protocols, this invention provides an active congestion control scheme. The basic idea is as follows: The sending end (source node) marks a portion of data packets as probe packets. Upon receiving these probe packets, forwarding devices on the forwarding path (e.g., switches) send a pseudo-acknowledgment (ACK) response packet to the next-level forwarding device. The forwarding device obtains congestion status information with the next-level forwarding device through the pseudo-ACK. After receiving a genuine ACK packet from the receiving end (target node), the forwarding device appends its own recorded congestion status information to the genuine ACK packet. The sending end maintains the end-to-end network latency topology based on the genuine ACK and the appended congestion status information, performs congestion control, and dynamically adjusts the data transmission path according to the network latency topology, thereby reducing overall network latency, avoiding network congestion, and improving network throughput.
[0058] The specific implementation process of the present invention will be described in detail below with reference to the accompanying drawings and specific embodiments. It should be noted that the steps and flow shown in the drawings and embodiments can be executed in a computer system such as a set of computer-executable instructions. The one or more method steps illustrated can be single, multiple, or aggregated together and run in the computer system as a software module or virtual device. Although the illustrated steps and flow have time and sequence logic, the present invention does not limit the execution of these steps in certain circumstances in a different order than that shown here. Under the guidance of the purpose of the present invention, simple changes or combinations of the execution order of these steps should also fall within the scope of disclosure of the embodiments of the present invention.
[0059] Figure 1 This is a network topology diagram illustrating the connection between the sender and receiver of a Remote Direct Memory Access (RDA) protocol based on Ethernet in one embodiment of the present invention. Host A and Host B achieve end-to-end data transmission via RDA over Ethernet. Host A's network interface card (NIC) acts as the sender, and Host B's NIC acts as the receiver. There can be multiple data forwarding paths between the two ends. Host A performs congestion control and maintains the network latency topology based on the true ACK packets returned by Host B and the congestion status information detected by each forwarding device. The sender can select the forwarding path for data packets based on the network latency topology.
[0060] Figure 2 This is a flowchart illustrating the steps of an end-to-end active congestion control method based on Ethernet RDMA according to an embodiment of the present invention. The method is applied to network devices employing Ethernet Remote Memory Direct Access (RDMA) technology, including a transmitting device, a receiving device, and a forwarding device. The method includes:
[0061] Step 201. When the sending end and the receiving end establish a connection, initialize the sending window and sending rate of the forwarding path;
[0062] When establishing a connection between the sender and receiver based on the Ethernet RDMA protocol, it is necessary to initialize the transmission window (CWND), also known as the congestion control window / congestion window, and transmission rate for each forwarding path between the end and end. The transmission window (CWND) refers to the maximum amount of data (in bytes) that the sender is allowed to send within a round-trip time (RTT) without network congestion. The time period corresponding to the transmission window (CWND) is a complete RTT, including the time from sending to the peer and receiving the ACK. CWND controls the total amount of data transmitted within this time.
[0063] The sender calculates the transmission window CWND for each path based on the ACK message returned by the receiver and dynamically updates the CWND for each path using the congestion control algorithm.
[0064] Step 202. When the sending end sends data packets to the receiving end, it marks some data packets as probe data packets;
[0065] The probe data packet itself is a data packet, but it carries a probe marker and includes a link congestion detection function. The forwarding devices on the data packet forwarding path identify whether the received data packet is a probe data packet based on the probe marker in the data packet.
[0066] The method for marking part of the data packet as a probe data packet is as follows:
[0067] Systematic sampling labeling method: This method selects one data packet from every preset number of data packets and labels it as a probe data packet.
[0068] Random sampling labeling method: This method determines whether each data packet is a probe data packet according to a fixed probability. If a packet is selected, it is labeled as a probe data packet. For example, each packet has a 10% probability of being selected as a probe data packet.
[0069] Regional sampling and labeling method: This method samples data within a specific window region. When the sending window reaches a preset threshold, a portion of data packets within the effective area of the sending window are randomly selected and labeled as probe data packets. For example, sampling can be performed in a specific high-latency, low-rate region.
[0070] Step 203. After receiving the probe data packet, the forwarding device on the forwarding path sends a pseudo ACK of the probe data packet to the forwarding device of the next hop; after receiving the pseudo ACK sent by the next hop, the forwarding device calculates the transmission rate between itself and the next hop based on the pseudo ACK and records the current congestion status information, and adjusts the transmission rate between itself and the next hop in real time according to the transmission window of the path; the congestion status information includes at least the transmission rate, round-trip time (RTT), processing delay, and bandwidth;
[0071] Each forwarding device on the end-to-end forwarding path (e.g.) Figure 1 In the example, switches 1, 2, and 3, upon receiving a data packet from the previous hop, first determine if the data packet carries a probe flag. If it does, the data packet is identified as a probe packet. If it is determined to be a probe packet, the forwarding device will mark the outbound timestamp in the packet when forwarding it to the next hop. After receiving the pseudo-ACK packet returned by the next-hop forwarding device, the forwarding device can calculate the RTT between the two nodes based on information such as the outbound and inbound times.
[0072] Each forwarding device (e.g., on the end-to-end forwarding path, except for the first-hop forwarding device) Figure 1In the example, switch2 and switch3, after receiving the probe data packet sent by the previous hop forwarding device, will send a fake ACK to the previous hop forwarding device. The fake ACK terminates at the previous hop.
[0073] After receiving a pseudo-ACK from the next-hop forwarding device, each forwarding device on the end-to-end forwarding path calculates the RTT between itself and the next-hop forwarding device based on the pseudo-ACK. It then calculates the transmission rate between itself and the next hop based on the RTT and the amount of data transmitted during that RTT. The calculated transmission rate is then recorded locally. In addition, it also records congestion status information that reflects the congestion status, such as processing latency and bandwidth.
[0074] like Figure 1 In the example, switch1 and switch2 calculate the transmission rate based on the pseudo-ACK sent in the next hop. switch2 calculates the transmission rate of the last hop based on the true ACK returned by the receiver. The sender can calculate the transmission rate of the first hop based on the true ACK returned by the receiver via switch1. The sender calculates the transmission rate of the first hop based on the true ACK carrying congestion status information returned by switch1.
[0075] Each forwarding device records the transmission rate calculated based on the pseudo-ACK returned by the probe data packet, as well as information such as RTT, processing latency, and bandwidth. The processing latency is the time from receiving the data packet to forwarding it by the forwarding device, and the bandwidth refers to the current bandwidth detected by the congestion management module of the forwarding device.
[0076] In one embodiment of the present invention, the forwarding device adjusts the transmission rate with the next-hop forwarding device in real time based on the transmission rate with the next-hop forwarding device and according to the transmission window of the path to adapt to the congestion situation between nodes. For example, when switch1 detects that the transmission rate with the next-hop switch2 is too low, it can increase the transmission rate with the next-hop within the range of the path transmission window.
[0077] Step 204. After receiving the true ACK message of the probe data packet sent by the receiving end, the forwarding device appends the congestion status information of the probe data packet recorded locally to the true ACK message and sends it to the sending end.
[0078] Figure 3This diagram illustrates how a forwarding device on a forwarding path appends inter-node congestion status information to a true ACK packet before forwarding it to the sender, according to an embodiment of the present invention. The diagram demonstrates the forwarding process of a true ACK packet on a forwarding path between the sender and receiver. After the receiver receives a probe data packet, it sends a true ACK packet (ACK1) to the next-hop forwarding device, switch3. Upon receiving ACK1, switch3 calculates the last-hop transmission rate based on ACK1 and incorporates the calculated transmission rate, round-trip time (RTT), processing delay of the probe data packet on switch3, and probe bandwidth into the last-hop congestion status information, expressed as FACK3, which is then appended to ACK1 and forwarded to switch2. After receiving ACK1, switch2 reads its locally recorded congestion status information (FACK2) with switch3 and appends it to ACK1 before forwarding to the next hop. Similarly, switch1 appends its locally recorded congestion status information (FACK1) with switch2 before forwarding it to the sender.
[0079] Step 205. After receiving the true ACK, the sending end calculates the RTT and transmission rate of the entire path based on the true ACK, calculates the new path transmission window and transmission rate based on the congestion control strategy, and sends the new path transmission window and transmission rate to each forwarding device on the path.
[0080] After receiving a true ACK, the sending end calculates the RTT (Round-Trip Time) of the probe data packet along the entire forwarding path based on the outbound time of the probe data packet and the inbound time of the true ACK packet. It then calculates the overall transmission rate for the entire path. Having obtained the path RTT and transmission rate, it calculates a new path transmission window (CWND) and transmission rate according to the congestion control strategy. This new CWND and transmission rate are then distributed to each forwarding device along the path, enabling dynamic control of the CWND and transmission rate for the entire path. Upon receiving the new CWND and transmission rate, each forwarding device can dynamically adjust its transmission rate with the next hop based on the latest CWND and transmission rate for its respective path.
[0081] In this embodiment of the invention, the transmitting end and each forwarding device can detect RTT based on ACK and calculate the current RDMA transmission rate based on RTT. Based on the calculated current transmission rate and transmission window, the transmission rate of the next hop or the entire path is dynamically adjusted. This can effectively monitor and regulate data transmission in the network, maximize the utilization efficiency of network resources, avoid network congestion, and thus improve the performance and stability of data transmission.
[0082] Step 206. The sending end updates the network delay topology based on the congestion status information between each node attached in the true ACK message, calculates the path delay of each path through the network delay topology, and dynamically adjusts the path priority according to the path delay magnitude.
[0083] Figure 4 This is a schematic diagram illustrating the network latency topology detected by the sending end through congestion status information appended to the true ACK message in one embodiment of the present invention. By parsing the congestion status information between each node appended to the true ACK message (such as RTT between nodes, processing latency on nodes, transmission rate on nodes, bandwidth, etc.), the sending end can monitor the latency between each node in the entire network topology in real time, thereby generating and updating the network latency topology of the entire network.
[0084] The sending end can calculate the path delay of each path based on the network topology. For example, the path delay of path 1 is 7µs, the path delay of path 2 is 10µs, and the path delay of path 3 is 9µs. The sending end can then sort all paths according to their path delays and dynamically adjust the priority of each path based on the path delay magnitude. Paths with shorter path delays have higher priority, while paths with longer path delays have lower priority. The sending end can use path priority to decide which forwarding path to use for forwarding data packets and switch forwarding paths, or to determine the load weight of data packets transmitted on different paths.
[0085] The sending end can detect the link congestion status between nodes based on the congestion status information attached to the true ACK. In the event of severe link congestion or failure, it can quickly respond and make link switching decisions to avoid congestion and optimize network performance.
[0086] Figure 5 This is a schematic diagram of the format structure of a true ACK message sent from the receiving end to the sending end in one embodiment of the present invention. The RDMA ACK Header contains an identifier that identifies the message as a true ACK message. Multiple ACK fields can follow the RDMA ACK Header field, including a true ACK field filled by the receiving end and pseudo ACK fields added by each forwarding device. The pseudo ACK field carries congestion status information between nodes. Here, SID is the source node identifier, PID is the previous hop node identifier, RTT is the round-trip time, delivered is the number of data packets sent, and inflight is the number of in-flight data packets.
[0087] Figure 6This is a schematic diagram of the format structure of a fake ACK message sent by a forwarding device to the next hop in one embodiment of the present invention. The RDMA FACK Header contains an identifier that identifies the message as a fake ACK message. Following the RDMA FACK Header field is the FACK field, which, unlike a genuine ACK, also includes a pacing rate and a bandwidth field.
[0088] Figure 7 This is a schematic diagram of an electronic device 700 for implementing the Ethernet RDMA congestion control method provided by the present invention, according to an embodiment of the present invention. The device includes a processor 710, such as a central processing unit (CPU), a communication bus 720, a communication interface 740, and a memory 730. The processor 710 and the memory 730 can communicate with each other via the communication bus 720. The memory 730 stores a computer program, which, when executed by the processor 710, implements one or more steps of the Ethernet RDMA congestion control method provided by the present invention.
[0089] Memory refers to a device based on a storage medium used to store computer programs and / or data. It can be volatile memory (VM, often called main memory) or non-volatile memory (NVM). Main memory refers to internal storage that directly exchanges data with the processor. It can read and write data at any time and at high speed, serving as a storage medium for temporary data of the operating system and other running programs. Main memory can be Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), etc. Non-volatile memory refers to memory that uses persistent storage media, characterized by large capacity and persistent data retention. It can be Storage Class Memory (SCM), Solid State Drive (SSD), NAND flash memory, hard disks, etc. SCM is an industry term for a new type of storage medium that falls between main memory and flash memory. It is a composite storage technology that combines the characteristics of persistent storage and main memory, with access speeds slower than DRAM but faster than SSDs.
[0090] The processor can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.
[0091] It should be recognized that embodiments of the present invention can be implemented or carried out by computer hardware, a combination of hardware and software, or by computer instructions stored in non-transitory (or non-persistent) memory. The method can be implemented using standard programming techniques, including a non-transitory storage medium configured with a computer program within the computer program, wherein such a storage medium causes the computer to operate in a specific and predefined manner. Each program can be implemented in a high-level procedural or object-oriented programming language to communicate with the computer system. However, if desired, the program can be implemented in assembly or machine language. In any case, the language can be a compiled or interpreted language. Furthermore, for this purpose, the program can run on a programmed application-specific integrated circuit. Moreover, the operations of the processes described in this invention can be performed in any suitable order unless otherwise indicated by the invention or otherwise clearly contradicted by the context. The processes (or variations and / or combinations thereof) described in this invention can be executed under the control of one or more computer systems configured with executable instructions and can be implemented by hardware or a combination thereof as code (e.g., executable instructions, one or more computer programs, or one or more applications) that commonly executes on one or more processors. The computer program includes a plurality of instructions executable by one or more processors.
[0092] Furthermore, the method can be implemented in any suitable type of computing platform, including but not limited to personal computers, minicomputers, mainframes, workstations, networked or distributed computing environments, standalone or integrated computer platforms, or in communication with charged particle tools or other imaging devices. Aspects of the invention can be implemented as machine-readable code stored on a non-transitory storage medium or device, whether removable or integrated into a computing platform, such as a hard disk, optical read and / or write storage medium, RAM, ROM, etc., such that it is readable by a programmable computer, and when the storage medium or device is read by the computer, it can be used to configure and operate the computer to perform the processes described herein. Furthermore, the machine-readable code, or portions thereof, can be transmitted via wired or wireless networks. The invention includes these and other different types of non-transitory computer-readable storage media when such media comprises instructions or programs that implement the steps described above in conjunction with a microprocessor or other data processor. When programmed according to the methods and techniques described in the invention, the invention also includes the computer itself.
[0093] The above description is merely an embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principle of the present invention should be included within the scope of protection of the present invention.
Claims
1. A method for active congestion control for RDMA over Ethernet, the method comprising: The method is applied to a network device using Ethernet remote direct memory access (RDMA) technology, and the method comprises: The sending end and the receiving end establish a connection, and initialize the sending window and the sending rate of the forwarding path; The sending end marks part of the data packets as probe data packets when sending the data packets to the receiving end; The forwarding device on the forwarding path sends a pseudo-acknowledgement (ACK) response of the probe data packet to the previous hop forwarding device after receiving the probe data packet; The forwarding device calculates the sending rate between the forwarding device and the next hop based on the pseudo-ACK after receiving the pseudo-ACK sent by the next hop, and records the current congestion state information, and adjusts the sending rate between the forwarding device and the next hop in real time according to the sending window of the path; the congestion state information at least includes the sending rate, the round-trip time (RTT), the processing delay and the bandwidth; The forwarding device appends the locally recorded congestion state information of the probe data packet to the true ACK of the probe data packet sent by the receiving end, and sends the true ACK to the sending end; The sending end receives the true ACK, calculates the RTT and the sending rate of the entire path according to the true ACK, calculates a new path sending window and a new path sending rate based on a congestion control strategy, and sends the new path sending window and the new path sending rate to each forwarding device on the path.
2. The method of claim 1, wherein, The method further comprises: The sending end updates a networking delay topology according to the congestion state information between nodes appended in the true ACK packet, calculates the path delay of each path through the networking delay topology, and dynamically adjusts the path priority according to the path delay.
3. The method of claim 1, wherein, The method further comprises: The sending end decides to select which forwarding path to forward the data packet and switch the forwarding path according to the path priority, or decides the load weight of the data packet transmitted on different paths.
4. A method of active congestion control for RDMA over Ethernet, the method comprising: The method is applied to a sending end device using Ethernet remote direct memory access (RDMA) technology, and the method comprises: The sending end and the receiving end establish a connection, and initialize the sending window and the sending rate of the forwarding path; The sending end marks part of the data packets as probe data packets when sending the data packets to the receiving end; The sending end receives the true ACK returned by the forwarding device, and the true ACK is appended with the congestion state information calculated by each forwarding device on the path based on the pseudo-ACK sent by the next level forwarding device, and the congestion state information calculated by the last hop forwarding device based on the true ACK sent by the receiving end; the congestion state information at least includes the sending rate, the round-trip time (RTT), the processing delay and the bandwidth; The sending end receives the true ACK, calculates the RTT and the sending rate of the entire path according to the true ACK, calculates a new path sending window and a new path sending rate based on a congestion control strategy, and sends the new path sending window and the new path sending rate to each forwarding device on the path.
5. The method of claim 4, wherein, The method further comprises: The sending end updates a networking delay topology according to the congestion state information between nodes appended in the true ACK packet, calculates the path delay of each path through the networking delay topology, and dynamically adjusts the path priority according to the path delay.
6. The method according to claim 1 or 4, characterized in that, The method for marking part of the data packets as probe data packets is any one of the following methods: Systematic sampling marking method: this method extracts one in every preset number of data packets as a probe data packet; Random sampling marking method: this method determines whether each data packet is a probe data packet according to a fixed probability, and marks the data packet as a probe data packet if it is extracted; Regional sampling marking method: this method samples according to a specific window region, and randomly extracts part of the data packets in the effective region of the sending window to mark them as probe data packets when the sending window reaches a preset threshold.
7. A method of active congestion control for RDMA over Ethernet, the method comprising: The method is applied to a forwarding device using Ethernet remote direct memory access (RDMA) technology, and the method comprises: After receiving the path sending window and the sending rate issued by the sending end, the forwarding device forwards data packets based on the path sending window and the sending rate; After receiving the probe data packet, the forwarding device on the forwarding path sends a pseudo-ACK of the probe data packet to the previous hop forwarding device; After receiving the pseudo-ACK sent by the next hop, the forwarding device calculates the sending rate between itself and the next hop based on the pseudo-ACK and records the current congestion state information, and adjusts the sending rate between itself and the next hop in real time according to the path sending window; the congestion state information at least includes the sending rate, the round-trip time (RTT), the processing delay and the bandwidth; After receiving the true ACK packet of the probe data packet sent by the receiving end, the forwarding device appends the locally recorded congestion state information of the probe data packet to the true ACK and sends it to the sending end.
8. An apparatus for active congestion control for RDMA over Ethernet, the apparatus comprising: a congestion controller configured to: determine a congestion level of a network; and adjust a congestion window size based on the congestion level. The device is applied to a sending end device using Ethernet remote direct memory access (RDMA) technology, and the device comprises: A congestion control module is configured to establish a connection with a receiving end device, initialize the sending window and the sending rate of a forwarding path, calculate the RTT and the sending rate of the entire path according to the true ACK returned by the forwarding device, calculate a new path sending window and a new path sending rate based on a congestion control strategy, and issue the new path sending window and the new path sending rate to each forwarding device on the path; A transceiver module is configured to send data packets to the receiving end, mark part of the data packets as probe data packets, and receive the true ACK returned by the forwarding device, wherein the true ACK is appended with the congestion state information calculated by each forwarding device on the path based on the pseudo-ACK sent by the next level forwarding device, and the congestion state information calculated by the last hop forwarding device based on the true ACK sent by the receiving end; the congestion state information at least includes the sending rate, the round-trip time (RTT), the processing delay and the bandwidth.
9. The apparatus of claim 8, wherein, The device further comprises: A networking topology module is configured to update the networking delay topology according to the congestion state information between nodes appended in the true ACK packet, calculate the path delay of each path through the networking delay topology, and dynamically adjust the path priority according to the path delay size.
10. An apparatus for active congestion control for RDMA over Ethernet, the apparatus comprising: a congestion controller configured to: determine a congestion level of a network; and adjust a congestion window size based on the congestion level. The device is applied to a forwarding device using Ethernet remote direct memory access (RDMA) technology, and the device comprises: A forwarding module is configured to forward data packets based on the path sending window and the sending rate after receiving the path sending window and the sending rate issued by the sending end; The pseudo ACK processing module is configured to send a pseudo ACK of the probe data packet to the upper hop forwarding device after receiving the probe data packet; calculate a sending rate between the pseudo ACK and the next hop based on the pseudo ACK and record current congestion state information after receiving the pseudo ACK sent by the next hop; and send the true ACK of the probe data packet to the sending end after receiving the true ACK of the probe data packet sent by the receiving end, wherein the congestion state information of the probe data packet recorded locally is attached to the true ACK; the congestion state information at least includes a sending rate, a round trip time (RTT), a processing delay and a bandwidth. The first congestion control module is configured to adjust the sending rate between the pseudo ACK and the next hop in real time according to a sending window of the path.
11. An electronic device, comprising: The computer device comprises a processor, a communication interface, a storage medium and a communication bus, wherein the processor, the communication interface and the storage medium complete mutual communication through the communication bus. The storage medium is configured to store a computer program. The processor is configured to execute the computer program stored in the storage medium to implement the method in any one of claims 1-7.
12. A storage medium having stored thereon a computer program, characterized in that The computer program, when executed by the processor, implements the method in any one of claims 1-7.
Citation Information
Patent Citations
Method and system for controlling congestion in data center based on network load
CN115883463A
Congestion control method and related equipment
CN116260773A