Data transmission method and related device
By establishing two independent data transmission tunnels between terminal devices in the network environment, the problems of delay and functional interruption in data transmission are solved, and more stable data transmission is achieved.
Patent Information
- Application Number
- CN202311623452.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-29
- Publication Date
- 2025-05-30
AI Technical Summary
In a network environment, data transmission between terminal devices is prone to problems such as delay, out-of-synchronization of audio and video, or interruption of functions, which affects the realization of real-time functions.
By establishing two independent data transmission tunnels between two terminal devices in a single network environment, a fault-tolerant basis is provided to ensure the stability of data transmission.
Even if there is a problem with one data transmission tunnel, the other tunnel can continue to transmit data, which significantly improves the stability of data transmission.
Smart Images

Figure CN120075275A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data processing, and in particular, to a data transmission method and related devices. Background Art
[0002] In a network environment, terminal devices can establish connections to transmit data to achieve various real-time functions, such as video calls, voice interactions, etc.
[0003] However, when transmission problems occur in the connections between terminal devices for various reasons, it will seriously affect the implementation of the above real-time functions, such as unbearable delays, out-of-sync audio and video, or even function interruptions.
[0004] Therefore, how to improve the stability of data transmission is an urgent problem to be solved at present. Summary of the Invention
[0005] To solve the above technical problems, this 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.
[0006] Embodiments of this application disclose the following technical solutions:
[0007] On the one hand, an embodiment of this application provides a data transmission method, including:
[0008] By initiating a connection request for a second terminal device in a first network environment, obtaining a first connection identifier and a second connection identifier for 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;
[0009] 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;
[0010] Transmit data with the second terminal device through the first data transmission tunnel or the second data transmission tunnel.
[0011] On the other hand, an embodiment of this application provides another data transmission method, including:
[0012] When obtaining a data packet sent from a first terminal device to a second terminal device, determine the 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;
[0013] In response to the connection identifier to be recognized belonging to a first connection identifier in a first connection identifier set, forward 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;
[0014] In response to the connection identifier to be recognized belonging to a second connection identifier in a second connection identifier set, forward 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.
[0015] On the other hand, an embodiment of the present application provides a data transmission device, and the device includes: an acquisition module, a establishment module, and a transmission module.
[0016] 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 data packet forwarding;
[0017] 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;
[0018] 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.
[0019] On the other hand, an embodiment of the present application provides another data transmission device, and the device includes: a determination module, a first forwarding module, and a second forwarding module;
[0020] The determination module is configured to determine a connection identifier to be recognized carried in the data packet when acquiring a data packet sent from a first terminal device to a second terminal device, where the first terminal device and the second terminal device are in the first network environment;
[0021] The first forwarding module is configured to, in response to the connection identifier to be recognized belonging to a first connection identifier in a first connection identifier set, forward 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;
[0022] The second forwarding module is configured to, in response to the connection identifier to be recognized belonging to a second connection identifier set, forward 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.
[0023] In another aspect, an embodiment of the present application provides a computer device, which includes a processor and a memory:
[0024] The memory is used to store a computer program and transmit the computer program to the processor;
[0025] The processor is configured to execute the method described in the above aspects according to the computer program.
[0026] In another aspect, an embodiment of the present application provides a computer-readable storage medium, which is used to store a computer program, and the computer program is used to execute the method described in the above aspects.
[0027] In another aspect, an embodiment of the present application provides a computer program product including a computer program, which, when running on a computer device, enables the computer device to execute the method described in the above aspects.
[0028] It can be seen from the above technical solutions that for a first terminal device and a second terminal device in a first network environment, when the first terminal device is ready to connect to the second terminal device, it can obtain a first connection identifier and a second connection identifier by initiating a connection request. The first terminal device respectively requests to establish a first data transmission tunnel and a second transmission tunnel with a transmission gateway in the first network environment according to these two connection identifiers. The first terminal device can select the first data transmission tunnel or the second data transmission tunnel to send a data packet for the second terminal device based on the conditions of the two data transmission tunnels, with the expectation that the transmission gateway forwards the data packet to the second terminal device through the first network environment. It can be seen that by establishing two independent data transmission tunnels between two terminal devices in a single network environment, even if one data transmission tunnel has a transmission problem, data transmission can still continue through the other data transmission tunnel. The dual data transmission tunnels provide an effective fault tolerance foundation and greatly improve the stability of data transmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required for the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0030] Figure 1 Schematic diagram of a data transmission method provided by an embodiment of the present application;
[0031] Figure 2 Flowchart of a data transmission method provided by an embodiment of the present application;
[0032] Figure 3 Schematic diagram of a redundant transmission provided by an embodiment of the present application;
[0033] Figure 4 Schematic diagram of an aggregated transmission provided by an embodiment of the present application;
[0034] Figure 5 Schematic diagram of a multi-network transmission system architecture provided by an embodiment of the present application;
[0035] Figure 6 Architecture diagram of a 5G LAN provided by an embodiment of the present application;
[0036] Figure 7 Structural schematic diagram of a 5G LAN provided by an embodiment of the present application;
[0037] Figure 8 Schematic diagram of a QUIC protocol stack provided by an embodiment of the present application;
[0038] Figure 9 Structural schematic diagram of a QUIC data packet format provided by an embodiment of the present application;
[0039] Figure 10 Schematic diagram of a data transmission method in a multi-network scenario provided by an embodiment of the present application;
[0040] Figure 11 Signaling diagram of a data transmission method provided by an embodiment of the present application;
[0041] Figure 12 Signaling diagram of a data transmission method provided by an embodiment of the present application;
[0042] Figure 13 Device schematic diagram of a data transmission device provided by an embodiment of the present application;
[0043] Figure 14 Another device schematic diagram of a data transmission device provided by an embodiment of the present application;
[0044] Figure 15 Structural schematic diagram of a data transmission system provided by an embodiment of the present application;
[0045] Figure 16 Structural diagram of a terminal device provided by an embodiment of the present application;
[0046] Figure 17 This is a structural diagram of a server provided by an embodiment of the present application. Specific embodiments
[0047] Next, embodiments of the present application will be described with reference to the accompanying drawings.
[0048] In the current network transmission process, terminal devices can choose to establish a connection for data transmission, so that real-time functions between devices can be achieved through data transmission. However, during the data transmission process, the connection established between terminal devices may have problems with data transmission due to some sudden reasons. When data transmission problems occur, the functions that need to be realized between terminal devices cannot be smoothly realized, thus affecting the user experience of the users corresponding to the terminal devices.
[0049] For this reason, an embodiment of the present application proposes a data transmission method and related devices, which establish two independent data transmission tunnels between two terminal devices. The dual data transmission tunnels provide an effective fault tolerance basis, greatly improving the stability of data transmission.
[0050] The data transmission method provided by the embodiment of the present application can be implemented by a computer device, which can be a terminal device or a server. Among them, the server can be an independent physical server, a server cluster or a 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 devices and the server can be directly or indirectly connected through wired or wireless communication methods, which are not limited in this application. It can be applied to scenarios such as virtual humans, digital humans, games, and extended reality.
[0051] First, several noun terms that may be involved in the following embodiments of the present application will be explained.
[0052] Multi-network transmission system: A network system in which there are multiple network environments that can be used to support data transmission between terminal devices. The data transmission method proposed in the embodiment of the present application can be used in a multi-network transmission system.
[0053] Multipath QUIC (MP-QUIC): An improved version of the QUIC protocol. Its main feature is that it supports multi-data transmission tunnel transmission, and it can use multiple data transmission tunnels to transmit data at the same time, thereby improving the reliability and efficiency of data transmission.
[0054] Application of 5G Local Area Network Technology (5G LAN): It is to use 5G technology to "group" and "cluster" terminal devices to form a Local Area Network (LAN).
[0055] Figure 1 It is a schematic diagram of a data transmission method provided by an embodiment of this application, where the aforementioned computer device is a terminal device.
[0056] As Figure 1 shown, assume that the first terminal device and the 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 according to the first connection identifier, and requests to establish a second data transmission tunnel with the transmission gateway according to the second connection identifier. The first terminal device can perform data transmission with the second terminal device through the first data transmission tunnel or the second data transmission tunnel.
[0057] It should be noted here that the data transmission tunnel established between the first terminal device and the transmission gateway upon request may include a forwarding node (not shown in the figure). The forwarding node can be used to identify the connection identifier to be recognized carried in the data packet during the process of the first terminal device sending the data packet to the second terminal device, and determine the data transmission tunnel for forwarding the data packet to the second terminal device according to the recognition result, so as to complete the data transmission between the first terminal device and the second terminal device.
[0058] Figure 2 It is a flowchart of a data transmission method provided by an embodiment of this application. This method can be executed by the first terminal device. In this embodiment, the aforementioned computer device is the first terminal device.
[0059] The method includes:
[0060] S201: Obtain a first connection identifier and a second connection identifier for the first network environment by initiating a connection request for the second terminal device in the first network environment.
[0061] The network environment is various wired or wireless transmission media for providing data transmission services, such as the 5th Generation Mobile Communication Technology (5G), Wireless Network Communication Technology (WiFi), etc. The first network environment mentioned in the embodiments of this application and the second network environment that appears later belong to different network environments.
[0062] In this embodiment, the first terminal device and the second terminal device are in the same network environment. For example, in the first network environment, there is a transmission gateway for 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 applicable to this first network environment. The connection identifier is used to uniquely identify the data transmission tunnel. Through this connection identifier, the first terminal device can establish a data transmission tunnel between the first terminal device and the second terminal device in the first network environment. That is to say, different connection identifiers can correspond to different data transmission tunnels. According to different connection identifiers, the first terminal device can request to establish different data transmission tunnels with the transmission gateway.
[0063] The above-mentioned transmission gateway can be understood as a device or software that connects two different networks or protocols. It can realize data conversion and relay between different networks to ensure that they can communicate with each other. For example, the transmission gateway can be a physical device such as a router, a switch, or a firewall, or it can be a software entity such as protocol conversion software.
[0064] S202: 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.
[0065] As mentioned above, different connection identifiers can correspond to different data transmission tunnels. Specifically, according to the first connection identifier, a first data transmission tunnel can be requested to be established with the transmission gateway, and according to the second connection identifier, a second data transmission tunnel can be requested to be established 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 according to different connection identifiers are also different.
[0066] That is to say, the connection identifier can be understood as a flag used to distinguish different data transmission tunnels. When the first terminal device transmits data to the second terminal device, the method of sending data packets can be adopted. Then, at this time, the data packets sent by the first terminal device will carry the connection identifier, and this connection identifier can be the aforementioned first connection identifier or second connection identifier. The connection identifier carried by the data packet will determine the type of data transmission tunnel that the data packet will pass through.
[0067] That is, when a first terminal device sends a data packet to a second terminal device, the transmission path corresponding to the data packet is determined in advance. In the embodiments of the present application, it can be understood as the first data transmission tunnel or the second data transmission tunnel. When the first terminal device determines that the transmission path of the data packet is the first data transmission tunnel, a first connection identifier is assigned to the data packet according to the corresponding relationship 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, a second connection identifier is assigned to the data packet according to the corresponding relationship 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 foregoing "first" and "second" are only for dividing the terminal devices, connection identifiers, and data transmission tunnels, and do not represent meanings such as priority, importance degree, and sequence.
[0068] S203: Perform data transmission with the second terminal device through the first data transmission tunnel or the second data transmission tunnel.
[0069] In S202, a first data transmission tunnel is established with the transmission gateway by requesting according to the first connection identifier, and a second data transmission tunnel is established with the transmission gateway by requesting according to the second connection identifier. That is to say, in the current first network environment, there are two data transmission tunnels between the first terminal device and the second terminal device, namely the first data transmission tunnel and the second data transmission tunnel. When the first terminal device needs to perform data transmission with the second terminal device, the first terminal device can assign a connection identifier to the data packet. The prerequisite for the first terminal device to assign a connection identifier to the data packet is that the first terminal device determines the data transmission tunnel of the data packet in advance.
[0070] 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 at this time. When the data packet carries the first connection identifier, the data packet is transmitted to 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 at this time. When the data packet carries the second connection identifier, the data packet is transmitted to 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 using a forwarding node. Then, the forwarding node determines the data transmission tunnel of the data packet according to 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.
[0071] Through the above-mentioned first terminal device, different data transmission tunnels between the first terminal device and the transmission gateway are established according to different connection identifiers. The establishment of different data transmission tunnels makes the data transmission channel between the first terminal device and the second terminal device no longer a single transmission path. There can be a first data transmission tunnel, a second data transmission tunnel, or other data transmission tunnels, so that the reliability of data transmission between the first terminal device and the second terminal device can be improved. When a transmission failure occurs in one of the data transmission tunnels, the data transmission between the first terminal device and the second terminal device can be carried out normally by switching the data transmission tunnel.
[0072] 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, a connection request can be initiated to obtain a first connection identifier and a second connection identifier. The first terminal device requests to establish a first data transmission tunnel and a second transmission tunnel with the transmission gateway in the first network environment respectively according to these two connection identifiers. The first terminal device can select the first data transmission tunnel or the second data transmission tunnel to send the data packet for the second terminal device based on the conditions of the two data transmission tunnels, so as to forward the data packet to the second terminal device through the transmission gateway through the first network environment. It can be seen that by establishing two independent data transmission tunnels between two terminal devices in a single network environment, even if a transmission problem occurs in one data transmission tunnel, the data transmission can continue through the other data transmission tunnel. The dual data transmission tunnels provide an effective fault tolerance basis and greatly improve the stability of data transmission.
[0073] In S202, it is mentioned that "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". That is to say, in the current first network environment, there are two data transmission tunnels, and either one of the two data transmission tunnels can be arbitrarily selected for data transmission between terminal devices. Then, at this time, it is necessary to determine the selection method for the two data transmission tunnels. In a possible implementation manner, 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: in response to the availability of the first data transmission tunnel, perform data transmission 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 unavailability of the first data transmission tunnel, perform data transmission with the second terminal device through the second data transmission tunnel, and the transmitted data packet carries the second connection identifier.
[0074] Specifically, when the first terminal device needs to perform data transmission with the second terminal device, it first needs to determine the data transmission tunnel for data transmission. In the embodiments of the present application, when the first terminal device selects a data transmission tunnel, the priority of the first data transmission tunnel can be set higher than that of the second data transmission tunnel. That is to say, when both the first data transmission tunnel and the second data transmission tunnel exist, the first data transmission tunnel is preferentially selected, and only when the first data transmission tunnel is unavailable, will the second data transmission tunnel be selected for data transmission.
[0075] That is to say, 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 perform data transmission with 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 first connection identifier needs to be carried in the data packet.
[0076] 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 second connection identifier needs to be carried in the data packet.
[0077] 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.
[0078] Through the method for distinguishing the priorities of data transmission tunnels provided above, when there are multiple data transmission tunnels between terminal devices, the priorities for using the multiple data transmission tunnels can be set according to factors such as the application scenario and data transmission efficiency. Through the determination of priorities, it is possible to preferentially select a data transmission tunnel with better transmission effect during the data transmission process between terminal devices, thereby improving the data transmission efficiency between terminal devices.
[0079] The method for determining the priorities between different data transmission tunnels was mentioned above. After the priorities are determined, when the first terminal device determines a data transmission tunnel for a data packet, it is necessary to judge the availability of the data transmission tunnel, and determine whether to switch to other data transmission tunnels according to the judgment result of the availability of the data transmission tunnel. Specifically, in a possible implementation manner, the method for determining the availability of the data transmission tunnel can be: First, when it is recognized 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 recognized 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.
[0080] Specifically, determining whether a data transmission tunnel is available mainly includes two factors: One of the judgments is whether the data transmission tunnel is successfully established, and the other is to judge whether the data transmission tunnel is disconnected on the premise that the data transmission tunnel is successfully established. Only when the data transmission tunnel is successfully established and not disconnected at the same time, it is determined that the data transmission tunnel is available. When the data transmission tunnel is not successfully established, or the data transmission tunnel is successfully established but disconnected, it can be determined that the data transmission tunnel is unavailable.
[0081] The determination of the availability of the data transmission tunnel mentioned above is applicable to both the first data transmission tunnel and the second data transmission tunnel mentioned above. In actual applications, according to the different priority orders between the first data transmission tunnel and the second data transmission tunnel, when the first data transmission tunnel has a higher priority than 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 then determined. Of course, it is also possible to determine the availability of the first data transmission tunnel and the second data transmission tunnel at the same time. However, 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 each data transmission tunnel according to the priority of the data transmission tunnel, but it is also a way to achieve the determination of availability.
[0082] Through the method for determining the availability of a data transmission tunnel mentioned above, it is possible to facilitate the timely determination of whether the data transmission tunnel between terminal devices is available when data is transmitted between terminal devices. Furthermore, it is possible to perform a timely switch of the data transmission tunnel based on the determination result, which can improve the efficiency of data transmission to a certain extent.
[0083] In the embodiment of the present application, the data transmission method provided can be used not only for the case where both the first terminal device and the second terminal device are in the first network environment, but also for the case where in addition to both being in the first network environment, the first terminal device and the second terminal device are also in other network environments at the same time. In a possible implementation manner, the first terminal device and the second terminal device are also both in the second network environment and have a data transmission link in the second network environment.
[0084] 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 to say, the data transmission method provided in the embodiment of the present application can be applied to the case where terminal devices exist in multiple network environments at the same time. It is mentioned above that there is a data transmission link in the second network environment, and this data transmission link can be understood as the channel for data transmission between terminal devices. For example, this data transmission link can be a local area network, that is, terminal devices can transmit data through the local area network.
[0085] By having the first terminal device and the second terminal device in the first network environment and the second network environment at the same time as mentioned above, it is possible to achieve multi-network transmission of data between terminal devices, expand the application scenario of the data transmission method in this embodiment, and cover the situation of multi-network transmission. At the same time, adding different network environments for data transmission can increase the selectivity of data transmission methods, and thus reduce the error rate of data transmission to a certain extent.
[0086] The situation where the above-mentioned terminal devices are in multiple network environments at the same time can be understood as the terminal devices being in a multi-network transmission system. Taking the case where the terminal devices are in the first network environment and the second network environment at the same time as an example, the situation of the terminal devices in a multi-network environment will be specifically described.
[0087] First, a multi-network transmission system is introduced in detail. Regarding the multi-network transmission system, current applications generally run on a single network, such as a 5G network or a WiFi network. However, due to problems such as signal fluctuations in wireless networks and terminal mobility handovers, the instability of a single wireless network has a great impact on services. For example, instant games (such as MOBA and RTS games) are very sensitive to latency. As the latency increases or jitters, the user experience will significantly decline; or for live broadcast services, a stable network bandwidth is required. If the network capacity is insufficient or the rate jitters, it will lead to a decrease in the video bitrate or stuttering.
[0088] Therefore, in order to improve the service experience, the problem of unstable or unreliable single-network performance can be solved through multi-network transmission. The common multi-network transmission schemes mainly include redundant transmission and aggregation transmission.
[0089] Specifically, redundant transmission, for example, can be understood as the redundant function of 5G+WiFi commonly introduced by game accelerator APPs. Its basic principle is as follows. In the uplink direction, the accelerator APP on the terminal device will copy the game data packets and send them to the game acceleration gateway through both the 5G and WiFi links at the same time. The game acceleration gateway then performs deduplication processing and sends the correctly received data packets to the game server.
[0090] Figure 3 A schematic diagram of redundant transmission provided by an embodiment of this application is shown in Figure 3 As shown, the principle of redundant transmission is that data packets are sent on two network links at the same time, such as Packet 1 and Packet 2 in the figure. As long as any one of the data packets is transmitted correctly, it can be successfully received, thereby reducing network latency and jitter, that is, by consuming more network resources to ensure the transmission latency performance and reliability of data. Considering that game services are not sensitive to packet loss, an unreliable transmission mode is generally adopted.
[0091] The aggregation transmission scheme is to allocate different data packets in the same service to different networks for transmission according to the quality of different network links. Figure 4 A schematic diagram of aggregation transmission provided by an embodiment of this application is shown in Figure 4 As shown, 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 then performs aggregation processing and restores it into the original service data stream and transmits it to the final service source station, such as the live broadcast server shown in the figure.
[0092] The advantage of aggregated transmission is that it can make full use of the capacities of two networks, provide a larger network bandwidth for services, and there is no redundant data transmission, thus saving network traffic. Generally, for RTMP-type live broadcasts based on the Transmission Control Protocol (TCP), a reliable transmission mode can be adopted, while for RTC-type live broadcasts based on the User Datagram Protocol (UDP), an unreliable transmission mode can be adopted.
[0093] The following introduces a typical multi-network transmission system architecture. Figure 5 As shown in the schematic diagram of a multi-network transmission system architecture provided by an embodiment of this application, Figure 5 as shown, the multi-network transmission system mainly consists of the following three parts: First, the multi-network transmission unit on the terminal side, 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 this application; Second, the multi-network transmission gateway, which is generally distributed and deployed in the cloud, establishes a data transmission tunnel with the multi-network transmission unit on the terminal side for multi-network transmission communication, and forwards the data to the final device (i.e., the second terminal device in the embodiment of this application); Third, the multi-network transmission controller, which is generally centrally deployed in the cloud, performs signaling interaction with the multi-network transmission unit on the terminal side and the multi-network transmission gateway, and is mainly responsible for functions such as configuration management and authentication.
[0094] It can be seen that the multi-network transmission system is a standard Client-Server architecture. If two multi-network transmission units on the terminal side need to communicate, they need to be relayed through the multi-network transmission gateway. In the embodiment of this application, the multi-network transmission unit on the terminal side is equivalent to the first terminal device and the second terminal device.
[0095] In the embodiment of this application, when the first terminal device and the second terminal device are both in the first network environment and the second network environment, it can be considered that the first terminal device and the second terminal device are in the multi-network transmission system. In this multi-network transmission system, it includes: a first data transmission tunnel, a second data transmission tunnel, and a data transmission link. At the same time, the multi-network transmission controller is also included in the multi-network transmission system. Then at this time, the first terminal device needs to obtain a connection identifier from the multi-network transmission controller.
[0096] In S201, it is mentioned that "by initiating a connection request for the second terminal device in the first network environment, obtaining a first connection identifier and a second connection identifier for the first network environment". In a possible implementation manner, the method for obtaining the connection identifier can be: First, in the first network environment, send a connection request for the second terminal device to the multi-network transmission controller. Then obtain the first connection identifier and the second connection identifier for the first network environment from the multi-network transmission controller.
[0097] Specifically, when the first terminal device and the second terminal device are both in the multi-network transmission system, in the first network environment, the first terminal device initiates a connection request for the second terminal device, and the recipient of the connection request is the multi-network transmission controller. The first terminal device needs to obtain from the multi-network transmission controller the first connection identifier and the second connection identifier for the first network environment, so as to establish a corresponding data transmission tunnel with the transmission gateway according to the obtained connection identifiers.
[0098] Through the method of the first terminal device obtaining the connection identifier from the multi-network transmission controller mentioned above, it is possible to realize the data transmission between the first terminal device and the second terminal device in the scenario of the multi-network transmission system. The multi-network transmission controller is responsible for the configuration management of the corresponding connection identifier, and realizes the allocation of the first connection identifier and the second connection identifier for the first terminal device, so as to establish a subsequent data transmission tunnel.
[0099] The 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.
[0100] The method includes:
[0101] S301: When obtaining a data packet sent by the first terminal device to the second terminal device, determine the connection identifier to be recognized carried in the data packet.
[0102] Both the aforementioned first terminal device and the second terminal device are in the first network environment. The connection identifier to be recognized can be understood as the connection identifier pre-allocated or pre-configured for the data packet by the first terminal device according to the determined data transmission tunnel when determining to send the data packet to the second terminal device. 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 data packet with the connection identifier to be recognized allocated is transmitted in the data transmission tunnel corresponding to the connection identifier to be recognized. During the transmission of the data packet, when passing through the forwarding node, the forwarding node recognizes the connection identifier to be recognized, and then determines the data transmission tunnel for forwarding the data packet to the second terminal device, thereby realizing the data transmission between the first terminal device and the second terminal device.
[0103] That is to say, the forwarding node needs to recognize and determine the connection identifier to be recognized carried in the data packet, and judge whether the connection identifier to be recognized carried in the data packet belongs to the first connection identifier or the second connection identifier.
[0104] S302: In response to the to-be-identified connection identifier belonging to a first connection identifier in the first connection identifier set, forward the data packet to the second terminal device through the target data transmission tunnel.
[0105] As mentioned above, different connection identifiers may correspond to different data transmission tunnels. Then, connection identifiers belonging to the same connection identifier set will correspond to the same data transmission tunnel. For example, assume there is a first connection identifier set and a second connection identifier set. As mentioned above, the first terminal device requests to establish a first data transmission tunnel with the transmission gateway according to the first connection identifier, and requests to establish a second data transmission tunnel with the transmission gateway according to the second connection identifier. That is to say, 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.
[0106] 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.
[0107] When the forwarding node identifies that the to-be-identified connection identifier carried in 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 through 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 through the first connection identifier. That is to say, data transmission from the forwarding node to the second terminal device can be realized through the target data transmission tunnel.
[0108] When the second terminal device performs data transmission to the first terminal device, the second terminal device can determine the data transmission tunnel of the data packet and allocate a data identifier for the data packet according to 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 respectively. When the second terminal device determines that the data transmission tunnel of the data packet is the target data transmission tunnel, it is necessary to allocate a first data connection identifier for the data packet; when the second terminal device determines that the data transmission tunnel of the data packet is the third data transmission tunnel, it is necessary to allocate a second data connection identifier for the data packet.
[0109] When the forwarding node recognizes that the to-be-recognized connection identifier carried in the data packet belongs to the first connection identifier in the first connection identifier set, it can forward the data packet to the first terminal device through the first data transmission tunnel. That is to say, data transmission from the forwarding node to the first terminal device can be achieved through the first data transmission tunnel. When the forwarding node recognizes that the to-be-recognized connection identifier carried in the data packet belongs to the second connection identifier in the second connection identifier set, it can forward the data packet from the transmission gateway to the first terminal device through the second data transmission tunnel.
[0110] S303: In response to the to-be-recognized connection identifier being the second connection identifier belonging to the second connection identifier set, forward 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.
[0111] When the forwarding node recognizes that the to-be-recognized connection identifier carried in the data packet belongs to the second connection identifier in the second connection identifier set, it can forward the data packet to the second terminal device through 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. That is to say, data transmission between the transmission gateway and the second terminal device can be achieved through the third data transmission tunnel.
[0112] It should be noted that the forwarding node can be understood as a "checkpoint" set in the middle of 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 the data packet is transmitted in the aforementioned first data transmission tunnel or the second data transmission tunnel, it will be "intercepted" by the forwarding node. The forwarding node recognizes the to-be-recognized connection identifier in the data packet and performs different forwarding operations on the data packet according to the recognition result. Different forwarding operations correspond to different data transmission tunnels. When it is determined that the to-be-recognized connection identifier in the data packet belongs to the first connection identifier, the data packet is forwarded to the second terminal device using the target data transmission tunnel; when it is determined that the to-be-recognized connection identifier in the data packet belongs to the second connection identifier, the data packet is forwarded to the second terminal device using the third data transmission tunnel.
[0113] 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 identifies that the connection identifier to be identified in the data packet belongs to the first connection identifier, it will interrupt the continuous transmission of the data packet from the first terminal device to the transmission gateway, that is, "stop" the data packet, and directly forward it from the forwarding node to the second terminal device through the target data transmission tunnel. When the forwarding node identifies 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, "release" the data packet. After the data packet is transmitted to the transmission gateway, the transmission gateway will then forward it to the second terminal device through the third data transmission tunnel.
[0114] When the first terminal device establishes the first data transmission tunnel according to the obtained first connection identifier, the first data transmission tunnel established by the first terminal device is considered to be the 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 the 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, both the first data transmission tunnel and the target data transmission tunnel are data transmission tunnels established by the first terminal device through the first connection identifier. When the data packet sent by the first terminal device is transmitted through the first data transmission tunnel, it will pass through the forwarding node, and the forwarding node will "stop" it and forward it through the target data transmission tunnel to achieve data transmission between the first terminal device and the second terminal device.
[0115] For example, assume that the first terminal device is a 5G terminal device that hopes to perform branch transmission through 5G LAN technology but does not support 5G LAN technology. When the 5G terminal device establishes the first data transmission tunnel based on the first data identifier, the 5G terminal device will think that the data transmission tunnel is established with the transmission gateway. Then, at this time, whether the 5G terminal device supports 5G LAN technology or not, it can complete the establishment of this data transmission tunnel (between the terminal device and the transmission gateway).
[0116] 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. During the data transmission process using the first data transmission tunnel, it will pass through the forwarding node of the 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 the 5G LAN technology for data transmission. For data packets that can support the 5G LAN technology for transmission, the 5G LAN technology (that is, using the target data transmission tunnel) is used to forward the data packet to forward the data packet to the second terminal device. In this way, it can be realized that for 5G terminal devices that want to use the 5G LAN technology for branch transmission but do not support the 5G LAN technology itself, they can also use the forwarding node in the established data transmission tunnel to implement the application of the 5G LAN technology for branch interconnection.
[0117] As mentioned in the foregoing description, when the forwarding node recognizes that the to-be-recognized connection identifier carried in the data packet is a second connection identifier belonging to the second connection identifier set, the forwarding node will "release" the data packet, so that the data packet can continue to transmit the data to the transmission gateway through the second data transmission tunnel. When the data packet reaches the transmission gateway, the transmission gateway needs to perform further forwarding operations to enable the data packet to be successfully transmitted to the second terminal device.
[0118] The above-mentioned further forwarding operation by the transmission gateway needs to utilize the "third data transmission tunnel" mentioned in S103. The third data transmission tunnel can be understood as a data transmission tunnel established between the transmission gateway and the second terminal device through the third connection identifier. Through the third data transmission tunnel, it is possible to forward the data packet from the transmission gateway to the second terminal device, and realize the data transmission between the first terminal device and the second terminal device.
[0119] It should be noted that both the third connection identifier and the second connection identifier belong to the second connection identifier set. When the data packet is forwarded from the transmission gateway to the second terminal device through the third data transmission tunnel, the third connection identifier is carried in the data packet. Specifically, when the data packet is at 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 the information about the data transmission tunnel that needs to be passed through for the data transmission between the first terminal device and the second terminal device.
[0120] When the transmission gateway determines that the next data transmission tunnel for forwarding the data packet is the third data transmission tunnel, the transmission 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. The third connection identifier can be used to indicate that the type of data transmission tunnel through which the data packet will pass is the third data transmission tunnel.
[0121] Through the above-mentioned third data transmission tunnel, the forwarding of data packets from the transmission gateway to the second terminal device can be realized. By configuring the third connection identifier for the data packet by the transmission gateway, the data forwarding path for the data packet can be indicated as the third data transmission tunnel. In this way, the data transmission between the first terminal device and the second terminal device can be realized.
[0122] In the foregoing description, it is mentioned that when the forwarding node recognizes that the to-be-recognized connection identifier carried in the data packet belongs to the first connection identifier in the first connection identifier set, the forwarding node will "stop" the data packet and directly forward it to the second terminal device through the target data transmission tunnel, so that the data packet can be successfully transmitted to the second terminal device. During the process of forwarding the data packet to the second terminal device through the target data transmission speed, the switching between the public network address and the private network address needs to be performed.
[0123] In the above S102, it is mentioned that "forward the data packet to the second terminal device through the target data transmission tunnel". In a possible implementation manner, the method for forwarding the data packet through the target data tunnel can be: first, query the private 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. Then replace the public network destination address of the data packet with the private network access address, and forward the replaced data packet to the second terminal device through the target data transmission tunnel.
[0124] The above-mentioned public network destination address refers to the address of the second terminal device in the entire network environment, while the private network access address refers to the address corresponding to accessing the second terminal device within the local area network where the second terminal device is located. When the forwarding node recognizes that the to-be-recognized connection identifier carried in the data packet is the first connection identifier, it means that the forwarding node needs to perform data forwarding according to the target data transmission tunnel, which also means that the data transmission path needs to be converted from the public network data transmission to the second terminal device through the transmission gateway to the private network 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 private network 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.
[0125] There is a corresponding relationship between the above-mentioned public network destination address and the internal network access address. Through the public network destination address of the second terminal device carried in the data packet and the aforementioned corresponding relationship, the internal network access address of the second terminal device can be determined.
[0126] During the process of forwarding the data packet to the second terminal device through the target data transmission tunnel by the forwarding node as mentioned above, the public network destination address of the second terminal device carried in the data packet is converted into the internal network access address. When the target data transmission tunnel is the internal network data transmission channel, the data packet can access the second terminal device through the converted internal network access address and complete the data transmission.
[0127] As mentioned above, when the connection identifier carried in the data packet is the first connection identifier and the 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 by the forwarding node, the public network destination address of the second terminal device carried in the data packet is converted into the internal network access address. It should be noted that at this time, the internal network access address is carried in the data packet, and the corresponding relationship between the internal network access address and the first connection identifier.
[0128] In a possible way, the corresponding relationship between the first connection identifier and the internal network access address can be saved. The aforementioned corresponding relationship is used to determine the corresponding internal network access address through the corresponding relationship when the data packet to be forwarded carrying the first connection identifier is obtained next time.
[0129] That is to say, when the data packet is forwarded to the second terminal device through the target data transmission tunnel, the corresponding relationship between the internal network access address of the second terminal device carried in the data packet and the first connection identifier carried before the first data packet can be saved. Then when the forwarding node obtains the data packet carrying the above-mentioned saved first connection identifier next time, it can determine the corresponding internal network access address of the second terminal device according to the corresponding relationship between the first connection identifier and the internal network access address stored before.
[0130] By storing the corresponding relationship between the first connection identifier and the internal network access address as mentioned above, when the data packet carrying the first connection identifier is obtained, the corresponding internal network access address of the second terminal device can be determined according to the corresponding relationship, directly completing the access of the data packet to the second terminal device and completing the data transmission. In this way, it can be avoided to repeatedly obtain the internal network access address of the second terminal device, and thus the efficiency of data packet forwarding can be improved.
[0131] Through the data transmission method performed by the forwarding node mentioned above, when the forwarding node obtains a data packet sent by the first terminal device to the second terminal device, it can identify the connection identifier to be recognized carried in the data packet, and determine the subsequent data transmission tunnel for the data packet according to the recognition result, so that the data packet can be successfully forwarded to the second terminal device, and the data transmission between the first terminal device and the second terminal device can be completed. Through the forwarding node, it is possible to implement "shunting" processing of data packets according to different types of connection identifiers to be recognized. The forwarding node can determine the subsequent data transmission tunnel of the data packet by recognizing the connection identifier to be recognized carried in the data packet, and can implement branch transmission in the same network environment, so that the data transmission tunnels between the first terminal device and the second terminal device can be selectively referenced according to different connection identifiers.
[0132] It is mentioned above that the first terminal device and the second terminal device are in the first network environment. In a possible implementation manner, in the embodiment of the present application, the first network environment can be determined as the 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 higher than that of 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 preferentially selected. The reason is that using the 5G local area network tunnel can enable branch interconnection and data transmission between various terminal devices.
[0133] That is to say, 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 (5GLAN) tunnel. That is, 5GLAN is used to implement data transmission between the first terminal device and the second terminal device.
[0134] Next, the 5G LAN technology will be specifically introduced. 5G LAN is to use 5G technology to "group" and "build groups" of terminals to form a LAN network. Figure 6 This is an architecture diagram of 5G LAN provided for the embodiment of the present application, as Figure 6As shown, in a 5G network, the administrator can modify the data in the user database (the Unified Data Management (UDM) network element), perform service subscriptions for specified terminal (UE) numbers, and thus classify them into the same or different Virtual Network Groups (VN Groups). The data center provides the VN group information of the terminal numbers (such as VN Group1 and VN GroupN in the figure) and access policies to the management network elements of the 5G core network (5GC) (Session Management Function (SMF), Access and Mobility Management Function (AMF), Policy Control Function (PCF), etc.). Based on this information and policy rules, the management network elements form different LANS. This is 5G LAN. On the network side, the 5G LAN system can be divided into a 5G LAN controller (generally implemented by the AMF network element) and a 5G LAN forwarding unit (generally implemented by the User plane function (UPF) network element). Data interaction between 5G LAN and the 5G core network needs to establish a connection through the 5G base station.
[0135] Figure 7 This is a schematic structural diagram of a 5G LAN provided by an embodiment of the present application, as Figure 7 shown. 5G LAN supports direct access to each other through layer 2 communication under the same network segment, thereby realizing local networking, which can help users such as enterprises, schools, and families better interconnect terminal devices within a regional scope. For example, as a supplement to the enterprise's traditional dedicated line network, it can connect branch offices in different locations.
[0136] Currently, there is a problem that 5G terminal devices hope to perform branch transmission through 5G LAN technology, but the 5G terminal devices themselves do not support 5G LAN technology. In the embodiments of this application, the solution to the foregoing problem is as follows: establish a data transmission tunnel for the 5G terminal device, and at the same time make the 5G terminal device think that the data transmission tunnel is established with the transmission gateway. Then, at this time, whether the 5G terminal device supports 5G LAN technology or not, it can complete the establishment of the data transmission tunnel (between the terminal device and the transmission gateway). In fact, in the established data transmission tunnel, it will pass through the forwarding node of 5G LAN technology. When the 5G terminal device uses the established data transmission tunnel to transmit data, the forwarding node will "intercept" the transmitted data packet and determine whether the data packet can support data transmission through 5G LAN technology. For data packets that can support 5G LAN technology, use 5G LAN technology to forward the data packets. In this way, it can be realized that for 5G terminal devices that hope to use 5G LAN technology for branch transmission but do not support 5G LAN technology themselves, they can also use the forwarding nodes in the established data transmission tunnel to apply 5G LAN technology for branch interconnection.
[0137] By setting the first network environment as a 5G network environment and setting the first data transmission tunnel as a 5G local area network tunnel as described above. It can enable 5G terminal devices that hope to perform branch transmission through 5G LAN technology but do not support 5G LAN technology themselves to "intercept" and forward data packets through the forwarding nodes of 5G LAN technology in the data transmission tunnel, and realize branch interconnection with other terminal devices using 5G LAN technology.
[0138] As mentioned above, the connection identifier is carried in the data packet. In one possible implementation, the connection identifier can be carried in the connection identifier field in the data header of the data packet. That is to say, the data header of the data packet includes a connection identifier field, and the connection identifier field carries a first connection identifier or a second connection identifier for data transmission.
[0139] At the same time, in one possible implementation, the first data transmission tunnel and the second data transmission tunnel can be established according to the multi-channel user datagram network connection protocol MP-QUIC. At this time, the data packets sent by the first terminal device to the second terminal device mentioned above are QUIC data packets. The QUIC data header of the QUIC data packet mentioned above includes a connection identifier field, and the connection identifier field carries a first connection identifier or a second connection identifier for data transmission.
[0140] The following is a specific introduction to the above-mentioned MP-QUIC. The MP-QUIC protocol already has basic functions such as packet encapsulation, packet loss recovery, buffer management, and multi-path management. MP-QUIC is a multi-path version of single-path QUIC (Quick UDP Internet Connections). QUIC is mainly designed to solve some problems encountered in the actual use of the TCP protocol, such as header blocking, low congestion control efficiency, disconnection caused by IP / PORT changes, the overhead of the three-way handshake, and relatively low out-of-band control efficiency. Therefore, in order to solve the above-mentioned pain points in TCP transmission, a new transport protocol based on UDP (User Datagram Protocol) is designed, called QUIC. In summary, QUIC can basically be regarded as a transport protocol that replaces the TCP protocol. It is based on UDP and generally runs in the user space. The advantages of QUIC are: establishing a connection in 1 RTT (sending packets directly in 0 RTT with PSK cache); flexible congestion control mechanism, allowing free customization of congestion control algorithms; multiplexing, reducing the symptoms of head-of-line blocking; supporting connection migration; and having better performance than TCP. Multipath QUIC is an extension of QUIC. The following considerations were taken into account when designing MP-QUIC: (1) Reusing the original QUIC as much as possible, such as reusing the path validation and connection migration mechanisms of QUIC; (2) Using exactly the same packet header as QUIC; (3) Congestion control, round-trip time (RTT) measurement, and Path Maximum Transmission Unit (PMTU) detection are implemented based on each physical link; (4) A path is uniquely identified by an IP quadruple. Figure 8 This application example provides a schematic diagram of a QUIC protocol stack, as Figure 8 shown. The figure includes: the application layer (Application), the security architecture (Security), the transport layer (Transport), and the network layer (Network). In the application layer, there are the HTTP / 2 protocol and the QUIC protocol. In the security architecture, there are the Transport Layer Security (TLS) protocol and the QUIC protocol. In the transport layer, there are the TCP protocol, the UDP protocol, and the QUIC protocol. In the network layer, there is 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.
[0141] Generally, the QUIC protocol provides a secure and multiplexed connection for the reliable stream of application data, and the 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, correspondingly, QUIC extensions support unreliable data transmission, that is, a new Datagram frame type is defined. There are the following advantages to transmitting unreliable data through QUIC: (1) The handshake and authentication can be shared between reliable QUIC streams and unreliable QUIC packets, which can reduce the handshake latency compared to using the Datagram Transport Layer Security (DTLS) protocol for packet transmission; (2) QUIC uses a more detailed packet loss recovery mechanism than the DTLS handshake, which can make the packet loss recovery of QUIC data faster; (3) Although QUIC packets are unreliable, they can support acknowledgments, enabling applications to know whether the packets have been successfully received; (4) QUIC has a congestion control mechanism. These features are very useful for optimizing game applications and other real-time applications (such as RTC audio / video stream applications).
[0142] The format of a QUIC packet consists of two parts: a header and data. Figure 9 As shown in the structural schematic diagram of a QUIC packet format provided by an embodiment of this application, Figure 9 as shown, the Header is in plain text and contains 4 fields: Flags, Connection ID, QUIC Version, and Packet Number. The Data is encrypted and can contain one or more frames. Each frame is further divided into type and payload, where the payload is the application data.
[0143] At this time, when the packet is a QUIC packet, the connection identifier field can be the Connection ID (i.e., CID) in the QUIC packet header (i.e., Header) of the QUIC packet. The CID can be divided into a CID1 set (i.e., the first connection identifier set) and a CID2 set (i.e., the second connection identifier set). At this time, according to the CID (i.e., the first connection identifier) in the CID1 set, a first data transmission tunnel can be requested to be established with the transmission gateway, and according to the CID (i.e., the second connection identifier) in the CID2 set, a second data transmission tunnel can be requested to be established with the transmission gateway. When the first data transmission tunnel is a 5G local area network tunnel, it means that when the packet carries the CID (the first connection identifier) in the CID1 set, the packet will perform data transmission through the 5G local area network tunnel.
[0144] By performing set partitioning on the original CID field in the QUIC packet as mentioned above, the allocation of the CID field for the packet can be achieved, thereby determining the data transmission tunnel for packet transmission. When the terminal device hopes to achieve branch interconnection of the packet through 5G LAN technology, assuming that the first data transmission tunnel is set as the 5G LAN tunnel at this time, only the CID field in the packet needs to be modified to the CID in the CID1 set (i.e., the first connection identifier), which can achieve the branch interconnection of 5G LAN between terminal devices at a relatively low modification cost.
[0145] In an embodiment of the present application, a data transmission method in a multi-network scenario is further provided. Figure 10 As shown in the schematic diagram of a data transmission method in a multi-network scenario provided by an embodiment of the present application, Figure 10 As shown, 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 the 5G network 1 and the network 2. As introduced in the foregoing multi-network transmission system, the multi-network transmission system includes a multi-network transmission controller, end-side multi-network transmission units, i.e., multi-network transmission gateways.
[0146] In the 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 units. Specifically, the multi-network transmission controller divides the CID field in QUIC. Among them, the CID1 set (assuming there are 20,000 CID fields in total, from 0 to 19,999, then 0 to 9,999) is used for end-to-end branch interconnection communication, and the CID2 set (such as 10,000 to 19,999) 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.
[0147] When the end-side multi-network transmission unit 1 needs to perform data transmission with the end-side multi-network transmission unit 2, first, the end-side multi-network transmission unit 1 will notify the multi-network transmission controller that it needs to perform end-to-end branch interconnection communication with the end-side multi-network transmission unit 2. In response to the request of 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 (the first connection identifier) and M1 (the second connection identifier), and allocates them for the end-side transmission unit 1 to use. A CID value is randomly selected from the CID2 set, denoted as M2, and allocated for the end-side multi-network transmission unit 2 to use.
[0148] The multi-network transmission controller transmits the information of the CID1 set and the CID2 set to the 5G LAN controller.
[0149] The multi-network transmission controller notifies the end-side multi-network transmission unit 1 to establish a QUIC tunnel with CID = M1 between the multi-network transmission gateway; notifies the end-side multi-network transmission unit 2 to establish a QUIC tunnel with CID = M2 between the multi-network transmission gateway; 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. Among them, the multi-network transmission controller will notify the public network IP and port number of the end-side multi-network transmission unit 2 to the end-side multi-network transmission unit 1, and vice versa. The three established QUIC tunnels mentioned above all need to pass through the 5G LAN forwarding unit.
[0150] 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 according to the information of the CID1 set and the CID2 set recorded in the 5G LAN controller.
[0151] If it is recognized that the data packet is a QUIC data packet with CID belonging to CID2 (the CID is transmitted in plain text), after passing through the multi-network transmission gateway normally, it is forwarded to the end-side multi-network transmission unit 2 through the QUIC tunnel with CID = M2; if it is recognized that the data packet is a QUIC data packet with CID belonging to CID1, the 5G LAN forwarding unit will reverse-lookup the internal network IP and port number corresponding to the destination public network IP and port number, and replace the destination public network IP and port with the internal network 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 internal network IP and port number corresponding to this CID to avoid repeated queries next time.
[0152] It should be noted that the above-mentioned QUIC tunnel with CID = M1 is established between the end-side multi-network transmission unit 1 and the multi-network transmission gateway (i.e., the aforementioned second data transmission tunnel); the QUIC tunnel with CID = M2 is established between the end-side multi-network transmission unit 2 and the multi-network transmission gateway (i.e., the aforementioned third data transmission tunnel); and the QUIC tunnel with CID = N1 is established 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 (up to the 5G LAN forwarding unit) + the 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, it is preferred to use the QUIC tunnel with CID = N1 for data transmission between the end-side multi-network transmission unit 1 and the end-side multi-network transmission unit 2.
[0153] 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 fails to be established or a link break occurs, the end - side multi - network transmission unit 1 uses the QUIC tunnel with CID = M1 for transmission. When transmitting using the QUIC tunnel with CID = M1, when passing through the 5G LAN forwarding unit, the 5G LAN forwarding unit intercepts the data packet and determines the set to which the connection identifier carried in the data packet belongs according to 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 in the data packet belongs to the CID2 set, the data packet is "released" to continue data transmission on the QUIC tunnel with CID = M1. After the multi - network transmission gateway receives the data, it is then 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 elaborated here.
[0154] In a possible implementation manner, Figure 11 It is a signaling diagram of a data transmission method provided by an embodiment of this application. As shown in the figure, the method specifically includes:
[0155] S11: Initiate a connection request.
[0156] 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.
[0157] S12: Obtain a connection identifier.
[0158] 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.
[0159] S13: Establish a data transmission tunnel.
[0160] 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 according to the aforementioned two data connection identifiers. Specifically: request to establish the first data transmission tunnel with the transmission gateway according to the first connection identifier, and request to establish the second data transmission tunnel with the transmission gateway according to the second connection identifier.
[0161] S14: Send a data packet to the second terminal device.
[0162] After the data transmission tunnel is established, the first terminal device sends a data packet to the second terminal device.
[0163] S15: Identify the connection identifier to be recognized in the data packet.
[0164] During the process of the first terminal device transmitting data packets to the second terminal device through the above-mentioned first data transmission tunnel or the second data transmission tunnel, the data packets will pass through a forwarding node. At this time, the forwarding node will identify the connection identifier to be recognized carried in the data packet.
[0165] S16: If the connection identifier to be recognized is the first connection identifier, forward the data packet to the second terminal device through the target data transmission tunnel.
[0166] When the forwarding node recognizes that the connection identifier to be recognized carried in the data packet belongs to the first connection identifier in the first connection identifier set, it will forward the data packet to the second terminal device through the target data transmission tunnel.
[0167] S17: If the connection identifier to be recognized is the second connection identifier, forward the data packet to the second terminal device through the third data transmission tunnel
[0168] Figure 12 The signaling diagram of a data transmission method provided by an embodiment of the present application is shown in the figure. The specific implementation method of S17 mentioned above is as follows:
[0169] S171: The connection identifier to be recognized is the second connection identifier.
[0170] The forwarding node identifies the connection identifier to be recognized carried in the data packet, and recognizes that the connection identifier to be recognized is the second connection identifier.
[0171] S172: Transmit the data packet using the second data transmission tunnel.
[0172] When it is determined that the identifier to be recognized is the second connection identifier, the forwarding node transmits the data packet to the transmission gateway through the second data transmission tunnel.
[0173] S173: Forward the data packet to the second terminal device using the third data transmission tunnel.
[0174] When 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.
[0175] In the foregoing Figure 1-12 On the basis of the corresponding embodiment Figure 13 The schematic diagram of a data transmission device provided by an embodiment of the present application. This device is applied to the first terminal device. The data transmission device 1300 includes: an acquisition module 1301, a establishment module 1302, and a transmission module 1303.
[0176] The obtaining 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. 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.
[0177] The establishing 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.
[0178] 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.
[0179] In a possible implementation, the transmission module is configured to:
[0180] In response to the first data transmission tunnel being available, perform data transmission with the second terminal device through the first data transmission tunnel, and the transmitted data packet carries the first connection identifier.
[0181] In response to the first data transmission tunnel being unavailable, perform data transmission with the second terminal device through the second data transmission tunnel, and the transmitted data packet carries the second connection identifier.
[0182] In a possible implementation, the device is configured to:
[0183] When it is recognized that the first data transmission tunnel is successfully established and not disconnected, determine that the first data transmission tunnel is available.
[0184] When it is recognized that the first data transmission tunnel is not successfully established, or is successfully established but disconnected, determine that the first data transmission tunnel is unavailable.
[0185] In a possible implementation, the device is configured to:
[0186] 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.
[0187] In a possible implementation, for the first terminal device and the second terminal device, in a multi-network transmission system formed by the first data transmission tunnel, the second data transmission tunnel, and the data transmission link, a multi-network transmission controller is included, and the obtaining module is configured to:
[0188] In the first network environment, send a connection request for the second terminal device to the multi-network transmission controller.
[0189] Obtain a first connection identifier and a second connection identifier for the first network environment from the multi-network transmission controller.
[0190] In a possible implementation, the device is configured to:
[0191] The data packet header of the data packet includes a connection identifier field, and the connection identifier field carries the first connection identifier or the second connection identifier for data transmission.
[0192] In a possible implementation, the device is configured to:
[0193] 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.
[0194] In a possible implementation, the device is configured to:
[0195] 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.
[0196] Through the provided data transmission device, 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, it can obtain the first connection identifier and the second connection identifier by initiating a connection request. The first terminal device requests to establish a first data transmission tunnel and a second transmission tunnel with the transmission gateway in the first network environment respectively according to these two connection identifiers. The first terminal device can select the first data transmission tunnel or the second data transmission tunnel to send the data packet for the second terminal device based on the situation of the two data transmission tunnels, so as to forward the data packet to the second terminal device through the first network environment via the transmission gateway. It can be seen that by establishing two independent data transmission tunnels between two terminal devices in a single network environment, even if one data transmission tunnel has a transmission problem, the data transmission can continue through the other data transmission tunnel. The dual data transmission tunnels provide an effective fault tolerance basis and greatly improve the stability of data transmission.
[0197] Figure 14 It 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;
[0198] The determining module is configured to determine a connection identifier to be recognized carried in the data packet when obtaining a data packet sent from a first terminal device to a second terminal device, where the first terminal device and the second terminal device are in the first network environment;
[0199] The first forwarding module is configured to, in response to the connection identifier to be recognized being a first connection identifier belonging to a first connection identifier set, forward 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;
[0200] The second forwarding module is configured to, in response to the connection identifier to be recognized being a second connection identifier belonging to a second connection identifier set, forward 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.
[0201] In a possible implementation, the apparatus is configured to:
[0202] 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;
[0203] 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.
[0204] In a possible implementation, the first forwarding module is configured to:
[0205] Query 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;
[0206] Replace the public network destination address of the data packet with the internal network access address, and forward the replaced data packet to the second terminal device through the target data transmission tunnel.
[0207] In a possible implementation, the apparatus is configured to:
[0208] Save the correspondence between the first connection identifier and the internal network access address, where the correspondence is used to determine the corresponding internal network access address according to the correspondence when obtaining a data packet to be forwarded carrying the first connection identifier next time.
[0209] Through a data transmission device provided above, for a first terminal device and a second terminal device in a first network environment. When the first terminal device performs data transmission to the second terminal device through a first or second data transmission tunnel, when a forwarding node in the first network environment obtains a data packet sent by the first terminal device to the second terminal device, it will identify the connection identifier to be recognized in the data packet, and then determine whether the data transmission tunnel for forwarding the data packet is a third data transmission tunnel or a target data transmission tunnel according to the recognition result. In this way, the forwarding unit can be used to "divert" the data transmission tunnels for data packets carrying different connection identifiers to be recognized, so as to complete the data transmission between the first terminal device and the second terminal device.
[0210] An embodiment of the present application further provides a data transmission system. Figure 15 As shown in the structural schematic diagram of a data transmission system provided by an embodiment of the present application, Figure 15 As shown, the data transmission system 1500 includes: a first terminal device 1501 and a forwarding node 1502. The first terminal device is used to execute the steps performed by the first terminal device in the foregoing embodiments, and the forwarding node is used to execute the steps performed by the forwarding node in the foregoing embodiments.
[0211] An embodiment of the present application further provides a computer device. The computer device is the computer device described above and may include a terminal device or a server. The foregoing data transmission device may be configured in the computer device. The computer device will be introduced below with reference to the accompanying drawings.
[0212] If the computer device is a terminal device, please refer to Figure 16 As shown, an embodiment of the present application provides a terminal device. Taking the terminal device as a mobile phone as an example:
[0213] Figure 16 The block diagram of a part of the structure of a mobile phone related to the terminal device provided by an embodiment of the present application is shown. Refer to Figure 16 , the mobile phone includes: 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 and other components. Those skilled in the art can understand that Figure 16 The structure of the mobile phone shown in
[0214] does not limit the mobile phone and may include more or fewer components than shown, or combine some components, or arrange different components. Figure 16 The following components of the mobile phone will be specifically introduced in conjunction with
[0215] The RF circuit 1410 can be used for receiving and transmitting information or signals during communication. Specifically, it receives the downlink information from the base station and processes it with the processor 1480. Additionally, it transmits the uplink data to the base station.
[0216] The memory 1420 can be used to store software programs and modules. The processor 1480 executes various functional applications and data processing of the mobile phone by running the software programs and modules stored in the memory 1420. The memory 1420 mainly includes a program storage area and a data storage area. Among them, the program storage area can store the operating system, application programs required for at least one function (such as the sound playback function, image playback function, etc.); the data storage area can store the data created according to the use of the mobile phone (such as audio data, phone book, etc.). In addition, the memory 1420 can include high-speed random access memory and can also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other non-volatile solid-state storage devices.
[0217] The input unit 1430 can be used to receive input digital or character information, and generate key signal inputs related to the user settings and function control of the mobile phone. Specifically, the input unit 1430 can include a touch panel 1431 and other input devices 1432.
[0218] The display unit 1440 can be used to display the information input by the user or the information provided to the user, as well as various menus of the mobile phone. The display unit 1440 can include a display panel 1441.
[0219] The mobile phone can also include at least one sensor 1450, such as a light sensor, a motion sensor, and other sensors.
[0220] The audio circuit 1460, speaker 1461, and microphone 1462 can provide an audio interface between the user and the mobile phone.
[0221] WiFi belongs to short-range wireless transmission technology. The mobile phone can help users send and receive emails, browse the web, and access streaming media through the WiFi module 1470, providing users with wireless broadband Internet access.
[0222] The processor 1480 is the control center of the mobile phone, connecting various parts of the entire mobile phone using various interfaces and lines. By running or executing the software programs and / or modules stored in the memory 1420, and by calling the data stored in the memory 1420, it executes various functions of the mobile phone and processes data.
[0223] The mobile phone also includes a power supply 1490 (such as a battery) for powering each component.
[0224] In this embodiment, the processor 1480 included in the terminal device further has the following functions:
[0225] By initiating a connection request for a second terminal device in a first network environment, obtaining a first connection identifier and a second connection identifier for 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;
[0226] 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;
[0227] Perform data transmission with the second terminal device through the first data transmission tunnel or the second data transmission tunnel.
[0228] Alternatively, the processor 1480 further has the following functions:
[0229] When obtaining a data packet sent from a first terminal device to a second terminal device, determine the 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;
[0230] In response to the connection identifier to be recognized being a first connection identifier belonging to the first connection identifier set, forward 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;
[0231] In response to the connection identifier to be recognized being a second connection identifier belonging to the second connection identifier set, forward the data packet to the 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.
[0232] If the computer device is a server, the embodiments of the present application further provide a server. Please refer to Figure 17 as shown Figure 17This is the structural diagram of server 1500 provided by the embodiments of the present application. Server 1500 may vary significantly due to configuration or performance differences, and may include one or more central processing units (CPUs) 1522 (e.g., one or more processors) and a memory 1532, and one or more storage media 1530 (e.g., one or more mass storage devices) for storing application programs 1542 or data 1544. Among them, the memory 1532 and the storage media 1530 may be transient storage or persistent storage. The programs stored in the storage media 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. Further, the central processing unit 1522 may be configured to communicate with the storage media 1530 and execute a series of instruction operations in the storage media 1530 on the server 1500.
[0233] Server 1500 may also include one or more power supplies 1526, one or more wired or wireless network interfaces 1550, one or more input / output interfaces 1558, and / or one or more operating systems 1541, such as Windows Server TM , Mac OS X TM , Unix TM , Linux TM , FreeBSD TM and so on.
[0234] The steps performed by the server in the above embodiments may be based on Figure 17 the server structure shown.
[0235] In addition, the embodiments of the present application also provide a storage medium for storing a computer program for executing the method provided in the above embodiments.
[0236] The embodiments of the present application also provide a computer program product including a computer program, which, when running on a computer device, causes the computer device to execute the method provided in the above embodiments.
[0237] Those of ordinary skill in the art can understand that all or part of the steps for implementing the above method embodiments can be completed by hardware related to program instructions. The foregoing program can be stored in a computer-readable storage medium. When the program is executed, it performs the steps including the above method embodiments; and the foregoing storage medium may be at least one of the following media: read-only memory (ROM), RAM, magnetic disk, or optical disc, etc., which can store computer programs.
[0238] In the embodiments of the present application, the term "module" or "unit" refers to a computer program with a predetermined function or a part of a computer program, which 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 a processing circuit or a memory), or a combination thereof. Similarly, one 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 a part of an overall module or unit that includes the function of that module or unit.
[0239] It should be noted that the embodiments in this specification are all described in a progressive manner. For the same or similar parts among the embodiments, reference can be made to each other. The key point of each embodiment is to illustrate the differences from other embodiments. In particular, for the embodiments of the device and the system, since they are basically similar to the method embodiments, the description is relatively simple. For the relevant parts, reference can be made to the partial description of the method embodiments. The device and system embodiments described above are only illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. A person of ordinary skill in the art can understand and implement it without creative work.
[0240] As described above, this is only a specific implementation manner of the present application, but the protection scope 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 covered by the protection scope of the present application. Moreover, on the basis of the implementation manners provided in the above aspects, the present application can be further combined to provide more implementation manners. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.
Claims
1. A data transmission method, characterized in that, the method is executed by a first terminal device, and the method includes: obtaining 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, characterized in that, 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, characterized in that, 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 claim 1, characterized in that, 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, characterized in that, 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 obtaining 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 a 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 claim 1, characterized in that, a connection identifier field is included in the data packet 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, characterized in that, The first data transmission tunnel and the second data transmission tunnel are established according to the Multipath QUIC (MP-QUIC) protocol for user data packet network connection, 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 5G network environment of the fifth-generation mobile communication technology, and the first data transmission tunnel is a 5G local area network tunnel.
9. A data transmission device, wherein, applied to a first terminal device, 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 data 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, wherein, the method 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 obtained, 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 belonging to 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 belonging to 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, wherein, the 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; Replace the public network destination address of the data packet with the intranet access address, and forward 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: saving the corresponding relationship between the first connection identifier and the intranet access address, and the corresponding relationship is used to determine the corresponding intranet access address through the corresponding relationship when obtaining the data packet to be forwarded carrying the first connection identifier next time.
14. A data transmission device, wherein, applied to a forwarding node in a first network environment, the device includes: a determination module, a first forwarding module and a 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 by a first terminal device to a second terminal device, and 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 a target data transmission tunnel in response to the connection identifier to be recognized being a first connection identifier belonging to the first connection identifier set, and 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 a transmission gateway in the first network environment through a second data transmission tunnel in response to the connection identifier to be recognized being a second connection identifier belonging to the second connection identifier set, so that the transmission gateway forwards the data packet to the second terminal device through a third data transmission tunnel.
15. A data transmission system, wherein, 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, wherein, 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, wherein, the computer-readable storage medium is configured to store a computer program, and the computer program realizes 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 running on a computer device, causes the computer device to execute the method according to any one of claims 1-8 or 10-13.