Data transmission method, data transmission system and data transmission device

By identifying and transmitting the data to be transmitted of the timeout data type, the problem of unstable data transmission caused by excessive single-core CPU resource utilization is solved, and stable and complete data transmission is achieved in the elephant flow scenario.

CN120675983APending Publication Date: 2025-09-19HANGZHOU ALICLOUD FEITIAN INFORMATION TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202410308963.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-03-18
Publication Date
2025-09-19

AI Technical Summary

Technical Problem

During data transmission, as the amount of network transmission data increases and the transmission duration increases, the single-core CPU resource utilization rate is too high, resulting in packet loss problems during data transmission, affecting the stability of data transmission.

Method used

By obtaining the data transmission identifier of the data to be transmitted and the type reference identifier stored in the data order preservation queue, the data type of the data to be transmitted is automatically identified, and if the data type is a timeout data type, it is transmitted according to the current transmission order, and the time information and type reference identifier stored in the data order preservation queue are used to accurately determine and transmit the data to be transmitted of the timeout data type.

Benefits of technology

In the case of large delay jitter in the processing unit, the stability and integrity of data transmission are ensured, packet loss is avoided, and the accuracy and reliability of data transmission are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120675983A_ABST
    Figure CN120675983A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data transmission method, a data transmission system and a data transmission device.The data transmission method comprises the steps that to-be-transmitted data is obtained, the to-be-transmitted data is data processed by a processing unit in multiple pieces of original data, and the to-be-transmitted data carries a data transmission identifier; according to the data transmission identifier and a type reference identifier stored in a data order-preserving queue, the data type of the to-be-transmitted data is determined, the data order-preserving queue comprises a plurality of storage units in one-to-one correspondence with the original data, and the storage units are used for storing data identifiers and time information of the original data; the plurality of storage units are obtained through sequential arrangement based on time information, and the type reference identifier is obtained through screening from data identifiers based on the time information; and transmitting the to-be-transmitted data according to the current transmission sequence of the to-be-transmitted data under the condition that the data type is the timeout data type. The data of the timeout data type can be stably transmitted, and the integrity of data transmission is ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of this specification relate to the field of computer technology, and in particular to a data transmission method, a data transmission system, and a data transmission device. Background Art

[0002] With the development of computer technology, more and more computer technologies are applied in the field of data transmission. In computer systems, network cards serve as a bridge connecting the host and the network, responsible for implementing the data exchange process between the host's internal core processor (CPU, Central Processing Unit), memory and the external network.

[0003] However, as the amount of network data transmitted and the duration of transmission increase, there is a risk of excessive single-core CPU resource utilization, which can lead to packet loss and affect data transmission stability. Therefore, a stable and complete data transmission solution is urgently needed. Summary of the Invention

[0004] In view of this, embodiments of this specification provide a data transmission method. One or more embodiments of this specification also relate to a data transmission system, a data transmission apparatus, a computing device, a computer-readable storage medium, and a computer program product to address technical deficiencies in the prior art.

[0005] According to a first aspect of the embodiments of this specification, a data transmission method is provided, including:

[0006] Acquire data to be transmitted, wherein the data to be transmitted is data processed by the processing unit among a plurality of original data, and the data to be transmitted carries a data transmission identifier;

[0007] Determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue, wherein the data order-preserving queue includes multiple storage units corresponding one to one to the original data, the storage units are used to store the data identifier and time information of the original data, the multiple storage units are sequentially arranged based on the time information, and the type reference identifier is obtained by screening the data identifier based on the time information;

[0008] In case the data type is a timeout data type, the data to be transmitted is transmitted according to the current transmission order of the data to be transmitted.

[0009] According to a second aspect of an embodiment of this specification, there is provided a data transmission system, including a network card and a processing unit;

[0010] A processing unit, configured to process a plurality of raw data;

[0011] A network card is used to obtain data to be transmitted, wherein the data to be transmitted is data processed by a processing unit among multiple original data, and the data to be transmitted carries a data transmission identifier; the data type of the data to be transmitted is determined according to the data transmission identifier and the type reference identifier stored in the data order preservation queue, wherein the data order preservation queue includes multiple storage units corresponding to the original data one by one, the storage units are used to store the data identifier and time information of the original data, the multiple storage units are arranged in sequence based on the time information, and the type reference identifier is obtained by filtering from the data identifier based on the time information; when the data type is a timeout data type, the data to be transmitted is transmitted according to the current transmission order of the data to be transmitted.

[0012] According to a third aspect of the embodiments of this specification, a data transmission device is provided, including:

[0013] an acquisition module configured to acquire data to be transmitted, wherein the data to be transmitted is data processed by the processing unit from among the plurality of original data, and the data to be transmitted carries a data transmission identifier;

[0014] a determination module configured to determine a data type of the data to be transmitted based on the data transmission identifier and a type reference identifier stored in the data order-preserving queue, wherein the data order-preserving queue includes a plurality of storage units corresponding one-to-one to the original data, the storage units being used to store the data identifier and time information of the original data, the plurality of storage units being sequentially arranged based on the time information, and the type reference identifier being obtained by screening the data identifier based on the time information;

[0015] The transmission module is configured to transmit the data to be transmitted according to the current transmission order of the data to be transmitted when the data type is a timeout data type.

[0016] According to a fourth aspect of the embodiments of this specification, there is provided a computing device, including:

[0017] memory and processor;

[0018] The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer programs / instructions are executed by the processor, the steps of the above-mentioned data transmission method are implemented.

[0019] According to a fifth aspect of the embodiments of this specification, a computer-readable storage medium is provided, which stores a computer program / instruction, and when the computer program / instruction is executed by a processor, the steps of the above-mentioned data transmission method are implemented.

[0020] According to a sixth aspect of the embodiments of this specification, a computer program product is provided, comprising a computer program / instruction, which implements the steps of the above-mentioned data transmission method when executed by a processor.

[0021] The data transmission method provided by one embodiment of the present specification includes: obtaining data to be transmitted, wherein the data to be transmitted is data processed by a processing unit among a plurality of original data, and the data to be transmitted carries a data transmission identifier; determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue, wherein the data order-preserving queue includes a plurality of storage units corresponding one to one to the original data, the storage units are used to store the data identifier and time information of the original data, the plurality of storage units are obtained by sequentially arranging based on the time information, and the type reference identifier is obtained by screening the data identifier based on the time information; in the case where the data type is a timeout data type, transmitting the data to be transmitted according to the current transmission order of the data to be transmitted. By automatically identifying the data type of the data to be transmitted, the data to be transmitted of the timeout data type can be accurately determined and transmitted when the delay jitter of the processing unit is large, thereby ensuring the stability and integrity of the data transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] Figure 1 This is an architectural diagram of a data transmission system provided by one embodiment of this specification;

[0023] Figure 2 This is a flow chart of a data transmission method provided by one embodiment of this specification;

[0024] Figure 3 This is a schematic diagram of a data order-preserving queue in a data transmission method provided by an embodiment of this specification;

[0025] Figure 4 This is an architectural diagram of another data transmission system provided by one embodiment of this specification;

[0026] Figure 5 This is a structural diagram of a data transmission device provided by an embodiment of this specification;

[0027] Figure 6 This is a structural block diagram of a computing device provided by one embodiment of this specification. DETAILED DESCRIPTION

[0028] The following description sets forth many specific details to facilitate a thorough understanding of this specification. However, this specification can be implemented in many other ways than those described herein, and those skilled in the art can make similar generalizations without violating the scope of this specification. Therefore, this specification is not limited to the specific implementations disclosed below.

[0029] The terms used in one or more embodiments of this specification are for the purpose of describing specific embodiments only and are not intended to limit one or more embodiments of this specification. The singular forms "a," "the," and "the" used in one or more embodiments of this specification and the appended claims are also intended to include plural forms unless the context clearly indicates otherwise. It should also be understood that the term "and / or" used in one or more embodiments of this specification refers to and includes any or all possible combinations of one or more associated listed items.

[0030] It should be understood that although the terms first, second, etc. may be used to describe various information in one or more embodiments of this specification, such information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of one or more embodiments of this specification, the first may also be referred to as the second, and similarly, the second may also be referred to as the first. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".

[0031] In addition, it should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in one or more embodiments of this specification are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.

[0032] First, the terms involved in one or more embodiments of this specification are explained.

[0033] Data forwarding plane: Also known as the data plane or forwarding plane, the data forwarding plane is the portion of a network device (such as a router, switch, or virtual switch in a software-defined network) responsible for processing and forwarding data packets. This plane's primary function is to process incoming data packets at high speed and without errors based on pre-defined rules (such as routing tables, forwarding tables, or flow tables) and determine which interface these packets should be sent out through to reach their destination.

[0034] Gateway: A gateway is a device or system used to connect two or more different networks and is responsible for transferring data packets from one network to another, acting as a bridge and translator between different networks.

[0035] Cloud Gateway: A cloud gateway is a forwarding node of the data center gateway type and serves as a traffic aggregation point.

[0036] Load balancing: Load balancing refers to distributing traffic evenly across multiple computing devices.

[0037] Elephant Flow scenario: The elephant flow scenario usually refers to the transmission process in network traffic with huge data volume and long duration.

[0038] Field-Programmable Gate Array (FPGA): A programmable device is an integrated circuit that allows users to configure and reprogram its internal logic functions as needed. It consists of a large number of basic programmable logic cells, configurable input / output blocks, digital signal processing modules, embedded memory resources, and other advanced functional modules. It offers programmability, flexibility, parallel processing capabilities, high performance, and low power consumption.

[0039] Hardware entries: Hardware entries are mainly used to perform high-speed packet processing and forwarding decisions. Compared with CPU software processing, hardware entries provide lower latency and higher throughput.

[0040] A message is a unit of data sent once. It is the fundamental unit of network communication, containing the complete information transmitted from the source to the destination. A message can contain any form of data, such as text, images, audio, or video, and has different representations and encapsulation structures at different network layers.

[0041] Structured Query Language (SQL): Structured Query Language is a database query and programming language used to access data and query, update, and manage relational database systems.

[0042] Gateways can encounter various problems when transmitting data. For example, cloud gateways are the core forwarding nodes in cloud networks, characterized by being stateless and handling high-volume traffic. Traditional data forwarding solutions are prone to single-core overload in large traffic scenarios, impacting the online stability of cloud network projects. While solutions based on programmable switching chips offer guaranteed performance, hardware resource limitations and chip supply shortages hinder the project's continued evolution.

[0043] In order to solve the above problems, an embodiment of this specification proposes a data transmission scheme applied to a gateway, obtaining data to be transmitted, wherein the data to be transmitted is data processed by a processing unit among multiple original data, and the data to be transmitted carries a data transmission identifier; the data type of the data to be transmitted is determined according to the data transmission identifier and the type reference identifier stored in the data order preservation queue, wherein the data order preservation queue includes multiple storage units corresponding one to one to the original data, the storage units are used to store the data identifier and time information of the original data, the multiple storage units are arranged in sequence based on the time information, and the type reference identifier is obtained by filtering from the data identifier based on the time information; when the data type is a timeout data type, the data to be transmitted is transmitted according to the current transmission order of the data to be transmitted.

[0044] It should be noted that the data transmission scheme proposed in the embodiments of this specification can also be applied to the core nodes of the cloud gateway data forwarding plane, such as the Internet Gateway (IGW), the Carrier-grade GateWay (CGW), and the gateway (VGW, Virtua lGateWay) within the Virtual Private Cloud (VPC, Vir ivate Cloud). This specification does not impose any restrictions on this. By automatically identifying the data type of the data to be transmitted, when the processing unit delay jitter is large, the data to be transmitted of the timeout data type can be accurately determined and transmitted, thereby ensuring the stability and integrity of data transmission.

[0045] In this specification, a data transmission method is provided. This specification also relates to a data transmission system, a data transmission device, a computing device, and a computer-readable storage medium, which are described in detail one by one in the following embodiments.

[0046] See also Figure 1 , Figure 1 1 shows an architecture diagram of a data transmission system provided by an embodiment of this specification. The data transmission system may include a network card 100 and a processing unit 200;

[0047] The processing unit 200 is configured to process a plurality of raw data;

[0048] The network card 100 is used to obtain data to be transmitted, wherein the data to be transmitted is data processed by the processing unit 200 from multiple original data, and the data to be transmitted carries a data transmission identifier; the data type of the data to be transmitted is determined according to the data transmission identifier and the type reference identifier stored in the data order preservation queue, wherein the data order preservation queue includes multiple storage units corresponding to the original data one by one, the storage units are used to store the data identifier and time information of the original data, the multiple storage units are arranged in sequence based on the time information, and the type reference identifier is obtained by filtering from the data identifier based on the time information; when the data type is a timeout data type, the data to be transmitted is transmitted according to the current transmission order of the data to be transmitted.

[0049] The scheme of the embodiments of this specification is applied. Since the data order-preserving queue includes multiple storage units corresponding one-to-one to the original data, the storage units are used to store the data identification and time information of the original data. The multiple storage units are arranged in sequence based on the time information, and the type reference identification is obtained by screening from the data identification based on the time information. By utilizing the data transmission identification and the type reference identification stored in the data order-preserving queue, the data type of the data to be transmitted is automatically identified. Therefore, when the delay jitter of the processing unit is large, the data to be transmitted of the timeout data type can be accurately determined and transmitted, thereby ensuring the stability and integrity of the data transmission.

[0050] In an optional embodiment of this specification, the data transmission system may further include a programmable component;

[0051] A programmable component for receiving a data transmission identifier and a data order-keeping queue sent by the network card 100; determining a data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-keeping queue; and sending the data type of the data to be transmitted to the network card 100;

[0052] The network card 100 is further configured to receive a data type sent by the programmable component, and, if the data type is a timeout data type, transmit the data to be transmitted according to the current transmission order of the data to be transmitted.

[0053] By applying the solutions of the embodiments of this specification, the data transmission system can solve the elephant flow risks in traditional solutions by combining the programmability, high performance and flexibility of programmable components, while providing higher protection in hardware table specifications and evolution.

[0054] See also Figure 2 , Figure 2 A flowchart of a data transmission method provided by an embodiment of this specification is shown, which specifically includes the following steps:

[0055] Step 202: Acquire data to be transmitted, wherein the data to be transmitted is data processed by a processing unit among a plurality of original data, and the data to be transmitted carries a data transmission identifier.

[0056] In one or more optional embodiments of the present specification, during data transmission, the network card can obtain the data to be transmitted, and distribute and transmit the data to be transmitted.

[0057] Specifically, the data to be transmitted can be referred to as a message to be transmitted. The data to be transmitted can be data in different scenarios, such as payment data in a financial scenario, game data in a game scenario, and so on. Raw data refers to data that has not been processed by a processing unit. After being processed by a processing unit, the raw data becomes the data to be transmitted. A processing unit refers to a physical core in a CPU, which can also be referred to as a core. The number of processing units can be one or more. It should be noted that in a scenario where data transmission is a large flow, it is very easy to have a high risk of a single core. In order to avoid this risk, preferably, the number of processing units in the embodiment of this specification is multiple, so that the single-core load can be reduced by spreading multiple raw data onto multiple CPU processing units. The data transmission identifier can be referred to as a data transmission serial number (SN, Serial Number), which is used to uniquely identify the data to be transmitted. The data transmission identifier is usually a unique combination of numbers or letters.

[0058] In practical applications, there are multiple ways to obtain data to be transmitted, and the specific method is selected according to the actual situation. The embodiments of this specification do not impose any restrictions on this. In one possible implementation of this specification, the data to be transmitted actively sent by the processing unit can be received. In another possible implementation of this specification, an instruction to obtain data to be transmitted can be sent to the processing unit, and the data to be transmitted sent by the processing unit in response to the instruction to obtain data to be transmitted can be received.

[0059] It should be noted that before processing the multiple raw data, the processing unit may obtain the multiple raw data. There are multiple ways for the processing unit to obtain the multiple raw data, and the specific method is selected based on actual circumstances. The embodiments of this specification do not impose any restrictions on this. In one possible implementation of this specification, the multiple raw data can be read from a database. In another possible implementation of this specification, the multiple raw data sent by the network card can be received.

[0060] In an optional embodiment of the present specification, before obtaining the data to be transmitted, the following steps may be further included:

[0061] Acquire multiple original data, wherein the original data carries a data identifier;

[0062] Sending a plurality of raw data to a processing unit and determining time information of respectively sending the plurality of raw data;

[0063] Build a data order-preserving queue based on the data identifiers and time information of multiple original data.

[0064] Specifically, the data identifier is used to uniquely identify the original data. Time information refers to the time when the original data is sent to the processing unit, such as a timestamp. The data order-preserving queue is used to record the data identifier of the original data and the time information when the original data is sent to the processing unit.

[0065] It should be noted that there are multiple ways to obtain multiple raw data, and the specific method to be selected depends on the actual situation. The embodiments of this specification do not impose any restrictions on this. In one possible implementation of this specification, multiple raw data can be read from other data acquisition devices or databases. In another possible implementation of this specification, multiple raw data can be received from a network port.

[0066] In practical applications, there are many ways to send multiple raw data to a processing unit, which can be selected based on actual conditions. The embodiments of this specification do not impose any restrictions on this. In one possible implementation of this specification, multiple raw data can be sent to one processing unit. In another possible implementation of this specification, multiple raw data can be sent to multiple processing units on a packet-by-packet granularity. For example, assume that the CPU has 4 processing units, namely processing unit 0, processing unit 1, processing unit 2, and processing unit 3. The network card can send the first raw data obtained to processing unit 0, the second raw data obtained to processing unit 1, the third raw data obtained to processing unit 2, and the fourth raw data obtained to processing unit 3.

[0067] Furthermore, when the first original data is sent to the processing unit, the current system time may be checked and the time information of the first original data may be determined based on the current system time, wherein the first original data is any one of the multiple original data.

[0068] It is worth noting that when the network card sends multiple raw data to the processing unit, it can build a data order-preserving queue locally to record the data identifier and time information when the raw data is sent to the processing unit. Figure 3 , Figure 3 The schematic diagram of a data order-preserving queue in a data transmission method provided by an embodiment of the present specification is shown. The data order-preserving queue includes multiple storage units, each storage unit is used to store the data identification and time information of a piece of original data. When a piece of original data is sent to the processing unit, the storage unit in the data order-preserving queue records the data identification and time information of the original data. Figure 3As shown, the data sequence-preserving queue includes the data identifiers and time information of five original data, namely data identifier 1 and time information 1, data identifier 2 and time information 2, data identifier 3 and time information 3, data identifier 4 and time information 4, and data identifier 5 and time information 5. It should be noted that the data sequence-preserving queue also includes first-type reference identifiers and second-type reference identifiers.

[0069] Using the solution of the embodiments of this specification, multiple raw data are obtained, wherein the raw data carry data identifiers; the multiple raw data are sent to a processing unit, and time information of each of the multiple raw data is determined; and a data order-preserving queue is constructed based on the data identifiers and time information of the multiple raw data. By constructing the data order-preserving queue, the data order-preserving queue can be used to accurately identify data to be transmitted of a timed-out data type, and precisely transmit that type of data to be transmitted.

[0070] In an optional embodiment of the present specification, the sending of the plurality of original data to the processing unit may include the following steps:

[0071] In the case where there are multiple processing units, obtaining processing status information of the multiple processing units respectively;

[0072] The plurality of original data are respectively sent to corresponding processing units according to the processing status information.

[0073] Specifically, the processing status information is used to describe the processing status of the processing unit, such as whether it is idle, busy, the amount of raw data to be processed, and the like.

[0074] It should be noted that there are multiple ways to obtain the processing status information of multiple processing units respectively, and the specific selection is based on the actual situation. The embodiments of this specification do not impose any restrictions on this. In one possible implementation of this specification, the processing log of the processing unit can be parsed to obtain the processing status information of the multiple processing units. In another possible implementation of this specification, a processing status information acquisition instruction can be sent to the processing unit, and the processing status information sent by the processing unit in response to the processing status information acquisition instruction is received.

[0075] Furthermore, after respectively obtaining the processing status information of the plurality of processing units, the plurality of processing units may be sorted according to the processing status from idle to busy based on the processing status information, and the original data may be preferentially distributed to the idle processing units.

[0076] When multiple processing units are used, the solution of the embodiments of this specification can be applied to obtain processing status information of each of the multiple processing units; and based on the processing status information, multiple raw data are sent to the corresponding processing units. By considering the processing status information of the multiple processing units, load balancing is achieved among the multiple processing units.

[0077] In an optional embodiment of the present specification, after obtaining the data to be transmitted, the following steps may be further included:

[0078] Obtaining the order preservation status information of the data to be transmitted;

[0079] When the order preservation status information indicates that the order preservation status of the data to be transmitted is invalid, the transmission of the data to be transmitted is stopped.

[0080] Specifically, the order-preserving status information can be called the order-preserving message indication (order_v ld), and the order-preserving status information is used to mark the order and validity of the data to be transmitted. There are many ways to obtain the order-preserving status information of the data to be transmitted, and the specific selection is made according to the actual situation. The embodiments of this specification do not impose any restrictions on this. One possible implementation of this specification is that in the implementation method, the data to be transmitted also carries the order-preserving status information, and the order-preserving status information of the data to be transmitted can be directly obtained. In another possible implementation method of this specification, the order-preserving status information of the data to be transmitted sent by the user can be received.

[0081] It should be noted that if the order-preserving status information indicates that the order-preserving status of the data to be transmitted is valid, it means that the data to be transmitted is order-preserving data, that is, data that is transmitted in sequence. At this time, the data type of the data to be transmitted can be determined based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue. If the order-preserving status information indicates that the order-preserving status of the data to be transmitted is invalid, it means that the data to be transmitted is non-sequence-preserving data, that is, data that is not transmitted in sequence. At this time, it can be determined that the data to be transmitted is illegal data, the data to be transmitted is discarded, and the transmission of the data to be transmitted is stopped.

[0082] By applying the solution of the embodiments of this specification, the order preservation status information of the data to be transmitted is obtained; if the order preservation status information indicates that the order preservation status of the data to be transmitted is invalid, the transmission of the data to be transmitted is stopped. By identifying illegal data, the transmission of illegal data is avoided, thereby improving the accuracy of data transmission.

[0083] Step 204: Determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue, wherein the data order-preserving queue includes multiple storage units corresponding one-to-one to the original data, and the storage units are used to store the data identifier and time information of the original data. The multiple storage units are arranged in sequence based on the time information, and the type reference identifier is obtained by filtering from the data identifier based on the time information.

[0084] In one or more embodiments of the present specification, after obtaining the data to be transmitted, the data type of the data to be transmitted can be further determined based on the data transmission identifier and the type reference identifier stored in the data order preservation queue, wherein the data to be transmitted is data processed by the processing unit among multiple original data, and the data to be transmitted carries the data transmission identifier.

[0085] Specifically, the type reference identifier is used to determine the data type of the data to be transmitted. The data type includes a timeout data type and a non-timeout data type. If the data type of the data to be transmitted is a timeout data type, it means that the data to be transmitted is timeout data, that is, data that exceeds the data transmission sequence preservation range and cannot be transmitted in order. If the data type of the data to be transmitted is a non-timeout data type, it means that the data to be transmitted is normal data, that is, data that does not exceed the data transmission sequence preservation range and can still be transmitted in order.

[0086] In an optional embodiment of the present specification, before determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order preservation queue, the type reference identifier may be first obtained. The above method may further include the following steps before determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order preservation queue:

[0087] Identify a first storage unit and a second storage unit in the data order-preserving queue according to the time information, wherein the first storage unit is located at the head of the data order-preserving queue and the second storage unit is located at the tail of the data order-preserving queue;

[0088] The data identifier stored in the first storage unit and the data identifier stored in the second storage unit are determined as type reference identifiers.

[0089] It should be noted that, since the multiple storage units in the data order-preserving queue are arranged in sequence based on time information, the storage unit at the tail of the data order-preserving queue stores the data identifier that was first written into the data order-preserving queue, and the storage unit at the head of the data order-preserving queue stores the data identifier that was most recently written into the data order-preserving queue. The data identifier stored in the first storage unit is a first-type reference identifier, and the data identifier stored in the second storage unit is a second-type reference identifier. The first-type reference identifier corresponds to a head pointer, and the second-type reference identifier corresponds to a tail pointer. The head pointer points to the data identifier and time information of the most recently written original data in the data order-preserving queue, and the tail pointer points to the data identifier and time information of the earliest written original data in the data order-preserving queue through the head pointer and the tail pointer.

[0090] Using the solution of the embodiments of this specification, a first storage unit and a second storage unit in a data order-preserving queue are identified based on time information, where the first storage unit is located at the head of the data order-preserving queue and the second storage unit is located at the tail of the data order-preserving queue. The data identifier stored in the first storage unit and the data identifier stored in the second storage unit are determined as type reference identifiers. By determining the type reference identifier based on the position of the storage unit in the data order-preserving queue, the accuracy of the type reference identifier is guaranteed.

[0091] In an optional embodiment of the present specification, after determining the data identifier stored in the first storage unit and the data identifier stored in the second storage unit as type reference identifiers, the following steps may be further included:

[0092] Get current time information;

[0093] Calculating a time difference based on the time information stored in the first storage unit and the current time information;

[0094] When the time difference is greater than the preset time difference, the first storage unit is deleted from the data order-preserving queue, and the step of identifying the first storage unit and the second storage unit in the data order-preserving queue is returned to obtain an updated type reference identifier.

[0095] Specifically, the current time information refers to the current time information of the data transmission system, such as the current system timestamp. The time difference refers to the difference between the time represented by the time information stored in the first storage unit and the time represented by the current time information. The preset time difference is set based on actual circumstances and is not limited in this embodiment of the present specification.

[0096] In practical applications, there are multiple ways to obtain current time information, and the method is selected based on actual circumstances. This specification does not impose any restrictions on this method. In one possible implementation of this specification, a time call function (such as the time function) can be used to obtain current time information. In another possible implementation of this specification, the current time information can be queried from a database using structured query language.

[0097] It should be noted that if the time difference is less than or equal to the preset time difference, it means that the original data corresponding to the first storage unit is not timed-out data, and there is no need to pop the first storage unit out of the order-keeping queue. As the original data is written into the data order-keeping queue, the first storage unit and the second storage unit in the data order-keeping queue can be identified in real time; if the time difference is greater than the preset time difference, it means that the original data corresponding to the first storage unit has not been returned from the processing unit and is timed-out data. Therefore, the first storage unit can be popped out of the order-keeping data queue and the type reference identifier can be updated.

[0098] Using the solution of the embodiments of this specification, current time information is obtained; a time difference is calculated based on the time information stored in the first storage unit and the current time information; if the time difference is greater than a preset time difference, the first storage unit is removed from the data order-preserving queue, and the process returns to the step of identifying the first and second storage units in the data order-preserving queue to obtain an updated type reference identifier. By using the preset time difference to update the data order-preserving queue in real time, the accuracy of the type reference identifier is ensured, enabling stable and complete data transmission.

[0099] In actual applications, the type reference identifier includes a first type reference identifier and a second type reference identifier; there are multiple ways to determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order preservation queue, and the specific selection is based on the actual situation. The embodiments of this specification do not impose any restrictions on this.

[0100] In one possible implementation of the present specification, time information corresponding to a first-type reference identifier and a second-type reference identifier may be obtained; a time range may be determined based on the time information corresponding to the first-type reference identifier and the second-type reference identifier; time information of data to be transmitted may be determined based on a data transmission identifier; and a data type of the data to be transmitted may be determined based on the time information and the time range of the data to be transmitted. If the time information of the data to be transmitted is not within the time range, the data type of the data to be transmitted may be determined to be a timeout data type.

[0101] In another possible implementation of the present specification, the type reference identifier includes a first type reference identifier and a second type reference identifier; and determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue may include the following steps:

[0102] Determine a type reference identifier range according to the first type reference identifier and the second type reference identifier stored in the data order-preserving queue;

[0103] Determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier range.

[0104] It should be noted that since the multiple storage units in the data order-preserving queue are arranged in sequence based on time information, the data identifier of the original data is stored in the storage unit, and the type reference identifier range refers to the set consisting of the first type reference identifier, the second type reference identifier, and the data identifier between the first type reference identifier and the second type reference identifier.

[0105] It should be noted that when determining the type reference identifier range based on the first type reference identifier and the second type reference identifier stored in the data order preservation queue, the first type reference identifier, the second type reference identifier and the data identifier between the first type reference identifier and the second type reference identifier can be extracted, and all the extracted identifiers can be integrated into a set, which is the type reference identifier range.

[0106] In actual applications, when determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier range, it is possible to determine whether the data transmission identifier is within the type reference identifier range and determine the data type of the data to be transmitted based on the judgment result.

[0107] Using the solution of the embodiments of this specification, a type reference identifier range is determined based on the first type reference identifier and the second type reference identifier stored in the data order-preserving queue; and the data type of the data to be transmitted is determined based on the data transmission identifier and the type reference identifier range. By automatically identifying the data type of the data to be transmitted, data of the timed-out data type can be accurately identified, thereby transmitting the data of the timed-out data type, avoiding packet loss and ensuring the stability and integrity of data transmission.

[0108] In an optional embodiment of the present specification, the determining of the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier range may include the following steps:

[0109] When the data transmission identifier is not within the type reference identifier range, it is determined that the data type of the data to be transmitted is a timeout data type.

[0110] It should be noted that if the data transmission identifier is within the type reference identifier range, it means that the data to be transmitted has been returned from the processing unit normally, the data to be transmitted is not timed-out data, and the data type of the data to be transmitted is a non-timed-out data type; if the data transmission identifier is not within the type reference identifier range, it means that the data to be transmitted has not been returned from the processing unit on time, it is timed-out data, and the data type of the data to be transmitted is a timed-out data type.

[0111] By applying the solution of the embodiments of this specification, when the data transmission identifier is not within the type reference identifier range, the data type of the data to be transmitted is determined to be the timeout data type. By accurately determining the data type of the data to be transmitted using the type reference identifier range, data of the timeout data type is transmitted, thereby avoiding packet loss and ensuring the stability and integrity of data transmission.

[0112] In an optional embodiment of the present specification, since the programmable component has the characteristics of programmability, high performance, and flexibility, the programmable component can be called to determine the data type. That is, the above-mentioned determination of the data type of the to-be-transmitted data based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue can include the following steps:

[0113] Calling the programmable component to determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue;

[0114] When the data type is a timeout data type, transmitting the data to be transmitted according to the current transmission order of the data to be transmitted may include the following steps:

[0115] The data type sent by the programmable component is received, and when the data type is a timeout data type, the data to be transmitted is transmitted according to the current transmission order of the data to be transmitted.

[0116] In actual applications, there are many ways to call programmable components to determine data types, and the specific selection is based on actual conditions. The embodiments of this specification do not impose any limitations on this.

[0117] In one possible implementation of this specification, the network card can send a type identification instruction to the programmable component, and the type identification instruction carries the data transmission identifier of the data to be transmitted and the type reference identifier stored in the data order preservation queue. After the programmable component receives the data transmission identifier of the data to be transmitted and the type reference identifier stored in the data order preservation queue, it can determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order preservation queue. Furthermore, the programmable component can send the data type of the data to be transmitted to the network card, and the network card, when the data type is a timeout data type, transmits the data to be transmitted based on the current transmission order of the data to be transmitted.

[0118] In another possible implementation of this specification, the network card can send a programmable component call instruction to the processing unit. In response to the programmable component call instruction, the processing unit sends the data transmission identifier of the data to be transmitted and the type reference identifier stored in the data order-preserving queue to the programmable component. After receiving the data transmission identifier of the data to be transmitted and the type reference identifier stored in the data order-preserving queue, the programmable component can determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue. Furthermore, the programmable component can send the data type of the data to be transmitted to the network card. If the data type is a timeout data type, the network card transmits the data to be transmitted according to the current transmission order of the data to be transmitted.

[0119] In actual applications, a programmable component may be called to determine whether the order preservation state of the data to be transmitted is invalid according to the order preservation state information of the data to be transmitted.

[0120] Applying the solution of the embodiments of this specification, a programmable component is called to determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue; the data type sent by the programmable component is received, and if the data type is a timeout data type, the data to be transmitted is transmitted according to the current transmission order of the data to be transmitted. By combining the programmability, high performance, and flexibility of the programmable component, the elephant flow risk in traditional solutions can be resolved, while providing higher protection in hardware table entry specifications and evolution.

[0121] Step 206: When the data type is a timeout data type, the data to be transmitted is transmitted according to the current transmission order of the data to be transmitted.

[0122] In one or more embodiments of the present specification, data to be transmitted is obtained, wherein the data to be transmitted is data processed by a processing unit among multiple original data, and the data to be transmitted carries a data transmission identifier; after determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order preservation queue, further, in the case that the data type is a timeout data type, the data to be transmitted can be transmitted according to the current transmission order of the data to be transmitted, wherein the data order preservation queue includes multiple storage units corresponding one to one to the original data, the storage units are used to store the data identifier and time information of the original data, the multiple storage units are arranged in sequence based on the time information, and the type reference identifier is obtained by filtering from the data identifier based on the time information.

[0123] Specifically, the current transmission order refers to the out-of-order transmission order obtained by inserting the data to be transmitted into the order-preserving order of the original data.

[0124] It should be noted that, when the data type is a non-timeout data type, it means that the order of data transmission is to maintain the order of the original data without change. Therefore, the data to be transmitted can be transmitted according to the order of the data to be transmitted, solving the problem of data disorder when different CPU processing delays are different; when the data type is a timeout data type, it means that the data to be transmitted disrupts the order of the original data. At this time, the data to be transmitted can be transmitted according to the current transmission order of the data to be transmitted, solving the problem of packet loss that may occur when the network card's order preservation capability is insufficient.

[0125] The scheme of the embodiments of this specification is applied. Since the data order-preserving queue includes multiple storage units corresponding one-to-one to the original data, the storage units are used to store the data identification and time information of the original data. The multiple storage units are arranged in sequence based on the time information, and the type reference identification is obtained by screening from the data identification based on the time information. By utilizing the data transmission identification and the type reference identification stored in the data order-preserving queue, the data type of the data to be transmitted is automatically identified. Therefore, when the delay jitter of the processing unit is large, the data to be transmitted of the timeout data type can be accurately determined and transmitted, thereby ensuring the stability and integrity of the data transmission.

[0126] See also Figure 4 , Figure 4 The following diagram shows the architecture of another data transmission system provided by one embodiment of this specification. The data transmission system includes a network card and a host. The network card includes a data receiving unit, a data distribution unit, a data order-preserving unit, a timeout detection unit, and a data sending unit. The data distribution unit and the data order-preserving unit can achieve load balancing of the processing units. The host includes multiple processing units (processing unit 0, processing unit 1, processing unit 2, and processing unit 3).

[0127] Data receiving unit: receiving a plurality of original data, wherein the original data carries a data identifier;

[0128] Data distribution unit: distributes the raw data received from the network port among multiple processing units at a packet-by-packet granularity;

[0129] Data order-preserving unit: records the data identification and time information when the original data is distributed to the processing unit, and sends the data identification and order-preserving status information indicating whether it is an order-preserving message to the processing unit. After the processing unit processes the original data, it sends the data to be transmitted (the original data processed by the processing unit) along with the data identification and order-preserving status information to the programmable component. At the same time, the data order-preserving unit can establish a data order-preserving queue locally and store the data identification and time information in the data order-preserving queue;

[0130] Timeout detection unit: detects whether the data to be transmitted has exceeded the maximum limited sequence preservation time, that is, whether the data type of the data to be transmitted is a timeout data type. Specifically, a head and tail pointer are maintained for the earliest and latest original data written in the data sequence preservation queue respectively, the head pointer points to the latest written original data, and the tail pointer points to the earliest written original data. Each storage unit in the data sequence preservation queue maintains a time information, which can monitor the time information of the head pointer position in real time. If the time information exceeds the preset time difference compared with the current time information, it is considered that the original data corresponding to the storage unit has timed out and has not been returned, and the storage unit is popped out of the data sequence preservation queue, and the head pointer is updated. The timeout detection unit can also determine whether the sequence preservation status of the data to be transmitted is invalid based on the sequence preservation status information of the data to be transmitted. If the sequence preservation status of the data to be transmitted is invalid, the data to be transmitted is determined to be illegal data and the data to be transmitted is discarded;

[0131] Data sending unit: When the data type is a non-timeout data type, the data to be transmitted is transmitted in order according to the order of the data to be transmitted; when the data type is a timeout data type, the data to be transmitted is transmitted out of order according to the current transmission order of the data to be transmitted to ensure that the data to be transmitted is not lost.

[0132] The solution of the embodiment of this specification is applied. The embodiment of this specification proposes a solution for data order preservation and packet loss prevention between the network card and the host CPU, and designs a data order preservation timeout mechanism, a timeout identification mechanism, and an illegal data identification mechanism. Using the above mechanism, when the network card cache capacity is limited, the CPU delay jitter is large, and the order preservation information is lost, the data to be transmitted of the timeout data type is actively identified, and the transmission data is transmitted in an out-of-order manner, so that the project does not lose packets, and the project is guaranteed to be lossless and the stability and integrity of data transmission are guaranteed.

[0133] Corresponding to the above method embodiment, this specification also provides a data transmission device embodiment, Figure 5 FIG1 shows a schematic diagram of the structure of a data transmission device provided by an embodiment of this specification. Figure 5 As shown, the device includes:

[0134] An acquisition module 502 is configured to acquire data to be transmitted, wherein the data to be transmitted is data processed by a processing unit from a plurality of original data, and the data to be transmitted carries a data transmission identifier;

[0135] Determining module 504 is configured to determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue, wherein the data order-preserving queue includes a plurality of storage units corresponding one-to-one to the original data, the storage units are used to store the data identifier and time information of the original data, the plurality of storage units are sequentially arranged based on the time information, and the type reference identifier is obtained by filtering the data identifier based on the time information;

[0136] The transmission module 506 is configured to transmit the data to be transmitted according to the current transmission order of the data to be transmitted when the data type is a timeout data type.

[0137] Optionally, the determination module 504 is further configured to call the programmable component to determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order preservation queue; the transmission module 506 is further configured to receive the data type sent by the programmable component, and when the data type is a timeout data type, transmit the data to be transmitted according to the current transmission order of the data to be transmitted.

[0138] Optionally, the device also includes: an identification module, configured to identify the first storage unit and the second storage unit in the data order-preserving queue based on time information, wherein the first storage unit is located at the head of the data order-preserving queue and the second storage unit is located at the tail of the data order-preserving queue; and determine the data identifier stored in the first storage unit and the data identifier stored in the second storage unit as type reference identifiers.

[0139] Optionally, the device also includes: a deletion module, configured to obtain current time information; calculate the time difference based on the time information stored in the first storage unit and the current time information; when the time difference is greater than the preset time difference, delete the first storage unit from the data order preservation queue, and return to execute the step of identifying the first storage unit and the second storage unit in the data order preservation queue to obtain an updated type reference identifier.

[0140] Optionally, the type reference identifier includes a first type reference identifier and a second type reference identifier; the determination module 504 is further configured to determine the type reference identifier range based on the first type reference identifier and the second type reference identifier stored in the data order preservation queue; and determine the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier range.

[0141] Optionally, the determination module 504 is further configured to determine that the data type of the to-be-transmitted data is a timeout data type when the data transmission identifier is not within the type reference identifier range.

[0142] Optionally, the device also includes: a construction module, configured to obtain multiple original data, wherein the original data carries a data identifier; send the multiple original data to the processing unit, and determine the time information of each of the multiple original data being sent; and construct a data order-preserving queue based on the data identifiers and time information of the multiple original data.

[0143] Optionally, the construction module is further configured to respectively obtain processing status information of the multiple processing units when there are multiple processing units; and send the multiple original data to the corresponding processing units according to the processing status information.

[0144] Optionally, the apparatus further includes: a stopping module configured to obtain order-preserving status information of the data to be transmitted; and stop transmitting the data to be transmitted if the order-preserving status information indicates that the order-preserving status of the data to be transmitted is invalid.

[0145] The scheme of the embodiments of this specification is applied. Since the data order-preserving queue includes multiple storage units corresponding one-to-one to the original data, the storage units are used to store the data identification and time information of the original data. The multiple storage units are arranged in sequence based on the time information, and the type reference identification is obtained by screening from the data identification based on the time information. By utilizing the data transmission identification and the type reference identification stored in the data order-preserving queue, the data type of the data to be transmitted is automatically identified. Therefore, when the delay jitter of the processing unit is large, the data to be transmitted of the timeout data type can be accurately determined and transmitted, thereby ensuring the stability and integrity of the data transmission.

[0146] The above is a schematic scheme of a data transmission device of this embodiment. It should be noted that the technical scheme of the data transmission device and the technical scheme of the above-mentioned data transmission method are of the same concept. For details not described in detail in the technical scheme of the data transmission device, please refer to the description of the technical scheme of the above-mentioned data transmission method.

[0147] Figure 6 6 shows a block diagram of a computing device according to an embodiment of the present disclosure. Components of the computing device 600 include, but are not limited to, a memory 610 and a processor 620. The processor 620 is connected to the memory 610 via a bus 630, and a database 650 is used to store data.

[0148] The computing device 600 also includes an access device 640 that enables the computing device 600 to communicate via one or more networks 660. Examples of these networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or a combination of communication networks such as the Internet. The access device 640 may include one or more of any type of network interface, wired or wireless (e.g., a network interface card (NIC)), such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a World Wide Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a universal serial bus (USB) interface, a cellular network interface, a Bluetooth interface, a near field communication (NFC) interface, and the like.

[0149] In one embodiment of the present specification, the above components of the computing device 600 and Figure 6 Other components not shown in the figure may also be connected to each other, for example, via a bus. Figure 6 The computing device structure block diagram shown is for illustrative purposes only and is not intended to limit the scope of this specification. Those skilled in the art may add or replace other components as needed.

[0150] The computing device 600 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook computer, etc.), a mobile phone (e.g., a smartphone), a wearable computing device (e.g., a smartwatch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or a personal computer (PC). The computing device 600 may also be a mobile or stationary server.

[0151] The processor 620 is configured to execute a computer program / instruction, which implements the steps of the above-mentioned data transmission method when executed by the processor.

[0152] The above is a schematic solution of a computing device of this embodiment. It should be noted that the technical solution of the computing device and the technical solution of the above-mentioned data transmission method are of the same concept. For details not described in detail in the technical solution of the computing device, please refer to the description of the technical solution of the above-mentioned data transmission method.

[0153] An embodiment of the present specification further provides a computer-readable storage medium storing a computer program / instruction, which implements the steps of the above-mentioned data transmission method when executed by a processor.

[0154] The above is a schematic scheme of a computer-readable storage medium of this embodiment. It should be noted that the technical scheme of the storage medium and the technical scheme of the above-mentioned data transmission method are based on the same concept. For details not described in detail in the technical scheme of the storage medium, please refer to the description of the technical scheme of the above-mentioned data transmission method.

[0155] An embodiment of the present specification further provides a computer program product, including a computer program / instruction, which implements the steps of the above-mentioned data transmission method when executed by a processor.

[0156] The above is an illustrative solution of a computer program product of this embodiment. It should be noted that the technical solution of this computer program product and the technical solution of the above-mentioned data transmission method are based on the same concept. For details not described in detail in the technical solution of the computer program product, please refer to the description of the technical solution of the above-mentioned data transmission method.

[0157] The foregoing description of this specification describes specific embodiments. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in an order different from that described in the embodiments and still achieve the desired results. Furthermore, the processes depicted in the accompanying drawings do not necessarily require the specific order shown or the sequential order to achieve the desired results. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0158] The computer instructions include computer program codes, which may be in source code form, object code form, executable files, or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal, and software distribution medium. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of patent practice. For example, in some regions, according to patent practice, computer-readable media do not include electric carrier signals and telecommunication signals.

[0159] It should be noted that for the aforementioned method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the embodiments of this specification are not limited by the order of the actions described, because according to the embodiments of this specification, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in this specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the embodiments of this specification.

[0160] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0161] The preferred embodiments disclosed above are intended only to help illustrate this specification. The optional embodiments do not exhaustively describe all details, nor do they limit the invention to the specific embodiments described. Obviously, many modifications and variations can be made based on the content of the embodiments of this specification. This specification selects and specifically describes these embodiments in order to better explain the principles and practical applications of the embodiments of this specification, so that those skilled in the art can better understand and utilize this specification. This specification is limited only by the claims and their full scope and equivalents.

Claims

1. A data transmission method, comprising: Acquire data to be transmitted, wherein the data to be transmitted is data processed by a processing unit among a plurality of original data, and the data to be transmitted carries a data transmission identifier; Determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue, wherein the data order-preserving queue includes a plurality of storage units corresponding one-to-one to the original data, the storage units being used to store the data identifier and time information of the original data, the plurality of storage units being sequentially arranged based on the time information, and the type reference identifier being obtained by screening the data identifier based on the time information; In a case where the data type is a timeout data type, the data to be transmitted is transmitted according to a current transmission order of the data to be transmitted.

2. The data transmission method according to claim 1, wherein determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue comprises: Calling a programmable component to determine the data type of the data to be transmitted according to the data transmission identifier and the type reference identifier stored in the data order-preserving queue; When the data type is a timeout data type, transmitting the data to be transmitted according to the current transmission order of the data to be transmitted includes: The data type sent by the programmable component is received, and when the data type is a timeout data type, the data to be transmitted is transmitted according to the current transmission order of the data to be transmitted.

3. The data transmission method according to claim 1 , before determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue, further comprising: Identify, according to the time information, a first storage unit and a second storage unit in the data order-preserving queue, wherein the first storage unit is located at the head of the data order-preserving queue and the second storage unit is located at the tail of the data order-preserving queue; The data identifier stored in the first storage unit and the data identifier stored in the second storage unit are determined as the type reference identifier.

4. The data transmission method according to claim 3, further comprising: after determining the data identifier stored in the first storage unit and the data identifier stored in the second storage unit as the type reference identifier; Get current time information; Calculating a time difference based on the time information stored in the first storage unit and the current time information; When the time difference is greater than the preset time difference, the first storage unit is deleted from the data order-preserving queue, and the step of identifying the first storage unit and the second storage unit in the data order-preserving queue is returned to obtain an updated type reference identifier.

5. The data transmission method according to claim 1, wherein the type reference identifier comprises a first type reference identifier and a second type reference identifier; The determining the data type of the to-be-transmitted data according to the data transmission identifier and the type reference identifier stored in the data order-preserving queue includes: determining a type reference identifier range according to the first type reference identifier and the second type reference identifier stored in the data order-preserving queue; The data type of the data to be transmitted is determined according to the data transmission identifier and the type reference identifier range.

6. The data transmission method according to claim 5, wherein determining the data type of the data to be transmitted based on the data transmission identifier and the type reference identifier range comprises: When the data transmission identifier is not within the type reference identifier range, it is determined that the data type of the data to be transmitted is a timeout data type.

7. The data transmission method according to claim 1, before obtaining the data to be transmitted, further comprising: Acquire a plurality of original data, wherein the original data carries a data identifier; Sending the plurality of original data to the processing unit, and determining time information at which the plurality of original data are respectively sent; A data order-preserving queue is constructed according to the data identifiers of the multiple original data and the time information.

8. The data transmission method according to claim 7, wherein sending the plurality of original data to the processing unit comprises: In the case where there are multiple processing units, respectively obtaining processing status information of the multiple processing units; The plurality of original data are sent to corresponding processing units respectively according to the processing status information.

9. The data transmission method according to claim 1, further comprising: Obtaining the order preservation status information of the data to be transmitted; When the order-preserving status information indicates that the order-preserving status of the data to be transmitted is invalid, transmission of the data to be transmitted is stopped.

10. A data transmission system comprising a network card and a processing unit; The processing unit is used to process a plurality of original data; The network card is used to obtain data to be transmitted, wherein: The data to be transmitted is data processed by the processing unit among a plurality of original data, and the data to be transmitted carries a data transmission identifier; The data type of the data to be transmitted is determined based on the data transmission identifier and the type reference identifier stored in the data order-preserving queue, wherein the data order-preserving queue includes multiple storage units corresponding one to one to the original data, and the storage units are used to store the data identifier and time information of the original data. The multiple storage units are arranged in sequence based on the time information, and the type reference identifier is obtained by filtering from the data identifier based on the time information; when the data type is a timeout data type, the data to be transmitted is transmitted according to the current transmission order of the data to be transmitted.

11. A data transmission device, comprising: an acquisition module configured to acquire data to be transmitted, wherein the data to be transmitted is data processed by the processing unit among a plurality of original data, and the data to be transmitted carries a data transmission identifier; a determination module configured to determine a data type of the data to be transmitted based on the data transmission identifier and a type reference identifier stored in a data order-preserving queue, wherein the data order-preserving queue includes a plurality of storage units corresponding one-to-one to the original data, the storage units being used to store data identifiers and time information of the original data, the plurality of storage units being sequentially arranged based on the time information, and the type reference identifier being obtained by screening the data identifiers based on the time information; The transmission module is configured to transmit the data to be transmitted according to the current transmission order of the data to be transmitted when the data type is a timeout data type.

12. A computing device comprising: memory and processor; The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer programs / instructions are executed by the processor, the steps of the data transmission method according to any one of claims 1 to 9 are implemented.

13. A computer-readable storage medium storing a computer program / instruction, wherein the computer program / instruction, when executed by a processor, implements the steps of the data transmission method according to any one of claims 1 to 9.

14. A computer program product comprising a computer program / instruction, which implements the steps of the data transmission method according to any one of claims 1 to 9 when executed by a processor.

Citation Information

Patent Citations

  • Customer premises equipment (CPE) and data forwarding method thereof, and communication system

    CN107454276A

  • Lockless shared message forwarding method for single-transceiving-channel multi-core network communication equipment

    CN112511460A

  • Cloud gateway, method for network adapter and network adapter

    CN116633726A

  • Data transmission method and device, computer equipment and readable medium

    CN117424849A

  • Message forwarding order preserving method and device in DPU, electronic equipment and storage medium

    CN117560433A