Data transmission methods and related apparatus

By establishing two independent data transmission tunnels between terminal devices, the real-time functional interruption caused by transmission problems between terminal devices is solved, and more stable data transmission is achieved.

WO2025112798A9PCT designated stage expired Publication Date: 2025-07-17TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/118388
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-29
Filing Date
2024-09-12
Publication Date
2025-07-17

AI Technical Summary

Technical Problem

In the network connection between terminal devices, transmission problems will lead to delays in real-time functions, out-synchronization or interruption of audio and video, affecting the user experience, and the existing technology is difficult to effectively improve the stability of data transmission.

Method used

Two independent data transmission tunnels are established between terminal devices, a first data transmission tunnel is established through the first connection identification request, and a second data transmission tunnel is established through the second connection identification request. The dual data transmission tunnel is used to provide a fault-tolerant basis to ensure the stability of data transmission.

Benefits of technology

Even if there is a problem with one data transmission tunnel, the other tunnel can continue to transmit data, which significantly improves the stability and reliability of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024118388_17072025_PF_FP_ABST
    Figure CN2024118388_17072025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the present application are data transmission methods and a related apparatus. A method comprises: first initiating in a first network environment a connection request for a second terminal device to acquire a first connection identifier and a second connection identifier used for the first network environment, a first terminal device and the second terminal device being located in the first network environment, and the first network environment comprising a transmission gateway for forwarding a data packet; then, according to the first connection identifier, requesting to establish a first data transmission tunnel with the transmission gateway, and according to the second connection identifier, requesting to establish a second data transmission tunnel with the transmission gateway; and finally performing data transmission with the second terminal device by means of the first data transmission tunnel or the second data transmission tunnel. The present application can establish two independent data transmission tunnels between two terminal devices, such that an effective fault tolerance basis is provided due to the dual data transmission tunnels, thereby greatly improving the stability of data transmission.
Need to check novelty before this filing date? Find Prior Art

Description

A data transmission method and related device

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on November 29, 2023, application number 202311623452.0, and application name “A Data Transmission Method and Related Devices,” the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of data processing, and in particular to data transmission technology. Background Art

[0003] In a network environment, terminal devices can establish connections to transmit data and implement various real-time functions, such as video calls and voice interactions.

[0004] However, when transmission problems occur between terminal devices due to various reasons, it will seriously affect the realization of the above real-time functions, such as unbearable time delays, audio and video asynchrony, and even functional interruption.

[0005] Therefore, how to improve the stability of data transmission is an urgent problem that needs to be solved.

[0006] Summary of the Invention

[0007] In order to solve the above technical problems, the present application provides a data transmission method and related devices, which can establish two independent data transmission tunnels between two terminal devices. The dual data transmission tunnels provide an effective fault tolerance basis and greatly improve the stability of data transmission.

[0008] The embodiments of this application disclose the following technical solutions:

[0009] In one aspect, an embodiment of the present application provides a data transmission method, which is performed by a first terminal device and includes:

[0010] Initiating a connection request for a second terminal device in a first network environment to obtain a first connection identifier and a second connection identifier for the first network environment, wherein the first terminal device and the second terminal device are in the first network environment, and the first network environment includes a transmission gateway for forwarding data packets;

[0011] Requesting establishment of a first data transmission tunnel with the transmission gateway according to the first connection identifier, and requesting establishment of a second data transmission tunnel with the transmission gateway according to the second connection identifier;

[0012] Data is transmitted to the second terminal device through the first data transmission tunnel or the second data transmission tunnel.

[0013] On the other hand, an embodiment of the present application provides another data transmission method, which is performed by a forwarding node in a first network environment, including:

[0014] When obtaining a data packet sent by a first terminal device to a second terminal device, determining a connection identifier to be identified carried in the data packet, and the first terminal device and the second terminal device are in the first network environment;

[0015] In response to the to-be-identified connection identifier being a first connection identifier in a first connection identifier set, forwarding the data packet to the second terminal device through a target data transmission tunnel, where the target data transmission tunnel is a data transmission tunnel established between the second terminal device and the forwarding node through the first connection identifier;

[0016] In response to the connection identifier to be identified being the second connection identifier in the second connection identifier set, the data packet is forwarded to the transmission gateway in the first network environment through the second data transmission tunnel, so that the transmission gateway forwards the data packet to the second terminal device through the third data transmission tunnel.

[0017] On the other hand, an embodiment of the present application provides a data transmission device, which is deployed on a first terminal device and includes: an acquisition module, an establishment module, and a transmission module.

[0018] The acquisition module is configured to acquire a first connection identifier and a second connection identifier for a first network environment by initiating a connection request for a second terminal device in a first network environment, wherein the first terminal device and the second terminal device are in the first network environment, and the first network environment includes a transmission gateway for forwarding data packets;

[0019] The establishing module is configured to request establishment of a first data transmission tunnel with the transmission gateway according to the first connection identifier, and to request establishment of a second data transmission tunnel with the transmission gateway according to the second connection identifier;

[0020] The transmission module is used to transmit data with the second terminal device through the first data transmission tunnel or the second data transmission tunnel.

[0021] On the other hand, an embodiment of the present application provides another data transmission device, the device being deployed at a forwarding node in a first network environment, the device comprising: a determination module, a first forwarding module, and a second forwarding module;

[0022] The determining module is configured to, when acquiring a data packet sent by a first terminal device to a second terminal device, determine a connection identifier to be identified carried in the data packet, and the first terminal device and the second terminal device are in the first network environment;

[0023] the first forwarding module being configured to forward the data packet to the second terminal device through a target data transmission tunnel in response to the to-be-identified connection identifier being a first connection identifier in the first connection identifier set, the target data transmission tunnel being a data transmission tunnel established between the second terminal device and the forwarding node through the first connection identifier;

[0024] The second forwarding module is used to forward the data packet to the transmission gateway in the first network environment through the second data transmission tunnel in response to the connection identifier to be identified being the second connection identifier in the second connection identifier set, so that the transmission gateway forwards the data packet to the second terminal device through the third data transmission tunnel.

[0025] In another aspect, an embodiment of the present application provides a computer device, comprising a processor and a memory:

[0026] The memory is used to store computer programs and transmit computer programs to the processor;

[0027] The processor is configured to execute the above-described method according to the computer program.

[0028] In another aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium is used to store a computer program, and the computer program is used to execute the method described in the above aspects.

[0029] On the other hand, an embodiment of the present application provides a computer program product including a computer program, which, when executed on a computer device, enables the computer device to execute the method described in the above aspects.

[0030] It can be seen from the above technical solution that for the first terminal device and the second terminal device in the first network environment, when the first terminal device is ready to connect to the second terminal device, the first connection identifier and the second connection identifier can be obtained by initiating a connection request. The first terminal device respectively requests to establish the first data transmission tunnel and the second transmission tunnel between the transmission gateway in the first network environment based on the two connection identifiers. The first terminal device can select the first data transmission tunnel or the second data transmission tunnel based on the situation of the two data transmission tunnels to send a data packet for the second terminal device, in order to forward the data packet to the second terminal device in the first network environment through the transmission gateway. It can be seen that by establishing two independent data transmission tunnels between the two terminal devices in a single network environment, even if a transmission problem occurs in one data transmission tunnel, data transmission can continue through the other data transmission tunnel. The dual data transmission tunnel provides an effective fault tolerance basis and greatly improves the stability of data transmission. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0032] FIG1 is a schematic diagram of a data transmission method provided in an embodiment of the present application;

[0033] FIG2 is a flow chart of a data transmission method provided in an embodiment of the present application;

[0034] FIG3 is a schematic diagram of redundant transmission provided in an embodiment of the present application;

[0035] FIG4 is a schematic diagram of an aggregate transmission provided in an embodiment of the present application;

[0036] FIG5 is a schematic diagram of a multi-network transmission system architecture provided in an embodiment of the present application;

[0037] FIG6 is an architecture diagram of a 5G LAN provided in an embodiment of the present application;

[0038] FIG7 is a schematic diagram of the structure of a 5G LAN provided in an embodiment of the present application;

[0039] FIG8 is a schematic diagram of a QUIC protocol stack provided in an embodiment of the present application;

[0040] FIG9 is a schematic structural diagram of a QUIC data packet format provided in an embodiment of the present application;

[0041] FIG10 is a schematic diagram of a data transmission method in a multi-network scenario provided by an embodiment of the present application;

[0042] FIG11 is a signaling diagram of a data transmission method provided in an embodiment of the present application;

[0043] FIG12 is a signaling diagram of a data transmission method provided in an embodiment of the present application;

[0044] FIG13 is a schematic diagram of a data transmission device provided in an embodiment of the present application;

[0045] FIG14 is a schematic diagram of another data transmission device provided in an embodiment of the present application;

[0046] FIG15 is a schematic structural diagram of a data transmission system provided in an embodiment of the present application;

[0047] FIG16 is a structural diagram of a terminal device provided in an embodiment of the present application;

[0048] FIG17 is a structural diagram of a server provided in an embodiment of the present application. DETAILED DESCRIPTION

[0049] The embodiments of the present application are described below with reference to the accompanying drawings.

[0050] In current network transmission processes, devices can establish connections to transmit data, enabling real-time functionality between devices. However, during this process, the connection established between devices can experience unexpected issues, leading to data transmission problems. These issues prevent the required functionality between devices from being successfully implemented, impacting the user experience of the device users.

[0051] To this end, an embodiment of the present application proposes a data transmission method and related apparatus, wherein two independent data transmission tunnels are established between two terminal devices. The dual data transmission tunnels provide an effective fault-tolerance basis and greatly improve the stability of data transmission.

[0052] The data transmission method provided in the embodiments of the present application can be implemented by a computer device, which can be a terminal device or a server, wherein the server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud computing services. Terminal devices include but are not limited to mobile phones, computers, intelligent voice interaction devices, smart home appliances, vehicle-mounted terminals, aircraft, extended reality (XR) devices, etc. The terminal device and the server can be directly or indirectly connected via wired or wireless communication, and this application does not limit this. It can be applied to scenarios such as virtual humans, digital humans, games, and extended reality.

[0053] First, several noun terms that may be involved in the embodiments below in this application are explained.

[0054] Multi-network transmission system: There are various network environments that can be used to support network systems for data transmission between terminal devices. The data transmission method proposed in the embodiments of the present application can be used in a multi-network transmission system.

[0055] Multipath QUIC (MP-QUIC) is an improved version of the QUIC protocol. Its main feature is that it supports multiple data transmission tunnels and can use multiple data transmission tunnels to transmit data at the same time, thereby improving the reliability and efficiency of data transmission.

[0056] 5G Local Area Network (5G LAN) technology application: It is to use 5G technology to "group" and "build groups" of terminal devices to form a local area network (LAN).

[0057] FIG1 is a schematic diagram of a data transmission method provided in an embodiment of the present application, wherein the aforementioned computer device is a terminal device.

[0058] As shown in Figure 1, assuming that a first terminal device and a second terminal device are both in the same network environment, the first terminal device initiates a connection request to the second terminal device. Through this connection request, the first connection identifier and the second connection identifier of the first terminal device in the network environment can be obtained. The first terminal device requests to establish a first data transmission tunnel with the transmission gateway based on the first connection identifier, and requests to establish a second data transmission tunnel with the transmission gateway based on the second connection identifier. The first terminal device can transmit data to the second terminal device through the first data transmission tunnel or the second data transmission tunnel.

[0059] It should be noted here that the data transmission tunnel between the first terminal device and the transmission gateway requested to be established may include a forwarding node (not shown in the figure). The forwarding node can be used to identify the connection identifier to be identified carried in the data packet during the process of the first terminal device sending a data packet to the second terminal device, and determine to forward the data packet to the data transmission tunnel of the second terminal device based on the identification result to complete the data transmission between the first terminal device and the second terminal device.

[0060] FIG2 is a flow chart of a data transmission method provided in an embodiment of the present application. The method can be executed by a first terminal device. In this embodiment, the computer device mentioned above is the first terminal device.

[0061] The method comprises:

[0062] S201: Initiating a connection request for a second terminal device in a first network environment to obtain a first connection identifier and a second connection identifier for the first network environment.

[0063] A network environment is a type of wired or wireless transmission medium used to provide data transmission services, such as the fifth generation mobile communication technology (5G) and wireless network communication technology (WiFi). The first network environment mentioned in the embodiments of this application and the subsequent second network environment belong to different network environments.

[0064] In this embodiment, the first terminal device and the second terminal device are in the same network environment, such as the first network environment, and the first network environment includes a transmission gateway for data packet forwarding. In the first network environment, when the first terminal device initiates a connection request for the second terminal device, the first terminal device can obtain two connection identifiers applied to the first network environment. A connection identifier is used to uniquely identify a data transmission tunnel, and different connection identifiers are used to identify different data transmission tunnels. The first terminal device can request to establish a data transmission tunnel between the first terminal device and the second terminal device in the first network environment through the connection identifier. That is, different connection identifiers can correspond to different data transmission tunnels, and the first terminal device can request to establish different data transmission tunnels with the transmission gateway according to different connection identifiers.

[0065] The aforementioned transport gateway can be understood as a device or software that connects two different networks or protocols. It converts and relays data between the networks, ensuring they can communicate with each other. For example, a transport gateway can be a physical device such as a router, switch, or firewall, or a software entity such as protocol conversion software.

[0066] S202: Requesting to establish a first data transmission tunnel with the transmission gateway according to the first connection identifier, and requesting to establish a second data transmission tunnel with the transmission gateway according to the second connection identifier.

[0067] As mentioned above, different connection identifiers can correspond to different data transmission tunnels. Specifically, based on the first connection identifier, a request can be made to establish a first data transmission tunnel with the transmission gateway, and based on the second connection identifier, a request can be made to establish a second data transmission tunnel with the transmission gateway. The aforementioned connection identifier can be understood as an identifier that can be used to distinguish data transmission tunnels, and the data transmission tunnels requested to be established based on different connection identifiers are also different, that is, the first data transmission tunnel and the second data transmission tunnel are two different data transmission tunnels.

[0068] In other words, the connection identifier can be understood as a mark used to distinguish different data transmission tunnels. When a first terminal device transmits data to a second terminal device, it may send a data packet. The data packet sent by the first terminal device will carry a connection identifier, which can be the first connection identifier or the second connection identifier mentioned above. The connection identifier carried in the data packet determines the type of data transmission tunnel that the data packet will pass through.

[0069] That is, when the first terminal device sends a data packet to the second terminal device, the transmission path corresponding to the data packet will be determined in advance, which can be understood as the first data transmission tunnel or the second data transmission tunnel in the embodiment of the present application. When the first terminal device determines that the transmission path of the data packet is the first data transmission tunnel, the first connection identifier is assigned to the data packet according to the correspondence between the first data transmission tunnel and the first connection identifier. When the connection identifier carried by the data packet is the first connection identifier, it means that the data packet will complete data transmission with the second terminal device through the first data transmission tunnel; when the first terminal device determines that the transmission path of the data packet is the second data transmission tunnel, the second connection identifier is assigned to the data packet according to the correspondence between the second data transmission tunnel and the second connection identifier. When the connection identifier carried by the data packet is the second connection identifier, it means that the data packet will complete data transmission with the second terminal device through the second data transmission tunnel. It can be understood that the aforementioned "first" and "second" are only for the purpose of dividing terminal devices, connection identifiers and data transmission tunnels, and are not for expressing meanings such as priority, importance and sequence.

[0070] S203: Perform data transmission with the second terminal device through the first data transmission tunnel or the second data transmission tunnel.

[0071] In S202, a first data transmission tunnel is established with the transmission gateway using the first connection identifier, and a second data transmission tunnel is established with the transmission gateway using the second connection identifier. This means that in the current first network environment, two data transmission tunnels exist between the first terminal device and the second terminal device: the first data transmission tunnel and the second data transmission tunnel. When the first terminal device needs to transmit data to the second terminal device, the first terminal device can allocate a connection identifier to the data packet. The prerequisite for the first terminal device to allocate a connection identifier to the data packet is that the first terminal device has pre-determined the data transmission tunnel for the data packet.

[0072] For example, when a first terminal device needs to send a data packet to a second terminal device, if the first terminal device determines that the data packet needs to be transmitted through a first data transmission tunnel, a first connection identifier can be assigned to the data packet. When the data packet carries the first connection identifier, the data packet transmits data with the second terminal device through the first data transmission tunnel. If the first terminal device determines that the data packet needs to be transmitted through a second data transmission tunnel, a second connection identifier can be assigned to the data packet. When the data packet carries the second connection identifier, the data packet transmits data with the second terminal device through the second data transmission tunnel. In the data transmission tunnel, the identification of whether the connection identifier carried by the data is the first connection identifier or the second connection identifier can be implemented by a forwarding node, and then the forwarding node determines the data transmission tunnel of the data packet based on the identified identifier and forwards the data packet to the second terminal device to complete the data transmission between the first terminal device and the second terminal device.

[0073] The first terminal device, as mentioned above, establishes different data transmission tunnels with the transmission gateway based on different requests for the connection identifier. The establishment of different data transmission tunnels eliminates the need for a single transmission path for data transmission between the first and second terminal devices. A first data transmission tunnel, a second data transmission tunnel, or other data transmission tunnels may exist, thereby improving the reliability of data transmission between the first and second terminal devices. If a transmission failure occurs in one of the data transmission tunnels, data transmission between the first and second terminal devices can be restored by switching the data transmission tunnel.

[0074] By targeting the first terminal device and the second terminal device in the first network environment, when the first terminal device is ready to connect to the second terminal device, the first connection identifier and the second connection identifier can be obtained by initiating a connection request. The first terminal device respectively requests to establish the first data transmission tunnel and the second transmission tunnel between the transmission gateway in the first network environment based on the two connection identifiers. The first terminal device can select the first data transmission tunnel or the second data transmission tunnel based on the situation of the two data transmission tunnels to send a data packet for the second terminal device, in order to forward the data packet to the second terminal device through the transmission gateway in the first network environment. It can be seen that by establishing two independent data transmission tunnels between the two terminal devices in a single network environment, even if a transmission problem occurs in one data transmission tunnel, data transmission can continue through the other data transmission tunnel. The dual data transmission tunnel provides an effective fault tolerance basis and greatly improves the stability of data transmission.

[0075] In S202, it is mentioned that "a first data transmission tunnel is established with the transmission gateway according to the first connection identifier request, and a second data transmission tunnel is established with the transmission gateway according to the second connection identifier request". That is to say, the current first network environment includes two data transmission tunnels, and one of the data transmission tunnels can be arbitrarily selected for data transmission between terminal devices. Then it is necessary to determine the selection method for the two data transmission tunnels. In a possible implementation method, the "data transmission with the second terminal device through the first data transmission tunnel or the second data transmission tunnel" mentioned in S203 can be specifically as follows: in response to the first data transmission tunnel being available, data transmission is performed with the second terminal device through the first data transmission tunnel, and the transmitted data packet carries the first connection identifier. And in response to the first data transmission tunnel being unavailable, data transmission is performed with the second terminal device through the second data transmission tunnel, and the transmitted data packet carries the second connection identifier.

[0076] Specifically, when a first terminal device needs to transmit data to a second terminal device, it first needs to determine a data transmission tunnel for the data transmission. In an embodiment of the present application, when the first terminal device selects a data transmission tunnel, the first data transmission tunnel can be prioritized over the second data transmission tunnel. In other words, when both the first data transmission tunnel and the second data transmission tunnel exist, the first data transmission tunnel is prioritized. Only when the first data transmission tunnel is unavailable will the second data transmission tunnel be selected for data transmission.

[0077] That is, it is necessary to first determine whether the first data transmission tunnel is available. When it is determined that the first data transmission tunnel is available, the first terminal device can transmit data to the second terminal device through the first data transmission tunnel. When the first terminal device sends a data packet to the second terminal device, the data packet needs to carry the first connection identifier.

[0078] When it is determined that the first data transmission tunnel is unavailable, the first terminal device can perform data transmission with the second terminal device through the second data transmission tunnel. When the first terminal device sends a data packet to the second terminal device, the data packet needs to carry the second connection identifier.

[0079] It should be noted that the reason for setting the first data transmission tunnel to a higher priority is that the first data transmission tunnel can more efficiently implement data transmission between terminal devices compared with the second data transmission tunnel.

[0080] The above-provided method for prioritizing data transmission tunnels enables, when multiple data transmission tunnels exist between terminal devices, to prioritize the multiple data transmission tunnels based on factors such as application scenarios and data transmission efficiency. By determining the priorities, data transmission tunnels with better transmission performance can be preferentially selected during data transmission between terminal devices, thereby improving data transmission efficiency between terminal devices.

[0081] The above mentioned method for determining the priority between different data transmission tunnels. After the priority determination is completed, when the first terminal device determines the data transmission tunnel for data transmission of the data packet, it is necessary to judge the availability of the data transmission tunnel and determine whether it is necessary to switch to other data transmission tunnels based on the judgment result of the availability of the data transmission tunnel. Specifically, in one possible implementation, the method for determining the availability of the data transmission tunnel can be: first, when it is identified that the first data transmission tunnel is successfully established and not disconnected, it is determined that the first data transmission tunnel is available. Then, when it is identified that the first data transmission tunnel is not successfully established, or is successfully established but disconnected, it is determined that the first data transmission tunnel is unavailable.

[0082] Specifically, determining whether a data transmission tunnel is available primarily involves two factors: whether the data transmission tunnel is successfully established, and whether the data transmission tunnel is disconnected, assuming the data transmission tunnel is successfully established. The data transmission tunnel is considered available only if it is successfully established and not disconnected. If the data transmission tunnel is not successfully established, or if it is successfully established but disconnected, the data transmission tunnel is considered unavailable.

[0083] The above-mentioned determination of the availability of the data transmission tunnel is applicable to both the first data transmission tunnel and the second data transmission tunnel mentioned above. In practical applications, depending on the different priority orders between the first data transmission tunnel and the second data transmission tunnel, when the first data transmission tunnel takes precedence over the second data transmission tunnel, the availability of the first data transmission tunnel can be determined first. When it is determined that the first data transmission tunnel is unavailable, the availability of the second data transmission tunnel is determined. Of course, the availability of the first data transmission tunnel and the second data transmission tunnel can also be determined at the same time, but determining the availability of the two data transmission tunnels at the same time may occupy more computing resources in the same time period than determining the availability of the data transmission tunnels one by one according to the priority of the data transmission tunnels, but it is also a way to achieve availability determination.

[0084] The above-mentioned method for determining the availability of a data transmission tunnel can facilitate timely determination of whether the data transmission tunnel between terminal devices is available when data is transmitted between terminal devices, and then timely switching of the data transmission tunnel can be performed based on the judgment result, which can improve the efficiency of data transmission to a certain extent.

[0085] It should be noted that, as mentioned above, a connection identifier, such as a first connection identifier or a second connection identifier, is carried in a data packet. In a possible implementation, the connection identifier may be carried by a connection identifier field in a data packet header of the data packet. That is to say, a connection identifier field is included in the data packet header of the data packet, and the connection identifier field carries a first connection identifier or a second connection identifier for data transmission. The data packet header is the starting part of the data packet and contains control information of the data packet. Different fields of the data packet header can carry different control information, which is crucial for the transmission, routing, reception and processing of the data packet in the network environment. For example, in an embodiment of the present application, the connection identifier field in the data packet header can carry a first connection identifier or a second connection identifier, thereby indicating how the data packet is transmitted in the first network environment.

[0086] The connection identifier field in the data packet header can be used to carry the connection identifier directly, efficiently, accurately, and reliably, providing strong support for data transmission. This approach not only improves the efficiency and reliability of data transmission, but also simplifies the design and implementation of the protocol, reducing development and maintenance costs.

[0087] In addition to being applicable to situations where both the first terminal device and the second terminal device are in the first network environment, the data transmission method provided in the embodiments of the present application can also be applicable to situations where the first terminal device and the second terminal device are not only in the first network environment but also in other network environments. In one possible implementation, the first terminal device and the second terminal device are also in the second network environment and have a data transmission link in the second network environment.

[0088] The second network environment is different from the first network environment. For example, when the first network environment is a fifth-generation mobile communication technology network environment, the second network environment can be a wireless network communication technology network environment. That is, the data transmission method provided in the embodiment of the present application can be applied to the situation where the terminal device exists in multiple network environments at the same time. It is mentioned above that there is a data transmission link in the second network environment. The data transmission link can be understood as a channel for data transmission between terminal devices. For example, the data transmission link can be a local area network, that is, data can be transmitted between terminal devices through the local area network.

[0089] By placing the first terminal device and the second terminal device in both the first and second network environments, multi-network transmission of data between the terminal devices can be achieved. This expands the application scenarios of the data transmission method of this embodiment and covers multi-network transmission scenarios. Adding different network environments for data transmission can also increase the selectivity of data transmission methods, thereby reducing the error rate of data transmission to a certain extent.

[0090] The aforementioned situation where the terminal device is in multiple network environments at the same time can be understood as the terminal device being in a multi-network transmission system. Taking the terminal device being in the first network environment and the second network environment at the same time as an example, the situation where the terminal device is in a multi-network environment is specifically described.

[0091] First, let's take a closer look at multi-network transmission systems. Current applications generally operate on a single network, such as a 5G network or WiFi. However, due to issues like wireless network signal fluctuations and terminal mobility switching, the instability of a single wireless network can significantly impact services. For example, real-time games (such as MOBAs and RTS games) are highly sensitive to latency. Increased latency or jitter significantly degrades the user experience. Live streaming services, on the other hand, require stable network bandwidth. Insufficient network capacity or jitter can lead to decreased video bitrates or even lag.

[0092] Therefore, in order to improve the business experience, multi-network transmission can be used to solve the problem of unstable or unreliable performance of a single network. Common multi-network transmission solutions mainly include redundant transmission and aggregated transmission.

[0093] Specifically, redundant transmission can be understood as the 5G+WIFi redundancy function commonly introduced by game accelerator apps. The basic principle is as follows: in the uplink direction, the accelerator app of the terminal device will copy the game data packet and send it to the game acceleration gateway through 5G and WiFi links at the same time. The game acceleration gateway then performs deduplication processing and sends the correctly received data packet to the game server.

[0094] Figure 3 is a schematic diagram of redundant transmission provided by an embodiment of the present application. As shown in Figure 3, the principle of redundant transmission is that data packets are sent simultaneously on two network links, such as Packet 1 and Packet 2 in the figure. If any of the data packets are correctly transmitted, they can be successfully received, thereby reducing network latency and jitter. In other words, data transmission latency performance and reliability are guaranteed by consuming more network resources. Given that gaming services are not sensitive to packet loss, unreliable transmission mode is generally used.

[0095] The aggregation transmission solution is to distribute different data packets in the same service to different networks for transmission according to the quality of different network links. Figure 4 is a schematic diagram of an aggregation transmission provided by an embodiment of the present application. As shown in Figure 4, for the video data of the live stream, the multi-network transmission APP transmits packet 1 and packet 3 through the 5G network, while packet 2 and packet 4 are transmitted through the WiFi network. The multi-network transmission gateway performs aggregation processing, restores the original business data stream, and then transmits it to the final business source station, such as the live broadcast server shown in the figure.

[0096] The advantage of aggregated transmission is that it fully utilizes the capacity of both networks, providing greater network bandwidth for the business without redundant data transmission, thus saving network traffic. Generally, for RTMP-type live broadcasts based on the Transmission Control Protocol (TCP), reliable transmission mode can be used, while for RTC-type live broadcasts based on the UDP protocol, unreliable transmission mode can be used.

[0097] The following is an introduction to a typical multi-network transmission system architecture. Figure 5 is a schematic diagram of a multi-network transmission system architecture provided in an embodiment of the present application. As shown in Figure 5, the multi-network transmission system mainly consists of the following three parts: First, the end-side multi-network transmission unit, which can be a software, such as an SDK or an APP, or a hardware terminal device, such as the first terminal device and the second terminal device in the embodiment of the present application; Second, the multi-network transmission gateway, which is generally deployed in a distributed manner in the cloud, establishes a data transmission tunnel with the end-side multi-network transmission unit for multi-network transmission communication, and forwards the data to the final device (i.e., the second terminal device in the embodiment of the present application); Third, the multi-network transmission controller, which is generally centrally deployed in the cloud, and performs signaling interaction with the end-side multi-network transmission unit and the multi-network transmission gateway, and is mainly responsible for configuration management, authentication and other functions.

[0098] It can be seen that the multi-network transmission system is a standard Client-Server architecture. If two end-side multi-network transmission units want to communicate, they need to be transferred through a multi-network transmission gateway. In the embodiment of the present application, the end-side multi-network transmission unit is equivalent to the first terminal device and the second terminal device.

[0099] In an embodiment of the present application, when a first terminal device and a second terminal device are simultaneously in a first network environment and a second network environment, the first terminal device and the second terminal device can be considered to be in a multi-network transmission system. The multi-network transmission system includes a first data transmission tunnel, a second data transmission tunnel, and a data transmission link. The multi-network transmission system also includes a multi-network transmission controller. In this case, the first terminal device needs to obtain a connection identifier from the multi-network transmission controller.

[0100] In S201, it is mentioned that "a connection request is initiated for a second terminal device in a first network environment, and a first connection identifier and a second connection identifier for the first network environment are obtained." In one possible implementation, the method for obtaining the connection identifier may include: first, sending a connection request for the second terminal device to a multi-network transport controller in the first network environment. Then, obtaining the first connection identifier and the second connection identifier for the first network environment from the multi-network transport controller.

[0101] Specifically, when a first terminal device and a second terminal device are both in a multi-network transmission system, in the first network environment, the first terminal device initiates a connection request to the second terminal device. This connection request is sent to the multi-network transmission controller. The first terminal device needs to obtain a first connection identifier and a second connection identifier for the first network environment from the multi-network transmission controller. Based on the obtained connection identifiers, the first terminal device then establishes a corresponding data transmission tunnel with the transmission gateway.

[0102] The aforementioned method of obtaining a connection identifier from a multi-network transmission controller by a first terminal device enables data transmission between a first terminal device and a second terminal device in a multi-network transmission system. The multi-network transmission controller is responsible for configuring and managing the corresponding connection identifiers, allocating the first connection identifier and the second connection identifier to the first terminal device to facilitate the subsequent establishment of a data transmission tunnel.

[0103] An embodiment of the present application also provides a data transmission method, which can be executed by a forwarding node. In this embodiment, the aforementioned computer device is a forwarding node.

[0104] The method comprises:

[0105] S301: When obtaining a data packet sent by a first terminal device to a second terminal device, determining a connection identifier to be identified carried in the data packet.

[0106] The above-mentioned first terminal device and second terminal device are both in the first network environment. The connection identifier to be identified can be understood as a connection identifier that is pre-allocated to the data packet according to the determined data transmission tunnel when the first terminal device determines to send a data packet to the second terminal device, or a pre-configured connection identifier. When the first terminal device determines that the data transmission tunnel of the data packet is the first data transmission tunnel, the first connection identifier is allocated to the data packet; when the first terminal device determines that the data transmission tunnel of the data packet is the second data transmission tunnel, the second connection identifier is allocated to the data packet. After the allocation of the connection identifier to be identified is completed, the data packet will be transmitted in the data transmission tunnel corresponding to the connection identifier to be identified. During the transmission process of the data packet, when passing through the forwarding node, the forwarding node identifies the connection identifier to be identified, and then determines the data transmission tunnel for forwarding the data packet to the second terminal device, thereby realizing data transmission between the first terminal device and the second terminal device.

[0107] That is to say, the forwarding node needs to identify the connection identifier to be identified carried in the data packet, and determine whether the connection identifier to be identified carried in the data packet is the first connection identifier or the second connection identifier.

[0108] S302: In response to the connection identifier to be identified being the first connection identifier in the first connection identifier set, forward the data packet to the second terminal device through the target data transmission tunnel.

[0109] As mentioned above, different connection identifiers can correspond to different data transmission tunnels. Therefore, connection identifiers belonging to the same connection identifier set will correspond to the same data transmission tunnel. For example, assuming there is a first connection identifier set and a second connection identifier set, and as mentioned above, a first terminal device requests to establish a first data transmission tunnel with a transmission gateway based on the first connection identifier, and requests to establish a second data transmission tunnel with the transmission gateway based on the second connection identifier. In other words, the first connection identifier will correspond to the first data transmission tunnel, and the second connection identifier will correspond to the second data transmission tunnel.

[0110] The connection identifiers in the first connection identifier set are used to establish corresponding first data transmission tunnels and target data transmission tunnels for each terminal device, and the connection identifiers in the second connection identifier set are used to establish corresponding second data transmission tunnels and third data transmission tunnels for each terminal device.

[0111] When the forwarding node identifies that the connection identifier to be identified carried by the data packet belongs to the first connection identifier in the first connection identifier set, the data packet can be forwarded to the second terminal device via the target data transmission tunnel. The target data transmission tunnel can be understood as a data transmission tunnel established between the second terminal device and the forwarding node via the first connection identifier. In other words, data transmission from the forwarding node to the second terminal device can be achieved via the target data transmission tunnel.

[0112] When a second terminal device transmits data to a first terminal device, the second terminal device can determine the data transmission tunnel for the data packet and assign a data identifier to the data packet based on the determined data transmission tunnel. The data transmission tunnels established between the second terminal device and the transmission gateway are the target data transmission tunnel and the third data transmission tunnel. When the second terminal device determines that the data transmission tunnel for the data packet is the target data transmission tunnel, it needs to assign a first data connection identifier to the data packet; when the second terminal device determines that the data transmission tunnel for the data packet is the third data transmission tunnel, it needs to assign a second data connection identifier to the data packet.

[0113] When the forwarding node identifies that the connection identifier to be identified carried by the data packet belongs to the first connection identifier in the first connection identifier set, the data packet can be forwarded to the first terminal device via the first data transmission tunnel. In other words, data transmission from the forwarding node to the first terminal device can be achieved via the first data transmission tunnel. When the forwarding node identifies that the connection identifier to be identified carried by the data packet belongs to the second connection identifier in the second connection identifier set, the data packet can be forwarded from the transmission gateway to the first terminal device via the second data transmission tunnel.

[0114] S303: In response to the connection identifier to be identified being the second connection identifier in the second connection identifier set, forwarding the data packet to the transmission gateway in the first network environment through the second data transmission tunnel, so that the transmission gateway forwards the data packet to the second terminal device through the third data transmission tunnel.

[0115] When the forwarding node identifies that the connection identifier to be identified carried by the data packet belongs to a second connection identifier in the second connection identifier set, the data packet can be forwarded to the second terminal device via the third data transmission tunnel. The third data transmission tunnel can be understood as a data transmission tunnel established between the second terminal device and the transmission gateway. In other words, data transmission between the transmission gateway and the second terminal device can be achieved via the third data transmission tunnel.

[0116] It should be noted that the forwarding node can be understood as a "checkpoint" set between the first data transmission tunnel and the second data transmission tunnel, that is, in the data transmission between the first terminal device and the transmission gateway. When a data packet is transmitting data in the aforementioned first data transmission tunnel or the second data transmission tunnel, it will encounter "interception" by the forwarding node. The forwarding node identifies the connection identifier to be identified in the data packet and performs different forwarding operations on the data packet based on the identification result. Different forwarding operations correspond to different data transmission tunnels. When it is determined that the connection identifier to be identified in the data packet belongs to the first connection identifier, the target data transmission tunnel is used to forward the data packet to the second terminal device; when it is determined that the connection identifier to be identified in the data packet belongs to the second connection identifier, the third data transmission tunnel is used to forward the data packet to the second terminal device.

[0117] The difference between the target data transmission tunnel and the third data transmission tunnel is that the starting point of the target data transmission tunnel is the forwarding node, while the starting point of the third data transmission tunnel is the transmission gateway. It can be seen from here that when the forwarding node recognizes that the connection identifier to be identified in the data packet belongs to the first connection identifier, it will interrupt the continued transmission of the data packet from the first terminal device to the transmission gateway, that is, it "intercepts" the data packet, and directly forwards it to the second terminal device through the target data transmission tunnel by the forwarding node. When the forwarding node recognizes that the connection identifier to be identified in the data packet belongs to the second connection identifier, it will continue to transmit the data packet from the first terminal device to the transmission gateway, that is, it "releases" the data packet. After the data packet is transmitted to the transmission gateway, the transmission gateway will forward it to the second terminal device through the third data transmission tunnel.

[0118] When the first terminal device establishes the first data transmission tunnel based on the obtained first connection identifier, the first terminal device believes that the first data transmission tunnel established is a data transmission tunnel from the first terminal device to the transmission gateway. In fact, the first data transmission tunnel established by the first terminal device is a data transmission tunnel from the first terminal device to the second terminal device. The data transmission tunnel from the first terminal device to the second terminal device includes the first data transmission tunnel and the target data transmission tunnel. That is, the first data transmission tunnel and the target data transmission tunnel are both data transmission tunnels established by the first terminal device through the first connection identifier. The data packet sent by the first terminal device will pass through the forwarding node when transmitting data through the first data transmission tunnel, and will be "intercepted" by the forwarding node and forwarded through the target data transmission tunnel to realize data transmission between the first terminal device and the second terminal device.

[0119] For example, assuming that the first terminal device is a 5G terminal device that desires branch transmission via 5G LAN technology but does not support 5G LAN technology. When the 5G terminal device establishes a first data transmission tunnel based on the first data identifier, the 5G terminal device will believe that the data transmission tunnel is established with the transmission gateway. In this case, the 5G terminal device can complete the establishment of the data transmission tunnel (between the terminal device and the transmission gateway) regardless of whether it supports 5G LAN technology.

[0120] In fact, the data transmission tunnel established by the 5G terminal device based on the first data identifier is a data transmission tunnel from the 5G terminal device to the second terminal device. In the process of data transmission using the first data transmission tunnel, the forwarding node of the 5G LAN technology will pass through. When the 5G terminal device uses the established data transmission tunnel for data transmission, the forwarding node will "intercept" the transmitted data packet and determine whether the data packet can support 5G LAN technology for data transmission. For data packets that can support 5G LAN technology for transmission, 5G LAN technology (that is, using the target data transmission tunnel) is used to forward the data packet to the second terminal device. In this way, for 5G terminal devices that want to use 5G LAN technology for branch transmission but do not support 5G LAN technology themselves, 5G LAN technology can also be used for branch interconnection through the forwarding node in the established data transmission tunnel.

[0121] As mentioned above, when the forwarding node identifies the connection identifier carried in a data packet as a second connection identifier from the second set of connection identifiers, it "passes" the data packet, allowing it to continue transmitting to the transmission gateway via the second data transmission tunnel. Once the data packet reaches the transmission gateway, the transmission gateway performs further forwarding operations to ensure smooth transmission to the second terminal device.

[0122] The aforementioned forwarding operation by the transport gateway requires the use of the "third data transmission tunnel" mentioned in S103. This third data transmission tunnel can be understood as a data transmission tunnel established between the transport gateway and the second terminal device via a third connection identifier. This third data transmission tunnel enables data packet forwarding from the transport gateway to the second terminal device, enabling data transmission between the first and second terminal devices.

[0123] It should be noted that the third connection identifier and the second connection identifier both belong to the second connection identifier set. When a data packet is forwarded from the transmission gateway to the second terminal device through the third data transmission tunnel, the data packet carries the third connection identifier. Specifically, when the data packet is in the transmission gateway, the transmission gateway can determine the data transmission tunnel corresponding to the next forwarding operation of the data packet by parsing the information carried in the data packet. The information carried in the data packet includes information about the data transmission tunnel that needs to be passed through for data transmission between the first terminal device and the second terminal device.

[0124] When the transport gateway determines that the data transmission tunnel corresponding to the next forwarding of the data packet is the third data transmission tunnel, the transport gateway assigns a third connection identifier to the data packet. When the data packet is forwarded to the second terminal device through the third data transmission tunnel, it carries the third connection identifier. This third connection identifier can be used to indicate that the data transmission tunnel through which the data packet will pass is the third data transmission tunnel.

[0125] The aforementioned third data transmission tunnel enables data packet forwarding from the transmission gateway to the second terminal device. By configuring a third connection identifier for the data packet, the transmission gateway can indicate that the data packet is forwarded through the third data transmission tunnel. This enables data transmission between the first terminal device and the second terminal device.

[0126] As mentioned above, when a forwarding node identifies a data packet as carrying a connection identifier to be identified as the first connection identifier in the first connection identifier set, the forwarding node intercepts the data packet and forwards it directly to the second terminal device via the target data transmission tunnel, ensuring smooth transmission of the data packet to the second terminal device. During the forwarding of the data packet to the second terminal device via the target data transmission tunnel, switching between the public network address and the intranet address is required.

[0127] Regarding the aforementioned S102, "forwarding the data packet to the second terminal device via the target data transmission tunnel," in one possible implementation, the method for forwarding the data packet via the target data tunnel may include first querying the intranet access address corresponding to the public network destination address of the second terminal device carried in the data packet, then replacing the public network destination address in the data packet with the intranet access address to obtain a replaced data packet, and forwarding the replaced data packet to the second terminal device via the target data transmission tunnel.

[0128] The public network destination address mentioned above refers to the address of the second terminal device in the entire network environment, and the intranet access address refers to the corresponding address when accessing the second terminal device within the local area network where the second terminal device is located. When the forwarding node recognizes that the connection identifier to be identified carried by the data packet is the first connection identifier, it means that the forwarding node needs to forward the data according to the target data transmission tunnel, which means that the data transmission path needs to be converted from public network data transmission to the transmission gateway to intranet transmission directly from the forwarding node to the second terminal device. Therefore, it is necessary to convert the public network destination address of the second terminal device carried in the data packet into the corresponding intranet access address, and then realize the access and data transmission of the data packet to the second terminal device through the target data transmission tunnel.

[0129] There is a correspondence between the public network destination address and the intranet access address mentioned above. The intranet access address of the second terminal device can be determined through the public network destination address of the second terminal device carried in the data packet and the aforementioned correspondence.

[0130] As mentioned above, when the forwarding node forwards a data packet to the second terminal device via the target data transmission tunnel, the public network destination address of the second terminal device carried in the data packet is converted into an intranet access address. This allows the data packet to access the second terminal device via the converted intranet access address and complete data transmission when the target data transmission tunnel is an intranet data transmission channel.

[0131] As mentioned above, when the connection identifier carried in the data packet is the first connection identifier, when data is transmitted to the transmission gateway through the first data transmission tunnel, it will be "intercepted" by the forwarding node and forwarded by the forwarding node to the second terminal device through the target data transmission tunnel. During the forwarding process at the forwarding node, the public network destination address of the second terminal device carried in the data packet will be converted into an intranet access address. It should be noted that at this time, the intranet access address is carried in the data packet, and there is a correspondence between the intranet access address and the first connection identifier.

[0132] In one possible manner, the correspondence between the first connection identifier and the intranet access address may be saved. The aforementioned correspondence is used to determine the corresponding intranet access address through the correspondence when a data packet carrying the first connection identifier is acquired next time.

[0133] That is, when a data packet is forwarded to the second terminal device through the target data transmission tunnel, the correspondence between the second terminal device's intranet access address carried in the data packet and the first connection identifier previously carried in the first data packet can be stored. Then, the next time the forwarding node receives a data packet carrying the stored first connection identifier, it can determine the corresponding intranet access address of the second terminal device based on the previously stored correspondence between the first connection identifier and the intranet access address.

[0134] By storing the aforementioned correspondence between the first connection identifier and the intranet access address, when a data packet carrying the first connection identifier is acquired, the intranet access address of the corresponding second terminal device can be determined based on the correspondence, and the data packet can directly access the second terminal device and complete the data transmission. This avoids repeated acquisition of the intranet access address of the second terminal device, thereby improving the efficiency of data packet forwarding.

[0135] Through the data transmission method performed by the forwarding node mentioned above, the forwarding node can identify the connection identifier to be identified carried in the data packet when obtaining the data packet sent by the first terminal device to the second terminal device, and determine the subsequent data transmission tunnel for the data packet based on the identification result, so that the data packet can be smoothly forwarded to the second terminal device, completing the data transmission between the first terminal device and the second terminal device. Through the forwarding node, it is possible to "diverge" the data packet according to the type of the connection identifier to be identified. The forwarding node can determine the subsequent data transmission tunnel of the data packet by identifying the connection identifier to be identified carried by the data packet, and can realize branch transmission under the same network environment, so that the data transmission tunnel between the first terminal device and the second terminal device can be selectively referenced according to the different connection identifiers.

[0136] It is mentioned above that the first terminal device and the second terminal device are in the same first network environment. In one possible implementation method, in an embodiment of the present application, the first network environment can be determined as a fifth-generation mobile communication technology 5G environment, and the first data transmission tunnel can be determined as a 5G local area network tunnel. Then at this time, the priority of the first data transmission tunnel is set to be higher than the second data transmission tunnel, which means that when data is transmitted between the first terminal device and the second terminal device, the 5G local area network tunnel can be used preferentially. The reason is that the use of a 5G local area network tunnel can enable branch interconnection between various terminal devices for data transmission.

[0137] That is, when the first terminal device obtains the first connection identifier for the first network environment (fifth-generation mobile communication technology 5G environment), the corresponding first data transmission tunnel is a 5G local area network (5G LAN) tunnel. That is, 5G LAN is used to realize data transmission between the first terminal device and the second terminal device.

[0138] Next, we will introduce the 5G LAN technology in detail. 5G LAN uses 5G technology to "group" and "build groups" of terminals to form a LAN network. Figure 6 is an architectural diagram of a 5G LAN provided in an embodiment of the present application. As shown in Figure 6, in the 5G network, the administrator can modify the data in the user database (the Unified Data Management (UDM) network element) and sign up for services for the specified terminal (UE) numbers, thereby dividing them into the same or different virtual network groups (Virtual Network Group, VN Group). The data center will provide the VN group information of the terminal number (such as VN Group 1 and VN Group N in the figure) and access policies to the management network elements (Session Management Function (SMF), Access and Mobility Management Function (AMF), Policy Control Function (PCF), etc.) of the 5G core network (5GC). Based on this information and policy rules, the management network element organizes them into different LANs. This is 5G LAN. On the network side, the 5G LAN system consists of a 5G LAN controller (typically implemented by the AMF network element) and a 5G LAN forwarding unit (typically implemented by the User Plane Function (UPF) network element). Data exchange between the 5G LAN and the 5G core network requires a connection established through a 5G base station.

[0139] FIG7 is a schematic diagram of the structure of a 5G LAN provided in an embodiment of the present application. As shown in FIG7 , 5G LAN supports direct access to each other through Layer 2 communication within the same network segment, thereby realizing local networking, which can help enterprises, schools, homes, and other users better interconnect terminal devices within the region. For example, it can serve as a supplement to the enterprise's traditional dedicated line network to connect branches in different locations.

[0140] Currently, there is a problem that 5G terminal devices want to use 5G LAN technology for branch transmission, but the 5G terminal devices themselves cannot support 5G LAN technology. In an embodiment of the present application, the solution to the above problem is: establish a data transmission tunnel for the 5G terminal device, and at the same time make the 5G terminal device believe that the data transmission tunnel is established between the transmission gateway. Then, at this time, the 5G terminal device can complete the establishment of the data transmission tunnel (between the terminal device and the transmission gateway) regardless of whether it supports 5G LAN technology. In fact, the established data transmission tunnel will pass through the forwarding node of 5G LAN technology. When the 5G terminal device uses the established data transmission tunnel for data transmission, the forwarding node will "intercept" the transmitted data packet and determine whether the data packet can support 5G LAN technology for data transmission. For data packets that can support 5G LAN technology, 5G LAN technology is used to forward data packets. In this way, for 5G terminal devices that want to use 5G LAN technology for branch transmission but do not support 5G LAN technology themselves, 5G LAN technology can also be used to implement branch interconnection through the forwarding node in the established data transmission tunnel.

[0141] By setting the first network environment to a 5G network environment and the first data transmission tunnel to a 5G local area network tunnel, a 5G terminal device that desires branch transmission via 5G LAN technology but does not itself support 5G LAN technology can "intercept" and forward data packets via a 5G LAN technology forwarding node in the data transmission tunnel, thereby achieving branch interconnection with other terminal devices using 5G LAN technology.

[0142] As previously mentioned, a data packet carries a connection identifier. In one possible implementation, the connection identifier may be carried in a connection identifier field in a data packet header. That is, the data packet header includes a connection identifier field, and the connection identifier field carries a first connection identifier or a second connection identifier used for data transmission.

[0143] At the same time, in one possible implementation, the first data transmission tunnel and the second data transmission tunnel may be established based on the Multi-channel User Datagram Network Connection Protocol MP-QUIC. In this case, the data packet sent by the aforementioned first terminal device to the second terminal device is a QUIC data packet. The QUIC data packet header of the aforementioned QUIC data packet includes a connection identification field, which carries the first connection identifier or the second connection identifier used for data transmission.

[0144] The following is a detailed introduction to the aforementioned MP-QUIC protocol. The MP-QUIC protocol already includes basic functions such as packet encapsulation, packet loss recovery, buffer management, and multipath management. MP-QUIC is a multipath version of the single-path QUIC (Quick UDP Internet Connections). QUIC is primarily designed to address practical issues encountered with the TCP protocol, such as head-of-line blocking, inefficient congestion control, disconnection due to IP / PORT changes, three-way handshake overhead, and inefficient out-of-band control. To address these TCP-based transmission pain points, a new transport protocol based on UDP (User Datagram Protocol) was designed, called QUIC. In summary, QUIC can be considered a TCP alternative. Based on UDP, it generally runs in user mode. QUIC's advantages include: 1RTT connection establishment (0RTT direct packet transmission with a PSK cache); flexible congestion control mechanisms with customizable congestion control algorithms; multiplexing to alleviate head-of-line blocking; support for connection migration; and superior performance compared to TCP. Multipath QUIC is an extension of QUIC. MP-QUIC was designed with the following considerations: (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, round-trip time (RTT) measurement, and path maximum transmission unit (PMTU) detection are implemented on a per-physical link basis; (4) paths are uniquely identified by IP quads. Figure 8 is a schematic diagram of a QUIC protocol stack provided by an embodiment of the present application. As shown in Figure 8, the diagram includes: an application layer (Application), a security architecture (Security), a transport layer (Transport), and a network layer (Network). The application layer includes the HTTP / 2 protocol and the QUIC protocol, the security architecture includes the Transport Layer Security (TLS) protocol and the QUIC protocol, the transport layer includes the TCP protocol, the UDP protocol, and the QUIC protocol, and the network layer includes the IP protocol. It can be seen that QUIC replaces most of the traditional HTTPS protocol stack: Hypertext Transfer Protocol Version 2 (HTTP / 2), Transport Layer Security (TLS), and TCP.

[0145] Generally, the QUIC protocol provides a secure, multiplexed connection for transmitting reliable streams of application data. Reliable application data is sent using STREAM frames. However, some applications, especially those that need to transmit real-time data, are more suitable for unreliable data transmission. Therefore, QUIC is extended to support unreliable data transmission, that is, the Datagram frame type is newly defined. Transmitting unreliable data through QUIC has the following advantages: (1) Reliable QUIC streams and unreliable QUIC packets can share handshakes and authentication, which can reduce handshake latency compared to using TLS / DTLS packet transport layer security protocol (Datagram Transport Layer Security, DTLS) connections; (2) QUIC uses a more detailed packet loss recovery mechanism than DTLS handshakes, which can make QUIC data packet loss recovery faster; (3) Although QUIC packets are unreliable, they can support confirmation, so that applications can know whether the packets have been successfully received; (4) QUIC has a congestion control mechanism. These features are very useful for optimizing gaming applications and other real-time applications (such as RTC-type audio / video streaming applications).

[0146] The format of a QUIC packet consists of two parts: header and data. Figure 9 is a schematic diagram of the structure of a QUIC packet format provided in an embodiment of the present application. As shown in Figure 9, the header is in plain text and contains four fields: Flags, Connection ID, QUIC Version, and Packet Number. The data is encrypted and can contain one or more frames. Each frame is divided into type and payload, where the payload is the application data.

[0147] Then at this time, when the data packet is a QUIC data packet, the connection identification field can be the Connection ID (connection ID) in the QUIC data packet header (i.e. Header) of the QUIC data packet, that is, CID. The CID can be divided into the CID1 set (i.e. the first connection identification set) and the CID2 set (i.e. the second connection identification set). Then at this time, according to the CID in the CID1 set (i.e. the first connection identification), a request can be made to establish a first data transmission tunnel with the transmission gateway, and according to the CID in the CID2 set (i.e. the second connection identification), a request can be made to establish a second data transmission tunnel with the transmission gateway. When the first data transmission tunnel is a 5G LAN tunnel, it means that when the data packet carries the CID (first connection identification) in the CID1 set, the data packet will transmit data through the 5G LAN tunnel.

[0148] By dividing the original CID field in the QUIC data packet into sets as mentioned above and allocating the CID field to the data packet, it is possible to determine the data transmission tunnel for the data packet transmission. When the terminal device hopes that the data packet can realize branch interconnection through 5G LAN technology, assuming that the first data transmission tunnel is set as a 5G local area network tunnel, then it is only necessary to modify the CID field in the data packet to the CID in the CID1 set (i.e., the first connection identifier), which can realize the branch interconnection of 5G LAN between terminal devices at a relatively low modification cost.

[0149] An embodiment of the present application also provides a data transmission method in a multi-network scenario. FIG10 is a schematic diagram of a data transmission method in a multi-network scenario provided by an embodiment of the present application. As shown in FIG10 , in this scenario, the end-side multi-network transmission unit 1 and the end-side multi-network transmission unit 2 are simultaneously in the network environments of 5G network 1 and network 2. As described above in the introduction to the multi-network transmission system, the multi-network transmission system includes a multi-network transmission controller and an end-side multi-network transmission unit, i.e., a multi-network transmission gateway.

[0150] In a multi-network transmission system in a multi-network scenario, the multi-network transmission controller needs to allocate connection identifiers for the end-side multi-network transmission unit. Specifically, the multi-network transmission controller divides the CID field in QUIC, where the CID1 set (assuming that there are 20,000 CID fields, from 0-19999, then 0-9999) is used for end-to-end branch interconnection communication, and the CID2 set (such as 10000-19999) is used for traditional terminal-gateway communication. In an embodiment of the present application, the CID1 set is the first connection identifier set mentioned above, the CID2 set is the second connection identifier set mentioned above, the end-side multi-network transmission unit 1 is equivalent to the first terminal device mentioned above, and the end-side multi-network transmission unit 2 is equivalent to the second terminal device mentioned above.

[0151] When end-side multi-network transmission unit 1 needs to transmit data with end-side multi-network transmission unit 2, end-side multi-network transmission unit 1 first notifies the multi-network transmission controller that it needs to conduct end-to-end branch interconnection communication with end-side multi-network transmission unit 2. In response to the request from the end-side multi-network transmission unit, the multi-network transmission controller randomly selects a CID value from the CID1 set and the CID2 set, respectively, denoted as N1 (first connection identifier) ​​and M1 (second connection identifier), and allocates it to end-side transmission unit 1. It also randomly selects a CID value from the CID2 set, denoted as M2, and allocates it to end-side multi-network transmission unit 2.

[0152] The multi-network transmission controller transmits information of the CID1 set and the CID2 set to the 5G LAN controller.

[0153] The multi-network transmission controller notifies the end-side multi-network transmission unit 1 and the multi-network transmission gateway to establish a QUIC tunnel with CID = M1; notifies the end-side multi-network transmission unit 2 and the multi-network transmission gateway to establish a QUIC tunnel with CID = M2; and notifies the end-side multi-network transmission unit 1 and the end-side multi-network transmission unit 2 to establish a QUIC tunnel with CID = N1. The multi-network transmission controller will notify the end-side multi-network transmission unit 1 of the public network IP and port number of the end-side multi-network transmission unit 2, and vice versa. All three QUIC tunnels established above need to pass through the 5G LAN forwarding unit.

[0154] When the end-side multi-network transmission unit 1 sends a data packet to the 5G LAN forwarding unit through the 5G network 1, the 5G LAN forwarding unit intercepts the data packet and determines the set to which the connection identifier carried by the data packet belongs based on the information of the CID1 set and the CID2 set recorded in the 5G LAN controller.

[0155] If the data packet is identified as a QUIC data packet carrying a CID belonging to CID2 (CID is transmitted in plain text), it will pass through the multi-network transmission gateway normally and then be forwarded to the end-side multi-network transmission unit 2 through the QUIC tunnel with CID=M2; if the data packet is identified as a QUIC data packet carrying a CID belonging to CID1, the 5G LAN forwarding unit will reversely check the intranet IP and port number corresponding to the destination public IP and port number, and replace the destination public IP and port with the intranet IP and port of the end-side multi-network transmission unit 2, and then forward it through 5G LAN technology. At the same time, the 5G LAN forwarding unit will record the intranet IP and port number corresponding to this CID to avoid repeated queries next time.

[0156] It should be noted that the above mentioned establishment of a QUIC tunnel with CID=M1 between the end-side multi-network transmission unit 1 and the multi-network transmission gateway (i.e. the aforementioned second data transmission tunnel); establishment of a QUIC tunnel with CID=M2 between the end-side multi-network transmission unit 2 and the multi-network transmission gateway (i.e. the aforementioned third data transmission tunnel); and establishment of a QUIC tunnel with CID=N1 between the end-side multi-network transmission unit 1 and the end-side multi-network transmission unit 2 (i.e. the aforementioned first data transmission tunnel (ending at the 5G LAN forwarding unit) + target data transmission tunnel). When it is determined that the QUIC tunnel with CID=N1 between the end-side multi-network transmission unit 1 and the end-side multi-network transmission unit 2 is successfully established, the QUIC tunnel with CID=N1 is preferentially used for data transmission between the end-side multi-network transmission unit 1 and the end-side multi-network transmission unit 2.

[0157] If the QUIC tunnel with CID=N1 between the end-side multi-network transmission unit 1 and the end-side multi-network transmission unit 2 is not successfully established or the link is broken, the end-side multi-network transmission unit 1 uses the QUIC tunnel with CID=M1 for transmission. When the data packet is transmitted using the QUIC tunnel with CID=M1, the 5G LAN forwarding unit intercepts the data packet when passing through the 5G LAN forwarding unit and determines the set to which the connection identifier carried by the data packet belongs based on the information of the CID1 set and the CID2 set recorded in the 5G LAN controller. When it is determined that the connection identifier carried by the data packet belongs to the CID2 set, the data packet will be "released" to continue data transmission on the QUIC tunnel with CID=M1. After the multi-network transmission gateway receives the data, it is transmitted to the end-side multi-network transmission unit 2 through the QUIC tunnel with CID=M2. When the end-side multi-network transmission unit 2 transmits data to the end-side multi-network transmission unit 1, the process is similar to that described above and will not be repeated here.

[0158] In one possible implementation, FIG11 is a signaling diagram of a data transmission method provided in an embodiment of the present application. As shown in the figure, the method specifically includes:

[0159] S11: Initiate a connection request.

[0160] When the first terminal device and the second terminal device are both in the first network environment, if the first terminal device needs to transmit data to the second terminal device, it first needs to initiate a connection request to the second terminal device.

[0161] S12: Obtain a connection identifier.

[0162] After the first terminal device initiates a request to the second terminal device, it needs to obtain the first connection identifier and the second connection identifier for the first network environment.

[0163] S13: Establish a data transmission tunnel.

[0164] After the first terminal device obtains the first connection identifier and the second connection identifier, it needs to establish a data transmission tunnel with the transmission gateway based on the above two data connection identifiers. Specifically, it requests to establish a first data transmission tunnel with the transmission gateway based on the first connection identifier, and requests to establish a second data transmission tunnel with the transmission gateway based on the second connection identifier.

[0165] S14: Send a data packet to the second terminal device.

[0166] After the data transmission tunnel is established, the first terminal device sends a data packet to the second terminal device.

[0167] S15: Identify the connection identifier to be identified in the data packet.

[0168] When the first terminal device transmits a data packet to the second terminal device through the first data transmission tunnel or the second data transmission tunnel, the data packet will pass through the forwarding node, which will identify the connection identifier to be identified carried in the data packet.

[0169] S16: The connection identifier to be identified is the first connection identifier, and the data packet is forwarded to the second terminal device through the target data transmission tunnel.

[0170] When the forwarding node identifies that the connection identifier to be identified carried in the data packet belongs to the first connection identifier in the first connection identifier set, it forwards the data packet to the second terminal device through the target data transmission tunnel.

[0171] S17: The connection identifier to be identified is the second connection identifier, and the data packet is forwarded to the second terminal device through the third data transmission tunnel.

[0172] FIG12 is a signaling diagram of a data transmission method provided in an embodiment of the present application. As shown in the figure, the specific implementation method of the above-mentioned S17 is:

[0173] S171: The connection identifier to be identified is the second connection identifier.

[0174] The forwarding node identifies the connection identifier to be identified carried by the data packet, and identifies that the connection identifier to be identified is the second connection identifier.

[0175] S172: Transmit the data packet using the second data transmission tunnel.

[0176] When it is determined that the identifier to be identified is the second connection identifier, the forwarding node transmits the data packet to the transmission gateway through the second data transmission tunnel.

[0177] S173: Forward the data packet to the second terminal device using the third data transmission tunnel.

[0178] After the transmission gateway receives the data packet, the transmission gateway forwards the data packet to the second terminal device through the third data transmission tunnel.

[0179] Based on the embodiments corresponding to the aforementioned Figures 1-12, Figure 13 is a schematic diagram of a data transmission device provided in an embodiment of the present application. The device is applied to a first terminal device, and the data transmission device 1300 includes: an acquisition module 1301, an establishment module 1302 and a transmission module 1303.

[0180] The acquisition module is configured to acquire a first connection identifier and a second connection identifier for a first network environment by initiating a connection request for a second terminal device in a first network environment, wherein the first terminal device and the second terminal device are in the first network environment, and the first network environment includes a transmission gateway for forwarding data packets;

[0181] The establishing module is configured to request establishment of a first data transmission tunnel with the transmission gateway according to the first connection identifier, and to request establishment of a second data transmission tunnel with the transmission gateway according to the second connection identifier;

[0182] The transmission module is used to transmit data with the second terminal device through the first data transmission tunnel or the second data transmission tunnel.

[0183] In a possible implementation, the transmission module is configured to:

[0184] In response to the first data transmission tunnel being available, performing data transmission with the second terminal device through the first data transmission tunnel, where the transmitted data packet carries the first connection identifier;

[0185] In response to the first data transmission tunnel being unavailable, data transmission is performed with the second terminal device through the second data transmission tunnel, and the transmitted data packet carries the second connection identifier.

[0186] In one possible implementation, the device is used to:

[0187] When it is identified that the first data transmission tunnel is successfully established and not disconnected, determining that the first data transmission tunnel is available;

[0188] When it is identified that the first data transmission tunnel is not established successfully, or is established successfully but disconnected, it is determined that the first data transmission tunnel is unavailable.

[0189] In one possible implementation, the device is used to:

[0190] The first terminal device and the second terminal device are also in a second network environment and have a data transmission link in the second network environment.

[0191] In one possible implementation, for the first terminal device and the second terminal device, in a multi-network transmission system composed of the first data transmission tunnel, the second data transmission tunnel, and the data transmission link, including a multi-network transmission controller, the acquisition module is configured to:

[0192] In the first network environment, sending the connection request for the second terminal device to the multi-network transmission controller;

[0193] The first connection identifier and the second connection identifier for the first network environment are obtained from the multi-network transmission controller.

[0194] In one possible implementation, the device is used to:

[0195] The data packet header includes a connection identifier field, and the connection identifier field carries the first connection identifier or the second connection identifier used for data transmission.

[0196] In one possible implementation, the device is used to:

[0197] The first data transmission tunnel and the second data transmission tunnel are established based on the Multi-channel User Data Packet Network Connection Protocol MP-QUIC, and the data packet is a QUIC data packet.

[0198] In one possible implementation, the device is used to:

[0199] The first network environment is a fifth-generation mobile communication technology 5G network environment, and the first data transmission tunnel is a 5G local area network tunnel.

[0200] Through the data transmission device provided above, for the first terminal device and the second terminal device in the first network environment, when the first terminal device is ready to connect to the second terminal device, the first connection identifier and the second connection identifier can be obtained by initiating a connection request. The first terminal device respectively requests to establish the first data transmission tunnel and the second transmission tunnel between the transmission gateway in the first network environment based on the two connection identifiers. The first terminal device can select the first data transmission tunnel or the second data transmission tunnel based on the situation of the two data transmission tunnels to send a data packet for the second terminal device, in order to forward the data packet to the second terminal device in the first network environment through the transmission gateway. It can be seen that by establishing two independent data transmission tunnels between the two terminal devices in a single network environment, even if a transmission problem occurs in one data transmission tunnel, data transmission can continue through the other data transmission tunnel. The dual data transmission tunnel provides an effective fault tolerance basis, which greatly improves the stability of data transmission.

[0201] FIG14 is a schematic diagram of another data transmission device provided in an embodiment of the present application. The device is applied to a forwarding node in a first network environment. The data transmission device 1400 includes: a determination module 1401, a first forwarding module 1402, and a second forwarding module 1403.

[0202] The determining module is configured to, when acquiring a data packet sent by a first terminal device to a second terminal device, determine a connection identifier to be identified carried in the data packet, and the first terminal device and the second terminal device are in the first network environment;

[0203] the first forwarding module being configured to forward the data packet to the second terminal device through a target data transmission tunnel in response to the to-be-identified connection identifier being a first connection identifier in a first connection identifier set, the target data transmission tunnel being a data transmission tunnel established between the second terminal device and the forwarding node through the first connection identifier;

[0204] The second forwarding module is used to forward the data packet to the transmission gateway in the first network environment through the second data transmission tunnel in response to the connection identifier to be identified being the second connection identifier in the second connection identifier set, so that the transmission gateway forwards the data packet to the second terminal device through the third data transmission tunnel.

[0205] In one possible implementation, the device is used to:

[0206] The third data transmission tunnel is a data transmission tunnel established between the second terminal device and the transmission gateway through a third connection identifier, and the third connection identifier belongs to the second connection identifier set;

[0207] When the data packet is forwarded to the second terminal device through the third data transmission tunnel, the connection identifier carried by the data packet is the third connection identifier.

[0208] In a possible implementation, the first forwarding module is configured to:

[0209] According to the public network destination address of the second terminal device carried in the data packet, query the intranet access address corresponding to the public network destination address;

[0210] The public network destination address in the data packet is replaced with the intranet access address to obtain a replaced data packet, and the replaced data packet is forwarded to the second terminal device through the target data transmission tunnel.

[0211] In one possible implementation, the device is used to:

[0212] The correspondence between the first connection identifier and the intranet access address is saved, and the correspondence is used to determine the corresponding intranet access address through the correspondence when obtaining a data packet carrying the first connection identifier next time.

[0213] The data transmission device provided above is for a first terminal device and a second terminal device in a first network environment. When the first terminal device transmits data to the second terminal device through the first or second data transmission tunnel, when the forwarding node in the first network environment obtains the data packet sent by the first terminal device to the second terminal device, it will identify the connection identifier to be identified in the data packet, and then determine, based on the identification result, that the data transmission tunnel for forwarding the data packet is the third data transmission tunnel or the target data transmission tunnel. In this way, the forwarding unit can be used to "diverge" the data transmission tunnel for data packets carrying different connection identifiers to be identified, so as to complete the data transmission between the first terminal device and the second terminal device.

[0214] The present application also provides a data transmission system. FIG15 is a schematic diagram of the structure of a data transmission system provided in the present application. As shown in FIG15 , the data transmission system 1500 includes a first terminal device 1501 and a forwarding node 1502. The first terminal device is configured to execute the steps performed by the first terminal device in the aforementioned embodiment, and the forwarding node is configured to execute the steps performed by the forwarding node in the aforementioned embodiment.

[0215] The embodiment of the present application further provides a computer device, which is the computer device described above and may include a terminal device or a server. The aforementioned data transmission device may be configured in the computer device. The computer device is described below with reference to the accompanying drawings.

[0216] If the computer device is a terminal device, as shown in FIG16 , an embodiment of the present application provides a terminal device, taking a mobile phone as an example:

[0217] FIG16 is a block diagram showing a partial structure of a mobile phone related to a terminal device provided in an embodiment of the present application. Referring to FIG16 , the mobile phone includes components such as a radio frequency (RF) circuit 1410, a memory 1420, an input unit 1430, a display unit 1440, a sensor 1450, an audio circuit 1460, a wireless fidelity (WiFi) module 1470, a processor 1480, and a power supply 1490. Those skilled in the art will appreciate that the mobile phone structure shown in FIG16 does not limit the mobile phone and may include more or fewer components than shown, or combine certain components, or arrange the components differently.

[0218] The following is a detailed introduction to the various components of the mobile phone in conjunction with Figure 16:

[0219] The RF circuit 1410 may be used for receiving and sending signals during information transmission or calls. In particular, after receiving downlink information from the base station, it is sent to the processor 1480 for processing. In addition, the designed uplink data is sent to the base station.

[0220] Memory 1420 can be used to store software programs and modules. Processor 1480 executes the various functional applications and data processing of the mobile phone by running the software programs and modules stored in memory 1420. Memory 1420 may mainly include a program storage area and a data storage area. The program storage area may store an operating system and at least one application required for a function (such as a sound playback function, an image playback function, etc.); the data storage area may store data created based on the use of the mobile phone (such as audio data, a phone book, etc.). In addition, memory 1420 may include high-speed random access memory and non-volatile memory, such as at least one disk storage device, flash memory device, or other volatile solid-state storage device.

[0221] The input unit 1430 may be configured to receive input digital or character information and generate key signal input related to user settings and function control of the mobile phone. Specifically, the input unit 1430 may include a touch panel 1431 and other input devices 1432 .

[0222] The display unit 1440 may be configured to display information input by the user or information provided to the user, as well as various menus of the mobile phone. The display unit 1440 may include a display panel 1441 .

[0223] The mobile phone may also include at least one sensor 1450, such as a light sensor, a motion sensor, and other sensors.

[0224] The audio circuit 1460 , the speaker 1461 , and the microphone 1462 can provide an audio interface between the user and the mobile phone.

[0225] WiFi is a short-range wireless transmission technology. The mobile phone can help users send and receive emails, browse web pages, and access streaming media through the WiFi module 1470, providing users with wireless broadband Internet access.

[0226] The processor 1480 is the control center of the mobile phone. It uses various interfaces and lines to connect various parts of the entire mobile phone. It executes various functions of the mobile phone and processes data by running or executing software programs and / or modules stored in the memory 1420 and calling data stored in the memory 1420.

[0227] The mobile phone also includes a power supply 1490 (such as a battery) for supplying power to various components.

[0228] In this embodiment, the processor 1480 included in the terminal device further has the following functions:

[0229] Initiating a connection request for a second terminal device in a first network environment to obtain a first connection identifier and a second connection identifier for the first network environment, wherein the first terminal device and the second terminal device are in the first network environment, and the first network environment includes a transmission gateway for forwarding data packets;

[0230] Requesting establishment of a first data transmission tunnel with the transmission gateway according to the first connection identifier, and requesting establishment of a second data transmission tunnel with the transmission gateway according to the second connection identifier;

[0231] Data is transmitted to the second terminal device through the first data transmission tunnel or the second data transmission tunnel.

[0232] Alternatively, the processor 1480 may further have the following functions:

[0233] When obtaining a data packet sent by a first terminal device to a second terminal device, determining a connection identifier to be identified carried in the data packet, and the first terminal device and the second terminal device are in the first network environment;

[0234] In response to the to-be-identified connection identifier being a first connection identifier in a first connection identifier set, forwarding the data packet to the second terminal device through a target data transmission tunnel, where the target data transmission tunnel is a data transmission tunnel established between the second terminal device and the forwarding node through the first connection identifier;

[0235] In response to the connection identifier to be identified being the second connection identifier in the second connection identifier set, the data packet is forwarded to the transmission gateway in the first network environment through the second data transmission tunnel, so that the transmission gateway forwards the data packet to the second terminal device through the third data transmission tunnel.

[0236] If the computer device is a server, an embodiment of the present application also provides a server, as shown in Figure 17, which is a structural diagram of a server 1500 provided in an embodiment of the present application. The server 1500 may have relatively large differences due to different configurations or performances, and may include one or more central processing units (CPUs) 1522 (for example, one or more processors) and a memory 1532, and one or more storage media 1530 (for example, one or more mass storage devices) storing application programs 1542 or data 1544. Among them, the memory 1532 and the storage medium 1530 can be temporary storage or permanent storage. The program stored in the storage medium 1530 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the server. Furthermore, the central processing unit 1522 can be configured to communicate with the storage medium 1530 to execute a series of instruction operations in the storage medium 1530 on the server 1500.

[0237] The server 1500 may also include one or more power supplies 1526, one or more wired or wireless network interfaces 1550, one or more input and output interfaces 1558, and / or one or more operating systems 1541, such as Windows Server 2003. TM , Mac OS X TM , Unix TM ,Linux TM , FreeBSD TM etc.

[0238] The steps executed by the server in the above embodiment may be based on the server structure shown in FIG17 .

[0239] In addition, an embodiment of the present application further provides a storage medium, which is used to store a computer program, and the computer program is used to execute the method provided by the above embodiment.

[0240] An embodiment of the present application further provides a computer program product including a computer program, which, when executed on a computer device, enables the computer device to execute the method provided in the above embodiment.

[0241] Those skilled in the art will understand that all or part of the steps of implementing the above-mentioned method embodiment can be completed by hardware related to program instructions, and the above-mentioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above-mentioned method embodiment; and the above-mentioned storage medium can be at least one of the following media: read-only memory (English: Read-only Memory, abbreviated: ROM), RAM, magnetic disk or optical disk, etc., various media that can store computer programs.

[0242] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0243] It should be noted that the various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the device and system embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiments. The device and system embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the scheme of this embodiment. A person of ordinary skill in the art can understand and implement it without expending creative work.

[0244] The above is only one specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily thought of by a person skilled in the art within the technical scope disclosed in the present application should be included in the scope of protection of the present application. Moreover, based on the implementation methods provided in the above aspects, the present application can also be further combined to provide more implementation methods. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A data transmission method, which is executed by a first terminal device, and the method includes: Acquiring a first connection identifier and a second connection identifier for the first network environment by initiating a connection request for a second terminal device in the first network environment, where the first terminal device and the second terminal device are in the first network environment, and the first network environment includes a transmission gateway for packet forwarding; Requesting to establish a first data transmission tunnel with the transmission gateway according to the first connection identifier, and requesting to establish a second data transmission tunnel with the transmission gateway according to the second connection identifier; Performing data transmission with the second terminal device through the first data transmission tunnel or the second data transmission tunnel.

2. The method according to claim 1, where the performing data transmission with the second terminal device through the first data transmission tunnel or the second data transmission tunnel includes: In response to the first data transmission tunnel being available, performing data transmission with the second terminal device through the first data transmission tunnel, and the transmitted data packet carries the first connection identifier; In response to the first data transmission tunnel being unavailable, performing data transmission with the second terminal device through the second data transmission tunnel, and the transmitted data packet carries the second connection identifier.

3. The method according to claim 2, and the method further includes: When it is recognized that the first data transmission tunnel is successfully established and not disconnected, determining that the first data transmission tunnel is available; When it is recognized that the first data transmission tunnel is not successfully established, or is successfully established but disconnected, determining that the first data transmission tunnel is unavailable.

4. The method according to any one of claims 1-3, where the first terminal device and the second terminal device are also in a second network environment and have a data transmission link in the second network environment.

5. The method according to claim 4, for the first terminal device and the second terminal device, in a multi-network transmission system constituted by the first data transmission tunnel, the second data transmission tunnel, and the data transmission link, including a multi-network transmission controller, where the acquiring a first connection identifier and a second connection identifier for the first network environment by initiating a connection request for a second terminal device in the first network environment includes: In the first network environment, sending the connection request for the second terminal device to the multi-network transmission controller; Obtaining the first connection identifier and the second connection identifier for the first network environment from the multi-network transmission controller.

6. The method according to any one of claims 1-5, where a connection identifier field is included in the data header of the data packet, and the connection identifier field carries the first connection identifier or the second connection identifier for data transmission.

7. The method according to claim 6, where the first data transmission tunnel and the second data transmission tunnel are established according to the multi-channel user data packet network connection protocol MP-QUIC, and the data packet is a QUIC data packet.

8. The method according to any one of claims 1-7, wherein the first network environment is a fifth-generation mobile communication technology (5G) network environment, and the first data transmission tunnel is a 5G local area network tunnel.

9. A data transmission device is applied to a first terminal device, and the device includes: An acquisition module, an establishment module, and a transmission module. The acquisition module is configured to obtain a first connection identifier and a second connection identifier for the first network environment by initiating a connection request for a second terminal device in the first network environment, where the first terminal device and the second terminal device are in the first network environment, and the first network environment includes a transmission gateway for packet forwarding. The establishment module is configured to request to establish a first data transmission tunnel with the transmission gateway according to the first connection identifier, and request to establish a second data transmission tunnel with the transmission gateway according to the second connection identifier. The transmission module is configured to perform data transmission with the second terminal device through the first data transmission tunnel or the second data transmission tunnel.

10. A data transmission method, which is executed by a forwarding node in a first network environment, and the method includes: When a data packet sent by a first terminal device to a second terminal device is acquired, determining a connection identifier to be recognized carried in the data packet, where the first terminal device and the second terminal device are in the first network environment. In response to the connection identifier to be recognized being a first connection identifier in a first connection identifier set, forwarding the data packet to the second terminal device through a target data transmission tunnel, where the target data transmission tunnel is a data transmission tunnel established between the second terminal device and the forwarding node through the first connection identifier. In response to the connection identifier to be recognized being a second connection identifier in a second connection identifier set, forwarding the data packet to a transmission gateway in the first network environment through a second data transmission tunnel, so that the transmission gateway forwards the data packet to the second terminal device through a third data transmission tunnel.

11. The method according to claim 10, wherein the third data transmission tunnel is a data transmission tunnel established between the second terminal device and the transmission gateway through a third connection identifier, and the third connection identifier belongs to the second connection identifier set. When the data packet is forwarded to the second terminal device through the third data transmission tunnel, the connection identifier carried in the data packet is the third connection identifier.

12. The method according to claim 10 or 11, wherein forwarding the data packet to the second terminal device through the target data transmission tunnel includes: Querying an internal network access address corresponding to the public network destination address according to the public network destination address of the second terminal device carried in the data packet. Replacing the public network destination address in the data packet with the internal network access address to obtain a replaced data packet, and forwarding the replaced data packet to the second terminal device through the target data transmission tunnel.

13. The method according to claim 12, wherein the method further includes: Save the corresponding relationship between the first connection identifier and the intranet access address, where the corresponding relationship is used to determine the corresponding intranet access address according to the corresponding relationship when a data packet carrying the first connection identifier is obtained next time.

14. A data transmission device is applied to a forwarding node in a first network environment. The device includes: Determination module, first forwarding module, and second forwarding module; The determination module is configured to determine the connection identifier to be recognized carried in the data packet when obtaining a data packet sent from the first terminal device to the second terminal device, where the first terminal device and the second terminal device are in the first network environment; The first forwarding module is configured to forward the data packet to the second terminal device through the target data transmission tunnel in response to the connection identifier to be recognized being the first connection identifier in the first connection identifier set, where the target data transmission tunnel is a data transmission tunnel established between the second terminal device and the forwarding node through the first connection identifier; The second forwarding module is configured to forward the data packet to the transmission gateway in the first network environment through the second data transmission tunnel in response to the connection identifier to be recognized being the second connection identifier in the second connection identifier set, so that the transmission gateway forwards the data packet to the second terminal device through the third data transmission tunnel.

15. A data transmission system, the system includes a first terminal device and a forwarding node; The first terminal device is configured to execute the method according to any one of claims 1-8; The forwarding node is configured to execute the method according to any one of claims 10-13.

16. A computer device, the computer device includes a processor and a memory: The memory is configured to store a computer program and transmit the computer program to the processor; The processor is configured to execute the method according to any one of claims 1-8 or 10-13 according to the computer program.

17. A computer-readable storage medium, the computer-readable storage medium is configured to store a computer program, and the computer program realizes the execution of the method according to any one of claims 1-8 or 10-13 when executed by a computer device.

18. A computer program product including a computer program, when it runs on a computer device, causes the computer device to execute the method according to any one of claims 1-8 or 10-13.