Data transmission method, communication system and device

By introducing proxy nodes into the communication system, earlier ACK message feedback is achieved, the problem of sending queue blocking in long-distance data transmission is solved, and the throughput rate of data transmission is improved.

CN120238249APending Publication Date: 2025-07-01HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311837393.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-12-28
Publication Date
2025-07-01

AI Technical Summary

Technical Problem

In long-distance data transmission, the source node waits for ACK messages for a long time, resulting in blocking the sending queue, thereby reducing the throughput of data transmission.

Method used

By introducing a source-end proxy node and a destination-end proxy node, the data transmission method includes sending data messages to the source-end proxy node, the source-end proxy node forwards to the transmission network and sending a first ACK message to the source-end node, and the destination-end proxy node intercepts the second ACK message feedback from the destination-end node to the source-end node.

Benefits of technology

Make the source node receive ACK messages earlier, thereby releasing the data in the sending queue earlier, improving the throughput of data transmission, and avoiding the source node receiving ACK messages repeatedly.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120238249A_ABST
    Figure CN120238249A_ABST
Patent Text Reader

Abstract

The invention provides a data transmission method, a communication system and a device, which are applied to the technical field of communication. The source end node can be communicated with the destination end node through the source end agent node, the transmission network and the destination end agent node in sequence. In the embodiment of the invention, after the source end node sends the data message, the source end agent node can replace the destination end node to feed back the ACK message to the source end node, so that the source end node can receive the ACK message more quickly, and the cached data in the sending queue can be released more quickly. Based on the scheme, the throughput rate of data transmission can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technologies, and in particular, to a data transmission method, a communication system, and a device. Background Art

[0002] Message acknowledgment (ACK) is a mechanism used to ensure the reliability of data transmission. The source node can send data based on the send queue. The data to be sent is first cached in the send queue and then sent out from the send queue. After successfully receiving the data, the destination node will reply to the source node with an ACK message. Only after receiving the ACK message will the source node release the data cached in the send queue corresponding to the ACK message.

[0003] It should be understood that the length of the send queue is limited. Only when the data already sent in the queue is released in a timely manner can new data enter the send queue. In the scenario of long-distance data transmission, the time interval between the source node sending data and receiving the ACK message is relatively long, which causes the data in the send queue not to be released in a timely manner, and new data cannot enter the send queue in a timely manner, thereby resulting in a low throughput rate of data transmission. Summary of the Invention

[0004] This application provides a data transmission method, a communication system, and a device, which are used to solve the problem that in the prior art, when performing long-distance transmission, the source node waits for the ACK message for a long time, causing the send queue to be blocked and resulting in a low throughput rate of data transmission.

[0005] To achieve the above object, this application adopts the following technical solutions:

[0006] In a first aspect, a data transmission method is provided, which is applied to a communication system. The communication system includes a source node, a destination node, a source proxy node, a destination proxy node, and a transmission network. The source node is connected to the destination node through the source proxy node, the transmission network, and the destination proxy node in sequence. The data transmission method may include: The source node sends a data message to the source proxy node, and the destination address of the data message is the destination node. The source proxy node forwards the data message to the transmission network and sends a first ACK message corresponding to the data message to the source node. The data transmission network transmits the data message to the destination proxy node. The destination proxy node forwards the data message to the destination node. The destination node receives the data message and sends a second ACK message corresponding to the data message to the destination proxy node, and the destination address of the second ACK message is the source node. The destination proxy node intercepts the second ACK message.

[0007] Based on this solution, after the source node sends a data packet, the source proxy node on the data packet forwarding path can feedback an ACK packet to the source node. The distance between the source proxy node and the source node is closer than the distance between the destination node and the source node. Therefore, compared with the method of the destination node feedbacking an ACK packet to the source node, the method of this application can enable the source node to receive the ACK packet earlier. The source node receiving the ACK packet earlier can release the data cached in the sending queue earlier, and thus send subsequent data earlier. Therefore, the throughput of data transmission can be improved. Moreover, the destination proxy node in the embodiment of this application will also intercept the ACK packet feedbacked by the destination node to the source node, so as to avoid the source node receiving the ACK packet repeatedly, and further avoid the source node releasing the cache repeatedly.

[0008] Combined with the above first aspect, in a possible implementation manner, the data transmission method may further include: the destination node performs a data integrity check on the data packet from the source node. In the case where the data integrity check fails, the destination node sends a retransmission request packet to the source node, and the retransmission request packet is used to request retransmission of the data that the destination node has not received. The source node obtains again the data that the destination node has not received according to the retransmission request packet. Then, the source node sends a retransmission data packet to the destination node, and the retransmission data packet carries the data that the destination node has not received.

[0009] Based on this solution, when packet loss occurs during data transmission, retransmission can be performed to ensure the reliability of the service. Moreover, the retransmission process of this application is decoupled from the data sending process, and the timing of retransmission is not restricted, which can alleviate the problem that new data is blocked due to retransmission caused by packet loss. The retransmission process of this application has a relatively small impact on the throughput.

[0010] Combined with the above first aspect, in a possible implementation manner, the data that the destination node has not received is persistently stored in the storage unit of the source node. The source node obtaining again the data that the destination node has not received includes: the source node obtaining again from the storage unit the data that the destination node has not received.

[0011] Combined with the above first aspect, in a possible implementation manner, the data that the destination node has not received is persistently stored in an external storage device. The source node obtaining again the data that the destination node has not received includes: the source node obtaining again from the external storage device the data that the destination node has not received.

[0012] Based on the first two implementation manners, the data sent by the source node to the destination node is persistently stored. Thus, when packet loss occurs, the source node can still obtain the lost packet data and then perform retransmission to ensure the reliability of service transmission.

[0013] Combined with the first aspect above, in a possible implementation, the transmission network can be an OTN, and the source-side proxy node and the destination-side proxy node are OTN devices.

[0014] Based on this, the packet loss rate of data transmission can be reduced, the number of retransmissions can be decreased, and the impact on throughput can be reduced.

[0015] Combined with the first aspect above, in a possible implementation, the data packet is transmitted using the RDMA technology, and the source-side node and the destination-side node are configured in the RDMA RC transmission mode.

[0016] Based on this, the method of this application can be used to improve the throughput of RDMA transmission.

[0017] In a second aspect, a data transmission method is provided, which can be applied to the source-side proxy node. The data transmission method may include: the source-side proxy node receives a data packet from the source-side node and forwards the data packet into the transmission network. The source-side proxy node may also send a first ACK packet corresponding to the data packet to the source-side node. Wherein, the source address of the data packet is the source-side node, the destination address of the data packet is the destination-side node, and the source-side proxy node and the transmission network are located between the source-side node and the destination-side node.

[0018] Combined with the second aspect above, in a possible implementation, the transmission network is an OTN, and the source-side proxy node is an OTN device.

[0019] Combined with the second aspect above, in a possible implementation, the data packet is transmitted using the RDMA technology, and the source-side node and the destination-side node are configured in the RDMA RC transmission mode.

[0020] In a third aspect, a data transmission method is provided, which can be applied to the destination-side proxy node. The data transmission method may include: the destination-side proxy node receives a data packet from the transmission network and forwards the data packet to the destination-side node. The destination-side proxy node may also intercept a second ACK packet from the destination-side node. Wherein, the source address of the data packet is the source-side node, the destination address of the data packet is the destination-side node, the transmission network and the destination-side proxy node are located between the source-side node and the destination-side node, and the destination address of the second ACK packet is the destination-side node.

[0021] Fourthly, a communication system is provided. The communication system may include a source node, a destination node, a source proxy node, a destination proxy node, and a transmission network. The source node is connected to the destination node through the source proxy node, the transmission network, and the destination proxy node in sequence. The source node is used to send a data packet to the source proxy node, and the destination address of the data packet is the destination node. The source proxy node is used to forward the data packet to the transmission network and to send a first ACK packet corresponding to the data packet to the source node. The data transmission network is used to transmit the data packet to the destination proxy node. The destination proxy node is used to forward the data packet to the destination node. The destination node is used to receive the data packet and to send a second ACK packet corresponding to the data packet to the destination proxy node. The destination address of the second ACK packet is the source node. The destination proxy node is further used to intercept the second ACK packet from the destination node.

[0022] In combination with the above fourth aspect, in a possible implementation, the destination node is further used to perform data integrity check on the data packet. The destination node is further used to send a retransmission request packet to the source node when the data integrity check fails. The retransmission request packet is used to request retransmission of the data that the destination node has not received. The source node is further used to obtain the data that the destination node has not received according to the retransmission request packet. The source node is further used to send a retransmission data packet to the destination node, and the retransmission data packet carries the data that the destination node has not received.

[0023] In combination with the above fourth aspect, in a possible implementation, the data that the destination node has not received is persistently stored in the storage unit of the source node. The source node is further used to obtain the data that the destination node has not received, including: the source node is further used to obtain the data that the destination node has not received from the storage unit.

[0024] In combination with the above fourth aspect, in a possible implementation, the data that the destination node has not received is persistently stored in an external storage device. The source node is further used to obtain the data that the destination node has not received, including: the source node is further used to obtain the data that the destination node has not received from the external storage device.

[0025] In combination with the above fourth aspect, in a possible implementation, the transmission network is an OTN, and the source proxy node and the destination proxy node are OTN devices.

[0026] In combination with the above fourth aspect, in a possible implementation, the data packet is transmitted using RDMA technology, and the source node and the destination node are configured in the RDMA RC transmission mode.

[0027] In a fifth aspect, a communication device is provided. The communication device is applied to a source proxy node and may include a transceiver module and an ACK proxy module. The transceiver module is configured to receive a data packet from a source node and forward the data packet into a transmission network. The ACK proxy module is configured to generate a first ACK packet corresponding to the data packet. The transceiver module is further configured to send the first ACK packet corresponding to the data packet to the source node. The source address of the data packet is the source node, the destination address of the data packet is the destination node, and the source proxy node and the transmission network are located between the source node and the destination node.

[0028] In a sixth aspect, a communication device is provided. The communication device is applied to a destination proxy node and includes a transceiver module and an ACK filtering module. The transceiver module is configured to receive a data packet from the transmission network and forward the data packet to the destination node. The transceiver module is further configured to receive a second ACK packet from the destination node. The ACK filtering module is configured to intercept the second ACK packet. The source address of the data packet is the source node, the destination address of the data packet is the destination node, the transmission network and the destination proxy node are located between the source node and the destination node, and the destination address of the second ACK packet is the destination node.

[0029] In a seventh aspect, a communication device is provided. The communication device is applied to a source node and includes an RDMA sending function module and a retransmission function module. The RDMA sending function module is configured to send a data packet to a destination node in RDMA RC mode. The retransmission function module is configured to receive a retransmission request packet from the destination node, where the retransmission request packet is used to request retransmission of data not received by the destination node. The retransmission function module is further configured to instruct the RDMA function module to retransmit the data not received by the destination node.

[0030] In combination with the above seventh aspect, in a possible implementation, the communication device further includes a storage unit, and the data sent from the source node to the destination node is persistently stored in the storage unit. The data not received by the destination node belongs to the data sent from the source node to the destination node.

[0031] In an eighth aspect, a communication device is provided. The communication device is applied to a source node and includes an RDMA receiving function module and an integrity check function module. The RDMA receiving function module is configured to receive a data packet from the source node in RDMA RC mode. The integrity check function module is configured to perform data integrity check on the received data packet. The data integrity check module is further configured to send a retransmission request packet to the source node when the data integrity check fails, where the retransmission request packet is used to request retransmission of data not received by the destination node.

[0032] Combined with the above eighth aspect, in a possible implementation, the communication device further includes a storage unit, and the storage unit can be used to store the data carried by the received data packet. The data integrity check module is used to perform data integrity check on the data from the source node, including: the data integrity check module is used to perform data integrity check on the data stored in the storage unit.

[0033] In a ninth aspect, a communication device is provided, including: a processor and a memory; the memory is used to store program instructions, and when the device runs, the processor executes the program instructions stored in the memory, so that the device executes the data transmission method described in any one of the above first aspect, second aspect or third aspect.

[0034] Combined with the above ninth aspect, in a possible implementation, the device further includes a communication interface; the communication interface is used for the device to communicate with other devices. Exemplarily, the communication interface can be a transceiver, an input / output interface, an interface circuit, an output circuit, an input circuit, a pin or a related circuit, etc.

[0035] In a tenth aspect, a computer-readable storage medium is provided, on which program instructions are stored, and when it runs on a computer, it enables the computer to execute the data transmission method described in any one of the above first aspect, second aspect or third aspect.

[0036] Among them, the technical effects brought by any one of the design methods in the second aspect to the tenth aspect can refer to the technical effects brought by different design methods in the first aspect, which will not be elaborated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] Figure 1 It is a schematic structural diagram of a communication system provided by an embodiment of the present application;

[0038] Figure 2 It is a schematic flowchart of a data transmission method provided by an embodiment of the present application;

[0039] Figure 3 It is a schematic flowchart of another data transmission method provided by an embodiment of the present application;

[0040] Figure 4 It is a schematic structural diagram of a communication device provided by an embodiment of the present application;

[0041] Figure 5 It is a schematic structural diagram of another communication device provided by an embodiment of the present application;

[0042] Figure 6 It is a schematic structural diagram of yet another communication device provided by an embodiment of the present application;

[0043] Figure 7 Schematic structural diagram of another communication device provided by an embodiment of the present application;

[0044] Figure 8 Schematic structural diagram of another communication device provided by an embodiment of the present application. Detailed implementation manners

[0045] In order to make the objectives, technical means and advantages of the present application clearer and more understandable, the following further describes the present application in detail with reference to the accompanying drawings.

[0046] Figure 1 Schematic structural diagram of a communication system provided by the present application, as Figure 1 shown, the RDMA communication network may include a source node 101, a destination node 102, a source proxy node 103, a destination proxy node 104, and a transmission network 105. The source node 101 may be connected to the destination node 102 through the source proxy node 103, the transmission network 105, and the destination proxy node 104 in sequence. Among them, the source node 101 and the source proxy node 103 are on the same side of the transmission network 105, and the destination node 102 and the destination proxy node 104 are on the same side of the transmission network 105.

[0047] In Figure 1 the shown communication system, the source node 101 may be used to send data packets to the destination node 102. The source proxy node 103 may be used to forward the data packets to the transmission network 105, and may be used to send an acknowledgment ACK packet corresponding to the data packets to the source node 101. The data transmission network 105 may be used to transmit the data packets to the destination proxy node 104. The destination proxy node 104 may be used to forward the data packets to the destination node 102. The destination node 102 may be used to send an ACK packet corresponding to the data packets to the source node 101 after receiving the data packets. The destination proxy node 104 may also be used to intercept the ACK packet corresponding to the data packets from the destination node 102.

[0048] According to the above Figure 1 shown communication system and the functions and roles of the nodes therein, it can be known that: after the source node 101 sends out data packets, the source proxy node 103 closer to the source node 101 can replace the destination node 102 to feedback an ACK packet to the source node 101. Compared with the traditional data transmission process, the source node 101 of the present application can receive the ACK packet earlier, so that subsequent data packets can be sent earlier, thereby improving the throughput of data transmission. And, the ACK packet feedback by the destination node 102 can be intercepted by the destination proxy node 104, and the source node 101 will not receive the ACK packet repeatedly.

[0049] Figure 1 The specific implementation of data transmission by each node in the communication system shown will be described in detail in the data transmission method later, and will not be elaborated here for the time being.

[0050] It should be understood that the network architecture and service scenarios described in the embodiments of this application are for more clearly explaining the technical solutions of the embodiments of this application, and do not constitute a limitation on the technical solutions provided in the embodiments of this application. Those of ordinary skill in the art can know that with the evolution of the network architecture and the emergence of new service scenarios, the technical solutions provided in the embodiments of this application are equally applicable to similar technical problems.

[0051] Next, in combination with Figure 1 the communication system shown, the data transmission method provided in the embodiments of this application will be described. The actions, terms, etc. involved among the embodiments of this application can be referred to each other without limitation. The message names or parameter names in the messages in the embodiments of this application are only examples, and other names can also be used in specific implementations without limitation.

[0052] Figure 2 It is a schematic flowchart of a data transmission method 200 provided by this application. As Figure 2 shown, the data transmission method 200 may include S201 to S206:

[0053] S201. The source node sends a data packet to the source proxy node, and the destination address of the data packet is the destination node.

[0054] Optionally, when the source node sends a data packet, it may specifically include: First, the source node may cache the data to be sent to the destination node in the send queue. After that, the source node encapsulates the data in the send queue in a data packet and sends it out.

[0055] S202. The source proxy node forwards the data packet to the transmission network and sends a first ACK packet corresponding to the data packet to the source node.

[0056] Among them, the first ACK packet is used to indicate that the data packet has been successfully received, and the destination address of the first ACK packet is the source node.

[0057] Optionally, after receiving the first ACK packet, the source node may consider that the data packet it sent has been successfully received, and then it may release the data cached in the current send queue.

[0058] S203. The data transmission network transmits the data packet to the destination proxy node.

[0059] S204. The destination proxy node forwards the data packet to the destination node.

[0060] S205. The destination node receives the data packet and sends a second ACK packet corresponding to the data packet to the destination proxy node.

[0061] Among them, the first ACK packet is used to indicate that the data packet has been successfully received, and the destination address of the second ACK packet is the source node.

[0062] S206. The destination proxy node intercepts the second ACK packet.

[0063] Among them, the destination proxy node intercepting the second ACK packet specifically means that after receiving the second ACK packet, the destination proxy node discards the second ACK packet and does not forward the second ACK packet.

[0064] Based on the method of S201 to S206 above, after the source node sends out the data packet, the source proxy node on the data packet forwarding path can feedback an ACK packet (the above first ACK packet) to the source node. And the distance between the source proxy node and the source node is closer than the distance between the destination node and the source node. Therefore, compared with the method of the destination node feedbacking the ACK packet to the source node, the method of this application can enable the source node to receive the ACK packet earlier. The source node receiving the ACK packet earlier can release the data cached in the sending queue earlier, and thus send subsequent data earlier. Therefore, the throughput rate of data transmission can be improved.

[0065] Moreover, the destination proxy node in the embodiment of this application will also intercept the ACK packet (the above second ACK packet) feedbacked by the destination node to the source node, so as to avoid the source node receiving the ACK packet repeatedly, and further avoid the source node releasing the cache repeatedly. Based on this, the method of this application will not affect the ACK mechanism of the source node.

[0066] In addition, in the existing message sending and ACK message receiving process, the farther the distance from the source node to the destination node, the longer the time interval from the source node sending out the data packet to receiving the ACK packet, and the lower the throughput rate of data transmission. And the solution of this application is that the source proxy node feedbacks the ACK packet to the source node. Therefore, the time interval from the source node sending out the data packet to receiving the ACK packet has nothing to do with the distance between the source node and the destination node. Based on this, the farther the distance between the source node and the destination node, the more significant the improvement in throughput rate brought by the solution of this application compared with the existing solution.

[0067] Optionally, as Figure 3 shown, the above data transmission method 200 may further include S207 to S210:

[0068] S207. The destination node performs data integrity check on the received data packet.

[0069] Optionally, the destination node performing data integrity check on the received data packet may include at least one of the following: checking whether there is any packet loss in the data packet, and detecting whether the data carried by the data packet is complete.

[0070] As a possible implementation, before sending a data packet to the destination node, the source node may negotiate with the destination node about the data packet to be sent, and the destination node can know which data packets will be received. In this case, the data integrity check performed by the destination node may include: checking whether there is any packet loss in the data packet. Exemplarily, the data packets sent by the source node to the destination node may be numbered continuously, and the destination node can determine whether there is any packet loss according to whether the numbers of the received data packets are continuous.

[0071] As another possible implementation, a complete data block can be split by the source node into multiple data packets and sent to the destination node. Correspondingly, after receiving multiple data packets, the destination node needs to recombine them into a complete data block. In this case, the data integrity check performed by the destination node may include: checking whether the data carried by the received data packets can be recombined into a complete data block.

[0072] It should be understood that there may be other implementation manners for the destination node to perform data integrity check on the data from the source node, and the present application does not limit this.

[0073] Optionally, the destination node may perform data integrity check once every certain period of time. For example, after receiving multiple data packets, it may perform data integrity check on these multiple data packets.

[0074] S208. When the data integrity check fails, the destination node sends a retransmission request packet to the source node, and the retransmission request packet is used to request retransmission of the data that the destination node has not received.

[0075] Among them, the data that the retransmission request packet requests to retransmit and that the destination node has not received is the data carried by the data packet with packet loss among the data packets already sent by the source node.

[0076] In a possible implementation, after the destination node detects each data packet with packet loss, it sends a retransmission request packet to the source node. In this case, the data that this retransmission request packet requests to retransmit and that the destination node has not received is the data in the data packet with packet loss.

[0077] In another possible implementation, the destination node may send a retransmission request message to the source node after detecting multiple data packets with packet loss. In this case, the data that the retransmission request message requests to retransmit and that the destination node has not received may include the data in multiple data packets with packet loss.

[0078] Optionally, the transmission link of the retransmission request message may be the same as or different from the transmission link of the data packet. This application does not limit this.

[0079] As a possible implementation, when the source node and the destination node transmit data packets through the RDMA technology, the transmission link of the retransmission request message may be different from the transmission link of the data packet. The retransmission request message may not be transmitted to the source node through the above-mentioned destination proxy node, transmission network, and source proxy node, but may be transmitted through other communication links established between the destination node and the source node. This application does not limit this.

[0080] S209. The source node obtains again the data that the destination node has not received according to the retransmission request message.

[0081] In the embodiments of this application, for the data that the source node has already sent to the destination node (including the data that the destination node has not received), the source node can still obtain it again.

[0082] In a possible case, the data sent by the source node to the destination node is persistently stored in an external storage device. When the source node sends data to the destination node, it will first obtain the data to be sent from the external storage device, and then encapsulate it into a data packet and send it to the destination node. In this case, when the source node receives a retransmission request message from the destination node, it can obtain again from the external storage device the data that the destination node has not received indicated by the retransmission request message.

[0083] In another possible case, the data sent by the source node to the destination node is persistently stored in the storage unit local to the source node. When the source node sends data to the destination node, it will first obtain the data to be sent from the local storage unit, and then encapsulate it into a data packet and send it to the destination node. In this case, when the source node receives a retransmission request message from the destination node, it can obtain again from the local storage unit the data that the destination node has not received indicated by the retransmission request message.

[0084] S210. The source node sends a retransmission data packet to the destination node, and the retransmission data packet carries the data that the destination node has not received.

[0085] Optionally, if the data not received by the destination node includes the data carried by multiple lost data packets, then in S210, the source node may send multiple retransmission data packets, where the multiple retransmission data packets correspond one-to-one to the multiple lost data packets, and the content of each retransmission data packet is the same as that of the corresponding lost data packet.

[0086] Through the methods of S207 to S210 above, the destination node can check whether packet loss occurs during data transmission and can instruct the source node to retransmit the data not received by the destination node. Further, the source node can retransmit the data not received by the destination node. Based on this, it can be ensured that all the data sent by the source node is received by the destination node, ensuring the reliability of service transmission.

[0087] Optionally, the transmission process of the retransmission data packet can be the same as that of the data packet in S201 to S206. In S210, when the source node sends a retransmission data packet to the destination node, it may include: the source node sends a retransmission data packet to the source proxy node. The retransmission data packet can then be transmitted to the destination node through the source proxy node, the transmission network, and the destination proxy node.

[0088] As a possible situation, as Figure 3 shown, after S210 above, the data transmission method 200 may further include S211 to S215:

[0089] S211. The source proxy node forwards the retransmission data packet from the source node to the transmission network and sends a third ACK packet corresponding to the retransmission data packet to the source node.

[0090] Among them, the third ACK packet is used to indicate that the retransmission data packet has been successfully received, and the destination address of the third ACK packet is the source node.

[0091] S212. The data transmission network transmits the retransmission data packet to the destination proxy node.

[0092] S213. The destination proxy node forwards the retransmission data packet to the destination node.

[0093] S214. The destination node receives the retransmission data packet and sends a fourth ACK packet corresponding to the retransmission data packet to the destination proxy node.

[0094] Among them, the fourth ACK packet is used to indicate that the retransmission data packet has been successfully received, and the destination address of the fourth ACK packet is the source node.

[0095] S215. The destination proxy node intercepts the ACK packet corresponding to the retransmission data packet from the destination node.

[0096] The above S211 to S215 may refer to the relevant descriptions of S202 to S206, which will not be elaborated here.

[0097] It should be understood that the data transmission method 200 described above can be applied to Figure 1 the communication system shown. The source node in the above S201 to S206 can be Figure 1 the source node 101 in, and the destination node in the above S201 to S206 is Figure 1 the destination node 102 in. The source proxy node in the above S201 to S206 is Figure 1 the source proxy node 103 in. The destination proxy node in the above S201 to S206 is Figure 1 the destination proxy node 104 in. The transmission network in the above S201 to S206 is Figure 1 the transmission network 105 in, which is hereby explained uniformly.

[0098] Optionally, the distance between the source proxy node and the source node is much smaller than the distance between the destination node and the source node. It should be understood that the closer the distance between the source proxy node and the source node, the shorter the time interval from when the source node sends out the data packet to when it receives the first ACK packet, and thus the higher the data transmission throughput rate.

[0099] Optionally, the distance between the destination proxy node and the destination node is also much smaller than the distance between the source node and the destination node.

[0100] Exemplarily, the source proxy node can be deployed in the same computer room as the source node and connected by a network cable. The destination proxy node can be deployed in the same computer room as the destination node and connected by a network cable. The source proxy node and the destination proxy node are connected by a long-distance transmission network.

[0101] Optionally, the transmission network between the source proxy node and the destination proxy node can be a highly reliable transmission network to reduce the packet loss probability, reduce the number of data retransmissions, and reduce the impact on the data transmission throughput rate. As a possible implementation, the transmission network adopted in this application can be an optical transport network (OTN), and the source proxy node and the destination proxy node can be OTN devices.

[0102] Optionally, the destination proxy node can be configured to have the ability to identify the second ACK message, so that the destination proxy node can intercept the second ACK message fed back by the destination node. As a possible implementation, the destination proxy node can identify the second ACK message by means of an access control list (ACL), a message matching template, etc.

[0103] Optionally, the source node and the destination node in the communication system provided by this application can be nodes with remote direct memory access (RDMA) capabilities. The source node sending data messages to the destination node can be implemented using RDMA technology. The source node and the destination node can be configured in the reliable connected (RC) transmission mode of RDMA.

[0104] It should also be noted that in the transmission process defined by the current RDMA technology, packet loss will cause a significant decrease in the transmission performance and throughput of RDMA, which is related to the retransmission mechanism of RDMA. Exemplarily, the transmission and retransmission mechanism of traditional RDMA is as follows: The send queue of the source node currently caches 5 data packets, and their packet sequence numbers (PSNs) are 1 to 5 in sequence. The source node can send out these 5 data packets in sequence. Assume that the data packet with PSN 2 is lost during transmission. Then, the destination node can successfully receive the data packet with PSN 1 and can reply with an ACK message with PSN 1. After receiving the data packet with PSN 1, the destination node can also receive 3 data packets with PSNs 3 to 5. However, since the PSNs of the received data packets are not continuous, the destination node will discard the 3 data packets with PSNs 3 to 5 and will reply with a not acknowledge (NACK) message with PSN 2. After receiving the NACK message with PSN 2, the source node will retransmit the data packets with PSNs 2 to 5.

[0105] It can be seen that in the traditional RDMA mechanism, packet loss will cause multiple consecutive data packets to not be released from the send queue in time, blocking the send queue. In addition, the time taken to retransmit multiple data packets will also be relatively long. In short, packet loss will cause a significant reduction in both the throughput and transmission efficiency of RDMA.

[0106] In the solution provided by this application, the source - side proxy node will always feedback the ACK packet corresponding to the sent data packet to the source - side node. The source - side node will not receive a NACK packet, so it will not be triggered by the NACK packet to the re - transmission mechanism, resulting in performance degradation. Moreover, when data is lost, the destination - side node will not send a NACK packet either. Instead, it will feedback a re - transmission request packet to the source - side node. The source - side node will only re - transmit the lost data according to the re - transmission request packet and will not transmit extra data. In addition, the re - transmission process of this application is inserted into the process of newly transmitted data and will not block the sending queue. Therefore, in the solution provided by this application, packet loss will not have a great impact on the throughput rate and transmission efficiency of RDMA, and the stability of the RDMA transmission in the solution of this application is better.

[0107] Figure 4 FIG. 4 is a schematic structural diagram of a communication device 40 provided by an embodiment of this application. The communication device 40 can be the source - side node in the above - mentioned method embodiment, or a component that can be used for the source - side node. As Figure 4 shown, the communication device 40 may include a sending function module 401 and a re - transmission function module 402. The sending function module 401 can be used to: send data packets, receive the first ACK packet corresponding to the data packet, and release the data cached in the sending queue according to the first ACK packet. The re - transmission function module 402 can be used to: receive a re - transmission request packet, and instruct the sending function module 401 to perform re - transmission according to the re - transmission request packet. Among them, the sending function module 401 can perform the relevant behaviors of the source - side node sending data packets as described above, and the re - transmission function module 402 can perform the relevant behaviors of the source - side node performing data re - transmission as described above. The specific implementation can refer to the description in the above - mentioned method embodiment and will not be elaborated here.

[0108] Optionally, the sending function module 401 can run an RDMA protocol stack. The sending function module 401 can use RDMA technology to send data packets, and the sending function module 401 is configured in the RDMA RC mode. In this case, the sending function module 401 can be called an RDMA sending function module, which is hereby explained.

[0109] Optionally, the communication device 40 may further include a storage unit 403. The data to be sent by the sending function module 401 can be persistently stored in the storage unit 403. The sending function module 401 for sending data packets may include: the sending function module 401 obtains the data to be sent from the storage unit 403, and then encapsulates the obtained data in a data packet and sends it out.

[0110] Figure 5 FIG. 5 is a schematic structural diagram of a communication device 50 provided by an embodiment of this application. The communication device 50 can be the destination - side node in the above - mentioned method embodiment, or a component that can be used for the destination - side node. AsFigure 5 As shown in the figure, the communication device 50 may include a receiving function module 501 and an integrity check function module 502. The receiving function module 501 may be configured to: receive data packets and send a second ACK packet corresponding to the data packet. The integrity check function module 502 may be configured to: perform data integrity check on the received data packet and send a retransmission request packet when the data integrity check fails. Among them, the receiving function module 501 may perform the related actions of the destination node receiving the data packet as described above, and the integrity check function module 502 may perform the related actions of the destination node performing data integrity check as described above. The specific implementation may refer to the description in the foregoing method embodiments and will not be elaborated herein.

[0111] Optionally, the receiving function module 501 may run an RDMA protocol stack. The receiving function module 501 may receive data packets using RDMA technology, and the receiving function module 501 is configured in the RDMA RC mode. In this case, the receiving function module 501 may be referred to as an RDMA receiving function module, which is hereby noted.

[0112] Optionally, the communication device 50 may further include a storage unit 503. The storage unit 503 may be configured to store the data carried by the data packets received by the receiving function module 501. The integrity check function module 502 performing integrity check on the received data may include: the integrity check function module 502 performing integrity check on the data stored in the storage unit 503.

[0113] Figure 6 The figure is a schematic structural diagram of a communication device 60 provided in an embodiment of the present application. The communication device 60 may be the source proxy node in the foregoing method embodiment, or a component that can be used for the source proxy node. As Figure 6 shown in the figure, the communication device 60 may include a transceiver module 601 and an ACK proxy module 602. The transceiver module 601 may be configured to receive data packets from the source node and forward the data packets to the destination node. The ACK proxy module 602 may be configured to generate a first ACK packet corresponding to the data packet. The transceiver module 601 may also be configured to send the first ACK packet corresponding to the data packet generated by the ACK proxy module 602 to the source node.

[0114] Optionally, in the process of data retransmission, the transceiver module 601 may also be configured to receive retransmission data packets from the source node and forward the retransmission data packets to the transmission network. The ACK proxy module 602 may also be configured to generate a third ACK packet corresponding to the retransmission data packet.

[0115] Figure 7FIG. 0 is a schematic structural diagram of a communication device 70 provided by an embodiment of the present application. The communication device 70 may be the destination proxy node in the above method embodiment, or a component that can be used for the destination proxy node. As Figure 7 shown, the communication device 70 may include a transceiver module 701 and an ACK filtering module 702. The transceiver module 701 may be configured to receive data packets from a source node and forward the data packets to a destination node. The transceiver module 701 may also be configured to receive a second ACK packet corresponding to the data packet from the destination node. The ACK filtering module 702 may be configured to intercept the second ACK packet corresponding to the data packet. Among them, the ACK filtering module 702 may be configured to identify the second ACK packet, and the implementation manner of identifying the second ACK packet may refer to the relevant description above.

[0116] Optionally, in the process of data retransmission, the transceiver module 701 may also be configured to receive a retransmitted data packet from a transmission network and forward the retransmitted data packet to the destination node. The ACK filtering module 702 may also be configured to intercept a fourth ACK packet from the destination node.

[0117] It should be understood that in order to implement the functions of the above source node, the communication device 40 includes corresponding hardware structures and / or software modules for performing each function. In order to implement the functions of the above destination node, the communication device 50 includes corresponding hardware structures and / or software modules for performing each function. In order to implement the functions of the above source proxy node, the communication device 60 includes corresponding hardware structures and / or software modules for performing each function. In order to implement the functions of the above destination proxy node, the communication device 70 includes corresponding hardware structures and / or software modules for performing each function. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of the examples described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a certain function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present application.

[0118] It should be noted that all relevant contents of each step involved in the above method embodiment can be cited in the function description of the corresponding functional module, and will not be repeated here. Since the communication devices 40, 50, 60, and 70 provided in this embodiment can execute the above data transmission method, the technical effects that can be obtained can refer to the above method embodiment and will not be repeated here.

[0119] Optionally, the foregoing description of the structures of the source node, the destination node, the source proxy node, and the destination proxy node in the embodiments of the present application are only some examples. In practical applications, the structures of each node may also have other integration methods. For example, the functional modules included in the nodes described above are only a kind of logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms. It should be understood that no matter what integration method the node adopts, as long as it can realize the functions of the corresponding nodes, it is considered to be within the scope of protection of the present application.

[0120] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0121] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0122] Those of ordinary skill in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0123] Optionally, Figures 4 to 7 The communication device shown can be used Figure 8 The structure shown or includes Figure 8 Parts shown. Figure 8 A schematic diagram of the structure of a communication device 80 provided in an embodiment of the present application is shown in FIG. Figure 8 As shown, the communication device 80 includes one or more processors 801, a communication line 802, and at least one communication interface ( Figure 8 The example in which the communication interface 803 and a processor 801 are included is merely exemplary), and a memory 804 may also be included optionally.

[0124] The processor 801 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits for controlling the execution of the program of the solution of the present application.

[0125] The communication line 802 may include a path for communication between different components.

[0126] The communication interface 803 may be a transceiver module for communicating with other devices or communication networks, such as Ethernet, RAN, wireless local area networks (WLAN), etc. For example, the transceiver module may be a device such as a transceiver or a transceiver. Optionally, the communication interface 803 may also be a transceiver circuit located within the processor 801 for realizing the signal input and signal output of the processor.

[0127] The memory 804 may be a device with a storage function. For example, it may be a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or it may also be an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but not limited thereto. The memory may exist independently and be connected to the processor through the communication line 802. The memory may also be integrated with the processor.

[0128] In a specific implementation, as an embodiment, the processor 801 may include one or more CPUs, such as Figure 8 CPU0 and CPU1 in

[0129] In a specific implementation, as an embodiment, the communication device 80 may include multiple processors, such as Figure 8The processors 801 and 807 therein. Each of these processors can be a single-core processor or a multi-core processor. The processors here can include but are not limited to at least one of the following: various computing devices that run software, such as a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), a microcontroller unit (MCU), or an artificial intelligence processor, etc. Each computing device can include one or more cores for executing software instructions to perform operations or processing.

[0130] In a specific implementation, as an embodiment, the communication device 80 may further include an output device 805 and an input device 806. The output device 805 communicates with the processor 801 and can display information in various ways. For example, the output device 805 can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device 806 communicates with the processor 801 and can receive user input in various ways.

[0131] Optionally, the processing or control actions of the source node, destination node, source proxy node, and destination proxy node in the above method embodiments can be executed by the processor 801.

[0132] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using a software program, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center in a wired manner (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wirelessly (such as infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that contains one or more media integrated therein. The available medium can be a magnetic medium (such as a floppy disk, hard disk, magnetic tape), an optical medium (such as a digital versatile disc (DVD)), or a semiconductor medium (such as a solid state disk (SSD)), etc.

[0133] As used in this application, the terms "component", "module", "system", etc. are intended to refer to computer-related entities, which can be hardware, firmware, a combination of hardware and software, software, or software in operation. For example, a component can be, but is not limited to: a process running on a processor, a processor, an object, an executable file, a thread in execution, a program, and / or a computer. As an example, an application running on a computing device and the computing device can both be components. One or more components can exist in a process and / or thread in execution, and the components can be located in one computer and / or distributed between two or more computers. In addition, these components can execute from various computer-readable media having various data structures thereon. These components can communicate in a local and / or remote process manner through signals such as according to one or more data packets (for example, data from one component that interacts with another component in a local system, a distributed system, and / or communicates with other systems in a signal manner through a network such as the Internet).

[0134] Aspects, embodiments, or features of the present application are presented in the context of a system that may include multiple devices, components, modules, and the like. It should be understood and appreciated that each system may include additional devices, components, modules, and the like, and / or may not include all of the devices, components, modules, and the like discussed in connection with the figures. Additionally, combinations of these solutions may be used.

[0135] In addition, in the embodiments of the present application, the term "exemplary" is used to mean an example, illustration, or demonstration. Any embodiment or design described as "exemplary" in the present application should not be construed as being more preferred or advantageous than other embodiments or designs. Rather, the use of the term "exemplary" is intended to present concepts in a concrete manner.

[0136] In the embodiments of the present application, the terms "information", "signal", and "message" may sometimes be used interchangeably. It should be noted that when the differences are not emphasized, their intended meanings are the same. The terms "of", "corresponding", and "corresponding to" may sometimes be used interchangeably. It should be noted that when the differences are not emphasized, their intended meanings are the same. The terms "system" and "network" may sometimes be used interchangeably. When the differences are not emphasized, their intended meanings are the same. For example, a "communication network" is also referred to as a "communication system".

[0137] The network architectures and service scenarios described in the embodiments of the present application are for the purpose of more clearly illustrating the technical solutions of the embodiments of the present application, and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. As is known to those of ordinary skill in the art, with the evolution of network architectures and the emergence of new service scenarios, the technical solutions provided by the embodiments of the present application are equally applicable to similar technical problems.

[0138] The above is only the specific implementation manner of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art within the technical scope disclosed by the present application can easily think of changes or substitutions, which should all be covered by the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A data transmission method, characterized in that, Applied to a communication system, the communication system includes a source node, a destination node, a source proxy node, a destination proxy node, and a transmission network. The source node is connected to the destination node through the source proxy node, the transmission network, and the destination proxy node in sequence; the method includes: The source node sends a data packet to the source proxy node, and the destination address of the data packet is the destination node; The source proxy node forwards the data packet to the transmission network and sends a first acknowledgment ACK packet corresponding to the data packet to the source node; The data transmission network transmits the data packet to the destination proxy node; The destination proxy node forwards the data packet to the destination node; The destination node receives the data packet and sends a second ACK packet corresponding to the data packet to the destination proxy node; wherein, the destination address of the second ACK packet is the source node; The destination proxy node intercepts the second ACK packet.

2. The method according to claim 1, wherein The method further includes: The destination node performs a data integrity check on the data packet; If the data integrity check fails, the destination node sends a retransmission request packet to the source node, and the retransmission request packet is used to request retransmission of the data that the destination node has not received; The source node obtains the data that the destination node has not received according to the retransmission request packet; The source node sends a retransmission data packet to the destination node, and the retransmission data packet carries the data that the destination node has not received.

3. The method according to claim 2, wherein The data that the destination node has not received is persistently stored in the storage unit of the source node; The source node obtaining the data that the destination node has not received includes: The source node obtains the data that the destination node has not received from the storage unit.

4. The method according to claim 2, wherein The data that the destination node has not received is persistently stored in an external storage device; The source node obtaining the data that the destination node has not received includes: The source node obtains the data that the destination node has not received from the external storage device.

5. The method according to any one of claims 1 to 4, characterized in that The transmission network is an optical transmission network OTN, and the source proxy node and the destination proxy node are OTN devices.

6. The method according to any one of claims 1-5, characterized in that The data packet is transmitted using the Remote Direct Memory Access RDMA technology, and the source node and the destination node are configured in the RDMA reliable connection RC transmission mode.

7. A communication system, characterized in that, The communication system includes a source node, a destination node, a source proxy node, a destination proxy node, and a transmission network. The source node is connected to the destination node through the source proxy node, the transmission network, and the destination proxy node in sequence; The source node is used to send a data packet to the source proxy node, and the destination address of the data packet is the destination node; The source proxy node is used to forward the data packet to the transmission network and to send a first acknowledgment ACK packet corresponding to the data packet to the source node; The data transmission network is used to transmit the data packet to the destination proxy node; The destination proxy node is used to forward the data packet to the destination node; The destination node is used to receive the data packet and send a second ACK packet corresponding to the data packet to the destination proxy node; wherein, the destination address of the second ACK packet is the source node; The destination proxy node is further used to intercept the second ACK packet.

8. The communication system according to claim 7, wherein The destination node is further used to perform data integrity check on the data packet; The destination node is further used to send a retransmission request packet to the source node when the data integrity check fails, and the retransmission request packet is used to request retransmission of the data not received by the destination node; The source node is further used to obtain the data not received by the destination node according to the retransmission request packet; The source node is further used to send a retransmission data packet to the destination node, and the retransmission data packet carries the data not received by the destination node.

9. The communication system according to claim 8, characterized in that The data not received by the destination node is persistently stored in the storage unit of the source node; The source node is further used to obtain the data not received by the destination node, including: The source node is further used to obtain the data not received by the destination node from the storage unit.

10. The communication system according to claim 8, characterized in that, The data not received by the destination node is persistently stored in an external storage device; The source node is further used to obtain the data not received by the destination node, including: The source node is further used to obtain the data not received by the destination node from the external storage device.

11. The communication system according to any one of claims 7 to 10, characterized in that, The transmission network is an optical transmission network OTN, and the source proxy node and the destination proxy node are OTN devices.

12. The communication system according to any one of claims 7-11, characterized in that, The data packet is transmitted by using the remote direct memory access RDMA technology, and the source node and the destination node are configured in the RDMA reliable connection RC transmission mode.

13. A data transmission method, characterized in that, Applied to a source proxy node, the method includes: The source proxy node receives a data packet from the source node and forwards the data packet into the transmission network; wherein, the destination address of the data packet is the destination node, and the source node is connected to the destination node through the source proxy node and the transmission network; The source proxy node sends a first acknowledgment ACK packet corresponding to the data packet to the source node.

14. The method according to claim 13, characterized in that The transmission network is an optical transmission network OTN, and the source proxy node is an OTN device.

15. The method according to claim 13 or 14, characterized in that The data packet is transmitted by using the remote direct memory access RDMA technology, and the source node and the destination node are configured in the RDMA reliable connection RC transmission mode.

16. A communication device, characterized in that, Applied to a source proxy node, the communication device includes a transceiver module and an acknowledgment ACK proxy module; The transceiver module is used to receive data packets from the source end node and forward the data packets to the transmission network; wherein, the destination address of the data packet is the destination end node, and the source end node is connected to the destination end node through the source proxy node and the transmission network; The ACK proxy module is used to generate a first ACK packet corresponding to the data packet; The transceiver module is further used to send the first ACK packet to the source end node.