A reliable transmission-based bidirectional flow control method and device

By updating the cumulative received data packet value on the receiving side through calculation on the sending side and filtering on the receiving side, the problems of flow control anomalies and packet loss in bidirectional flow control are solved, credit synchronization between sending and receiving devices is realized, and the robustness of the flow control mechanism is improved.

CN119135310BActive Publication Date: 2026-02-27WUXI STARS MICRO SYSTEM TECHNOLOGIES CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411102815.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-08-12
Publication Date
2026-02-27
Estimated Expiration
2044-08-12

AI Technical Summary

Technical Problem

In high-speed switching networks, existing bidirectional flow control mechanisms suffer from inconsistencies between sending and receiving messages, leading to flow control anomalies and potential message loss. This is especially true in point-to-point reliable transmission, where mismatches between flow control messages and data messages can cause buffer overflows and message loss on the receiving side.

Method used

A method combining bidirectional and unidirectional flow control mechanisms is adopted. By calculating the cumulative value of sent data packets on the sending side and filtering and updating the cumulative value of received data packets on the receiving side after reliable transmission verification, a message containing flow control credit value is generated and fed back to the sending side, thereby achieving credit synchronization between the sending and receiving sides.

Benefits of technology

It effectively solves the problems of flow control anomalies and message loss, improves the robustness of the flow control mechanism, ensures the synchronization of cumulative sent and received message values ​​between transceiver devices, and prevents buffer overflow on the receiving side.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119135310B_ABST
    Figure CN119135310B_ABST
Patent Text Reader

Abstract

The application provides a reliable transmission-based bidirectional flow control method and device. The method comprises the following steps: a sending side device calculates and sends a cumulative value of sent data packets to a receiving side device while sending data packets to the receiving side device; when the data packets pass a reliable transmission check of the receiving side device, the cumulative value of received data packets of the receiving side device is updated; the cumulative value of sent data packets from the sending side device is filtered according to a receiving state of the data packets, and the cumulative value of received data packets of the receiving side device is updated based on the filtered cumulative value of sent data packets; and a flow control credit value of the receiving side device is determined according to the cumulative value of received data packets and a remaining cache space of the receiving side device, a receiving side flow control packet containing the flow control credit value is generated, and the receiving side flow control packet is fed back to the sending side device. The application improves the robustness of a flow control mechanism in reliable transmission.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application belongs to the field of network transmission, and particularly relates to a bidirectional flow control method and device based on reliable transmission. BACKGROUND

[0002] In high-speed switching network transmission, it is inevitable that errors or losses of messages occur, and reliable completion of data transmission between switching nodes is one of the basic requirements of a switching network. Reliable transmission is a process of ensuring that data is accurately and correctly transmitted from a sending device to a receiving device in a switching network. In a typical switching network, cyclic redundancy check (CRC) is used to ensure the integrity of message data, and the sequence number (PSN) check is used to ensure the sequential transmission and non-loss of data. When the receiving side device detects CRC / PSN check exceptions, it sends a NAK (Negative Acknowledgement) message carrying the sequence number (PSN) of the message with the check exception to the sending side device, triggering the sending side to retransmit (Retry) the data message that has not been correctly received, thereby achieving reliable transmission of data messages in the switching network.

[0003] In high-speed switching protocols, a credit-based flow control mechanism is usually used to achieve data transmission between upstream and downstream devices. The receiving side device feeds back credit values representing the remaining buffer space information of the side to the sending side device, and the sending side device initiates message transmission when it determines that the remaining buffer space of the downstream is sufficient. Based on the above credit mechanism, efficient data transmission between upstream and downstream devices can be achieved. SUMMARY

[0004] The present application aims to provide a bidirectional flow control method and device based on reliable transmission, which aims to solve the problem of flow control exceptions and potential message losses caused by inconsistencies between messages of the receiving and sending sides in bidirectional flow control.

[0005] According to a first aspect of the present application, a bidirectional flow control method based on reliable transmission is provided, comprising:

[0006] While the sending side device sends data messages to the receiving side device, the cumulative sent data message value of the sending side device is calculated, and the cumulative sent data message value is sent to the receiving side device;

[0007] When the data message passes the reliable transmission check of the receiving side device, it is counted into the cumulative received data message value of the receiving side device; the cumulative sent data message value from the sending side device is filtered according to the reception status of the data message, and the cumulative received data message value of the receiving side device is updated based on the filtered cumulative sent data message value;

[0008] According to the accumulated received data packet value and the remaining buffer space of the receiving side device, a flow control credit value of the receiving side device is determined, a receiving side flow control packet containing the flow control credit value is generated and fed back to the sending side device.

[0009] In an optional embodiment, the sending of the accumulated sent data packet value to the receiving side device further comprises:

[0010] When the sending side device sends a data packet to the receiving side device, according to a virtual channel used for packet transmission, the length of the data packet is added to the accumulated sent data packet value of the virtual channel; and the accumulated sent data packet value is sent to the receiving side device at the same time as the data packet.

[0011] In an optional embodiment, the sending of the accumulated sent data packet value to the receiving side device at the same time as the data packet further comprises:

[0012] A flow control packet of the same virtual channel as the data packet is spliced at the tail of the data packet and sent in the same clock cycle; and the accumulated sent data packet value carried in the flow control packet corresponds to the data packet currently sent by the virtual channel.

[0013] In an optional embodiment, the adding of the data packet to the accumulated received data packet value of the receiving side device after reliable transmission verification by the receiving side device further comprises:

[0014] After the receiving side device receives a data packet from the sending side device and the data packet passes the reliable transmission retransmission verification, according to a virtual channel used for data packet transmission, the length of the data packet is added to the accumulated sent data packet value of the virtual channel; and the reliable transmission retransmission verification of the receiving side device includes the packet order and data integrity verification of the data performed by the receiving side device.

[0015] In an optional embodiment, the filtering of the accumulated sent data packet value from the sending side device according to the reception status of the data packet, and the updating of the accumulated received data packet value of the receiving side device based on the filtered accumulated sent data packet value further comprise:

[0016] When the accumulated sent data packet value in the flow control packet from the sending side device corresponds to a data packet that has passed the reliable transmission retransmission verification and has been correctly received at the receiving side, the accumulated sent data packet value in the flow control packet is used to update the accumulated received data packet value of the receiving side device.

[0017] In an optional embodiment, the filtering of the accumulated sent data packet value from the sending side device according to the reception status of the data packet further comprises:

[0018] The receiving side device performs reliable transmission retransmission check on the data packet from the sending side device based on packet order and data integrity.

[0019] Discarding the data packet from the sending side whose reliable transmission retransmission check fails, and discarding the accumulated sent data packet value in the sending side flow control packet at the tail of the data packet;

[0020] Discarding the accumulated sent data packet value in the sending side flow control packet at the tail of the data packet but not in the same virtual channel as the data packet whose reliable transmission retransmission check passes;

[0021] Discarding the accumulated sent data packet value in the sending side flow control packet which is not at the tail of the data packet.

[0022] According to a second aspect of the present application, a bidirectional flow control device based on reliable transmission is provided, comprising:

[0023] A packet sending unit is configured to calculate the accumulated sent data packet value of the sending side device while sending data packets from the sending side device to the receiving side device, and send the accumulated sent data packet value to the receiving side device;

[0024] A filtering unit is configured to filter the accumulated sent data packet value from the sending side according to the reception status of the data packet when the receiving side device receives the data packet, and update the accumulated received data packet value of the receiving side device based on the filtered accumulated sent data packet value;

[0025] A feedback unit is configured to determine the flow control credit value of the receiving side device according to the accumulated received data packet value and the remaining cache space of the receiving side device, generate a receiving side flow control packet containing the flow control credit value and feed back to the sending side device.

[0026] Compared with the related art, the technical solution of the present application has the following advantages:

[0027] The technical solution of the present application has the advantages of both the bidirectional FCTBS / FCCL flow control mechanism of the sending and receiving sides and the unidirectional FCCL flow control mechanism of the receiving side, effectively solves the problems of flow control abnormality and potential loss of receiving side cache overflow packets caused by the mismatch between data packets and flow control packets in the bidirectional flow control scheme, and supports the update of the receiving side accumulated received data packet value ABR based on the filtered reliable and credible sending side accumulated sent data packet value FCTBS, increases the synchronization mechanism of the accumulated sending and receiving packet values FCTBS / ABR between the sending and receiving side devices, and improves the robustness of the flow control mechanism.

[0028] Other features and advantages of the present application will be set forth in the following description, and in part will be apparent from the description, or can be learned by practice of the application. The objects and other advantages of the present application will be realized and attained by the structure particularly pointed out in the written description and claims thereof as well as the appended drawings. BRIEF DESCRIPTION OF DRAWINGS

[0029] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the related art, the following will briefly introduce the drawings needed to be used in the embodiments or the related art description. Obviously, the drawings described below are only some embodiments of the present application, and the ordinary skilled in the art can obtain other drawings according to these drawings without any creative effort.

[0030] Figure 1 is a reliable transmission FCTBS / FCCL flow control mechanism according to the related art.

[0031] Figure 2 is a reliable transmission flow control abnormal state diagram under the two-way flow control mechanism according to the related art.

[0032] Figure 3 is a flow chart of a two-way flow control method based on reliable transmission according to an exemplary embodiment of the present application.

[0033] Figure 4 is a reliable transmission FCTBS / FCCL flow control mechanism diagram according to an exemplary embodiment of the present application.

[0034] Figure 5 shows a diagram of the process of updating ABR with reliable and trusted flow control packet FCTBS and the process of updating ABR with corresponding FCTBS transmitted with data packet.

[0035] Figure 6 is a non-reliable trusted FCTBS diagram according to an exemplary embodiment of the present application. DETAILED DESCRIPTION

[0036] In order to make the purposes, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described clearly and completely below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only some embodiments of the present application, not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by the ordinary skilled in the art without any creative effort are within the protection scope of the present application.

[0037] InfiniBand, PCIE as an example of the mainstream existing exchange agreement are defined in different retransmission, flow control mechanism. InfiniBand (IB) network, point to point upstream and downstream devices using credit-based flow control mechanism, to ensure that there is no cache overflow risk of efficient data transmission between upstream and downstream devices. But in the IB network, reliable transmission through the end-to-end retransmission mechanism between devices to ensure that there is no retransmission mechanism between point-to-point devices, that is, there is a message loss in point-to-point transmission, in the end-to-end retransmission to ensure data integrity.

[0038] As Figure 1 In the IB network, a bidirectional flow control mechanism based on FCTBS / FCCL is used. The receiving side device uses flow control packets (FCP) to feed back the flow control credits FCCL (Flow Control Credit Limit) representing the remaining buffer space FS (Free Space) information on the side to the sending side device. The sending side device uses FCP to feed back the accumulated sent data packet value FCTBS (Flow Control Total Block Sent) information on the side to the receiving side device; the sending side sends FCP and data packets (DP) independently through different packet formats. The FCTBS in FCP is the accumulated flow control unit value (FCB) corresponding to the data packets DP sent before the flow control packet.

[0039] Based on the feedback credit FCCL value of the downstream device and the accumulated sent data packet value FCTBS maintained on the side, the sending side device can use the pre-determined remaining buffer space of the downstream receiving side to efficiently initiate data packet transmission when it is determined that the remaining buffer space of the downstream receiving side is sufficient. For the scenario of message loss in point-to-point non-reliable transmission and active message checking, the IB network formulates a mechanism for updating the accumulated received data packet value ABR (Adjusted Blocks Received) of the receiving side device with the sent data packet value FCTBS of the sending side device, which can synchronize the flow control values of the sending and receiving packets between upstream and downstream devices and correct the credit deviation. The IB network uses the above bidirectional FCTBS / FCCL credit mechanism to realize data transmission between upstream and downstream devices in point-to-point non-reliable transmission.

[0040] The above-mentioned bidirectional FCCL / FCTBS flow control mechanism plays an important role in upstream and downstream credit synchronization in IB network point-to-point unreliable transmission. When there is loss or discard of data packets, it can realize synchronization and credit recovery of inconsistent upstream and downstream credits. However, in point-to-point reliable transmission, the flow control mechanism will retransmit the data packet when it is lost, resulting in the fact that the bidirectional flow control mechanism is not applicable. Because when the data packet is first sent, the corresponding packet length is accumulated into FCTBS and the credit is deducted, and the subsequent retransmission no longer deducts the credit and no longer accumulates into FCTBS; the flow control packet FCP and the data packet DP are transmitted independently, and the FCTBS value in the correctly received flow control packet FCP and the retransmitted data packet DP do not correspond, and the use of the IB flow control mechanism to correct the downstream receiving side ABR in the FCTBS flow control packet will cause the problem of ABR calculation abnormality and credit feedback abnormality.

[0041] As follows Figure 2 In the above-mentioned bidirectional FCCL / FCTBS flow control mechanism, the sending side device transmits the data packet DP2 in the sending buffer (TX Buffer) to the downstream, accumulates the packet length of the data packet DP2 to the local FCTBS, and then sends the flow control packet FCP2 containing the current FCTBS value fctbs2 information to the receiving side; when the data packet DP2 has data error in the transmission process, the downstream receiving side device sends a NAK2 packet in response to the check failure, triggering the retransmission of the data packet DP2. However, the corresponding FCP2 packet is correctly received by the downstream device, and according to the FCTBS / FCCL flow control mechanism, the fctbs2 in the FCP2 will update the receiving side ABR; the upstream sending side device uses the data of the packet DP2 stored in the retransmission buffer (Retry Buffer) to send again, without FCTBS accumulation and additional credit deduction, and when the retransmitted DP2 packet is correctly received by the receiving side, the receiving side will accumulate the packet length of the data packet DP2 to the receiving side ABR again. That is, the sending side accumulates the DP2 packet to the FCTBS once and deducts the corresponding credit once; but at the receiving side, the ABR accumulates the data packet DP2 twice, including updating once through the fctbs2 value in the flow control packet FCP2, and accumulating once using the DP2 packet length information when the retransmitted data packet DP2 is correctly received. This causes the credit value FCCL calculated based on the ABR and the remaining buffer space of the virtual channel to be abnormally large, the upstream sending side to abnormally large, and finally the risk of flow control abnormality, downstream buffer overflow, and packet loss.

[0042] Taking PCIE as an example, in a high-speed communication protocol based on point-to-point reliable transmission, a unidirectional flow control mechanism of only receiving side feedback cumulative credit FCCL is usually adopted. The scheme guarantees the consistency of the data messages transmitted and received in the upstream and downstream devices and the consistency of the FCTBS / ABR credits maintained by the upstream and downstream devices through the retransmission mechanism of reliable transmission. The general retransmission mechanism usually adopts a data message sequence number PSN and a CRC check to ensure the correctness of the data message and the retransmission mechanism, and there is a low probability of CRC collision, design logic function abnormality and other risks that cannot normally complete message error detection. However, in the missed detection scenario, there is also a risk of flow control abnormality caused by inconsistent credit maintenance of the transmitting and receiving sides, and there is no credit correction and synchronization mechanism for the upstream and downstream sides in the unidirectional flow control mechanism, so once the credit abnormality occurs, it cannot be recovered, and the robustness of the scheme is poor.

[0043] In view of the existing IB / PCIE scheme, similar to the IB protocol FCTBS / FCCL bidirectional flow control mechanism in point-to-point reliable transmission, the data messages and the flow control messages are independently transmitted, the flow control messages FCTBS do not correspond to the data messages, and there is a flow control abnormality, a receiving side buffer overflow and a message loss. Similar to the PCIE protocol FCCL unidirectional flow control mechanism, when the design logic function is abnormal or the CRC collision causes the reliable transmission verification to fail, there is inconsistent credit maintenance of the upstream and downstream sides, and the abnormality cannot be recovered. The present application provides a bidirectional flow control method and device based on reliable transmission, which adopts a flow control mechanism with the advantages of bidirectional flow control and unidirectional flow control mechanism to realize point-to-point reliable transmission, prevents the flow control abnormality caused by the mismatch of data messages and flow control messages in the bidirectional flow control scheme, the receiving side buffer overflow and the message loss, and supports a credit synchronization mechanism for the receiving side ABR updated by the sending side FCTBS in a reliable and credible manner compared with the unidirectional flow control mechanism, increases the upstream and downstream credit synchronization mechanism, and improves the robustness of the flow control mechanism.

[0044] Referring to the flowchart of Figure 3 The bidirectional flow control method based on reliable transmission provided by the present application comprises the following steps:

[0045] Step 301: The sending side device sends data messages to the receiving side device, calculates the cumulative sent data message value of the sending side device, and sends the cumulative sent data message value to the receiving side device.

[0046] Exemplarily, the sending side device counts the length of the data messages in the cumulative sent data message value of the virtual channel used for transmitting the data messages. The sending side device uses a flow control message FCP to feed back the cumulative sent data message value FCTBS information of each virtual channel of the side to the receiving side device. As described above, the sending side sends the FCP and the data message DP in different message formats and independently. The FCTBS in the flow control message FCP of each virtual channel is the cumulative flow control unit value corresponding to the data message DP sent by the virtual channel before the flow control message.

[0047] In another alternative embodiment, the sending side device carries the cumulative sent data packet value FCTBS of the current corresponding virtual channel in the data packet to the receiving side device when sending the data packet.

[0048] Step 302: When the data packet passes the reliable transmission check of the receiving side device, the cumulative received data packet value of the receiving side device is updated; the cumulative sent data packet value from the sending side device is filtered according to the reception status of the data packet, and the cumulative received data packet value of the receiving side device is updated based on the filtered cumulative sent data packet value.

[0049] For example, as shown in Figure 4 the specific embodiments of the present application are based on the bidirectional FCTBS / FCCL flow control mechanism of reliable transmission, the receiving side adds the flow control packet FCP FCTBS filtering mechanism for filtering the reliable and trusted FCTBS in the flow control packet from the sending side, and the filtered reliable and trusted FCTBS is used to update the local ABR of the receiving side. Wherein, the reliable and trusted flow control packet means that the FCTBS in the flow control packet corresponds to the data packet that passes the reliable transmission retransmission check and is correctly received by the receiving side, and can be used to update the ABR of the receiving side device in the credit exception.

[0050] Step 303: Determine the flow control credit value of the receiving side device according to the cumulative received data packet value and the remaining buffer space of the receiving side device, generate a receiving side flow control packet containing the flow control credit value, and feed back to the sending side device.

[0051] It can be understood that the receiving side device uses the flow control packet (FCP) to feed back the flow control credit FCCL reflecting the remaining buffer space FS information of each virtual channel of the receiving side to the sending side device.

[0052] Please refer to Figure 5 , in the specific embodiments, Figure 5 a shows the FCTBS in the reliable and trusted flow control packet, which can be used to update the ABR.

[0053] When the receiving side device receives the data packet that passes the reliable transmission check, the length of the packet (Packet Length) is counted into the cumulative sent data packet value ABR of the corresponding virtual channel according to the virtual channel used for the transmission of the data packet; and the cumulative sent data packet value FCTBS in the filtered reliable and trusted flow control packet is used to update the cumulative received data packet value ABR of the receiving side device.

[0054] In the preferred embodiment, the filtering rule is that the flow control packet of the same virtual channel as the data packet is spliced at the tail of the data packet that passes the retransmission check.

[0055] In a typical packet sending design, a flow control packet is spliced and sent in a useless data field segment at the end of a data packet to ensure full use of transmission bandwidth. When sending a data packet at the sending side, the packet length is accumulated into the FCTBS of the virtual channel used by the packet transmission. When sending a flow control packet at the sending side, the flow control packet of the same virtual channel as the packet is spliced at the end of the data packet, and the FCTBS field in the flow control packet corresponds to the currently sent data packet.

[0056] Figure 5 b shows the FCTBS corresponding to the data packet transmission, which can be used to update the ABR.

[0057] When sending a data packet at the sending side, the packet length is accumulated into the FCTBS of the virtual channel used by the packet transmission, and the FCTBS of the virtual channel corresponding to the current data packet is carried in the data packet. Preferably, the FCTBS is transmitted by using the packet reserve field.

[0058] As described above, when the receiving side device receives a data packet that passes the reliable transmission check, the length of the packet (Packet Length) is counted into the ABR of the virtual channel used by the data packet transmission according to the data packet; and the FCTBS carried in the checked data packet can be used to update the ABR of the receiving side device.

[0059] Since the filtering rule of the reliable and credible FCTBS is to splice the flow control packet of the same virtual channel as the data packet at the end of the retransmitted checked data packet, as shown in Figure 6 , the following FCTBS will be filtered out:

[0060] 1) For a data packet that fails the check, the data packet will be discarded, and the FCTBS in the flow control packet at the end of the packet will also be discarded;

[0061] 2) For a retransmitted checked data packet, the FCTBS in the flow control packet of a non-same virtual channel spliced at the end of the data packet is filtered out;

[0062] 3) The FCTBS in the flow control packet other than the end of the data packet is filtered out.

[0063] In the above embodiments, the parameters maintained by the upstream and downstream transceiving sides include:

[0064] 1) The downstream receiving side device feeds back a credit value FCCL representing the remaining buffer space information of the virtual channel at the side to the sending side; the main parameters of the receiving side and the credit FCCL calculation method are as shown in Table 1:

[0065] Table 1

[0066]

[0067]

[0068] 2) The upstream sending side device calculates the remaining buffer space size of the downstream receiving side device based on the credit FCCL fed back by the downstream receiving side, and initiates message transmission when the downstream buffer space is sufficient; the main parameters of the sending side and the remaining space FS calculation method are as shown in Table 2:

[0069] Table 2

[0070]

[0071] The above-mentioned parameter-based support filtering reliable and trusted transceiving side FCTBS / ABR synchronization transceiving side credit maintenance mechanism effectively solves the problem of non-correspondence between flow control messages FCTBS and correctly received data messages in a bidirectional flow control mechanism, and the problem of transceiving side credit abnormality unable to recover in a unidirectional flow control mechanism.

[0072] It can be seen that the bidirectional flow control method based on reliable transmission provided in the application has the following advantages compared with the related art: the advantages of bidirectional FCTBS / FCCL flow control mechanism and unidirectional FCCL flow control mechanism are combined, the problem of flow control abnormality caused by non-matching of data messages and flow control messages in a bidirectional flow control scheme, and the problem of receiving side buffer overflow message loss are effectively solved, and at the same time, the reliable and trusted sending side FCTBS update receiving side ABR credit synchronization mechanism is retained, the upstream and downstream credit synchronization mechanisms are increased, and the robustness of the flow control mechanism is improved.

[0073] Correspondingly, the application provides a bidirectional flow control device based on reliable transmission in a second aspect, comprising:

[0074] The packet sending unit is configured to calculate a cumulative sent data message value of a sending side device while the sending side device sends data messages to a receiving side device, and send the cumulative sent data message value to the receiving side device.

[0075] The filtering unit is configured to filter the cumulative sent data message value from the sending side according to the reception state of the data messages when the receiving side device receives the data messages, and update a cumulative received data message value of the receiving side device based on the filtered cumulative sent data message value.

[0076] The feedback unit is configured to determine a flow control credit value of the receiving side device according to the cumulative received data message value and a remaining buffer space of the receiving side device, generate a receiving side flow control message containing the flow control credit value, and feed back to the sending side device.

[0077] The device can be implemented by the reliable transmission-based bidirectional flow control method provided by the embodiments of the first aspect, and the specific implementation manner can be referred to the description in the embodiments of the first aspect, which will not be described here again.

[0078] It can be understood that the circuit structures, names and parameters described in the above embodiments are only examples. Those skilled in the art can also make easy combinations and adjustments of the structural features of the above multiple embodiments according to the use needs, and the concept of the present application should not be limited to the specific details of the above examples.

[0079] Although the present application has been described in detail with reference to the foregoing embodiments, it should be understood by those skilled in the art that the technical solutions recorded in the foregoing embodiments can be modified, or some technical features can be replaced by equivalents; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A bidirectional flow control method based on reliable transmission, characterized in that, include: While the sending device is sending data packets to the receiving device, it calculates the cumulative value of data packets sent by the sending device and sends the cumulative value of data packets sent to the receiving device. Once the data packet passes the reliable transmission verification of the receiving device, it is included in the cumulative received data packet value of the receiving device. Based on the reception status of the data packets, the cumulative sent data packet value from the sending device is filtered, and the cumulative received data packet value of the receiving device is updated based on the filtered cumulative sent data packet value. Based on the cumulative received data packet value and the remaining buffer space of the receiving device, the flow control credit value of the receiving device is determined, a receiving flow control message containing the flow control credit value is generated and fed back to the sending device; The calculation of the cumulative transmitted data packet value by the sending-side device and the transmission of the cumulative transmitted data packet value to the receiving-side device further includes: When the sending device sends a data packet to the receiving device, the length of the data packet is included in the cumulative sent data packet value of the virtual channel used for packet transmission; the cumulative sent data packet value is sent to the receiving device along with the data packet. The step of sending the accumulated value of transmitted data packets to the receiving device along with the data packets further includes: A flow control message from the same virtual channel as the data packet is appended to the end of the data packet and sent in the same clock cycle; the cumulative data packet value carried in the flow control message corresponds to the data packet currently being sent in the virtual channel.

2. The bidirectional flow control method based on reliable transmission according to claim 1, characterized in that, The step of including the data packet in the cumulative received data packet value of the receiving device after the data packet passes the reliable transmission verification of the receiving device further includes: After the receiving device receives a data packet from the sending device and passes the reliable transmission and retransmission verification, it includes the length of the data packet in the cumulative value of data packets sent in the virtual channel according to the virtual channel used for data packet transmission. The reliable transmission retransmission verification includes the receiving device verifying the message order and data integrity of the received data.

3. The bidirectional flow control method based on reliable transmission according to claim 1, characterized in that, The step of filtering the cumulative sent data packet value from the sending device according to the data packet reception status, and updating the cumulative received data packet value of the receiving device based on the filtered cumulative sent data packet value, further includes: When the cumulative sent data packet value in the flow control message from the sending device corresponds to a data packet that has passed the reliable transmission retransmission verification and been correctly received on the receiving side, the cumulative sent data packet value in the flow control message is used to update the cumulative received data packet value of the receiving device.

4. The bidirectional flow control method based on reliable transmission according to claim 3, characterized in that, The step of filtering the cumulative transmitted data packet value from the sending device based on the data packet reception status further includes: The receiving device performs reliable transmission and retransmission verification on data packets from the sending device based on packet order and data integrity; Discard data packets from the sending side that fail the reliable transmission retransmission check, and also discard the cumulative sent data packet value in the sending side flow control message at the end of the data packet; Discard the cumulative sent data packet value in the sender-side flow control message that is located at the end of the data packet that has passed the reliable transmission retransmission check, but is not in the same virtual channel as the data packet that passed the check. Discard the cumulative sent data packet value in the sender-side flow control message that is not located at the end of the data packet.

5. A bidirectional flow control device based on reliable transmission, characterized in that, include: The packet sending unit is used to calculate the cumulative value of data packets sent by the sending side device while sending data packets to the receiving side device, and send the cumulative value of data packets sent to the receiving side device. The filtering unit is used to filter the cumulative sent data packet value from the sending side according to the receiving status of the data packet when the receiving device receives the data packet, and update the cumulative received data packet value of the receiving device based on the filtered cumulative sent data packet value. The feedback unit is used to determine the flow control credit value of the receiving device based on the cumulative received data packet value and the remaining buffer space of the receiving device, generate a receiving flow control message containing the flow control credit value and feed it back to the sending device. The packet sending unit is further configured to: When the sending device sends a data packet to the receiving device, the length of the data packet is included in the cumulative sent data packet value of the virtual channel used for packet transmission; the cumulative sent data packet value is sent to the receiving device along with the data packet. The packet sending unit is further used for: A flow control message from the same virtual channel as the data packet is appended to the end of the data packet to achieve transmission within the same clock cycle; the cumulative data packet value carried in the flow control message corresponds to the data packet currently being transmitted in the virtual channel.

6. The bidirectional flow control device based on reliable transmission according to claim 5, characterized in that, The filtering unit is further used for: When the cumulative sent data packet value in the flow control message from the sending device corresponds to a data packet that has passed the reliable transmission retransmission check and been correctly received on the receiving side, the cumulative sent data packet value in the flow control message is used to update the cumulative received data packet value of the receiving device.

7. The bidirectional flow control device based on reliable transmission according to claim 6, characterized in that, The filtering unit is further used for: Discard data packets from the sending side that fail the reliable transmission retransmission check, and also discard the cumulative sent data packet value in the sending side flow control message at the end of the data packet; Discard the cumulative sent data packet value in the sender-side flow control message that is located at the end of the data packet that has passed the reliable transmission retransmission check, but is not in the same virtual channel as the data packet that passed the check. Discard the cumulative sent data packet value in the sender-side flow control message that is not located at the end of the data packet.

Citation Information

Patent Citations

  • Congestion detection method and system for loss-free network

    CN113572655A

  • Message retransmission method and device of IB network link layer

    CN117792571A