Data transmission method and apparatus, and device and readable storage medium

By selecting the appropriate transmission mode based on the data packet type identifier, the reliable transmission of critical data packets and the efficient transmission of non-critical data packets are achieved during data packet transmission. This solves the balance problem between transmission rate and reliability and improves the operational stability of business services.

WO2026114265A1PCT designated stage Publication Date: 2026-06-04TENCENT TECHNOLOGY (SHENZHEN) CO LTD

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
TENCENT TECHNOLOGY (SHENZHEN) CO LTD
Filing Date
2025-11-26
Publication Date
2026-06-04

AI Technical Summary

Technical Problem

Existing technologies, while increasing data packet transmission rates, suffer from severe packet loss, or while improving transmission reliability, the rate is too slow. They cannot achieve a good balance between the two, which affects the user experience of business services.

Method used

By obtaining the type identifier of the data packet, multiple data transmission links are identified, and an appropriate transmission mode is selected, including parallel transmission of multiple data links or transmission of a single data link. Different transmission modes are assigned according to the importance of the data packet to achieve reliable transmission of critical data packets and efficient transmission of non-critical data packets.

Benefits of technology

Without reducing the reliability of critical data packet transmission, it improved the transmission efficiency of non-critical data packets, thereby enhancing the overall data packet transmission efficiency and the stability of business services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025137793_04062026_PF_FP_ABST
    Figure CN2025137793_04062026_PF_FP_ABST
Patent Text Reader

Abstract

The method comprises: acquiring a data packet, wherein the data packet carries a type identifier of the data packet; determining a plurality of data transmission links; selecting between a first transmission mode and a second transmission mode a transmission mode corresponding to the type identifier, wherein the first transmission mode indicates the use of the plurality of data transmission links to transmit the data packet in parallel, and the second transmission mode indicates the selection of one data transmission link from among the plurality of data transmission links to transmit the data packet; and transmitting the data packet in the transmission mode corresponding to the type identifier. Thus, the packet loss rate of critical data packets can be reduced, and the transmission efficiency of non-critical data packets can also be improved, thereby improving the overall transmission efficiency of a plurality of data packets generated by an application, and thus achieving a good trade-off between data transmission reliability and data transmission efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Data transmission methods, apparatus, devices, and readable storage media

[0001] This application claims priority to Chinese Patent Application No. 2024117493936, filed on November 29, 2024, entitled “Data Packet Transmission Method, Apparatus, Device and Readable Storage Medium”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of computer technology, specifically to a data transmission method, apparatus, device, and readable storage medium. Background Technology

[0003] The development of information technology has driven the application-based transformation of business services. Numerous business service providers have launched corresponding applications for various services, such as game applications, video applications, and live streaming applications. These applications often require a certain level of reliability (avoiding significant packet loss) and a certain data transmission rate during data transmission. Whether it's frequent packet loss or a slow transmission rate, it causes problems such as lag for users, affecting the use of business services.

[0004] Several solutions have been proposed in related technologies to address the above problems. However, some of these solutions improve the transmission rate of application data packets but suffer from severe packet loss, while others improve the reliability of data packet transmission but have too slow a transmission rate. Therefore, a technology that strikes a good balance between transmission reliability and data transmission rate is needed. Summary of the Invention

[0005] This application provides a data transmission method, apparatus, device, and readable storage medium that can improve the data transmission efficiency of non-critical data packets during the transmission of data packets in an application without reducing the reliability of critical data packet transmission.

[0006] To solve the above-mentioned technical problems, this application provides the following technical solution:

[0007] This application provides a data transmission method, including:

[0008] Acquire a data packet, wherein the data packet carries a type identifier for the data packet;

[0009] Identify multiple data transmission links;

[0010] From the first transmission mode and the second transmission mode, a transmission mode corresponding to the type identifier is selected, wherein the first transmission mode indicates that the data packet is transmitted in parallel using the multiple data transmission links, and the second transmission mode indicates that one data transmission link is selected from the multiple data transmission links to transmit the data packet;

[0011] The data packet is transmitted using the transmission mode corresponding to the type identifier.

[0012] This application also provides a data packet transmission device, including:

[0013] An acquisition unit is used to acquire data packets, wherein the data packets carry a type identifier of the data packets;

[0014] The first determining unit is used to determine multiple data transmission links;

[0015] The second determining unit is configured to select a transmission mode corresponding to the type identifier from a first transmission mode and a second transmission mode, wherein the first transmission mode indicates that the data packet is transmitted in parallel using the multiple data transmission links, and the second transmission mode indicates that one data transmission link is selected from the multiple data transmission links to transmit the data packet;

[0016] A transmission unit is used to transmit the data packet using a transmission mode corresponding to the type identifier.

[0017] Furthermore, this application also provides a computer device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the above-described data transmission method.

[0018] Furthermore, embodiments of this application also provide a computer-readable storage medium storing a computer program adapted for loading by a processor to execute the aforementioned data transmission method.

[0019] Furthermore, this application also provides a computer program product, which includes a computer program that can be stored in a storage medium. A processor of a computer device reads the computer program from the storage medium and executes the computer program to implement the aforementioned data transmission method. Attached Figure Description

[0020] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0021] Figure 1 is a schematic diagram of a data transmission system provided in an embodiment of this application;

[0022] Figure 2 is a flowchart illustrating the steps of the data transmission method provided in an embodiment of this application.

[0023] Figure 3 is a schematic flowchart of another step of the data transmission method provided in an embodiment of this application;

[0024] Figure 4 is an example diagram of a data transmission scenario for the first transmission mode provided in an embodiment of this application;

[0025] Figure 5 is an example diagram of a data transmission scenario for the second transmission mode provided in an embodiment of this application;

[0026] Figure 6 is an example diagram of the stack structure of the Fast UPD Internet Connection Layer provided in the embodiments of this application;

[0027] Figure 7 is a structural example diagram of the service type field of the data packet provided in an embodiment of this application;

[0028] Figure 8 is a structural example diagram of the QUIC data packet provided in an embodiment of this application;

[0029] Figure 9 is a structural example of the flag field in the QUIC data packet header provided in an embodiment of this application;

[0030] Figure 10 is an architecture diagram of the multi-link transmission system provided in an embodiment of this application;

[0031] Figure 11 is a flowchart of the data packet transmission scenario provided in an embodiment of this application;

[0032] Figure 12 is a schematic diagram of the data packet transmission device provided in an embodiment of this application;

[0033] Figure 13 is a schematic diagram of the terminal provided in an embodiment of this application;

[0034] Figure 14 is a schematic diagram of the server structure provided in an embodiment of this application. Detailed Implementation

[0035] To enable those skilled in the art to better understand the solutions of this application, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0036] It is understood that in the specific embodiments of this application, data related to data packets, data packet type identifiers, connection identifiers, etc. are involved. When the above embodiments of this application are applied to specific products or technologies, permission or consent from the subject is required, and the collection, use and processing of related data must comply with relevant laws, regulations and standards.

[0037] Furthermore, when this application embodiment needs to obtain data such as data packets, data packet type identifiers, and connection identifiers, it will obtain separate permission or separate consent for the data packets, data packet type identifiers, and connection identifiers through pop-up windows or redirection to a confirmation page. After clearly obtaining separate permission or separate consent for the data packets, data packet type identifiers, connection identifiers, and other related data, it will then obtain the necessary data packets, data packet type identifiers, connection identifiers, and other related data for enabling this application embodiment to operate normally.

[0038] It should be noted that while some processes described in the specification, claims, and accompanying drawings contain multiple steps that appear in a specific order, it should be clearly understood that these steps may not be performed in the order they appear herein, or may be performed in parallel. The step numbers are merely used to distinguish different steps and do not represent any particular order of execution. Furthermore, descriptions such as "first," "second," or "objective" in this document are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.

[0039] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0040] This application provides a data transmission method, apparatus, device, and readable storage medium. Specifically, the data transmission method of each embodiment of this application can be executed by a computer device, which can be a server or a terminal, etc. The server can be an independent physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN, and big data and artificial intelligence platforms. The terminal can be a mobile phone, tablet computer, laptop computer, desktop computer, smart speaker, smart home appliance, vehicle terminal, intelligent voice interaction device, aircraft, etc., but is not limited to these.

[0041] Before providing a further detailed description of the embodiments of this application, the nouns and terms used in the embodiments of this application are explained, and the nouns and terms used in the embodiments of this application shall be interpreted as follows:

[0042] QUIC (Quick UDP Internet Connection) is a low-latency internet transport layer protocol based on UDP (User Datagram Protocol). QUIC provides a secure, multiplexed connection for transmitting reliable streams of application data, which is sent using STREAM frames. However, some applications, especially those requiring real-time data transmission, are better suited for unreliable data transmission. It features: fast connection establishment; the QUIC handshake often requires only zero round-trip times (0-RTT) or one round-trip time (1-RTT) before sending the payload, significantly reducing connection establishment latency compared to the multiple round trips of traditional Transmission Control Protocol (TCP) three-way handshake and Transport Layer Security (TLS) handshake. Improved congestion control; provides richer information than TCP and can use different congestion control algorithms. Head-of-line blocking-free multiplexing supports the parallel transmission of multiple data streams on a single connection. Even if one data stream experiences packet loss, it will not block the transmission of other data streams or application layer processing. Connection migration is facilitated by using connection identifiers to represent connections, enabling a smooth transition when the network environment changes (such as switching from a mobile hotspot network like Wi-Fi to a mobile data network) without the need to re-establish a connection. High security and privacy protection are provided through built-in encryption at the transport layer, with default support for secure TLS, verifying the entire payload (including the header) for complete end-to-end security.

[0043] MP-QUIC: Multi-path QUIC is an extension of the QUIC protocol designed to improve network transmission performance, especially in multi-network link environments. It boasts key features and advantages, including multi-path transmission. MP-QUIC allows devices (such as mobile devices) to simultaneously use multiple network interfaces and links (such as WiFi and mobile data networks) for data transmission. During connection establishment, it identifies and utilizes multiple available paths, segmenting data and sending it through different links, thereby increasing overall bandwidth. For example, when a user watches high-definition video on a mobile device, MP-QUIC can simultaneously transmit video data via WiFi and 4G / 5G networks, improving video loading speed and playback smoothness. Furthermore, it can monitor the quality of each link in real time, including metrics such as bandwidth, latency, and packet loss rate. Based on this real-time information, MP-QUIC dynamically selects the optimal link for data transmission or rationally distributes data traffic across multiple links to achieve load balancing. If the WiFi link quality suddenly deteriorates (e.g., weak signal, increased interference), MP-QUIC automatically transfers more data to the mobile data link, ensuring stable and efficient data transmission.

[0044] It's important to note that in scenarios where a terminal's geographical location changes, devices frequently switch between different networks (e.g., from Wi-Fi to mobile data). MP-QUIC achieves connection migration by using a Connection ID. When a network switch occurs, as long as the new network supports MP-QUIC, the device can continue to communicate with the server using the same Connection ID without needing to re-establish a connection. This ensures that ongoing services (such as video calls and online games) are not interrupted by network switching, greatly improving the user experience.

[0045] This application provides a data transmission method, which may include: acquiring a data packet carrying a type identifier of the data packet; determining multiple data transmission links; selecting a transmission mode corresponding to the type identifier from a first transmission mode and a second transmission mode, wherein the first transmission mode indicates that the data packet is transmitted in parallel using the multiple data transmission links, and the second transmission mode indicates that one data transmission link is selected from the multiple data transmission links to transmit the data packet; and transmitting the data packet through the transmission mode corresponding to the type identifier. This is specifically illustrated by the following embodiments:

[0046] Applications such as games, video streaming, and live streaming often require a certain level of reliability (avoiding significant packet loss) and a certain data transmission rate when transmitting data packets. Both frequent packet loss and slow transmission rates can cause stuttering and other issues in data presentation, impacting the usability of business services. While some related technologies improve the data packet transmission rate but suffer from severe packet loss, others improve data packet transmission reliability but are too slow.

[0047] To address the aforementioned issues, this application proposes a data transmission method. By combining the selection rules for the transmission mode used and the data packet type identifier carried by the data packet, the method assigns one of two transmission modes to the data packet: a multi-link concurrent transmission mode and a multi-link aggregation transmission mode. This enables flexible transmission based on the data packet's attribute information, taking into account the importance of the data packet to the application. On the one hand, it reduces the packet loss rate of critical data packets, improving their transmission reliability; on the other hand, it improves the transmission efficiency of non-critical data packets, thereby enhancing the overall transmission efficiency of multiple data packets generated by the application. Please refer to the following specific embodiments for details.

[0048] For example, see Figure 1, which is a schematic diagram of a data packet transmission system provided in an embodiment of this application. The system includes a terminal 110 and a server 120.

[0049] The terminal 110 can send data packets to the server 120. Furthermore, the terminal 110 can have applications installed, allowing it to run corresponding application services. The terminal 110 can integrate the transmission unit's functionality via a toolkit, or it can directly have a transmission unit / application installed, used to accelerate or reliably transmit application data packets. These applications or transmission applications can be collectively referred to as clients. The server 120 can be the service server corresponding to the application. Additionally, the server 120 can access the gateway's service process to receive data packets sent by the transmission unit and forward them to the service server. The gateway can receive and forward data packets from multiple data transmission links, and therefore can also be called a multi-network transmission gateway.

[0050] Specifically, the transmission unit on the terminal 110 executes the steps of the data transmission method, which include: acquiring application data packets carrying a data packet type identifier; determining multiple data transmission links; determining the transmission mode corresponding to the data packet type identifier from a first transmission mode and a second transmission mode, wherein the first transmission mode indicates that the data packet is transmitted in parallel using multiple data transmission links, and the second transmission mode selects one data transmission link from the multiple data transmission links to transmit the data packet; and transmitting the data packet according to the transmission mode corresponding to the type identifier.

[0051] Based on the above, this application provides multiple candidate data transmission links for the data packets to be transmitted by the application, instead of providing only one data transmission link. Simultaneously, it sets two transmission modes, a first transmission mode and a second transmission mode, instead of only one. The first transmission mode is a mode that uses multiple data transmission links to transmit data packets in parallel. This is suitable for transmitting relatively important data packets (e.g., critical data packets). If a data packet is not received on one data transmission link, it can be received on other data transmission links, reducing the probability of packet loss and improving reliability. The second transmission mode is a mode that selects one data transmission link from multiple data transmission links to transmit data packets. Since only one data transmission link is selected, once a packet is lost, it cannot be recovered. However, multiple data transmission links transmit different data packets simultaneously, resulting in high transmission efficiency. This is more suitable for less important data packets (e.g., non-critical data packets). The data packets carry a corresponding data packet type identifier. This data packet type identifier reflects the importance of the data packet. For critical data packets, selecting the first transmission mode can reduce the packet loss rate of critical data packets. For non-critical data packets, selecting the second transmission mode can improve the overall transmission efficiency of multiple data packets generated by the application. The embodiments of this application achieve a good trade-off between data transmission reliability and data transmission efficiency.

[0052] It should be noted that the above are just examples and can be applied to other data packet transmission scenarios, which will not be elaborated here.

[0053] For ease of understanding, each step of the data transmission method will be described in detail below. It should be noted that the order of the following embodiments is not intended to limit the preferred order of the embodiments.

[0054] Referring to Figure 2, which is a schematic flowchart of the data transmission method provided in an embodiment of this application, this data transmission method is executed by a computer device, such as a terminal, and the specific process is as follows:

[0055] 101. Obtain a data packet, wherein the data packet carries a type identifier of the data packet.

[0056] Currently, many service providers have developed applications (APPs) for mobile devices (such as mobile phones, smartwatches, tablets, and other computer devices). For example, taking mobile phones as an example, game applications, short video applications, live streaming applications, and online shopping applications have been developed for mobile devices to enable users to use these applications anytime, anywhere, providing convenience. In some embodiments, the type identifier is used to characterize the data level classification of data packets; in other words, it characterizes the importance of the data packets.

[0057] A data packet is a group of data transmitted as a whole from one device to another in network communication. It is the basic unit of network transmission, similar to a package in logistics transportation. Just as a package contains information such as the sender, recipient, and contents, a data packet also contains the address information of the sender and receiver, as well as the data content to be transmitted.

[0058] When an application runs its corresponding business, it generates data packets for that business. During the process of sending these data packets to the business server, a certain level of transmission reliability and a certain transmission rate are required. For example, for data packets from game applications, the data packets need to be reliable during transmission to avoid packet loss as much as possible. For data packets from live streaming applications, the data packets need to have the largest possible network bandwidth capacity during transmission to meet the data packet transmission rate.

[0059] In response, some related technologies have improved the transmission rate of application data packets, but suffered from severe packet loss; others have improved the reliability of data packet transmission, but the transmission rate is too slow.

[0060] Based on this, the embodiments of this application propose a data transmission method that creates multiple transmission modes based on multiple network transmission links. Thus, for data packets within the same business session of an application, the data packets can be transmitted through different transmission modes. In this way, different data packets can independently select the same or different transmission modes. Therefore, for critical data packets within the same business session, a reliable transmission method can be selected for transmission, while for non-critical data packets, a transmission mode with a high transmission rate can be selected for transmission. This satisfies the transmission reliability of critical data packets while improving the transmission rate of non-critical data packets, thereby improving the overall data packet transmission efficiency and the operational stability of business services.

[0061] The computer devices in this application embodiment can be mobile phones, tablets, laptops, smartwatches, smart home appliances, etc. These devices support at least two network transmission links, such as supporting wired or wireless communication networks of operators, as well as mobile hotspot networks, and supporting Bluetooth and infrared communication. For example, a mobile phone can support wireless communication networks (such as 3G (third-generation mobile communication technology) / 4G (fourth-generation mobile communication technology) / 5G (fifth-generation mobile communication technology) through a SIM card, and also supports mobile hotspot networks. These wireless communication networks and mobile hotspot networks are two different network transmission links. Similarly, a laptop can support wired communication networks (such as broadband) and also supports mobile hotspot networks. These wired communication networks and mobile hotspot networks are two different network transmission links. The above are just examples; other mobile terminal devices can also support any two or more different network transmission links.

[0062] In this embodiment of the application, in order to transmit application data packets according to different transmission modes, the data packets of the current business session of the application can be obtained sequentially. The data packets carry a data packet type identifier, so that the corresponding transmission mode can be assigned to the corresponding data packets according to the data packet type identifier in order to transmit the data packets, thereby improving the transmission reliability of critical data packets and improving the overall data packet transmission efficiency.

[0063] The application can be an application developed for computer devices, such as a game application, short video application, online shopping application, live streaming application, etc., developed for mobile operating environments.

[0064] The data packet carries at least a type identifier. Specifically, this data packet is a business data packet generated by the application. This business data packet can be an Internet Protocol version 4 (IPv4) data packet, whose header includes fields such as version, header length, type of service, total length, identifier, flags, fragment offset, time to live, protocol, header checksum, source IP address, and destination IP address. The third field (Type of Service field TOS) can be used to fill in and record the type identifier of the data packet to indicate the importance, priority, and other attributes of the current data packet. To a certain extent, it reflects the importance of the data content of the data packet, and different data packet type identifiers can be set according to the importance of the data packet.

[0065] It should be noted that the data packet type identifier can be any length of characters or numbers, for example, a 6-bit character set, used to indicate the type of the current data packet, defined by the application. When assigning a transmission mode to a data packet, the type identifier can be used to determine the importance of the data packet to the business service, and based on this, a corresponding transmission mode can be assigned to the data packet. Specifically, the application can generate a data packet type identifier based on selection rules and the importance of the data content of the current data packet, and add it to the service type field in the packet header. The selection rules include multiple preset type identifiers and the transmission mode mapped to each preset type identifier.

[0066] In this embodiment, to meet the different transmission mode requirements of multiple data packets in the same service session, different transmission modes can be pre-defined for different data packet types. These transmission modes include at least a first transmission mode and a second transmission mode (the creation process of these two modes will be described later). The first transmission mode indicates parallel transmission using multiple data transmission links; that is, it is a transmission mode that uses multiple data transmission links to transmit data packets in parallel. The second transmission mode indicates selecting one data transmission link from among the multiple data transmission links for transmission; that is, it is a transmission mode that selects one data transmission link to transmit data packets. Based on this, different transmission modes can be mapped to different data packet types to generate selection rules. This provides a reference when setting data packet type identifiers in the application and serves as a basis for subsequent transmission mode allocation, thereby enabling multiple data packets in the same service session to use different transmission mode requirements.

[0067] In some implementations, the data level classification of the application's data packets can be determined first, with each data level classification corresponding to a data packet type identifier. A mapping relationship can then be established between the data packet type identifiers and pre-created transmission modes to generate selection rules. For example, before step 101, the following steps may be included: obtaining multiple data level classifications for the application's data packets and setting a type identifier for each data level classification; establishing a mapping relationship between each type identifier and a first transmission mode or a second transmission mode to obtain selection rules.

[0068] The data level classification can be a predefined classification of data packets by the application (or business side). Different level classifications represent different levels of importance of data packets, specifically reflecting the importance of data packets to business services.

[0069] For example, taking the data packets of a game application as an example, assuming that they include data packets containing the background content of the game screen and data packets containing the action content of the game characters, the background content data packets are generally considered regular packets and can be divided into regular packets with basic background content and regular packets with background content changes. The action content data packets are generally considered advanced packets and can be divided into advanced packets with basic game characters and advanced packets with dynamic game character actions. Based on this, the data packets can be classified into four data levels.

[0070] For example, taking the data packets of a live streaming application as an example, assuming that the data packets of a live streaming application are divided into key frame (I-frame) data packets, first non-key frame (P-frame) data packets, second non-key frame (B-frame) data packets, and control signaling data packets, the above data packets can be divided into 4 data level classifications. The specific order of the classification is not limited here.

[0071] The preset type identifier can be a type identifier pre-set for the corresponding data level classification. For example, assuming the data packet type identifier is 6 bits long and includes 4 data level classifications, the corresponding data packet type identifier is set for each data level classification, namely 000000, 110000, 001110, and 101110. The above is just an example.

[0072] The selection rule may include a preset mapping relationship between type identifier and first transmission mode or second transmission mode. In addition, the selection rule also includes a preset type identifier associated with a retransmission indication type connection identifier (i.e., a connection identifier that indicates retransmission of data packets, also known as a first type connection identifier) ​​or a non-retransmission indication type connection identifier (i.e., a connection identifier that indicates non-retransmission of data packets, also known as a second type connection identifier).

[0073] Specifically, in order to generate selection rules, firstly, the data level classification of data packets for the application is obtained. This can be obtained from the business server corresponding to the application, or from the interaction with the application. There is no limitation here.

[0074] Then, since the currently pre-built transmission modes include a first transmission mode and a second transmission mode, a mapping relationship needs to be established between the type identifier of each preset data packet and the first or second transmission mode. Specifically, multiple data level classifications of data packets for the application are obtained; a preset type identifier is set for each data level classification; a mapping relationship is established between each preset type identifier and the first or second transmission mode to obtain the selection rule. In some embodiments, the present application embodiments may determine the priority order of the first and second transmission modes, and sort the first and second transmission modes according to the priority order to obtain a transmission mode sequence; according to the high to low level order among the multiple data level classifications, multiple preset type identifiers are evenly mapped to the first and second transmission modes in the transmission mode sequence to obtain the selection rule.

[0075] For example, suppose data classification includes four levels, and each of these four levels is assigned a data packet type identifier, namely 000000, 110000, 001110, and 101110. Pre-built transmission modes include a first transmission mode and a second transmission mode. The priority order of these two transmission modes can be determined directly by the terminal transmission unit, or it can be determined according to transmission characteristics. For example, it can be defined according to transmission reliability. Obviously, the first transmission mode has a higher priority in transmission reliability than the second transmission mode. A transmission mode sequence is generated according to priority, with the first transmission mode preceding the second. Further, the type identifiers corresponding to the four data packets are evenly mapped to the transmission mode sequence according to the hierarchical order of these four classification levels. For example, 000000 and 110000 represent the type identifiers of regular packets, and 001110 and 101110 represent the type identifiers of high-level packets. Therefore, 001110 and 101110 are mapped to the first transmission mode, and 000000 and 110000 are mapped to the second transmission mode. This yields the selection rule. The selection rule can then be sent to the application to notify it of the selection process.

[0076] By using the above methods, data packets of the current business session of the application can be obtained sequentially. These data packets carry a data packet type identifier, so that different transmission modes can be assigned to the corresponding data packets according to the data packet type identifier for transmission, thereby improving the transmission reliability of critical data packets and improving the overall data packet transmission efficiency.

[0077] 102. Identify multiple data transmission links.

[0078] In this embodiment, after receiving the data packet from the application, multiple data transmission links that can be used to transmit the data packet can be determined first. Specifically, the transmission links supported by the terminal (or the application and / or transmission unit on the terminal) can be determined, and the supported transmission links can be used as candidate data transmission links for transmitting the data packet. In this way, after allocating the corresponding transmission mode to the data packet, the data packet can be transmitted by combining the allocated transmission mode and multiple data transmission links, thereby improving the transmission reliability of critical data packets and improving the overall data packet transmission efficiency.

[0079] The data transmission link can be any type of transmission link supported by the computer equipment, which can be understood as a data channel used to send and receive data packets. For example, the data transmission link can be a wireless communication network, such as a 3rd generation mobile communication network (3G), a 4th generation mobile communication network (4G), a 5th generation mobile communication network (5G), etc., or a wired communication network such as fiber optic or broadband, or a mobile hotspot network. Furthermore, it can be a transmission link such as infrared communication, Bluetooth, or LTE. The links exemplified above can be freely combined and are not limited here.

[0080] Specifically, when determining multiple data transmission links for transmitting data packets, multiple candidate transmission links supported by the terminal can be identified from the terminal's hardware device parameters or configuration parameters. Then, each candidate transmission link can be selected as the data transmission link, or a data transmission link can be chosen from multiple candidate transmission links. For example, candidate transmission links can be wireless communication networks, mobile hotspot networks, Bluetooth, infrared communication, etc. Wireless communication networks or mobile hotspot networks can be selected as data transmission links, or all of the above candidate transmission links can be directly selected as data transmission links.

[0081] By using the above methods, the transmission links supported by the terminal (or the application and / or transmission unit on the terminal) can be determined, and the supported transmission links can be used as data transmission links for transmitting data packets. After allocating the corresponding transmission mode to the data packets, the data packets can be transmitted by combining the allocated transmission mode and multiple data transmission links, thereby improving the transmission reliability of critical data packets and improving the overall data packet transmission efficiency.

[0082] 103. Select the transmission mode corresponding to the type identifier from the first transmission mode and the second transmission mode. The first transmission mode indicates that data packets are transmitted in parallel using the multiple data transmission links, and the second transmission mode indicates that one data transmission link is selected from the multiple data transmission links to transmit the data packets. Here, parallel transmission of data packets means transmitting one data packet using each data transmission link separately.

[0083] In this embodiment, after determining multiple data transmission links for transmitting data packets, a transmission mode corresponding to the data packet type identifier (also called the target transmission mode) can be determined from a pre-created first transmission mode and a second transmission mode based on selection rules. This target transmission mode is then assigned to the current data packet. It should be noted that the data packet type identifier can be added by the application for data packet level classification; therefore, it can be understood that the target transmission mode is assigned to the data packet based on data level classification. In this way, different data transmission modes can be assigned to critical and non-critical data packets, enabling differentiated transmission between different data packets within the same service session, thus ensuring reliability.

[0084] The first transmission mode involves transmitting data packets in parallel using multiple data transmission links, while the second transmission mode selects one data transmission link from among these multiple links to transmit data packets. For example, assuming the data transmission links include wireless communication networks (3G / 4G / 5G) and mobile hotspot networks, the first transmission mode means the terminal simultaneously uses both the wireless communication network and the mobile hotspot network to transmit the same data packet in a service session. This can be understood as repeated transmission, reducing packet loss and improving transmission reliability. The second transmission mode, on the other hand, involves transmitting different data packets from the application's service session separately through the wireless communication network and the mobile hotspot network. For instance, data packet 1 is transmitted through the wireless communication network, data packet 2 through the mobile hotspot network, data packet 3 through the wireless communication network, and data packet 4 through the mobile hotspot network. This increases transmission efficiency, and so on. Alternatively, a round-robin method can be used to select the data transmission link.

[0085] In some embodiments, step 103 may include:

[0086] (103.1) Obtain the preset first transmission mode and second transmission mode;

[0087] (103.2) According to a preset selection rule, select the transmission mode corresponding to the type identifier from the first transmission mode and the second transmission mode. The selection rule includes a preset mapping relationship between the type identifier and the first or second transmission mode.

[0088] Specifically, a first and second transmission mode pre-built between the terminal and the gateway can be determined first. These modes can be the pre-built transmission modes between the terminal and the gateway. Further, multiple preset type identifiers and the transmission mode mapped to each type identifier (e.g., the first or second transmission mode) can be obtained from the selection rules. This target transmission mode is then used as the transmission mode for the data packet. Thus, the data packet type identifier is added by the application for data packet level classification. According to the level or importance of the data packet reflected by the type identifier, a corresponding transmission mode is assigned to the data packet. For example, different data transmission modes can be assigned to critical and non-critical data packets, enabling differentiated transmission between different data packets in the same business session. A gateway can refer to a device node that receives and forwards data packets. For example, it could be a standalone server or a module of a server.

[0089] In some implementations, a first transmission mode and a second transmission mode can be created for multiple data transmission links between the terminal and the gateway, and a preset connection identifier list can be associated with the first and second transmission modes so that any transmission mode maintains and uses the same preset connection identifier list. For example, before step 103, the implementation may further include: obtaining a preset connection identifier list allocated to the current service session of the application, and generating a session connection request based on the preset connection identifier list; sending the session connection request to the gateway, so that the gateway creates a first transmission mode and a second transmission mode based on multiple data transmission links, and associates the preset connection identifier list with the first and second transmission modes respectively; when the association is detected to be complete, confirming that the first and second transmission modes have been successfully created for the current service session of the application.

[0090] In this context, a business session can be understood as a single connection between a terminal (i.e., a computer device executing data transmission methods) and a server, specifically a connection established between the transmission unit on the terminal and the gateway on the server. For example, in a gaming business, a game match can be considered a business session, or the time from a player logging into the game to logging off can be considered a business session. Similarly, in a shopping application, a buyer completing a purchase order can be considered a business session. Furthermore, in a live streaming business, the start and end of a live stream can be considered a business session. These are merely examples and not intended as specific limitations.

[0091] The preset connection identifier list can contain multiple connection identifiers. These identifiers are used to indicate the same business session, representing the identifier corresponding to the same business session between the local machine and the server. Each connection identifier can be a string, a number, or a sequence number. It should be noted that an application can have multiple business sessions, i.e., establish multiple connections. Each connection is distinguished by a connection identifier. For different business sessions, the local machine and the gateway can maintain and use the same preset connection identifier list, or they can maintain and use different preset connection identifier lists; this is not limited here.

[0092] Specifically, an application can continuously conduct business sessions. Assuming that each business session between the local machine and the gateway is considered a connection, multiple data packets will be generated during the session. In order to meet the retransmission requirements of subsequent critical data packets, data packets of the same business session need to be marked with different connection identifiers within a business session, but these connection identifiers all point to the same business session.

[0093] In some embodiments, when creating a transmission mode for a business session of an application, the present application implementation may obtain a preset connection identifier list allocated for the current business session of the application; generate a session connection request carrying the preset connection identifier list; send the session connection request to a gateway, the session connection request being used to instruct the gateway to create a first transmission mode and a second transmission mode based on multiple data transmission links, and establish association relationships between the preset connection identifier list and the first transmission mode and the second transmission mode respectively; when it is determined that the association relationship has been established, it is confirmed that the first transmission mode and the second transmission mode have been successfully created for the current business session.

[0094] In some embodiments, when creating a transmission mode for a business session of an application, a preset list of connection identifiers allocated to the application's business session can be obtained first, and a session connection request can be generated based on the preset list of connection identifiers. For example, a session connection request carrying the preset list of connection identifiers can be generated. Additionally, the session connection request can also carry link identifiers of multiple data transmission links. Then, the session connection request is sent to the gateway to send the preset list of connection identifiers to the gateway. At this time, the gateway can create a first transmission mode and a second transmission mode based on these multiple data transmission links, and associate and bind the preset list of connection identifiers with the first and second transmission modes respectively, so that the same connection identifiers in the preset list can be maintained and used in any subsequent data transmission mode. Afterwards, the gateway can send a creation message back to the local device (such as a terminal or an application on the terminal that integrates multi-network transmission functionality, or a transmission unit / application). When it detects that the creation of the first and second transmission modes is complete, and the preset list of connection identifiers has been associated with the first and second transmission modes respectively, the local device confirms that the first and second transmission modes have been successfully created for the current business session of the application with the gateway.

[0095] For example, a list of preset connection identifiers for the application's current business session is obtained, and this list is included in the header of the session connection request data packet. The connection identifiers (Connection IDs, CIDs) in this list will be used to identify the corresponding connections throughout the lifecycle of this business session. Simultaneously, relevant flags are populated in the QUIC data packet header to indicate that this is a session connection request to establish a new session connection. Furthermore, transmission mode flags for the first and second transmission modes, QUIC version numbers, etc., can be set separately. Further, the QUIC data packet containing the session connection request is transmitted to the server (specifically, a gateway on the server). This data packet will be sent out through a default network link (such as one of the currently available Wi-Fi or mobile data networks, selected according to the system default policy).

[0096] After receiving a session connection request data packet, the server parses the packet header to obtain information such as the preset connection identifier list and Flags, identifying that this is a session connection request to establish a second transmission mode and a first transmission mode based on multiple data transmission links. The server can decide whether to accept the session connection request based on its own resources and configuration. If accepted, it indicates that the second and first transmission modes have been successfully created. The server will associate the preset connection identifier list with these two transmission modes and store it. Subsequently, the server will generate corresponding notification information, such as a session connection identifier (different from the connection identifier in the preset connection identifier list, used by the server to identify the connection), and include it in the response data packet to return to the terminal. At this point, the creation of the first and second transmission modes is complete.

[0097] Using the above method, based on selection rules, a transmission mode corresponding to the data packet type identifier can be selected from a pre-created first and second transmission mode, and the selected transmission mode can be used as the transmission mode assigned to the current data packet. In this way, different data transmission modes can be used for critical and non-critical data packets, enabling differentiated transmission between different data packets within the same business session, thus ensuring reliability.

[0098] 104. Transmit the data packet using the transmission mode corresponding to the type identifier.

[0099] In this embodiment, after assigning a target transmission mode (i.e., the transmission mode corresponding to the type identifier) ​​to a data packet according to its type identifier, the data packet can be transmitted to the gateway via the data transmission link indicated by the target transmission mode. Specifically, for the first transmission mode, the data packet is transmitted to the gateway simultaneously through multiple data transmission links, improving the transmission reliability of the data packet. For the second transmission mode, the data packet is transmitted to the gateway through one of the multiple data transmission links, improving the transmission efficiency of the data packet. This allows the gateway to process the received data packets, such as deduplication or aggregation, and forward the data packets to the corresponding business server of the application, thus completing the transmission of the data packet. In this way, differentiated transmission between different data packets in the same business session of the application is achieved, for example, improving the transmission reliability of critical data packets and increasing the transmission rate of non-critical data packets, achieving a good trade-off between data transmission reliability and data transmission efficiency.

[0100] It should be noted that different data transmission links are used for different transmission modes. For example, the first transmission mode uses multiple data transmission links between the local machine and the server (gateway) to transmit the same data packet in parallel, while the second transmission mode selects one data transmission link from the multiple data transmission links between the local machine and the server (gateway) to transmit the data packet.

[0101] In some implementations, when the transmission mode corresponding to the type identifier is the second transmission mode, the data packet is sent to one of the multiple data transmission links for transmission, thereby improving the overall data packet transmission efficiency. For example, step 104 may include:

[0102] (104.a.1) When the transmission mode corresponding to the type identifier is the second transmission mode, select one data transmission link from multiple data transmission links;

[0103] (104.a.2) Transmit data packets through the selected data transmission link. For example, send data packets to a gateway.

[0104] Specifically, after determining the transmission mode (i.e., the target transmission mode) assigned to the data packet corresponding to the type identifier, when the target transmission mode is identified as the second transmission mode, according to the instructions of the second transmission mode, only one data transmission link is selected from multiple data transmission links, and the data packet is sent to the selected data transmission link (also called the target data transmission link) so that the data packet can be sent to the gateway or other devices through the selected data transmission link, thereby forwarding it to the server or other destinations.

[0105] When selecting a data transmission link from multiple links, a round-robin method can be used. Specifically, the multiple data transmission links are sequentially numbered. For example, suppose the first link is WiFi, the second is 5G, the third is infrared communication, and the fourth is Bluetooth. For a single data packet, the data transmission link is selected sequentially according to the round-robin order. If WiFi was selected as the data transmission link in the previous round, then 5G will be selected in this round; if 5G was selected in the previous round, then infrared communication will be selected in this round.

[0106] Alternatively, a route hashing method can be used to select data transmission links. Specifically, each data packet has a corresponding packet number. The target hash value is obtained by hashing the packet number. Multiple data transmission links are pre-constructed with corresponding hash rings. Each data transmission link has a hash value range on its hash ring. The target hash value is mapped onto the hash ring to determine the target hash value range that the target hash value points to. Thus, the data transmission link corresponding to the target hash value range is selected as the data transmission link.

[0107] In some implementations, a data transmission link can be flexibly selected from multiple data transmission links based on the length of the data packet's waiting time. For example, step (104.1), "selecting a data transmission link from multiple data transmission links," may include: determining the data packet's generation time; determining the current waiting time of the data packet (i.e., the time between the generation time and the current time) based on the generation time; when the waiting time is greater than a preset time threshold, determining the average transmission rate of each data transmission link among the multiple data transmission links, and selecting the data transmission link with the highest average transmission rate as the selected data transmission link; when the waiting time is less than the preset time threshold, determining the average packet loss rate of each data transmission link among the multiple data transmission links, and selecting the data transmission link with the lowest average packet loss rate as the selected data transmission link. The average transmission rate is, for example, the ratio of the amount of data transmitted within a predetermined time to the predetermined time. The average packet loss rate is, for example, the ratio of the number of lost data packets within a predetermined time to the total number of data packets sent.

[0108] The generation time refers to the time when the data packet is generated, that is, the moment when the application generates the current data packet. Specifically, in the application's business session, data that needs to be interacted with the server is generated. The data transmission format can be in the form of data packets. Therefore, the data that needs to be interacted with is packaged into a data packet, and the time when the data packet is packaged can be used as the generation time. This time can be accurate to the second or microsecond, such as xx year xx month xx day xx hour xx minute xx second xx microsecond.

[0109] The waiting time can also be understood as the time that a data packet has been waiting from the time it was generated until the current time. It should be noted that a large number of data packets may be generated concurrently in a business session, which causes the data packets to be added to the transmission queue and wait for transmission. The length of time it takes to wait for transmission is the waiting time.

[0110] The preset time threshold can be a tolerance value for the waiting time of data packets. Specifically, if the threshold is exceeded, it may affect the operation of the corresponding business services of the application, such as lag or response delay. The preset time threshold can be set according to experience values ​​and is not limited here.

[0111] Specifically, for data packets requiring transmission mode allocation, firstly, the generation time of the data packet can be determined, and based on the generation time, the waiting time from the time the data packet is packaged up to the current time can be determined. Then, the waiting time is compared with a preset time threshold. On one hand, if the waiting time is longer than the preset time threshold, it indicates that the data packet is waiting for transmission for a relatively long time. Since there are multiple data transmission links with different transmission rates, to complete the data packet transmission as quickly as possible, the average transmission rate of each data transmission link can be determined, and the data transmission link with the highest average transmission rate can be selected. On the other hand, if the waiting time is less than the preset time threshold, it indicates that the waiting time of the data packet is short and within the tolerable time range. In this case, to maximize the reliability of data packet transmission and avoid packet loss, the average packet loss rate of each data transmission link can be determined, and the data transmission link with the lowest average packet loss rate can be selected. Therefore, for data packets in the second transmission mode, if the waiting time is long, the data transmission link with a higher transmission rate is selected first; if the waiting time is short, the data transmission link with a lower packet loss rate is selected first, thereby improving the data packet transmission rate or transmission reliability.

[0112] In some implementations, when the target transmission mode is the first transmission mode, data packets are sent to multiple data transmission links, and the data packets are transmitted concurrently through multiple data transmission links to improve the overall reliability of data packet transmission. For example, step 104 may include: when the target transmission mode is the first transmission mode, transmitting the data packets in parallel through multiple data transmission links.

[0113] In some embodiments, step 104 may include:

[0114] (104.b.1) Each of the multiple data transmission links is used as a data transmission link for transmitting data packets;

[0115] (104.b.2) Send the data packet to each data transmission link and send it to the gateway through multiple selected data transmission links respectively.

[0116] Specifically, after determining the target transmission mode for the data packet, when the target transmission mode is identified as the first transmission mode, each of the multiple data transmission links is selected as a data transmission link according to the indication of the second transmission mode, thus obtaining multiple selected data transmission links. Further, according to the number of data transmission links, the data packet is copied to obtain multiple identical data packets, so that the number of data packets is equal to the number of data transmission links. The multiple identical data packets are then sent to the multiple selected data transmission links respectively, so that the data packets are sent to the server's gateway through these multiple selected data transmission links, and then forwarded to the business server.

[0117] In this embodiment, the data packet transmission process is based on the Multi-channel Fast Internet Connection Protocol (MP-QUIC). Data packets generated by the application layer (i.e., the application) can be further encapsulated by the MP-QUIC layer to obtain data packets. These data packets are then sent to the transport layer for transmission. Therefore, when transmitting data packets according to the target transmission mode, the data packets can be encapsulated using the MP-QUIC layer based on the User Datagram Protocol (UDP) layer. It should be noted that, to enable the retransmission of lost or erroneous data packets within the same service session, corresponding markers can be added during encapsulation so that tagged data packets can be retransmitted if they are lost or erroneous.

[0118] In some implementations, to enable subsequent retransmission of data packets within the same service session, a first connection identifier is used as a marker to indicate whether to retransmit the data packet. The first connection identifier and the data packet are encapsulated at the Fast Internet Connection Protocol layer to obtain a data packet, which is then transmitted according to the target transmission mode. For example, step 104 may include:

[0119] (104.1) Based on the data packet type identifier, a first connection identifier is selected for the data packet from a preset list of connection identifiers associated with the current service session. In some embodiments, the selection rule further includes a preset type identifier associated with a retransmission indication type (i.e., a connection identifier indicating retransmission of the data packet, also referred to as a first type connection identifier) ​​or a non-retransmission indication type connection identifier (i.e., a connection identifier indicating no retransmission of the data packet, also referred to as a second type connection identifier). In some embodiments, each preset type identifier is provided with an attribute item indicating whether to retransmit the data packet in the event of a failed data packet transmission. For example, the value range of the attribute item includes a first attribute value and a second attribute value. The first attribute value indicates retransmission of the data packet, and the second attribute value indicates no retransmission of the data packet. A connection identifier with the first attribute value belongs to a first type of connection identifier, and a connection identifier with the second attribute value belongs to a second type of connection identifier. For example, when it is determined that the data packet needs to be retransmitted based on the value of the attribute item of the data packet type identifier, a connection identifier indicating retransmission of the data packet is selected as the first connection identifier. Conversely, when it is determined that the data packet does not need to be retransmitted based on the value of the attribute item of the data packet type identifier, a connection identifier indicating no retransmission of the data packet is selected as the first connection identifier.

[0120] (104.2) Encapsulate the first connection identifier into the data packet. In other words, encapsulate the first connection identifier with the original data packet to obtain a data packet encapsulated with the first connection identifier. Here, the first connection identifier is used to indicate whether the data packet needs to be retransmitted when a data packet is not successfully transmitted (e.g., the data packet is lost or an error occurs during transmission).

[0121] (104.3) The data packet is transmitted to the gateway using the transmission mode corresponding to the type identifier.

[0122] The preset connection identifier list can contain multiple connection identifiers, which are used to indicate the same service session. Each connection identifier can be a string, a number, or a sequence number. The maximum length of the connection identifier is a 64-bit unsigned integer, used to identify a QUIC connection (i.e., a service session) in network communication. This allows the server to distinguish between different connections. Even if the IP address or port of the local client changes (e.g., the device switches base stations or WiFi hotspots in a mobile network), the server can still identify and maintain the connection between the server and the local machine using this unique connection identifier. In this embodiment, multiple connection identifiers from the preset connection identifier list are set for a service session, and a retransmission indication type connection identifier is used to identify data packets that need to be retransmitted in case of packet loss. The description of the "retransmission" part will be provided later and will not be repeated here.

[0123] Specifically, after obtaining the data packets of the application's business session, firstly, a list of preset connection identifiers associated with the application's current business session can be determined. Different business sessions may have the same or different list of preset connection identifiers. Then, based on the data packet's type identifier, information such as the data packet's importance, type, or data type is obtained to determine whether retransmission is necessary. Alternatively, since the data packet's type identifier is generated by the application based on selection rules, reflecting the data packet's importance—that is, its significance to the business—a decision on whether retransmission is necessary can be made directly based on the data packet's type identifier. Furthermore, a mapping relationship between each preset data packet's type identifier and a retransmission flag can be pre-defined, allowing for direct determination of whether retransmission is needed in case of packet loss or errors based solely on the data packet's type identifier.

[0124] In some embodiments, if retransmission is required in case of loss or error, a connection identifier of retransmission indication type is selected from a preset connection identifier list as the first connection identifier; if retransmission is not required in case of loss or error, a connection identifier of non-retransmission indication type is selected from the preset connection identifier list as the first connection identifier. Then, by encapsulating the first connection identifier with the data packet at the Fast Internet Connection Protocol layer to obtain a data packet, the data packet is finally transmitted according to the target transmission mode to send the data packet to the gateway. This allows for the determination of whether retransmission is needed based on the first connection identifier carried in the packet header when a data packet is lost or corrupted, enabling the retransmission of some critical data packets as needed. Thus, the ability to retransmit data packets within the same service session can be achieved.

[0125] In some implementations, a packet header of a specific format is generated for the data packet according to the Fast Internet Connection Protocol (HICP), and a connection identifier field is filled into the packet header to obtain the data packet. For example, step (104.2) may include: creating a packet header based on the HICP, the packet header including at least a connection identifier field; filling the connection identifier field in the packet header according to a first connection identifier to obtain a filled packet header; and generating a data packet (also called a target data packet) based on the filled packet header and the data packet, that is, encapsulating the filled packet header into the data packet.

[0126] Specifically, after selecting a first connection identifier for the data packet based on its type, the data packets generated by the application can be encapsulated at the target Fast Internet Connection Protocol (QUIC) layer. It should be noted that the encapsulation of the first connection identifier and the data packet is primarily performed at the Fast Internet Connection Protocol (QUIC) layer. The data packet can be understood as a QUIC data packet, and the packet header or initial header is a QUIC data packet header. The QUIC data packet header may include flags, a connection ID, a QUIC number, and a packet number, which are not limited here.

[0127] Specifically, when a data packet is transmitted to the Fast Internet Connection Protocol (QUIC) layer, an initial header (i.e., a header based on the QUIC protocol) is created according to the QUIC format. This initial header contains multiple fields, one of which is a connection identifier field. Then, based on the first connection identifier selected for the data packet, the connection identifier field in the initial header is filled in. Additionally, a "retransmission type" or related value can be filled in the flag field as a flag. Other fields are filled in according to their respective information, which will not be elaborated here. This process yields the target header. Finally, the target header and the data packet are encapsulated to obtain the data packet. Thus, the data packet carries the first connection identifier, which can be used to determine whether retransmission is necessary if the data packet is lost or corrupted.

[0128] For example, firstly, the QUIC layer constructs the packet header. In the header, following the QUIC protocol format specification, the previously determined first connection identifier is filled into the corresponding field positions. For instance, in the QUIC common header, the first connection identifier is accurately placed in the specified byte position according to its length (indicated by the relevant bits in the Flags field). Simultaneously, the QUIC layer also sets other important fields in the packet header, such as the Flags field, which indicates the packet type (e.g., whether it's an initial connection packet, a retransmission packet, etc.), the version number (specifying the QUIC protocol version used, such as QUICv1), and the packet number (used for packet sequence confirmation, retransmission detection, etc.; generally, the sequence number of the first packet sent by the sender is 1, and the sequence numbers of subsequent packets increment sequentially).

[0129] Next, necessary control information and metadata are added. Depending on the requirements of the QUIC protocol and the application's needs, the QUIC layer may add additional control information and metadata to the data packets in addition to the application data from the source packets. For example, if encryption is enabled, the QUIC layer will add encryption-related information, such as encryption algorithm identifiers and key exchange parameters, to ensure the confidentiality, integrity, and authenticity of the data during subsequent data transmission. Furthermore, it may include information related to congestion control and flow management, such as window size (used for flow control, indicating the size of the buffer currently available at the receiving end) and flow identifiers (used to distinguish different application data streams on a single QUIC connection). This information helps the QUIC protocol perform effective resource management and data scheduling during transmission.

[0130] Finally, the target data packet is encapsulated. After constructing the data packet header and adding necessary control information and metadata, the QUIC layer adds the application's original application data packet (i.e., payload) to the data packet, placing it after the header. The application data packet contains the data that the application actually wants to transmit, such as the request content in a Hypertext Transfer Protocol (HTTP) request, video frame data in a video stream, etc. After encapsulation, a complete QUIC data packet is formed, which now contains the QUIC header (including information fields such as Connection ID, Flags, Version, Packet Number, etc.), possible encryption information and metadata, and the application data packet itself, ready for transmission.

[0131] In some implementations, in order to enable subsequent retransmission of individual data packets within a service session, different connection identifiers are needed to mark different data packets as to whether or not they should be retransmitted. Therefore, a preset connection identifier list containing multiple connection identifiers needs to be created so that a first connection identifier can be selected from the preset connection identifier list to mark the data packet. For example, before step (104.1), the implementation may further include: creating multiple connection identifiers; setting at least one of the multiple connection identifiers as a first type of connection identifier indicating retransmission of data packets; setting each of the multiple connection identifiers other than the at least one connection identifier as a second type of connection identifier indicating no retransmission of data packets; and creating the preset connection identifier list containing the first type of connection identifiers and the second type of connection identifiers.

[0132] In some embodiments, this application embodiment may determine a primary connection identifier allocated to the current service session of the application, and create multiple connection identifiers associated with the primary connection identifier; select at least one candidate connection identifier from the multiple connection identifiers, and determine the candidate connection identifier as a retransmission indication type identifier, that is, set at least one of the multiple connection identifiers as a connection identifier of a first type indicating retransmission of data packets; determine any one of the multiple connection identifiers other than the candidate connection identifiers as a non-retransmission indication type identifier, that is, set each of the multiple connection identifiers other than the at least one connection identifier as a connection identifier of a second type indicating non-retransmission of data packets; and create a preset connection identifier list based on the retransmission indication type identifier and the non-retransmission indication type identifier.

[0133] It should be noted that an application's business session is considered a single connection, typically with a corresponding connection identifier. Therefore, within a business session, data packets are usually managed in batches according to their connection identifiers. To differentiate data packets, such as managing the retransmission of individual critical data packets, different connection identifiers can be assigned to each data packet within the same business session. This facilitates subsequent differentiated retransmission management of data packets. Specifically, first, a primary connection identifier assigned to the current business session of the application can be determined. This primary connection identifier can be the connection identifier between the application and the business server, the connection identifier between the terminal and the server, or even the connection identifier between the transmission unit and the gateway; there are no limitations here. Then, using this primary connection identifier as the parent identifier, multiple connection identifiers are generated based on it. These generated connection identifiers serve as child identifiers of the primary connection identifier. Child identifiers can be derived from the parent identifier by adding a suffix. For example, assuming the primary connection identifier is "2222", the child identifiers could be "2222-01", "2222-02", "2222-03", and so on. Furthermore, at least one connection identifier is selected from multiple connection identifiers and designated as the retransmission indication type identifier. For example, a connection identifier can be randomly selected as the retransmission indication type identifier, or multiple connection identifiers can be selected as the retransmission indication type identifier; this is not limited here. Meanwhile, the remaining connection identifiers from the multiple connection identifiers, excluding the at least one shown connection identifier, are designated as non-retransmission indication type identifiers. Finally, a preset connection identifier list is generated based on the retransmission indication type identifiers and the non-retransmission indication type identifiers. This allows for the subsequent selection of a first connection identifier from the preset connection identifier list to encapsulate data packets, enabling individual retransmission management of data packets.

[0134] In this embodiment, data packets critical to the application's business services are retransmitted when they are lost or corrupted (e.g., data packet corruption or garbled characters) to prevent data packet loss or corruption from affecting the application's business services. It should be noted that when data packets are lost or corrupted, the decision to retransmit depends on the first connection identifier carried by the data packet. This first connection identifier is set based on the corresponding data packet type identifier, which is generated by the application according to selection rules. Therefore, it can be understood that the decision to retransmit the data packet is based on its importance in the business session or its importance to the application's business services, ensuring reliability.

[0135] In some implementations, after a data packet is sent to the gateway, if the data packet is determined to be lost or corrupted based on the data packet reception status returned by the gateway, and the first connection identifier indicates a retransmission indication type, then retransmission is performed according to the target transmission mode. For example, step 104 may include: obtaining the data packet reception status returned by the gateway; when the data packet reception status indicates that a data packet is missing, and the first connection identifier carried in the data packet is a retransmission indication type, retransmitting the data packet to the gateway according to the target transmission mode.

[0136] The data packet reception status can include reception status information for one or more data packets. It can be a list that includes one or more data packet identifiers, numbers (such as Packet Number), and the packet status corresponding to each data packet number, such as error, missing, incomplete data, or corruption. In addition, if the data packet reception status does not contain the data packet number of a certain data packet, it means that the data packet was lost during transmission.

[0137] The retransmission indication type identifier is a connection identifier used to indicate that the corresponding data packet needs to be retransmitted when a transmission error occurs (such as packet loss or corruption). In conjunction with the above, the preset connection identifier list contains multiple connection identifiers, including retransmission indication type and non-retransmission indication type connection identifiers. Non-retransmission indication type connection identifiers indicate that the corresponding data packet does not need to be retransmitted.

[0138] Specifically, when the data packet reception status indicates that the data packet is missing, the identifier type of the first connection identifier corresponding to the connection identifier in the preset connection identifier list is queried; when the identifier type of the first connection identifier is a retransmission indication type identifier, the data packet is retransmitted to the gateway according to the target transmission mode. In this way, lost or erroneous critical data packets can be retransmitted, realizing the ability to retransmit data packets for the same service session, thus avoiding the impact of missing critical data packets on application service, such as avoiding frame skipping, stuttering, response failures, etc., and ensuring reliability.

[0139] For example, during data transmission, a server (such as a gateway) can use positive feedback (ACK) / negative feedback (NACK) signaling to provide feedback on the data packet reception status to the terminal (such as a transmission unit) to achieve reliable data transmission. ACK indicates that the receiving end has successfully received the data packet, while NACK indicates that the data packet is lost or erroneous and needs to be retransmitted by the sending end. For instance, after receiving a data packet, the server will first check its integrity and correctness. If the data packet contains checksum information, the data packet verification process can include verifying the checksum to ensure that the data packet has not been corrupted during transmission. For example, for a QUIC data packet containing a data checksum, the server will calculate the checksum of the received data packet according to a specific verification algorithm and compare it with the checksum carried in the data packet. If the two do not match, the data packet is considered to be erroneous. Simultaneously, the server will query the sequence number of the data packet (such as the Packet Number in a QUIC data packet). By comparing the sequence number of the received data packet with the expected sequence number, the receiving end can determine whether any data packets have been lost or out of order. For example, if the receiving end expects to receive a data packet with sequence number 5, but actually receives a data packet with sequence number 7, then the receiving end knows that data packets with sequence numbers 5 and 6 may have been lost.

[0140] On one hand, if the server successfully receives a data packet and the packet is complete and error-free, it generates an ACK signaling message indicating "data packet reception status". The ACK signaling message typically includes information such as the sequence number or sequence number range of the successfully received data packets, so that the terminal knows which data packets have been correctly received and do not need to be retransmitted. For example, the server might explicitly indicate in the ACK signaling message that "data packets with sequence numbers 1 to 100 have been successfully received". On the other hand, if the receiving end detects that a data packet is lost, corrupted, or out of order, it generates a NACK signaling message indicating "data packet reception status". The NACK signaling message will include information such as the sequence number or sequence number range of the incorrectly received data packets, informing the terminal that these data packets need to be retransmitted. For example, the server might send a NACK signaling message indicating that "data packets with sequence numbers 50 to 55 are lost, please retransmit". Afterwards, the server sends the generated ACK / NACK signaling messages back to the terminal via the reverse path of data packet transmission. In the MP-QUIC protocol, these signaling messages are encapsulated in corresponding QUIC data packets for transmission, ensuring that the signaling messages accurately reach the sending end.

[0141] Upon receiving an ACK / NACK signaling message, the terminal (local) parses the message content to obtain feedback information regarding data packet reception. On one hand, if an ACK signaling message is received, the sending end updates its transmission status based on the information in the message, knowing which data packets have been successfully received, thus allowing it to continue sending subsequent data packets. For example, if the ACK signaling message confirms that data packets with sequence numbers 1 to 100 have been received, the sending end can continue sending new data starting from data packet with sequence number 101. On the other hand, if a NACK signaling message is received, the sending end, based on the sequence numbers of the data packets that need to be retransmitted as indicated in the message, either caches these data packets locally (if a caching mechanism exists) or regenerates them, and resends them to the receiving end. The sending end may determine the timing and method of retransmission based on certain retransmission strategies, such as immediate retransmission, retransmission after a period of time, or adjusting the retransmission rate according to network congestion. For example, if the NACK signaling message indicates that data packets with sequence numbers 50 to 55 need to be retransmitted, the sending end will prioritize retransmitting these data packets to ensure data integrity and reliability.

[0142] It should be noted that retransmitting data packets to the gateway according to the target transmission mode is similar to the process of "transmitting data packets according to the target transmission mode" and "transmitting data packets according to the target transmission mode". For details, please refer to the process of transmitting data packets according to the target transmission mode, which will not be elaborated here.

[0143] In this embodiment, both the first and second transmission modes are transmission modes executed based on multiple data transmission links. For example, the first and second transmission modes share the same multiple data transmission links, such as a mobile data network (i.e., a 3G / 4G / 5G wireless communication network) and a mobile hotspot network. When network performance is poor, slow data packet transmission may occur, leading to congestion of multiple data packets, such as multiple data packets competing for the same data transmission link (mobile data network or mobile hotspot network). This causes transmission conflicts between data packets in the two transmission modes. To address this, a data packet transmission strategy can be used to determine the transmission priority order of conflicting data packets, and the data packets can be transmitted sequentially according to the transmission priority order. This avoids data transmission link congestion and disorder, restoring normal data packet transmission and ensuring reliability.

[0144] In some implementations, a priority order is determined between the first transmission mode and the second transmission mode; when a transmission conflict is detected between data packets of the first transmission mode and data packets of the second transmission mode, multiple data packets with transmission conflicts are sequentially transmitted to the gateway based on the priority order. For example, after step 104, the implementation may further include: receiving data packet congestion information fed back by the gateway, the data packet congestion information including the transmission delay duration of each data transmission link in the multiple data transmission links; when the transmission delay duration of each data transmission link is greater than a preset delay threshold, a priority order is determined between the first transmission mode and the second transmission mode; when a transmission conflict is detected between data packets of the first transmission mode and data packets of the second transmission mode, multiple data packets with transmission conflicts are sequentially transmitted to the gateway based on the priority order.

[0145] In terms of transmission reliability, the first transmission mode has a higher priority than the second transmission mode. Specifically, the first transmission mode uses multiple data transmission links to transmit data packets in parallel, resulting in superior transmission reliability and minimizing packet loss. Using the first transmission mode also reflects the importance of the data packets to the business service; therefore, the first transmission mode has a higher priority than the second transmission mode. In other words, the priority order is: the first transmission mode takes precedence over the second transmission mode.

[0146] The preset delay threshold can be a threshold for the duration of data packet transmission delay. Specifically, it can be preset based on the tolerable duration of data packet transmission delay, or based on historical experience values. That is, at what transmission delay duration will data packets affect or severely affect the operation of application services, such as delayed response or lag? The tolerable duration is determined by using the experience value as the preset delay threshold.

[0147] Specifically, during the transmission of data packets for a business session, the gateway also feeds back data packet congestion information to the local system in real time or at intervals. This congestion information can include the transmission delay of each data transmission link between the local system and the gateway. To improve the transmission efficiency of each data packet, the transmission delay can be compared with a preset delay threshold. If the transmission delay of each data transmission link is greater than the preset delay threshold, the priority order of the first transmission mode and the second transmission mode is determined. This priority order determines the priority of these two transmission modes for using multiple data transmission links, i.e., link usage priority. Further, it is determined whether there are conflicting data packets to be transmitted between the first and second transmission modes. If there are conflicting data packets, they are transmitted to the gateway sequentially according to link usage priority. For example, assuming the link usage priority of the first transmission mode is higher, the data packets to be transmitted under the first transmission mode are transmitted to the gateway first.

[0148] In addition, when the transmission delay of some data transmission links exceeds the preset delay threshold, data packets can be transmitted through data transmission links with a transmission delay less than the preset delay threshold. For data packets in the first transmission mode, the transmission mode can be switched to the second transmission mode, which can be understood as reallocating the transmission mode and transmitting the data packets after switching the transmission mode through data transmission links with a transmission delay less than the preset delay threshold.

[0149] Furthermore, if there is no transmission conflict between the data packets to be transmitted in the first transmission mode and the second transmission mode, it indicates that the congestion is caused by the data packets in one of the transmission modes. For example, if the data packets to be transmitted in the first transmission mode experience a transmission delay during transmission, the transmission mode of the data packets to be transmitted can be switched, such as to the second transmission mode, so that each data packet to be transmitted can be transmitted through multiple data transmission links, thereby improving the data packet transmission efficiency and restoring the normal transmission of data packets as soon as possible, which is reliable.

[0150] In the above manner, for the first transmission mode, data packets are transmitted to the gateway through multiple data transmission links; for the second transmission mode, data packets are transmitted to the gateway through one of the multiple data transmission links. In this way, differentiated transmission is achieved for different data packets in the same business session of the application, improving the transmission reliability of critical data packets and the transmission rate of non-critical data packets, thereby improving the overall transmission efficiency of data packets and ensuring reliability.

[0151] As can be seen from the overall description of the embodiments of this application, the embodiments of this application can obtain application data packets, the data packets carrying a data packet type identifier; determine multiple data transmission links for transmitting data packets; based on selection rules, determine the target transmission mode corresponding to the data packet type identifier in a first transmission mode and a second transmission mode, wherein the first transmission mode is a transmission mode for transmitting data packets in parallel using multiple data transmission links, and the second transmission mode is a transmission mode for selecting one data transmission link from multiple data transmission links to transmit data packets; and transmit data packets according to the target transmission mode.

[0152] Based on this, multiple data transmission links are provided for the data packets to be transmitted by the application, instead of just one. Furthermore, two transmission modes are set, a first transmission mode and a second transmission mode, instead of just one. The first transmission mode uses multiple data transmission links to transmit data packets in parallel, suitable for transmitting relatively important data packets. If a data packet is not received on one data transmission link, it can be received on other data transmission links, reducing the probability of packet loss and improving reliability. The second transmission mode selects one data transmission link from multiple data transmission links to transmit data packets. Since only one data transmission link is selected, packet loss cannot be recovered, but multiple data transmission links transmit different data packets simultaneously, resulting in high transmission efficiency; it is more suitable for less important data packets. The data packet carries a data packet type identifier. This data packet type identifier reflects the importance of the data packet. For critical data packets, selecting the first transmission mode can reduce the packet loss rate of critical data packets. For non-critical data packets, selecting the second transmission mode can improve the overall transmission efficiency of multiple data packets generated by the application. This application embodiment achieves a good trade-off between data transmission reliability and data transmission efficiency.

[0153] Based on the methods described in the above embodiments, the following examples will provide further detailed explanations.

[0154] Figure 3 is a schematic flowchart of another step of the data transmission method provided in an embodiment of this application. For ease of understanding, the embodiments of this application are described in conjunction with Figure 3.

[0155] In this embodiment, the data transmission method is described as being executed by a computer device, such as a terminal. The specific flow of the data transmission method is as follows:

[0156] 201. Obtain a data packet, wherein the data packet carries a type identifier application of the data packet.

[0157] In this embodiment, to transmit application data packets according to different transmission modes, the data packets of the current business session of the application can be obtained sequentially. These data packets carry a data packet type identifier, so that different transmission modes can be assigned to the corresponding data packets according to the data packet type identifier for transmission, thereby improving the reliability of critical data packet transmission and improving overall data packet transmission efficiency. Step 201 is implemented in a more specific manner consistent with step 101.

[0158] 202. Identify multiple data transmission links.

[0159] Specifically, after receiving the application's data packet, multiple data transmission links for transmitting the data packet can be determined first. Specifically, the transmission links supported by the terminal (or the application and / or transmission unit on the terminal) can be determined, and these supported transmission links are used as the data transmission links for transmitting the data packet. This allows for the subsequent allocation of the corresponding target transmission mode to the data packet, and then, by combining the target transmission mode and multiple data transmission links, the data packet transmission is completed, thereby improving the reliability of critical data packet transmission and increasing overall data packet transmission efficiency. Step 202 is implemented in a more specific manner consistent with step 102.

[0160] 203. Select the transmission mode corresponding to the type identifier from the first transmission mode and the second transmission mode.

[0161] In this embodiment, after determining multiple data transmission links for transmitting data packets, a target transmission mode corresponding to the data packet type identifier can be determined from a pre-created first transmission mode and a second transmission mode based on selection rules. This target transmission mode is then assigned as the transmission mode for the current data packet. It should be noted that the data packet type identifier can be added by the application based on data level classification of the data packets according to selection rules. Therefore, it can be understood that a target transmission mode is assigned to the data packets according to their data level classification. In this way, different data transmission modes can be assigned to critical and non-critical data packets, enabling differentiated transmission between different data packets within the same service session, thus ensuring reliability.

[0162] Specifically, a first and second transmission mode pre-built between the local device and the gateway can be determined first. These modes can specifically be the pre-built transmission modes between the transmission unit on the terminal and the gateway. Further, multiple preset data packet type identifiers and the target transmission mode mapped to each preset data packet type identifier (such as the first or second transmission mode) can be obtained from the selection rules. This target transmission mode is then used as the data packet's transmission mode. Thus, the data packet type identifier is added by the application based on the data packet's data level classification according to the selection rules. Based on the data packet's level or importance reflected by the type identifier, a corresponding target transmission mode is assigned to the data packet. In this way, different data transmission modes can be used for critical and non-critical data packets, enabling differentiated transmission between different data packets within the same business session. Step 203 is implemented in a more specific manner consistent with step 103.

[0163] 204. Based on the data packet type identifier, select a first connection identifier for the data packet from a preset connection identifier list. For example, select a first connection identifier for the data packet from a preset connection identifier list associated with the current service session.

[0164] In this embodiment of the application, in order to retransmit individual data packets in a service session, it is necessary to mark different data packets for retransmission according to different connection identifiers. Specifically, when encapsulating data packets through the Fast Internet Connection Protocol layer, a corresponding mark can be added, and the mark can be the first connection identifier.

[0165] Specifically, after obtaining the data packets of the application's business session, firstly, a list of preset connection identifiers associated with the application's current business session can be determined. Then, based on the data packet's type identifier, information such as the data packet's importance, type, or data type is obtained to determine whether retransmission is needed, thereby determining the first connection identifier; alternatively, since the data packet's type identifier reflects its importance, i.e., whether the data packet is important to the business, it can also be used to directly decide whether the data packet needs to be retransmitted; furthermore, a mapping relationship between the type identifier and connection identifier of each preset data packet can be pre-defined, thus directly selecting the first connection identifier based on the data packet's type identifier according to the mapping relationship.

[0166] Furthermore, if retransmission is required in case of loss or error, a retransmission indication type connection identifier is selected from the preset connection identifier list as the first connection identifier; if retransmission is not required in case of loss or error, a non-retransmission indication type connection identifier is selected from the preset connection identifier list as the first connection identifier.

[0167] 205. Encapsulate the first connection identifier into the data packet.

[0168] In this embodiment, the data packet transmission process is based on the Multi-channel Fast Internet Connection Protocol (MP-QUIC). Data packets generated by the application layer (i.e., the application) can be further encapsulated by the MP-QUIC layer to obtain data packets. These data packets are then sent to the transport layer for transmission. Therefore, when transmitting data packets according to the target transmission mode, the data packets can be encapsulated using the MP-QUIC layer based on the User Datagram Protocol (UDP) layer. It should be noted that, to enable retransmission of lost or erroneous data packets within the same service session, a corresponding first connection identifier can be added during encapsulation. This allows the system to determine whether to retransmit a data packet with the first connection identifier if it is lost or erroneous.

[0169] Specifically, when a data packet is transmitted to the Fast Internet Connection Protocol (QUIC) layer, a header in the corresponding format is created according to the QUIC protocol. This header contains multiple fields, one of which is a connection identifier field. Then, based on the first connection identifier selected for the data packet, the connection identifier field in the header is filled in. Additionally, the first connection identifier can also be filled in the flag field. Other fields are filled in according to their respective information, which will not be elaborated here. This process yields the target header. Finally, the target header and the data packet are encapsulated to obtain the data packet. Thus, the data packet carries the first connection identifier, which can be used to determine whether retransmission is necessary if the data packet is lost or corrupted.

[0170] 206. Transmit the data packet to the gateway using the transmission mode corresponding to the type identifier.

[0171] In this embodiment, data packets are transmitted to the gateway according to the data transmission link indicated by the target transmission mode. Specifically, for the first transmission mode, data packets are transmitted to the gateway through multiple data transmission links; for the second transmission mode, data packets are transmitted to the gateway through one of the multiple data transmission links. This allows the gateway to process the received data packets, such as deduplication or aggregation, and forward the data packets to the corresponding business server of the application, thus completing the data packet transmission. In this way, differentiated transmission between different data packets in the same business session of the application is achieved. For example, the transmission reliability of critical data packets is improved, and the transmission rate of non-critical data packets is increased, achieving a good trade-off between data transmission reliability and data transmission efficiency.

[0172] Specifically, when the target transmission mode is identified as the second transmission mode, according to the instructions of the second transmission mode, only one data transmission link is selected from multiple data transmission links, and the data packet is sent to the selected data transmission link so that the data packet is sent to the server's gateway through the selected data transmission link, thereby forwarding it to the business server.

[0173] Specifically, when the target transmission mode is identified as the first transmission mode, according to the indication of the second transmission mode, each of the multiple data transmission links is selected as a data transmission link, thus obtaining multiple selected data transmission links. Further, the current data packet is sent to each of the multiple selected data transmission links to be transmitted to the server's gateway, thereby forwarding it to the service server. A more specific implementation of step 206 is similar to step 104.

[0174] 207. Obtain the data packet reception status reported by the gateway.

[0175] In the embodiments of the application, after sending a data packet to the gateway, the data packet reception status fed back by the gateway can be received to determine whether a data packet has been lost or erroneous. This data packet reception status can include reception status information for one or more data packets, which can be a list including one or more data packet identifiers, numbers (such as Packet Number), and the packet status corresponding to each data packet number, such as error, missing, incomplete data, or corruption. Furthermore, if the data packet reception status does not contain the data packet number of a particular data packet, it indicates that the data packet was lost during transmission.

[0176] 208. When the data packet reception status indicates that the data packet is missing, and the first connection identifier carried in the data packet indicates that the data packet should be retransmitted, the data packet should be retransmitted to the gateway according to the transmission mode corresponding to the type identifier.

[0177] For data packets critical to the application's business services, retransmission is performed when they are lost or corrupted (e.g., data packet corruption or garbled characters) to prevent data packet loss or corruption from affecting the application's business services. It should be noted that when a data packet is lost or corrupted, the decision to retransmit it is based on the first connection identifier carried by the data packet. This first connection identifier is set according to the corresponding data packet type identifier, which is generated by the application according to selection rules. Therefore, it can be understood that the decision to retransmit the data packet is based on its importance in the business session or its importance to the application's business services, ensuring reliability.

[0178] To facilitate understanding of the embodiments of this application, specific application scenario examples will be used to describe the embodiments of this application. Specifically, the application scenario example will be described by performing the above steps 201-208.

[0179] It should be noted that this data transmission method is applicable to data packet transmission scenarios in mobile terminal applications, such as mobile game applications, short video applications, online shopping applications, and live streaming applications. Specifically, it first acquires each data packet in the same business session of the application and reads the data packet type identifier carried by the data packet. It's important to note that since this data packet type identifier is autonomously set by the application based on the data packet's attributes and selection rules, it reflects the importance of the corresponding data packet. Therefore, combining the selection rules and the data packet type identifier, one of the first and second transmission modes is assigned to the data packet to achieve the allocation of the appropriate transmission mode according to the importance of the data packet. Finally, the data packet is transmitted according to the assigned transmission mode, achieving flexible transmission based on the importance of the data packet. This reduces the packet loss rate of critical data packets and improves the transmission efficiency of non-critical data packets, thus improving the overall transmission efficiency of multiple data packets generated by the application and achieving a good trade-off between data transmission reliability and data transmission efficiency. The following is a detailed introduction to the data transmission method using an example of this data packet transmission scenario:

[0180] I. A brief example of this data packet transmission scenario is as follows:

[0181] Widespread applications, such as gaming, video streaming, and live streaming, require high data packet transmission efficiency. Currently, these applications transmit data packets via a single network link on the mobile terminal, such as a carrier's 5G network or mobile hotspot network. However, signal fluctuations in these wireless networks, or changes in the mobile terminal's location, can easily cause transmission delays and jitter. Limited network bandwidth can also affect network capacity, impacting data packet transmission rates and causing packet loss, thus affecting service operation. For example, gaming applications are highly sensitive to data packet transmission latency; latency, jitter, or packet loss can affect data packet transmission, leading to response delays. Similarly, in live streaming services, insufficient network bandwidth or fluctuating speeds can cause decreased video bitrate and stuttering.

[0182] Therefore, performance issues such as jitter and latency associated with a single network transmission link can be addressed by using multiple network transmission links. For ease of understanding, the following is an introduction to multiple network transmission links:

[0183] For example, taking the data packet transmission of a game application as an example, the game application generates game data packets during the user's operation of the game. In order to improve the stability and reliability of the transmission of game data packets, a game accelerator can be introduced through a toolkit (SDK) or application to improve the stability and reliability of the transmission of game data packets.

[0184] Figure 4 is an example diagram of a data packet transmission scenario in a multi-link concurrent transmission mode provided in this application embodiment. Referring to Figure 4, this scenario mainly takes the transmission of game data packets as an example. The terminal side has a game application and a game accelerator installed, while the cloud includes a game acceleration gateway and a game server. Data interaction between the terminal side and the cloud is mainly achieved through two network transmission links: the 5G network and the mobile hotspot network between the game accelerator and the game acceleration gateway. Specifically, the game application transmits data packets 1 and 2 to the game accelerator. The game accelerator simultaneously sends data packets 1 and 2 to both the 5G network and the mobile hotspot network, so that data packets 1 and 2 are simultaneously sent to the game acceleration gateway through these two network links. Then, the game acceleration gateway deduplicates the data packets 1 and 2 received from these two network transmission links and sends the deduplicated data packets 1 and 2 to the game server. At this point, the game data packet transmission is complete. Therefore, the principle of this first transmission mode is that data packets are sent simultaneously on two network links, as shown in packet 1 and packet 2 in the diagram. Successful reception is achieved as long as either packet is transmitted correctly, thereby reducing network latency and jitter. In other words, more network resources are consumed to ensure data transmission latency performance and reliability. However, considering that gaming services are not sensitive to packet loss, an unreliable transmission mode is generally used.

[0185] For example, taking the data packet transmission of a live streaming application as an example, the live streaming application generates live streaming data packets during the user's operation of the game. In order to improve the transmission efficiency of live streaming data packets, a multi-network transmitter can be introduced through a toolkit (SDK) or application to improve the transmission rate of live streaming data packets.

[0186] Figure 5 is an example diagram of the data packet transmission scenario of the second transmission mode provided in the embodiment of this application. As shown in Figure 5, this scenario mainly takes the transmission of live data packets as an example. The terminal side is equipped with a live application and a multi-network transmitter, and the cloud includes a gateway and a live server. The data interaction between the terminal side and the cloud is mainly realized based on the two network transmission links between the game accelerator and the game acceleration gateway: the 5G network and the mobile hotspot network. Specifically, the live streaming application transmits data packets 1, 2, 3, and 4 to a multi-network transmitter (i.e., a transmission unit). The multi-network transmitter then sequentially sends data packets 1, 2, 3, and 4 to two network links: the 5G network and the mobile hotspot network. As shown in the diagram, the 5G network transmission link is used to transmit data packets 1 and 3, while the mobile hotspot network transmission link is used to transmit data packets 2 and 4. In this way, data packets 1, 2, 3, and 4 are sent to the gateway via these two network links. The gateway then aggregates the data packets 1, 2, 3, and 4 received from these two network transmission links and sends the aggregated data packets to the live streaming server. At this point, the data packet transmission for the live streaming service is complete. As can be seen, the principle of this multi-link aggregation transmission mode is to distribute different data packets in the same service to different networks for transmission based on the quality of different network links. As shown in the figure, for the video data packets of the live stream, the multi-network transmitter transmits packets 1 and 3 through the 5G network, while packets 2 and 4 are transmitted through the WiFi network. The multi-network transmission gateway then performs aggregation processing to restore the original service data stream before transmitting it to the final service source station, i.e., the live server. In this way, the capacity of the two networks is fully utilized, providing greater network bandwidth for the service, and there is no redundant data transmission, saving network traffic.

[0187] It's important to note that these applications often require a certain level of reliability (avoiding significant packet loss) and a certain data transmission rate during transmission. Both frequent packet loss and slow transmission rates cause lag and other issues for users, impacting service availability. However, some multi-network transmission links improve application packet transmission rates but suffer from severe packet loss, while others improve packet transmission reliability but have excessively slow transmission rates. Therefore, a technology that strikes a good balance between transmission reliability and data transmission rate is needed.

[0188] To address the above issues, this data packet transmission scenario example proposes a retransmission scheme for high-priority data packets in multiple network links (generally 4G / 5G plus Wi-Fi, or 4G / 5G plus 4G / 5G, and also Bluetooth, infrared communication, wired broadband, etc.), while maintaining compatibility with the existing MP-QUIC transmission protocol. This provides different levels of network protection for data packets of different priorities. In this way, differentiated transmission capabilities can be achieved for data packets of the same service session, thereby effectively improving acceleration performance in weak network environments.

[0189] II. The specific implementation process of this data packet transmission scenario example is as follows:

[0190] (1) Since this data packet transmission scenario example is based on "MP-QUIC", for ease of understanding, "QUIC" will be explained first, as follows:

[0191] Figure 6 is an example diagram of the stack structure of the Fast UDP Internet Connection Layer provided in the embodiments of this application. As shown in Figure 6, the stack structure includes an application layer, a security layer, a transport layer, and a network layer. The application layer includes Hypertext Transfer Protocol 2.0 (HTTP / 2), the security layer corresponds to Transport Layer Security (TLS), the transport layer corresponds to Transmission Control Protocol (TCP), and the network layer corresponds to Internet Protocol (IP). In this data packet transmission scenario, the application layer includes the Hypertext Transfer Protocol 2.0 padding layer (HTTP / 2shim), the security layer corresponds to Fast UDP Internet Connection Protocol (QUIC), the transport layer corresponds to User Datagram Protocol (UDP), and the network layer also corresponds to the Internet Protocol.

[0192] The mainstream multi-path network infrastructure in the industry uses the Multi-Path Fast UDP Internet Link Protocol (MP-QUIC), which already possesses basic functions such as packet encapsulation, packet loss recovery, buffer management, and multi-path management. MP-QUIC is a multi-path version of single-path QUIC. QUIC primarily addresses some problems encountered by TCP in practical applications, such as header blocking, low congestion control efficiency, connection termination due to IP / PORT changes, three-way handshake overhead, and relatively low out-of-band control efficiency. Therefore, to solve these pain points in TCP-based transmission, a new UDP-based transport protocol was developed, called QUIC. In summary, QUIC can essentially be seen as a transport protocol that replaces TCP. It is based on UDP and generally runs in user space. The advantages of QUIC include: establishing a connection in one round-trip time (1 RTT) between the sender and receiver (0 RTT for direct packet transmission with PSK buffering); a flexible congestion control mechanism with customizable congestion control algorithms; multiplexing to alleviate head-of-line blocking symptoms; support for connection migration; and superior performance compared to TCP. MP-QUIC is an extension of QUIC. MP-QUIC was designed with the following considerations in mind: (1) reuse the original QUIC as much as possible, such as reusing QUIC's path validation and connection migration mechanisms; (2) use the same packet header as QUIC; (3) congestion control, RTT measurement, and PMTU detection are implemented per physical link; (4) the path is uniquely identified by the IP quadtuple.

[0193] Figure 7 is an example diagram of the structure of the Service Type field in the application data packet provided in an embodiment of this application. It should be noted that when an application generates an application data packet, the application data packet is generally an Internet Protocol Version 4 (IPv4) data packet. This application data packet contains an application header, which includes fields such as version, header length, service type, total length, identifier, flags, fragment offset, time to live, protocol, header checksum, source IP address, and destination IP address. The third field, which is originally an 8-bit Service Type field (TOS), can be further divided into a 6-bit Differentiated Services Code Point (DSCP) field and a 2-bit Explicit Congestion Notification (ECN) field.

[0194] The 6-bit Differentiated Services Field (DSCP) is used to define the importance of a data packet in the current data packet transmission scenario. For example, it defines the traffic class and priority of a data packet, represented as (i, j), where i and j represent the traffic class and drop priority, respectively. Traffic of a certain class is forwarded separately from traffic of other classes. Within a traffic class, a data packet is assigned a drop priority. Within a class, data packets with higher drop priorities are processed over those with lower drop priorities (i.e., forwarded with higher priority). Combining the traffic class and drop priority, "AFij" represents the drop priority j corresponding to the guaranteed forwarding class i. For example, a data packet labeled "AF32" has a traffic class of 3 and a drop priority of 2. For example, as shown in Figure 7, "DS5", "DS4", and "DS3" represent the traffic class of a data packet, "DS2" and "DS1" represent the probability of data packet loss, and "DS0" can represent any character, such as drop priority or other characters; no limitation is made here.

[0195] The 2-bit explicit congestion notification field is used to mark the datagram with a congestion identifier. A persistently congested router with ECN awareness will set these two bits when forwarding packets.

[0196] Figure 8 is an example diagram of the structure of a QUIC data packet provided in an embodiment of this application. As shown in Figure 8, the structure of a QUIC data packet includes a plaintext header and ciphertext data. The header includes four fields: Flags, connection ID, QUIC Version, and Packet Number. The encrypted data includes one or more frames, each of which is further divided into a type and a payload, where the payload is the application data.

[0197] Figure 9 is an example diagram of the structure of the flag field in the QUIC data packet header provided in the embodiment of this application. For ease of understanding, please refer to Figure 9 to describe the structure of the flag field as follows:

[0198] The first byte of the QUIC packet header is the Flags field, with the leftmost byte being the high-order byte and the rightmost byte being the low-order byte, as follows:

[0199] Bit0 is a version negotiation related identifier, and its meaning differs depending on whether it is sent by the client or the server.

[0200] Bit1 is used to identify the public reset message.

[0201] Bits 2 and 3 indicate the length of the Connection ID in the message.

[0202] Bit4 and Bit5 represent the number of bytes containing the packet number in each packet.

[0203] Bit6: Reserved for use in multipathing.

[0204] Bit7: Unused, must be 0.

[0205] The Connection ID field, abbreviated as CID, is an unsigned integer with a maximum length of 64 bits, randomly selected by the application, and its length is variable.

[0206] Among them, the Packet Number field has a sequence number of 1 for the first packet sent by the sender, and the sequence numbers of subsequent packets are all greater than the sequence number of the previous packet.

[0207] Based on the above background of this data packet transmission scenario example, the data packet transmission process is introduced as follows:

[0208] Figure 10 is an architecture diagram of the multi-network link transmission system provided in this application embodiment. As shown in Figure 10, the mobile terminal side includes a terminal-side service application and a terminal-side transmission unit. The terminal-side transmission unit can be accessed by the service application in the form of a toolkit (SDK). The cloud includes a gateway and a service server. The data interaction between the terminal side and the cloud is mainly realized based on two network transmission links, Network 1 and Network 2, between the transmission unit and the gateway. Network 1 and Network 2 can be a 5G network and a mobile hotspot network, respectively. In addition, the system architecture also includes a multi-network transmission controller, which is used to support the negotiation between the terminal-side transmission unit on the mobile terminal side and the gateway on the cloud, and to decide to activate the differentiated transmission function.

[0209] Figure 11 is a flowchart of the data packet transmission scenario provided in an embodiment of this application. Referring to Figures 10 and 11, the data packet transmission process is as follows:

[0210] S1: Activate differentiated transmission capability. Specifically, the application layer and the multi-network controller negotiate using negotiation signaling and decide whether to enable the differentiated transmission function. The specific negotiation signaling format is beyond the scope of this invention.

[0211] S2: Establish concurrent MP-QUIC tunnels with different transmission modes. The local terminal's transmission unit and the gateway establish two MP-QUIC tunnels according to the standard MP-QUIC protocol. One tunnel uses aggregated transmission mode (i.e., the second transmission mode), and the other tunnel uses dual-transmission mode (i.e., the first transmission mode), and initiates multi-link transmission to transmit service packets sent from the application layer. If the service packet is a UDP data packet, it will be transmitted using a datagram frame structure.

[0212] S3: Generate a jointly maintained list of Connection Identifiers (CIDs). For each MP-QUIC tunnel, the application layer populates the same list of CIDs generated and maintained by the end-side transmission unit and the gateway.

[0213] S4: The application layer populates the Differentiated Service Identifier (DSCP) field. Specifically, the application layer populates the Differentiated Service field (DSCP) in the Type of Service (TOS) field according to the following principles based on business requirements:

[0214] A DSCP field of 000000 (binary) indicates the default priority, which is a regular packet and allows packet loss.

[0215] A DSCP field of 110000 (binary) indicates a regular packet with pattern priority, but packet loss is not allowed.

[0216] A DSCP field of 001110 (binary) indicates a high-priority packet, typically a critical packet, such as an I-frame in a video GOP.

[0217] A DSCP field of 101110 (binary) indicates a high-priority packet that is not allowed to be lost, such as control signaling packets.

[0218] S5: The sending end (transmission unit) selects the transmission mode based on the Differentiated Services identifier (DSI) and indicates the retransmission mode by selecting different CID values ​​(i.e., the connection identifier value). Specifically, the end-side transmission unit parses the TOS field in each service packet and performs corresponding processing based on the corresponding value. The specific processing flow is as follows:

[0219] When the DSCP field is 000000 (binary), the aggregated transmission mode is used, and the CID uses one of the other CIDs in the list except the last one, indicating that the receiving end does not need to retransmit.

[0220] When the DSCP field is 110000 (binary), the aggregated transmission mode is used, and the last CID in the list is used, indicating that the receiving end needs to support reliable transmission. If a transmission error occurs, it needs to be retransmitted.

[0221] The DSCP field is 001110 (binary), indicating that dual-transmission mode is used and the CID uses one of the other CIDs in the list except the last one, suggesting that the receiving end does not need to retransmit.

[0222] When the DSCP field is 101110 (binary), a dual-transmission mode is used, and the last CID in the list is used, indicating that the receiving end needs to support reliable transmission. If a transmission error occurs, it needs to be retransmitted.

[0223] S6: The end-side transmission unit selects tunnels with different transmission modes to achieve transmission. At the sending end (such as the end-side transmission unit in the uplink direction), if the aggregation transmission mode is used, the service packet is transmitted through the aggregation transmission tunnel; if the dual-transmission mode is used, the service packet is transmitted through the dual-transmission tunnel, thus realizing the selection of different transmission modes.

[0224] S7: The gateway processes data according to the selected transmission and retransmission modes. At the receiving end (e.g., the gateway in the uplink direction), for MP-QUIC datagram frames, if the CID value is found to be the last one in the CID list, reliable transmission is required. That is, if a transmission error occurs, the sending end needs to be notified to retransmit via ACK / NACK signaling. If the CID is not found to be the last one in the CID list, reliable transmission is not required. That is, if a transmission error is found, no retransmission is needed, and the data can be discarded.

[0225] Based on the above process, differentiated transmission of different data packets within the same business session of a business program can be achieved.

[0226] By executing the above data packet transmission scenario example, the following effects can be achieved: By enabling differentiated transmission capabilities for data packets within the same service session, acceleration performance in weak network environments can be effectively improved, while simultaneously ensuring compatibility with the existing MP-QUIC protocol. This enhances the transmission performance of multi-channel aggregation enhancement products.

[0227] As described above, this application provides multiple data transmission links for the data packets to be transmitted, instead of just one. Furthermore, it sets two transmission modes, a first transmission mode and a second transmission mode, instead of just one. The first transmission mode uses multiple data transmission links to transmit data packets in parallel, suitable for transmitting important data packets. If a data packet is not received on one data transmission link, it can be received on other data transmission links, reducing the probability of packet loss and improving reliability. The second transmission mode selects one data transmission link from multiple data transmission links to transmit data packets. Since only one data transmission link is selected, packet loss cannot be recovered, but multiple data transmission links transmit different data packets simultaneously, resulting in high transmission efficiency; it is more suitable for less important data packets. The data packets carry a data packet type identifier. This data packet type identifier reflects the importance of the data packet. For critical data packets, selecting the first transmission mode can reduce the packet loss rate of critical data packets. For non-critical data packets, selecting the second transmission mode can improve the overall transmission efficiency of multiple data packets generated by the application. This application achieves a good trade-off between data transmission reliability and data transmission efficiency.

[0228] For details on the implementation of each of the above steps, please refer to the previous examples, which will not be repeated here.

[0229] To facilitate better implementation of the data transmission method provided in the embodiments of this application, the embodiments of this application also provide an apparatus based on the above data transmission method. The meanings of the terms used are the same as in the above data transmission method, and specific implementation details can be found in the descriptions in the method embodiments.

[0230] Please refer to Figure 12, which is a schematic diagram of the structure of a data packet transmission device provided in an embodiment of this application. The data packet transmission device is integrated into the computer equipment of this application. The data packet transmission device may include an acquisition unit 401, a first determination unit 402, a second determination unit 403, and a transmission unit 404.

[0231] Acquisition unit 401 is used to acquire data packets, wherein the data packets carry a type identifier of the data packets;

[0232] The first determining unit 402 is used to determine multiple data transmission links;

[0233] The second determining unit 403 is configured to select a transmission mode corresponding to the type identifier from a first transmission mode and a second transmission mode, wherein the first transmission mode indicates that the data packet is transmitted in parallel using the multiple data transmission links, and the second transmission mode indicates that one data transmission link is selected from the multiple data transmission links to transmit the data packet;

[0234] The transmission unit 404 is used to transmit the data packet through a transmission mode corresponding to the type identifier.

[0235] As described above, this application provides multiple data transmission links for the data packets to be transmitted, instead of just one. Furthermore, it sets two transmission modes, a first transmission mode and a second transmission mode, instead of just one. The first transmission mode uses multiple data transmission links to transmit data packets in parallel, suitable for transmitting important data packets. If a data packet is not received on one data transmission link, it can be received on other data transmission links, reducing the probability of packet loss and improving reliability. The second transmission mode selects one data transmission link from multiple data transmission links to transmit data packets. Since only one data transmission link is selected, packet loss cannot be recovered, but multiple data transmission links transmit different data packets simultaneously, resulting in high transmission efficiency; it is more suitable for less important data packets. The data packets carry a data packet type identifier. This data packet type identifier reflects the importance of the data packet. For critical data packets, selecting the first transmission mode can reduce the packet loss rate of critical data packets. For non-critical data packets, selecting the second transmission mode can improve the overall transmission efficiency of multiple data packets generated by the application. This application achieves a good trade-off between data transmission reliability and data transmission efficiency.

[0236] For specific implementation details of each of the above units, please refer to the embodiments shown in Figures 2 and 3 above, which will not be repeated here.

[0237] Referring to Figure 13, which is a structural schematic diagram of a terminal provided in an embodiment of this application, it includes a structural block of a portion of the terminal 110 implementing this embodiment. This terminal can be the terminal 110 shown in Figure 1. Specifically, the terminal 110 includes components such as: a radio frequency (RF) circuit 510, a memory 515, an input unit 520, a display unit 540, a sensor 550, an audio circuit 560, a wireless fidelity (WiFi) module 570, a processor 580, and a power supply 590. Those skilled in the art will understand that the terminal 110 structure shown in the figures does not constitute a limitation on a mobile phone or computer, and may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0238] The RF circuit 510 can be used to receive and transmit signals during information transmission or calls. In particular, it receives downlink information from the base station and processes it with the processor 580; in addition, it transmits uplink data to the base station.

[0239] The memory 515 can be used to store software programs and modules. The processor 580 executes various terminal functions and data packet transmissions by running the software programs and modules stored in the memory 515.

[0240] The input unit 520 can be used to receive input numeric or character information, and to generate key signal inputs related to the terminal's settings and function control. Specifically, the input unit 520 may include a touch panel 531 and other input devices 532.

[0241] The display unit 540 can be used to display input or provided information, as well as various menus of the terminal. The display unit 540 may include a display panel 541.

[0242] Audio circuit 560, speaker 561, and microphone 562 provide an audio interface.

[0243] In this embodiment, the processor 580 included in the terminal 110 can execute the data transmission method of the previous embodiment.

[0244] Referring to Figure 14, which is a schematic diagram of the server structure provided in an embodiment of this application, it includes a structural block of a portion of the server 120 implementing this embodiment. The server can be the server 120 shown in Figure 1. The server 120 can vary significantly due to different configurations or performance, and may include one or more central processing units (CPUs) 622 (e.g., one or more processors) and a memory 632, and one or more storage media 630 (e.g., one or more mass storage devices) for storing application programs 642 or data 644. The memory 632 and storage media 630 can be temporary or persistent storage. The program stored in the storage media 630 may include one or more modules (not shown in the figure), each module including a series of instruction operations on the server 600. Furthermore, the central processing unit 622 may be configured to communicate with the storage media 630 and execute the series of instruction operations in the storage media 630 on the server 600.

[0245] Server 600 may also include one or more power supplies 626, one or more wired or wireless network interfaces 650, one or more input / output interfaces 658, and / or one or more operating systems 641, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™, etc.

[0246] The central processing unit 622 in server 600 can be used to execute the data transmission method of the embodiments of this application.

[0247] This application also provides a computer-readable storage medium for storing a computer program for executing the data transmission methods of the foregoing embodiments.

[0248] This application also provides a computer program product, which includes a computer program. A processor of a computer device reads and executes the computer program, causing the computer device to perform the data transmission method described above.

[0249] Furthermore, the terms “comprising” and “including”, and any variations thereof, are intended to cover non-exclusive inclusion, such that a process, method, system, product, or apparatus that includes a series of steps or units is not necessarily limited to those steps or units that are explicitly listed, but may include other steps or units that are not explicitly listed or that are inherent to such process, method, product, or apparatus.

[0250] It should be understood that in this application, "at least one (item)" means one or more, and "more than" means two or more. "And / or" is used to describe the relationship between related objects, indicating that three relationships can exist. For example, "A and / or B" can represent three cases: only A exists, only B exists, and both A and B exist simultaneously, where A and B can be singular or plural. The character " / " generally indicates that the preceding and following related objects are in an "or" relationship. "At least one (item) of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one (item) of a, b, or c can represent: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, and c can be single or multiple.

[0251] It should be understood that in the description of the embodiments of this application, "multiple" means two or more, "greater than", "less than", "exceeding" etc. are understood to exclude the number itself, and "above", "below", "within" etc. are understood to include the number itself.

[0252] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, or indirect coupling or communication connection between apparatuses or units, and may be electrical, mechanical, or other forms.

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

[0254] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0255] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0256] It should also be understood that the various implementation methods provided in this application can be combined arbitrarily to achieve different technical effects.

[0257] In this application embodiment, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.

[0258] The above is a detailed description of the embodiments of this application. However, this application is not limited to the above embodiments. Those skilled in the art can make various equivalent modifications or substitutions without departing from the spirit of this application. All such equivalent modifications or substitutions are included within the scope defined by the claims of this application.

Claims

1. A data transmission method, executed in a computer device, the method comprising: Acquire a data packet, wherein the data packet carries a type identifier for the data packet; Identify multiple data transmission links; From the first transmission mode and the second transmission mode, a transmission mode corresponding to the type identifier is selected, wherein the first transmission mode indicates that the data packet is transmitted in parallel using the multiple data transmission links, and the second transmission mode indicates that one data transmission link is selected from the multiple data transmission links to transmit the data packet; The data packet is transmitted using the transmission mode corresponding to the type identifier.

2. The method according to claim 1, wherein selecting the transmission mode corresponding to the type identifier from the first transmission mode and the second transmission mode comprises: Obtain the preset first and second transmission modes; According to a preset selection rule, a transmission mode corresponding to the type identifier is selected from a first transmission mode and a second transmission mode; wherein, the selection rule includes a preset mapping relationship between the type identifier and the first transmission mode or the second transmission mode.

3. The method according to claim 1 or 2, characterized in that, The transmission of the data packet via the transmission mode corresponding to the type identifier includes: When the transmission mode corresponding to the type identifier is the second transmission mode, one data transmission link is selected from the plurality of data transmission links; The data packet is transmitted through the selected data transmission link.

4. The method according to any one of claims 1-3, wherein selecting one data transmission link from the plurality of data transmission links comprises: Determine the generation time of the data packet; The current waiting time of the data packet is determined based on the generation time. When the waiting time exceeds a preset time threshold, the average transmission rate of each data transmission link in the multiple data transmission links is determined; The data transmission link with the highest average transmission rate is selected as the data transmission link; When the waiting time is less than the preset time threshold, the average packet loss rate of each data transmission link in the multiple data transmission links is determined; The data transmission link with the lowest average packet loss rate is selected as the data transmission link.

5. The method according to any one of claims 1-4, wherein transmitting the data packet via a transmission mode corresponding to the type identifier comprises: When the transmission mode corresponding to the type identifier is the first transmission mode, the data packet is transmitted in parallel through the multiple data transmission links.

6. The method according to any one of claims 1 to 5, wherein transmitting the data packet via a transmission mode corresponding to the type identifier comprises: Based on the type identifier of the data packet, a first connection identifier is selected for the data packet from a preset connection identifier list; The first connection identifier is encapsulated into the data packet; The data packet is transmitted to the gateway using the transmission mode corresponding to the type identifier.

7. The method according to any one of claims 1-6, further comprising: Get the data packet reception status returned by the gateway; When the data packet reception status indicates that the data packet is missing, and the first connection identifier carried in the data packet indicates that the data packet should be retransmitted, the data packet should be retransmitted to the gateway according to the transmission mode corresponding to the type identifier.

8. The method according to claim 6, characterized in that, Encapsulating the first connection identifier into the data packet includes: Create a packet header based on the Fast Internet Connection Protocol, the packet header including at least a connection identifier field; The connection identifier field in the packet header is filled according to the first connection identifier to obtain the filled packet header; The pre-filled header is encapsulated into the data packet.

9. The method according to any one of claims 6-8, further comprising: Create multiple connection identifiers; Set at least one of the plurality of connection identifiers to a connection identifier of a first type that indicates a retransmission data packet; Each of the plurality of connection identifiers, except for the at least one connection identifier, is set to a second type of connection identifier that indicates that data packets are not retransmitted. Create the preset list of connection identifiers, which includes connection identifiers of type 1 and connection identifiers of type 2.

10. The method according to any one of claims 1 to 9, wherein the method further comprises: The data packet congestion information received from the gateway includes the transmission delay duration of each of the multiple data transmission links. When the transmission delay of each data transmission link is greater than the preset delay threshold, the priority order of the first transmission mode and the second transmission mode is determined. When a transmission conflict is detected between data packets of the first transmission mode and data packets of the second transmission mode, the conflicting data packets are sequentially transmitted to the gateway based on the priority order.

11. The method according to any one of claims 1 to 10, wherein the method further comprises: Retrieve the list of preset connection identifiers assigned to the current business session for the application; Generate a session connection request carrying the preset list of connection identifiers; The session connection request is sent to the gateway, which instructs the gateway to create a first transmission mode and a second transmission mode based on multiple data transmission links, and to establish an association between the preset connection identifier list and the first transmission mode and the second transmission mode, respectively. When the association is established, it is confirmed that the first transmission mode and the second transmission mode have been successfully created for the current service session.

12. The method according to any one of claims 1 to 11, wherein the method further comprises: Obtain multiple data level classifications for data packets specific to the application; Each data level category is assigned a preset type identifier; Establish a mapping relationship between each preset type identifier and the first transmission mode or the second transmission mode to obtain the selection rule.

13. A data packet transmission apparatus, comprising: An acquisition unit is used to acquire data packets, wherein the data packets carry a type identifier of the data packets; The first determining unit is used to determine multiple data transmission links; The second determining unit is configured to select a transmission mode corresponding to the type identifier from a first transmission mode and a second transmission mode, wherein the first transmission mode indicates that the data packet is transmitted in parallel using the multiple data transmission links, and the second transmission mode indicates that one data transmission link is selected from the multiple data transmission links to transmit the data packet; A transmission unit is used to transmit the data packet using a transmission mode corresponding to the type identifier.

14. A computer device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the computer program, implements the data transmission method according to any one of claims 1 to 12.

15. A computer-readable storage medium storing a computer program adapted for loading by a processor to perform the data transmission method according to any one of claims 1 to 12.

16. A computer program product comprising a computer program that, when executed by a processor, implements the data transmission method according to any one of claims 1 to 12.