A packet loss threshold configurable and bitmap feedback rdma retransmission circuit and method
Patent Information
- Application Number
- CN202611427693.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-09-15
- Publication Date
- 2026-10-16
AI Technical Summary
该机制解决了成段重传,提高带宽;但硬件实现复杂度高,且接收端需要大量缓存
本发明所述丢包阈值可配及位图反馈的RDMA重传电路及方法在具体操作时,当位图中存在缺失包时,则基于丢包阈值threshold判断缺失包是否在可容忍的配置范围内,当缺失包不在可容忍的配置范围内时,则生成有效位图窗口信息,并将所述有效位图窗口信息输入至SACK信息管理模块中,有效地避免因短暂乱序或微小抖动而触发的误重传,减少不必要的重传请求,提高电路性能,避免回退重传带来的带宽浪费,提高系统的重传效率和链路带宽利用率,实用性较强。
Smart Images

Figure CN122933532A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of remote direct memory access technology, and relates to an RDMA retransmission circuit and method with configurable packet loss threshold and bitmap feedback. Background Technology
[0002] Remote Direct Memory Access (RDMA) is a communication technology that allows computers to directly transfer data between each other's memory without the need for an operating system or processor to participate in copying and protocol stack processing. Its core advantages lie in significantly reducing end-to-end latency and host load, while increasing effective bandwidth and throughput. It is particularly suitable for high-performance computing (HPC), data center networks, and distributed storage—scenarios highly sensitive to bandwidth and latency. During RDMA transmission, the sending end divides the data to be transmitted into multiple packets and sends them sequentially. However, due to factors such as network path differences, congestion, and load balancing, the packets may arrive at the receiving end out of order.
[0003] To maintain in-order semantics and reliable delivery, traditional RDMA receivers typically employ a go-back-n (GBN) mechanism using packet sequence numbers (PSNs) and sliding windows. The receiver maintains expected sequence numbers and only advances the window and accumulates acknowledgments when it receives a matching packet. If packet loss or out-of-order packets result in premature packets, the premature packets are discarded or not delivered. The sender, upon timeout or receiving a negative acknowledgment (NAK), backtracks from the point of loss and retransmits the entire subsequent data segment. This mechanism is simple to implement and requires minimal hardware state, but it can trigger numerous retransmissions with only a few packet losses, leading to bandwidth waste and performance degradation. Selective Repeat (SR) was subsequently proposed: when the receiver receives an out-of-order packet, it does not discard it but temporarily stores it in a buffer. Simultaneously, it immediately replies with an ACK (acknowledgment character) response, indicating which packets the receiver has received or which are missing. The sending end selectively retransmits data packets based on this response. This mechanism solves the problem of segmented retransmission and improves bandwidth; however, it has high hardware implementation complexity and requires a large amount of buffering at the receiving end. In some specific application scenarios, the loss of a small number of data packets has little impact on the result, that is, when a small amount of packet loss is permissible to a certain extent, both the backoff retransmission mechanism and the selective retransmission mechanism will trigger unnecessary retransmission operations, thereby reducing retransmission efficiency and link bandwidth utilization. Summary of the Invention
[0004] The purpose of this invention is to overcome the shortcomings of the prior art and provide an RDMA retransmission circuit and method with configurable packet loss threshold and bitmap feedback. This circuit and method can avoid unnecessary retransmission operations when a small amount of packet loss is allowed, thereby improving retransmission efficiency and link bandwidth utilization.
[0005] To achieve the above objectives, this invention discloses an RDMA retransmission circuit with configurable packet loss threshold and bitmap feedback, comprising a transmitter and a receiver. The receiver includes a PSN checking module, a bitmap storage management module, and a SACK (Selective Acknowledgment) information management module. The sending end is used to receive selective acknowledgment response messages and send data packets according to the selective acknowledgment response messages; The PSN checking module is used to receive the data packet and determine whether the PSN of the data packet is within the valid range of the bitmap window. When the PSN of the data packet is within the valid range of the bitmap window, the PSN of the data packet is input into the bitmap storage management module. When the PSN of the data packet is not within the valid range of the bitmap window, the data packet is discarded. The bitmap storage management module is used to receive the PSN of the data packet, determine whether there is a missing packet in the bitmap based on the PSN of the data packet and the PSN expected to be received, and if there is a missing packet in the bitmap, determine whether the missing packet is within the tolerable configuration range based on the packet loss threshold. If the missing packet is not within the tolerable configuration range, generate valid bitmap window information and input the valid bitmap window information into the SACK information management module. The SACK information management module is used to generate and output a selective acknowledgment response message based on the valid bitmap window information.
[0006] Furthermore, the bitmap storage management module includes a bitmap state unit, a pointer calculation unit, a comparator, a timeout counter, a timer, and an adder; The bitmap state unit compares the PSN of the data packet with the PSN expected to be received. If the PSN of the data packet is not equal to the PSN expected to be received, it is considered that there is a missing packet in the bitmap, and a timer is triggered to start timeout counting. After the timeout period ends, if there is still a missing packet in the bitmap, the timeout counter is incremented by one through the adder. Then it is determined whether the current timeout counter count exceeds the packet loss threshold. If the current timeout counter count does not exceed the packet loss threshold, the bitmap window is advanced, and the head pointer, write pointer, and tail pointer in the bitmap window are updated and output through the pointer calculation unit. If the current timeout counter count exceeds the packet loss threshold, the valid bitmap window information is determined according to the head pointer and tail pointer output by the pointer calculation unit, and the valid bitmap window information is sent to the SACK information management module.
[0007] Furthermore, the process of updating the head pointer, write pointer, and tail pointer within the bitmap window through the pointer calculation unit is as follows: The head pointer is incremented by an offset of shift1 to obtain the updated write pointer; The head pointer is incremented by an offset of shift2 to obtain the updated tail pointer; Increment the current head pointer by shift3 to obtain the updated head pointer t.
[0008] Furthermore, the offset shift3 is the offset of the next missing packet relative to the current head pointer.
[0009] Furthermore, the offset shift2 is: shift2 =recv_max_psn -exp_psn Where recv_max_psn is the maximum packet sequence number of the data packets received by the receiver, and exp_psn is the expected packet sequence number.
[0010] Furthermore, the offset shift1 is: shift1=unpck_psn-exp_psn Where unpck_psn is the unpacked packet sequence number, and exp_psn is the expected packet sequence number.
[0011] Furthermore, the process of generating a selective acknowledgment response message based on the valid bitmap window information is as follows: Based on the valid bitmap window information, determine whether the PSN of the data packet has experienced address wraparound. Based on the determination result, write the valid bitmap window information into the selective acknowledgment response message.
[0012] Furthermore, the process of writing the valid bitmap window information into the selective acknowledgment response message based on the judgment result is as follows: When the PSN of the data packet does not wrap around, the effective bitmap window information is sequentially written into the selective acknowledgment response message, starting from the current header pointer. When the PSN of the data packet experiences address wraparound, a loopback read mechanism is used to sequentially write the valid bitmap window information into the selective acknowledgment response message.
[0013] This invention discloses an RDMA retransmission method with configurable packet loss threshold and bitmap feedback, comprising: The sending end receives a selective acknowledgment response message and sends a data packet according to the selective acknowledgment response message; The PSN checking module receives the data packet and determines whether the PSN of the data packet is within the valid range of the bitmap window. When the PSN of the data packet is within the valid range of the bitmap window, the PSN of the data packet is input into the bitmap storage management module. When the PSN of the data packet is not within the valid range of the bitmap window, the data packet is discarded. The bitmap storage management module receives the PSN of the data packet and determines whether there is a missing packet in the bitmap based on the PSN of the data packet and the PSN expected to be received. If there is a missing packet in the bitmap, it determines whether the missing packet is within the tolerable configuration range based on the packet loss threshold. If the missing packet is not within the tolerable configuration range, it generates valid bitmap window information and inputs the valid bitmap window information into the SACK information management module. Using the SACK information management module, a selective acknowledgment response message is generated and output based on the valid bitmap window information.
[0014] Furthermore, the bitmap storage management module includes a bitmap state unit, a pointer calculation unit, a comparator, a timeout counter, a timer, and an adder; The bitmap state unit compares the PSN of the data packet with the PSN expected to be received. If the PSN of the data packet is not equal to the PSN expected to be received, it is considered that there is a missing packet in the bitmap, and a timer is triggered to start timeout. After the timeout period ends, if there is still a missing packet in the bitmap, the timeout counter is incremented by one through the adder. Then it is determined whether the current timeout counter count exceeds the packet loss threshold. If the current timeout counter count does not exceed the packet loss threshold, the bitmap window is advanced, and the head pointer, write pointer, and tail pointer in the bitmap window are updated and output through the pointer calculation unit. If the current timeout counter count exceeds the packet loss threshold, the valid bitmap window information is determined according to the head pointer and tail pointer output by the pointer calculation unit, and the valid bitmap window information is sent to the SACK information management module.
[0015] The present invention has the following beneficial effects: In practical operation, the RDMA retransmission circuit and method with configurable packet loss threshold and bitmap feedback described in this invention, when missing packets exist in the bitmap, determines whether the missing packets are within the tolerable configuration range based on the packet loss threshold. If the missing packets are not within the tolerable configuration range, valid bitmap window information is generated and input into the SACK information management module. This effectively avoids false retransmissions triggered by brief out-of-order delivery or minor jitter, reduces unnecessary retransmission requests, improves circuit performance, avoids bandwidth waste caused by backoff retransmission, and improves the retransmission efficiency and link bandwidth utilization of the system, making it highly practical. Attached Figure Description
[0016] To more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the description of the embodiments of the present invention will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0017] Figure 1 This is a structural diagram of the effective bitmap window information in this invention; Figure 2 This is a structural diagram of the receiving end in this invention; Figure 3a This is a schematic diagram of the effective interval when the boundary is not crossed; Figure 3b This is a schematic diagram of the effective range when crossing a boundary; Figure 4 This is a structural diagram of the bitmap storage management module in this invention; Figure 5This is a schematic diagram illustrating the working principle of the bitmap state unit in this invention. Figure 6 This is a structural diagram of the bitmap window in this invention; Figure 7 The location map for valid bitmap window information; Figure 8 A diagram illustrating how valid bitmap window information is sequentially filled into the SACK response message; Figure 9 This is a schematic diagram illustrating how the valid bitmap window information is filled into the SACK response message using a loopback read mechanism. Figure 10 A comparison chart of average bandwidth tests under different modes during write operations; Figure 11 This is a comparison chart of peak bandwidth tests under different modes during the write operation. Detailed Implementation
[0018] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0019] The accompanying drawings illustrate various structural schematic diagrams according to embodiments disclosed in this invention. These drawings are not to scale, and some details have been enlarged for clarity, and some details may have been omitted. The shapes of the various regions and layers shown in the drawings, as well as their relative sizes and positional relationships, are merely exemplary and may deviate from reality due to manufacturing tolerances or technical limitations. Furthermore, those skilled in the art can design regions / layers with different shapes, sizes, and relative positions as needed.
[0020] Example 1 The packet loss threshold configurable and bitmap feedback RDMA retransmission circuit of this invention includes a transmitter and a receiver: the transmitter receives and parses the SACK response message from the receiver, extracts valid bitmap window information from the SACK response message, and sends data packets according to the valid bitmap window information. The fields of the valid bitmap window information are structured, wherein the lower 24 bits of the buffered bitmap state are used to carry bitmap sequence information, and the higher 8 bits of the buffered bitmap state are used to identify the specific number of valid information in the bitmap sequence, such as... Figure 1 As shown.
[0021] In this example, as Figure 2As shown, the receiving end includes a PSN check module psn_check, a bitmap storage management module bitmap_men_mng, and a SACK information management module sack_msg_mng; The PSN check module psn_check is used to verify the validity and legitimacy of the PSN of received data packets to determine whether the PSN of the data packet is within the valid range of the bitmap window.
[0022] Specifically, such as Figure 3a and Figure 3b As shown, the PSN checking module psn_check determines whether the PSN of the data packet is within the valid range of the bitmap window. When the PSN of the data packet is within the valid range of the bitmap window, the PSN of the data packet is input into the bitmap storage management module bitmap_men_mng. When the PSN of the data packet is not within the valid range of the bitmap window, the data packet is discarded.
[0023] It should be noted that the effective range of the bitmap window is defined as a dynamically sliding window. The starting point of this window is always aligned with the first missing packet, and its effective span is equal to the preset maximum bitmap capacity. Due to the cyclic incrementing nature of the sequence number, the effective range of this bitmap window exists in two states in the actual logical mapping: a continuous interval "not crossing the boundary" state, and a "crossing the boundary" state caused by sequence number wrapping, as shown below. Figure 3a and Figure 3b As shown.
[0024] The bitmap storage management module bitmap_men_mng is used to receive the PSN of the data packet, determine whether there is a missing packet in the bitmap based on the PSN of the data packet and the PSN expected to be received, and if there is a missing packet in the bitmap, determine whether the missing packet is within the tolerable configuration range based on the packet loss threshold. If the missing packet is not within the tolerable configuration range, generate valid bitmap window information and input the valid bitmap window information into the SACK information management module sack_msg_mng.
[0025] refer to Figure 4The bitmap storage management module bitmap_men_mng includes a bitmap state unit bitmap_state, a pointer calculation unit point_calc, a comparator, a timer, and an adder ADD. The output of the PSN check module psn_check is connected to the input of the pointer calculation unit point_calc and the input of the bitmap state unit bitmap_state. The bitmap state unit bitmap_state is connected to the pointer calculation unit point_calc and the timer. The output of the bitmap state unit bitmap_state is connected to the input of the comparator via the adder ADD and the timeout timer. The comparator c The output of the comparator and the output of the bitmap_state are connected to the input of the SACK information management module sack_msg_mng. The output of the comparator is connected to the input of the pointer calculation unit point_calc. During operation, the PSN of the data packet output by the PSN check module psn_check is sent to the bitmap_state and the pointer calculation unit point_calc. The bitmap_state and the pointer calculation unit point_calc work together to maintain the bitmap state information in real time and dynamically calculate the window head and tail pointers. The timer is used to trigger the timing mechanism when a missing packet is detected in the received sequence.
[0026] Specifically, the bitmap state unit bitmap_state compares the PSN of the data packet with the PSN expected to be received. If the two are not equal, it is considered that there is a missing packet in the bitmap. The control logic pulls the time_en enable signal high and triggers the timer to start the timeout countdown. When the timer's countdown period ends, the actual arrival status of the missing packet is checked and the following state branch logic is executed: 1) If the missing packet arrives successfully within the countdown period, it means that it is only a slight out-of-order situation in the network. At this time, the control signal add_ctrl is set to 0, the adder ADD does not perform the accumulation operation, the value of the timeout counter remains unchanged, and the bitmap receive window is advanced normally. 2) If the missing packet does not arrive within the timing period, the control signal add_ctrl is set to 1, driving the adder ADD to increment the timeout counter. The timeout counter value is then compared with the system's preset packet loss threshold. If the timeout counter value does not exceed the packet loss threshold, the packet loss is considered to be within the tolerable configuration range. In this case, the bitmap sliding window is directly advanced, and the updated head pointer start_point is transmitted to the pointer calculation module point_calc for the next round of maintenance. If the timeout counter value exceeds the packet loss threshold, intervention is required to recover the data. In this case, all valid bitmap information within the interval from the current head pointer start_point to the tail pointer end_point is extracted and transmitted to the SACK information management module sack_msg_mng.
[0027] For example, assuming the packet loss threshold is 1, when the PSN of an incoming data packet is detected to be different from the expected PSN, the control logic pulls the `time_en` enable signal high, triggering the timer to start counting. If the missing packet has not arrived by the end of the counting period, the control logic pulls the `add_ctrl` enable signal high, instructing the timeout counter to increment by one. At this time, the value of the timeout counter changes to 1. Figure 5 As shown, since the current timeout counter value has not exceeded the packet loss threshold, the current packet loss situation is determined to be within the tolerable range. At this time, the update header pointer signal update_start_point is set to a valid state, logically marking the missing packet as "received". Subsequently, the pointer calculation unit point_calc writes the calculated latest write pointer write_point into the bitmap window, then advances the bitmap window, and simultaneously updates the position of the header pointer start_point, as shown. Figure 6As shown. Similarly, when a missing packet appears again in a subsequent sequence, the timer starts. If the packet is not reached by the end of the timer, the timeout counter will increment again. At this point, the timeout counter value accumulates to 2, which is greater than the packet loss threshold. Therefore, it is determined that the packet loss exceeds the fault tolerance capability, the adaptive advancement is immediately terminated, and the valid bitmap information cached in the current bitmap state unit bitmap_state is transmitted to the SACK information management module sack_msg_mng, as shown. Figure 7 As shown.
[0028] The pointer calculation unit `point_calc` is used to dynamically calculate and maintain the offsets of various pointers within the bitmap window. The calculation method for pointer updates is as follows: start_point: Header pointer, initially 0, pointing to the PSN that is currently expected to be received.
[0029] write_point: Write pointer, initially 0, the pointer points to the sequence number of the data packet received this time.
[0030] end_point: The tail pointer, initially 0, points to the sequence number of the largest data packet currently received.
[0031] The head pointer start_point is incremented by an offset shift1 to obtain the updated write pointer write_point. The offset shift1 is: shift1 = unpck_psn - exp_psn, where unpck_psn is the unpacked packet sequence number and exp_psn is the expected packet sequence number.
[0032] The head pointer start_point is incremented by an offset shift2 to obtain the updated tail pointer end_point. The offset shift2 is: shift2 = recv_max_psn - exp_psn, where recv_max_psn is the maximum packet sequence number of the data packets received by the receiver, and exp_psn is the expected packet sequence number. The current head pointer start_point is incremented by an offset shift3 to obtain the updated head pointer start_point. The offset shift3 is the offset of the next missing packet relative to the current head pointer start_point.
[0033] In this embodiment, the SACK information management module sack_msg_mng is used to integrate and encapsulate the current bitmap information and the receiving status, and generate and output a SACK response message containing the latest valid bitmap information.
[0034] Specifically, the SACK information management module `sack_msg_mng`, as the final execution unit for retransmission feedback at the receiving end, receives and integrates the valid bitmap information transmitted from the front end, encapsulates it into the final SACK response message, and outputs it. The specific process is as follows: Based on the valid bitmap window information, it determines whether the PSN of the data packet has experienced address wrapping. When the PSN of the data packet has not experienced address wrapping, it directly extracts the valid bitmap window information from the current header pointer, using the current valid header pointer as the starting position, and sequentially fills the valid bitmap window information into the corresponding fields of the SACK response message, such as... Figure 8 As shown, when address wraparound occurs in the PSN of a data packet, a loopback reading mechanism is initiated. This means that data is first extracted from the head pointer backwards to the end of the current storage space, and then automatically loops back to the beginning address of that storage space to continue extracting the remaining data. Through this loopback method, logically continuous but physically truncated bitmap information can be completely pieced together and accurately written into the SACK response message, as shown below. Figure 9 As shown.
[0035] Simulation Experiment In the simulation test environment, the random packet loss rate is 0.0000001%, the number of tasks per packet size is 5000, and a write operation is performed. The tolerance threshold for packet loss in the selective retransmission mode with threshold shown in this invention is 10.
[0036] Figure 10 This is a comparison chart of average bandwidth tests under different modes during the write operation, provided by... Figure 10 It can be seen that in the backoff retransmission mode, the overall average bandwidth is the lowest, increasing slowly with the increase of data packets. This is mainly because when packet loss or out-of-order delivery occurs, backoff retransmission starts retransmitting from the point where the packet is missing, resulting in a large amount of redundant traffic and consuming link bandwidth. In the selective retransmission mode, its average bandwidth is significantly higher than that of the backoff retransmission mode, and it also increases continuously with the increase of data packets, showing a significant increase at 4K, 8K, and 16K. This is mainly because selective retransmission only recovers truly missing data packets, reducing invalid retransmissions and allowing more bandwidth to be used for effective data transmission. The selective retransmission mode with a threshold shown in this invention has an overall higher average bandwidth than the selective retransmission mode, and its overall performance is the best. This is mainly because it tolerates missing or brief out-of-order delivery within a certain range, avoiding premature retransmissions. Only when the threshold is exceeded is selective retransmission triggered through bitmap feedback, thus reducing unnecessary retransmissions.
[0037] Figure 11 This is a comparison chart of peak bandwidth tests under different modes during the write operation, provided by... Figure 11It can be seen that the peak bandwidth of the backoff retransmission mode is the lowest, indicating that its redundant retransmission seriously affects the link bandwidth utilization. The peak bandwidth of the selective retransmission mode is significantly higher than that of the backoff retransmission mode, and the peak bandwidth of the selective retransmission mode with threshold is the highest.
[0038] In summary, under the same random packet loss conditions, the back-to-retransmission mode has the lowest bandwidth, the selective retransmission mode is better than the back-to-retransmission mode, and the selective retransmission mode with a threshold has the highest overall bandwidth and the best performance, with more link bandwidth used for effective data transmission, thus improving retransmission efficiency and link bandwidth utilization.
[0039] Example 2 The RDMA retransmission method with configurable packet loss threshold and bitmap feedback described in this invention includes: The sending end receives a selective acknowledgment response message and sends a data packet according to the selective acknowledgment response message; The PSN checking module psn_check receives the data packet and determines whether the PSN of the data packet is within the valid range of the bitmap window. When the PSN of the data packet is within the valid range of the bitmap window, the PSN of the data packet is input into the bitmap storage management module bitmap_men_mng. When the PSN of the data packet is not within the valid range of the bitmap window, the data packet is discarded. The bitmap storage management module bitmap_men_mng receives the PSN of the data packet and determines whether there is a missing packet in the bitmap based on the PSN of the data packet and the PSN expected to be received. If there is a missing packet in the bitmap, it determines whether the missing packet is within the tolerable configuration range based on the packet loss threshold. If the missing packet is not within the tolerable configuration range, it generates valid bitmap window information and inputs the valid bitmap window information into the SACK information management module sack_msg_mng. The SACK information management module sack_msg_mng is used to generate and output a selective acknowledgment response message based on the valid bitmap window information.
[0040] It should be noted that this invention addresses the limitations of GBN and SR by improving upon them within a tolerable packet loss threshold. Specifically, firstly, it extends the standard User Datagram Protocol (UDP) by encapsulating a custom protocol header into the original message, such as... Figure 1As shown, secondly, the receiving end marks and buffers the arriving PSNs within the bitmap window, allowing out-of-order packets to occupy space first. When a missing packet appears, the timer starts. When the data packet arrives after the timer expires, the timeout counter remains unchanged and advances the bitmap window. If the data packet still hasn't arrived after the timer expires, the timeout counter is incremented. If the value of the timeout counter does not exceed the packet loss threshold, the bitmap window is advanced directly. If the value of the timeout counter is greater than the packet loss threshold, valid bitmap window information is replied. Finally, the sending end parses the message and selectively retransmits the data packets marked as lost in the bitmap. This achieves accurate recovery of actual packet loss while improving retransmission efficiency and link bandwidth utilization.
[0041] Other embodiments of the invention will readily occur to those skilled in the art upon consideration of the specification and disclosure of the invention. This invention is intended to cover any variations, uses, or adaptations of the invention that follow the general principles of the invention and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of the invention are indicated by the following claims.
[0042] It should be understood that the present invention is not limited to the precise structure described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of the invention is limited only by the appended claims.
[0043] The above description is merely a preferred embodiment of the present invention and does not constitute any limitation on the present invention. Any simple modifications, alterations, or equivalent structural changes made to the above embodiments based on the technical essence of the present invention shall still fall within the protection scope of the present invention.
Claims
1. A packet loss threshold-configurable RDMA retransmission circuit with bitmap feedback, characterized in that, It includes a sending end and a receiving end, wherein the receiving end includes a PSN checking module, a bitmap storage management module and a SACK information management module; The sending end is used to receive selective acknowledgment response messages and send data packets according to the selective acknowledgment response messages; The PSN checking module is used to receive the data packet and determine whether the PSN of the data packet is within the valid range of the bitmap window. When the PSN of the data packet is within the valid range of the bitmap window, the PSN of the data packet is input into the bitmap storage management module. When the PSN of the data packet is not within the valid range of the bitmap window, the data packet is discarded. The bitmap storage management module is used to receive the PSN of the data packet, determine whether there is a missing packet in the bitmap based on the PSN of the data packet and the PSN expected to be received, and if there is a missing packet in the bitmap, determine whether the missing packet is within the tolerable configuration range based on the packet loss threshold. If the missing packet is not within the tolerable configuration range, generate valid bitmap window information and input the valid bitmap window information into the SACK information management module. The SACK information management module is used to generate and output a selective acknowledgment response message based on the valid bitmap window information.
2. The RDMA retransmission circuit with configurable packet loss threshold and bitmap feedback according to claim 1, characterized in that, The bitmap storage management module includes a bitmap state unit, a pointer calculation unit, a comparator, a timeout counter, a timer, and an adder; The bitmap state unit compares the PSN of the data packet with the PSN expected to be received. If the PSN of the data packet is not equal to the PSN expected to be received, it is considered that there is a missing packet in the bitmap, and a timer is triggered to start timeout. After the timeout period ends, if there is still a missing packet in the bitmap, the timeout counter is incremented by one through the adder. Then it is determined whether the current timeout counter count exceeds the packet loss threshold. If the current timeout counter count does not exceed the packet loss threshold, the bitmap window is advanced, and the head pointer, write pointer, and tail pointer in the bitmap window are updated and output through the pointer calculation unit. If the current timeout counter count exceeds the packet loss threshold, the valid bitmap window information is determined according to the head pointer and tail pointer output by the pointer calculation unit, and the valid bitmap window information is sent to the SACK information management module.
3. The RDMA retransmission circuit with configurable packet loss threshold and bitmap feedback according to claim 2, characterized in that, The process of updating the head pointer, write pointer, and tail pointer within the bitmap window using the pointer calculation unit is as follows: The head pointer is incremented by an offset shift1 to obtain the updated write pointer write_point; The head pointer is incremented by an offset of shift2 to obtain the updated tail pointer; Add an offset of shift3 to the current head pointer to get the updated head pointer.
4. The RDMA retransmission circuit with configurable packet loss threshold and bitmap feedback according to claim 3, characterized in that, The offset shift3 is the offset of the next missing packet relative to the current head pointer.
5. The RDMA retransmission circuit with configurable packet loss threshold and bitmap feedback according to claim 3, characterized in that, The offset shift2 is: shift2 =recv_max_psn -exp_psn Where recv_max_psn is the maximum packet sequence number of the data packets received by the receiver, and exp_psn is the expected packet sequence number.
6. The RDMA retransmission circuit with configurable packet loss threshold and bitmap feedback according to claim 3, characterized in that, The offset shift1 is: shift1=unpck_psn-exp_psn Where unpck_psn is the unpacked packet sequence number, and exp_psn is the expected packet sequence number.
7. The RDMA retransmission circuit with configurable packet loss threshold and bitmap feedback according to claim 1, characterized in that, The process of generating a selective acknowledgment response message based on the valid bitmap window information is as follows: Based on the valid bitmap window information, determine whether the PSN of the data packet has experienced address wraparound. Based on the determination result, write the valid bitmap window information into the selective acknowledgment response message.
8. The RDMA retransmission circuit with configurable packet loss threshold and bitmap feedback according to claim 7, characterized in that, The process of writing the valid bitmap window information into the selective acknowledgment response message based on the judgment result is as follows: When the PSN of the data packet does not wrap around, the effective bitmap window information is sequentially written into the selective acknowledgment response message, starting from the current header pointer. When the PSN of the data packet experiences address wraparound, a loopback read mechanism is used to sequentially write the valid bitmap window information into the selective acknowledgment response message.
9. A method for RDMA retransmission with configurable packet loss threshold and bitmap feedback, characterized in that, include: The sending end receives a selective acknowledgment response message and sends a data packet according to the selective acknowledgment response message; The PSN checking module receives the data packet and determines whether the PSN of the data packet is within the valid range of the bitmap window. When the PSN of the data packet is within the valid range of the bitmap window, the PSN of the data packet is input into the bitmap storage management module. When the PSN of the data packet is not within the valid range of the bitmap window, the data packet is discarded. The bitmap storage management module receives the PSN of the data packet and determines whether there is a missing packet in the bitmap based on the PSN of the data packet and the PSN expected to be received. If there is a missing packet in the bitmap, it determines whether the missing packet is within the tolerable configuration range based on the packet loss threshold. If the missing packet is not within the tolerable configuration range, it generates valid bitmap window information and inputs the valid bitmap window information into the SACK information management module. Using the SACK information management module, a selective acknowledgment response message is generated and output based on the valid bitmap window information.
10. The RDMA retransmission method with configurable packet loss threshold and bitmap feedback according to claim 9, characterized in that, The bitmap storage management module includes a bitmap state unit, a pointer calculation unit, a comparator, a timeout counter, a timer, and an adder; The bitmap state unit compares the PSN of the data packet with the PSN expected to be received. If the PSN of the data packet is not equal to the PSN expected to be received, it is considered that there is a missing packet in the bitmap, and a timer is triggered to start timeout. After the timeout period ends, if there is still a missing packet in the bitmap, the timeout counter is incremented by one through the adder. Then it is determined whether the current timeout counter count exceeds the packet loss threshold. If the current timeout counter count does not exceed the packet loss threshold, the bitmap window is advanced, and the head pointer, write pointer, and tail pointer in the bitmap window are updated and output through the pointer calculation unit. If the current timeout counter count exceeds the packet loss threshold, the valid bitmap window information is determined according to the head pointer and tail pointer output by the pointer calculation unit, and the valid bitmap window information is sent to the SACK information management module.