Response control method and apparatus, electronic device, medium, and computer program product

By dynamically adjusting the response frequency in RDMA communication, and combining it with network status and congestion control phases, the response frequency is optimized using BDP and RTT, solving the problem that RDMA cannot be combined with TCP congestion control, thereby reducing resource overhead and improving network throughput.

CN118827573BActive Publication Date: 2026-01-06CHINA MOBILE COMM LTD RES INST +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411026004.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-07-29
Publication Date
2026-01-06
Estimated Expiration
2044-07-29

AI Technical Summary

Technical Problem

RDMA communication cannot be combined with TCP's congestion control methods, resulting in the inability to dynamically adjust the response acquisition frequency and generating significant resource overhead.

Method used

By obtaining the network status between the requesting and responding devices, the current congestion control phase is determined, the response acquisition frequency is dynamically adjusted, and the response frequency is optimized by using the bandwidth-delay product (BDP) and round-trip time (RTT). Combined with the ACK acquisition mechanism in the RDMA protocol, invalid responses are reduced.

Benefits of technology

It effectively reduces resource overhead in RDMA communication and improves network throughput and communication efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118827573B_ABST
    Figure CN118827573B_ABST
Patent Text Reader

Abstract

The embodiment discloses a response control method and device, electronic equipment, medium and computer program product, which are applied to a request end device, the request end device is used for network communication with a response end device by using a remote direct memory access (RDMA) method, the response control method comprises the following steps: acquiring a current network state of a network between the request end device and the response end device; determining a congestion control stage currently entered by the request end device; determining a response acquisition frequency based on the current network state and the congestion control stage currently entered; wherein the response acquisition frequency represents a frequency of acquiring response information, and the response information represents a response of the response end device to a data packet sent by the request end device.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The application belongs to the technical field of transmission and bearing, and particularly relates to a response control method and device, electronic equipment, medium and computer program product. BACKGROUND

[0002] A remote direct memory access (RDMA) method is applied in RDMA communication, allowing a computer to directly access the memory of another computer through a network without intervention of an operating system kernel or a central processing unit (CPU). A protocol applied by the RDMA, for example, a protocol ROCEv2 (RDMA over Converged Ethernet version 2) is encapsulated based on a user datagram protocol (UDP) protocol. Different from the transmission control protocol (TCP) in which the frequency of sending an acknowledge (ACK) and the corresponding sequence number are determined by a responding end device, in the protocol applied by the RDMA, the responding end device cannot actively send the ACK. Therefore, the RDMA communication cannot be combined with the congestion control method in the TCP, and in the congestion control method, the dynamic adjustment of the response acquisition frequency cannot be achieved, resulting in a large resource overhead in acquiring the response. SUMMARY

[0003] To solve the problems in the prior art that the RDMA communication cannot be combined with the BBR congestion control method, and the response acquisition frequency cannot be dynamically adjusted, resulting in a large resource overhead, the embodiments of the present application provide a response control method, device, electronic equipment, medium and computer program product.

[0004] The embodiments of the present application provide a response control method applied to a requesting end device, the requesting end device being configured to perform network communication with a responding end device by using a remote direct memory access (RDMA) method, and the method comprises the following steps.

[0005] obtaining a current network state of a network between the requesting end device and the responding end device;

[0006] determining a congestion control phase in which the requesting end device currently stays;

[0007] determine a response obtaining frequency based on the current network state and the current congestion control phase; wherein the response obtaining frequency represents a frequency of obtaining response information, and the response information represents a response of the response-end device to a data packet sent by the request-end device.

[0008] In some embodiments, the current network state comprises a Bandwidth-Delay Product (BDP), and the determining of the response obtaining frequency based on the current network state and the current congestion control phase comprises: in a case where the current congestion control phase is a Drain phase, determining the response obtaining frequency according to the BDP.

[0009] It can be seen that, by determining the response obtaining frequency according to the BDP in the Drain phase, the response-end device does not need to respond to each data packet in the Drain phase, which is conducive to reducing resource overhead of obtaining a response in the Drain phase in RDMA communication.

[0010] In some embodiments, the determining of the response obtaining frequency according to the BDP comprises: determining whether the BDP is less than a first preset value; in a case where the BDP is less than the first preset value, determining that the response obtaining frequency is a target response obtaining frequency; the target response obtaining frequency is used to make the response-end device respond to each data packet sent by the request-end device; and in a case where the BDP is greater than the first preset value, adjusting the response obtaining frequency, so that the adjusted response obtaining frequency is less than the target response obtaining frequency.

[0011] It can be seen that, in the process of current network communication, the response obtaining frequency can be dynamically adjusted based on the size of the BDP, so that the adjusted response obtaining frequency is more suitable for the current network state, and resource overhead caused by obtaining a response is reduced.

[0012] In some embodiments, the adjusting of the response obtaining frequency in a case where the BDP is greater than the first preset value comprises: in a case where the BDP is greater than the first preset value and less than a second preset value, adjusting the response obtaining frequency based on a first preset frequency; and in a case where the BDP is greater than the second preset value, adjusting the response obtaining frequency based on a current Round-Trip Time (RTT) of the data packet and an RTT obtaining frequency.

[0013] It can be seen that, by comparing the BDP with a preset value and further adjusting the response obtaining frequency according to different value ranges of the BDP, resource overhead caused by a response in the Drain phase can be effectively saved.

[0014] In some embodiments, the current network status comprises a BDP, and the determining of the response obtaining frequency based on the current network status and the current congestion control phase comprises: in a case where the current congestion control phase is a stable period or an emptying period of a bandwidth probe phase, determining the response obtaining frequency according to the BDP.

[0015] It can be seen that, by determining the response obtaining frequency based on the BDP in the stable period or the emptying period of the bandwidth probe (Probe Bandwidth, Probe BW) phase, the responder device does not need to respond to each data packet in the stable period or the emptying period of the Probe BW phase, which is conducive to reducing the resource overhead of obtaining responses in the stable period or the emptying period of the Probe BW phase in RDMA communication.

[0016] In some embodiments, the determining of the response obtaining frequency according to the BDP comprises: determining whether the BDP is less than a third preset value; in a case where the BDP is less than the third preset value, determining that the response obtaining frequency is a target response obtaining frequency; the target response obtaining frequency is used for making the responder device respond to each data packet sent by the requester device; and in a case where the BDP is greater than the third preset value, adjusting the response obtaining frequency, so that the adjusted response obtaining frequency is less than the target response obtaining frequency.

[0017] It can be seen that, in the process of current network communication, the response obtaining frequency can be dynamically adjusted based on the size of the BDP, so that the adjusted response obtaining frequency is more suitable for the current network status, which is conducive to reducing the resource overhead of obtaining responses.

[0018] In some embodiments, the adjusting of the response obtaining frequency in a case where the BDP is greater than the third preset value comprises: in a case where the BDP is greater than the third preset value and less than a fourth preset value, adjusting the response obtaining frequency based on a second preset frequency; and in a case where the BDP is greater than the fourth preset value, adjusting the response obtaining frequency based on the current RTT of the data packet and an RTT obtaining frequency.

[0019] It can be seen that, by comparing the BDP with a preset value and further adjusting the response obtaining frequency according to different value ranges of the BDP, the resource overhead of obtaining responses in the Probe BW phase can be effectively saved.

[0020] In some embodiments, the current network status comprises a BDP, and the determining of the response acquisition frequency based on the current network status and the current congestion control phase comprises: in a case where the current congestion control phase is a startup phase, a probe round-trip time (Probe RTT) phase, or a probe bandwidth (Probe BW) phase, determining the response acquisition frequency as a target response acquisition frequency; and the target response acquisition frequency is used to make the responding device respond to each data packet sent by the requesting device.

[0021] It can be seen that, since the Startup phase is mainly used for bandwidth detection, and is used to quickly find the bottleneck bandwidth (BtlBw) of a network link, in the Startup phase, by setting the responding device to respond to each data packet sent by the requesting device, the BtlBw can be quickly determined in the Startup phase. Since the probe period of the Probe BW phase increases the data packet sending rate, by adjusting the response acquisition frequency of the probe period to the target response acquisition frequency, the congestion situation of the probe period can be obtained in time. In addition, the global synchronization buffer emptying mechanism of the Probe RTT phase helps to achieve multi-flow fairness, and therefore, in the Probe RTT phase, by adjusting the response acquisition frequency of the probe period to the target response acquisition frequency, the RTT of the current network communication can be obtained, which helps to achieve fairness and efficiency among multi-flows.

[0022] In some embodiments, the method further comprises: adding a request message in the data packet, the request message comprising a first timestamp; the first timestamp representing a time when the requesting device sends the data packet to the responding device; receiving a response message sent by the responding device based on the request message; wherein the response message comprises the first timestamp and a second timestamp; the second timestamp representing a time when the requesting device receives the response message; obtaining the RTT of the data packet based on the first timestamp and the second timestamp; and adjusting a sending rate of a to-be-sent data packet based on the RTT of the data packet.

[0023] It can be seen that, by the method provided in this embodiment, the RTT of the data packet in the RDMA communication can be obtained, which helps to confirm the bandwidth status in the current network communication, and further helps to implement congestion control on the network communication using the RDMA method.

[0024] The application also provides an application response control device, which is applied to a requesting device, and the requesting device is used to perform network communication with a responding device by using a remote direct memory access (RDMA) method. The device comprises:

[0025] an acquisition module configured to acquire a current network state of a network between the requesting device and the responding device;

[0026] a determination module configured to determine a congestion control phase in which the requesting device is currently located;

[0027] an adjustment module configured to determine a response acquisition frequency based on the current network state and the congestion control phase in which the requesting device is currently located, wherein the response acquisition frequency represents a frequency of acquiring response information, and the response information represents a response of the responding device to a data packet sent by the requesting device.

[0028] An embodiment of the present application provides an electronic device, which comprises a processor and a memory for storing a computer program capable of running on the processor; wherein,

[0029] the processor is configured to run the computer program to perform any of the above response control methods.

[0030] An embodiment of the present application provides a computer storage medium, which stores a computer program, and the computer program is executed by a processor to implement any of the above response control methods.

[0031] An embodiment of the present application provides a computer program product, which comprises a computer program, and the computer program is executed by a processor to implement any of the above response control methods.

[0032] The embodiments of the present application provide a response control method and device, an electronic device, a medium and a computer program product. Through the method, the response frequency can be dynamically adjusted in RDMA communication in combination with a current network state and different congestion control phases, resource consumption caused by response acquisition can be reduced, and network throughput can be improved. BRIEF DESCRIPTION OF DRAWINGS

[0033] Figure 1 A processing flowchart of each phase in a BBR algorithm provided by an embodiment of the present application;

[0034] Figure 2 A data interaction schematic diagram between computer nodes provided by an embodiment of the present application;

[0035] Figure 3 A response control method flowchart provided by an embodiment of the present application;

[0036] Figure 4 A BTH schematic diagram provided by an embodiment of the present application;

[0037] Figure 5A Probe BW stage different period transmission rate adjustment schematic diagram provided for an embodiment of the present application;

[0038] Figure 6 An RTT acquisition schematic diagram provided for an embodiment of the present application;

[0039] Figure 7 A data packet format schematic diagram of ROCEv2 provided for an embodiment of the present application;

[0040] Figure 8 An AETH message header related specification schematic diagram provided for an embodiment of the present application;

[0041] Figure 9 An AETH message header setting rule schematic diagram provided for an embodiment of the present application;

[0042] Figure 10 A structure schematic diagram of an answer control device provided for an embodiment of the present application;

[0043] Figure 11 A component structure schematic diagram of an electronic device provided for an embodiment of the present application. DETAILED DESCRIPTION

[0044] In TCP communication, when the data transmission is performed between the request end device and the response end device, the request end device will divide the data into a series of data packets for sending. When the response end device receives these data packets, a special ACK packet will be sent as confirmation, informing the request end device that the data has been successfully received. The ACK mechanism plays an important role in TCP, such as data confirmation, reliability guarantee, flow control and congestion control, etc.

[0045] The congestion control algorithm based on TCP protocol (Bottleneck Bandwidth and Round-trip propagation time, BBR) has high throughput performance, mainly by periodically detecting the bottleneck bandwidth (bandwidth and delay) of the network link, and adjusting the size of the congestion window according to these information, so as to realize a higher bandwidth utilization and lower transmission delay. BBR mainly consists of Startup phase, Drain phase, Probe BW phase and Probe RTT phase. As shown in Figure 1 Figure 1 ​The processing flow chart of each stage in the BBR algorithm is shown. The Startup stage is started similar to the slow start stage of the cubic CUBIC algorithm, and the congestion window size is exponentially increased after one round trip RTT, until the detected instantaneous bandwidth is less than 1.25 times the current bottleneck bandwidth for three consecutive times, and then enters the Drain state. The current sending rate of the Drain state is 0.35 times the detected bottleneck bandwidth, and the network link backlog data packets are drained. BBR spends most of the time in the bandwidth probe Probe BW state, which cycles and rolls over every 8 RTTs, including 6 stable periods, 1 probe period and 1 drain period. The data packet sending rate in the stable period is equal to the detected bottleneck bandwidth; the data packet sending rate in the probe period is equal to BtlBw x 1.25, which increases the sending rate to probe whether there is more available bandwidth on the network link; the sending rate in the drain period is equal to BtlBw x 0.75, which drains the backlog of data packets caused by the probe period. When the estimated RTT of the BBR algorithm is not updated for a period of time, and the predetermined periodic probe time is reached, the Probe RTT stage is entered to re-measure the round-trip delay of the network, and the data packet sending rate is adjusted according to the measurement result.

[0046] After the Probe RTT stage, the BBR algorithm usually directly enters the Probe BW stage; in some special cases, if the algorithm detects that the current network conditions have changed significantly (for example, the bandwidth capacity changes greatly due to network failure, device replacement or configuration change), the BBR algorithm may indirectly "return" to the Startup stage from the Probe RTT stage through some mechanism (such as resetting the internal state or triggering a re-probe).

[0047] The protocol applied to RDMA, such as ROCEv2, is encapsulated based on the UDP protocol, and can realize high-performance and low-delay data transmission on Ethernet. Unlike TCP, the data request end device determines the frequency of ACK sending and the corresponding sequence number, and in RoCEv2, whether to send ACK and respond to which data packet is determined by the data request end device by setting the Acknowledge Request (AckReq) bit to 1, and the data response end device will respond to the corresponding PlayStation Network (PSN). Take the Write operation in ROCEv2 as an example, the request end device will set the ACK packet of the response end device to 1 in the following two cases:

[0048] 1. The request end device sets the AckReq to 1 in the last message (Write Last) in the message Message, and the response end device feeds back the ACK packet;

[0049] 2. Define that when more than a fixed number of data packets (e.g., 64) fail to receive an ACK, the requesting device sets AckReq to 1 in the Write Middle message, and the responding device sends back an ACK message.

[0050] by Figure 2 Taking the data interaction diagram between computer node A and computer node B as an example, when network interface card A (NIC A) in host A of computer node A interacts with NIC B in host B of computer node B via the RDMA method, NIC A can directly access the data in NIC B without needing processing by the CPUs in host A and host B. When computer node A needs to access data in computer node B, using the RDMA method, NIC A directly sends a data acquisition request to NIC B, and NIC B responds based on the request sent by NIC A. Host A can then directly access the memory data in host B. Similarly, computer node B can also directly access the memory data in computer node A using the RDMA method.

[0051] In network communication using the RDMA method, if the requesting device does not explicitly set the AckReq bit to 1, the responding device may indefinitely merge and accumulate acknowledgment packets. Referring to Sections 9.7.5.1.3 and 9.7.5.1.6 of the InfiniBand™ Architecture Specification Volume 1 Release 1.4, it is typically stipulated that the AckReq bit be set to 1 in the last data of the last request to obtain a response from the responding device, thereby preventing the responding device from indefinitely merging and accumulating packets sent by the requesting device.

[0052] Therefore, the calculation of RTT and reliability guarantee in the existing BBR algorithm need to be based on the ACK mechanism, while the ACK feedback mechanism in the current RDMA application protocol cannot meet the requirements of RTT calculation and reliability guarantee in the BBR algorithm.

[0053] To address the aforementioned issues, embodiments of this application provide a response control method, apparatus, electronic device, medium, and computer program product. This application proposes a response control method that, based on network communication using the RDMA method, dynamically sets the response acquisition frequency in conjunction with the current congestion control stage and the current network state. Simultaneously, it reduces the number of responses acquired, thereby reducing the resource overhead of the network interface card (NIC) in processing responses from the response device and improving network throughput.

[0054] The embodiments of this application will be further described in detail below with reference to the accompanying drawings and examples. It should be understood that the embodiments provided herein are merely illustrative of the embodiments of this application and are not intended to limit the embodiments of this application. Furthermore, the embodiments provided below are some embodiments for implementing this application, and not all embodiments for implementing this application. Unless otherwise specified, the technical solutions described in the embodiments of this application can be implemented in any combination.

[0055] It should be noted that, in the embodiments of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a method or apparatus that includes a list of elements includes not only the elements expressly described, but also other elements not expressly listed, or elements inherent to implementing the method or apparatus. Without further limitations, an element defined by the phrase "comprising..." does not exclude the presence of other related elements in the method or apparatus that includes that element (e.g., steps in the method or units in the apparatus; for example, a unit in the apparatus may be a portion of circuitry, a portion of a processor, a portion of a program or software, etc.).

[0056] The response control method provided in this application includes a series of steps, but the response control method provided in this application is not limited to the steps described. Similarly, the response control device provided in this application includes a series of modules, but the device provided in this application is not limited to the modules explicitly described, and may also include modules that need to be set for obtaining relevant information or processing based on information.

[0057] This application provides a response control method, such as... Figure 3 As shown, Figure 3 A flowchart of a response control method is shown, which is applied to a requesting device that uses RDMA to communicate with a responding device over a network. Figure 3 The response control methods shown include:

[0058] Step 301: Obtain the current network status between the requesting device and the responding device.

[0059] When two devices need to communicate over a network, a connection must first be established between them. Before using the RDMA method for network communication, queue pair (QP) connection establishment is a preparatory process for RDMA communication. It ensures that the two communication nodes, such as the requesting device and the responding device, can be correctly identified and configured so that they can exchange data securely and efficiently.

[0060] Once RDMA communication is established between the requesting and responding devices, the current network status between them can be obtained in real time, or during data exchange. The RDMA communication described in this embodiment can be applied to both local area networks (LANs) and wide area networks (WANs). In RDMA communication, the current network status between the requesting and responding devices can specifically include one or more of the following: network connection status, network latency, bandwidth, packet loss rate, and the amount of data the network link can carry (e.g., BDP).

[0061] Step 302: Determine the current stage of congestion control for the requesting device.

[0062] Congestion control is a series of techniques and mechanisms used in computer networks to avoid or mitigate network performance degradation caused by insufficient network resources. Besides the BBR congestion control algorithm mentioned above, the TCP protocol employs several other congestion control algorithms, such as the Slow Start phase, Congestion Avoidance phase, Fast Retransmit phase, and Fast Recovery phase. These phases interact to control the data transmission rate by dynamically adjusting the sending window size of the requesting device, thereby avoiding network congestion.

[0063] When the requesting device uses different congestion control algorithms, it is necessary to consider the congestion control stage of the currently used congestion control algorithm. For example, when using the BBR algorithm, it is necessary to consider which of the four stages of congestion control is currently in: Startup, Drain, Probe BW, and Probe RTT.

[0064] When the algorithm used includes the Slow Start phase, Congestion Avoidance phase, FastRetransmit phase, and Fast Recovery phase, it is necessary to determine which specific phase the requesting device is currently in regarding congestion control.

[0065] Step 303: Based on the current network state and the current stage of congestion control, determine the response acquisition frequency; where the response acquisition frequency represents the frequency of acquiring response information, and the response information represents the response from the responding end device to the data packet sent by the requesting end device.

[0066] Congestion control algorithms under the TCP protocol are widely used. However, since the RDMA application protocol is based on the UDP protocol and the UDP protocol itself does not have a built-in congestion control mechanism, RDMA communication generally does not have a built-in congestion control mechanism either.

[0067] For example, in the RoCEv2 protocol, the confirmation of whether an ACK has been sent and which data packet to acknowledge is determined by the requesting device setting the AckReq bit to 1, at which point the responding device will acknowledge the corresponding PSN. Figure 4 The diagram shown below illustrates the Base Transport Header (BTH) format. Figure 4 BTH in the RDMA protocol is the standard message format, where A is the AckReq flag, SE is used to instruct the responding device to respond to the event, M is used to convey the transition status, Pad is used to ensure that the data frame or packet has sufficient length, TVer indicates the transmit header version, and F / Res1... a In the diagram, when F is 1, it indicates that the data packet passes through a congestion point; when Res1 is 0, the received data is ignored. (B / Res1) a In this context, when B is 0, it indicates that the data packet did not pass through the congestion point; when B is 1, it indicates that the data packet was affected by congestion ahead. The target QP represents the target queue pair. When the responding device receives a data packet with the AckReq bit set to 1, it returns an ACK response packet for that data packet. The PSN of the ACK response packet must be equal to or logically greater than the requested PSN.

[0068] Because the current TCP uses different congestion control algorithms with different phases, such as the Slow Start phase, Congestion Avoidance phase, Fast Retransmit phase, and Fast Recovery phase; Startup phase, Drain phase, Probe BW phase, and Probe RTT phase, all of which may require corresponding congestion handling based on ACK, and the RDMA protocol based on UDP does not automatically return an ACK value, the method given in this step allows the requesting device to dynamically set the AckReq in BTH based on the current network state and the current congestion control phase, thereby further controlling the ACK acquisition frequency.

[0069] When the requesting device is currently in the Congestion Avoidance stage of congestion control, since the purpose of the Congestion Avoidance stage is to avoid network congestion, based on the current network state (e.g., when the current network latency is low, the current network state is considered good), the ACK acquisition frequency in the Congestion Avoidance stage is appropriately reduced. For example, the AckReq bit of BTH in every N data packets can be set to 1. When the requesting device is currently in the Drain stage of the BBR algorithm, based on the current network state (e.g., based on the current network latency), if the current latency is low, the current network state is considered to be congested. That is, in the data packets sent during the Drain stage, the AckReq bit of BTH in every N data packets is set to 1, where N is an integer greater than 1.

[0070] This embodiment presents an acknowledgment control method for RDMA communication. By dynamically changing the ACK acquisition frequency, it enables congestion control capabilities in RDMA protocols encapsulated based on UDP. Compared to the ACK acquisition mechanism in the TCP protocol, dynamically adjusting the ACK acquisition frequency reduces the resource overhead associated with ACKs, thus improving network throughput in RDMA communication.

[0071] In practical applications, steps 301 to 303 can be implemented based on a processor, which can be at least one of the following: Application Specific Integrated Circuit (ASIC), Digital Signal Processor (DSP), Digital Signal Processing Device (DSPD), Programmable Logic Device (PLD), Field Programmable Gate Array (FPGA), CPU, controller, microcontroller, and microprocessor.

[0072] In some embodiments, the current network state includes the bandwidth-delay product (BDP). Based on the current network state and the current congestion control phase, the response acquisition frequency is determined, including: if the current congestion control phase is the Startup phase, determining the response acquisition frequency as a target response acquisition frequency; the target response acquisition frequency is used to enable the responding end device to respond to each data packet sent by the requesting end device.

[0073] BDP reflects the amount of data that a network link can "cache," that is, the maximum number of data packets waiting for acknowledgment on the network link. BDP is defined as the product of the network bottleneck bandwidth and the RTT, i.e., BDP = BtlBW × RTT. By using the bottleneck bandwidth as the independent variable of BDP, we can obtain the amount of data that can be "cached" under the bottleneck bandwidth condition.

[0074] The Startup phase is the first stage of congestion control. Its purpose is to probe the network links in network communication and fill the network bottleneck bandwidth as quickly as possible. By continuously increasing the packet sending rate, the BBR algorithm attempts to find the maximum bandwidth capacity of the network link in the Startup phase, thereby increasing the packet transmission rate. Once a TCP connection is established, it will directly enter the Startup phase. The main purpose of the Startup phase is bandwidth probing, requiring rapid convergence to the maximum bandwidth of the link. This phase exits when the maximum bandwidth of the link has been detected.

[0075] Once the requesting and responding devices establish a QP connection, or after completing a Reliable Connected (RC) connection, they default to the Startup phase of the BBR algorithm. Since the Startup phase requires determining the bottleneck bandwidth of the current network link, it analyzes the ACK and RTT for each data packet. Due to the specific nature of the Startup phase, the requesting device sets its ACK acquisition frequency to the target ACK acquisition frequency, i.e., setting the AckReq bit in each data packet to 1. The responding device immediately returns an ACK response packet upon receiving each data packet. The requesting device calculates the RTT based on the timestamp in the response packet, thereby determining the bottleneck bandwidth between the requesting and responding devices.

[0076] In some embodiments, the current network state includes BDP. Based on the current network state and the current congestion control phase, determining the response acquisition frequency includes: if the current congestion control phase is the Drain phase, determining the response acquisition frequency according to BDP.

[0077] The Drain phase follows the Startup phase in the BBR algorithm. During the Startup phase, the maximum link bandwidth needs to be quickly determined, which results in many data packets being buffered in the link's buffer. However, the maximum link bandwidth does not increase due to this buffering, so it's necessary to drain this buffered data. The exit condition for the Drain phase is: the number of packets that have been sent but not yet acknowledged by the responding device equals the size of the congestion window corresponding to the maximum bandwidth.

[0078] The purpose of the Drain phase is to clear the network buffer generated during the Startup phase, preventing increased network latency or packet loss due to excessive network load in subsequent phases. Therefore, during the Drain phase, the requesting device will send data packets at a lower rate than during the Startup phase. In the early stages of the Drain phase, network congestion may occur in the network link during RDMA communication. Based on the definition of BDP (Bottleneck Difference), since bottleneck bandwidth is an inherent property of the network link, network congestion will directly lead to a larger RTT (Round-Trip Time), i.e., a larger BDP value. Additionally, in some network communications, a large bottleneck bandwidth in the network link itself can also result in a large BDP value, indicating that the current network link can handle a large data transmission volume.

[0079] Since the Drain phase clears the packets generated during the Startup phase, assuming the bottleneck bandwidth remains constant, the RTT (Round-Trip Time) in the early Drain phase is typically greater than the RTT in the later Drain phase; that is, the BDP (Block Response Points) in the early Drain phase is typically greater than the BDP in the later Drain phase. Therefore, during the Drain phase, the ACK (Acknowledgment) acquisition frequency can be adjusted in real time based on the BDP. For example, when the BDP is too high during the Drain phase, it indicates severe congestion, and the ACK acquisition frequency can be increased to help monitor the clearing status in real time. When the BDP is within the normal range, ACKs can be acquired from packets at preset intervals to detect the current network link congestion status.

[0080] Since BDP can simultaneously reflect the relationship between bottleneck bandwidth and RTT, determining the ACK acquisition frequency in the Drain phase based on BDP can combine the current transmission characteristics of the network link in the Drain phase to obtain an ACK acquisition frequency that is more in line with the current network state. This means that in the Drain phase, the responding device does not need to respond to every data packet, which helps to reduce the resource overhead of acquiring ACKs in the Drain phase in RDMA communication.

[0081] In some embodiments, determining the response acquisition frequency based on BDP includes: determining whether BDP is less than a first preset value; if BDP is less than the first preset value, determining the response acquisition frequency as a target response acquisition frequency; the target response acquisition frequency is used to enable the responding end device to respond to each data packet sent by the requesting end device; if BDP is greater than the first preset value, adjusting the response acquisition frequency so that the adjusted response acquisition frequency is less than the target response acquisition frequency.

[0082] Since frequent response requests do not significantly impact current network transmission in low-bandwidth network communication, a target response frequency can be set to receive responses in order to monitor the current network status in real time. For example, based on typical internet bandwidth and latency, and considering the BDP = BtlBW × RTT given in the above embodiment, it can be seen that, according to the actual network status between the requesting and responding devices, or based on preset network standards and empirical values, a BtlBW of 100Kbps is considered low-bandwidth network communication. Assuming a BtlBW of 100Kbps results in an RTT of 10ms, then BDP = 100Kbps × 10ms = 10Kbit. Therefore, a BDP of 10Kbit is considered low-bandwidth network communication. Using 10Kbit as the first preset value, when BDP is less than 10Kbit, it is considered that the network communication bandwidth between the requesting device and the responding device is small, and frequent acquisition of ACK will not affect the communication rate of other data in the network communication. In this case, based on the target response acquisition frequency, ACK is acquired packet by packet, that is, the requesting device sets AckReq in BTH of each data packet sent to 1.

[0083] Based on BDP, determine whether the current network communication belongs to low-bandwidth network communication. In low-bandwidth network communication, determine the response acquisition frequency as the target response acquisition frequency. The target response acquisition frequency is used to enable the responding end device to respond to each data packet sent by the requesting end device. If the network communication process does not belong to low-bandwidth network communication, adjust the response acquisition frequency so that the adjusted response acquisition frequency is less than the target response acquisition frequency.

[0084] When network communication is not considered low-bandwidth network communication, frequent ACK acquisition will result in significant resource consumption and affect the efficiency of current network communication. Based on the above example, when BDP is greater than 10Kbit, it is considered that the network communication between the requesting and responding devices is not low-bandwidth network communication. The requesting device can reduce the frequency of ACK acquisition. That is, the requesting device can set the AckReq bit in BTH of each data packet sent to 1 every N data packets and acquire the ACK from the responding device at intervals.

[0085] The magnitude of the first preset value can be adjusted according to the actual network communication requirements and different network states. The magnitude of the first preset value may be different between different requesting and responding devices. In other words, when BDP is less than the threshold, and when acquiring ACK packet by packet does not affect the current network transmission rate, the threshold can be used as the first preset value.

[0086] This embodiment demonstrates how to determine whether the current network communication belongs to low-bandwidth network communication by using the size of BDP, obtain the current network status by the relationship between BDP and a first preset value, and dynamically adjust the acquisition frequency of ACK, which can realize the dynamic acquisition of ACK in the Drain stage, which helps to reduce the resource consumption in the Drain stage.

[0087] In some embodiments, when BDP is greater than a first preset value, adjusting the response acquisition frequency includes: when BDP is greater than the first preset value and less than a second preset value, adjusting the response acquisition frequency based on the first preset frequency; when BDP is greater than the second preset value, adjusting the response acquisition frequency based on the current round-trip time (RTT) of the data packet and the RTT acquisition frequency.

[0088] If the BDP is greater than a first preset value, it is determined that the current network communication does not belong to low-bandwidth network communication. If the current network communication does not belong to low-bandwidth network communication, the ACK acquisition frequency is further divided. If the BDP is greater than the first preset value but less than the second preset value, the ACK acquisition frequency is adjusted based on the first preset frequency; if the BDP is greater than the second preset value, the ACK acquisition frequency is adjusted based on the current RTT of the data packet and the RTT acquisition frequency.

[0089] When BDP is greater than the first preset value, it is considered that the current network communication is not a low-bandwidth network communication. Therefore, frequent acquisition of ACK will affect the current network communication status. At this time, the ACK acquisition frequency can be appropriately reduced, and the RTT acquisition frequency can be further reduced.

[0090] Referring to the method for determining the first preset value given in the above embodiments, based on the typical bandwidth and latency of the Internet, it can be considered that when the bottleneck bandwidth is 100Mbps, the current network communication is not considered to be low-bandwidth network communication, and the current network communication status is considered to be good. When the RTT is obtained as 10ms when the bottleneck bandwidth is 100Mbps, based on BDP = 100Mbps × 10ms = 10Mbit, 10Mbit is set as the second preset value to further classify the network status.

[0091] When 10Kbit < BDP < 10Mbit, the current network communication is considered to be in a normal communication state. At this time, the ACK acquisition frequency can be reduced. For example, it can be adjusted to acquire an ACK once every L data packets, or every L messages, and calculate the RTT, where L can be set to 2 or an integer greater than 2.

[0092] When BDP > 10 Mbit, it indicates potential network congestion. However, BDP alone cannot directly determine whether the excessive BDP is due to increased bottleneck bandwidth or network congestion. If the excessive BDP is due to increased bottleneck bandwidth, but there is no actual network congestion, RTT may decrease. Therefore, setting the ACK acquisition frequency based on the target response acquisition frequency in this case might increase the resource overhead associated with ACKs.

[0093] Therefore, when BDP > 10 Mbit, the frequency for obtaining ACK can be set based on RTT. For example, when BDP > 10 Mbit, ACK can be obtained at the frequency of RTT / β. In this case, β can be set to 4, or the current acquisition frequency of RTT can be used as the value of β.

[0094] The value of the second preset value can be adjusted according to the actual network communication requirements and different network conditions. The value of the second preset value may be different between different requesting and responding devices.

[0095] Based on the method given in this embodiment, in practical applications, the ACK acquisition frequency can be further subdivided according to different network conditions or different data transmission requirements. For example, when 10Mbit < BDP < 10Gbit, the ACK acquisition frequency can be adjusted based on the current round-trip time (RTT) of the data packet and the RTT acquisition frequency; when BDP is greater than 10Gbit, the ACK acquisition frequency can be adjusted again.

[0096] This embodiment further provides a method for dynamically acquiring ACKs during the Drain phase, which can fully combine the frequency of acquiring ACKs with the current network communication state, so as to obtain an ACK acquisition frequency that meets the requirements based on the current network communication state, which is beneficial to improving the throughput of network communication.

[0097] In some embodiments, the current network state includes BDP. Based on the current network state and the current congestion control phase, determining the response acquisition frequency includes: if the current congestion control phase is a steady period or a draining period of the Probe BW phase, determining the response acquisition frequency according to BDP.

[0098] The Probe BW phase follows the Drain phase in the BBR algorithm. It's a bandwidth utilization and probing phase. On one hand, it ensures that the probed bandwidth is fully utilized; on the other hand, it continuously probes and senses changes in link bandwidth. The Probe BW phase aims to maintain the current network communication state and occasionally make small adjustments to the sending rate to detect if more bandwidth is available. Therefore, during the Probe BW phase, the requesting device's packet sending rate changes relatively little. Figure 5 A schematic diagram illustrating the adjustment of the transmission rate at different cycles during the Probe BW phase is shown, as follows: Figure 5 As shown, the Probe BW phase consists of six stationary periods. During a stationary period, the requesting device sends data packets to the responding device at the bottleneck bandwidth detected in the Startup phase. After six stationary periods, a probing period begins. During this period, the requesting device sends data packets to the responding device at 1.25 times the bottleneck bandwidth to detect if more bandwidth is available in the current network. After a probing period, a draining period begins. During this period, the requesting device sends data packets at 0.75 times the bottleneck bandwidth to drain the data packet backlog caused by the probing period. After a draining period, a new stationary period begins. If more available bandwidth is detected during the probing period, the sending rate will increase in the next stationary period; conversely, if less available bandwidth is detected, the sending rate will decrease. Therefore, the sending rate may be adjusted at the start of each new stationary period in the Probe BW phase.

[0099] In the early stages of the Probe BW phase, congested packets in the network link have already been cleared during the Drain phase. At this point, during the stable period of the Probe BW phase, the RTT remains within a small and relatively stable range. During the clearing period of the Probe BW phase, the congested state gradually transitions to a stable state. Therefore, when the Probe BW phase enters a stable period or a clearing period other than the probe period, the acknowledgment acquisition frequency can be determined based on the BDP (Block Response Point) phase. This allows the responding device to avoid acknowledging every packet during the stable period or the clearing period, thus reducing the resource overhead of acquiring ACKs during these periods.

[0100] When the Probe BW phase enters the probing period, the requesting device sends data packets at a rate 1.25 times the bottleneck bandwidth, which may cause network congestion during the probing period. Furthermore, since the purpose of the probing period is to detect the availability of more bandwidth, the response acquisition frequency during the Probe BW phase can be set to the target response acquisition frequency. That is, the requesting device sets the AckReq value in the BTH message of each data packet to 1.

[0101] When the Probe BW phase enters the probing period, the response acquisition frequency can also be determined based on the BDP. Specifically, if the BDP value changes abruptly during the Probe BW phase, or if the difference between the current BDP and the BDP acquired in the previous data packet meets a threshold, it is considered that the Probe BW phase has entered the probing period, and the ACK acquisition frequency is adjusted to the target response acquisition frequency.

[0102] In some embodiments, determining the response acquisition frequency based on BDP includes: determining whether BDP is less than a third preset value; if BDP is less than the third preset value, determining the response acquisition frequency as a target response acquisition frequency; the target response acquisition frequency is used to enable the responding end device to respond to each data packet sent by the requesting end device; if BDP is greater than the third preset value, adjusting the response acquisition frequency so that the adjusted response acquisition frequency is less than the target response acquisition frequency.

[0103] When the Probe BW phase enters a stable or emptying period, frequent acknowledgment acquisition does not significantly impact current network transmission in low-bandwidth network communication. Therefore, in low-bandwidth network communication, acknowledgments can be acquired at a target acknowledgment frequency to monitor the current network status in real time. Based on the description given in the above embodiments, 10Kbit can also be used as a third preset value. When BDP is less than 10Kbit, it is considered that the network communication bandwidth between the requesting and responding devices is small, and frequent ACK acquisition will not affect the communication rate of other data in the network. In this case, ACKs are acquired packet by packet based on the target acknowledgment acquisition frequency.

[0104] When network communication is not low-bandwidth, frequent ACK acquisition can lead to significant resource consumption and impact network efficiency. In such cases, the requesting device can reduce the frequency of ACK acquisition. Specifically, based on the BDP value, the requesting device can set the AckReq bit in the BTH of each sent data packet to 1 every N data packets, and then acquire the ACK from the responding device at intervals.

[0105] The magnitude of the aforementioned third preset value can be adjusted according to the actual network communication requirements and different network conditions. The corresponding third preset value may differ between different requesting and responding devices. In other words, when BDP is less than the threshold, and when acquiring ACK packet by packet does not affect the current network transmission rate, this threshold can be used as the third preset value.

[0106] This embodiment demonstrates how to determine whether the current network communication belongs to low-bandwidth network communication by using the size of BDP, obtain the current network status by the relationship between BDP and a third preset value, and dynamically adjust the acquisition frequency of ACK. This enables dynamic acquisition of ACK in the Probe BW phase, which helps to reduce resource consumption in the Probe BW phase during the stable period or emptying period.

[0107] In some embodiments, when BDP is greater than a third preset value, adjusting the response acquisition frequency includes: when BDP is greater than a third preset value and less than a fourth preset value, adjusting the response acquisition frequency based on a second preset frequency; when BDP is greater than a fourth preset value, adjusting the response acquisition frequency based on the current RTT of the data packet and the RTT acquisition frequency.

[0108] If the BDP is greater than the third preset value, it is determined that the current network communication does not belong to low-bandwidth network communication. When the current network communication does not belong to low-bandwidth network communication, the ACK acquisition frequency of the stable period or the emptying period is further divided. If the BDP is greater than the third preset value but less than the fourth preset value, the ACK acquisition frequency is adjusted based on the second preset frequency; if the BDP is greater than the fourth preset value, the ACK acquisition frequency is adjusted based on the current RTT of the data packet and the RTT acquisition frequency.

[0109] When the Probe BW phase enters a stable or emptying period, referring to the method for obtaining the second preset value mentioned above, the fourth preset value in this implementation can be obtained based on experimental data, experience, or the bandwidth and latency of the current typical Internet. For example, it can be assumed that when the bottleneck bandwidth is 100Mbps, the current network communication is not considered low-bandwidth network communication, and the current network communication status is considered to be good. The RTT when the bottleneck bandwidth is 100Mbps is obtained as 10ms. Based on BDP = 100Mbps × 10ms = 10Mbit, 10Mbit is used as the fourth preset value to further classify the network status.

[0110] When 10Kbit < BDP < 10Mbit, the current network communication is considered to be in a normal communication state. At this time, the ACK acquisition frequency can be reduced. For example, it can be adjusted to acquire an ACK once every L data packets, or every L messages, and calculate the RTT, where L can be set to 2 or an integer greater than 2.

[0111] When BDP > 10 Mbit, network congestion is considered a potential issue. However, BDP alone cannot directly determine whether the excessive BDP is due to increased bottleneck bandwidth or network congestion. If the excessive BDP is caused by increased bottleneck bandwidth, but the actual network communication process is not congested, RTT may decrease. Therefore, setting the ACK acquisition frequency based on the target response acquisition frequency may increase the resource overhead associated with ACKs.

[0112] Therefore, when BDP > 10 Mbit, the frequency for obtaining ACK can be set based on RTT. For example, when BDP > 10 Mbit, ACK can be obtained at the frequency of RTT / β. In this case, β can be set to 4, or the current acquisition frequency of RTT can be used as the value of β.

[0113] The magnitude of the aforementioned fourth preset value can be adjusted according to the actual network communication requirements and different network states. The magnitude of the corresponding fourth preset value may be different between different requesting and responding devices.

[0114] Based on the method given in this embodiment, in practical applications, the ACK acquisition frequency can be further subdivided according to different network conditions or different data transmission requirements. For example, when 10Mbit < BDP < 10Gbit, the ACK acquisition frequency can be adjusted based on the current round-trip time (RTT) of the data packet and the RTT acquisition frequency; when BDP is greater than 10Gbit, the ACK acquisition frequency can be adjusted again.

[0115] This embodiment further provides a method for dynamically acquiring ACKs during the steady-state period and emptying period of the Probe BW phase. This method can fully integrate the frequency of ACK acquisition with the current network communication state, so as to obtain the required ACK acquisition frequency based on the current network state, which is beneficial to improving the throughput of network communication.

[0116] In some embodiments, the current network state includes BDP. Based on the current network state and the current congestion control phase, the response acquisition frequency is determined, including: if the current congestion control phase is the Startup phase, the Probe RTT phase, or the Probe BW phase, the response acquisition frequency is determined as the target response acquisition frequency; the target response acquisition frequency is used to enable the responding end device to respond to each data packet sent by the requesting end device.

[0117] The definition of BDP is the same as that given in the above embodiments. The Probe RTT phase is a super mechanism introduced for multi-flow fairness. After the PROBE BW state has lasted for a long time, it is necessary to release some bandwidth for other flows. In addition, the Probe RTT phase also measures the network's RTT. In this embodiment, the RTT is mainly based on the packet acquisition in the data packet. Therefore, in the Probe RTT phase, the response acquisition frequency needs to be set to the target response acquisition frequency to obtain the network communication RTT. In this embodiment, the method for determining the response acquisition frequency to the target response acquisition frequency during the Startup phase or the probe period of the Probe BW phase has been explained in the above embodiments.

[0118] The method presented in this embodiment can quickly obtain the bottleneck bandwidth in RDMA communication, acquire the RTT value in real time, and achieve timely acquisition of ACK for the probe BW phase. This is beneficial for determining the data packet sending rate based on the bottleneck bandwidth, achieving multi-stream fairness, and improving network throughput by acquiring the network communication congestion status in real time.

[0119] In the above embodiment, when the ACK acquisition message sent by the requesting device fails to be sent, the requesting device will set the AckReq of the BTH message to 1 in the next data packet to be sent, and then acquire the ACK.

[0120] Based on the method given in the above embodiments, the following set of pseudocode is provided to obtain the response acquisition frequency in different congestion control stages of RDMA communication.

[0121] Pseudocode example:

[0122]

[0123]

[0124]

[0125]

[0126] As can be seen from the above implementation, in RDMA communication, in addition to dynamically acquiring ACKs, it is also necessary to acquire the RTT (Round-Trip Time) of network communication simultaneously with acquiring ACKs. The following describes a method for acquiring RTT through custom modifications to relevant messages using the RDMA application protocol.

[0127] In some embodiments, the method further includes: adding a request message to the data packet, the request message including a first timestamp; the first timestamp representing the time when the requesting device sends the data packet to the responding device; receiving a response message sent by the responding device based on the request message; wherein the response message includes a first timestamp and a second timestamp; the second timestamp representing the time when the requesting device receives the response information; obtaining the RTT of the data packet based on the first timestamp and the second timestamp; and adjusting the transmission rate of the data packet to be sent based on the RTT of the data packet.

[0128] Figure 6 This diagram illustrates an RTT acquisition process. When the AckReq bit in the data packet sent by the requesting device is not set to 1, the responding device will not return an ACK after receiving the data packet; when the data packet sent by the requesting device includes a request message with AckReq set to 1, such as... Figure 6 As shown, the AckReq bit in the data packet with PSN 11 is set to 1. At this time, the responding device will return an ACK response message with PSN 11 based on the data packet with PSN 11, and carry a timestamp in the returned response message. The requesting device can calculate the RTT based on the timestamp.

[0129] In RDMA communication, this embodiment can obtain the RTT of network communication by adding an Acknowledge Extended Transport Header (AETH) to the extension header of the InfiniBand (IB) protocol and modifying the AETH header to add a timestamp. Taking data transmission based on the ROCEv2 protocol as an example, a method for obtaining RTT based on the ROCEv2 protocol is given below.

[0130] In this embodiment, the data packet sent by the requesting device includes a request message, which is augmented with a timestamp. The AckReq bit in the data packet is set to 1. See details... Figure 7 . Figure 7 This illustrates a ROCEv2 packet format, such as... Figure 7 As shown, the first part of the data packet is the Eth L2 header, which records the address of the responding device; the Internet Protocol (IP) address header indicates that the current packet is a UDP packet; ICRC is an algorithm used to verify data integrity; and FCS is a frame check sequence, a mechanism used to detect frame errors during data transmission. Figure 7 The UDP header shown indicates that the next header is an IB header.

[0131] Modify the AETH message header as shown in Table 1, adding a timestamp to the AETH message header, and then place the modified AETH message header in the appropriate location. Figure 7 The IB payload locations are shown in Table 1, where CRC stands for Cyclic Redundancy Check.

[0132] Table 1. Modified AETH header format

[0133] Eth L2 header UDP header BTH AETH ... timestamp Payload CRC

[0134] The specific method for adding a timestamp to the AETH message header is as follows.

[0135] Figure 8 , Figure 9 The document illustrates the relevant configuration rules of the AETH header white paper. According to the AETH header white paper, "The ACK Extended Transport Header (AETH) contains additional transport fields for the ACK packet. The ACK Extended Transport Header is included in the first and last packets of all ACK and RDMA read response messages." Figure 9 In RDMA protocols, particularly in IB or similar network technologies, the NAK response type is used to indicate that the responding device is currently unable to process a request from the requesting device. NAK (Negative Acknowledgment) is used in computer communication and network protocols to indicate that the responding device has successfully received a message or data packet but cannot process its content. Figure 8 , Figure 9 The relevant setting rules shown indicate that in AETH, when 6 bytes are set to 1 and 5 bytes are set to 0, the space is reserved.

[0136] In this embodiment, a timestamp is added to the reserved bits, as shown in Table 2. When bits 30:29 of bytes are 10, a timestamp is added. When bytes 28:24 are set to 00001, timestamp0 is recorded in bytes 7:0. Timestamp0 is the first timestamp used to record the time when the requesting device sends a data packet to the responding device. When bytes 28:24 are 00010, timestamp1 is recorded in bytes 23:0. Timestamp1 is the second timestamp used to record the time when the requesting device receives the acknowledgment message. For example, after the requesting device receives the ACK acknowledgment message returned by the responding device, it records the value of timestamp1. The RTT is calculated by subtracting timestamp0 from timestamp1.

[0137] Table 2: Adding formatting to timestamps

[0138]

[0139] Based on the above method, when the requesting device needs a response from the responding device, the requesting device sets the AckReq bit in the sent data packet to 1 and adds an AETH header with a timestamp added, as shown in Table 1, to the data packet request message. The responding device replies with an ACK response message, which carries a timestamp.

[0140] The timestamp definition format given in this embodiment enables the acquisition of RTT in RDMA communication, which helps to determine the current network congestion status. Furthermore, the congestion window can be adjusted based on RTT or bottleneck bandwidth to improve network throughput in RDMA network communication.

[0141] This application's embodiment is based on an RDMA-based response acquisition method. The requesting device automatically adjusts the ACK acquisition frequency according to the characteristics and transmission rate of the four stages of the BBR algorithm: Startup, Drain, Probe BW, and Probe RTT. It also calculates the RTT based on the timestamp carried in the message, ensuring the adaptation of the BBR algorithm in the RDMA protocol, reducing the number of ACK acquisitions, thereby reducing the resource overhead of the network card in processing ACKs and improving network throughput.

[0142] This application provides a congestion control acknowledgment method based on the RoCEv2 protocol, which adjusts the frequency of ACK acquisition according to different stages of the congestion control algorithm and the sending rate; and sets the ACK acquisition frequency in stages according to the BDP size.

[0143] This application provides an RTT calculation method based on the RoCEv2 protocol. A timestamp format is defined in AETH. The requesting device sends a request message with a timestamp and receives a response message from the responding device. The AETH in the response message carries a timestamp, and the requesting device calculates the RTT based on the timestamp.

[0144] The method described in the above embodiments adapts to the characteristics of different stages of BBR for ACK acquisition and adjusts the ACK acquisition frequency according to the transmission rate of the communication network. This reduces the resource overhead associated with ACK acquisition, particularly reducing RDMA network card resource consumption and improving network throughput. The scheme based on carrying a timestamp in the AETH packet header requires minimal modification to the original RoCEv2 protocol and has strong compatibility.

[0145] While wide-area RDMA technology has become a hot topic and focus of network transmission research, the method of this application, which transplants the BBR congestion control algorithm into wide-area RDMA communication, can expand the application of the RoCEv2 protocol to the wide area network field, improve the overall network throughput, further reduce the packet loss rate of the RoCEv2 protocol, and facilitate large-scale market application.

[0146] Those skilled in the art will understand that, in the above-described method of the specific implementation, the order in which each step is written does not imply a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of each step should be determined by its function and possible internal logic.

[0147] Based on the response control method proposed in the foregoing embodiments, this application also proposes a response control device, such as... Figure 10 As shown, Figure 10 A schematic diagram of a response control device is shown. This response control device is applied to a requesting end device, which uses RDMA to communicate with a responding end device over a network. The device includes:

[0148] The acquisition module 1001 is used to acquire the current network status between the requesting device and the responding device.

[0149] The determination module 1002 is used to determine the current stage of congestion control of the requesting device.

[0150] The adjustment module 1003 is used to determine the response acquisition frequency based on the current network status and the current stage of congestion control; wherein, the response acquisition frequency represents the frequency of acquiring response information, and the response information represents the response of the responding end device to the data packet sent by the requesting end device.

[0151] In practical applications, the acquisition module 1001, the determination module 1002, and the adjustment module 1003 can be implemented based on a processor and a communication device.

[0152] In some embodiments, the current network state includes BDP, and the adjustment module 1003 is specifically used to determine the response acquisition frequency based on BDP when the current congestion control phase is the Drain phase.

[0153] In some embodiments, the adjustment module 1003 is specifically used to determine whether BDP is less than a first preset value; if BDP is less than the first preset value, determine the response acquisition frequency as the target response acquisition frequency; the target response acquisition frequency is used to enable the responding end device to respond to each data packet sent by the requesting end device; if BDP is greater than the first preset value, adjust the response acquisition frequency so that the adjusted response acquisition frequency is less than the target response acquisition frequency.

[0154] In some embodiments, the adjustment module 1003 is specifically used to adjust the response acquisition frequency based on the first preset frequency when the BDP is greater than the first preset value and less than the second preset value; and to adjust the response acquisition frequency based on the current round-trip time (RTT) of the data packet and the RTT acquisition frequency when the BDP is greater than the second preset value.

[0155] In some embodiments, the current network state includes BDP, and the adjustment module 1003 is specifically used to determine the response acquisition frequency based on BDP when the current congestion control phase is a steady period or a draining period of the Probe BW phase.

[0156] In some embodiments, the adjustment module 1003 is specifically used to determine whether BDP is less than a third preset value; if BDP is less than the third preset value, the response acquisition frequency is determined to be the target response acquisition frequency; the target response acquisition frequency is used to enable the responding end device to respond to each data packet sent by the requesting end device; if BDP is greater than the third preset value, the response acquisition frequency is adjusted so that the adjusted response acquisition frequency is less than the target response acquisition frequency.

[0157] In some embodiments, the adjustment module 1003 is specifically used to adjust the response acquisition frequency based on the second preset frequency when the BDP is greater than the third preset value and less than the fourth preset value; and to adjust the response acquisition frequency based on the current RTT of the data packet and the RTT acquisition frequency when the BDP is greater than the fourth preset value.

[0158] In some embodiments, the current network state includes BDP. The adjustment module 1003 is specifically used to determine the response acquisition frequency as the target response acquisition frequency when the current congestion control phase is the Startup phase, the Probe RTT phase, or the Probe BW phase. The target response acquisition frequency is used to enable the responding end device to respond to each data packet sent by the requesting end device.

[0159] In some embodiments, the adjustment module 1003 is further configured to add a request message to the data packet, the request message including a first timestamp; the first timestamp representing the time when the requesting device sends the data packet to the responding device; receive a response message sent by the responding device based on the request message; wherein the response message includes a first timestamp and a second timestamp; the second timestamp representing the time when the requesting device receives the response information; obtain the RTT of the data packet based on the first timestamp and the second timestamp; and adjust the transmission rate of the data packet to be sent based on the RTT of the data packet.

[0160] It should be noted that the descriptions of the above device embodiments are similar to those of the above method embodiments, and have similar beneficial effects. For technical details not disclosed in the device embodiments of this application, please refer to the descriptions of the method embodiments of this application for understanding.

[0161] It should be noted that, in the embodiments of this application, if the above methods are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiments of this application, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a terminal, server, etc.) to execute all or part of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), magnetic disks, or optical disks. Thus, the embodiments of this application are not limited to any specific hardware and software combination.

[0162] This application also provides an electronic device. Figure 11 This is a schematic diagram of the composition structure of an electronic device provided in an embodiment of this application, as shown below. Figure 11 As shown, the electronic device 110 may include:

[0163] Memory 1101 is used to store executable instructions.

[0164] The processor 1102 is used to implement any of the above-described response control methods when executing executable instructions stored in the memory 1101.

[0165] The processor 1102 mentioned above can be at least one of ASIC, DSP, DSPD, PLD, FPGA, CPU, controller, microcontroller, and microprocessor.

[0166] The aforementioned computer-readable storage medium or memory 1101 may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic random access memory (FRAM), a flash memory, a magnetic surface memory, an optical disc, or a compact disc read-only memory (CD-ROM), etc.; it may also be various terminals that include one or any combination of the above-mentioned memories, such as mobile phones, computers, tablet devices, personal digital assistants, etc.

[0167] Accordingly, this application embodiment further provides a computer storage medium storing computer-executable instructions, which are used to implement any of the response control methods provided in the above embodiments.

[0168] Correspondingly, this application embodiment further provides a computer program product, the computer program product including computer executable instructions, which are used to implement any of the response control methods provided in the above embodiments.

[0169] In some embodiments, the functions or modules of the apparatus provided in this application can be used to perform the methods described in the above method embodiments. The specific implementation can be referred to the description of the above method embodiments, and for the sake of brevity, it will not be repeated here.

[0170] The description of the various embodiments above tends to emphasize the differences between the various embodiments. The similarities or similarities between them can be referred to, and for the sake of brevity, they will not be repeated here.

[0171] The methods disclosed in the various method embodiments provided in this application can be arbitrarily combined to obtain new method embodiments without conflict.

[0172] The features disclosed in the various product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.

[0173] The features disclosed in the various method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method or device embodiments.

[0174] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they 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 this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0175] The embodiments of this application have been described above with reference to the accompanying drawings. However, this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of this application without departing from the spirit and scope of the claims. All of these forms are within the protection scope of this application.

Claims

1. A response control method characterized by, The application is applied to a request end device, and the request end device is used for network communication with a response end device by using a remote direct memory access (RDMA) method, and the method comprises: obtaining a current network state of a network between the request end device and the response end device; determining a congestion control phase in which the request end device currently locates; based on the current network state and the congestion control phase in which the request end device currently locates, determining a response acquisition frequency; wherein the response acquisition frequency represents a frequency of acquiring response information, and the response information represents a response of the response end device to a data packet sent by the request end device; the current network state comprises a bandwidth delay product (BDP), and the determination of the response acquisition frequency based on the current network state and the congestion control phase in which the request end device currently locates comprises: in a case where the congestion control phase in which the request end device currently locates is an emptying phase, judging whether the BDP is less than a first preset value; in a case where the BDP is less than the first preset value, determining that the response acquisition frequency is a target response acquisition frequency; and the target response acquisition frequency is used for making the response end device respond to each data packet sent by the request end device; in a case where the BDP is greater than the first preset value, adjusting the response acquisition frequency, so that an adjusted response acquisition frequency is less than the target response acquisition frequency.

2. The method of claim 1, wherein, the adjustment of the response acquisition frequency in a case where the BDP is greater than the first preset value comprises: in a case where the BDP is greater than the first preset value and less than a second preset value, adjusting the response acquisition frequency based on a first preset frequency; in a case where the BDP is greater than the second preset value, adjusting the response acquisition frequency based on a current round trip time (RTT) of the data packet and an RTT acquisition frequency.

3. The method of claim 1, wherein, the determination of the response acquisition frequency based on the current network state and the congestion control phase in which the request end device currently locates comprises: in a case where the congestion control phase in which the request end device currently locates is a stable period or an emptying period of a bandwidth exploration phase, determining the response acquisition frequency according to the BDP.

4. The method of claim 3, wherein, the determination of the response acquisition frequency according to the BDP comprises: judging whether the BDP is less than a third preset value; in a case where the BDP is less than the third preset value, determining that the response acquisition frequency is a target response acquisition frequency; and the target response acquisition frequency is used for making the response end device respond to each data packet sent by the request end device; in a case where the BDP is greater than the third preset value, adjusting the response acquisition frequency, so that an adjusted response acquisition frequency is less than the target response acquisition frequency.

5. The method of claim 4, wherein, the adjustment of the response acquisition frequency in a case where the BDP is greater than the third preset value comprises: in a case where the BDP is greater than the third preset value and less than a fourth preset value, adjusting the response acquisition frequency based on a second preset frequency; in a case where the BDP is greater than the fourth preset value, adjusting the response acquisition frequency based on a current RTT of the data packet and an RTT acquisition frequency.

6. The method of claim 1, wherein, determining a response obtaining frequency based on the current network state and the current congestion control phase, wherein the response obtaining frequency represents a frequency of obtaining response information, and the response information represents a response of the response end device to a data packet sent by the request end device; in a case where the current congestion control phase is a start phase, a round-trip time (RTT) detection phase, or a bandwidth detection phase, the response obtaining frequency is determined as a target response obtaining frequency, and the target response obtaining frequency is used to make the response end device respond to each data packet sent by the request end device.

7. The method according to any one of claims 1 to 6, characterized in that, The method further comprises: adding a request message in the data packet, wherein the request message comprises a first timestamp, and the first timestamp represents a time when the request end device sends the data packet to the response end device; receiving a response message sent by the response end device based on the request message, wherein the response message comprises the first timestamp and a second timestamp, and the second timestamp represents a time when the request end device receives the response information; obtaining an RTT of the data packet based on the first timestamp and the second timestamp; and adjusting a sending rate of a data packet to be sent based on the RTT of the data packet.

8. A response control device, characterized by The application is applied to a request end device, and the request end device is used to perform network communication with a response end device by using a remote direct memory access (RDMA) method, and the device comprises: an obtaining module, configured to obtain a current network state of a network between the request end device and the response end device; a determining module, configured to determine a current congestion control phase in which the request end device is located; an adjusting module, configured to determine a response obtaining frequency based on the current network state and the current congestion control phase, wherein the response obtaining frequency represents a frequency of obtaining response information, and the response information represents a response of the response end device to a data packet sent by the request end device. The current network state comprises a bandwidth delay product (BDP), and the adjusting module is specifically configured to, in a case where the current congestion control phase is an emptying phase, judge whether the BDP is less than a first preset value; in a case where the BDP is less than the first preset value, determine that the response obtaining frequency is a target response obtaining frequency, and the target response obtaining frequency is used to make the response end device respond to each data packet sent by the request end device; and in a case where the BDP is greater than the first preset value, adjust the response obtaining frequency, so that an adjusted response obtaining frequency is less than the target response obtaining frequency.

9. An electronic device, comprising: The electronic device comprises a processor and a memory for storing a computer program capable of running on the processor; wherein the processor is used to run the computer program to execute the method in any one of claims 1 to 7.

10. A computer storage medium having stored thereon a computer program, characterized in that The computer program is executed by the processor to implement the method in any one of claims 1 to 7.

11. A computer program product comprising a computer program, characterized in that, The computer program is executed by the processor to implement the method in any one of claims 1 to 7. The computer program is executed by the processor to implement the method in any one of claims 1 to 7.

Citation Information

Patent Citations

  • RDMA buffer dynamic allocation method based on flow load prediction

    CN112422244A

  • Congestion control method and system for remote direct memory access reading and storage medium

    CN116566921A