A RDMA fast congestion control method and system
By generating and sending target congestion notification messages (CNPs) in network node devices, combined with ECN marking and QP mapping tables, the problems of low congestion control efficiency and high resource overhead of the RDMA protocol in Ethernet bearer are solved, efficient congestion control and versatility are achieved, and the hardware resource requirements of network devices are reduced.
Patent Information
- Application Number
- CN202411078157.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-07
- Publication Date
- 2025-09-26
- Estimated Expiration
- 2044-08-07
AI Technical Summary
The existing RDMA protocol has problems such as low congestion control efficiency, high resource overhead and poor versatility in Ethernet bearer. In particular, it cannot support session information extraction in CM mode and SOCKET mode, resulting in reduced throughput efficiency of the entire network.
When a network node device receives an explicit congestion notification message ECN, it generates a target congestion notification message CNP and sends it directly to the source server. It uses the ECN marking period and WRED sampling probability to mark congestion, and combines the source-destination QP mapping table to achieve fast congestion control, reduce resource overhead and improve versatility.
Improves congestion notification efficiency, reduces resource overhead, supports fast CNP message generation in CM mode and SOCKET mode, ensures overall network throughput efficiency, and reduces hardware entry requirements for network devices.
Smart Images

Figure CN119071229B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of network technology, and in particular to an RDMA fast congestion control method and system. Background Art
[0002] With the rapid development of information and communication technologies such as cloud computing, big data, artificial intelligence, and 5G, the trend of digital transformation across all industries is becoming increasingly evident, and the digital economy is unstoppable. As a core resource in the digital economy, computing power has become a crucial driver of high-quality economic development, and its role is becoming increasingly prominent. However, the resulting explosive growth in data volumes has undoubtedly placed more stringent requirements on the construction of computing networks. Traditional TCP / IP network architectures, with their low transmission performance and high latency, are no longer sufficient for computing network construction. However, Remote Direct Memory Access (RDMA), a network data transmission technology based on the InfiniBand Architecture (IBA) protocol stack, enables direct access to remote memory without CPU (Central Processing Unit) intervention, achieving high-throughput, low-latency network transmission. Therefore, it is becoming the preferred technology for building high-performance computing networks.
[0003] However, the RDMA protocol itself evolved from the InfiniBand architecture released by the InfiniBand Trade Association (IBTA), which is based on hardware-supported lossless networks. This results in relatively limited support for packet retransmission and congestion control in the RDMA protocol's design. Therefore, when the RDMA protocol runs on a lossy network like Ethernet, packet loss can significantly degrade transmission performance. Therefore, achieving efficient congestion control in Ethernet-based RDMA solutions to minimize packet loss is currently a major research direction in the industry.
[0004] Related technologies have proposed the traditional CNP (Congestion Notification Packet) congestion control method, in which congestion notification and congestion processing are implemented on the server side, and the fast CNP congestion control method, in which congestion notification is processed at the point of network congestion. In the traditional CNP congestion control method, congestion notification is implemented on the source server. As the network scale expands, the network congestion information feedback path becomes too long, rendering the congestion control strategy ineffective. This in turn prevents the source server from slowing down its traffic in a timely manner, leading to further congestion and reduced overall network throughput. The existing fast CNP method needs to extract RDMA session information during the RDMA link establishment phase and create an RDMA session information flow table on the network device nodes in the RDMA transmission path. However, for RDMA link establishment in CM mode and SOCKET mode, only the message format of CM mode is fixed, that is, session information extraction can only be performed in CM mode. Therefore, the existing fast CNP solution only supports CM mode and not SOCKET mode, which shows that its versatility is problematic. At the same time, the RDMA session information flow table created on the network device node needs to be replicated across the entire RDMA transmission path. As the network node level increases, the number of information flow table entries that need to be saved will increase exponentially, which will greatly occupy the table entry hardware resources of the entire RDMA network, thereby increasing the overall deployment cost. Summary of the Invention
[0005] The present application provides an RDMA fast congestion control method and system, which can improve the efficiency of congestion notification while reducing resource overhead and improving versatility.
[0006] In a first aspect, an embodiment of the present application provides an RDMA fast congestion control method, comprising the following steps:
[0007] When the network node device receives the target explicit congestion notification message ECN, it generates a target congestion notification message CNP based on the source IP, destination IP and sink queue number QP or source QP number in the target ECN message and sends it to the source server;
[0008] When the source server determines that the target CNP message is a sink CNP message based on the notification type field in the target CNP message, if a target source QP number corresponding to the source IP, destination IP, and sink QP number in the target CNP message is queried from the preset source-sink QP mapping table, the sink QP number in the target CNP message is replaced with the target source QP number to form a new target CNP message, and the original congestion control speed regulation algorithm is executed based on the new target CNP message.
[0009] In conjunction with the first aspect, in one embodiment, before the step of when the network node device receives the target explicit congestion notification message ECN, the method further includes:
[0010] Determine the ECN marking period based on the minimum ECN message sending period and the maximum transmission message length of the network node device under the remote direct memory access RDMA network congestion state;
[0011] The ECN marking period is used as the weighted random early discard (WRED) sampling probability;
[0012] When congestion occurs in the outbound port queue of the network node device, ECN marking is performed on the congested packets in the outbound port queue based on the WRED sampling probability to generate a target ECN packet.
[0013] In combination with the first aspect, in one embodiment, determining the ECN marking period based on the minimum ECN message sending period and the maximum transmission message length of the network node device in a remote direct memory access (RDMA) network congestion state includes:
[0014] Calculate the number of ECN messages that can be marked per second based on the minimum ECN message sending period;
[0015] Calculate the port message forwarding rate of the egress port when sending the maximum message length based on the port rate and the maximum message length of the egress port;
[0016] The ECN marking period is determined by the number of ECN packets that can be marked per second and the port packet forwarding rate.
[0017] In conjunction with the first aspect, in one embodiment, generating the target congestion notification message CNP based on the source IP address, destination IP address, and sink queue number QP or source queue number QP in the target ECN message includes:
[0018] When the target ECN message includes a source IP, a destination IP, and a sink QP number, a target CNP message is generated based on the source IP, the destination IP, and the sink QP number in the target ECN message, wherein the destination IP in the target CNP message is the source IP in the target ECN message, the source IP in the target CNP message is the destination IP in the target ECN message, the notification type field in the target CNP message is set to a first preset value, and the QP field is set to the sink QP number, wherein the first preset value is used to indicate that the target CNP message is a sink CNP message;
[0019] When the target ECN message includes a source IP address, a destination IP address, and a source QP number, a target CNP message is generated based on the source IP address, the destination IP address, and the source QP number in the target ECN message, wherein the notification type field in the target CNP message is set to a second preset value and the QP field is set to the source QP number, and the second preset value is used to indicate that the target CNP message is a source CNP message.
[0020] In combination with the first aspect, in one embodiment, the method further includes:
[0021] When the source server determines that the target CNP message is a source CNP message based on the notification type field in the target CNP message, the original congestion control speed adjustment algorithm is executed based on the target CNP message.
[0022] In combination with the first aspect, in one embodiment, after the step of determining that the target CNP message is a sink CNP message based on the notification type field in the target CNP message, the method further includes:
[0023] If the source server fails to find the target source QP number corresponding to the source IP, destination IP and sink QP number in the target CNP message from the preset source-sink QP mapping table, the target CNP message is discarded.
[0024] In a second aspect, an embodiment of the present application provides an RDMA fast congestion control system, including:
[0025] A congestion notification unit is configured to generate a target congestion notification message CNP based on the source IP, destination IP, and sink queue number QP or source QP number in the target ECN message and send the CNP message to the source server when the network node device receives the target explicit congestion notification message ECN;
[0026] A congestion processing unit is configured to, when the source server determines that the target CNP message is a sink CNP message based on the notification type field in the target CNP message, replace the sink QP number in the target CNP message with the target source QP number if a target source QP number corresponding to the source IP address, destination IP address, and sink QP number in the target CNP message is queried from a preset source-sink QP mapping table to form a new target CNP message, and execute the original congestion control speed regulation algorithm based on the new target CNP message.
[0027] In conjunction with the second aspect, in one embodiment, the system further includes a congestion marking unit, which is configured to:
[0028] Determine the ECN marking period based on the minimum ECN message sending period and the maximum transmission message length of the network node device under the remote direct memory access RDMA network congestion state;
[0029] The ECN marking period is used as the weighted random early discard (WRED) sampling probability;
[0030] When congestion occurs in the outbound port queue of the network node device, ECN marking is performed on the congested packets in the outbound port queue based on the WRED sampling probability to generate target ECN packets.
[0031] In conjunction with the second aspect, in one embodiment, the congestion marking unit is specifically configured to:
[0032] Calculate the number of ECN messages that can be marked per second based on the minimum ECN message sending period;
[0033] Calculate the port message forwarding rate of the egress port when sending the maximum message length based on the port rate and the maximum message length of the egress port;
[0034] The ECN marking period is determined by the number of ECN packets that can be marked per second and the port packet forwarding rate.
[0035] In conjunction with the second aspect, in one implementation, the congestion notification unit is specifically configured to:
[0036] When the target ECN message includes a source IP, a destination IP, and a sink QP number, a target CNP message is generated based on the source IP, the destination IP, and the sink QP number in the target ECN message, wherein the destination IP in the target CNP message is the source IP in the target ECN message, the source IP in the target CNP message is the destination IP in the target ECN message, the notification type field in the target CNP message is set to a first preset value, and the QP field is set to the sink QP number, wherein the first preset value is used to indicate that the target CNP message is a sink CNP message;
[0037] When the target ECN message includes a source IP address, a destination IP address, and a source QP number, a target CNP message is generated based on the source IP address, the destination IP address, and the source QP number in the target ECN message, wherein the notification type field in the target CNP message is set to a second preset value and the QP field is set to the source QP number, and the second preset value is used to indicate that the target CNP message is a source CNP message.
[0038] In combination with the second aspect, in one embodiment, the congestion processing unit is further used to: when the source server determines that the target CNP message is a source CNP message based on the notification type field in the target CNP message, execute the original congestion control speed adjustment algorithm based on the target CNP message.
[0039] In combination with the second aspect, in one embodiment, the congestion processing unit is further used to: if the source server fails to query the target source QP number corresponding to the source IP, destination IP and destination QP number in the target CNP message from the preset source-destination QP mapping table, then discard the target CNP message.
[0040] The beneficial effects of the technical solutions provided in the embodiments of the present application include at least:
[0041] When a network node device receives a target explicit congestion notification message ECN, a target congestion notification message CNP is generated based on the source IP, destination IP, and destination queue number QP or source QP number in the target ECN message and sent to the source server; when the source server determines that the target CNP message is a destination CNP message based on the notification type field in the target CNP message, if the target source QP number corresponding to the source IP, destination IP, and destination QP number in the target CNP message is queried from the preset source-destination QP mapping table, the destination QP number in the target CNP message is replaced with the target source QP number to form a new target CNP message, and the original congestion control speed regulation algorithm is executed based on the new target CNP message. This application improves the efficiency of congestion notification by performing congestion notification on the network node device, and does not require the extraction of session information and the creation of RDMA information flow tables on the network node device, effectively improving versatility and reducing resource overhead. BRIEF DESCRIPTION OF THE DRAWINGS
[0042] Figure 1 This is a flow chart of an embodiment of the RDMA fast congestion control method of the present application;
[0043] Figure 2 This is a schematic diagram of the Xwred ECN marking probability involved in the embodiment of this application;
[0044] Figure 3 This is a flow chart of the ECN marking algorithm involved in the embodiment of the present application;
[0045] Figure 4 Schematic diagram of the source-sink CNP notification message format involved in the embodiment of the present application;
[0046] Figure 5 This is a schematic diagram of the source-sink QP mapping involved in the embodiment of the present application;
[0047] Figure 6 This is a schematic diagram of the congestion handling process involved in the embodiment of the present application. DETAILED DESCRIPTION
[0048] In order to enable those skilled in the art to better understand the present invention, the following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only 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 ordinary technicians in this field without creative work are within the scope of protection of this application.
[0049] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.
[0050] In a first aspect, an embodiment of the present application provides an RDMA fast congestion control method.
[0051] In one embodiment, referring to Figure 1 , Figure 1 This is a flow chart of an embodiment of the RDMA fast congestion control method of this application. Figure 1 As shown, the RDMA fast congestion control method includes:
[0052] Step S10: When the network node device receives the target explicit congestion notification message ECN, it generates a target congestion notification message CNP based on the source IP, destination IP and sink queue number QP or source QP number in the target ECN message and sends it to the source server.
[0053] For example, it is understandable that the current RoCE (RDMA over Converged Ethernet) protocol solution, which migrates RDMA to Ethernet based on hardware lossless network design, is low-cost and widely applicable. However, Ethernet's inherent unreliable transmission characteristics result in Ethernet packet loss rates far exceeding those of InfiniBand networks. Therefore, the packet loss retransmission and congestion control mechanisms of the native RDMA protocol are only suitable for InfiniBand networks, and transmission performance will be significantly reduced when the Ethernet packet loss rate increases. To address related issues, the industry has proposed traditional CNP congestion control methods and fast CNP congestion control methods. However, the traditional CNP congestion control method suffers from low congestion notification efficiency, while the fast CNP congestion control method suffers from poor versatility and high resource consumption.
[0054] In this embodiment, in order to solve the problem of low congestion notification efficiency, a CNP message will be assembled by a network node device and sent directly to the source server to achieve congestion notification, without the need to transmit the CNP message to the source server through the destination server, thereby shortening the feedback path of network congestion information and preventing the failure of the congestion control strategy, so that the source server traffic can be slowed down in time to avoid congestion deterioration and ensure the throughput efficiency of the entire network. Specifically, when the network node device receives an ECN-marked target ECN message, it will directly generate a target CNP message based on the source IP, destination IP and destination QP (Queue Pair) number or source QP number in the target ECN message and send it to the source server, without the need to extract session information and create an RDMA information flow table on the network node device. It can be understood that the target CNP message will integrate the source IP, destination IP and destination QP, or integrate the source IP, destination IP and source QP number.
[0055] Furthermore, in one embodiment, before the step of when the network node device receives the target explicit congestion notification message ECN, the method further includes:
[0056] Determine the ECN marking period based on the minimum ECN message sending period and the maximum transmission message length of the network node device under the remote direct memory access RDMA network congestion state;
[0057] The ECN marking period is used as the weighted random early discard (WRED) sampling probability;
[0058] When congestion occurs in the outbound port queue of the network node device, ECN marking is performed on the congested packets in the outbound port queue based on the WRED sampling probability to generate a target ECN packet.
[0059] For example, in this embodiment, the ECN marking interval (i.e., the ECN marking period Tecn) is calculated on each network node device of the RDMA transmission network based on the shortest time interval for sending the congestion control notification CNP message (i.e., the minimum ECN message sending period Tmin in the RDMA network congestion state, such as 50ms) and the maximum transmission message length MTU of the egress port of the network node device; then the ECN marking period Tecn is converted into a WRED (Weighted Random Early Detection) sampling probability Xwred (i.e., Figure 2The marking rate in the WRED sampling probability is used), and the WRED sampling probability Xwred is sent down through the port for hardware configuration to implement the congestion marking ECN function with the shortest time interval for sending CNP messages being Tmin. That is, when congestion occurs in the egress port queue of the network node device, the congested messages in the egress port queue are ECN marked based on the WRED sampling probability to generate the target ECN message.
[0060] Among them, see Figure 2 As shown, it can be understood that when the cache utilization is less than or equal to the preset lower threshold, it indicates that there is sufficient cache for data transmission, that is, the outbound queue is not congested, and the marking rate is 0. In other words, no ECN marking is required for outbound packets. If the cache utilization is between the preset lower threshold and the preset upper threshold, it indicates that although there is some cache for data transmission, the remaining cache is insufficient, that is, the outbound queue is partially congested. In this case, ECN marking can be performed on some congested packets according to the calculated marking rate. Furthermore, if the cache utilization is equal to the upper threshold, it indicates that the remaining cache is far from meeting the data transmission needs, that is, the outbound queue is severely congested, and congested packets need to be ECN marked according to the maximum marking rate. If the cache utilization continues to exceed the upper threshold, all congested packets are ECN marked according to a marking rate of 100%. It should be noted that the specific values of the lower and upper thresholds can be determined according to actual needs and are not limited here.
[0061] Furthermore, in one embodiment, determining the ECN marking period based on the minimum ECN message sending period and the maximum transmission message length of the network node device in a congested state of the Remote Direct Memory Access (RDMA) network includes:
[0062] Calculate the number of ECN messages that can be marked per second based on the minimum ECN message sending period;
[0063] Calculate the port message forwarding rate of the egress port when sending the maximum message length based on the port rate and the maximum message length of the egress port;
[0064] The ECN marking period is determined by the number of ECN packets that can be marked per second and the port packet forwarding rate. For example, see Figure 3As shown, first, the minimum ECN message sending period Tecn under the RDMA network congestion state is configured, and the number of ECN messages that can be marked per second PPSecn is calculated based on the minimum ECN message sending period Tecn (i.e., PPSecn = 1 / Tecn). Then, the port rate of the network node device's egress port and the maximum transmission message length MTU are obtained to calculate the port message forwarding rate PPSmtu corresponding to the port when sending messages with a length of MTU. Then, the WRED function is enabled on the egress port, and the ECN marking period is determined based on PPSecn and PPSmtu. The ECN marking period is used as the WRED sampling probability Xwred (i.e., Xwred = PPSecn / PPSmtu). Finally, the congestion coloring ratio of the ECN queue related to the egress port is set to Xwred to achieve the purpose of converting the congestion marking time interval into the WRED coloring ratio. As a result, when congestion occurs in the egress port queue, the WRED function can ECN color the congested messages according to the WRED sampling probability setting to obtain the target ECN message and send the target ECN message to the next hop.
[0065] It is understandable that the existing fast CNP congestion control method, when performing congestion notification through a network node device, not only needs to query the local QP flow table before packet forwarding, but also needs to start a hardware timer for each QP to calculate the CNP packet sending interval; in this embodiment, there is no need to extract session information and create an RDMA information flow table on the network node device, and because the CNP message sending interval is converted into an ECN marking interval, the network node device can perform CNP message packet assembly and forwarding after receiving the ECN message without being restricted by the hardware timer, that is, there is no need to set a CNP message time interval timer to calculate the CNP packet sending interval, which effectively simplifies the CNP message sending process and can achieve line speed; and when a congestion state occurs, the ECN marking interval can be achieved through the ECN coloring ratio corresponding to WRED, and the processing remains unchanged when there is no congestion or the congestion reaches the upper limit, thereby making the ECN marking no longer limited to the QP type.
[0066] Step S20: When the source server determines that the target CNP message is a sink CNP message based on the notification type field in the target CNP message, if a target source QP number corresponding to the source IP, destination IP, and sink QP number in the target CNP message is found in the preset source-sink QP mapping table, the sink QP number in the target CNP message is replaced with the target source QP number to form a new target CNP message, and the original congestion control speed adjustment algorithm is executed based on the new target CNP message.
[0067] For example, in this embodiment, in order to achieve compatibility and hybrid deployment with existing congestion control solutions, a compatible mode will be adopted in the message format, that is, the source / sink RDMA congestion notification message format will be improved to achieve compatibility. In the original congestion control process, only the source server will parse the 8-11 bytes of the Reserved field in the BTH message header format of the RDMA ROCEv2 message, while the intermediate nodes will not parse it. Therefore, this embodiment will Figure 4 The 8-11 bytes of the Reserved field in the BTH message header format of the RDMA ROCEv2 message shown are extended to achieve compatibility.
[0068] Specifically, the 4 bits in the Reserved field serve as the source / destination CNP notification type identifier. This notification type field indicates the CNP notification type. For example, it is set to 0 for source CNP notification and 1 for sink CNP notification. Other types are reserved for expansion to maintain compatibility with existing congestion control scheme field definitions. It should be noted that this field can also be used to identify ECN markings, etc., which is not limited here. It is understood that if the notification type field is set to 0, the corresponding CNP message is a source CNP message, while if the notification type field is set to 1, the corresponding CNP message is a sink CNP message.
[0069] In addition, the 3 bits in the Reserved field can also be used as an identification field for the CNP service message type. The service message type field is used to indicate the congestion control algorithm type of the CNP. For example, the existing CNP scheme type is set to 0, while the CNP scheme provided in this embodiment is set to 1. The remaining types are reserved for expansion and remain compatible with the existing congestion control scheme field definition.
[0070] Therefore, after receiving a target CNP message sent by a network node device, the remote server can determine whether the target CNP message is a destination CNP message or a source CNP message based on the notification type field in the target CNP message; if the target CNP message is a destination CNP message, the preset source-destination QP mapping table is queried based on the source IP, destination IP, and destination QP number in the target CNP message; when a target-source QP number corresponding to the source IP, destination IP, and destination QP number in the target CNP message is found, the destination QP number in the target CNP message is replaced with the target-source QP number to form a new target CNP message; then, based on the target-source QP number in the new target CNP message, the original congestion control speed regulation algorithm, i.e., the network card-side RP (Rendezvous Point) node congestion control speed regulation algorithm, is executed. It should be noted that the principles and processes of the original congestion control speed regulation algorithm are common knowledge in the art and will not be repeated here for the sake of brevity.
[0071] In addition, it can be understood that the initiation and acceptance of RDMA transmission tasks are both on the source server network card, and the source server network card stores information such as the source IP address (i.e., source IP), the sink IP address (i.e., destination IP), the sink QP number, and the source QP number of the RDMA session. Therefore, this embodiment will create a mapping table (i.e., the source QP and sink QP number) between the source QP and the sink QP of the RDMA transmission drawing on the source server network card based on the above information. Figure 5 The source-destination QP mapping table shown is used to convert the destination CNP message into the source CNP message; it can be understood that the table entry fields are the source IP address, source QP number, destination IP address, and destination QP number, where the source IP address, destination IP address, and destination QP are search keywords.
[0072] It can be seen that this embodiment improves the efficiency of congestion notification by performing congestion notification on the network node device, and there is no need to extract session information and create RDMA information flow tables on the network node device. It not only solves the problem that the existing solution does not support fast CNP message generation under the RDMA SOCKET link establishment mode, effectively improving versatility, but also solves the problem that the flow table specifications required for intermediate network nodes to support fast CNP increase exponentially with the increase of network levels, and the huge resource overhead caused by the need to store the RDMA flow table of the same end-side node in the network devices of the entire link, effectively reducing resource overhead.
[0073] In addition, in the existing fast CNP congestion control method, congestion processing needs to be implemented jointly by the network node device and the end-side device, while the congestion processing in this embodiment only needs to be implemented separately on the end-side device, which greatly reduces the table item requirements for the network node device, thereby greatly reducing the network device specification requirements and reducing the networking cost. For example, taking a typical small- to medium-sized spine-leaf architecture data center (for example, including 4 spines (core layers), 32 leafs (access layers), each leaf is connected to 40 servers, a total of 1280 servers, and each server has 2000 QPs) as an example, a comparative analysis of this embodiment and the existing fast CNP congestion control method is conducted from the following three aspects: (1) For the required table item specifications, this embodiment has 2000 end nodes, while the corresponding leaf nodes of the existing fast CNP congestion control method are 2000*40=80000 and the spine nodes are 80000. *32=2560000; (2) Regarding the required table entry learning time, this embodiment is created based on existing information and does not require learning. However, at a learning rate of 4000 items / s, the table entry learning time corresponding to the existing fast CNP congestion control method is 20s to 640s; (3) Regarding the table entry query time, taking a balanced binary tree storage scheme with a complexity of log2n as an example, the table entry query time required by this embodiment is Log2(2000)=11s, while the table entry query time corresponding to the existing fast CNP congestion control method is log2(80000)=16s and log2(2560000)=21s. Therefore, this embodiment greatly reduces the table entry requirements for network node devices.
[0074] In summary, this embodiment improves the efficiency of congestion notification and reduces the resource overhead of network intermediate node devices, while being compatible with the two existing CNP notification methods, thereby meeting the requirements for smooth network upgrades.
[0075] Furthermore, in one embodiment, generating the target congestion notification message CNP based on the source IP, destination IP, and sink queue number QP or source queue number QP in the target ECN message includes:
[0076] When the target ECN message includes a source IP, a destination IP, and a sink QP number, a target CNP message is generated based on the source IP, the destination IP, and the sink QP number in the target ECN message, wherein the destination IP in the target CNP message is the source IP in the target ECN message, the source IP in the target CNP message is the destination IP in the target ECN message, the notification type field in the target CNP message is set to a first preset value, and the QP field is set to the sink QP number, wherein the first preset value is used to indicate that the target CNP message is a sink CNP message;
[0077] When the target ECN message includes a source IP address, a destination IP address, and a source QP number, a target CNP message is generated based on the source IP address, the destination IP address, and the source QP number in the target ECN message, wherein the notification type field in the target CNP message is set to a second preset value and the QP field is set to the source QP number, and the second preset value is used to indicate that the target CNP message is a source CNP message.
[0078] For example, it can be understood that a congestion notification unit is deployed on each network node device of the RDMA transmission network. Since the CNP message sending interval has been converted into the WRED sampling probability Xwred in the congestion notification unit, for the received RDMA service ECN message (i.e., the target ECN message), the network node device where the congestion occurs can directly perform CNP packet grouping and sending processing.
[0079] It should be noted that the specific values of the first preset value and the second preset value can be determined according to actual needs and are not limited here. Specifically, taking the first preset value as 1 and the second preset value as 0 as an example, the network node device deployed with the congestion notification unit will extract the source IP, destination IP, destination QP number or source QP number in the target ECN message and generate a target CNP message according to the standard CNP message format; wherein, if the target ECN message only contains the source IP, destination IP and destination QP number, the target CNP message is composed according to the source IP, destination IP and destination QP number, and the notification type field in the target CNP message is set to 1 to indicate that the notification type of the message is the destination CNP type; at the same time, the QP field in the BTH header in the target CNP message is set to the destination QP number, and the source IP in the IP header of the target CNP message is filled with the destination IP in the target ECN message, and the destination IP in the IP header of the target CNP message is filled with the source IP in the target ECN message, and then the generated target CNP message is sent to the source server.
[0080] If the target ECN message only includes the source IP, destination IP and source QP number, a target CNP message is composed based on the source IP, destination IP and source QP number, and the announcement type field in the target CNP message is set to 0 to indicate that the announcement type of the message is the source CNP type; at the same time, the QP field in the BTH header of the target CNP message is set to the source QP number, while the source IP and destination IP in the IP header of the target CNP message remain unchanged, and then the generated target CNP message is sent to the source server.
[0081] Furthermore, in one embodiment, the method further includes:
[0082] When the source server determines that the target CNP message is a source CNP message based on the notification type field in the target CNP message, the original congestion control speed adjustment algorithm is executed based on the target CNP message.
[0083] For example, it should be understood that this embodiment will deploy a congestion processing unit on the source server network card, which is mainly used to process the target CNP message. Figure 6 As shown, when the source server receives the target CNP message, it judges the notification type of the target CNP message through the notification type flag. If the target CNP message is a source CNP message, that is, the QP number contained in the target CNP message is the source QP number, it enters the normal speed reduction process and executes the source QP normal congestion processing process.
[0084] If the target CNP message is a sink CNP message, that is, the QP number contained in the target CNP message is a sink QP number, then it is necessary to enter the QP pair conversion process, that is, use the destination IP (that is, the source IP in the sink CNP message), the source IP (that is, the destination IP in the sink CNP message), and the sink CNP (that is, the sink QP number) as keywords to search whether there is a matching entry in the source-sink QP mapping table; and after finding the target source QP number corresponding to the sink QP number, that is, there is a matching entry, the sink QP number in the target CNP message is replaced with the target source QP number in the matching entry, and then enter the regular speed reduction process and execute the source QP regular congestion processing process, thereby achieving the purpose of compatibility with the existing congestion control message processing process.
[0085] Furthermore, in one embodiment, after the step of determining that the target CNP message is a sink CNP message based on the notification type field in the target CNP message, the method further includes:
[0086] If the source server fails to find the target source QP number corresponding to the source IP, destination IP and sink QP number in the target CNP message from the preset source-sink QP mapping table, the target CNP message is discarded.
[0087] Exemplarily, in this embodiment, if there is no matching entry corresponding to the destination QP number in the target CNP message in the source-destination QP mapping table on the source server network card, that is, no relevant source QP number information is found, then the target CNP message is determined to be an illegal destination CNP message and needs to be discarded.
[0088] In summary, this embodiment, based on the newly added source-destination congestion notification message format, proposes a new congestion marking and congestion notification implementation method on the network node device where congestion occurs, so as to ensure the timeliness of congestion marking and notification while eliminating the need to create an RDMA information flow table on the network transmission node device; and proposes a new congestion handling implementation method compatible with the source-destination congestion notification message format on the source-end server node device, thereby ensuring the timeliness of congestion marking, congestion notification, and congestion handling in RDMA transmission networks of various sizes while being able to adapt to all two RDMA transmission link establishment modes, thereby reducing the hardware table entry requirements for intermediate node devices in the RDMA transmission network and being compatible with various existing congestion control schemes, so that they can be mixed deployed in the same network with maximum versatility.
[0089] In a second aspect, an embodiment of the present application further provides an RDMA fast congestion control system.
[0090] In one embodiment, the RDMA fast congestion control system includes:
[0091] A congestion notification unit is configured to generate a target congestion notification message CNP based on the source IP, destination IP, and sink queue number QP or source QP number in the target ECN message and send the CNP message to the source server when the network node device receives the target explicit congestion notification message ECN;
[0092] A congestion processing unit is configured to, when the source server determines that the target CNP message is a sink CNP message based on the notification type field in the target CNP message, replace the sink QP number in the target CNP message with the target source QP number if a target source QP number corresponding to the source IP address, destination IP address, and sink QP number in the target CNP message is queried from a preset source-sink QP mapping table to form a new target CNP message, and execute the original congestion control speed regulation algorithm based on the new target CNP message.
[0093] Furthermore, in one embodiment, the system further includes a congestion marking unit, which is configured to:
[0094] Determine the ECN marking period based on the minimum ECN message sending period and the maximum transmission message length of the network node device under the remote direct memory access RDMA network congestion state;
[0095] The ECN marking period is used as the weighted random early discard (WRED) sampling probability;
[0096] When congestion occurs in the outbound port queue of the network node device, ECN marking is performed on the congested packets in the outbound port queue based on the WRED sampling probability to generate target ECN packets.
[0097] Furthermore, in one embodiment, the congestion marking unit is specifically configured to:
[0098] Calculate the number of ECN messages that can be marked per second based on the minimum ECN message sending period;
[0099] Calculate the port message forwarding rate of the egress port when sending the maximum message length based on the port rate and the maximum message length of the egress port;
[0100] The ECN marking period is determined by the number of ECN packets that can be marked per second and the port packet forwarding rate.
[0101] Furthermore, in one embodiment, the congestion notification unit is specifically configured to:
[0102] When the target ECN message includes a source IP, a destination IP, and a sink QP number, a target CNP message is generated based on the source IP, the destination IP, and the sink QP number in the target ECN message, wherein the destination IP in the target CNP message is the source IP in the target ECN message, the source IP in the target CNP message is the destination IP in the target ECN message, the notification type field in the target CNP message is set to a first preset value, and the QP field is set to the sink QP number, wherein the first preset value is used to indicate that the target CNP message is a sink CNP message;
[0103] When the target ECN message includes a source IP address, a destination IP address, and a source QP number, a target CNP message is generated based on the source IP address, the destination IP address, and the source QP number in the target ECN message, wherein the notification type field in the target CNP message is set to a second preset value and the QP field is set to the source QP number, and the second preset value is used to indicate that the target CNP message is a source CNP message.
[0104] Furthermore, in one embodiment, the congestion processing unit is further configured to: when the source server determines that the target CNP message is a source CNP message based on the notification type field in the target CNP message, execute an original congestion control speed adjustment algorithm based on the target CNP message.
[0105] Furthermore, in one embodiment, the congestion processing unit is further configured to discard the target CNP message if the source server fails to find a target source QP number corresponding to the source IP, destination IP, and sink QP number in the target CNP message from a preset source-sink QP mapping table.
[0106] Among them, the functional implementation of each module in the above-mentioned RDMA fast congestion control system corresponds to each step in the above-mentioned RDMA fast congestion control method embodiment, and their functions and implementation processes are not repeated here one by one.
[0107] It should be noted that the serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
[0108] The terms "including" and "having" and any variations thereof in the specification and claims of this application and the above-mentioned drawings are intended to cover non-exclusive inclusions. For example, a process, method, system, product or device that includes a series of steps or units is not limited to the listed steps or units, but optionally includes steps or units that are not listed, or optionally includes other steps or units inherent to these processes, methods, products or devices. The terms "first", "second" and "third" are used to distinguish different objects, etc., and do not represent a sequence, nor do they limit the "first", "second" and "third" to different types.
[0109] In the description of the embodiments of this application, the words "exemplary," "for example," or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary," "for example," or "for example" in the embodiments of this application should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary," "for example," or "for example" is intended to present the relevant concepts in a concrete manner.
[0110] In the description of the embodiments of the present application, unless otherwise specified, “ / ” means or, for example, A / B can mean A or B; “and / or” in the text is merely a description of the association relationship of associated objects, indicating that three relationships may exist, for example, A and / or B can mean: A exists alone, A and B exist at the same time, and B exists alone. In addition, in the description of the embodiments of the present application, “multiple” refers to two or more than two.
[0111] In some processes described in the embodiments of the present application, multiple operations or steps are included that appear in a specific order. However, it should be understood that these operations or steps may not be performed in the order in which they appear in the embodiments of the present application or may be performed in parallel. The sequence numbers of the operations are only used to distinguish between different operations, and the sequence numbers themselves do not represent any order of execution. In addition, these processes may include more or fewer operations, and these operations or steps may be performed in sequence or in parallel, and these operations or steps may be combined.
[0112] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus the necessary general hardware platform, of course, it can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) as described above, and includes a number of instructions for enabling a terminal device to execute the methods described in each embodiment of the present application.
[0113] The above are only preferred embodiments of the present application and do not limit the patent scope of the present application. Any equivalent structure or equivalent process transformation made using the contents of the present application specification and drawings, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present application.
Claims
1. A RDMA fast congestion control method, characterized in that: The following steps are involved: When the network node device receives the target explicit congestion notification message ECN, it generates a target congestion notification message CNP based on the source IP, destination IP and sink queue number QP or source QP number in the target ECN message and sends it to the source server; When the source server determines that the target CNP message is a sink CNP message based on the notification type field in the target CNP message, if a target source QP number corresponding to the source IP, destination IP, and sink QP number in the target CNP message is found in a preset source-sink QP mapping table, the sink QP number in the target CNP message is replaced with the target source QP number to form a new target CNP message, and the original congestion control speed regulation algorithm is executed based on the new target CNP message; Before the step of when the network node device receives the target explicit congestion notification message ECN, the method further includes: Determine the ECN marking period based on the minimum ECN message sending period and the maximum transmission message length of the network node device under the remote direct memory access RDMA network congestion state; The ECN marking period is used as the weighted random early discard (WRED) sampling probability Xwred; Set the ECN congestion coloring ratio for the egress port's queues to Xwred. This converts the congestion marking interval into a WRED coloring ratio. When congestion occurs in the egress port queue, WRED performs ECN coloring on congested packets based on the WRED sampling probability to determine the target ECN packets and sends them to the next hop. The method of determining the ECN marking period based on the minimum ECN message sending period and the maximum transmission message length of the network node device in the remote direct memory access RDMA network congestion state includes: Calculate the number of ECN messages that can be marked per second based on the minimum ECN message sending period; Calculate the port message forwarding rate of the egress port when sending the maximum message length based on the port rate and the maximum message length of the egress port; The ECN marking period is determined by the number of ECN packets that can be marked per second and the port packet forwarding rate.
2. The RDMA fast congestion control method according to claim 1, wherein: Generating a target congestion notification message CNP based on the source IP, destination IP, and sink queue number QP or source queue number QP in the target ECN message includes: When the target ECN message includes a source IP, a destination IP, and a sink QP number, a target CNP message is generated based on the source IP, the destination IP, and the sink QP number in the target ECN message, wherein the destination IP in the target CNP message is the source IP in the target ECN message, the source IP in the target CNP message is the destination IP in the target ECN message, the notification type field in the target CNP message is set to a first preset value, and the QP field is set to the sink QP number, wherein the first preset value is used to indicate that the target CNP message is a sink CNP message; When the target ECN message includes a source IP address, a destination IP address, and a source QP number, a target CNP message is generated based on the source IP address, the destination IP address, and the source QP number in the target ECN message, wherein the notification type field in the target CNP message is set to a second preset value and the QP field is set to the source QP number, and the second preset value is used to indicate that the target CNP message is a source CNP message.
3. The RDMA fast congestion control method according to claim 1, wherein: The method further comprises: When the source server determines that the target CNP message is a source CNP message based on the notification type field in the target CNP message, the original congestion control speed adjustment algorithm is executed based on the target CNP message.
4. The RDMA fast congestion control method according to claim 1, wherein: After the step of determining, based on the notification type field in the target CNP message, that the target CNP message is a sink CNP message, the method further includes: If the source server fails to find the target source QP number corresponding to the source IP, destination IP and sink QP number in the target CNP message from the preset source-sink QP mapping table, the target CNP message is discarded.
5. An RDMA fast congestion control system, characterized in that: include: A congestion notification unit is configured to generate a target congestion notification message CNP based on the source IP, destination IP, and sink queue number QP or source QP number in the target ECN message and send the CNP message to the source server when the network node device receives the target explicit congestion notification message ECN; a congestion processing unit configured to, when the source server determines that the target CNP message is a sink CNP message based on the notification type field in the target CNP message, replace the sink QP number in the target CNP message with the target source QP number if a target source QP number corresponding to the source IP address, destination IP address, and sink QP number in the target CNP message is found in a preset source-sink QP mapping table to form a new target CNP message, and execute an original congestion control speed regulation algorithm based on the new target CNP message; The system further includes a congestion marking unit configured to: Determine the ECN marking period based on the minimum ECN message sending period and the maximum transmission message length of the network node device under the remote direct memory access RDMA network congestion state; The ECN marking period is used as the weighted random early discard (WRED) sampling probability Xwred; Set the ECN congestion coloring ratio for the egress port's queues to Xwred. This converts the congestion marking interval into a WRED coloring ratio. When congestion occurs in the egress port queue, WRED performs ECN coloring on congested packets based on the WRED sampling probability to determine the target ECN packets and sends them to the next hop. The congestion marking unit is specifically configured to: Calculate the number of ECN messages that can be marked per second based on the minimum ECN message sending period; Calculate the port message forwarding rate of the egress port when sending the maximum message length based on the port rate and the maximum message length of the egress port; The ECN marking period is determined by the number of ECN packets that can be marked per second and the port packet forwarding rate.
6. The RDMA fast congestion control system according to claim 5, characterized in that: The congestion notification unit is specifically configured to: When the target ECN message includes a source IP, a destination IP, and a sink QP number, a target CNP message is generated based on the source IP, the destination IP, and the sink QP number in the target ECN message, wherein the destination IP in the target CNP message is the source IP in the target ECN message, the source IP in the target CNP message is the destination IP in the target ECN message, the notification type field in the target CNP message is set to a first preset value, and the QP field is set to the sink QP number, wherein the first preset value is used to indicate that the target CNP message is a sink CNP message; When the target ECN message includes a source IP address, a destination IP address, and a source QP number, a target CNP message is generated based on the source IP address, the destination IP address, and the source QP number in the target ECN message, wherein the notification type field in the target CNP message is set to a second preset value and the QP field is set to the source QP number, and the second preset value is used to indicate that the target CNP message is a source CNP message.
Citation Information
Patent Citations
Network congestion notification method, proxy node, network node and computer equipment
CN113709057A
Accurate congestion control method and device for data transmission, equipment and medium
CN118337709A