RDMA storage network optimization method based on go-back-n retransmission mechanism
By dynamically adjusting the window size, optimizing congestion control and packet retransmission, and merging data segments, the problems of inflexible resource allocation and low transmission efficiency in RDMA storage networks are solved, and network utilization and throughput are improved.
Patent Information
- Application Number
- CN202411859014.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-17
- Publication Date
- 2025-10-17
- Estimated Expiration
- 2044-12-17
AI Technical Summary
Traditional RDMA storage networks based on the Go-Back-N retransmission mechanism are unable to flexibly adjust resource allocation when facing different traffic conditions. They have poor congestion control accuracy and insufficient packet retransmission strategies, resulting in low network utilization and low transmission efficiency. They are unable to fully utilize data compression technology, and traffic scheduling is unreasonable, affecting network performance and efficiency.
By dynamically adjusting the window size, optimizing congestion control and data packet retransmission strategies, adopting selective retransmission technology, merging data segments for transmission, and utilizing data compression technology, network resource allocation and data transmission paths are automatically optimized according to network status.
It improves network utilization and throughput, reduces unnecessary retransmissions and network overhead, optimizes network transmission efficiency, avoids resource waste, and improves data transmission performance.
Smart Images

Figure CN119728030B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application belongs to the technical field of computer network communication, and particularly relates to an RDMA storage network optimization method based on a Go-Back-N retransmission mechanism. BACKGROUND
[0002] In a traditional RDMA storage network based on a Go-Back-N retransmission mechanism, there are a series of factors that limit the further improvement of data transmission efficiency and performance.
[0003] Firstly, the fixed window size feature makes it impossible for the network to flexibly adjust resource allocation when facing different traffic conditions, resulting in difficulty in achieving optimal network utilization;
[0004] Secondly, the accuracy of congestion control is not good enough to accurately adapt to real-time changes in the network, which can easily cause network congestion or resource waste;
[0005] Thirdly, the optimization of the data packet retransmission strategy is insufficient, which can lead to unnecessary retransmission, increasing the network burden and delay;
[0006] In addition, the large number of data transmission times not only increases network overhead but also reduces overall transmission efficiency; when processing large data transmission, the performance is often unsatisfactory, and the hardware potential cannot be fully utilized; at the same time, the data compression technology is not fully utilized, resulting in the occupation of excessive bandwidth resources during data transmission in the network;
[0007] Finally, the irrationality of traffic scheduling makes the data in the network unable to be transmitted according to the optimal path and priority, further affecting the performance and efficiency of the network;
[0008] Therefore, the present application proposes an RDMA storage network optimization method based on a Go-Back-N retransmission mechanism. SUMMARY
[0009] The present application aims to at least solve one of the technical problems existing in the prior art. To this end, the present application proposes an RDMA storage network optimization method based on a Go-Back-N retransmission mechanism, which automatically optimizes according to the network state, improves network utilization and throughput, and avoids network resource waste caused by fixed window size.
[0010] To achieve the above-mentioned purpose, the present application proposes an RDMA storage network optimization method based on a Go-Back-N retransmission mechanism, comprising:
[0011] Obtaining network delay and packet loss rate, comparing the network delay and packet loss rate with preset network delay threshold and packet loss rate threshold, and determining whether to generate a window size adjustment instruction;
[0012] a preset maximum value of the window size, and generating a congestion avoidance instruction when the dynamically adjusted window size reaches the maximum value;
[0013] Based on the congestion avoidance instruction, stopping the window size from increasing and increasing by one MSS per RTT in a linear manner.
[0014] Preferably, the method for determining whether to generate a window size adjustment instruction comprises:
[0015] initializing the window, and obtaining the network delay and the packet loss rate in real time, and marking them as T and P respectively;
[0016] comparing T and P with a preset network delay threshold and a preset packet loss rate threshold respectively;
[0017] if T is greater than the network delay threshold and P is greater than or equal to the packet loss rate threshold, generating a window adjustment instruction one, which is to decrease the window size;
[0018] if T is less than the network delay threshold and P is less than the packet loss rate threshold, generating a window adjustment instruction two, which is to increase the window size;
[0019] if T is equal to the network delay threshold, not generating a window adjustment instruction.
[0020] Preferably, a data packet retransmission strategy is deployed based on the packet loss rate:
[0021] when the receiving party receives the data packet, checking the continuity of the data packet;
[0022] if the data packet is found to be lost, immediately sending a NACK message to the sending party, the NACK message containing the sequence number of the lost data packet;
[0023] the sending party, upon receiving the NACK, finding the data packet with the corresponding sequence number from the data packet buffer for retransmission.
[0024] Preferably, the method for determining whether a data packet is lost comprises:
[0025] the sending party sends the data packet and temporarily stores the data packet in the buffer;
[0026] waiting for an ACK or a NACK from the receiving party; if an ACK is received, deleting the corresponding data packet from the buffer; if a NACK is received, finding the data packet from the buffer according to the sequence number in the NACK for retransmission;
[0027] the receiving party receives the data packet and checks whether the sequence number of the data packet is continuous; if the sequence number is continuous, sending an ACK to the sending party; if the sequence number is not continuous, sending a NACK to the sending party, indicating the sequence number of the lost data packet.
[0028] Preferably, the data packet sequence number management method comprises:
[0029] The sender assigns a continuously increasing sequence number to each data packet when sending it;
[0030] The receiver maintains a sequence number of the data packet expected to be received, and checks whether the sequence number of the received data packet is consistent with the expected sequence number;
[0031] The sender and the receiver always judge the integrity and continuity of the data packet according to the sequence number of the data packet during communication; when retransmission occurs, the sender ensures that the sequence number of the retransmitted data packet is consistent with that of the original data packet, and the receiver correctly processes the retransmitted data packet according to the sequence number.
[0032] Preferably, the processing method based on data packet retransmission comprises:
[0033] Merging data segments when retransmitting data packets;
[0034] Setting a data segment quantity threshold N and a data segment size threshold S;
[0035] Merging the data segments when the quantity of the data segments to be sent reaches N or the total size exceeds S.
[0036] Preferably, the data segment merging method comprises:
[0037] Maintaining a data segment queue for storing data segments to be sent;
[0038] Taking out the data segments from the queue for merging when the quantity of the data segments in the data segment queue reaches N or the total size exceeds S;
[0039] Sending the merged data segments and emptying the data segment queue.
[0040] Preferably, the limiting method based on the maximum value of the merged data packet comprises:
[0041] Obtaining network bandwidth, transmission speed and network delay, and calculating the maximum value of the merged data packet based on the network bandwidth, the transmission speed and the network delay;
[0042] The calculation expression is: Wherein, bw is the network bandwidth, tm speed is the transmission speed, and nk delay is the network delay.
[0043] Compared with the prior art, the present application has the following beneficial effects:
[0044] 1. Dynamically adjusting the window size, automatically optimizing according to the network state, improving the network utilization and throughput, and avoiding the waste of network resources caused by the fixed window size.
[0045] 2. Optimized data packet retransmission strategy, using selective retransmission technology to reduce unnecessary data packet retransmission, reduce network overhead, and ensure retransmission accuracy and efficiency through sequence number management.
[0046] 3. Data segment merging and segmented transmission function, reducing transmission times, improving parallel transmission performance, and optimizing network utilization.
[0047] 4. Data compression function reduces data transmission volume, reduces transmission delay and network load, and improves network transmission efficiency. BRIEF DESCRIPTION OF DRAWINGS
[0048] Figure 1 Flowchart of the RDMA storage network optimization method based on Go-Back-N retransmission mechanism of the present application;
[0049] Figure 2 Flowchart of the method for determining whether to generate window size adjustment instructions. DETAILED DESCRIPTION
[0050] The technical solutions of the present application will be described in detail below in conjunction with the embodiments. Obviously, the described embodiments are only a part of the embodiments of the present application, not all. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor are within the scope of protection of the present application.
[0051] Embodiment 1
[0052] Referring to Figure 1 The RDMA storage network optimization method based on Go-Back-N retransmission mechanism includes: obtaining network delay and packet loss rate, comparing the network delay and packet loss rate with the preset network delay threshold and packet loss rate threshold, and determining whether to generate window size adjustment instructions;
[0053] The preset window maximum value is reached when the dynamically adjusted window size reaches the maximum value, and a congestion avoidance instruction is generated;
[0054] Based on the congestion avoidance instruction, the window growth is stopped, and one MSS is added every RTT, which is linear growth.
[0055] The purpose is to dynamically adjust the window size in the Go-Back-N protocol to optimize network utilization and throughput. By monitoring network conditions and delays in real time, a specific algorithm is used to automatically adjust the window size according to network status. When the network delay is low and the bandwidth is sufficient, the window size is increased to increase the data transmission volume. When the network delay increases or congestion signs appear, the window size is reduced to avoid network congestion.
[0056] Specifically, the method for determining whether to generate a window size adjustment instruction comprises:
[0057] Initializing a window, obtaining network delay and packet loss rate in real time, and marking them as T and P, respectively;
[0058] Comparing T and P with preset network delay threshold and packet loss rate threshold, respectively;
[0059] If T is greater than the network delay threshold and P is greater than or equal to the packet loss rate threshold, a window adjustment instruction one is generated, and the window adjustment instruction one is to reduce the window;
[0060] If T is less than the network delay threshold and P is less than the packet loss rate threshold, a window adjustment instruction two is generated, and the window adjustment instruction two is to increase the window;
[0061] If T is equal to the network delay threshold, no window adjustment instruction is generated.
[0062] For example, the initial window size is set as W0; the network delay and the packet loss rate are monitored, and the network delay T and the packet loss rate P are monitored regularly; the window size is adjusted, if T increases and P remains unchanged or increases, the new window size W = W*0.8, the window size is reduced, wherein 0.8 is an adjustment coefficient, which is adjusted by a person skilled in the art according to actual conditions, and is not specifically limited here; if T decreases and P remains unchanged or decreases, the new window size W = W*1.2, the window size is increased, wherein 1.2 is an adjustment coefficient, which is adjusted by a person skilled in the art according to actual conditions.
[0063] It is worth mentioning that in actual application, the algorithm can be further optimized and adjusted according to specific network environment and demand.
[0064] Deploying a data packet retransmission strategy based on packet loss rate:
[0065] When the receiver receives the data packet, it checks the continuity of the data packet;
[0066] If the data packet is found to be lost, a NACK message is immediately sent to the sender, and the NACK message contains the sequence number of the lost data packet;
[0067] After the sender receives the NACK, it finds the data packet with the corresponding sequence number from the data packet buffer for retransmission.
[0068] For example, when the receiver receives out-of-sequence packet segments, it immediately sends duplicate ACKs; when the sender receives three duplicate ACKs in succession, it considers that a packet segment is missing and immediately retransmits the missing packet segment without waiting for the timeout timer to expire; after fast retransmission, the slow-start threshold ssthresh is set to half the current window size, and the window size is set to ssthresh+3*MSS; the window size is increased by one MSS for each duplicate ACK received; when an ACK for new data is received, the fast recovery phase is exited and the congestion avoidance phase is entered.
[0069] It is worth mentioning that the embodiment provides a data packet retransmission strategy module integrated in an RDMA storage network system, and an interface of the retransmission strategy module is designed: an interaction interface with other modules of the RDMA storage network system is defined, including a function interface of sending a data packet, receiving a data packet, sending an ACK / NACK, and the like.
[0070] Specifically, the module integration step is: integrating the data packet retransmission strategy module with a sending end and a receiving end of the RDMA storage network system; ensuring that the retransmission strategy module can timely detect data packet loss and trigger a retransmission mechanism in a data transmission process; data segment merging is a key step of improving network transmission efficiency, and a reasonable algorithm and appropriate merging rules need to be designed.
[0071] The purpose is to optimize the retransmission strategy of data packets, avoid unnecessary data packet retransmission, and reduce network overhead. Selective retransmission and other technologies are adopted: when the receiver finds that a data packet is missing, it only requests the sender to retransmit the missing data packet, instead of retransmitting all data packets. At the same time, the sequence numbers of the data packets are managed to ensure the accuracy and efficiency of retransmission.
[0072] Further, the data packet loss determination method is:
[0073] The sender sends data packets and temporarily stores the data packets in a buffer;
[0074] The sender waits for an ACK or a NACK from the receiver; if an ACK is received, the corresponding data packet is deleted from the buffer; if a NACK is received, the data packet is found from the buffer according to the sequence number in the NACK and is retransmitted;
[0075] The receiver receives data packets and checks whether the sequence numbers of the data packets are continuous; if the sequence numbers are continuous, an ACK is sent to the sender; if the sequence numbers are not continuous, a NACK is sent to the sender to indicate the missing data packet sequence number.
[0076] Specifically, the data packet sequence number management method: the sender assigns a continuously increasing sequence number to each data packet when sending it; the receiver maintains an expected received data packet sequence number, and checks whether the sequence number is consistent with the expected sequence number when receiving a data packet; the sender and the receiver always judge the integrity and continuity of the data packet according to the sequence number of the data packet during communication; when retransmission occurs, the sender ensures that the sequence number of the retransmitted data packet is consistent with that of the original data packet, and the receiver correctly processes the retransmitted data packet according to the sequence number.
[0077] Further, the data packet retransmission processing method: when data packets are retransmitted, the data segments are merged; a preset data segment quantity threshold N and a data segment size threshold S are set; when the quantity of data segments to be sent reaches N or the total size exceeds S, the data segments are merged.
[0078] Specifically, the data segment merging method: a data segment queue is maintained for storing data segments to be sent; when the quantity of data segments in the data segment queue reaches N or the total size exceeds S, the data segments are taken out from the queue for merging.
[0079] Illustratively, a data segment quantity threshold N and a data segment size threshold S are set; when the quantity of data segments to be sent reaches N or the total size exceeds S, the data segments are merged into a larger data segment; a data segment queue is maintained for storing data segments to be sent; when the quantity of data segments in the data segment queue reaches N or the total size exceeds S, the data segments are taken out from the queue for merging; the merged data segment is sent out, and the data segment queue is emptied.
[0080] It should be noted that the limiting method based on the maximum value of the merged data packet: the network bandwidth, transmission speed and network delay are obtained, and the maximum value of the merged data packet is calculated based on the network bandwidth, transmission speed and network delay; the calculation expression is: wherein, bw is the network bandwidth, tm speed is the transmission speed, nk delay is the network delay.
[0081] The purpose is to determine the size of the merged data packet according to the size of the network bandwidth. If the network bandwidth is large, the size of the merged data packet can be appropriately increased to improve the transmission efficiency; and the size of the merged data packet is prevented from exceeding the carrying capacity of the network bandwidth, thereby avoiding network congestion.
[0082] For delay-sensitive applications, the influence of the transmission efficiency improvement and the delay increase caused by merging needs to be balanced; if the merged data packet causes a large increase in delay, the merging threshold can be reduced or other optimization strategies can be considered.
[0083] Higher data packet loss rate can cause the combined data packet to be retransmitted; the specific method of implementing the data segment merging function at the sending end is crucial for optimizing network transmission.
[0084] The embodiment merges the data of RDMA transmission, reduces the transmission times, and improves network efficiency. At the sending end, multiple small data segments are merged into one larger data segment for transmission. The receiving end performs the de-merging operation after receiving the merged data segment. This can reduce transmission overhead and optimize network utilization.
[0085] Embodiment 2
[0086] Based on the above embodiment, the embodiment provides congestion control and implements an effective congestion control mechanism to avoid network congestion and improve network throughput. By referring to the TCP congestion control algorithm and optimizing it in combination with the characteristics of the RDMA storage network, the network congestion degree is determined by monitoring network traffic, delay and other parameters, and the sending rate is adjusted accordingly. When the network is congested, the sending rate is gradually reduced to alleviate the congestion; when the network condition improves, the sending rate is gradually increased to fully utilize the network bandwidth.
[0087] Specifically, TCP congestion control mainly includes the following stages: slow start, the initial window size is small, usually one MSS (Maximum Segment Size, maximum packet segment length);
[0088] The window size is doubled after receiving each ACK (acknowledgment), which grows exponentially and quickly detects the available bandwidth of the network.
[0089] Specifically, the delay-based monitoring: continuously monitor the network RTT (Round Trip Time); when the RTT suddenly increases by more than a certain percentage (for example, 50% more than the average RTT), it is considered that congestion may occur; packet loss rate-based monitoring: calculate the packet loss rate over a period of time; when the packet loss rate exceeds a certain threshold (for example, 5%), it is determined that the network is congested; bandwidth utilization rate-based monitoring: by monitoring network traffic and link bandwidth, the bandwidth utilization rate is calculated; when the bandwidth utilization rate approaches or reaches 100%, it indicates that the network may be congested; the implementation steps of the data packet retransmission strategy are crucial for optimizing the RDMA storage network based on the Go-Back-N retransmission mechanism.
[0090] In addition, the parts of the above technical solutions in the embodiments of the present application that are consistent with the implementation principles of the corresponding technical solutions in the prior art are not described in detail to avoid excessive repetition.
[0091] The specific embodiments described above are further explained in connection with the purposes, technical solutions and beneficial effects of the present application. It should be understood that the above description is only a specific embodiment of the present application and is not intended to limit the present application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
[0092] The above preset parameters or preset thresholds are set by those skilled in the art according to actual conditions or obtained by a large amount of data simulation.
[0093] The above embodiments are only used to illustrate the technical method of the present application and are not limited. Although the present application is described in detail with reference to the preferred embodiments, those skilled in the art should understand that the technical method of the present application can be modified or replaced equivalently without departing from the spirit and scope of the technical method of the present application.
Claims
1. An RDMA storage network optimization method based on the Go-Back-N retransmission mechanism is characterized in that: include: Obtaining network delay and packet loss rate, comparing the network delay and packet loss rate with preset network delay thresholds and packet loss rate thresholds, and determining whether to generate a window size adjustment instruction; The maximum value of the preset window is set. When the dynamically adjusted window size reaches the maximum value, a congestion avoidance instruction is generated. Based on the congestion avoidance instructions, the window growth is stopped and one MSS is added for each RTT, which increases linearly; The method for determining whether to generate a window size adjustment instruction includes: Initialize the window and obtain the network delay and packet loss rate in real time, marked as T and P respectively; Compare T and P with the preset network delay threshold and packet loss rate threshold respectively; If T is greater than the network delay threshold and P is greater than or equal to the packet loss rate threshold, a window adjustment instruction 1 is generated, which is to reduce the window; If T is less than the network delay threshold and P is less than the packet loss rate threshold, a second window adjustment instruction is generated, which is to increase the window. If T is equal to the network delay threshold, no window adjustment instruction is generated; Deploy a data packet retransmission strategy based on the packet loss rate: When the receiver receives the data packet, it checks the continuity of the data packet; If a data packet is found to be lost, a NACK message is immediately sent to the sender, which contains the sequence number of the lost data packet; After receiving NACK, the sender finds the data packet with the corresponding sequence number from the data packet buffer and retransmits it; Packet loss determination method: The sender sends the data packet and temporarily stores it in the buffer; Wait for the receiver's confirmation message ACK or NACK; if an ACK is received, delete the corresponding data packet from the buffer; if a NACK is received, find the data packet from the buffer according to the sequence number in the NACK and retransmit it; The receiver receives the data packet and checks whether the sequence number of the data packet is continuous; if the sequence number is continuous, it sends an ACK to the sender; if not, it sends a NACK to the sender, indicating the sequence number of the lost data packet; The data packet sequence number management method: The sender assigns a continuously increasing sequence number to each data packet when sending it; The receiver maintains a sequence number of the data packet it expects to receive. When a data packet is received, it checks whether the sequence number is consistent with the expected sequence number. During the communication process, the sender and receiver always judge the integrity and continuity of the data packet based on the sequence number of the data packet; when retransmission occurs, the sender ensures that the sequence number of the retransmitted data packet is consistent with the original data packet, and the receiver correctly processes the retransmitted data packet based on the sequence number.
2. The RDMA storage network optimization method based on the Go-Back-N retransmission mechanism according to claim 1 is characterized in that: Processing method based on data packet retransmission: Merge data segments when retransmitting data packets; Preset a data segment number threshold N and a data segment size threshold S; When the number of data segments to be sent reaches N or the total size exceeds S, these data segments are merged.
3. The RDMA storage network optimization method based on the Go-Back-N retransmission mechanism according to claim 2 is characterized in that: Data segment merging method: Maintain a data segment queue to store data segments to be sent; When the number of data segments in the data segment queue reaches N or the total size exceeds S, the data segments are taken out of the queue and merged; The merged data segment is sent out and the data segment queue is cleared.
4. The RDMA storage network optimization method based on the Go-Back-N retransmission mechanism according to claim 3 is characterized in that: Limitation method based on maximum value of data packet merging: Obtain network bandwidth, transmission speed, and network delay, and calculate the maximum value of the merged data packet based on the network bandwidth, transmission speed, and network delay; The calculation expression is: ,in, is the network bandwidth, is the transmission speed, For network delay.
Citation Information
Patent Citations
Data transmission method and device based on RDMA
CN110460533A
RDMA long-distance communication retransmission method and system
CN117879768A