A data transmission method, system, device and storage medium
By offloading data processing tasks from the processor to the network card in the RDMA network, the problem of heavy CPU burden is solved, network data exchange efficiency and processor utilization are improved, and accelerated transmission is achieved.
Patent Information
- Application Number
- CN202111146474.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-09-28
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2041-09-28
AI Technical Summary
In RDMA network, network data exchange requires the CPU to process data, which leads to a heavy burden on the CPU and affects CPU utilization and network data exchange efficiency.
Raw data is extracted from memory and passed to the network card by responding to application-initiated data transfer requests in the processor. In the network card, the original data is accelerated according to the acceleration instruction information, and the processed data is sent to the communication destination.
Offload the data processing work that originally needs to be performed by the processor to the network card, reducing the processor's work overhead, improving processor utilization, reducing transmission delays caused by data processing, and achieving accelerated transmission.
Smart Images

Figure CN115883458B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of network communication technology, and in particular to a data transmission method, system, device and storage medium. Background Art
[0002] In a Remote Direct Memory Access (RDMA) network, for distributed applications, processes running on different computing nodes need to frequently exchange network data. Currently, network data exchange relies on the CPU to process data, which places a heavy burden on the CPU, affects CPU utilization, and leads to poor efficiency of network data exchange. Summary of the invention
[0003] Multiple aspects of the present application provide a data transmission method, system, device and storage medium for improving the data transmission rate in an RDMA network.
[0004] The present application provides a data transmission method, including:
[0005] In response to a data transmission request initiated by an application, extracting original data to be transmitted from a memory, wherein the data transmission request includes acceleration instruction information;
[0006] Transmitting the original data and the acceleration instruction information to the network card of the local machine;
[0007] In the network card, the original data is accelerated according to the acceleration instruction information to obtain processed data;
[0008] The processed data is sent to a communication destination using the network card.
[0009] The embodiment of the present application also provides a communication terminal, including a processor and a network card;
[0010] The processor is used to extract the original data to be transmitted from the memory in response to the data transmission request initiated by the application, wherein the data transmission request includes acceleration instruction information; and transmit the original data and the acceleration instruction information to the network card of the local machine;
[0011] The network card is used to accelerate the original data according to the acceleration instruction information to obtain processed data; and send the processed data to the communication destination.
[0012] The embodiment of the present application further provides a data transmission system, including a first communication terminal and a second communication terminal, wherein the first communication terminal includes a first processor and a first network card, and the second communication terminal includes a second processor and a second network card;
[0013] The first processor is configured to extract original data to be transmitted from the memory in response to a data transmission request initiated by an application program, wherein the data transmission request includes acceleration instruction information; and transmit the original data and the acceleration instruction information to the first network card;
[0014] The first network card is used to accelerate the original data according to the acceleration instruction information to obtain processed data; and send the processed data to the second network card;
[0015] The second network card is used to accelerate the processed data and then write it into the memory of the second communication terminal.
[0016] An embodiment of the present application also provides a computer-readable storage medium storing computer instructions. When the computer instructions are executed by one or more processors, the one or more processors are caused to execute the aforementioned data transmission method.
[0017] In an embodiment of the present application, the processor can extract the original data to be transmitted from the memory in response to a data transmission request initiated by an application; pass the original data to the network card of the local machine; in the network card, accelerate the original data according to the acceleration instruction information corresponding to the original data to obtain processed data; and use the network card to send the processed data to the communication destination. Accordingly, in an embodiment of the present application, the data processing work that originally needs to be performed by the processor can be offloaded to the network card of the local machine. In this way, the required processing and calculation of the data can be implemented during the network transmission process, thereby offloading the corresponding work overhead on the processor, improving the utilization rate of the processor, and then reducing the transmission delay caused by data processing, and realizing accelerated transmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0019] Figure 1 A schematic diagram of the structure of a data transmission system provided by an exemplary embodiment of the present application;
[0020] Figure 2 A logical diagram of an exemplary transmission scheme provided for an exemplary embodiment of the present application;
[0021] Figure 3 A flowchart of a data transmission method provided for another exemplary embodiment of the present application;
[0022] Figure 4A structural diagram of a communication terminal provided for yet another exemplary embodiment of the present application. DETAILED DESCRIPTION
[0023] In order to make the purpose, technical solution and advantages of the present application clearer, the technical solution of the present application will be clearly and completely described below in combination with the specific embodiments of the present application and the corresponding drawings. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present application.
[0024] At present, in RDMA networks, network data exchange needs to rely on the CPU to perform data processing, resulting in poor efficiency of network data exchange. To this end, in some embodiments of the present application: the processor can respond to the data transmission request initiated by the application, extract the original data required to be transmitted from the memory; pass the original data to the network card of the local machine; in the network card, the original data is accelerated according to the acceleration instruction information corresponding to the original data to obtain processed data; and the processed data is sent to the communication destination using the network card. Accordingly, in an embodiment of the present application, the data processing work that originally needs to be performed by the processor can be offloaded to the network card of the local machine. In this way, the required processing and calculation of the data can be implemented during the network transmission process, thereby unloading the corresponding work overhead on the processor, improving the utilization rate of the processor, and then reducing the transmission delay caused by data processing, and realizing accelerated transmission.
[0025] The technical solutions provided by various embodiments of the present application are described in detail below in conjunction with the accompanying drawings.
[0026] Figure 1 This is a schematic diagram of the structure of a data transmission system provided by an exemplary embodiment of the present application. Figure 1 As shown, the system may include: a first communication terminal 10 and a second communication terminal 20, wherein the first communication terminal 10 includes a first processor 11 and a first network card 12, and the second communication terminal 20 includes a second processor 21 and a second network card 22.
[0027] Based on this, the first processor 11 can be used to respond to a data transmission request initiated by an application, extract the original data to be transmitted from the memory, and the data transmission request includes acceleration instruction information; and transmit the original data and the acceleration instruction information to the first network card 12;
[0028] The first network card 12 can be used to accelerate the original data according to the acceleration instruction information to obtain processed data; and send the processed data to the second network card 22;
[0029] The second network card 22 can be used to accelerate the processed data and then write it into the memory of the second communication terminal 20 .
[0030] In the above data transmission process, the first communication terminal 10 acts as a sending terminal and the second communication terminal 20 acts as a receiving terminal. The application can be any distributed application in the RDMA network. The data transmission solution provided in this embodiment can be applied to various application scenarios corresponding to the RDMA network, such as cloud computing scenarios, etc. This embodiment does not limit the application scenarios. In addition, this embodiment does not limit the physical implementation form of the first communication terminal 10 and the second communication terminal 20. For example, in a cloud computing scenario, the first communication terminal 10 and the second communication terminal 20 in this embodiment can be computing nodes, cloud servers, etc. in the cloud network.
[0031] refer to Figure 1 , the process of the application can be distributed on the first communication terminal 10 and the second communication terminal 20. In this embodiment, at the application layer, the application can initiate a data transmission request, so that the first processor 11 can extract the original data to be transmitted from the memory, and pass the original data to the first network card 12 in the form of message. Among them, the original data is relative to the processed data in the following text, and this description does not limit the state of the data. The original data can be the initial data generated by the application, and of course it can also be the data generated after some processing and calculation by the first processor 11.
[0032] In this embodiment, acceleration operators can be deployed in the first network card 12 and the second network card 22, and the acceleration operators are used to perform acceleration processing. For the first network card 12, after receiving the original data transmitted by the first processor 11, the acceleration operator deployed thereon can be used to accelerate the processing of the original data. Among them, in this embodiment, the acceleration operator can be deployed on the first network card 12 on demand to support the acceleration requirements of different application scenarios. In addition, the type of acceleration operator deployed on the first network card 12 can be one or more. Acceleration operators may include but are not limited to encryption and decryption operators, video encoding and decoding operators, packet detection operators, etc.
[0033] Before accelerating the processing of the original data, in this embodiment, the acceleration instruction information corresponding to the original data can be determined. The acceleration instruction information includes processing actions and action parameters; the processing actions may include one or more of encryption and decryption, video encoding / decoding, and packet detection. For example, it can be specified in the acceleration instruction information that the video encoding action is first performed on the original data, and then the encryption action is performed on the encoded data. Preferably, the processing actions in the acceleration instruction information can select those processing actions that do not need to be returned to the memory for subsequent processing, which can reduce the round-trip copying of data between the network card and the processor, and thus, a better hardware acceleration effect can be obtained.
[0034] In this embodiment, the acceleration instruction information corresponding to the original data can be configured in the data transmission request by the application program, so that the first processor 11 can parse the acceleration instruction information from the data transmission request and send the acceleration instruction information to the network card. Figure 2 A logical diagram of an exemplary transmission scheme provided for an exemplary embodiment of the present application. Figure 2 , the acceleration instruction information can be used as an input of the first network card 12, and the original data can also be used as another input of the first network card 12. On this basis, the first network card 12 can accelerate the original data according to the acceleration instruction information to obtain processed data; and send the processed data to the second network card 22. Among them, the first network card 12 can accelerate the original data in units of the aforementioned message. Figure 2 The application can also configure the communication address information (such as the source memory address, the target memory address, the data length, etc. in the figure) to the data transmission request, which can be used as another input of the first network card 12. In addition, if the acceleration operator of the first network card 12 only needs other metadata provided by the application, the first processor 11 can also put these metadata in the cache corresponding to the first network card 12 for the first network card 12 to use.
[0035] In summary, in this embodiment, the first network card 12 can call the acceleration operator deployed thereon to execute the processing action specified in the acceleration instruction information, and one or more acceleration operators deployed on the first network card 12 can cooperate with each other to complete the accelerated processing of the original data and generate processed data. Among them, the acceleration operator deployed on the first network card 12 can be located on the network transmission channel, that is, the accelerated processing process of the original data and the network transmission process are coupled with each other. In this way, after completing the accelerated processing, the first network card 12 can send the processed data to the second network card 22 on the second communication terminal 20.
[0036] Figure 2 A logical diagram of an exemplary transmission scheme provided for an exemplary embodiment of the present application. Figure 2, for the first network card 12, in the process of sending the processed data to the second network card 22, if the length of the processed data exceeds the preset standard, the processed data can be packetized to generate at least one network data packet, and the at least one network data packet is sent to the second network card 22. A preferred packetization scheme may be: based on the data granularity agreed upon by the first communication terminal 10 and the second communication terminal 20, the processed data is packetized. For example, if the data granularity agreed upon by the first communication terminal 10 and the second communication terminal 20 is a data block, then in the process of packetization, an integer number of data blocks can be encapsulated in a single network data packet, that is, the data blocks are not destroyed, so that different network data packets are independent of each other. Based on the above, the first network card 12 can process the original data in units of messages, which ensures that the first network card 12 can obtain the full picture of the original data, and therefore, the packetization work can be completed more accurately and reasonably from a global perspective.
[0037] In the case where the first communication terminal 10 and the second communication terminal 20 have not agreed on the acceleration instruction information provided by each for the application, the first network card 12 can also send the acceleration instruction information corresponding to the original data to the second network card 22. For example, the acceleration instruction information corresponding to the original data can be configured into the processed data to achieve transmission, which can ensure that the second network card 22 can smoothly determine what kind of acceleration processing it should perform on the processed data. Figure 2 , the acceleration instruction information of the original data (corresponding to Figure 2 Action and parameters 1…N in the original data) are configured into at least one network data packet, where the acceleration instruction information is used to prompt the second communication terminal 20 of the processing operation that has been performed on the data in the network data packet. Optionally, the acceleration instruction information corresponding to the original data can be configured in the packet header of the network data packet. Of course, the configuration position of the acceleration instruction information corresponding to the original data in the network data packet is not limited to this. In the case where the first communication terminal 10 and the second communication terminal 20 have agreed on the acceleration instruction information provided by each for the application, the first network card 12 does not need to send the acceleration instruction information corresponding to the original data to the second network card 22. The second network card 22 can use the default acceleration instruction information to perform acceleration processing as agreed. That is to say, in an embodiment of the present application, the first network card 12 can provide the acceleration instruction information corresponding to the original data to the second network card 22 as an option.
[0038] In addition, as mentioned above, the first network card 12 can process the original data in units of messages. Based on this, the first network card 12 can configure a message identifier for the processed data corresponding to the original data. Following the above-mentioned packet sending method, the first network card 12 can configure a packet identifier for at least one network data packet. The first network card 12 can also configure destination address information such as destination memory address and destination memory offset for the processed data. Based on this, in this embodiment, the first network card 12 can generate packet attribute information for at least one network data packet, for example, refer to Figure 2 , the packet attribute information of a single network data packet may include one or more information including a message identifier, a corresponding packet identifier, a destination memory address, and a destination memory offset. In this way, the packet attribute information is used to prompt the destination communication terminal with one or more information including the identification information of the network data packet, the relationship information with other network data packets, and the destination address information. Among them, the message identifier and the packet identifier can be used to prompt the relationship between network data packets, and each network data packet with the same message identifier belongs to the same data transmission request of the application. The first network card 12 can configure the packet attribute information into the network data packet to pass the packet attribute information to the second network card 22. Optionally, the packet attribute information can be configured in the packet header of the network data packet, or it can be configured as a load in the data field of the network data packet. Of course, the configuration position of the packet attribute information in the network data packet is not limited to this.
[0039] For the second network card 22 , after receiving the processed data provided by the first network card 12 , the processed data can be accelerated to generate target data, and the target data can be written into the memory of the second communication terminal 20 .
[0040] In the process of accelerating the processing of the processed data, the second network card 22 can determine the acceleration instruction information corresponding to the received processed data, and can accelerate the processed data according to the acceleration instruction information corresponding to the processed data. In the case where the first network card 12 has provided the second network card 22 with the acceleration instruction information corresponding to the original data, the second network card 22 can determine the acceleration instruction information corresponding to the processed data according to the acceleration instruction information corresponding to the original data and the corresponding relationship of the processing instructions agreed with the first communication terminal 10. In the case where the first communication terminal 10 and the second communication terminal 20 have agreed on the acceleration instruction information provided by each for the application, the second network card 22 can determine the default acceleration instruction information as the acceleration instruction information corresponding to the processed data according to the agreement.
[0041] Following the situation in which the first network card 12 transmits the processed data in the manner of packet transmission mentioned above, the second network card 22 can accelerate the processing of the processed data using the network data packet as the processing unit. As mentioned above, at least one network data packet obtained through the packet processing of the first network card 12 is independent of each other. In this way, even if the network data packet received by the second network card 22 is out of order, it will not affect the accelerated processing progress of the second network card 22. Therefore, the second network card 22 can process multiple network data packets in parallel, which can save more acceleration processing time, thereby further improving the acceleration effect of the second network card 22 on data transmission. In this packet transmission mode, taking the target data packet received by the second network card 22 as an example, the second network card 22 can determine the target instruction information corresponding to the target data packet; according to the target instruction information, accelerate the target data packet to obtain the target data; and transmit the target data to the memory. The scheme for determining the target instruction information corresponding to the target data packet may be: parsing the acceleration instruction information contained in the target data packet, the acceleration instruction information contained in the target data packet is used to prompt other communication terminals to perform processing operations on the data in the target data packet; based on the parsed acceleration instruction information and the corresponding relationship of processing instructions agreed with other communication terminals, determining the target instruction information corresponding to the target data. The second network card 22 may also parse the packet attribute information contained in the target data packet, and obtain information such as the message identifier, the corresponding packet identifier, the destination memory address and the destination memory offset of the target data packet. In this way, the reference Figure 2 After the acceleration processing by the second network card 22, an exemplary data structure of the obtained destination data may be: destination memory address, destination memory offset and data, which enables the second network card 22 to accurately write the destination data into the memory of the second communication terminal 20.
[0042] At this point, the data transfer process initiated by the application is completed.
[0043] It is worth noting that the first communication terminal 10 and the second communication terminal 20 may assume the role of a sender or a receiver in different data transmission processes. Taking the first communication terminal 10 as an example, in addition to assuming the role of a sender in the above-mentioned data transmission process with the second communication terminal 20, the first communication terminal 10 also assumes the role of a receiver in other data processing processes. In this case, the first network card 12 can receive a target data packet sent by other communication terminals; determine the target instruction information corresponding to the target data packet; accelerate the target data packet according to the target instruction information to obtain the destination data; and pass the destination data to the memory. Among them, the scheme for determining the target instruction information corresponding to the target data packet can be: parsing the acceleration instruction information contained in the target data packet, the acceleration instruction information contained in the target data packet is used to prompt other communication terminals for the processing operations performed on the data in the target data packet; based on the parsed acceleration instruction information and the processing instruction correspondence agreed with other communication terminals, determine the target instruction information corresponding to the target data. The first network card 12 can also parse the packet attribute information contained in the target data packet, and obtain information such as the message identifier, the corresponding packet identifier, the destination memory address and the destination memory offset of the target data packet. In this way, the first network card 12 can accurately write the destination data into the memory of the first communication terminal 10 to achieve accelerated reception.
[0044] Accordingly, in this embodiment, the processor can extract the original data required to be transmitted from the memory in response to the data transmission request initiated by the application; pass the original data to the network card of the local machine; in the network card, the original data is accelerated according to the acceleration instruction information corresponding to the original data to obtain the processed data; and the processed data is sent to the communication destination using the network card. Accordingly, in the embodiment of the present application, the data processing work that originally needs to be performed by the processor can be unloaded to the network card of the local machine, so that the required processing and calculation of the data can be implemented during the network transmission process, thereby unloading the corresponding work overhead on the processor, improving the utilization rate of the processor, and then reducing the transmission delay caused by data processing, and realizing accelerated transmission. In addition, according to the different processing actions in the acceleration instruction information, transmission acceleration can be achieved from different aspects, such as reducing data communication and processing delays in the RPC processing process, increasing network bandwidth, etc., and conversely, the processing actions and processing parameters in the acceleration instruction information can be determined according to the required acceleration aspects, so as to achieve the desired acceleration effect.
[0045] Figure 3 A flowchart of a data transmission method provided by another exemplary embodiment of the present application. The method can be executed by a data transmission device, which can be implemented as a combination of software and / or hardware, and the data transmission device can be integrated in a communication terminal. Figure 3 , the method may include:
[0046] Step 300: In response to a data transmission request initiated by an application, extract the original data to be transmitted from the memory, wherein the data transmission request includes acceleration instruction information;
[0047] Step 301: transmit the original data and acceleration instruction information to the network card of the local machine;
[0048] Step 302: In the network card, the original data is accelerated according to the acceleration instruction information to obtain processed data;
[0049] Step 303: Use the network card to send the processed data to the communication destination.
[0050] In an optional embodiment, the acceleration instruction information includes a processing action and an action parameter; the processing action includes one or more of encryption / decryption, video encoding / decoding, and packet detection.
[0051] In an optional embodiment, step 303 may include:
[0052] In the network card, the processed data is packetized based on the data granularity agreed upon with the communication destination to generate at least one network data packet;
[0053] Send at least one network data packet to a communication destination.
[0054] In an optional embodiment, before sending at least one network data packet to the communication destination, the method further includes:
[0055] configuring acceleration instruction information into at least one network data packet, the acceleration instruction information being used to prompt the destination communication terminal of the processing operation that has been performed on the data in the network data packet; and / or
[0056] The packet attribute information is configured into at least one network data packet, and the packet attribute information is used to prompt the destination communication terminal with one or more information of the identification information of the network data packet, the relationship information with other network data packets, and the information in the destination memory address.
[0057] In an optional embodiment, the step of packetizing the processed data based on the data granularity agreed upon with the communication destination to generate at least one network data packet may include:
[0058] Configure the message identifier for the processed data;
[0059] Splitting the processed data into at least one network data packet, wherein a single network data packet contains data of an integer multiple of the data granularity;
[0060] Configure a packet identifier for at least one network data packet respectively;
[0061] A message identifier and a corresponding packet identifier are added to at least one network data packet respectively.
[0062] In an optional embodiment, the method further comprises:
[0063] Use the network card to receive target data packets sent by other communication terminals;
[0064] Determine target instruction information corresponding to the target data packet;
[0065] According to the target instruction information, the target data packet is accelerated to obtain the target data;
[0066] Transfer the destination data to memory.
[0067] In an optional embodiment, the step of determining the target instruction information corresponding to the target data packet may include:
[0068] Parsing the acceleration instruction information contained in the target data packet, the acceleration instruction information contained in the target data packet is used to prompt other communication terminals of the processing operations performed on the data in the target data packet;
[0069] Based on the parsed acceleration instruction information and the corresponding relationship of processing instructions agreed upon with other communication terminals, the target instruction information corresponding to the target data is determined.
[0070] It is worth noting that the technical details in the above-mentioned embodiments of the data transmission method can refer to the relevant description of the first communication end in the aforementioned system embodiment. In order to save space, they will not be repeated here, but this should not cause a loss in the scope of protection of this application.
[0071] It should be noted that the execution subject of each step of the method provided in the above embodiment can be the same device, or the method can be executed by different devices. For example, the execution subject of steps 300 to 303 can be device A; for another example, the execution subject of step 300 can be device A, and the execution subject of step 303 can be device B; and so on.
[0072] In addition, in some of the processes described in the above embodiments and the accompanying drawings, multiple operations appearing in a specific order are included, but it should be clearly understood that these operations may not be executed in the order in which they appear in this document or may be executed in parallel, and the sequence numbers of the operations, such as 301, 302, etc., are only used to distinguish between different operations, and the sequence numbers themselves do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be executed in sequence or in parallel.
[0073] Figure 4A schematic diagram of the structure of a communication terminal provided by another exemplary embodiment of the present application. Figure 4 As shown, the communication terminal may include: a memory 40 , a processor 41 and a network card 42 .
[0074] The processor may be used to extract the original data to be transmitted from the memory in response to the data transmission request initiated by the application, wherein the data transmission request includes the acceleration instruction information; and transmit the original data and the acceleration instruction information to the network card of the local machine;
[0075] The network card can be used to accelerate the processing of the original data according to the acceleration instruction information to obtain the processed data; and send the processed data to the communication destination.
[0076] In an optional embodiment, the network card, in the process of sending the processed data to the communication destination, may be used to:
[0077] Based on the data granularity agreed upon with the communication destination, packetizing the processed data to generate at least one network data packet;
[0078] Send at least one network data packet to a communication destination.
[0079] In an optional embodiment, the acceleration instruction information includes a processing action and an action parameter; the processing action includes one or more of encryption / decryption, video encoding / decoding, and packet detection.
[0080] In an optional embodiment, the network card, in the process of sending the processed data to the communication destination, may be used to:
[0081] In the network card, the processed data is packetized based on the data granularity agreed upon with the communication destination to generate at least one network data packet;
[0082] Send at least one network data packet to a communication destination.
[0083] In an optional embodiment, before sending at least one network data packet to the communication destination, the network card may also be used to:
[0084] configuring acceleration instruction information into at least one network data packet, the acceleration instruction information being used to prompt the destination communication terminal of the processing operation that has been performed on the data in the network data packet; and / or
[0085] The packet attribute information is configured into at least one network data packet, and the packet attribute information is used to prompt the destination communication terminal with one or more information of the identification information of the network data packet, the relationship information with other network data packets, and the information in the destination memory address.
[0086] In an optional embodiment, the network card, in the process of packetizing the processed data based on the data granularity agreed with the communication destination to generate at least one network data packet, may be used to:
[0087] Configure the message identifier for the processed data;
[0088] Splitting the processed data into at least one network data packet, wherein a single network data packet contains data of an integer multiple of the data granularity;
[0089] Configure a packet identifier for at least one network data packet respectively;
[0090] A message identifier and a corresponding packet identifier are added to at least one network data packet respectively.
[0091] In an optional embodiment, the network card can also be used for:
[0092] Receive target data packets sent by other communication terminals;
[0093] Determine target instruction information corresponding to the target data packet;
[0094] According to the target instruction information, the target data packet is accelerated to obtain the target data;
[0095] Transfer the destination data to memory.
[0096] In an optional embodiment, during the process of determining the target instruction information corresponding to the target data packet, the network card may be used to:
[0097] Parsing the acceleration instruction information contained in the target data packet, the acceleration instruction information contained in the target data packet is used to prompt other communication terminals of the processing operations performed on the data in the target data packet;
[0098] Based on the parsed acceleration instruction information and the corresponding relationship of processing instructions agreed upon with other communication terminals, the target instruction information corresponding to the target data is determined.
[0099] Figure 4 Only some components are shown schematically, which does not mean that the communication end only includes Figure 4 Components shown.
[0100] It is worth noting that the technical details in the above-mentioned embodiments of the communication end can refer to the relevant description of the first communication end in the aforementioned system embodiment. In order to save space, they will not be repeated here, but this should not cause loss of the protection scope of this application.
[0101] Accordingly, an embodiment of the present application further provides a computer-readable storage medium storing a computer program, which, when executed, can implement each step that can be executed by the communication terminal in the above method embodiment.
[0102] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.
[0103] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0104] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0105] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0106] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0107] The memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.
[0108] Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. Information can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.
[0109] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.
[0110] The above is only the embodiment of the present application and is not intended to limit the present application. For those skilled in the art, the present application may have various changes and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application should be included in the protection scope of the present application.
Claims
1. A data transmission method, comprising: The processor extracts the original data to be transmitted from the memory in response to the data transmission request initiated by the application, wherein the data transmission request includes acceleration instruction information; The original data and the acceleration instruction information are transmitted to the network card of the local machine; the acceleration instruction information includes a processing action and an action parameter; an acceleration operator is deployed on the network transmission channel of the network card; In the network card, the original data is accelerated by using the acceleration operator according to the acceleration instruction information to obtain processed data; The processed data is sent to a communication destination using the network card.
2. According to the method of claim 1, the processing action includes one or more of encryption / decryption, video encoding / decoding and packet detection.
3. The method according to claim 1, wherein the step of using the network card to send the processed data to a communication destination comprises: In the network card, based on the data granularity agreed upon with the communication destination, the processed data is packetized to generate at least one network data packet; The at least one network data packet is sent to the communication destination.
4. The method according to claim 3, before sending the at least one network data packet to the communication destination, further comprising: configuring the acceleration instruction information into the at least one network data packet, the acceleration instruction information being used to prompt the destination communication terminal of the processing operation that has been performed on the data in the network data packet; and / or Packet attribute information is configured into the at least one network data packet, and the packet attribute information is used to prompt the destination communication terminal with one or more of the identification information of the network data packet, relationship information with other network data packets, and destination address information.
5. The method according to claim 3, wherein the processed data is packetized based on the data granularity agreed upon with the communication destination to generate at least one network data packet, comprising: Configuring a message identifier for the processed data; Splitting the processed data into at least one network data packet, wherein a single network data packet contains data of an integer multiple of the data granularity; respectively configure a packet identifier for the at least one network data packet; The message identifier and the corresponding packet identifier are respectively added to the at least one network data packet.
6. The method according to claim 1, further comprising: Utilizing the network card to receive target data packets sent by other communication terminals; Determining target instruction information corresponding to the target data packet; According to the target instruction information, the target data packet is accelerated to obtain the target data; The destination data is transferred to the memory.
7. The method according to claim 6, wherein determining the target instruction information corresponding to the target data packet comprises: Parsing the acceleration instruction information contained in the target data packet, where the acceleration instruction information contained in the target data packet is used to prompt the other communication end of the processing operation performed on the data in the target data packet; Based on the parsed acceleration instruction information and the corresponding relationship of processing instructions agreed upon with the other communication terminals, the target instruction information corresponding to the target data is determined.
8. A communication terminal, comprising a processor and a network card; The processor is used to extract the original data to be transmitted from the memory in response to a data transmission request initiated by the application program, wherein: The data transmission request includes acceleration instruction information; the original data and the acceleration instruction information are transmitted to the network card of the local machine; the acceleration instruction information includes a processing action and an action parameter; an acceleration operator is deployed on the network transmission channel of the network card; The network card is used to accelerate the original data using the acceleration operator according to the acceleration instruction information to obtain processed data; The processed data is sent to a communication destination.
9. The communication terminal according to claim 8, wherein the network card, in the process of sending the processed data to the communication destination terminal, is used to: Based on the data granularity agreed upon with the communication destination, packetizing the processed data to generate at least one network data packet; The at least one network data packet is sent to the communication destination.
10. A data transmission system, comprising a first communication terminal and a second communication terminal, wherein the first communication terminal comprises a first processor and a first network card, and the second communication terminal comprises a second processor and a second network card; The first processor is used to extract the original data to be transmitted from the memory in response to a data transmission request initiated by the application, wherein the data transmission request includes acceleration instruction information; transmit the original data and the acceleration instruction information to the first network card; the acceleration instruction information includes a processing action and an action parameter; an acceleration operator is deployed on the network transmission channel of the network card; The first network card is used to accelerate the original data using the acceleration operator according to the acceleration instruction information to obtain processed data; and send the processed data to the second network card; The second network card is used to accelerate the processed data and then write it into the memory of the second communication terminal.
11. The system according to claim 10, wherein the second network card, in the process of writing the processed data into the memory of the second communication terminal after accelerating the processed data, is used to: receiving a target data packet sent by the first network card; Determining target instruction information corresponding to the target data packet; According to the target instruction information, the target data packet is accelerated to obtain the target data; The destination data is written into the memory of the second communication end.
12. A computer-readable storage medium storing computer instructions, which, when executed by one or more processors, causes the one or more processors to execute the data transmission method according to any one of claims 1 to 7.
Citation Information
Patent Citations
Technologies for a network interface controller with accelerator device
WO2018102416A1