Data transmission method based on bus technology, and related apparatus
By uniformly managing message serial numbers and feedback information on the aggregated network card, the problem of network card cache release is solved, and the reliability of data transmission and effective cache release is achieved.
Patent Information
- Application Number
- PCT/CN2024/118275
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-30
- Filing Date
- 2024-09-11
- Publication Date
- 2025-08-14
AI Technical Summary
After multiple physical network cards are aggregated into logical network cards through bus switches, the sending path and receiving path are inconsistent, resulting in the cache occupancy in the network card that cannot be released, and cache overflow problems occur.
By uniformly managing the serial number and feedback information of the packets on the aggregated network card, we ensure reliable transmission of data between network devices, and notify the corresponding network card to release the cache after confirming the sending path.
Effectively ensure that the cached data in the physical network card is released, avoid cache overflow, and ensure the reliability of data transmission.
Smart Images

Figure CN2024118275_14082025_PF_FP_ABST
Abstract
Description
A data transmission method and related device based on bus technology
[0001] This application claims priority to the Chinese patent application filed with the State Intellectual Property Office of China on February 8, 2024, with application number 202410178075.2 and application name “A message forwarding method and device based on bus switching technology” and the Chinese patent application filed with the State Intellectual Property Office of China on April 30, 2024, with application number 202410543777.6 and application name “A data transmission method and related device based on bus technology”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of computer technology, and in particular to a data transmission method and related devices based on bus technology. Background Art
[0003] With the development of public cloud services, the demand for increased network bandwidth is increasing. Traditional network cards must be bound to the host, and the network card is mapped to the host's memory address space for access. When there are multiple network cards, the application layer needs to specify which network card to use as the traffic egress. With the development of peer-to-peer access buses (Peer2Peer) such as CXL and NVLink, the aggregation of multiple network card devices has become a common scenario. However, when multiple physical network cards are aggregated into a logical network card through a bus switch, the aggregated logical network card has only one IP address. When data needs to be sent and received through the aggregated logical network card, there will be a corresponding sending path and receiving path. When the sending path and receiving path are on different physical links, the sending and receiving paths of the logical network card for sending and receiving data are inconsistent, which will cause the physical network card that originally had cache occupied and needed to release cache to be unable to release cache.
[0004] Therefore, how to solve the problem that the buffer memory in the network card cannot be released due to the inconsistency between the sending path and the receiving path is a hot topic being studied by those skilled in the art.
[0005] Summary of the Invention
[0006] The embodiments of the present application provide a data transmission method and related devices based on bus technology, which can effectively ensure that the data cached in the physical network card is released and ensure the reliable transmission of data between network devices.
[0007] In a first aspect, an embodiment of the present application provides a data transmission method based on bus technology, which is applied to an aggregated network card, wherein the aggregated network card runs on a first computing device, and the first computing device includes a first network card, a second network card, and a processor, and the method includes: receiving an original message sent by the processor. According to the original message, configuring the first network card so that the first network card sends a first message to the second computing device, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card. Obtaining first feedback information, wherein the first feedback information is used to indicate that the second computing device has successfully received the first message. According to the first feedback information and the first sequence number, configuring the first network card so that the first network card releases the cache of the first message.
[0008] In this application, on the one hand, compared to the existing technology, which requires the first computing device to split the message before sending, and the upper-layer application needs to perceive the number of network cards in the physical layer, this application aggregates multiple physical network cards into an aggregated network card. Subsequent external operations are performed by the application layer and the aggregated network card, without the application layer having to split the message. The upper-layer application does not need to perceive the number of network cards in the physical layer, thereby reducing the network protocol stack overhead. In addition, the maximum bandwidth of the device presented to the upper-layer application in the existing technology is the maximum capacity of the network card / IO Die, while this application aggregates multiple physical network cards into an aggregated network card, which can achieve a maximum bandwidth that exceeds the bandwidth limit of a single physical network card.
[0009] On the other hand, in this application, the serial number of the message and the feedback information from the second computing device are synchronized to the aggregated network card, and are uniformly managed and configured by the aggregated network card. After the aggregated network card confirms the network card corresponding to the sent message, the aggregated network card notifies the network card that sent the corresponding message to release the message cache, which can ensure the reliable transmission of data between network devices and effectively ensure that the data cached in the physical network card is released, avoiding the situation where the network card that needs to release the message cache cannot be released, resulting in cache overflow.
[0010] In a possible implementation of the first aspect, obtaining the first feedback information includes: sending first indication information to the first network interface card or the second network interface card, wherein the first indication information is used to instruct the first network interface card or the second network interface card to send the first feedback information to the aggregation network interface card; and receiving the first feedback information forwarded by the first network interface card or the second network interface card.
[0011] In the above embodiment, the first feedback information obtained by the aggregate network card may be forwarded by the first network card or the second network card according to the first indication information of the aggregate network card.
[0012] In another possible implementation of the first aspect, configuring the first network card based on the first feedback information and the first sequence number so that the first network card releases the cache of the first message includes: sending first reference information to the first network card based on the first feedback information and the first sequence number, wherein the first reference information is information generated based on the first feedback information and the first sequence number, and the first reference information is used to release the cache of the first message.
[0013] In another possible implementation of the first aspect, the first reference information is the first feedback information.
[0014] In the above implementation, the first network card releases the message buffer according to the first feedback information.
[0015] In another possible implementation of the first aspect, the first reference information is second indication information, and the second indication information is used to indicate the release of the cached first message.
[0016] In the above embodiment, the first network interface card releases the message buffer according to the instruction information of the aggregation network interface card, and the first feedback information is still processed on the aggregation network interface card.
[0017] In another possible implementation of the first aspect, the method further includes: obtaining second feedback information, wherein the second feedback information is used to indicate that the second computing device successfully received the second message, the second message including a second sequence number, and the second sequence number is used to indicate that the second message was sent by the second network card. Based on the second feedback information and the second sequence number, second reference information is sent to the second network card, wherein the second reference information is generated based on the second feedback information and the second sequence number, and the second reference information is used to release a cache of the second message.
[0018] In the above embodiment, after the second computing device successfully receives the second message, it can send second feedback information to the aggregated network card. When the first network card receives the second feedback information from the second computing device, it will report the second feedback information to the aggregated network card, which will perform subsequent processing. For example, based on the second feedback information and the second serial number included in the second message, the network card corresponding to the second message is confirmed. After determining that the network card sending the second message is the second network card, the second reference information is sent to the second network card. The second reference information is used to instruct the second network card to release the cache of the second message. This application can efficiently determine the corresponding network card that sends the message through the unified management of the message and feedback information by the aggregated network card, and effectively ensure that the data cached in the physical network card is released.
[0019] In another possible implementation of the first aspect, the method further includes: obtaining third feedback information, wherein the third feedback information is used to indicate that the second computing device failed to successfully receive a third message, the third message including the third sequence number, and the third sequence number is used to indicate that the third message was sent by the first network interface card. Based on the third feedback information and the third sequence number, third reference information is sent to the first network interface card, wherein the third reference information is determined based on the third feedback information, and the third feedback information is used to request the first network interface card to retransmit the third message.
[0020] In the above embodiment, when the second computing device fails to successfully receive the message, the message needs to be retransmitted to ensure reliable transmission of data between network devices.
[0021] Optionally, the present application is not limited to feedback information as message arrival confirmation information (acknowledgement, ACK) or message non-arrival confirmation information (negative acknowledgement, NACK), other network information such as explicit congestion notification (explicit congestion notification, ECN), congestion notification packet (congestion notification packet, CNP), etc., can also use the same processing method as above to achieve information synchronization and operation.
[0022] In another possible implementation of the first aspect, configuring the first network card based on the original message so that the first network card sends a first message to the second computing device includes: sending the original message to the first network card, wherein the original message does not include the first sequence number, and the first message is generated by the first network card based on the original message and the first sequence number.
[0023] In the above embodiment, the sequence number of the message is generated by the first network card.
[0024] In another possible implementation of the first aspect, configuring the first network card based on the original message so that the first network card sends the first message to the second computing device includes: adding a first sequence number to the original message to obtain the first message; and sending the first message to the first network card so that the first network card sends the first message to the second computing device.
[0025] In the above implementation, the aggregation network card generates a sequence number for the message, and sends the obtained first message to the first network card.
[0026] In a second aspect, an embodiment of the present application provides a data transmission method based on bus technology, which is applied to a first network card in a first computing device, wherein the first computing device includes the first network card, a second network card, and a processor, and the aggregated network card runs on the first computing device. The method includes: receiving configuration information sent by the aggregated network card, wherein the configuration information includes an original message or a first message, and the configuration information is used to instruct the first network card to send the first message to the second computing device, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card. Sending the first message to the second computing device according to the configuration information. Receive first feedback information forwarded by the second network card, wherein the first feedback information is used to indicate that the second computing device has successfully received the first message. Release the cache of the first message based on the first feedback information and the first sequence number.
[0027] In the present application, the first feedback information from the second computing device is synchronized among all network cards in the group. For example, after receiving the first feedback information forwarded from the second network card, the first network card confirms whether the message associated with the first feedback information is the message sent by this network card. If it is the message sent by this network card, the cache of the message is directly released. If it is not the message sent by this network card, the first feedback information is forwarded to other network cards. The present application effectively ensures that the data cached in the physical network card is released and that the data is reliably transmitted between network devices through message synchronization between multiple network cards.
[0028] In a possible implementation of the second aspect, the method further includes: receiving second feedback information sent by the second computing device, wherein the second feedback information is used to indicate that the second computing device successfully received the second message, and the second message includes a second sequence number, and the second sequence number is used to indicate that the second message was sent by the second network interface card. If the first network interface card determines that the second message was not sent by the first network interface card, forwarding the second feedback information to the second network interface card or the aggregated network interface card, wherein the second feedback information is used to release a cache of the second message.
[0029] In the above embodiment, a situation is provided in which, after receiving second feedback information from a second computing device, a first network card confirms that the message associated with the second feedback information is not a message sent by the first network card. In this situation, the second feedback information is forwarded to the second network card. This application effectively ensures that data cached in the physical network card is released and that data is reliably transmitted between network devices through message synchronization between multiple network cards.
[0030] In another possible implementation of the second aspect, the method further includes: sending a third message to the second computing device according to the configuration information, wherein the third message includes a third sequence number, and the third sequence number is used to indicate that the third message was sent by the first network interface card; receiving third feedback information forwarded by the second network interface card, wherein the third feedback information is used to indicate that the second computing device failed to successfully receive the third message, and the third feedback information is used to request the first network interface card to retransmit the third message; and resending the third message to the second computing device.
[0031] In the above embodiment, when the second computing device fails to successfully receive the message, the message needs to be retransmitted to ensure reliable transmission of data between network devices.
[0032] In another possible implementation of the second aspect, the configuration information includes the first message, and sending the first message to the second computing device according to the configuration information includes: sending the first message to the second computing device.
[0033] In another possible implementation of the second aspect, the configuration information includes the original message, and sending the first message to the second computing device according to the configuration information includes: adding the first sequence number to the original message to obtain the first message. Sending the first message to the second computing device.
[0034] In a third aspect, an embodiment of the present application provides a data transmission device based on bus technology, the data transmission device comprising a communication unit and a processing unit, wherein: the communication unit is configured to receive an original message sent by the processor. The processing unit is configured to configure the first network card based on the original message so that the first network card sends a first message to a second computing device, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card. The processing unit is further configured to obtain first feedback information, wherein the first feedback information is used to indicate that the second computing device has successfully received the first message. The processing unit is further configured to configure the first network card based on the first feedback information and the first sequence number so that the first network card releases the cache of the first message.
[0035] In a possible implementation of the third aspect, in terms of obtaining the first feedback information, the processing unit is specifically configured to: send first indication information to the first network interface card or the second network interface card, wherein the first indication information is used to instruct the first network interface card or the second network interface card to send the first feedback information to the aggregation network interface card; and receive the first feedback information forwarded by the first network interface card or the second network interface card.
[0036] In another possible implementation of the third aspect, in configuring the first network card based on the first feedback information and the first sequence number so that the first network card releases the cache of the first message, the processing unit is specifically configured to: send first reference information to the first network card based on the first feedback information and the first sequence number, wherein the first reference information is information generated based on the first feedback information and the first sequence number, and the first reference information is used to release the cache of the first message.
[0037] In yet another possible implementation of the third aspect, the first reference information is the first feedback information.
[0038] In another possible implementation of the third aspect, the first reference information is second indication information, wherein the second indication information is used to indicate the release of the first cached message.
[0039] In another possible implementation of the third aspect, the processing unit is further configured to obtain second feedback information, wherein the second feedback information is used to indicate that the second computing device successfully received the second message, and the second message includes a second sequence number, and the second sequence number is used to indicate that the second message was sent by the second network card. The communication unit is further configured to send second reference information to the second network card based on the second feedback information and the second sequence number, wherein the second reference information is information generated based on the second feedback information and the second sequence number, and the second reference information is used to release a cache of the second message.
[0040] In another possible implementation of the third aspect, the processing unit is further configured to obtain third feedback information, wherein the third feedback information is used to indicate that the second computing device failed to successfully receive a third message, and the third message includes the third sequence number, and the third sequence number is used to indicate that the third message was sent by the first network interface card. The communication unit is further configured to send third reference information to the first network interface card based on the third feedback information and the third sequence number, wherein the third reference information is determined based on the third feedback information, and the third feedback information is used to request the first network interface card to retransmit the third message.
[0041] In another possible implementation of the third aspect, in configuring the first network card according to the original message so that the first network card sends the first message to the second computing device, the processing unit is specifically used to: send the original message to the first network card, wherein the original message does not include the first sequence number, and the first message is generated by the first network card based on the original message and the first sequence number.
[0042] In another possible implementation of the third aspect, in configuring the first network card based on the original message so that the first network card sends the first message to the second computing device, the processing unit is specifically configured to: add a first sequence number to the original message to obtain the first message; and send the first message to the first network card so that the first network card sends the first message to the second computing device.
[0043] In a fourth aspect, an embodiment of the present application provides a data transmission device based on bus technology, the data transmission device comprising a communication unit and a processing unit, wherein: the communication unit is used to receive configuration information sent by an aggregated network card, wherein the configuration information includes an original message or a first message, and the configuration information is used to instruct the first network card to send the first message to the second computing device, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card. The communication unit is also used to send the first message to the second computing device according to the configuration information. The communication unit is also used to receive first feedback information forwarded by the second network card, wherein the first feedback information is used to indicate that the second computing device has successfully received the first message. The processing unit is used to release the cache of the first message based on the first feedback information and the first sequence number.
[0044] In a possible implementation of the fourth aspect, the communication unit is further configured to receive second feedback information sent by the second computing device, wherein the second feedback information is used to indicate that the second computing device successfully received the second message, and the second message includes a second sequence number, and the second sequence number is used to indicate that the second message was sent by the second network interface card. The communication unit is further configured to forward the second feedback information to the second network interface card or the aggregated network interface card if the first network interface card determines that the second message was not sent by the first network interface card, wherein the second feedback information is used to release the cache of the second message.
[0045] In another possible implementation of the fourth aspect, the communication unit is further configured to send a third message to the second computing device based on the configuration information, wherein the third message includes a third sequence number, and the third sequence number is used to indicate that the third message was sent by the first network interface card. The communication unit is further configured to receive third feedback information forwarded by the second network interface card or the aggregated network interface card, wherein the third feedback information is used to indicate that the second computing device did not successfully receive the third message, and the third feedback information is used to request the first network interface card to retransmit the third message. The communication unit is further configured to resend the third message to the second computing device.
[0046] In another possible implementation of the fourth aspect, the configuration information includes the first message, and in sending the first message to the second computing device according to the configuration information, the communication unit is specifically used to: send the first message to the second computing device.
[0047] In another possible implementation of the fourth aspect, the configuration information includes the original message, and in sending the first message to the second computing device according to the configuration information, the communication unit is specifically configured to: add the first sequence number to the original message to obtain the first message; and send the first message to the second computing device.
[0048] In a fifth aspect, an embodiment of the present application provides a computing device, comprising a first network card, a second network card, and a processor, wherein: the first network card is a first network card for implementing the method described in any one of the first to second aspects, the second network card is a second network card for implementing the method described in any one of the first to second aspects, and the processor is a processor for implementing the method described in any one of the first to second aspects.
[0049] In a sixth aspect, an embodiment of the present application provides a data transmission system based on bus technology, and the data transmission system includes the computing device described in the fifth aspect above.
[0050] In the seventh aspect, an embodiment of the present application provides a computer-readable storage medium, which is used to store instructions or computer programs; when the instructions or computer programs are executed, the method described in any aspect or any possible implementation method of the aforementioned first to second aspects is implemented.
[0051] In an eighth aspect, the present application provides a computer program product, comprising computer instructions that, when executed on at least one processor, can implement the method described in any of the first through fifth aspects or any possible implementation thereof. The computer program product can be a software installation package, which can be downloaded and executed on a computing device when the method is to be used.
[0052] The beneficial effects of the technical solutions provided in the third to eighth aspects of this application can refer to the beneficial effects of the technical solutions in the first to second aspects, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0053] FIG1 is a schematic diagram of the architecture of a data transmission system based on bus technology provided in an embodiment of the present application;
[0054] FIG2 is a schematic diagram of the architecture of a first computing device provided in an embodiment of the present application;
[0055] FIG3 is a schematic diagram of a typical bus network forwarding traffic across servers provided by an embodiment of the present application;
[0056] FIG4 is a schematic diagram of the process interaction of a data transmission method based on bus technology provided in an embodiment of the present application;
[0057] 5 is a schematic diagram of an embodiment of the present application providing an aggregated network card configured with a first network card so that the first network card releases a cache of a first message;
[0058] FIG6 is a schematic diagram of the interaction process of another bus-based data transmission method provided in an embodiment of the present application;
[0059] 7 is a schematic diagram of another embodiment of the present application, wherein an aggregated network card is configured with a first network card so that the first network card releases a cache of a first message;
[0060] FIG8 is a schematic structural diagram of a bus-based data transmission device 80 provided in an embodiment of the present application;
[0061] FIG9 is a schematic structural diagram of another bus-based data transmission device 90 provided in an embodiment of the present application;
[0062] FIG10 is a schematic structural diagram of another bus-based data transmission device 100 provided in an embodiment of the present application;
[0063] FIG11 is a structural diagram of a data transmission device cluster 110 provided in an embodiment of the present application. DETAILED DESCRIPTION
[0064] To facilitate understanding, the following first introduces relevant terms that may be involved in the embodiments of this application.
[0065] 1. Physical network card
[0066] A physical network interface card (NIC), also known as a network interface card or NIC, is responsible for the electrical connection between the computer and the network medium, transmitting bit data streams and confirming network addresses. Key technical parameters include bandwidth speed, bus type, and electrical interface method.
[0067] 2.SR-IOV
[0068] The two new function types in SR-IOV are: physical function (PF) and virtual function (VF).
[0069] PF is used to support PCI functions that support SR-IOV. PF is a full-featured PCIe function that can be discovered, managed, and processed like any other PCIe device. PF has complete configuration resources and can be used to configure or control PCIe devices.
[0070] A PF can be extended to several VFs. A VF is also called an aggregated network card or virtual network card. A VF is a virtualized "network card" or instance of a physical network card that supports SRIOV. It appears as an independent network card. Each VF has its own dedicated PCI configuration area and may share the same physical resources with other VFs, that is, share the same physical network port.
[0071] When SR-IOV is enabled, the physical network card will interact with the virtual machine through data, thus skipping the intermediate virtualization stack to achieve performance close to that of a pure physical environment. This is also the greatest value of SR-IOV. It is different from the previous situation where virtual machines transmit traffic through emulated devices and virtualization layers.
[0072] 3. Message sequence number
[0073] A packet sequence number (PCN) identifies each segment, allowing the destination host to confirm receipt of the data in a specific segment. When a source host sends a message using multiple segments, the sequence number allows the destination host to sort the segments in order, even if the segments arrive at the destination in different orders.
[0074] For segments that contain data, the number of the first data byte in the segment is the initial sequence number, and subsequent data bytes are numbered sequentially. If the source host sends another segment using the same connection, the sequence number of this segment is equal to the sum of the sequence number of the previous segment and the number of data bytes in the previous segment. For example, suppose the source host sends three segments, each with 100 bytes of data, and the sequence number of the first segment is 1000, then the sequence number of the second segment is 1100 (1000 + 100), and the sequence number of the third segment is 1200 (1100 + 100). If the sequence number reaches its maximum value, it will reset to 0.
[0075] 4. Message arrival confirmation
[0076] The destination host returns an acknowledgment character (ACK) to let the source host know that one or more segments have been received. This field is valid if the ACK control bit is set to 1. The acknowledgment number is equal to the sequence number of the last segment received in sequence plus 1. This is also the sequence number of the next segment the destination host expects to receive. After the acknowledgment number is returned, the computer considers that all data with a number less than that has been received has been received.
[0077] For example, the sequence number is equal to the sum of the sequence number of the previous segment and the number of data bytes in the previous segment. For example, suppose the source host sends three segments, each with 100 bytes of data, and the first segment has a sequence number of 1000. After receiving the first segment, the destination host returns a header with an acknowledgment number of 1100. After receiving the second segment (with a sequence number of 1100), the destination host returns an acknowledgment number of 1200. After receiving the third segment, the destination host returns an acknowledgment number of 1300.
[0078] The destination host does not necessarily return an acknowledgment number after each received segment. In the example above, the destination host might wait until all three segments are received before returning a segment with acknowledgment number 1300, indicating that it has received all 1200 bytes of data. However, if the destination host waits too long before sending an acknowledgment number, the source host will assume that the data has not reached the destination and will automatically resend it.
[0079] In the above example, if the destination host receives the first segment with segment number 1000 and the last segment with segment number 1200, it can return acknowledgment number 1100, but before returning acknowledgment number 1300, it should wait for the intermediate segment with segment number 1100.
[0080] The following is an introduction to the system architecture used in the embodiments of this application. It should be noted that the system architecture and business scenarios described in this application are intended to more clearly illustrate the technical solutions of this application and do not constitute a limitation on the technical solutions provided by this application. It is understood by those skilled in the art that with the evolution of the system architecture and the emergence of new business scenarios, the technical solutions provided by this application are equally applicable to similar technical problems.
[0081] Please refer to Figure 1, which is a schematic diagram of the architecture of a data transmission system based on bus technology provided by an embodiment of the present application. As shown in Figure 1, the data transmission system includes a first computing device 110, a second computing device 120 and a network device 130. Figure 1 takes the first computing device 110 as server A and the second computing device 120 as server B as an example. Server A supports receiving data and / or sending data. Server B also supports receiving data and / or sending data. Server A can act as a sending device to send data to server B through the network device 130. Accordingly, server B can act as a receiving device to receive data from server A through the network device 130; or, server B can act as a sending device to send data to server A through the network device 130, and accordingly, server A can act as a receiving device to receive data from server B through the network device 130. For ease of understanding, Figure 1 takes server A sending data to server B through the network device 130 as an example. In addition, there are one or more intermediate devices (such as the switch shown in Figure 1) between server A and server B.
[0082] In one possible design, as shown in FIG1 , server A is installed (or deployed) with a first network interface card (e.g., physical network interface card 1), a second network interface card (e.g., physical network interface card 2), and a processor (e.g., processor 1). Furthermore, as shown in FIG2 , the first and second network interfaces in a first computing device 110 are aggregated into an aggregated network interface card (ANIC), which runs on the first computing device 110. In other words, the ANIC can run on at least one independent device in the first computing device 110. For example, the ANIC can run on the first network interface card (ANIC), or on a device in the first network interface card (e.g., a chip or integrated circuit). For another example, the ANIC can run on the second network interface card (ANIC), or on a device in the second network interface card (e.g., a chip or integrated circuit). For another example, the ANIC can run on both the first and second network interfaces (ANIC), or on a device in the aggregated device (e.g., a chip or integrated circuit). FIG2 takes the example of a case where the first network card is network card 211, the second network card is network card 212, and the processor is processor 213. The aggregated network card implements data transmission and reception and releases the message cache by configuring network card 211 or network card 212. Exemplarily, the following steps may be included: the aggregated network card receives the original message sent by processor 213; then, based on the original message, the aggregated network card configures network card 211 so that network card 211 sends message 1 to the second computing device 120, where message 1 includes sequence number 001, which indicates that message 1 is sent by network card 211. The aggregated network card then obtains first feedback information, where the first feedback information indicates that the second computing device 120 successfully received message 1. Finally, based on the first feedback information and sequence number 001, the aggregated network card configures network card 211 so that network card 211 releases the cache of message 1.
[0083] In another possible design, as still shown in FIG1 , a first network interface card (NIC), a second network interface card (NIC), and a processor are installed (or deployed) in the first computing device 110. The first network interface card (NIC) and the second network interface card (NIC) in the first computing device 110 are aggregated into an aggregated NIC, which runs on the first computing device 110. FIG2 takes the example of the first NIC being NIC 211, the second NIC being NIC 212, and the processor being processor 213. NIC 211 or NIC 212 implements the sending and receiving of data and the release of message caches. Exemplarily, the following steps may be included: NIC 211 receives configuration information sent by the aggregated NIC, wherein the configuration information includes an original message or message 1, and the configuration information is used to instruct NIC 211 to send message 1 to the second computing device 120, wherein message 1 includes a sequence number 001, and sequence number 001 is used to indicate that message 1 is sent by NIC 211. NIC 211 then sends message 1 to the second computing device 120 according to the configuration information. The network card 211 then receives the first feedback information forwarded by the network card 212, wherein the first feedback information is used to indicate that the second computing device 120 has successfully received the message 1. Finally, the network card 211 releases the buffer of the message 1 according to the first feedback information and the sequence number 001.
[0084] Optionally, the network card 211, the network card 212, and the processor 213 can communicate via a bus (not shown in FIG. 1 and FIG. 2 ). The bus can be, for example, a bus based on the high-speed serial computer expansion bus standard (Peripheral Component Interconnect Express, PCIe), or a Compute Express Link (CXL) bus, a serial communication interface SCI (serial communication interface) bus, or an I2C (Inter-Integrated Circuit) bus, but the embodiments of the present application are not limited thereto.
[0085] Before introducing the solution of this application, the following points are explained.
[0086] (1) In this application, “indication” may include direct indication, indirect indication, explicit indication, and implicit indication. When describing that a certain indication information is used to indicate A, it can be understood that the indication information carries A, directly indicates A, or indirectly indicates A.
[0087] In this application, the information indicated by the indication information is referred to as the information to be indicated. In the specific implementation process, there are many ways to indicate the information to be indicated, such as but not limited to, the information to be indicated can be directly indicated, such as the information to be indicated itself or the index of the information to be indicated. The information to be indicated can also be indirectly indicated by indicating other information, wherein there is an association between the other information and the information to be indicated. It is also possible to indicate only a part of the information to be indicated, while the other parts of the information to be indicated are known or agreed in advance. For example, the indication of specific information can also be achieved with the help of the arrangement order of each information agreed in advance (for example, stipulated by the protocol), thereby reducing the indication overhead to a certain extent. In addition, the information to be indicated can be sent together as a whole, or it can be divided into multiple sub-information and sent separately, and the sending period and / or sending time of these sub-information can be the same or different.
[0088] (2) In this application, "sending" and "receiving" indicate the direction of signal transmission. For example, "sending information to XX" can be understood as the destination of the information being XX, which can include direct sending through the air interface, and also include indirect sending through the air interface by other units or modules. "Receiving information from YY" can be understood as the source of the information being YY, which can include direct receiving from YY through the air interface, and also include indirect receiving from YY through the air interface from other units or modules. "Sending" can also be understood as the "output" of the chip interface, and "receiving" can also be understood as the "input" of the chip interface. In other words, sending and receiving can be carried out between devices, for example, between a network device and a terminal device, or can be carried out within a device, for example, sending or receiving between components, modules, chips, software modules or hardware modules within the device through a bus, a line or an interface.
[0089] The embodiments of the present application are described in detail below with reference to the accompanying drawings.
[0090] Please refer to FIG3 , which is a schematic diagram of a typical bus network cross-server forwarding traffic provided by an embodiment of the present application. As shown in FIG3 , the specific process can be divided into the following steps:
[0091] Step 1: The sender sends the message to the send queue of the first network card.
[0092] Step 2: The first network card sends a message to the destination end through the link.
[0093] Step 3: The fourth network card sends first feedback information to the first network card.
[0094] The first feedback information is used to indicate that the destination end has successfully received the message.
[0095] Step 4: The first network card releases the local message buffer according to the first feedback information.
[0096] In the existing solution, if the access bandwidth of two servers exceeds the capacity of a single network card, two network cards are configured on the server and registered on the host. The upper-layer application specifies which network port the traffic will exit the device from, and the maximum network bandwidth capacity of a single stream is the capacity of a single network card. With the development of peer-to-peer access buses (Peer2Peer) such as CXL and NVLink in the industry, the aggregation of multiple network card devices has become a common scenario. However, when multiple physical network cards are aggregated into a logical network card through a bus switch, the aggregated logical network card has only one IP address. When data needs to be sent and received through the aggregated logical network card, there will be a path for sending messages and a path for receiving the first feedback information. Combined with Figure 2, when the path for sending messages and the path for receiving the first feedback information are on different physical links, the sending and receiving paths of the logical network card for sending and receiving data are inconsistent, which will cause the physical network card that originally had cache occupied and needed to be released to be unable to release the cache. The above specific process can be divided into the following steps:
[0097] Step 11: Aggregate multiple physical network cards in the first computing device into an aggregated network card.
[0098] Step 21: The first network card in the first computing device sends a message to the fourth network card in the second computing device through a link.
[0099] Step 31: The second computing device sends first feedback information to the first computing device.
[0100] The first feedback information is used to indicate that the second computing device has successfully received the message. The first feedback information is forwarded to the second network card after passing through the switch, that is, the sending path and the receiving path of the message are inconsistent.
[0101] Step 41: The second network card does not have a corresponding message buffer and needs to be released.
[0102] Step 51: The message buffer of the first network card cannot be released, resulting in a buffer overflow.
[0103] In view of this, an embodiment of the present application provides a data transmission method and related apparatus, which can effectively ensure that the data cached in the physical network card is released and ensure the reliable transmission of data between network devices.
[0104] For ease of description, the embodiments of the present application may use the first network card and the second network card as examples when involving specific examples, or use the aggregated network card, the first network card and the second network card as examples for explanation, but this should not be understood as a limitation on the embodiments of the present application.
[0105] The embodiments of the present application are described in detail below with reference to the accompanying drawings.
[0106] Please refer to Figure 4, which is a process interaction diagram of a data transmission method based on bus technology provided in an embodiment of the present application. The data transmission method can also be called a message forwarding method based on bus switching technology. It should be understood that the names of the methods, devices, and information in this application are only examples. During the specific implementation process, their names can be replaced arbitrarily. The data transmission method is explained from the perspective of the interaction between the processor, the aggregated network card, and the first network card. Optionally, the data transmission method can be applied to the aforementioned data transmission system, such as the data transmission system shown in Figures 1 and 2.
[0107] The data transmission method includes one or more steps from step S401 to step S404. It should be understood that for the convenience of description, the description is given in the order of step S401 to step S404, and it is not intended to limit the execution to the above order. The embodiment of the present application does not limit the order of execution, execution time, number of executions, etc. of the above one or more steps, and other steps can be interspersed between or before and after these steps as needed. Among them, steps S401 to step S404 are specifically as follows:
[0108] Step S401: The processor sends an original message to the aggregation network card.
[0109] Correspondingly, the aggregation network card receives the original message sent by the processor.
[0110] Among them, the aggregated network card is a combination of the first network card and the second network card. The aggregated network card runs on the first computing device. The first computing device includes the first network card, the second network card and the processor. The first computing device is a device with communication and computing capabilities. Exemplarily, the first computing device can be a cloud, and the first computing device can also be a server. This application does not limit this.
[0111] The first network card and the second network card are also devices with communication and computing capabilities. The first network card or the second network card is an exemplary name used to distinguish a certain network card. Exemplarily, the first network card or the second network card can be physical network card 1, physical network card 2, physical network card 3, or other network cards.
[0112] Step S402: The aggregate network card configures the first network card according to the original message so that the first network card sends the first message to the second computing device.
[0113] Wherein, the second computing device is a device with communication capability and computing capability. Exemplarily, the second computing device may be a cloud, and the second computing device may also be a server, which is not limited in this application. Wherein, the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card. The first sequence number is an exemplary name made to distinguish a certain sequence number. Exemplarily, the first sequence number may be sequence number 1, sequence number 2, sequence number 3 or other self-named sequence numbers. The first message is an exemplary name made to distinguish a certain message. Exemplarily, the first message may be message 1, message 2, message 3 or other messages.
[0114] Optionally, the first sequence number is used to indicate that the first message was sent by the first network card, indicating that a mapping relationship is formed between the first sequence number, the first message, and the first network card, so that the first network card can easily find the first message it sent. For example, taking the first message as message 1, the sequence number carried by message 1 is 001, and the network card that sent message 1 is physical network card 1.
[0115] Optionally, the following exemplifies possible implementations of configuring the first network card based on the original message using two aggregated network cards so that the first network card sends the first message to the second computing device, as follows:
[0116] In the first implementation mode, the first message is generated by the first network card by adding a first sequence number to an original message.
[0117] Exemplarily, the aggregated network interface card sends an original message to the first network interface card, so that the first network interface card generates a first message based on the original message and sends the first message to the second computing device. After receiving the original message from the aggregated network interface card, the first network interface card adds a first sequence number to the original message to obtain the first message, and then actively sends the first message to the second computing device (i.e., without requiring an instruction trigger from the aggregated network interface card).
[0118] In the second implementation mode, the first message is generated by the aggregation network card by adding a first sequence number to the original message.
[0119] Exemplarily, the aggregate network card generates a first message according to the original message, and sends the first message to the first network card, so that the first network card sends the first message to the second computing device.
[0120] Step S403: The aggregation network card obtains first feedback information.
[0121] The first feedback information is an exemplary name used to distinguish a particular piece of feedback information. Exemplarily, the first feedback information is message arrival confirmation information (ACK), and the first feedback information is used to indicate that the second computing device has successfully received the first message. Exemplarily, the first feedback information is information sent by the second computing device to the aggregated network card after successfully receiving message 1. The first feedback information randomly arrives at physical network card 1 or physical network card 2.
[0122] Optionally, the first feedback information is used to indicate that the second computing device has successfully received the first message, indicating that the first feedback information can be sent by the first network card or the second network card to the aggregated network card according to instructions from the aggregated network card, or can be actively reported by the first network card or the second network card to the aggregated network card (i.e., without the need for instruction triggering from the aggregated network card).
[0123] Further optionally, the first feedback information is information sent by the second computing device to the aggregate network card after successfully receiving multiple messages, wherein the multiple messages respectively include multiple serial numbers, such as the first serial number carried by the first message, the second serial number carried by the second message, and the third serial number carried by the third message.
[0124] For example, in the message sending queue table shown in Table 1, message 1 includes sequence number 001, and the network card corresponding to sending message 1 is physical network card 1; message 2 includes sequence number 002, and the network card corresponding to sending message 2 is physical network card 2; message 3 includes sequence number 003, and the network card corresponding to sending message 3 is physical network card 1.
[0125] Table 1
[0126] Optionally, two possible implementations of the aggregation network card obtaining the first feedback information are exemplarily introduced below, as follows:
[0127] In the first implementation mode, the aggregated network card instructs the first network card or the second network card to forward the first feedback information to the aggregated network card, that is, the aggregated network card needs to issue an instruction.
[0128] In the second implementation mode, the first network card or the second network card actively reports the first feedback information to the aggregation network card, without the aggregation network card issuing an instruction.
[0129] Step S404: the aggregation network card configures the first network card according to the first feedback information and the first sequence number so that the first network card releases the buffer of the first message.
[0130] Optionally, the configuration may be that the aggregated network card sends an instruction to the first network card based on the first feedback information and the first serial number to instruct the first network card to release the cache of the first message, or that the aggregated network card directly sends the first feedback information and the first serial number to the first network card, and the first network card releases the cache of the first message based on the first feedback information and the first serial number (i.e., the operation is triggered without the instruction of the aggregated network card), or other reasonable meanings. This application does not limit the definition of the configuration.
[0131] Further optionally, the aggregation network card sends the first reference information to the first network card according to the first feedback information and the first sequence number.
[0132] The first reference information is an exemplary name used to distinguish a certain reference information. The first reference information may be information generated by the aggregation network card according to the first feedback information and the first sequence number. The first reference information is used to release the cache of the first message.
[0133] Optionally, two possible situations of the first reference information are exemplarily introduced below, as follows:
[0134] In case 1, the first reference information is the first feedback information. In other words, the first network card directly releases the message buffer according to the first feedback information.
[0135] For example, in combination with Table 1, the first message is message 1, the first serial number is serial number 001, and the network card that sends message 1 is physical network card 1. When the first feedback information is the information sent by the second computing device to the aggregate network card after successfully receiving message 1, the aggregate network card forwards the first feedback information and the serial number 001 corresponding to message 1 to physical network card 1, and physical network card 1 confirms whether message 1 is the message sent by this network card. If so, it indicates that reliable data transmission is achieved, and physical network card 1 can directly release the cache of message 1.
[0136] In case 2, the first reference information is the first indication information, which is used to instruct the release of the cached first message. In other words, the first network interface card releases the message cache according to the indication information of the aggregation network interface card, and the first feedback information is still processed on the aggregation network interface card.
[0137] For example, in combination with Table 1, the first message is message 1, the first serial number is serial number 001, and the network card that sends message 1 is physical network card 1. When the first feedback information is the information sent by the second computing device to the aggregate network card after successfully receiving message 1, in order to avoid inconsistency in the sending and receiving paths of message 1 and to successfully release the cache of message 1 in the network card, the aggregate network card sends the first feedback information and the serial number 001 corresponding to message 1 to the physical network card 1 after confirmation. The physical network card 1 directly releases the message 1 cached in this network card according to the first feedback information and the serial number 001 corresponding to message 1, thereby optimizing resource utilization and reducing the database load.
[0138] As a possible implementation, the aggregation network card obtains the third feedback information.
[0139] The third feedback information is an exemplary designation used to distinguish a particular piece of feedback information. Exemplarily, the third feedback information is message arrival confirmation information, indicating that the second computing device has successfully received the third message. Exemplarily, the third feedback information is information sent by the second computing device to the aggregated network interface card after successfully receiving message 2. The third feedback information randomly arrives at either physical network interface card 1 or physical network interface card 2.
[0140] The third message includes a third sequence number, and the third sequence number is used to indicate that the third message is sent by the second network card.
[0141] Optionally, the third feedback information is used to indicate that the second computing device successfully received the third message, indicating that the third feedback information may be sent by the first network card or the second network card to the aggregated network card according to an instruction from the aggregated network card, or may be actively reported by the first network card or the second network card to the aggregated network card (i.e., without the need for an instruction trigger from the aggregated network card), as follows:
[0142] In the first implementation mode, the aggregation network card sends second indication information to the first network card or the second network card, and the aggregation network card receives third feedback information forwarded by the first network card or the second network card.
[0143] The fourth indication information is used to instruct the first network card or the second network card to send third feedback information to the aggregation network card.
[0144] In the second implementation mode, the aggregation network card receives third feedback information forwarded from the first network card or the second network card (actively reported by the first network card or the second network card, without the aggregation network card triggering instruction).
[0145] Further optionally, the aggregation network card sends third reference information to the second network card according to the third feedback information and the third sequence number.
[0146] The third reference information is an exemplary name used to distinguish a certain reference information. The third reference information may be information generated by the aggregation network card according to the third feedback information and the third sequence number. The third reference information is used to release the cache of the third message.
[0147] Optionally, two possible situations of the third reference information are exemplarily introduced below, as follows:
[0148] In case 1, the third reference information is the third feedback information. In other words, the second network card directly releases the message buffer according to the third feedback information.
[0149] For example, in combination with Table 1, the third message is message 2, the third serial number is serial number 002, and the network card that sends message 2 is physical network card 2. When the third feedback information is the information sent by the second computing device to the aggregate network card after successfully receiving message 2, the aggregate network card forwards the third feedback information and the serial number 002 corresponding to message 2 to physical network card 2. Physical network card 2 confirms whether message 2 is the message sent by this network card. If so, it indicates that reliable data transmission is achieved, and physical network card 2 can directly release the cache of message 2.
[0150] In the second case, the third reference information is the third indication information, and the third indication information is used to indicate the release of the cached third message. In other words, the second network card directly releases the message cache according to the indication information of the aggregated network card, and the third feedback information is still processed on the aggregated network card. For example, in combination with Table 1, the third message is message 2, the third sequence number is sequence number 002, and the network card corresponding to sending message 2 is physical network card 2. When the third feedback information is the information sent to the aggregated network card after the second computing device successfully receives message 2, in order to avoid inconsistency in the sending and receiving paths of message 2 and to successfully release message 2 from the cache of the network card, the aggregated network card sends the third feedback information and the sequence number 002 corresponding to message 2 to the physical network card 2 after confirmation. The physical network card 2 directly releases the message 2 cached by this network card according to the third feedback information and the sequence number 002 corresponding to message 2, thereby optimizing resource utilization and reducing database load.
[0151] Optionally, other network information such as negative acknowledgement (NACK), explicit congestion notification (ECN), and congestion notification packet (CNP) may also be synchronized and operated using the same processing method as above.
[0152] It should be noted that during data transmission between devices, after the sender sends data, the data is forwarded to the receiver via a switch. However, due to network instability or other reasons, the receiver may not be able to successfully receive the message. Therefore, the local cache can only be released after the sender confirms receipt of the message. If the message is not confirmed, the data must be retransmitted to ensure the validity of the data transmission during the communication process. For example, if the second computing device fails to successfully receive the message, the message must be retransmitted to ensure reliable data transmission between network devices.
[0153] As a possible implementation, the aggregation network card obtains the second feedback information.
[0154] The second feedback information is an exemplary designation used to distinguish a particular piece of feedback information. Exemplarily, the second feedback information is message non-arrival confirmation information, indicating that the second computing device failed to successfully receive the second message. Exemplarily, the second feedback information is information sent by the second computing device to the aggregated network interface card after it failed to successfully receive message 3. The second feedback information randomly arrives at either physical network interface card 1 or physical network interface card 2.
[0155] The second message includes a second sequence number, and the second sequence number is used to indicate that the second message is sent by the first network card.
[0156] Optionally, the second feedback information is used to indicate that the second computing device failed to successfully receive the second message, indicating that the second feedback information may be sent by the first network card or the second network card to the aggregated network card according to an instruction from the aggregated network card, or may be actively reported by the first network card or the second network card to the aggregated network card (i.e., without the need for an instruction trigger from the aggregated network card), as follows:
[0157] In implementation mode 1, the aggregation network card sends fourth instruction information to the first network card or the second network card, and the aggregation network card receives second feedback information forwarded by the first network card or the second network card.
[0158] The fourth indication information is used to instruct the first network card or the second network card to send second feedback information to the aggregation network card.
[0159] In the second embodiment, the aggregation network card receives the second feedback information forwarded by the first network card or the second network card (actively reported by the first network card or the second network card, without the aggregation network card triggering instruction).
[0160] Further optionally, the aggregation network card sends second reference information to the first network card according to the second feedback information and the second sequence number.
[0161] The second reference information is an exemplary name used to distinguish a certain reference information. The second reference information may be information generated by the aggregation network card according to the second feedback information and the second sequence number. The second reference information is used to request the first network card to retransmit the second message.
[0162] Optionally, two possible situations of the second reference information are exemplarily provided below, as follows:
[0163] In case 1, the reference information is the second feedback information. In other words, the first network card directly resends the second message to the second computing device according to the second feedback information.
[0164] For example, in combination with Table 1, the second message is message 3, the second serial number is serial number 003, and the network card corresponding to sending message 3 is physical network card 1. When the second feedback information is the information sent to the aggregate network card after the second computing device failed to successfully receive message 3, the aggregate network card forwards the second feedback information and the serial number 003 corresponding to message 3 to physical network card 1, and physical network card 1 confirms whether message 3 is the message sent by this network card. If so, message 3 is resent to the second computing device until the aggregate network card receives the second computing device and sends feedback information to the aggregate network card after successfully receiving message 3.
[0165] In case 2, the second reference information is the fifth indication information, which is used to instruct the first network interface card to retransmit the second message. In other words, the first network interface card resends the second message to the second computing device according to the indication information of the aggregation network interface card, and the second feedback information is still processed on the aggregation network interface card.
[0166] For example, in combination with Table 1, the second message is message 3, the second serial number is serial number 003, and the network card corresponding to sending message 3 is physical network card 1. When the second feedback information is the information sent by the second computing device to the aggregate network card after failing to successfully receive message 3, the aggregate network card sends the second feedback information and the serial number 003 corresponding to message 3 to physical network card 1. Physical network card 1 directly resends message 3 to the second computing device based on the second feedback information and the serial number 003 corresponding to message 3, until the second computing device successfully receives message 3 and sends feedback information to the aggregate network card.
[0167] In this application, on the one hand, compared to the existing technology, which requires the first computing device to split the message before sending, and the upper-layer application needs to perceive the number of network cards in the physical layer, this application aggregates multiple physical network cards into an aggregated network card. Subsequent external operations are performed by the application layer and the aggregated network card, without the application layer having to split the message. The upper-layer application does not need to perceive the number of network cards in the physical layer, thereby reducing the network protocol stack overhead. In addition, the maximum bandwidth of the device presented to the upper-layer application in the existing technology is the maximum capacity of the network card / IO Die, while this application aggregates multiple physical network cards into an aggregated network card, which can achieve a maximum bandwidth that exceeds the bandwidth limit of a single physical network card.
[0168] On the other hand, in this application, the serial number of the message and the feedback information from the second computing device are synchronized to the aggregated network card, and are uniformly managed and configured by the aggregated network card. After the aggregated network card confirms the network card corresponding to the sent message, the aggregated network card notifies the network card that sent the corresponding message to release the message cache, which can ensure the reliable transmission of data between network devices and effectively ensure that the data cached in the physical network card is released, avoiding the situation where the network card that needs to release the message cache cannot be released, resulting in cache overflow.
[0169] The embodiment shown in FIG4 explains in detail the interaction principle between the processor, the aggregated network card and the first network card. For ease of understanding, the following example of the aggregated network card and the first network card to enable the first network card to release the cache of the first message is given in conjunction with FIG5.
[0170] Please refer to FIG5 , which is a schematic diagram of configuring a first network card in an embodiment of the present application so that the first network card releases the cache of the first message. As shown in FIG5 , the specific steps of Case 1 are as follows:
[0171] Step 11: Aggregate multiple physical network cards into one aggregated network card.
[0172] Step 12: Processor 1 sends the original message to the aggregation network card through bus switch 1.
[0173] Step 13: The aggregate network card configures the first network card according to the original message so that the first network card sends the first message to the second computing device.
[0174] Step 14: The aggregation network card configures the first network card according to the first feedback information and the first sequence number so that the first network card releases the cache of the first message.
[0175] Please refer to Figure 6, which is a process interaction diagram of another data transmission method based on bus technology provided in an embodiment of the present application. The data transmission method can also be called a message forwarding method based on bus switching technology. It should be understood that the names of the methods, devices, and information in this application are only examples. During the specific implementation process, their names can be replaced arbitrarily. The data transmission method is explained from the perspective of the interaction between the aggregated network card, the first network card, the second computing device, and the second network card. Optionally, the data transmission method can be applied to the aforementioned data transmission system, such as the data transmission system shown in Figures 1 and 2.
[0176] The data transmission method includes one or more steps from step S601 to step S605. It should be understood that for the convenience of description, the description is given in the order of step S601 to step S605, and it is not intended to limit the execution to the above order. The embodiment of the present application does not limit the order of execution, execution time, number of executions, etc. of the above one or more steps, and other steps can be interspersed between or before and after these steps as needed. Among them, steps S601 to step S605 are specifically as follows:
[0177] Step S601: The aggregation network interface card sends an original message to the first network interface card.
[0178] Correspondingly, the first network card receives the original message sent by the aggregation network card.
[0179] Among them, the aggregated network card is a combination of the first network card and the second network card. The aggregated network card runs on the first computing device. The first computing device includes the first network card, the second network card and the processor. The first computing device is a device with communication and computing capabilities. Exemplarily, the first computing device can be a cloud, and the first computing device can also be a server. This application does not limit this.
[0180] The first network card and the second network card are also devices with communication and computing capabilities. The first network card or the second network card is an exemplary name used to distinguish a certain network card. Exemplarily, the first network card or the second network card can be physical network card 1, physical network card 2, physical network card 3, or other network cards.
[0181] Step S602: The first network card generates a first message according to the original message.
[0182] The first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card.
[0183] Exemplarily, the aggregated network interface card sends an original message to the first network interface card, so that the first network interface card generates a first message based on the original message and sends the first message to the second computing device. After receiving the original message from the aggregated network interface card, the first network interface card adds a first sequence number to the original message to obtain the first message, and then actively sends the first message to the second computing device (i.e., without requiring an instruction trigger from the aggregated network interface card).
[0184] Optionally, the first sequence number is used to indicate that the first message was sent by the first network card, indicating that a mapping relationship is formed between the sequence number, the message, and the network card, so that the network card can easily find the message it sent. For example, taking the first message as message 1, the sequence number carried by message 1 is 001, and the network card that sent message 1 is physical network card 1.
[0185] Step S603: The first network card sends a first message to the second computing device.
[0186] Correspondingly, the second computing device receives the first message from the first network card.
[0187] The second computing device is a device with communication and computing capabilities. For example, the second computing device may be a cloud device or a server, and this application does not limit this.
[0188] Step S604: the second network card forwards the first feedback information to the first network card.
[0189] Correspondingly, the first network card receives the first feedback information forwarded by the second network card.
[0190] The first feedback information is used to indicate that the second computing device has successfully received the first message.
[0191] It should be noted that the detailed explanation of the specific terms in the above step S604 can be found in the embodiment described in FIG5 , and will not be repeated here.
[0192] For example, in conjunction with Table 1, the first message is message 1, the first sequence number is sequence number 001, and the network card that sends message 1 is physical network card 1. When the first feedback information is information sent by the second computing device to the aggregate network card after successfully receiving message 1, and the first feedback information randomly reaches physical network card 2 in the first computing device, physical network card 2 confirms that message 1 is not sent by this network card based on the first feedback information and sequence number 001, and then forwards the first feedback information to physical network card 1. Correspondingly, physical network card 1 receives the first feedback information forwarded by physical network card 2.
[0193] Step S605: The first network card releases the buffer of the first message according to the first feedback information and the first sequence number.
[0194] For example, in combination with Table 1, after physical network card 1 receives the first feedback information forwarded by physical network card 2, physical network card 1 confirms that message 1 is the message sent by this network card based on the first feedback information and serial number 001, indicating that reliable data transmission between devices has been successfully achieved, and then message 1 cached by this network card is directly released, thereby optimizing resource utilization and reducing database load.
[0195] As a possible implementation, the first network card receives second feedback information sent by the second computing device.
[0196] The second feedback information is an exemplary designation used to distinguish a particular piece of feedback information. Exemplarily, the second feedback information is message arrival confirmation information, indicating that the second computing device has successfully received the second message. Exemplarily, in conjunction with Table 1, the second feedback information is information sent by the second computing device to the aggregated network interface card after successfully receiving message 2. The second feedback information randomly arrives at either physical network interface card 1 or physical network interface card 2.
[0197] The second message includes a second sequence number, and the second sequence number is used to indicate that the second message is sent by the second network card. For example, message 2 includes sequence number 002, and the network card that sends message 2 is physical network card 2.
[0198] Optionally, if the first network card determines that the second message was not sent by the first network card, the second feedback information is forwarded to the second network card, where the second feedback information is used to release the cache of the second message. For example, after physical network card 1 receives the second feedback information sent by the second computing device, physical network card 1 confirms based on the second feedback information and sequence number 002 that message 2 is not sent by this network card, indicating that the sending and receiving paths of message 2 are inconsistent. In order to successfully release the cache of message 2 in the network card, physical network card 1 can forward the second feedback information to physical network card 2.
[0199] In one possible implementation, the first network card generates a third message based on the original message, sends the third message to the second computing device, then receives third feedback information forwarded by the second network card, and finally resends the third message to the second computing device.
[0200] The third message includes a third sequence number, which is used to indicate that the third message is sent by the first network card. For example, in conjunction with Table 1, message 3 includes sequence number 003, and the network card that sends message 3 is physical network card 1.
[0201] The third feedback information is used to indicate that the second computing device has not successfully received the third message, and the third feedback information is used to request the first network card to retransmit the third message.
[0202] Exemplarily, continuing with Table 1, when the third feedback information is information sent by the second computing device to the aggregated network card after failing to successfully receive message 3, the second feedback information randomly arrives at physical network card 2. If physical network card 2 confirms, based on the third feedback information and sequence number 003, that message 3 is not sent by this network card, indicating that the sending and receiving paths of message 3 are inconsistent, in order to successfully release message 3 from the network card cache, the third feedback information is forwarded to physical network card 1. Accordingly, after receiving the third feedback information, physical network card 1 confirms, based on the third feedback information and sequence number 003, that message 3 is sent by this network card, and then directly resends message 3 to the second computing device until the second computing device successfully receives message 3, indicating that reliable data transmission between devices has been successfully achieved.
[0203] The embodiment shown in FIG6 explains in detail the interaction principle between the processor, the aggregated network card and the first network card. For ease of understanding, the following is a specific example of the aggregated network card and the first network card to enable the first network card to release the cache of the first message in conjunction with FIG7.
[0204] Please refer to FIG. 7 , which is a schematic diagram of another embodiment of the present application, in which an aggregated network card is configured with a first network card so that the first network card releases the cache of the first message. As shown in FIG. 7 , the specific steps of Case 2 are as follows:
[0205] Step 21: Aggregate multiple physical network cards into one aggregated network card.
[0206] Step 22: Processor 1 sends the original message to the aggregation network card through bus switch 1.
[0207] Step 23: The aggregation network card sends the original message to the first network card.
[0208] Step 24: The first network card generates a first message according to the original message.
[0209] Step 25: The first network card sends a first message to the second computing device.
[0210] Step 26: The second network card forwards the first feedback information to the first network card.
[0211] Optionally, after receiving the first feedback information from the fourth network card, the second network card forwards the first feedback information to the first network card.
[0212] Step 27: The first network card releases the cache of the first message according to the first feedback information and the first sequence number.
[0213] The above describes in detail the method of the embodiment of the present application. The following provides an apparatus of the embodiment of the present application.
[0214] It should be understood that the division of the units in the device provided in the embodiments of the present application is only a division of logical functions, and in actual implementation, they can be fully or partially integrated into one physical entity, or they can be physically separated. In addition, the units in the device can be implemented in the form of a processor calling software. For example, the device includes a processor, the processor is connected to a memory, and instructions are stored in the memory. The processor calls the instructions stored in the memory to implement any of the above methods or to implement the functions of each unit of the device, wherein the processor is, for example, a general-purpose processor, such as a central processing unit (CPU) or a microprocessor, and the memory is a memory within the device or a memory outside the device.
[0215] Alternatively, the units in the device may be implemented in the form of hardware circuits, and the functions of some or all of the units may be implemented by designing the hardware circuits, and the hardware circuits may be understood as one or more processors. For example, in one implementation, the hardware circuit is an application-specific integrated circuit (ASIC), which implements the functions of some or all of the above units by designing the logical relationships of the components within the circuit. For another example, in another implementation, the hardware circuit may be implemented by a programmable logic device (PLD), taking a field programmable gate array (FPGA) as an example, which may include a large number of logic gate circuits, and the connection relationships between the logic gate circuits may be configured through configuration files, thereby implementing the functions of some or all of the above units.
[0216] In an embodiment of the present application, each unit in the device may be one or more processors (or processing circuits) configured to implement the above method, such as: CPU, (graphics processing unit, GPU), neural network processing unit (neural network processing unit, NPU), tensor processing unit (tensor processing unit, TPU), deep learning processing unit (deep learning processing unit, DPU), microprocessor (micro processor unit, MPU), digital signal processor (digital signal processor, DSP), ASIC, FPGA, or a combination of at least two of these processor forms.
[0217] In addition, the various units in the above devices can be fully or partially integrated together, or can be implemented independently. In one implementation, these units are integrated together and implemented in the form of a system-on-a-chip (SOC). The SOC may include at least one processor for implementing any of the above methods or implementing the functions of the various units of the device. The type of the at least one processor may be different, for example, including a CPU and an FPGA, or including a CPU and an artificial intelligence processor, or including a CPU and a GPU, etc. Several possible devices are listed below.
[0218] Please refer to Figure 8, which is a schematic diagram of the structure of a bus-based data transmission device 80 provided in an embodiment of the present application. Optionally, the data transmission device 80 can be an independent device (such as an aggregated network card). Alternatively, the data transmission device 80 can also be a component in an independent device, such as a chip or an integrated circuit. The data transmission device 80 is used to implement the aforementioned data transmission method, such as the data transmission method shown in Figure 4 or Figure 6.
[0219] In one possible design, data transmission device 80 includes a communication unit 801 and a processing unit 802. Communication unit 801 is used to send and receive messages, and processing unit 802 is used to process messages. Communication unit 801 and processing unit 802 are used for collaborative processing. Data transmission device 80 is used to implement the aforementioned message forwarding method based on bus switching technology, such as the data transmission method shown in Figure 4 or Figure 6. Exemplarily, data transmission device 80 is used to execute the method executed by the aggregation network card.
[0220] In one possible implementation, the communication unit 801 is configured to receive an original message sent by the processor. The processing unit 802 is configured to configure the first network card based on the original message so that the first network card sends a first message to the second computing device, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card. The processing unit 802 is also configured to obtain first feedback information, wherein the first feedback information is used to indicate that the second computing device successfully received the first message. The processing unit 802 is also configured to configure the first network card based on the first feedback information and the first sequence number so that the first network card releases the cache of the first message.
[0221] In another possible implementation, in configuring the first network card based on the first feedback information and the first sequence number so that the first network card releases the cache of the first message, the processing unit 802 is specifically configured to: send first reference information to the first network card based on the first feedback information and the first sequence number, wherein the first reference information is used to release the cache of the first message.
[0222] In yet another possible implementation, the first reference information is the first feedback information.
[0223] In another possible implementation, the first reference information is first indication information, where the first indication information is used to indicate the release of the first cached message.
[0224] In another possible implementation, the processing unit 802 is further configured to obtain second feedback information, wherein the second feedback information is used to indicate that the second computing device failed to successfully receive the second message, and the second message includes the second sequence number, and the second sequence number is used to indicate that the second message was sent by the first network card. The communication unit 801 is further configured to send second reference information to the first network card based on the second feedback information and the second sequence number, wherein the second reference information is determined based on the second feedback information, and the second feedback information is used to instruct the first network card to retransmit the second message.
[0225] In another possible embodiment, in configuring the first network card based on the original message so that the first network card sends the first message to the second computing device, the processing unit 802 is specifically configured to: send the original message to the first network card so that the first network card generates the first message based on the original message and sends the first message to the second computing device. In another possible embodiment, in configuring the first network card based on the original message so that the first network card sends the first message to the second computing device, the processing unit 802 is specifically configured to: generate the first message based on the original message and send the first message to the first network card so that the first network card sends the first message to the second computing device.
[0226] The embodiments of the present application and the above-mentioned method embodiments are based on the same concept, and the technical effects they bring are also the same. For the specific principles, please refer to the description of the above-mentioned embodiments, which will not be repeated here.
[0227] Please refer to Figure 9, which is a schematic diagram of the structure of another bus-based data transmission device 90 provided in an embodiment of the present application. Optionally, the data transmission device 90 can be an independent device (such as a first network card). Alternatively, the data transmission device 90 can also be a component in an independent device, such as a chip or integrated circuit. The data transmission device 90 is used to implement the aforementioned data transmission method, such as the data transmission method shown in Figure 4 or Figure 6.
[0228] In one possible design, data transmission device 90 includes a communication unit 901 and a processing unit 902. Communication unit 901 is used to send and receive messages, and processing unit 902 is used to process messages. Communication unit 901 and processing unit 902 are used for collaborative processing. Data transmission device 90 is used to implement the aforementioned data transmission method, such as the data transmission method shown in Figure 4 or Figure 6. For example, data transmission device 90 is used to execute the method executed by the first network card.
[0229] In one possible embodiment, the communication unit 901 is used to receive the original message sent by the aggregate network card. The processing unit 902 is used to generate a first message based on the original message, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card. The communication unit 901 is also used to send the first message to a second computing device. The communication unit 901 is also used to receive first feedback information forwarded by the second network card, wherein the first feedback information is used to indicate that the second computing device has successfully received the first message. The processing unit 902 is also used to release the cache of the first message based on the first feedback information and the first sequence number.
[0230] In another possible implementation, the communication unit 901 is further configured to receive second feedback information sent by the second computing device, wherein the second feedback information is used to indicate that the second computing device successfully received the second message, and the second message includes a second sequence number, and the second sequence number is used to indicate that the second message was sent by the second network card. The communication unit 901 is further configured to forward the second feedback information to the second network card if the first network card determines that the second message was not sent by the first network card, wherein the second feedback information is used to release the cache of the second message.
[0231] In another possible embodiment, the processing unit 902 is further configured to generate a third message based on the original message, wherein the third message includes a third sequence number, and the third sequence number is used to indicate that the third message is sent by the first network card. The communication unit 901 is further configured to send a third message to the second computing device, wherein the third message includes a third sequence number, and the third sequence number is used to indicate that the third message is sent by the first network card. The communication unit 901 is further configured to receive third feedback information forwarded by the second network card, wherein the third feedback information is used to indicate that the second computing device has not successfully received the third message, and the third feedback information is used to request the first network card to retransmit the third message; the communication unit 901 is further configured to resend the third message to the second computing device.
[0232] The embodiments of the present application and the above-mentioned method embodiments are based on the same concept, and the technical effects they bring are also the same. For the specific principles, please refer to the description of the above-mentioned embodiments, which will not be repeated here.
[0233] Please refer to Figure 10, which is a structural diagram of another bus-based data transmission device 100 provided in an embodiment of the present application. The data transmission device 100 can be an independent device, such as an aggregated network card or a first network card, or a device included in an independent device, such as a chip, a software module, or an integrated circuit. The data transmission device 100 may include at least one processor 1001 and a communication interface 1002. Optionally, it may also include at least one memory 1003. Further optionally, it may also include a connection line 1004, wherein the processor 1001, the communication interface 1002 and / or the memory 1003 are connected via the connection line 1004, and / or communicate with each other via the connection line 1004 to transmit control signals and / or data signals.
[0234] in:
[0235] The processor 1001 is a module that performs arithmetic operations and / or logical operations, and may specifically include one or more of the following modules: a filter, a modem, a power amplifier, a low noise amplifier (LNA), a baseband processor, a radio frequency processor, a radio frequency circuit, a central processing unit (CPU), an application processor (AP), a microcontroller unit (MCU), an electronic control unit (ECU), a graphics processing unit (GPU), a microprocessor unit (MPU), an application specific integrated circuit (ASIC), an image signal processor (ISP), a digital signal processor (DSP), a field programmable gate array (FPGA), a complex programmable logic device (CPLD), or a coprocessor, etc.
[0236] The communication interface 1002 may be used to provide information input or output for at least one processor, or to receive externally transmitted signals and / or transmit externally transmitted signals.
[0237] For example, the communication interface 1002 may include interface circuitry.
[0238] For example, the communication interface 1002 may include a wired link interface such as an Ethernet cable, or a wireless link interface (Wi-Fi, Bluetooth, general wireless transmission, vehicle-mounted short-range communication technology, and other short-range wireless communication technologies, etc.).
[0239] Optionally, the communication interface 1002 may further include a radio frequency transmitter, an antenna, etc. When the communication interface 1002 includes an antenna, the number of antennas may be one or more.
[0240] As a possible design, if the data transmission device 100 is a standalone device, the communication interface 1002 may include a receiver and a transmitter. The receiver and transmitter may be the same component or different components. When the receiver and transmitter are the same component, the component may be referred to as a transceiver.
[0241] As another possible design, if the data transmission device 100 is a chip or a circuit, the communication interface 1002 may include an input interface and an output interface. The input interface and the output interface may be the same interface, or may be different interfaces.
[0242] Optionally, the functions of the communication interface 1002 may be implemented by a transceiver circuit or a dedicated transceiver chip.
[0243] Memory 1003 is used to provide storage space for storing data such as an operating system and computer programs. Memory 1003 can be one or a combination of random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), or compact disc read-only memory (CD-ROM).
[0244] The functions and actions of the modules or units in the data transmission device 100 listed above are merely exemplary.
[0245] Each functional unit in the data transmission device 100 can be used to implement the aforementioned communication method, such as the data transmission method shown in Figure 4 or Figure 6, for example, for executing the method executed by the aggregation network card or the first network card.
[0246] Optionally, the processor 1001 may be a processor specifically used to execute the aforementioned method (for convenience of distinction, referred to as a dedicated processor), or a processor that executes the aforementioned method by calling a computer program (for convenience of distinction, referred to as a dedicated processor). Optionally, the at least one processor may include both a dedicated processor and a general-purpose processor.
[0247] Optionally, in the case where the data transmission device 100 includes at least one memory 1003 , if the processor 1001 implements the aforementioned communication method by calling a computer program, the computer program may be stored in the memory 1003 .
[0248] The embodiments of the present application and the above-mentioned method embodiments are based on the same concept, and the technical effects they bring are also the same. For the specific principles, please refer to the description of the above-mentioned embodiments, which will not be repeated here.
[0249] An embodiment of the present application also provides a data transmission device cluster, as shown in Figure 11, the data transmission device cluster 110 includes at least one data transmission device (for example, including a first network card 1101 and a second network card 1102), and the at least one data transmission device includes a processor and a memory; the memory is used to store computer instructions, and the computer instructions are loaded and executed by the processor to enable the at least one data transmission device to implement the aforementioned data transmission method, such as the bus technology-based data transmission method shown in Figure 4 or Figure 6.
[0250] An embodiment of the present application also provides a computer-readable storage medium, which stores instructions. When the instructions are executed on at least one processor (or communication device), the aforementioned data transmission method is implemented, such as the bus technology-based data transmission method shown in Figure 4 or Figure 6.
[0251] An embodiment of the present application also provides a computer program product, which includes computer instructions, and the computing instructions are used to implement the aforementioned data transmission method, such as the bus technology-based data transmission method shown in Figure 4 or Figure 6.
[0252] It should be noted that in the embodiments of this application, words such as "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described in this application as "exemplary" or "for example" should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplarily" or "for example" is intended to present the relevant concepts in a concrete manner.
[0253] In the embodiments of this application, "at least one" refers to one or more, and "more" refers to two or more. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items.
[0254] For example, at least one of a, b, or c can represent: a, b, c, (a and b), (a and c), (b and c), or (a and b and c), where a, b, and c can be single or plural. "And / or" describes the relationship between associated objects, indicating that three possible relationships exist. For example, A and / or B can represent: A alone, A and B together, or B alone, where A and B can be singular or plural. The character " / " generally indicates that the associated objects are in an "or" relationship.
[0255] Furthermore, unless otherwise specified, ordinal numbers such as "first" and "second" in the embodiments of this application are used to distinguish multiple objects and are not used to define the order, timing, priority, or importance of multiple objects. For example, the terms "first node" and "second node" are merely used to facilitate the description of new parameters in different implementations and do not indicate differences in their execution operations, importance, structure, etc.
[0256] In the above embodiments, the term "when" can be interpreted to mean "if...", "before...", "determining...", or "detecting...", depending on the context. The above are merely optional embodiments of the present application and are not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the concepts and principles of the present application shall be included within the scope of protection of the present application.
[0257] Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, which may be a read-only memory, a disk, or an optical disk, etc.
Claims
1. A data transmission method based on bus technology, characterized in that: Applied to a converged network card, the converged network card runs on a first computing device, the first computing device includes a first network card, a second network card, and a processor, the method comprising: receiving an original message sent by the processor; Configuring the first network card according to the original message so that the first network card sends a first message to the second computing device, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card; Obtaining first feedback information, wherein the first feedback information is used to indicate that the second computing device successfully received the first message; The first network card is configured according to the first feedback information and the first sequence number so that the first network card releases a cache of the first message.
2. The method according to claim 1, characterized in that The configuring the first network card according to the first feedback information and the first sequence number so that the first network card releases the cache of the first message includes: First reference information is sent to the first network card according to the first feedback information and the first sequence number, wherein the first reference information is used to release the cache of the first message.
3. The method according to claim 1 or 2, characterized in that The first reference information is the first feedback information.
4. The method according to claim 1 or 2, characterized in that The first reference information is first indication information, wherein the first indication information is used to indicate the release of the first cached message.
5. The method according to any one of claims 1 to 4, characterized in that The method further comprises: Obtaining second feedback information, wherein the second feedback information is used to indicate that the second computing device failed to successfully receive the second message, the second message includes the second sequence number, and the second sequence number is used to indicate that the second message was sent by the first network card; Second reference information is sent to the first network card according to the second feedback information and the second sequence number, where the second reference information is used to instruct the first network card to retransmit the second message.
6. The method according to any one of claims 1 to 5, characterized in that Configuring the first network card according to the original message so that the first network card sends the first message to the second computing device includes: The original message is sent to the first network card, so that the first network card generates the first message according to the original message and sends the first message to the second computing device.
7. The method according to any one of claims 1 to 5, characterized in that Configuring the first network card according to the original message so that the first network card sends the first message to the second computing device includes: Generate the first message according to the original message; The first message is sent to the first network card, so that the first network card sends the first message to the second computing device.
8. A data transmission method based on bus technology, characterized in that: Applied to a first computing device, the first computing device includes a first network card, a second network card, and a processor, and the aggregated network card runs on the first computing device. The method includes: The processor sends the original message to the aggregation network card; The aggregate network interface card configures the first network interface card according to the original message so that the first network interface card sends a first message to the second computing device, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network interface card; The aggregation network interface card obtains first feedback information, wherein the first feedback information is used to indicate that the second computing device has successfully received the first message; The aggregation network card configures the first network card according to the first feedback information and the first sequence number so that the first network card releases the cache of the first message.
9. A data transmission method based on bus technology, characterized in that: The method is applied to a first network card in a first computing device, the first computing device including the first network card, a second network card, and a processor, the aggregated network card running on the first computing device, and includes: Receiving the original message sent by the aggregation network card; generating a first message according to the original message, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card; Sending the first message to a second computing device; receiving first feedback information forwarded by the second network card, wherein the first feedback information is used to indicate that the second computing device successfully received the first message; Release the cache of the first message according to the first feedback information and the first sequence number.
10. The method according to claim 9, characterized in that The method further comprises: receiving second feedback information sent by the second computing device, wherein the second feedback information is used to indicate that the second computing device successfully received the second message, the second message includes a second sequence number, and the second sequence number is used to indicate that the second message was sent by the second network card; If the first network card determines that the second message is not sent by the first network card, the second feedback information is forwarded to the second network card, where the second feedback information is used to release the cache of the second message.
11. The method according to claim 9 or 10, characterized in that The method further comprises: generating a third message according to the original message, wherein the third message includes a third sequence number, and the third sequence number is used to indicate that the third message is sent by the first network card; Sending the third message to the second computing device; receiving third feedback information forwarded by the second network card, wherein the third feedback information is used to indicate that the second computing device has not successfully received the third message, and the third feedback information is used to request the first network card to retransmit the third message; Resend the third message to the second computing device.
12. A data transmission method based on bus technology, characterized in that: Applied to a first computing device, the first computing device includes a first network card, a second network card, and a processor, and the aggregated network card runs on the first computing device. The method includes: The aggregation network card sends the original message of the processor to the first network card; The first network card generates a first message according to the original message, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card; The first network card sends the first message to the second computing device; The first network card receives the first feedback information forwarded by the second network card, wherein the first feedback information is used to indicate that the second computing device successfully receives the first message; The first network card releases the cache of the first message according to the first feedback information and the first sequence number.
13. A data transmission device based on bus technology, characterized in that: The data transmission device includes a communication unit and a processing unit, wherein: The communication unit is configured to receive an original message sent by the processor; The processing unit is configured to configure the first network card according to the original message so that the first network card sends a first message to the second computing device, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card; The processing unit is further configured to obtain first feedback information, wherein the first feedback information is used to indicate that the second computing device successfully received the first message; The processing unit is further configured to configure the first network card according to the first feedback information and the first sequence number so that the first network card releases the cache of the first message.
14. The device according to claim 13, characterized in that In the aspect of configuring the first network card according to the first feedback information and the first sequence number so that the first network card releases the cache of the first message, the processing unit is specifically configured to: First reference information is sent to the first network card according to the first feedback information and the first sequence number, wherein the first reference information is used to release the cache of the first message.
15. The device according to claim 13 or 14, characterized in that The first reference information is the first feedback information.
16. The device according to claim 13 or 14, characterized in that The first reference information is first indication information, wherein the first indication information is used to indicate the release of the first cached message.
17. The device according to any one of claims 13 to 16, characterized in that The processing unit is further configured to obtain second feedback information, wherein the second feedback information is used to indicate that the second computing device has not successfully received the second message, and the second message includes a second sequence number, and the second sequence number is used to indicate that the second message is sent by the first network card; The communication unit is further configured to send second reference information to the first network card according to the second feedback information and the second sequence number, wherein the second reference information is used to instruct the first network card to retransmit the second message.
18. The device according to any one of claims 13 to 17, characterized in that In the aspect of configuring the first network card according to the original message so that the first network card sends the first message to the second computing device, the processing unit is specifically configured to: The original message is sent to the first network card, so that the first network card generates the first message according to the original message and sends the first message to the second computing device.
19. The device according to any one of claims 13 to 17, characterized in that In the aspect of configuring the first network card according to the original message so that the first network card sends the first message to the second computing device, the processing unit is specifically configured to: Generate the first message according to the original message; The first message is sent to the first network card, so that the first network card sends the first message to the second computing device.
20. A data transmission device based on bus technology, characterized in that: The data transmission device includes a communication unit and a processing unit, wherein: The communication unit is configured to receive the original message sent by the aggregation network card; The processing unit is configured to generate a first message according to the original message, wherein the first message includes a first sequence number, and the first sequence number is used to indicate that the first message is sent by the first network card; The communication unit is further configured to send the first message to the second computing device; The communication unit is further configured to receive first feedback information forwarded by the second network card, wherein the first feedback information is used to indicate that the second computing device has successfully received the first message; The processing unit is further configured to release the cache of the first message according to the first feedback information and the first sequence number.
21. The device according to claim 20, characterized in that The communication unit is further configured to receive second feedback information sent by the second computing device, wherein the second feedback information is used to indicate that the second computing device has successfully received the second message, and the second message includes a second sequence number, and the second sequence number is used to indicate that the second message is sent by the second network card; The communication unit is further configured to forward the second feedback information to the second network card when the first network card determines that the second message is not sent by the first network card, wherein the second feedback information is used to release the cache of the second message.
22. The device according to claim 20 or 21, characterized in that The processing unit is further configured to generate a third message based on the original message, wherein the third message includes a third sequence number, and the third sequence number is used to indicate that the third message is sent by the first network card; The communication unit is further configured to send the third message to the second computing device; The communication unit is further configured to receive third feedback information forwarded by the second network card, wherein the third feedback information is used to indicate that the second computing device has not successfully received the third message, and the third feedback information is used to request the first network card to retransmit the third message; The communication unit is further configured to resend the third message to the second computing device.
23. A data transmission device cluster, characterized in that: The data transmission device cluster includes at least one data transmission device, and the at least one data transmission device includes a processor and a memory; the memory is used to store computer instructions, and the computer instructions are loaded and executed by the processor to enable the at least one data transmission device to implement the method described in any one of claims 1-12.
24. A computer-readable storage medium, characterized in that The computer-readable storage medium is used to store a computer program, wherein the computer program includes instructions for executing the method according to any one of claims 1 to 12.
25. A computer program product, characterized in that include: instructions or computer programs; When the instructions or the computer program are executed, the method according to any one of claims 1 to 12 is implemented.
Citation Information
Patent Citations
Data transmission method based on bus technology and related device
CN120474859A
Message processing method and device
CN112910802A
Logic interface data communication method and device
CN114615187A
Data processing method and device of storage system, storage system, equipment and medium
CN116886719A
Method and device for configuring multiple network cards
WO2016188240A1