Data packet transmission method, apparatus, device, and readable storage medium
By employing multi-link concurrent and aggregated transmission modes in application data packet transmission and selecting the appropriate transmission method according to the data packet type, the balance between transmission rate and reliability is resolved, thereby improving the overall data packet transmission efficiency and reliability.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- TENCENT TECHNOLOGY (SHENZHEN) CO LTD
- Filing Date
- 2024-11-29
- Publication Date
- 2026-05-29
AI Technical Summary
Existing technologies either suffer from severe packet loss while increasing application data packet transmission rate, or are too slow to improve transmission reliability, making it difficult to achieve a good balance between the two.
The system employs both multi-link concurrent transmission mode and multi-link aggregation transmission mode. The appropriate transmission mode is selected based on the data packet type identifier. Multi-link concurrent transmission mode transmits data packets in parallel through multiple links to improve reliability, while multi-link aggregation transmission mode selects one link to transmit data packets to improve efficiency.
A good trade-off is achieved in data transmission by improving the transmission efficiency of non-critical data packets without compromising the reliability of critical data packet transmission.
Smart Images

Figure CN122120191A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and specifically to a data packet transmission method, apparatus, device, and readable storage medium. Background Technology
[0002] 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.
[0003] 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
[0004] This application provides a data packet transmission method, apparatus, device, and readable storage medium, which can improve the transmission efficiency of non-critical data packets without reducing the reliability of critical data packet transmission during the transmission of application data packets.
[0005] To solve the above-mentioned technical problems, this application provides the following technical solution:
[0006] This application provides a data packet transmission method, including:
[0007] Obtain the data packet of the target application, wherein the data packet carries a target data packet type identifier;
[0008] Identify multiple data transmission links used to transmit the data packets;
[0009] Based on the transmission mode determination rules, the target transmission mode corresponding to the target data packet type identifier is determined in the multi-link concurrent transmission mode and the multi-link aggregated transmission mode. The multi-link concurrent transmission mode is a transmission mode in which the data packet is transmitted in parallel using the multiple data transmission links, and the multi-link aggregated transmission mode is a transmission mode in which one data transmission link is selected from the multiple data transmission links to transmit the data packet.
[0010] The data packet is transmitted according to the target transmission mode.
[0011] Accordingly, embodiments of this application provide a data packet transmission apparatus, including:
[0012] The acquisition unit is used to acquire data packets of the target application, wherein the data packets carry a target data packet type identifier;
[0013] The first determining unit is used to determine multiple data transmission links used to transmit the data packet;
[0014] The second determining unit is used to determine the target transmission mode corresponding to the target data packet type identifier in the multi-link concurrent transmission mode and the multi-link aggregated transmission mode based on the transmission mode determination rules. The multi-link concurrent transmission mode is a transmission mode in which the data packet is transmitted in parallel using the multiple data transmission links, and the multi-link aggregated transmission mode is a transmission mode in which one data transmission link is selected from the multiple data transmission links to transmit the data packet.
[0015] A transmission unit is used to transmit the data packet according to the target transmission mode.
[0016] In some implementations, the transmission mode determination rule includes a mapping relationship between a preset data packet type identifier and the multi-link concurrent transmission mode or the multi-link aggregated transmission mode, and the second determining unit is further configured to:
[0017] Read the pre-built multi-link concurrent transmission mode and multi-link aggregated transmission mode between the local machine and the target transmission gateway;
[0018] Based on the transmission mode, the mapping relationship contained in the rules is determined, and a target transmission mode that maps to the target data packet type identifier is selected from the multi-link concurrent transmission mode and the multi-link aggregated transmission mode.
[0019] In some embodiments, the transmission unit is further configured to:
[0020] When the target transmission mode is the multi-link aggregation transmission mode, a target data transmission link is selected from the multiple data transmission links;
[0021] The data packet is sent to the target transmission gateway through the target data transmission link.
[0022] In some embodiments, the transmission unit is further configured to:
[0023] Determine the generation time of the data packet, and determine the current waiting time of the data packet based on the generation time;
[0024] When the waiting time exceeds a preset time threshold, the average transmission rate of each of the multiple data transmission links is determined, and the data transmission link with the highest average transmission rate is determined as the target data transmission link.
[0025] When the waiting time is less than a preset time threshold, the average packet loss rate of each of the multiple data transmission links is determined, and the data transmission link with the lowest average packet loss rate is determined as the target data transmission link.
[0026] In some embodiments, the transmission unit is further configured to:
[0027] When the target transmission mode is the multi-link concurrent transmission mode, each of the multiple data transmission links is taken as the target data transmission link;
[0028] The data packet is sent to each target data transmission link and then sent to the target transmission gateway in parallel through multiple target data transmission links.
[0029] In some embodiments, the transmission unit is further configured to:
[0030] Based on the target data packet type identifier, a target connection identifier is selected for the data packet from the preset connection identifier list associated with the current business session of the target application;
[0031] The target connection identifier is encapsulated with the data packet to obtain the target data packet;
[0032] The target data packet is transmitted according to the target transmission mode.
[0033] In some embodiments, the data packet transmission apparatus further includes a retransmission unit for:
[0034] Obtain the data packet reception status returned by the target transmission gateway;
[0035] When the data packet reception status indicates that the target data packet is missing, and the target connection identifier carried in the target data packet is a retransmission indication type identifier, the target data packet is retransmitted to the target transmission gateway according to the target transmission mode.
[0036] In some embodiments, the transmission unit is further configured to:
[0037] Create an initial header corresponding to the target Fast Internet Connection Protocol, the initial header including at least a connection identifier field;
[0038] The target header is obtained by filling the connection identifier field in the initial header with the target connection identifier;
[0039] A target data packet is generated based on the target packet header and the data packet.
[0040] In some embodiments, the data packet transmission apparatus further includes a generation unit for:
[0041] Determine the primary connection identifier assigned to the current service session for the target application, and create multiple connection identifiers associated with the primary connection identifier;
[0042] Select at least one candidate connection identifier from the plurality of connection identifiers, and determine the candidate connection identifier as a retransmission indication type identifier;
[0043] Any one of the multiple connection identifiers, excluding the candidate connection identifier, is determined as a non-retransmission indication type identifier;
[0044] A preset connection identifier list is created based on the retransmission indication type identifier and the non-retransmission indication type identifier.
[0045] In some embodiments, the data packet transmission device further includes a processing unit for:
[0046] Receive data packet congestion information fed back by the target transmission gateway, the data packet congestion information including the transmission delay duration of each data transmission link in the multiple data transmission links between the local device and the target transmission gateway;
[0047] When the transmission delay of each data transmission link is greater than the preset delay threshold, the priority order relationship between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode is determined.
[0048] Based on the priority order relationship, the link usage priority between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode is determined;
[0049] When a transmission conflict is detected between the data packets to be transmitted in the multi-link concurrent transmission mode and the multi-link aggregate transmission mode, the multiple data packets to be transmitted with transmission conflicts are sequentially transmitted to the target transmission gateway based on the transmission mode indicated by the link use priority.
[0050] In some embodiments, the data packet transmission apparatus further includes a transmission mode creation unit, which is also used for:
[0051] Obtain a list of preset connection identifiers allocated to the current business session for the target application, and generate a session connection request based on the list of preset connection identifiers;
[0052] The session connection request is sent to the target transmission gateway, which then creates a multi-link concurrent transmission mode and a multi-link aggregated transmission mode based on multiple data transmission links, and establishes an association between the preset connection identifier list and the multi-link concurrent transmission mode and the multi-link aggregated transmission mode, respectively.
[0053] When the association is identified as complete, it is confirmed that the multi-link concurrent transmission mode and the multi-link aggregate transmission mode have been successfully created for the current business session of the target application.
[0054] In some embodiments, the data packet transmission apparatus further includes an establishment unit for:
[0055] Obtain multiple data level classifications of data packets for the target application, and assign a preset data packet type identifier to each data level classification;
[0056] Establish a mapping relationship between each preset data packet type identifier and the multi-link concurrent transmission mode or the multi-link aggregated transmission mode to obtain the transmission mode determination rule;
[0057] The transmission mode determination rule is sent to the target application, so that the target application adds a corresponding target data packet type identifier based on the data packet's data level classification according to the transmission mode determination rule.
[0058] 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 packet transmission method.
[0059] 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 packet transmission method.
[0060] 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 packet transmission method.
[0061] In this embodiment, multiple data transmission links are provided for the data packets to be transmitted by the target application, instead of just one. Furthermore, two transmission modes are provided: a multi-link concurrent transmission mode and a multi-link aggregation transmission mode, instead of just one. The multi-link concurrent transmission mode transmits data packets in parallel using multiple data transmission links. This is suitable for transmitting important data packets, where a packet not received on one data transmission link can be received on another, reducing packet loss probability and improving reliability. The multi-link aggregation 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 is irrecoverable, but multiple data transmission links transmit different data packets simultaneously, resulting in high transmission efficiency. This is more suitable for less important data packets. The data packets carry a target data packet type identifier. This identifier reflects the importance of the data packet. For critical data packets, selecting the multi-link concurrent transmission mode can reduce the packet loss rate. For non-critical data packets, selecting the multi-link aggregation transmission mode can improve the overall transmission efficiency of multiple data packets generated by the target application. This embodiment achieves a good trade-off between data transmission reliability and data transmission efficiency.
[0062] Other features and advantages of this application will be set forth in the description which follows, and will be apparent in part from the description, or may be learned by practicing the application. The objectives and other advantages of this application may be realized and obtained by means of the structures particularly pointed out in the description, claims and drawings. Attached Figure Description
[0063] 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.
[0064] Figure 1 This is a schematic diagram of a data packet transmission system provided in an embodiment of this application.
[0065] Figure 2 This is a flowchart illustrating the steps of the data packet transmission method provided in the embodiments of this application;
[0066] Figure 3 This is a schematic diagram of another step in the data packet transmission method provided in the embodiments of this application;
[0067] Figure 4 This is an example diagram illustrating a data packet transmission scenario in a multi-network concurrent transmission mode provided in an embodiment of this application.
[0068] Figure 5 This is an example diagram illustrating a data packet transmission scenario using a multi-network aggregation transmission mode provided in an embodiment of this application.
[0069] Figure 6 Example diagram of the stack structure of the Fast UPD Internet Connection Layer provided in the embodiments of this application;
[0070] Figure 7 Example diagram of the structure of the service type field in the application data package provided in this application embodiment;
[0071] Figure 8 This is an example diagram illustrating the structure of a QUIC data packet provided in an embodiment of this application.
[0072] Figure 9 This application provides an example diagram illustrating the structure of the flag field in the QUIC data packet header.
[0073] Figure 10 This is an architecture diagram of a multi-network link transmission system provided in an embodiment of this application;
[0074] Figure 11 A flowchart illustrating the data packet transmission scenario provided in this application embodiment;
[0075] Figure 12 This is a schematic diagram of the structure of the data packet transmission device provided in the embodiments of this application;
[0076] Figure 13 This is a schematic diagram of the terminal structure provided in the embodiments of this application;
[0077] Figure 14 This is a schematic diagram of the server structure provided in an embodiment of this application. Detailed Implementation
[0078] 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.
[0079] It is understood that in the specific implementation of this application, data such as data packets, target data packet type identifiers, and connection identifiers are involved. When the above embodiments of this application are applied to specific products or technologies, permission or consent from the target is required, and the collection, use, and processing of related data must comply with relevant laws, regulations, and standards.
[0080] Furthermore, when this application embodiment needs to obtain data such as data packets, target data packet type identifiers, and connection identifiers, it will obtain separate permission or separate consent for the data packets, target 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, target data packet type identifiers, and connection identifiers, it will then obtain the necessary data packets, target data packet type identifiers, connection identifiers, and other related data required for the normal operation of this application embodiment.
[0081] 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.
[0082] 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.
[0083] This application provides a data packet transmission method, apparatus, device, and readable storage medium. Specifically, the data packet 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.
[0084] 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:
[0085] 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.
[0086] 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.
[0087] 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.
[0088] This application provides a data packet transmission method that can acquire data packets of a target application, the data packets carrying a target data packet type identifier; determine multiple data transmission links for transmitting the data packets; based on transmission mode determination rules, determine the target transmission mode corresponding to the target data packet type identifier in a multi-link concurrent transmission mode and a multi-link aggregated transmission mode, wherein the multi-link concurrent transmission mode is a transmission mode that uses multiple data transmission links to transmit data packets in parallel, and the multi-link aggregated transmission mode is a transmission mode that selects one data transmission link from multiple data transmission links to transmit data packets; and transmit the data packets according to the target transmission mode. This is specifically illustrated through the following embodiments:
[0089] 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 cause lag and other issues for users, impacting service performance. While some related technologies improve data packet transmission rates but suffer from severe packet loss, others improve data packet transmission reliability but are too slow.
[0090] To address the aforementioned issues, this application proposes a data packet transmission method. By combining transmission mode determination rules and the target data packet type identifier carried by the data packet, a target transmission mode is assigned to the data packet, either a multi-network concurrent transmission mode or a multi-network aggregated 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, this reduces the packet loss rate of critical data packets and improves the transmission reliability of critical data packets.
[0091] On the other hand, improving the transmission efficiency of non-critical data packets can improve the overall transmission efficiency of multiple data packets generated by the target application. Please refer to the specific embodiments below for details.
[0092] For example, see Figure 1 This 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.
[0093] The terminal 110 can send data packets to the server 120. Furthermore, the terminal 110 can have a target application installed, allowing it to run corresponding application services. The terminal 110 can integrate multi-network transmission unit functionality via a toolkit, or directly install a multi-network transmission unit / application for accelerated or reliable data packet transmission for the target application. These target applications or multi-network transmission applications can be collectively referred to as clients. The server 120 can be the service server corresponding to the target application. Additionally, the server 120 can access the service process of a multi-network transmission gateway to receive data packets sent by the multi-network transmission unit and send them to the service server.
[0094] Specifically, the multi-network transmission unit on terminal 110 executes the following steps of the data packet transmission method: acquiring data packets of the target application, the data packets carrying a target data packet type identifier; determining multiple data transmission links for transmitting the data packets; determining the target transmission mode corresponding to the target data packet type identifier based on transmission mode determination rules, in the case of multi-link concurrent transmission mode and multi-link aggregated transmission mode, where multi-link concurrent transmission mode is a transmission mode that uses multiple data transmission links to transmit data packets in parallel, and multi-link aggregated transmission mode is a transmission mode that selects one data transmission link from multiple data transmission links to transmit data packets; and transmitting the data packets according to the target transmission mode.
[0095] Based on the above, this application provides multiple data transmission links for the data packets to be transmitted by the target application, instead of just one. Furthermore, it sets two transmission modes: multi-link concurrent transmission mode and multi-link aggregation transmission mode, instead of just one. Multi-link concurrent transmission mode uses multiple data transmission links to transmit data packets in parallel. This is 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. Multi-link aggregation 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. However, multiple data transmission links transmit different data packets simultaneously, resulting in high transmission efficiency. This is more suitable for less important data packets. The data packets carry a target data packet type identifier. This identifier reflects the importance of the data packet. For critical data packets, selecting multi-link concurrent transmission mode can reduce the packet loss rate. For non-critical data packets, selecting multi-link aggregation transmission mode can improve the overall transmission efficiency of multiple data packets generated by the target application. The embodiments of this application achieve a good trade-off between data transmission reliability and data transmission efficiency.
[0096] 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.
[0097] For ease of understanding, each step of the data packet 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.
[0098] See Figure 2 , Figure 2 This is a flowchart illustrating the steps of a data packet transmission method provided in an embodiment of this application. In this embodiment, the data packet transmission method is executed by a computer device, such as a terminal, and the specific process is as follows:
[0099] 101. Obtain the data packets of the target application.
[0100] Currently, many business 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, online shopping applications, etc. have been developed for mobile devices to enable users to use applications on their mobile phones anytime, anywhere, providing convenience.
[0101] 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.
[0102] 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.
[0103] 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.
[0104] Based on this, the embodiments of this application propose a data packet 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.
[0105] 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.
[0106] In this embodiment of the application, in order to transmit data packets of the target application according to different transmission modes, the data packets of the current business session of the target application can be obtained sequentially. The data packets carry a target data packet type identifier, so that different transmission modes can be assigned to the corresponding data packets according to the target data packet type identifier to transmit the data packets, thereby improving the transmission reliability of key data packets and improving the overall data packet transmission efficiency.
[0107] The target application can be an application developed for computer devices, such as a game application, short video application, online shopping application, or live streaming application developed for mobile operating environments.
[0108] The data packet carries at least a target data packet 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 contains 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 target data packet type identifier 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 target data packet type identifiers can be set according to the importance of the data packet.
[0109] It should be noted that the target data packet type identifier can be any length of characters or numbers, for example, it can be a 6-bit character set, used to indicate the type of the current data packet, defined by the target application. When assigning a transmission mode to a data packet, the importance of the data packet to the business service can be determined through this target data packet type identifier, and based on this, a corresponding target transmission mode can be assigned to the data packet. Specifically, the target application can generate a target data packet type identifier for the data packet according to the transmission mode determination 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 transmission mode determination rules include multiple preset data packet type identifiers and the transmission mode mapped to each preset data packet type identifier.
[0110] 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 multi-link concurrent transmission mode and a multi-link aggregation transmission mode (the creation process of these two modes will be described later). The multi-link concurrent transmission mode uses multiple data transmission links to transmit data packets in parallel, while the multi-link aggregation transmission mode selects one data transmission link from multiple data transmission links to transmit data packets. Based on this, different transmission modes can be mapped to different data packet types to generate transmission mode determination rules. This provides a reference for the target application when setting the target data packet type identifier and serves as a basis for subsequent transmission mode allocation, thereby meeting the requirement of using different transmission modes among multiple data packets in the same service session.
[0111] In some implementations, the data level classification of the target application's data packets can be determined first, with each data level classification corresponding to a data packet type identifier. A mapping relationship is then established between the data packet type identifiers and pre-created transmission modes to generate transmission mode determination rules. For example, before step 101, the process may include: obtaining multiple data level classifications for the target application's data packets and assigning a preset data packet type identifier to each data level classification; establishing a mapping relationship between each preset data packet type identifier and a multi-link concurrent transmission mode or a multi-link aggregated transmission mode to obtain transmission mode determination rules; and sending the transmission mode determination rules to the target application, so that the target application adds the corresponding target data packet type identifier to the data packet's data level classification based on the transmission mode determination rules.
[0112] The data level classification can be a predefined classification of data packets by the target 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.
[0113] 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.
[0114] 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.
[0115] The preset data packet 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.
[0116] The transmission mode determination rule may include a mapping relationship between a preset data packet type identifier and a multi-link concurrent transmission mode or a multi-link aggregated transmission mode. In addition, the transmission mode determination rule also includes a connection identifier of retransmission indication type or non-retransmission indication type associated with the preset data packet type identifier.
[0117] Specifically, in order to generate transmission mode determination rules, firstly, the data level classification of data packets for the target application is obtained. Specifically, the data level classification of data packets can be obtained from the business server corresponding to the target application, or it can be obtained from the interaction with the target application. There is no limitation here.
[0118] Then, since the currently pre-built transmission modes include multi-link concurrent transmission mode and multi-link aggregated transmission mode, a mapping relationship needs to be established between each preset data packet type identifier and either the multi-link concurrent transmission mode or the multi-link aggregated transmission mode. Specifically, the transmission mode priority between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode can be determined, and the multi-link concurrent transmission mode and the multi-link aggregated transmission mode can be sorted according to the transmission mode priority to obtain a transmission mode sequence. According to the descending order of the various data level classifications, multiple preset data packet type identifiers are evenly mapped to the multi-link concurrent transmission mode and the multi-link aggregated transmission mode in the transmission mode sequence to obtain the transmission mode determination rules.
[0119] 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. The pre-built transmission modes include multi-link concurrent transmission mode and multi-link aggregation transmission mode. The priority between these two transmission modes is determined. This priority can be directly defined locally (e.g., by a multi-network transmission unit), or it can be determined according to transmission characteristics. For example, it can be defined according to transmission reliability. Clearly, multi-link concurrent transmission mode has a higher priority in transmission reliability than multi-link aggregation transmission mode. The transmission mode sequence is generated according to priority, with multi-link concurrent transmission mode preceding multi-link aggregated transmission mode. Furthermore, based on the hierarchical order of these four classification levels, the corresponding four packet type identifiers are evenly mapped to the transmission mode sequence. For example, assuming 000000 and 110000 represent the type identifiers of regular packets, and 001110 and 101110 represent the type identifiers of high-level packets, then 001110 and 101110 are mapped to the multi-link concurrent transmission mode, and 000000 and 110000 are mapped to the multi-link aggregated transmission mode. This yields the transmission mode determination rule.
[0120] Afterward, the transmission mode determination rules can be sent to the target application to notify it, so that the target application can add the corresponding target data packet type identifier according to the data level classification of the data packet based on the transmission mode determination rules.
[0121] By using the above methods, data packets of the current business session of the target application can be obtained sequentially. These data packets carry a target data packet type identifier, so that different transmission modes can be assigned to the corresponding data packets according to the target data packet type identifier for transmission, thereby improving the transmission reliability of critical data packets and improving the overall data packet transmission efficiency.
[0122] 102. Identify the multiple data transmission links used to transmit data packets.
[0123] In this embodiment of the application, after receiving the data packet from the target application, multiple data transmission links for transmitting the data packet can be determined first. Specifically, the transmission links supported by the local device (or the target application and / or the multi-network transmission unit on the local device) can be determined, and the supported transmission links can be used as data transmission links for transmitting the data packet. In this way, after allocating the corresponding target transmission mode to the data packet, the data packet can be transmitted by combining the target transmission mode and multiple data transmission links, thereby improving the transmission reliability of critical data packets and improving the overall data packet transmission efficiency.
[0124] 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.
[0125] Specifically, when determining multiple data transmission links for transmitting data packets, multiple candidate transmission links supported by the local device can be identified from the hardware device parameters or configuration parameters of the local device. 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.
[0126] By using the above methods, the transmission links supported by the local device (or the target application and / or multiple network transmission units on the local device) can be determined, and the supported transmission links can be used as data transmission links for transmitting data packets. After allocating the corresponding target transmission mode to the data packets, the data packets can be transmitted by combining the target transmission mode and multiple data transmission links, thereby improving the transmission reliability of critical data packets and improving the overall data packet transmission efficiency.
[0127] 103. Based on the transmission mode determination rules, determine the target transmission mode corresponding to the target data packet type identifier in multi-link concurrent transmission mode and multi-link aggregated transmission mode.
[0128] In this embodiment, after determining multiple data transmission links for transmitting data packets, a target transmission mode corresponding to the target data packet type identifier can be determined from pre-created multi-link concurrent transmission modes and multi-link aggregated transmission modes based on transmission mode determination rules. This target transmission mode is then assigned as the transmission mode for the current data packet. It should be noted that this target data packet type identifier can be added by the target application based on the data packet's data level classification according to the transmission mode determination rules. Therefore, it can be understood as assigning a target transmission mode to data packets 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 business session, thus ensuring reliability.
[0129] Multi-link concurrent transmission mode is a transmission mode that uses multiple data transmission links to transmit data packets in parallel, while multi-link aggregation transmission mode is a transmission mode that selects one data transmission link from multiple data transmission links to transmit data packets. For example, assuming the data transmission links include wireless communication networks (3G / 4G / 5G) and mobile hotspot networks, multi-link concurrent transmission mode means that the terminal simultaneously uses both the wireless communication network and the mobile hotspot network to transmit the same data packet in a service session. That is, a data packet is transmitted simultaneously by both the wireless communication network and the mobile hotspot network, which can be understood as repeated transmission, reducing the packet loss rate of repeatedly transmitted data packets and improving the reliability of data packet transmission. Multi-link aggregation transmission mode, on the other hand, means that different data packets in the service session of the target application are transmitted separately through the wireless communication network and the mobile hotspot network. For example, 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, increasing the data packet transmission efficiency. Similarly, a round-robin method can also be used to select the data transmission link.
[0130] In some implementations, a multi-link concurrent transmission mode and a multi-link aggregated transmission mode based on multiple data transmission links between the local network and the target transmission gateway can be determined. This is done according to the mapping relationship included in the transmission mode determination rules, to determine the target transmission mode mapped to the target data packet type identifier from the multi-link concurrent transmission mode and the multi-link aggregated transmission mode. For example, if the transmission mode determination rules include a preset mapping relationship between the data packet type identifier and the multi-link concurrent transmission mode or the multi-link aggregated transmission mode, then step 103 may include:
[0131] (103.1) Read the pre-built multi-link concurrent transmission mode and multi-link aggregated transmission mode between the local and target transmission gateways;
[0132] (103.2) Determine the mapping relationship contained in the rule according to the transmission mode, and select the target transmission mode that is mapped to the target data packet type identifier from the multi-link concurrent transmission mode and the multi-link aggregated transmission mode.
[0133] Specifically, the pre-built multi-link concurrent transmission mode and multi-link aggregated transmission mode between the local device and the target transmission gateway can be determined first. These modes can specifically be the pre-built transmission modes between the multi-network transmission unit on the terminal and the target transmission gateway on the server. Further, from the transmission mode determination rules, multiple preset data packet type identifiers and the target transmission mode mapped to each preset data packet type identifier, such as the multi-link concurrent transmission mode or the multi-link aggregated transmission mode, can be obtained. This target transmission mode is then used as the transmission mode for the data packets. Thus, the target data packet type identifier is added by the target application based on the data packet level classification according to the transmission mode determination rules. According to the level or importance of the data packet reflected by the target data packet type identifier, a corresponding target 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.
[0134] In some implementations, multi-link concurrent transmission mode and multi-link aggregated transmission mode can be created for multiple data transmission links between the local device and the target transmission gateway. A preset connection identifier list is then associated with both the multi-link concurrent transmission mode and the multi-link aggregated transmission mode, ensuring that each 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 target application, and generating a session connection request based on the preset connection identifier list; sending the session connection request to the target transmission gateway, causing the target transmission gateway to create a multi-link concurrent transmission mode and a multi-link aggregated transmission mode based on multiple data transmission links, and establishing an association between the preset connection identifier list and the multi-link concurrent transmission mode and the multi-link aggregated transmission mode respectively; when the association is confirmed to be established, confirming that the multi-link concurrent transmission mode and the multi-link aggregated transmission mode have been successfully created for the current service session of the target application.
[0135] In this context, a business session can be understood as a single connection between the local device and the server, specifically the connection established between the multi-network transmission unit on the terminal and the multi-network transmission 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 definitive limitations.
[0136] 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 a target 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 target transmission 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.
[0137] Specifically, a target application can continuously conduct business sessions. Assuming that each business session between the local application and the target transmission gateway is considered as 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.
[0138] Based on this, when creating a transmission mode for a business session of a target application, a list of preset connection identifiers allocated to the business session of the target application can be obtained first. A session connection request can then be generated based on this list, and the request can also carry the link identifiers of multiple data transmission links. Next, the session connection request is sent to the target transmission gateway to send the list of preset connection identifiers. At this point, the target transmission gateway can create a multi-link concurrent transmission mode and a multi-link aggregated transmission mode based on these multiple data transmission links, and associate and bind the list of preset connection identifiers with both modes respectively. This ensures that the same list of connection identifiers is maintained and used in any subsequent data transmission mode. Subsequently, the target transmission gateway can send a creation message back to the local device (such as a terminal or a target application on the terminal that integrates multi-network transmission functionality, or a multi-network transmission unit / application). When it detects that the creation of multi-link concurrent transmission mode and multi-link aggregated transmission mode has been completed, and the preset connection identifier list has been associated with the multi-link concurrent transmission mode and multi-link aggregated transmission mode respectively, the local device confirms that the current business session between the local device and the target transmission gateway for the target application has been successfully created with multi-link concurrent transmission mode and multi-link aggregated transmission mode.
[0139] For example, a list of preset connection identifiers for the current business session of the target application 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 request to establish a new session connection. Furthermore, transmission mode flags for multi-link concurrent transmission mode and multi-link aggregate transmission mode, as well as the QUIC version number, can be set separately. Further, the QUIC data packet containing the session connection request is sent to the server (such as the target transmission gateway on the server). This data packet will be sent out through the default network link (such as one of the currently available WiFi or mobile data networks, selected according to the system default policy).
[0140] 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 request to establish a multi-link aggregation transmission mode and a multi-link concurrent transmission mode based on multiple data transmission links. The server can decide whether to accept the connection request based on its own resources and configuration. If accepted, it indicates that the multi-link aggregation transmission mode and the multi-link concurrent transmission mode 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 multi-link concurrent transmission mode and the multi-link aggregation transmission mode is complete.
[0141] Using the above method, rules can be determined based on the transmission mode. From pre-created multi-link concurrent transmission modes and multi-link aggregated transmission modes, the target transmission mode corresponding to the target data packet type identifier can be determined, and this target 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.
[0142] 104. Transmit data packets according to the target transmission mode.
[0143] In this embodiment, after assigning a target transmission mode—either a multi-link concurrent transmission mode or a multi-link aggregation transmission mode—to the data packet according to the target data packet type identifier, the data packet can be transmitted to the target transmission gateway according to the data transmission link indicated by the target transmission mode. Specifically, in the multi-link concurrent transmission mode, the data packet is transmitted to the target transmission gateway simultaneously through multiple data transmission links, improving the transmission reliability of the data packet. In the multi-link aggregation transmission mode, the data packet is transmitted to the target transmission gateway through one of the multiple data transmission links, improving the transmission efficiency of the data packet. This allows the target transmission gateway to process the received data packet, such as deduplication or aggregation, and forward the data packet to the business server corresponding to the target application, thus completing the data packet transmission. In this way, differentiated transmission between different data packets in the same business session of the target 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.
[0144] It should be noted that different data transmission links are used for different transmission modes. For example, the multi-link concurrent transmission mode transmits the same data packet in parallel using multiple data transmission links between the local machine and the server (target transmission gateway). The multi-link aggregation transmission mode selects one data transmission link from the multiple data transmission links between the local machine and the server (target transmission gateway) to transmit the data packet.
[0145] In some implementations, when the target transmission mode is a multi-link aggregation transmission mode, the data packet is sent to one of the target data transmission links from multiple data transmission links for transmission, thereby improving the overall data packet transmission efficiency. For example, step 104 may include:
[0146] (104.a.1) When the target transmission mode is multi-link aggregation transmission mode, select one target data transmission link from multiple data transmission links;
[0147] (104.a.2) Send the data packet to the target transmission gateway through the target data transmission link.
[0148] The target data transmission link can be any data transmission link between the local area and the server. For example, it can be a wireless communication network, i.e., mobile data communication, such as 3G / 4G / 5G, or a mobile hotspot network, or a wired network, or infrared communication, etc. There are no restrictions here.
[0149] Specifically, after determining the target transmission mode for the data packet, when it is identified that the target transmission mode is a multi-link aggregation transmission mode, according to the instructions of the multi-link aggregation transmission mode, only one target data transmission link is selected from multiple data transmission links, and the data packet is sent to the target data transmission link, so that the data packet is sent to the target transmission gateway of the server through the target data transmission link, and then forwarded to the business server.
[0150] When selecting a target data transmission link from multiple data transmission 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 target data transmission link is selected sequentially according to the round-robin order. If WiFi was selected as the target 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.
[0151] Alternatively, a route hashing method can be used to select the target data transmission link. 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 target data transmission link.
[0152] In some implementations, a target 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) of "selecting a target data transmission link from multiple data transmission links" may include: determining the data packet's generation time and determining the current waiting time of the data packet 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 determining the data transmission link with the highest average transmission rate as the target 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 determining the data transmission link with the lowest average packet loss rate as the target data transmission link.
[0153] The generation time refers to the time when the data packet is generated, that is, the time when the target application generates the current data packet. Specifically, in the business session of the target application, data that needs to be interacted with the backend will be generated. The data transmission format can be 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.
[0154] The waiting time refers to the time that a data packet has been waiting since it was generated. 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 the data packets wait for transmission is the waiting time.
[0155] 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 business services corresponding to the target application, such as lag or response delay. The preset time threshold can be set according to experience values and is not limited here.
[0156] Specifically, for data packets requiring a target transmission mode, firstly, the generation time of the data packet can be determined, and based on this time, the waiting time from the packet's completion to the current time can be calculated. Then, the waiting time is compared with a preset threshold. On one hand, if the waiting time exceeds the threshold, it indicates a long transmission wait time. Since multiple data transmission links exist with varying transmission rates, to expedite transmission, the average transmission rate of each link can be determined, and the link with the highest average rate is selected as the target link. On the other hand, if the waiting time is less than the threshold, it indicates a short wait time within acceptable limits. In this case, to maximize transmission reliability and minimize packet loss, the average packet loss rate of each link can be determined, and the link with the lowest average packet loss rate is selected as the target link. Therefore, for data packets in multi-link aggregation transmission mode, for packets with a long waiting time, the data transmission link with a higher transmission rate is selected as the target data transmission link, and for packets with a short waiting time, the data transmission link with a lower packet loss rate is selected as the target data transmission link, thereby improving the data packet transmission rate or transmission reliability.
[0157] In some implementations, when the target transmission mode is a multi-link concurrent transmission mode, data packets are sent to multiple data transmission links, and the data packets are transmitted concurrently through multiple data transmission links, thereby improving the overall reliability of data packet transmission. For example, step 104 may include:
[0158] (104.b.1) When the target transmission mode is a multi-link concurrent transmission mode, each of the multiple data transmission links shall be used as the target data transmission link;
[0159] (104.b.2) Send the data packet to each target data transmission link and send it to the target transmission gateway in parallel through multiple target data transmission links.
[0160] Specifically, after determining the target transmission mode for the data packet, when the target transmission mode is identified as a multi-link concurrent transmission mode, each of the multiple data transmission links is used as a target data transmission link according to the multi-link aggregation transmission mode instruction, thus obtaining multiple target 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 target data transmission links respectively, so that the data packet is sent to the target transmission gateway of the server through these multiple target data transmission links, and then forwarded to the business server.
[0161] 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 target application) can be further encapsulated by the MP-QUIC layer to obtain the target data packet. Then, the target data packet is sent to the transport layer to execute its 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, in order to retransmit lost or erroneous data packets within the same service session, corresponding tags can be added during encapsulation so that if a tagged data packet is lost or erroneous, it can be retransmitted.
[0162] In some implementations, to enable subsequent retransmission of data packets within the same service session, the target connection identifier is used as a retransmission indication type marker. The target connection identifier and the data packet are encapsulated at the Fast Internet Connection Protocol layer to obtain a target data packet, which is then transmitted according to the target transmission mode. For example, step 104 may include:
[0163] (104.1) Select a target connection identifier for the data packet from the list of preset connection identifiers associated with the current business session of the target application, based on the target data packet type identifier;
[0164] (104.2) Encapsulate the target connection identifier with the data packet to obtain the target data packet;
[0165] (104.3) Transmit the target data packet according to the target transmission mode.
[0166] The preset connection identifier list can contain multiple connection identifiers, which are used to indicate the same service session, representing the identifier corresponding to the same service session between the local machine and the server. 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, enabling the server to distinguish 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 through this unique connection identifier. In this embodiment, multiple connection identifiers are set in the preset connection identifier list for a service session, and a retransmission indication type connection identifier is used to identify data packets that need to be retransmitted when packet loss occurs. The description of the "retransmission" part will be described later and will not be repeated here.
[0167] Specifically, after obtaining the data packets of the target application's business session, firstly, a list of preset connection identifiers associated with the current business session of the target application can be determined. Different business sessions may have the same or different lists of preset connection identifiers. Then, based on the target data packet type identifier, information such as the importance, type, or data type of the data packet is obtained to determine whether retransmission is necessary. Alternatively, since the target data packet type identifier is generated by the target application based on transmission mode rules, it reflects the importance of the data packet, i.e., whether the data packet is important to the business. Therefore, it can also be used to directly decide whether the data packet needs to be retransmitted. Furthermore, a mapping relationship between each preset data packet type identifier and a retransmission flag can be pre-defined, thus directly determining whether retransmission is needed in case of packet loss or error based on the target data packet type identifier.
[0168] Furthermore, if retransmission is required in case of data loss or error, a connection identifier with a retransmission indication type is selected from the preset connection identifier list as the target connection identifier. If retransmission is not required in case of data loss or error, a connection identifier without a retransmission indication type is selected from the preset connection identifier list as the target connection identifier. Then, the target connection identifier is encapsulated with the data packet at the Fast Internet Connection Protocol layer to obtain the target data packet. Finally, the target data packet is transmitted according to the target transmission mode to send it to the target transmission gateway. This allows for the determination of whether retransmission is necessary in case of data packet loss or error, based on the target connection identifier carried in the header of the target data packet. This enables the retransmission of critical data packets within the same service session, thus achieving the capability to retransmit data packets.
[0169] In some implementations, an initial header of a specific format corresponding to the data packet is generated according to the Fast Internet Connection Protocol (HIP), and a connection identifier field is filled into the initial header to obtain the target data packet. For example, step (104.2) may include: creating an initial header corresponding to the target HIP, the initial header including at least a connection identifier field; filling the connection identifier field in the initial header according to the target connection identifier to obtain the target header; and generating the target data packet based on the target header and the data packet.
[0170] Specifically, after selecting a target connection identifier based on the target data packet type, the data packets generated by the target application can be encapsulated at the target Fast Internet Connection Protocol (QUIC) layer. It should be noted that the encapsulation of the target connection identifier and data packets is primarily performed at the Fast Internet Connection Protocol (QUIC) layer. The target data packet can be understood as a QUIC data packet, and the header or initial header of the target data packet is a QUIC data packet header. The QUIC data packet header may include flags, a connection ID, a version number (QUICNumber), and a packet number, which are not limited here.
[0171] Specifically, when a data packet is transmitted to the Fast Internet Connection Protocol (QUIC) layer, an initial header is created according to the target QUIC protocol. This initial header contains multiple fields, one of which is a connection identifier field. Then, based on the target 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 target data packet. Thus, the target data packet carries the target connection identifier, which can be used to determine whether retransmission is necessary if the data packet is lost or corrupted.
[0172] For example, firstly, the QUIC layer constructs the packet header. In the header, according to the QUIC protocol format specification, the previously determined target connection identifier is filled into the corresponding field positions. For instance, in the QUIC common header, the target connection identifier is accurately placed in the specified byte position based on 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).
[0173] 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.
[0174] 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, PacketNumber, etc.), possible encryption information and metadata, and the application data packet itself, ready for transmission.
[0175] In some implementations, in order to retransmit individual data packets within a service session, it is necessary to mark different data packets for retransmission based on different connection identifiers. Therefore, it is necessary to create a preset connection identifier list containing multiple connection identifiers so that a target connection identifier can be selected from the preset connection identifier list to mark the data packets. For example, before step (104.1), the method may further include: determining the primary connection identifier allocated to the current service session of the target application and creating multiple connection identifiers associated with the primary connection identifier; selecting at least one candidate connection identifier from the multiple connection identifiers and determining the candidate connection identifier as a retransmission indication type identifier; determining any connection identifier other than the candidate connection identifier from the multiple connection identifiers as a non-retransmission indication type identifier; and creating a preset connection identifier list based on the retransmission indication type identifier and the non-retransmission indication type identifier.
[0176] It should be noted that a business session of the target application is considered as one connection, which generally has a corresponding connection identifier. Therefore, within a business session, data packets are usually managed in batches according to the connection identifier. To differentiate and manage data packets, such as retransmitting individual critical data packets, different connection identifiers can be set for each data packet in the same business session, thus facilitating subsequent differentiated retransmission management of data packets.
[0177] Specifically, firstly, the primary connection identifier assigned to the current business session of the target application can be determined. This primary connection identifier can be the connection identifier between the target application and the business server, the connection identifier between the terminal and the server, or even the connection identifier between the multi-network transmission unit and the target 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 multiple connection identifiers serve as child identifiers of the primary connection identifier. The child identifiers can be based on the parent identifier with added suffixes. For example, assuming the primary connection identifier is "2222", the child identifiers can be "2222-01", "2222-02", "2222-03", and so on. Furthermore, at least one candidate connection identifier is selected from multiple connection identifiers, and this candidate connection identifier is 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; there is no limitation here. Meanwhile, the remaining connection identifiers from the multiple connection identifiers, excluding the candidate connection identifiers, are designated as non-retransmission indication type identifiers. Finally, a preset connection identifier list is generated based on the retransmission indication type identifiers and non-retransmission indication type identifiers. This allows for subsequent selection of target connection identifiers and data packets from the preset connection identifier list for encapsulation, enabling individual retransmission management of data packets.
[0178] In this embodiment, data packets critical to the target application's business services are retransmitted when they are lost or corrupted (e.g., data packet corruption or garbled characters) to prevent the loss or corruption from affecting the target application's business services. It should be noted that when a target data packet is lost or corrupted, the decision to retransmit it is based on the target connection identifier carried by the target data packet. This target connection identifier is set according to the corresponding target data packet type identifier, which is generated by the target application according to transmission mode determination 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 target application's business services, ensuring reliability.
[0179] In some implementations, after the target data packet is sent to the target transmission gateway, if the target data packet is determined to be lost or corrupted based on the data packet reception status returned by the target transmission gateway, and the target connection identifier indicates a retransmission indication type, then retransmission is performed according to the target transmission mode. For example, after step 104, the process may include: obtaining the data packet reception status returned by the target transmission gateway; when the data packet reception status indicates that the target data packet is missing, and the target connection identifier carried in the target data packet is a retransmission indication type, retransmitting the target data packet to the target transmission gateway according to the target transmission mode.
[0180] 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 target data packet, it means that the target data packet was lost during transmission.
[0181] The retransmission indication type identifier is a connection identifier used to indicate that the corresponding target data packet needs to be retransmitted if 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 target data packet does not need to be retransmitted.
[0182] Specifically, when the data packet reception status indicates that the target data packet is missing, the identifier type of the target connection identifier is queried in the preset connection identifier list; when the identifier type of the target connection identifier is a retransmission indication type identifier, the target data packet is retransmitted to the target transmission 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 preventing the loss of critical data packets from affecting the service of the target application, such as avoiding frame skipping, stuttering, and response failures, and ensuring reliability.
[0183] For example, during data transmission, the server (such as the target transmission gateway) can use positive feedback (ACK) / negative feedback (NACK) signaling to provide feedback on the data packet reception status to the terminal (such as the multi-network 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 the integrity and correctness of the data packet. 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 there are any lost or out-of-order data packets. 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.
[0184] 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.
[0185] 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.
[0186] It should be noted that retransmitting the target data packet to the target transmission gateway according to the target transmission mode is similar to the process of "transmitting the data packet according to the target transmission mode" and "transmitting the target data packet according to the target transmission mode". For details, please refer to the process of transmitting the data packet according to the target transmission mode, which will not be elaborated here.
[0187] In the embodiments of this application, both the multi-link concurrent transmission mode and the multi-link aggregation transmission mode are transmission modes executed based on multiple data transmission links. For example, both multi-link concurrent transmission mode and multi-link aggregation transmission mode share the same multiple data transmission links, such as sharing a mobile data network (i.e., a wireless communication network 3G / 4G / 5G) and a mobile hotspot network. When network performance is poor, there may be slow data packet transmission, 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, the transmission priority of conflicting data packets can be determined according to the data packet transmission strategy, and the data packets are transmitted sequentially according to the data transmission links indicated by the transmission mode based on the transmission priority. This avoids data transmission link congestion and disorder, restoring normal data packet transmission and ensuring reliability.
[0188] In some implementations, when the transmission delay duration of each data transmission link is determined and the transmission delay duration of all data transmission links is greater than a preset delay threshold, a priority order relationship between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode is determined, and data packets of the transmission mode indicated by the priority order relationship among conflicting data packets are processed first. For example, after step 104, the implementation may further include: receiving data packet congestion information fed back by the target transmission gateway, the data packet congestion information including the transmission delay duration of each data transmission link among the multiple data transmission links between the local device and the target transmission gateway; when the transmission delay duration of each data transmission link is greater than the preset delay threshold, a priority order relationship between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode is determined; based on the priority order relationship, a link usage priority is determined between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode; when a transmission conflict is detected between the data packets to be transmitted in the multi-link concurrent transmission mode and the multi-link aggregated transmission mode, multiple data packets to be transmitted with transmission conflicts are transmitted to the target transmission gateway in sequence based on the transmission mode indicated by the link usage priority.
[0189] This priority order includes the priority relationship between the multi-link concurrent transmission mode and the multi-link aggregation transmission mode. For example, in terms of transmission reliability, the multi-link concurrent transmission mode has a higher priority than the multi-link aggregation transmission mode. Specifically, the multi-link concurrent transmission mode uses multiple data transmission links to transmit data packets simultaneously, resulting in superior transmission reliability and minimizing packet loss. Using this mode also reflects the importance of data packets to the service; therefore, the multi-link concurrent transmission mode may have a higher priority than the multi-link aggregation transmission mode.
[0190] 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 the data packet affect or severely affect the operation of the target application's business services, such as delayed response or lag? The preset delay threshold is determined by using the experience value as the tolerable duration.
[0191] Specifically, during the transmission of data packets for a business session, the target transmission gateway will also provide real-time or periodic feedback on data packet congestion information to the local system. This congestion information can include the transmission delay of each data transmission link between the local system and the target transmission 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 between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode is determined. This priority order determines the priority of each transmission mode for multiple data transmission links, i.e., link usage priority. Further, it is determined whether there are conflicting data packets to be transmitted between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode. If there are conflicting data packets, the data packets to be transmitted under the transmission mode with the higher link usage priority are transmitted to the target transmission gateway according to the corresponding transmission mode. For example, assuming the multi-link concurrent transmission mode has a higher link usage priority, the data packets to be transmitted under the multi-link concurrent transmission mode are transmitted to the target transmission gateway first.
[0192] 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 multi-link concurrent transmission mode, the transmission mode can be switched to multi-link aggregation 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.
[0193] Furthermore, if there is no transmission conflict between the data packets to be transmitted in the multi-link concurrent transmission mode and the multi-link aggregate 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 multi-link concurrent transmission mode experience transmission delays during transmission, the transmission mode of the data packets to be transmitted can be switched, such as switching to the multi-link aggregate 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.
[0194] In some implementations, "transmitting multiple data packets with transmission conflicts sequentially to the target transmission gateway based on the transmission mode indicated by link usage priority" can include: determining the target preset transmission mode assigned to each data packet to be transmitted; determining the target data transmission links where transmission conflicts exist among the multiple data packets to be transmitted; determining the usage priority of each target preset transmission mode for each target data transmission link according to link usage priority; and, based on the usage priority of each target preset transmission mode for each target data transmission link, sequentially transmitting the multiple data packets with transmission conflicts to the target transmission gateway. This improves the efficiency of transmission management for conflicting data packets, quickly restores normal data packet transmission, and ensures reliability.
[0195] In the above manner, for multi-link concurrent transmission mode, data packets are transmitted to the target transmission gateway through multiple data transmission links. For multi-link aggregated transmission mode, data packets are transmitted to the target transmission gateway through one of the multiple data transmission links. In this way, different data packets in the same business session of the target application can be transmitted differently, 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.
[0196] As can be seen from the overall description of the embodiments of this application, the embodiments of this application can obtain data packets of the target application, the data packets carrying a target data packet type identifier; determine multiple data transmission links for transmitting data packets; based on the transmission mode determination rules, determine the target transmission mode corresponding to the target data packet type identifier in the multi-link concurrent transmission mode and the multi-link aggregated transmission mode, wherein the multi-link concurrent transmission mode is a transmission mode that transmits data packets in parallel using multiple data transmission links, and the multi-link aggregated transmission mode is a transmission mode that selects one data transmission link from multiple data transmission links to transmit data packets; and transmit data packets according to the target transmission mode.
[0197] Based on this, multiple data transmission links are provided for the data packets to be transmitted by the target application, instead of just one. Furthermore, two transmission modes are set: multi-link concurrent transmission mode and multi-link aggregation transmission mode, instead of just one. Multi-link concurrent transmission mode uses multiple data transmission links to transmit data packets in parallel. This is 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. Multi-link aggregation 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. However, multiple data transmission links transmit different data packets simultaneously, resulting in high transmission efficiency. This is more suitable for less important data packets. The data packets carry a target data packet type identifier. This identifier reflects the importance of the data packet. For critical data packets, selecting multi-link concurrent transmission mode can reduce the packet loss rate. For non-critical data packets, selecting multi-link aggregation transmission mode can improve the overall transmission efficiency of multiple data packets generated by the target application. This application embodiment achieves a good trade-off between data transmission reliability and data transmission efficiency.
[0198] Based on the methods described in the above embodiments, the following examples will provide further detailed explanations.
[0199] Figure 3 This is a schematic flowchart of another step in the data packet transmission method provided in this application embodiment. For ease of understanding, this application embodiment combines... Figure 3 Describe it.
[0200] In this embodiment, the data packet transmission method is executed by a computer device, such as a terminal, and the specific process of the data packet transmission method is as follows:
[0201] 201. Obtain the data packet of the target application.
[0202] In this embodiment of the application, in order to transmit data packets of the target application according to different transmission modes, the data packets of the current business session of the target application can be obtained sequentially. The data packets carry a target data packet type identifier, so that different transmission modes can be assigned to the corresponding data packets according to the target data packet type identifier to transmit the data packets, thereby improving the transmission reliability of key data packets and improving the overall data packet transmission efficiency.
[0203] 202. Identify the multiple data transmission links used to transmit data packets.
[0204] The computer device in this application embodiment can be a mobile phone, tablet computer, laptop computer, smartwatch, smart home appliance, or other computer device. These devices support at least two network transmission links, such as supporting wired or wireless communication networks provided by operators, and mobile hotspot networks. For example, a mobile phone can support wireless communication networks (such as 3G / 4G / 5G) via a SIM card, and also supports mobile hotspot networks; these are two different network transmission links. Similarly, a laptop computer can support wired communication networks (such as broadband) and also supports mobile hotspot networks; these are two different network transmission links. The above are merely examples; other mobile terminal devices can also support any two or more different network transmission links.
[0205] Specifically, after receiving the data packet from the target application, multiple data transmission links for transmitting the data packet can be determined first. Specifically, the transmission links supported by the local device (or the target application and / or multi-network transmission unit on the local device) can be determined, and the supported transmission links can be used as data transmission links for transmitting data packets. In this way, after allocating the corresponding target transmission mode to the data packet, the data packet can be transmitted by combining the target transmission mode and multiple data transmission links, thereby improving the transmission reliability of critical data packets and improving the overall data packet transmission efficiency.
[0206] 203. Based on the transmission mode determination rules, determine the target transmission mode corresponding to the target data packet type identifier in multi-link concurrent transmission mode and multi-link aggregated transmission mode.
[0207] In this embodiment, after determining multiple data transmission links for transmitting data packets, a target transmission mode corresponding to the target data packet type identifier can be determined from pre-created multi-link concurrent transmission modes and multi-link aggregated transmission modes based on transmission mode determination rules. This target transmission mode is then assigned as the transmission mode for the current data packet. It should be noted that this target data packet type identifier can be added by the target application based on the data packet's data level classification according to the transmission mode determination rules. Therefore, it can be understood as assigning a target transmission mode to data packets 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 business session, thus ensuring reliability.
[0208] Specifically, the pre-built multi-link concurrent transmission mode and multi-link aggregated transmission mode between the local terminal and the target transmission gateway can be determined first. These modes can specifically be the pre-built transmission modes between the multi-network transmission unit on the terminal and the target transmission gateway. Further, from the transmission mode determination rules, multiple preset data packet type identifiers and the target transmission mode mapped to each preset data packet type identifier, such as the multi-link concurrent transmission mode or the multi-link aggregated transmission mode, can be obtained. This target transmission mode is then used as the transmission mode for the data packets. Thus, the target data packet type identifier is added by the target application based on the data packet level classification according to the transmission mode determination rules. According to the level or importance of the data packet reflected by the target data packet 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 in the same business session.
[0209] 204. Based on the target data packet type identifier, select the target connection identifier for the data packet from the list of preset connection identifiers associated with the current business session of the target application.
[0210] 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 a connection identifier.
[0211] Specifically, after obtaining the data packets of the target application's business session, firstly, a list of preset connection identifiers associated with the target application's current business session can be determined. Then, based on the target data packet type identifier, information such as the importance, type, or data type of the data packet is obtained to determine whether retransmission is necessary. Alternatively, since the target data packet type identifier is generated by the target application based on transmission mode rules, it reflects the importance of the data packet, i.e., whether the data packet is important to the business. Therefore, it is also possible to directly decide whether the data packet needs to be retransmitted based on the target data packet type identifier. In addition, a mapping relationship between each preset data packet type identifier and a retransmission flag can be pre-defined, so that the decision on whether to retransmit in case of packet loss or error can be made directly based on the target data packet type identifier.
[0212] Furthermore, if retransmission is required in the event of loss or error, a retransmission indication type connection identifier is selected from the preset connection identifier list as the target connection identifier; if retransmission is not required in the event of loss or error, a non-retransmission indication type connection identifier is selected from the preset connection identifier list as the target connection identifier.
[0213] 205. Encapsulate the target connection identifier with the data packet to obtain the target data packet.
[0214] 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 target application) can be further encapsulated by the MP-QUIC layer to obtain the target data packet. Then, the target data packet is sent to the transport layer to execute its 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, in order to retransmit lost or erroneous data packets within the same service session, corresponding tags can be added during encapsulation so that if a tagged data packet is lost or erroneous, it can be retransmitted.
[0215] Specifically, when a data packet is transmitted to the Fast Internet Connection Protocol (QUIC) layer, an initial header is created according to the target QUIC protocol. This initial header contains multiple fields, one of which is a connection identifier field. Then, based on the target 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 target data packet. Thus, the target data packet carries the target connection identifier, which can be used to determine whether retransmission is necessary if the data packet is lost or corrupted.
[0216] 206. Transmit the target data packet according to the target transmission mode.
[0217] In this embodiment, the target data packet is transmitted to the target transmission gateway according to the data transmission link indicated by the target transmission mode. Specifically, for the multi-link concurrent transmission mode, the target data packet is transmitted to the target transmission gateway through multiple data transmission links. For the multi-link aggregated transmission mode, the target data packet is transmitted to the target transmission gateway through one of the multiple data transmission links. This allows the target transmission gateway to process the received target data packet, such as deduplication or aggregation, and forward the target data packet to the business server corresponding to the target application, thus completing the data packet transmission. In this way, differentiated transmission between different data packets in the same business session of the target 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.
[0218] Specifically, when the target transmission mode is identified as a multi-link aggregation transmission mode, according to the instructions of the multi-link aggregation transmission mode, only one target data transmission link is selected from multiple data transmission links, and the target data packet is sent to the target data transmission link so that the data packet can be sent to the target transmission gateway of the server through the target data transmission link, and then forwarded to the business server.
[0219] Specifically, when the target transmission mode is identified as a multi-link concurrent transmission mode, each of the multiple data transmission links is used as a target data transmission link according to the instructions of the multi-link aggregation transmission mode, thus obtaining multiple target data transmission links. Furthermore, the current target data packet is sent to the multiple target data transmission links respectively, so that the target data packet is sent to the target transmission gateway of the server through these multiple target data transmission links, and then forwarded to the business server.
[0220] 207. Obtain the data packet reception status fed back by the target transmission gateway.
[0221] In the application embodiment, after the target data packet is sent to the target transmission gateway, the data packet reception status fed back by the target transmission 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 certain target data packet, it indicates that the target data packet was lost during transmission.
[0222] 208. When the data packet reception status indicates that the target data packet is missing, and the target connection identifier carried in the target data packet is a retransmission indication type identifier, the target data packet is retransmitted to the target transmission gateway according to the target transmission mode.
[0223] In this embodiment of the application, after the target data packet is sent to the target transmission gateway, if it is determined that the target data packet is lost or erroneous based on the data packet reception status fed back by the target transmission gateway, and the target connection identifier indicates a retransmission indication type identifier, then retransmission is performed according to the target transmission mode.
[0224] Specifically, for data packets critical to the target application's business services, retransmission is performed when they are lost or corrupted (e.g., data packet corruption or garbled characters) to prevent the loss or corruption from affecting the target application's business services. It should be noted that when a target data packet is lost or corrupted, the decision to retransmit it is based on the target connection identifier carried by the target data packet. This target connection identifier is set according to the corresponding target data packet type identifier, which is generated by the target application based on transmission mode determination 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 target application's business services, ensuring reliability.
[0225] 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.
[0226] It should be noted that this data packet transmission method is applicable to data packet transmission scenarios for 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 of the target application within the same target business session, and reads the target data packet type identifier carried in the data packets. It's important to note that since this target data packet type identifier is autonomously set by the target application based on the data packet attributes and transmission mode determination rules, it reflects the importance of the corresponding data packet. Therefore, combining the transmission mode determination rules and the target data packet type identifier, one of the target transmission modes—multi-network concurrent transmission mode and multi-network aggregation transmission mode—is assigned to the data packet to achieve the allocation of the appropriate transmission mode based on the importance of the data packet. Finally, the data packet is transmitted according to the assigned target 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 target application and achieving a good trade-off between data transmission reliability and data transmission efficiency. The following is a detailed introduction to the data packet transmission method using an example of this data packet transmission scenario:
[0227] I. A brief example of this data packet transmission scenario is as follows:
[0228] 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.
[0229] 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:
[0230] 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.
[0231] Figure 4 This is an example diagram illustrating a data packet transmission scenario in a multi-network concurrent transmission mode provided in an embodiment of this application, combined with... Figure 4As shown, this scenario primarily uses game data packet transmission 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 and the cloud is mainly achieved through two network transmission links: a 5G network and a 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, allowing them to be simultaneously transmitted to the game acceleration gateway. The game acceleration gateway then 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. This completes the game data packet transmission. Therefore, the principle of this multi-network concurrent transmission mode is that data packets are sent simultaneously on two network links, as shown in packets 1 and 2 in the diagram. Successful reception is achieved if any one data 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. Considering that gaming services are not sensitive to packet loss, they generally adopt an unreliable transmission mode.
[0232] 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.
[0233] Figure 5 This is an example diagram illustrating a data packet transmission scenario in the multi-network aggregation transmission mode provided in the embodiments of this application, combined with... Figure 5As shown, this scenario primarily uses the transmission of data packets for live streaming as an example. The terminal side is equipped with a live streaming application and a multi-network transmitter, while the cloud includes a multi-network transmission gateway and a live streaming server. Data interaction between the terminal 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 live streaming application transmits data packets 1, 2, 3, and 4 to the multi-network transmitter. The multi-network transmitter then sequentially sends these data packets to the 5G network and the mobile hotspot network links. 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. Thus, data packets 1, 2, 3, and 4 are sent to the multi-network transmission gateway via these two network links. The multi-network transmission 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. This completes the data packet transmission for the live streaming service. As can be seen, the principle of this multi-network aggregation transmission mode is to distribute different data packets of 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.
[0234] 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.
[0235] 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.
[0236] II. The specific implementation process of this data packet transmission scenario example is as follows:
[0237] (1) Since this data packet transmission scenario example is based on "MP-QUIC", for ease of understanding, "QUIC" will be explained first, as follows:
[0238] Figure 6 This is an example diagram of the stack structure of the Fast UPD Internet Connection Layer provided in the embodiments of this application, combined with Figure 6 As shown, the stack consists of 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 HTTP / 2 padding layer (HTTP / 2shim), the security layer corresponds to Quick UDP Internet Connection Protocol (QUIC), the transport layer corresponds to User Datagram Protocol (UDP), and the network layer also corresponds to the Internet Protocol.
[0239] 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.
[0240] Figure 7 This is an example diagram illustrating the structure of the Type of Service (TOS) field in an application data packet provided in this application embodiment. 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) packet. This application data packet contains an application header, which 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, which is originally an 8-bit Type of Service (TOS) field, can be further divided into a 6-bit Differentiated Services Code Point (DSCP) field and a 2-bit Explicit Congestion Notification (ECN) field.
[0241] The 6-bit Differentiated Services (DSCP) field is used to define the importance of a data packet within the current data packet transmission scenario. For example, it defines the traffic class and priority of the packet, denoted 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. An example is... Figure 7 As shown, "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 the drop priority or other characters, without any restrictions here.
[0242] 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.
[0243] Figure 8 This is a structural example diagram of the QUIC data packet provided in the embodiments of this application, combined with... Figure 8 As shown, the structure of a QUIC packet includes a plaintext header and ciphertext data. The header includes four fields: Flags, Connection ID, QUIC Version, and Packet Number. The encrypted data consists of one or more frames, each of which is further divided into a type and a payload, where the payload is the application data.
[0244] Figure 9 This is an example diagram illustrating the structure of the flag field in the QUIC data packet header provided in this application embodiment. For ease of understanding, please refer to... Figure 9 The structure of the flag field is described below:
[0245] 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:
[0246] Bit0 is a version negotiation related identifier, and its meaning differs depending on whether it is sent by the client or the server.
[0247] Bit1 is used to identify the public reset message.
[0248] Bits 2 and 3 indicate the length of the Connection ID in the message.
[0249] Bit4 and Bit5 represent the number of bytes containing the packet number in each packet.
[0250] Bit6: Reserved for use in multipathing.
[0251] Bit7: Unused, must be 0.
[0252] 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.
[0253] 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.
[0254] Based on the above background of this data packet transmission scenario example, the data packet transmission process is introduced as follows:
[0255] Figure 10 This is an architecture diagram of a multi-network link transmission system provided in the embodiments of this application, combined with... Figure 10 As shown, the mobile terminal side includes a terminal-side business application and a terminal-side multi-network transmission unit. This terminal-side multi-network transmission unit can be accessed by the business application in the form of a toolkit (SDK). The cloud side includes a multi-network transmission gateway and a business server. Data interaction between the terminal side and the cloud side is mainly based on two network transmission links, Network 1 and Network 2, between the multi-network transmission unit and the multi-network transmission 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 multi-network transmission unit on the mobile terminal side and the multi-network transmission gateway on the cloud side, and to decide on the activation of differentiated transmission functions.
[0256] Figure 11 The data packet transmission scenario provided in the embodiments of this application is illustrated in the transmission flowchart. Figure 10 and Figure 11 As shown, the data packet transmission process is as follows:
[0257] 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.
[0258] S2: Establish concurrent MP-QUIC tunnels with different transmission modes. The end-side multi-network transmission unit and the multi-network transmission gateway establish two MP-QUIC tunnels according to the standard MP-QUIC protocol. One tunnel uses aggregated transmission mode, and the other uses dual-transmission mode, and multi-link transmission is initiated 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.
[0259] 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 multi-network transmission unit and the multi-network transmission gateway.
[0260] 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:
[0261] A DSCP field of 000000 (binary) indicates the default priority, which is a regular packet and allows packet loss.
[0262] A DSCP field of 110000 (binary) indicates a regular packet with pattern priority, but packet loss is not allowed.
[0263] A DSCP field of 001110 (binary) indicates a high-priority packet, typically a critical packet, such as an I-frame in a video GOP.
[0264] A DSCP field of 101110 (binary) indicates a high-priority packet that is not allowed to be lost, such as control signaling packets.
[0265] S5: The sending end (multi-network transmission unit) selects the transmission mode based on the Differentiated Services Identifier (DSI) and indicates the retransmission mode by selecting different CID values. Specifically, the end-side multi-network 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:
[0266] 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.
[0267] 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.
[0268] 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.
[0269] 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.
[0270] S6: The end-side multi-network transmission unit selects tunnels with different transmission modes to achieve transmission. At the sending end (such as the end-side multi-network 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.
[0271] S7: The multi-network transmission gateway processes data according to the selected transmission and retransmission modes. At the receiving end (e.g., the multi-network transmission 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.
[0272] Based on the above process, differentiated transmission of different data packets within the same business session of a business program can be achieved.
[0273] 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.
[0274] As described above, this application provides multiple data transmission links for the data packets to be transmitted by the target application, instead of just one. Furthermore, it sets two transmission modes: multi-link concurrent transmission mode and multi-link aggregation transmission mode, instead of just one. Multi-link concurrent transmission mode uses multiple data transmission links to transmit data packets in parallel. This is suitable for transmitting important data packets, where if a packet is not received on one data transmission link, it can be received on other links, reducing packet loss probability and improving reliability. Multi-link aggregation transmission mode selects one data transmission link from multiple links to transmit data packets. Since only one data transmission link is selected, packet loss is irrecoverable, but multiple data transmission links transmit different data packets simultaneously, resulting in high transmission efficiency. This is more suitable for less important data packets. The data packets carry a target data packet type identifier. This identifier reflects the importance of the data packet. For critical data packets, selecting multi-link concurrent transmission mode can reduce the packet loss rate. For non-critical data packets, selecting multi-link aggregation transmission mode can improve the overall transmission efficiency of multiple data packets generated by the target application. The embodiments of this application achieve a good trade-off between data transmission reliability and data transmission efficiency.
[0275] For details on the implementation of each of the above steps, please refer to the previous examples, which will not be repeated here.
[0276] To facilitate better implementation of the data packet transmission method provided in the embodiments of this application, the embodiments of this application also provide an apparatus based on the above-described data packet transmission method. The meanings of the terms used are the same as in the above-described data packet transmission method, and specific implementation details can be found in the descriptions in the method embodiments.
[0277] Please see Figure 12 , Figure 12 This 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.
[0278] The acquisition unit 401 is used to acquire data packets of the target application, the data packets carrying a target data packet type identifier;
[0279] The first determining unit 402 is used to determine multiple data transmission links for transmitting data packets;
[0280] The second determining unit 403 is used to determine the target transmission mode corresponding to the target data packet type identifier in the multi-link concurrent transmission mode and the multi-link aggregated transmission mode based on the transmission mode determination rules. The multi-link concurrent transmission mode is a transmission mode that transmits data packets in parallel using multiple data transmission links, and the multi-link aggregated transmission mode is a transmission mode that selects one data transmission link from multiple data transmission links to transmit data packets.
[0281] The transmission unit 404 is used to transmit data packets according to the target transmission mode.
[0282] In some implementations, the transmission mode determination rule includes a mapping relationship between a preset data packet type identifier and a multi-link concurrent transmission mode or a multi-link aggregated transmission mode. The second determination unit 403 is further configured to:
[0283] Read the pre-built multi-link concurrent transmission mode and multi-link aggregated transmission mode between the local machine and the target transmission gateway;
[0284] The mapping relationship contained in the rules is determined based on the transmission mode, and the target transmission mode that is mapped to the target data packet type identifier is selected from the multi-link concurrent transmission mode and the multi-link aggregated transmission mode.
[0285] In some embodiments, the transmission unit 404 is further configured to:
[0286] When the target transmission mode is multi-link aggregation transmission mode, one target data transmission link is selected from multiple data transmission links;
[0287] The data packet is sent to the target transmission gateway via the target data transmission link.
[0288] In some embodiments, the transmission unit 404 is further configured to:
[0289] Determine the generation time of the data packet, and determine the current waiting time of the data packet based on the generation time;
[0290] When the waiting time exceeds the preset time threshold, the average transmission rate of each data transmission link in the multiple data transmission links is determined, and the data transmission link with the highest average transmission rate is determined as the target data transmission link.
[0291] 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, and the data transmission link with the lowest average packet loss rate is determined as the target data transmission link.
[0292] In some embodiments, the transmission unit 404 is further configured to:
[0293] When the target transmission mode is a multi-link concurrent transmission mode, each of the multiple data transmission links is used as the target data transmission link;
[0294] Data packets are sent to each target data transmission link and then sent in parallel to the target transmission gateway through multiple target data transmission links.
[0295] In some embodiments, the transmission unit 404 is further configured to:
[0296] Based on the target data packet type identifier, select the target connection identifier for the data packet from the list of preset connection identifiers associated with the current business session of the target application;
[0297] The target connection identifier is encapsulated with the data packet to obtain the target data packet;
[0298] Transmit the target data packet according to the target transmission mode.
[0299] In some embodiments, the data packet transmission apparatus further includes a retransmission unit for:
[0300] Obtain the data packet reception status returned by the target transmission gateway;
[0301] When the data packet reception status indicates that the target data packet is missing, and the target connection identifier carried in the target data packet is a retransmission indication type identifier, the target data packet is retransmitted to the target transmission gateway according to the target transmission mode.
[0302] In some embodiments, the transmission unit 404 is further configured to:
[0303] Create an initial header corresponding to the target Fast Internet Connection Protocol (HIP). The initial header must include at least a connection identifier field.
[0304] The target header is obtained by filling the connection identifier field in the initial header with the target connection identifier;
[0305] Generate the target data packet based on the target header and data packet.
[0306] In some embodiments, the data packet transmission apparatus further includes a processing unit for:
[0307] Receive data packet congestion information fed back by the target transmission gateway. The data packet congestion information includes the transmission delay of each data transmission link in the multiple data transmission links between the local device and the target transmission gateway.
[0308] When the transmission delay of each data transmission link is greater than the preset delay threshold, the priority order between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode is determined.
[0309] Based on the priority order, determine the link usage priority between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode;
[0310] When a transmission conflict is detected between data packets to be transmitted in multi-link concurrent transmission mode and multi-link aggregate transmission mode, the multiple data packets with transmission conflicts are transmitted to the target transmission gateway in sequence based on the transmission mode indicated by the link usage priority.
[0311] In some embodiments, the data packet transmission apparatus further includes a transmission mode creation unit, which is also used for:
[0312] Obtain a list of preset connection identifiers assigned to the current business session for the target application, and generate a session connection request based on the list of preset connection identifiers;
[0313] The session connection request is sent to the target transmission gateway, which then creates a multi-link concurrent transmission mode and a multi-link aggregated transmission mode based on multiple data transmission links, and establishes an association between the preset connection identifier list and the multi-link concurrent transmission mode and the multi-link aggregated transmission mode, respectively.
[0314] Once the association is established, it is confirmed that the multi-link concurrent transmission mode and multi-link aggregated transmission mode have been successfully created for the current business session of the target application.
[0315] In some embodiments, the data packet transmission apparatus further includes an establishment unit for:
[0316] Obtain multiple data level classifications of data packets for the target application, and assign a preset data packet type identifier to each data level classification;
[0317] Establish a mapping relationship between each preset data packet type identifier and the multi-link concurrent transmission mode or multi-link aggregated transmission mode to obtain the transmission mode determination rule;
[0318] The transmission mode determination rules are sent to the target application, enabling the target application to add corresponding target data packet type identifiers based on the data level classification of the data packets according to the transmission mode determination rules.
[0319] In some embodiments, the data packet transmission apparatus further includes a generation unit for:
[0320] Determine the primary connection identifier assigned to the current business session for the target application, and create multiple connection identifiers associated with the primary connection identifier;
[0321] Select at least one candidate connection identifier from multiple connection identifiers, and determine the candidate connection identifier as the retransmission indication type identifier;
[0322] Select any one of the multiple connection identifiers, excluding the candidate connection identifier, as the non-retransmission indication type identifier;
[0323] Create a list of preset connection identifiers based on the retransmission indication type identifier and the non-retransmission indication type identifier.
[0324] As described above, this application provides multiple data transmission links for the data packets to be transmitted by the target application, instead of just one. Furthermore, it sets two transmission modes: multi-link concurrent transmission mode and multi-link aggregation transmission mode, instead of just one. Multi-link concurrent transmission mode uses multiple data transmission links to transmit data packets in parallel. This is suitable for transmitting important data packets, where if a packet is not received on one data transmission link, it can be received on other links, reducing packet loss probability and improving reliability. Multi-link aggregation transmission mode selects one data transmission link from multiple links to transmit data packets. Since only one data transmission link is selected, packet loss is irrecoverable, but multiple data transmission links transmit different data packets simultaneously, resulting in high transmission efficiency. This is more suitable for less important data packets. The data packets carry a target data packet type identifier. This identifier reflects the importance of the data packet. For critical data packets, selecting multi-link concurrent transmission mode can reduce the packet loss rate. For non-critical data packets, selecting multi-link aggregation transmission mode can improve the overall transmission efficiency of multiple data packets generated by the target application. The embodiments of this application achieve a good trade-off between data transmission reliability and data transmission efficiency.
[0325] The specific implementation of each of the above units can be found in the previous embodiments, and will not be repeated here.
[0326] See Figure 13 , Figure 13 This is a schematic diagram of the structure of a terminal provided in an embodiment of this application. It includes a structural block of the portion of the terminal 110 that implements the embodiment of this application. The terminal can be... Figure 1 The terminal 110 shown specifically includes: 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, among other components. Those skilled in the art will understand that the structure of the terminal 110 shown 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.
[0327] 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.
[0328] 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.
[0329] 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.
[0330] 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.
[0331] Audio circuit 560, speaker 561, and microphone 562 provide an audio interface.
[0332] In this embodiment, the processor 580 included in the terminal 110 can execute the data packet transmission method of the previous embodiment.
[0333] See Figure 14 , Figure 14 This is a schematic diagram of the server structure provided in an embodiment of this application, which includes a structural block of the server 120 implementing this embodiment. The server can be... Figure 1 The server 120 shown can vary significantly due to different configurations or performance. It may include one or more central processing units (CPUs) 622 (e.g., one or more processors) and 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 may 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 may include a series of instruction operations on the server 600. Furthermore, the CPU 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.
[0334] 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.
[0335] The central processing unit 622 in the server 600 can be used to execute the data packet transmission method of the embodiments of this application.
[0336] This application also provides a computer-readable storage medium for storing a computer program for executing the data packet transmission methods of the foregoing embodiments.
[0337] 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 packet transmission method described above.
[0338] 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.
[0339] 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.
[0340] 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.
[0341] 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.
[0342] 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.
[0343] 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.
[0344] 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.
[0345] It should also be understood that the various implementation methods provided in this application can be combined arbitrarily to achieve different technical effects.
[0346] 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.
[0347] 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 packet transmission method, characterized in that, include: Obtain the data packet of the target application, wherein the data packet carries a target data packet type identifier; Identify multiple data transmission links used to transmit the data packets; Based on the transmission mode determination rules, the target transmission mode corresponding to the target data packet type identifier is determined in the multi-link concurrent transmission mode and the multi-link aggregated transmission mode. The multi-link concurrent transmission mode is a transmission mode in which the data packet is transmitted in parallel using the multiple data transmission links, and the multi-link aggregated transmission mode is a transmission mode in which one data transmission link is selected from the multiple data transmission links to transmit the data packet. The data packet is transmitted according to the target transmission mode.
2. The method according to claim 1, characterized in that, The transmission mode determination rule includes a mapping relationship between a preset data packet type identifier and the multi-link concurrent transmission mode or the multi-link aggregated transmission mode. The step of determining the target transmission mode corresponding to the preset data packet type identifier based on the transmission mode determination rule, in the multi-link concurrent transmission mode and the multi-link aggregated transmission mode, includes: Read the pre-built multi-link concurrent transmission mode and multi-link aggregated transmission mode between the local machine and the target transmission gateway; Based on the transmission mode, the mapping relationship contained in the rules is determined, and a target transmission mode that maps to the target data packet type identifier is selected from the multi-link concurrent transmission mode and the multi-link aggregated transmission mode.
3. The method according to claim 1 or 2, characterized in that, The transmission of the data packet according to the target transmission mode includes: When the target transmission mode is the multi-link aggregation transmission mode, a target data transmission link is selected from the multiple data transmission links; The data packet is sent to the target transmission gateway through the target data transmission link.
4. The method according to claim 3, characterized in that, Selecting a target data transmission link from the plurality of data transmission links includes: Determine the generation time of the data packet, and determine the current waiting time of the data packet based on the generation time; When the waiting time exceeds a preset time threshold, the average transmission rate of each of the multiple data transmission links is determined, and the data transmission link with the highest average transmission rate is determined as the target data transmission link. When the waiting time is less than a preset time threshold, the average packet loss rate of each of the multiple data transmission links is determined, and the data transmission link with the lowest average packet loss rate is determined as the target data transmission link.
5. The method according to claim 1 or 2, characterized in that, The transmission of the data packet according to the target transmission mode includes: When the target transmission mode is the multi-link concurrent transmission mode, each of the multiple data transmission links is taken as the target data transmission link; The data packet is sent to each target data transmission link and then sent to the target transmission gateway in parallel through multiple target data transmission links.
6. The method according to any one of claims 2 to 5, characterized in that, The transmission of the data packet according to the target transmission mode includes: Based on the target data packet type identifier, a target connection identifier is selected for the data packet from the preset connection identifier list associated with the current business session of the target application; The target connection identifier is encapsulated with the data packet to obtain the target data packet; The target data packet is transmitted according to the target transmission mode.
7. The method according to claim 6, characterized in that, After transmitting the target data packet according to the target transmission mode, the method further includes: Obtain the data packet reception status returned by the target transmission gateway; When the data packet reception status indicates that the target data packet is missing, and the target connection identifier carried in the target data packet is a retransmission indication type identifier, the target data packet is retransmitted to the target transmission gateway according to the target transmission mode.
8. The method according to claim 6, characterized in that, The step of encapsulating the target connection identifier with the data packet to obtain the target data packet includes: Create an initial header corresponding to the target Fast Internet Connection Protocol, the initial header including at least a connection identifier field; The target header is obtained by filling the connection identifier field in the initial header with the target connection identifier; A target data packet is generated based on the target packet header and the data packet.
9. The method according to claim 6, characterized in that, Before obtaining the data packet of the target application, the method further includes: Determine the primary connection identifier assigned to the current service session for the target application, and create multiple connection identifiers associated with the primary connection identifier; Select at least one candidate connection identifier from the plurality of connection identifiers, and determine the candidate connection identifier as a retransmission indication type identifier; Any one of the multiple connection identifiers, excluding the candidate connection identifier, is determined as a non-retransmission indication type identifier; A preset connection identifier list is created based on the retransmission indication type identifier and the non-retransmission indication type identifier.
10. The method according to any one of claims 1 to 9, characterized in that, After transmitting the data packet according to the target transmission mode, the method further includes: Receive data packet congestion information fed back by the target transmission gateway, the data packet congestion information including the transmission delay duration of each data transmission link in the multiple data transmission links between the local device and the target transmission gateway; When the transmission delay of each data transmission link is greater than the preset delay threshold, the priority order relationship between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode is determined. Based on the priority order relationship, the link usage priority between the multi-link concurrent transmission mode and the multi-link aggregated transmission mode is determined; When a transmission conflict is detected between the data packets to be transmitted in the multi-link concurrent transmission mode and the multi-link aggregate transmission mode, the multiple data packets to be transmitted with transmission conflicts are sequentially transmitted to the target transmission gateway based on the transmission mode indicated by the link use priority.
11. The method according to any one of claims 1 to 10, characterized in that, Before obtaining the data packet of the target application, the method further includes: Obtain a list of preset connection identifiers allocated to the current business session for the target application, and generate a session connection request based on the list of preset connection identifiers; The session connection request is sent to the target transmission gateway, which then creates a multi-link concurrent transmission mode and a multi-link aggregated transmission mode based on multiple data transmission links, and establishes an association between the preset connection identifier list and the multi-link concurrent transmission mode and the multi-link aggregated transmission mode, respectively. When the association is identified as complete, it is confirmed that the multi-link concurrent transmission mode and the multi-link aggregate transmission mode have been successfully created for the current business session of the target application.
12. The method according to any one of claims 1 to 11, characterized in that, Before obtaining the data packet of the target application, the method further includes: Obtain multiple data level classifications of data packets for the target application, and assign a preset data packet type identifier to each data level classification; Establish a mapping relationship between each preset data packet type identifier and the multi-link concurrent transmission mode or the multi-link aggregated transmission mode to obtain the transmission mode determination rule; The transmission mode determination rule is sent to the target application, so that the target application adds a corresponding target data packet type identifier based on the data packet's data level classification according to the transmission mode determination rule.
13. A data packet transmission device, characterized in that, include: The acquisition unit is used to acquire data packets of the target application, wherein the data packets carry a target data packet type identifier; The first determining unit is used to determine multiple data transmission links used to transmit the data packet; The second determining unit is used to determine the target transmission mode corresponding to the target data packet type identifier in the multi-link concurrent transmission mode and the multi-link aggregated transmission mode based on the transmission mode determination rules. The multi-link concurrent transmission mode is a transmission mode in which the data packet is transmitted in parallel using the multiple data transmission links, and the multi-link aggregated transmission mode is a transmission mode in which 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 according to the target transmission mode.
14. A computer device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the data packet transmission method according to any one of claims 1 to 12.
15. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program adapted for loading by a processor to perform the data packet transmission method according to any one of claims 1 to 12.
16. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the data packet transmission method according to any one of claims 1 to 12.