Data transmission method and communication device
Through the interaction between the terminal device and the server, the serial number of application data is provided, and the data migration is used using TCP or MPTCP connections, which solves the business continuity problem during server switching and improves the user experience.
Patent Information
- Application Number
- CN202110255735.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2017-03-30
- Publication Date
- 2025-08-12
- Estimated Expiration
- 2037-03-30
AI Technical Summary
When a user equipment moves from the source server to the target server, the prior art leads to poor business continuity, affecting the user experience.
Through the interaction between the terminal device and the server, the serial number of the received application data is provided, ensuring the continuity of data transmission when switching the server, and data migration is performed using TCP or MPTCP connections.
It realizes business continuity during server switching and improves user experience.
Smart Images

Figure CN113055373B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of wireless communication technology, and in particular to a data transmission method and communication equipment. Background Art
[0002] At present, some applications with high requirements for transmission delay, such as videos and online games, will set up servers in different areas to facilitate user equipment (UE) to select a server that is closer to the user to transmit the application data. However, for UEs with high mobility, when the UE moves from the service range of the source server to the service range of the target server, in some cases the UE will still transmit the application data to the source server that was closer to the UE before the movement, and will not transmit the application data through the target server that is closer to the UE after the movement. If the application data is to be switched from transmission between the UE and the source server to transmission between the UE and the target server, the UE must first release the connection between the UE and the source server, and then re-establish the connection between the UE and the target server. This process will result in poor business continuity and affect user experience.
[0003] Therefore, how to migrate application data transmitted through the source server to the target server while ensuring business continuity has become an urgent problem to be solved. Summary of the Invention
[0004] The present application describes a data transmission method and a communication device.
[0005] On the one hand, an embodiment of the present application provides a data transmission method, the method comprising: a first device sends a first message to a second device, the first message being used to instruct the second device to stop sending application data to the first device. The first device receives first indication information from the second device, the first indication information being used to indicate the serial number of the data of the application that the second device has received from the first device. The first device sends second indication information to the second device, the second indication information being used to indicate the serial number of the data of the application that the first device has received from the second device. The first device is a terminal device and the second device is a first server, or the first device is a first server and the second device is a terminal device. After the connection between the terminal device and the second server is established, the first indication information and the second indication information are used to transmit the data of the application through the connection. For example, the connection includes a Transmission Control Protocol TCP connection or a Multipath Transmission Control Protocol MPTCP substream.
[0006] Through the solution provided by this embodiment, for example, when the terminal device or the first server learns that the first server no longer meets the conditions for providing applications to the terminal device after the terminal device moves, the terminal device and the first server interact to provide the other end with the serial number of the data of the application that they have received. After the terminal device establishes a connection with the second server, the application data can be transmitted through the newly established connection based on the acquired application data serial number. In this way, the application provided by the first server can be migrated to the second server. In addition, since the data transmission of the application through the connection between the terminal device and the second server takes into account the data serial number of the application received by the terminal device before switching the server for the terminal device and the data serial number of the application received by the first server, business continuity can also be guaranteed, thereby improving the user experience of the terminal device.
[0007] In one possible design, the method further includes: the first device learning that the first server does not meet the conditions for providing the application to the terminal device, and learning a second server that can provide the application to the terminal device. For example, the condition includes at least one of the following: the latency for transmitting the application data between the terminal device and the first server is less than or equal to a first value; or the packet loss rate for transmitting the application data between the terminal device and the first server is less than or equal to a second value. Thus, when the latency or packet loss rate for transmitting the application data between the terminal device and the first server exceeds a certain value, the first device is triggered to learn that the first server does not meet the conditions for providing the application to the terminal device.
[0008] In one possible design, the first device learns about the second server that can provide applications for the terminal device, including: the first device queries the domain name system DNS to learn that the second server can provide applications, and obtains address information of the second server.
[0009] In one possible design, after the first device learns that the first server does not meet the conditions for providing applications to the terminal device, the method further includes: the first device caches data to be sent to the second device.
[0010] In one possible design, the second indication information further includes the address information of the second server. Thus, the second device can be notified of the address information of the second server via the second indication information.
[0011] In one possible design, if the first device is a terminal device and the second device is a first server, the method also includes: the terminal device receives a second message from the first server or the second server, and the second message is used to trigger the terminal device to transmit the data of the application through a connection with the second server according to the first indication information and the second indication information.
[0012] In one possible design, if the first device is a first server and the second device is a terminal device, the method also includes: the first server and the second server synchronize the context of the terminal device, and the context of the terminal device includes the above-mentioned first indication information and second indication information.
[0013] On the other hand, an embodiment of the present application also provides a data transmission method, which includes: a second device receives a first message from a first device, the first message being used to instruct the second device to stop sending application data to the first device. The second device stops sending application data to the first device; sends first indication information to the first device, the first indication information being used to indicate the serial number of the application data that the second device has received from the first device; and receives second indication information from the first device, the second indication information being used to indicate the serial number of the application data that the first device has received from the second device. Wherein, the first device is a terminal device and the second device is a first server, or the first device is a first server and the second device is a terminal device. After the connection between the terminal device and the second server is established, the first indication information and the second indication information are used to transmit the application data through the newly established connection. For example, the connection includes a TCP connection or an MPTCP substream.
[0014] Through the solution provided by this embodiment, for example, when the terminal device or the first server learns that the first server no longer meets the conditions for providing applications to the terminal device after the terminal device moves, the terminal device and the first server interact to provide the other end with the serial number of the data of the application that they have received. After the terminal device establishes a connection with the second server, the application data can be transmitted through the newly established connection based on the acquired application data serial number. In this way, the application provided by the first server can be migrated to the second server. In addition, since the data transmission of the application through the connection between the terminal device and the second server takes into account the data serial number of the application received by the terminal device before switching the server for the terminal device and the data serial number of the application received by the first server, business continuity can also be guaranteed, thereby improving the user experience of the terminal device.
[0015] In one possible design, after the second device receives the first message from the first device, the method further includes: the second device caches data to be sent to the first device.
[0016] In one possible design, the method further includes: the second device obtaining address information of the second server. For example, the second indication information also carries the address information of the second server, and the second device obtains the address information of the second server from the second indication information; or, after receiving the first message, the second device queries a domain name system (DNS) to obtain information that the second server can provide applications for the terminal device and obtains the address information of the second server.
[0017] In one possible design, if the first device is a terminal device and the second device is a first server, the method further includes: the first server synchronizing a context of the terminal device with the second server, where the context of the terminal device includes first indication information and second indication information. Furthermore, the method further includes: after the context synchronization between the first server and the second server is completed, the first server sending a second message to the terminal device, where the second message is used to trigger the terminal device to transmit application data with the second server via the connection.
[0018] In one possible design, if the first device is a first server and the second device is a terminal device, the method also includes: the terminal device receives a second message from the first server or the second server, and the second message is used to trigger the terminal device to transmit application data through a connection with the second server.
[0019] On the other hand, an embodiment of the present application provides a communication device (such as a terminal device or a server), which has the function of implementing the behavior of the first device in the above method. The function can be implemented by hardware, or it can be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the structure of the communication device includes a processor and a transceiver, and the processor is configured to process the communication device to perform the corresponding function in the above method. The transceiver is used to implement communication between the communication device and the second device. The communication device may also include a memory, which is used to couple with the processor and store program instructions and data necessary for the communication device.
[0020] On the other hand, an embodiment of the present application provides a communication device (such as a server or a terminal device), which has the function of implementing the behavior of the second device in the above method. The function can be implemented by hardware, or it can be implemented by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions. In one possible design, the structure of the communication device includes a processor and a transceiver, and the processor is configured to process the communication device to perform the corresponding functions in the above method. The transceiver is used to implement communication between the communication device and the first device. The short message function entity device may also include a memory, which is used to couple with the processor and store the necessary program instructions and data for the short message function entity device.
[0021] On the other hand, an embodiment of the present application provides a computer-readable storage medium, which stores instructions. When the computer-readable storage medium is run on a computer, it enables the computer to execute the methods described in the above aspects.
[0022] On the other hand, an embodiment of the present application provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the methods described in the above aspects.
[0023] Through the solution provided by this embodiment, for example, when the terminal device or the first server learns that the first server no longer meets the conditions for providing applications to the terminal device after the terminal device moves, the terminal device and the first server interact to provide the other end with the serial number of the data of the application that they have received. After the terminal device establishes a connection with the second server, the application data can be transmitted through the newly established connection based on the acquired application data serial number. In this way, the application provided by the first server can be migrated to the second server. In addition, since the data transmission of the application through the connection between the terminal device and the second server takes into account the data serial number of the application received by the terminal device before switching the server for the terminal device and the data serial number of the application received by the first server, business continuity can also be guaranteed, thereby improving the user experience of the terminal device. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] In order to more clearly illustrate the embodiments of the present application, the following briefly introduces the drawings required for describing the embodiments.
[0025] Figure 1 A schematic diagram of a communication system provided in an embodiment of the present application;
[0026] Figure 2 and Figure 3 A flowchart of a data transmission method provided in an embodiment of the present application;
[0027] Figure 4 and Figure 5A A signaling interaction diagram of a data transmission method provided in an embodiment of the present application;
[0028] Figure 5B A schematic diagram of transmitting application data via MPTCP provided in an embodiment of the present application;
[0029] Figure 6 and Figure 7 A signaling interaction diagram of a data transmission method provided in an embodiment of the present application;
[0030] Figure 8A and Figure 8B Schematic diagrams of the structures of the first device and the second device provided in the embodiments of the present application respectively; and
[0031] Figure 9A and Figure 9B They are schematic diagrams of the structures of the terminal device and server provided in the embodiments of the present application respectively. DETAILED DESCRIPTION
[0032] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.
[0033] The embodiments of this application are based on Figure 1 The illustrated communication system proposes a solution applicable to next-generation mobile network architectures, such as 5G networks. For example, in a 5G mobile network architecture, the control plane and forwarding plane functions of a mobile gateway are decoupled. These separated control plane functions are then merged with traditional 3GPP control elements (MMEs) and policy and charging rules functions (PCRFs) to form a unified control plane (CP) device. The user plane (UP) device implements the user plane functions of a serving gateway (SGW) and a packet data network gateway (PGW) (SGW-U and PGW-U).
[0034] In addition, the embodiments of the present application can also be applied to other future-oriented communication technologies. As long as the communication system using the new communication technology includes a server that can provide applications for terminal devices, the technical solutions provided by the embodiments of the present application are applicable. The system architecture and business scenarios described in the embodiments of the present application are intended to more clearly illustrate the technical solutions of the embodiments of the present application and do not constitute a limitation on the technical solutions provided by the embodiments of the present application. It is known to those skilled in the art that with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of the present application are also applicable to similar technical problems.
[0035] like Figure 1 As shown, an embodiment of the present application provides a communication system. For example, the communication system includes a terminal device 102, access network devices 104a and 104b, a control plane device 106, user plane devices 108a and 108b, a domain name system (DNS) 110, and servers 112a and 112b.
[0036] The terminal device 102 (terminal device) involved in the embodiments of the present application may include various handheld devices with wireless communication functions, vehicle-mounted devices, wearable devices, computing devices, or other processing devices connected to a wireless modem. The terminal device may also be referred to as user equipment (UE), mobile station (MS), terminal, and may also include a subscriber unit, cellular phone, smart phone, wireless data card, personal digital assistant (PDA), computer, tablet computer, wireless modem, handheld device, laptop computer, cordless phone or wireless local loop (WLL) station, machine type communication (MTC) terminal, etc.
[0037] The access network device 104a or 104b involved in the embodiments of the present application is a device deployed in a wireless access network to provide wireless communication functions for the terminal device 102. The access network device may include various forms of base stations, such as macro base stations, micro base stations (also known as small stations), relay stations, access points, etc. In systems using different wireless access technologies, the name of the device with base station functions may vary. For example, in LTE systems, it is called an evolved NodeB (eNB or eNodeB), and in third generation (3G) systems, it is called a NodeB.
[0038] The control plane device 106 involved in the embodiments of the present application can be responsible for the attachment of terminal devices, mobility management, tracking area update process, session management of terminal devices, selection of user plane devices (such as user plane devices 108a or 108b), reselection of user plane devices, network protocol (Internet Protocol, IP) address allocation, quality of service (quality of service, QoS) control, and establishment, modification and release of resources.
[0039] The user plane device 108a or 108b involved in the embodiments of the present application can be responsible for processing functions such as forwarding and statistics of terminal device messages. For example, the user plane device can implement the user plane functions of the SGW and PGW. The user plane device can also be a software defined network (SDN) switch.
[0040] The DNS 110 involved in the embodiment of the present application is a database that maps domain names and IP addresses to each other. By querying the DNS, you can obtain the IP address corresponding to the domain name.
[0041] The server 112a or 112b involved in the embodiments of the present application may be responsible for providing application services for various services of the terminal device. The server may also be called an application server (AS), an application management platform, or a mobile edge computing (MEC) platform.
[0042] exist Figure 1 In a communication system, when terminal device 102 is in a first area, it can exchange application data with server 112a via access network device 104a and user plane device 108a to obtain the application provided by server 112a. Furthermore, server 112b can also provide the application. According to the solution of the present application, when terminal device 102 moves from the first area to the second area, it can exchange application data with server 112b via access network device 104b and user plane device 108b, thereby obtaining the same service and ensuring business continuity.
[0043] An embodiment of the present invention discloses a data transmission method, which includes:
[0044] The first device sends a first message to the second device, where the first message is used to instruct the second device to stop sending application data to the first device;
[0045] The first device receives first indication information from the second device, where the first indication information is used to indicate a sequence number of the application data that the second device has received from the first device;
[0046] The first device sends second indication information to the second device, where the second indication information is used to indicate a serial number of the application data that the first device has received from the second device.
[0047] The first device is a terminal device (e.g., terminal device 102), and the second device is a first server (e.g., server 112a); or the first device is a first server (e.g., server 112a), and the second device is a terminal device (e.g., terminal device 102). After a connection is established between the terminal device 102 and the second server (e.g., server 112b), the first indication information and the second indication information are used to transmit data of the application via the connection.
[0048] The following will be combined Figure 2 and Figure 3 The data transmission method provided in the embodiment of the present application is introduced. Figure 2 Applicable to the scenario where the first device is the terminal device 102 and the second device is the first server 112a. In this case, the above method can be used Figure 2 In other words, the terminal device 102 initiates the instruction to the other end to stop sending data. Figure 3 Applicable to the scenario where the first device is the first server 112a and the second device is the terminal device 102. In this case, the above method can be used Figure 3 In other words, the initiation of the instruction to the other end to stop sending data is performed by the first server 112a. Figure 2 and Figure 3 Provide a description.
[0049] exist Figure 2 In the example of , the data transmission method provided by this application includes:
[0050] In step 202, the terminal device 102 learns that the first server (eg, server 112a) does not meet the conditions for providing applications to the terminal device, and learns a second server (eg, server 112b) that can provide applications to the terminal device.
[0051] For example, server 112a is configured to provide an application to terminal device 102 in a first area. When terminal device 102 moves from the first area to a second area, terminal device 102 first determines whether server 112a meets the conditions for providing the application to terminal device 102. This condition includes, but is not limited to, at least one of the following: the latency for transmitting application data between terminal device 102 and server 112a is less than or equal to a first value; or the packet loss rate for transmitting application data between terminal device 102 and server 112a is less than or equal to a second value. For example, terminal device 102 periodically or in real time monitors the latency or packet loss rate for transmitting application data between terminal device 102 and server 112a. If the latency for transmitting application data between terminal device 102 and server 112a is greater than the first value, or the packet loss rate for transmitting application data between terminal device 102 and server 112a is greater than the second value, it can be determined that server 112a no longer meets the above conditions for providing the application to terminal device 102. If the terminal device 102 determines that the server 112a no longer meets the above conditions for providing the application to the terminal device 102, the terminal device 102 is informed that other servers can provide the application to the terminal device 102.
[0052] For example, the terminal device 102 queries the DNS to learn that the second server (such as server 112b) can provide the application and obtains the address information of server 112b. For example, the terminal device 102 queries the DNS based on the location information of the terminal device to obtain the address information of server 112b.
[0053] If the server 112a still meets the conditions for providing applications to the terminal device 102, the terminal device continues to access the server 112a and transmit uplink data and / or downlink data with the server 112a, which is not shown in the figure.
[0054] In step 204, the terminal device 102 sends a first message to the server 112a, instructing the server 112a to stop sending the downlink data of the application to the terminal device 102. Accordingly, after receiving the first message, the server 112a stops sending the downlink data of the application to the terminal device 102. In addition, optionally, after receiving the first message, the server 112a caches the downlink data to be sent to the terminal device 102.
[0055] For example, the first message is a FIN message. A FIN message may also be referred to as a FIN packet or a FIN message. Optionally, the first message may carry an indicator that instructs the server 112a to stop sending downlink data of the application to the terminal device 102.
[0056] In step 206, the server 112a sends first indication information to the terminal device 102, where the first indication information is used to indicate the sequence number of the uplink data of the application received by the server 112a from the terminal device 102. Accordingly, the terminal device 102 receives the first indication information from the server 112a.
[0057] For example, the first indication information may be sent via an ACK message. That is, the ACK message includes the first indication information. The ACK message may also be referred to as an ACK packet or an ACK message. If the terminal device 102 transmits data with the server 112a via a TCP connection before moving to the second area, the sequence number in step 206 is the TCP sequence number of the uplink data of the application that the server 112a has received from the terminal device 102. If the terminal device 102 transmits data with the server 112a via an MPTCP connection (for example, subflow subflow1 of the MPTCP connection) before moving to the second area, the sequence number in step 206 is the MPTCP sequence number of the uplink data of the application that the server 112a has received from the terminal device 102.
[0058] Optionally, server 112a further sends a FIN message to terminal device 102, instructing terminal device 102 to stop sending the application's uplink data to server 112a. Accordingly, upon receiving the FIN message, terminal device 102 stops sending the application's uplink data to server 112a. Furthermore, upon receiving the FIN message, terminal device 102 optionally caches the uplink data to be sent to server 112a.
[0059] In step 208, terminal device 102 sends second indication information to server 112a. The second indication information is used to indicate the sequence number of the downlink data of the application that terminal device 102 has received from server 112a. In response, server 112a receives the second indication information from terminal device 102. The first indication information and the second indication information can be used to transmit the application data via the connection between terminal device 102 and server 112b.
[0060] For example, the second indication information may be sent via an ACK message. That is, the ACK message includes the second indication information. The ACK message may also be referred to as an ACK packet or an ACK message. Similarly, if the terminal device 102 transmits data with the server 112a via a TCP connection before moving to the second area, the sequence number in step 208 is the TCP sequence number of the downlink data of the application that the terminal device 102 has received from the server 112a. If the terminal device 102 transmits data with the server 112a via an MPTCP connection (for example, subflow subflow1 of the MPTCP connection) before moving to the second area, the sequence number is the MPTCP sequence number of the downlink data of the application that the terminal device 102 has received from the server 112a.
[0061] Optionally, the second indication information may also carry address information of the server 112b.
[0062] Through the above method, when terminal device 102 moves and learns that server 112a no longer meets the requirements for providing applications, terminal device 102 learns of a second server that can provide applications for the terminal device. Furthermore, terminal device 102 and server 112a interact to provide each other with the data sequence numbers of the applications they have received. Once terminal device 102 establishes a connection with second server 112b, application data can be transmitted via the connection between terminal device 102 and second server 112b based on the obtained application data sequence numbers. Thus, applications provided by source server 112a can be migrated to target server 112b. Furthermore, because application data transmission via the connection between terminal device 102 and second server 112b takes into account the application data sequence numbers received by terminal device 102 and first server 112a before the server switch, service continuity is ensured, thereby improving the user experience of the terminal device.
[0063] Optionally, before step 204 , a connection between the terminal device 102 and the second server (eg, server 112 b ) may be established through step 203 .
[0064] For example, the connection includes a sub-flow of a TCP connection or an MPTCP connection. For example, if the terminal device 102 transmits data with the server 112a via a TCP connection before moving to the second area, then in step 203, the terminal device 102 may create a new TCP connection between the terminal device 102 and the server 112b. If the terminal device 102 transmits data with the server 112a via sub-flow 1 of the MPTCP connection before moving to the second area, then in step 203, the terminal device 102 may create a new sub-flow of the MPTCP connection between the terminal device 102 and the server 112b. Based on the different types of connections, Figure 4 and Figure 5A 、 Figure 5B Further description is given below. In addition, the connection can also be achieved through a Quick UDP Internet Connection (QUIC) connection.
[0065] Optionally, in step 209a, the server 112a synchronizes the context of the terminal device with the server 112b.
[0066] For example, server 112a first needs to know the address information of server 112b with which the context is to be synchronized. In one implementation, when the second indication information carries the address information of server 112b, server 112a learns the address information of server 112b from the received second indication information. In another implementation, server 112a may also query DNS after receiving the first message to learn that server 112b can provide the application and obtain the address information of server 112b. For example, server 112a may query DNS based on the location information of terminal device 102 to obtain the address information of server 112b. Since both terminal device 102 and server 112a query DNS based on the location information of terminal device 102, it is guaranteed that both of them query the same second server, namely server 112b.
[0067] After the server 112a learns the address information of the server 112b, it can synchronize the context of the terminal device with the server 112b.
[0068] For example, the context of the terminal device includes the application layer information and transmission status information of the terminal device stored on the server 112a. For example, the transmission status information includes window information and a sequence number. Optionally, the sequence number includes the sequence number of the uplink data of the application that the server 112a has received from the terminal device 102 (i.e., the first indication information). In addition, the sequence number also includes the sequence number of the downlink data of the application that the terminal device 102 has received from the server 112a obtained by the server 112a through step 208 (i.e., the second indication information). In addition, the context of the terminal device also includes the downlink data cached by the server 112a to be sent to the terminal device 102. Optionally, the context of the terminal device can be synchronized by copying the memory of the server 112a to the server 112b.
[0069] After synchronization is complete, server 112a sends a second message to terminal device 102 in step 209b1; alternatively, server 112b sends a second message in step 209b2. This second message triggers terminal device 102 to transmit application data with server 112b via the connection established in step 203, based on the first and second instructions. Accordingly, after receiving the second message, terminal device 102 transmits the application data with server 112b via the connection established in step 203, based on the first and second instructions, in step 210.
[0070] Optionally, the second message is used to indicate that the context synchronization has been completed, triggering the terminal device to send a message of the cached uplink data. For example, the second message is an indication message (for example, it can be called a trigger cache to send an indication message). Alternatively, the second message includes indication information for indicating that the context synchronization has been completed. Optionally, the second message is a SYN message, which can also be called a SYN packet or a SYN message.
[0071] In step 210, the terminal device 102 transmits the application data through the connection established in step 203 according to the first indication information and the second indication information. The terminal device 102 transmitting data includes at least one of the following: the terminal device 102 sends uplink data to the server 112b; the terminal device 102 receives downlink data from the server 112b.
[0072] For example, the terminal device 102 can send the cached uplink data to the server 112b through the connection. Since the terminal device 102 has obtained the first indication information (i.e., the sequence number of the uplink data of the application that the server 112a has received from the terminal device 102), and the server 112b has obtained the first indication information (i.e., the sequence number of the uplink data of the service that the server 112a has received from the terminal device 102) through synchronization, the terminal device 102 and the server 112b can achieve uninterrupted uplink data transmission.
[0073] For another example, the terminal device 102 can receive the cached downlink data that the server 112b synchronized and obtained in step 209a through the connection. Since the terminal device 102 itself knows the second indication information, and the server 112b has synchronized and obtained the second indication information (i.e., the sequence number of the downlink data of the application that the terminal device 102 has received from the server 112a), the terminal device 102 and the server 112b can achieve uninterrupted downlink data transmission.
[0074] exist Figure 3 In the example of , the data transmission method provided by this application includes:
[0075] In step 302, the server 112a learns that the server 112a does not meet the conditions for providing applications to the terminal device, and learns a second server (such as the server 112b) that can provide applications to the terminal device.
[0076] For example, server 112a determines whether server 112a meets the conditions for providing the application to terminal device 102. The conditions include, but are not limited to, at least one of the following: the delay in transmitting application data between terminal device 102 and server 112a is less than or equal to a first value; the packet loss rate of application data transmitted between terminal device 102 and server 112a is less than or equal to a second value. For example, server 112a periodically or in real time detects the delay or packet loss rate of application data transmitted between terminal device 102 and server 112a. When terminal device 102 moves from a first area to a second area, if the delay in transmitting application data between terminal device 102 and server 112a is greater than the first value, or the packet loss rate of application data transmitted between terminal device 102 and server 112a is greater than the second value, server 112a may determine that server 112a no longer meets the above conditions for providing the application to terminal device 102. If the server 112a determines that the server 112a no longer meets the above conditions for providing the application to the terminal device 102, the server 112a is informed that other servers can provide the application to the terminal device 102.
[0077] For example, server 112a queries the DNS to learn that a second server (e.g., server 112b) can provide the application and obtain the address information of server 112b. For example, server 112a may obtain the location information of the terminal device from the control plane device and query the DNS based on the location information of the terminal device to obtain the address information of server 112b.
[0078] If the server 112a still meets the conditions for providing applications to the terminal device 102, the terminal device continues to access the server 112a and transmit uplink data and / or downlink data with the server 112a, which is not shown in the figure.
[0079] In step 304, server 112a sends a first message to terminal device 102, instructing terminal device 102 to stop sending the application's uplink data to server 112a. Accordingly, upon receiving the first message, terminal device 102 stops sending the application's uplink data to server 112a. Optionally, upon receiving the first message, terminal device 102 caches the uplink data to be sent to server 112a.
[0080] For example, the first message is a FIN message. A FIN message may also be called a FIN packet or a FIN message. Optionally, the first message may carry an indicator that instructs the terminal device 102 to stop sending uplink data of the application to the server 112a.
[0081] In step 306 , the terminal device 102 sends first indication information to the server 112a , where the first indication information is used to indicate the sequence number of the downlink data of the application received by the terminal device 102 from the server 112a .
[0082] For example, the first indication information may be sent via an ACK message. That is, the ACK message includes the first indication information. The ACK message may also be referred to as an ACK packet or an ACK message. If the terminal device 102 transmits data with the server 112a via a TCP connection before moving to the second area, the sequence number in step 306 is the TCP sequence number of the downlink data of the application that the terminal device 102 has received from the server 112a. If the terminal device 102 transmits data with the server 112a via an MPTCP connection (for example, subflow subflow1 of the MPTCP connection) before moving to the second area, the sequence number is the MPTCP sequence number of the downlink data of the application that the terminal device 102 has received from the server 112a.
[0083] Optionally, the terminal device 102 further sends a FIN message to the server 112a, instructing the server 112a to stop sending the downlink data of the application to the terminal device 102. Accordingly, after receiving the FIN message, the server 112a stops sending the downlink data of the application to the terminal device 102. Furthermore, optionally, after receiving the FIN message, the server 112a caches the downlink data to be sent to the terminal device 102.
[0084] In step 308, server 112a sends second indication information to terminal device 102. The second indication information indicates the sequence number of the uplink data of the application that server 112a has received from terminal device 102. In response, terminal device 102 receives the second indication information from server 112a. The first indication information and the second indication information can be used to transmit the application data via the connection between terminal device 102 and server 112b.
[0085] For example, the second indication information may be sent via an ACK message. That is, the ACK message includes the second indication information. The ACK message may also be referred to as an ACK packet or an ACK message. Similarly, if the terminal device 102 transmits data with the server 112a via a TCP connection before moving to the second area, the sequence number in step 308 is the TCP sequence number of the uplink data of the application that the server 112a has received from the terminal device 102. If the terminal device 102 transmits data with the server 112a via an MPTCP connection (for example, subflow subflow1 of the MPTCP connection) before moving to the second area, the sequence number is the MPTCP sequence number of the uplink data of the application that the server 112a has received from the terminal device 102.
[0086] Optionally, the second indication information may also carry address information of the server 112b.
[0087] Through the above method, after the terminal device 102 moves, when server 112a learns that server 112a does not meet the conditions for providing applications to the terminal device, and learns of a second server that can provide applications to the terminal device, the terminal device 102 and server 112a interact and provide each other with the data sequence number of the application they have received. Once the terminal device 102 establishes a connection with the second server 112b, the application data can be transmitted through the connection between the terminal device 102 and the second server 112b based on the acquired sequence number. Thus, the application provided by the source server 112a can be migrated to the target server 112b. In addition, because the application data transmission via the connection between the terminal device 102 and the second server 112b takes into account the data sequence number of the application received by the terminal device 102 and the data sequence number of the application received by the first server 112a, business continuity can be guaranteed, thereby improving the user experience of the terminal device.
[0088] Optionally, the method further includes: establishing a connection between the terminal device 102 and a second server (such as server 112b) through step 309a.
[0089] Optionally, before establishing a connection between the terminal device 102 and the server 112b, the terminal device 102 first needs to obtain the address information of the server 112b. In one implementation, when the second indication information carries the address information of the server 112b, the terminal device 102 obtains the address information of the server 112b from the received second indication information. In another implementation, the terminal device 102 may also query the DNS after receiving the first message to obtain the information that the server 112b can provide the application and obtain the address information of the server 112b. For example, the terminal device 102 queries the DNS based on the location information of the terminal device to obtain the address information of the server 112b. Since both the terminal device 102 and the server 112a query the DNS based on the location information of the terminal device 102, it is guaranteed that the queries obtained by both are the same second server, namely, the server 112b.
[0090] For example, the connection includes a sub-flow of a TCP connection or an MPTCP connection. For example, if the terminal device 102 transmits data with the server 112a via a TCP connection before moving to the second area, a new TCP connection is created between the terminal device 102 and the server 112b. If the terminal device 102 transmits data with the server 112a via sub-flow 1 of the MPTCP connection before moving to the second area, a new sub-flow of the MPTCP connection is created between the terminal device 102 and the server 112b. Based on the different types of connections, Figure 6 and Figure 7 Further description is given below. In addition, this connection can also be achieved through a QUIC connection.
[0091] Optionally, in step 309b, the server 112a synchronizes the context of the terminal device with the server 112b.
[0092] For example, the context of the terminal device includes the application layer information and transmission status information of the terminal device stored on the server 112a. For example, the transmission status information includes window information and a sequence number. Optionally, the sequence number includes the sequence number of the downlink data of the application that the terminal device 102 has received from the server 112a (i.e., the first indication information). In addition, the sequence number also includes the sequence number of the uplink data of the application that the server 112a has received from the terminal device 102 (i.e., the second indication information). In addition, the context of the terminal device also includes the downlink data cached by the server 112a to be sent to the terminal device 102. Optionally, the context of the terminal device can be synchronized by copying the memory of the server 112a to the server 112b.
[0093] After synchronization is complete, server 112a sends a second message to terminal device 102 in step 309c1; alternatively, server 112b sends a second message in step 309c2. This second message triggers terminal device 102 to transmit application data with server 112b via the connection established in step 309a, based on the first and second instructions. Accordingly, after receiving the second message, terminal device 102 transmits the application data with server 112b via the connection established in step 309a, based on the first and second instructions, in step 310.
[0094] Optionally, the second message is used to indicate that the context synchronization has been completed, triggering the terminal device to send a message of the cached uplink data. For example, the second message is an indication message (for example, it can be called a trigger cache to send an indication message). Alternatively, the second message includes indication information for indicating that the context synchronization has been completed. Optionally, the second message is a SYN message, which can also be called a SYN packet or a SYN message.
[0095] In step 310, the terminal device 102 transmits the application data through the connection established in step 309a according to the first indication information and the second indication information. The terminal device 102 transmitting data includes at least one of the following: the terminal device 102 sending uplink data to the server 112b; the terminal device 102 receiving downlink data from the server 112b.
[0096] For example, the terminal device 102 can send the cached uplink data to the server 112b via the connection. Since the terminal device has obtained the second indication information in step 308, and the server 112b has obtained the second indication information (i.e., the sequence number of the uplink data of the application received by the server 112a from the terminal device 102) through synchronization, the terminal device 102 and the server 112b can achieve uninterrupted uplink data transmission.
[0097] For another example, the terminal device 102 can receive the cached downlink data synchronized by the server 112b in step 309b through the connection. Since the terminal device 102 itself knows the first indication information, and the server 112a has obtained the sequence number of the downlink data of the service received by the terminal device 102 from the server 112a in step 306 (i.e., the first indication information), and the server 112b obtains the first indication information through synchronization in step 309b, the terminal device 102 and the server 112b can achieve uninterrupted downlink data transmission.
[0098] Figure 4 FIG. 5 shows a signaling flow chart of a data transmission method according to an embodiment of the present invention. Figure 4 As shown, the method includes:
[0099] In step 401a, a session establishment process is executed to establish a session (also referred to as a packet data unit (PDU) session) between the terminal device 102 and the user plane device 108a. For example, the session establishment process involves interactions between the terminal device 102, the access network device 104a, the control plane device 106, and the user plane device 108a.
[0100] Step 401b: Establish a TCP connection 1 between the terminal device 102 and the server 112a.
[0101] TCP is an end-to-end transmission protocol. After the TCP connection 1 between the terminal device 102 and the server 112a is established, the terminal device 102 can transmit uplink data and / or downlink data of the application to the server 112a.
[0102] Step 402: After the terminal device 102 moves from the first area to the second area, the terminal device 102 learns that the server 112a does not meet the conditions for providing applications for the terminal device, and learns about the server 112b that can provide applications for the terminal device.
[0103] Step 402 can refer to Figure 2 The description of step 202 is omitted here.
[0104] Step 403a: Execute a session establishment process to establish a session between the terminal device 102 and the user plane device 108b.
[0105] Step 403b: Establish a TCP connection 2 between the terminal device 102 and the server 112b.
[0106] For example, in the above step 402 (refer to Figure 2 In the description of step 202 in the preceding text, terminal device 102 obtains server 112b capable of providing applications for the terminal device by querying the DNS and obtains the address information of server 112b. Thus, terminal device 102 can establish TCP connection 2 between terminal device 102 and server 112b based on the address information of server 112b. Optionally, in step 404a above, a new IP address is assigned to terminal device 102 during the session establishment process. Thus, terminal device 102 can establish TCP connection 2 between terminal device 102 and server 112b based on the newly assigned IP address and the address information of server 112b.
[0107] In step 404 , the terminal device 102 sends a FIN message to the server 112 a . The FIN message is used to instruct the server 112 a to stop sending downlink data of the application to the terminal device 102 .
[0108] Correspondingly, in step 405 , after receiving the FIN message, the server 112 a stops sending the downlink data of the application to the terminal device 102 and caches the downlink data to be sent to the terminal device 102 .
[0109] In step 406, the server 112a sends an ACK message carrying first indication information to the terminal device 102. The first indication information is used to indicate the TCP sequence number of the uplink data of the application that the server 112a has received from the terminal device 102. Accordingly, the terminal device 102 receives the ACK message carrying the first indication information from the server 112a.
[0110] In step 407 , the server 112 a sends a FIN message to the terminal device 102 . The FIN message is used to instruct the terminal device 102 to stop sending uplink data of the application to the server 112 a .
[0111] Correspondingly, in step 408 , after receiving the FIN message, the terminal device 102 stops sending the uplink data of the application to the server 112 a and caches the uplink data to be sent to the server 112 a .
[0112] In step 409, the terminal device 102 sends an ACK message carrying second indication information to the server 112a. The second indication information is used to indicate the TCP sequence number of the downlink data of the application received by the terminal device 102 from the server 112a. In response, the server 112a receives the ACK message carrying the second indication information from the terminal device 102.
[0113] It should be noted that the present invention does not limit the execution order between steps 405 and 406. Step 405 can be executed first and then step 406, or 406 can be executed first and then 405, or they can be executed simultaneously. Similarly, the execution order between steps 408 and 409 is not limited.
[0114] In step 410 , the server 112 a and the server 112 b synchronize the context of the terminal device.
[0115] Step 411: After the context synchronization is completed, the server 112a or the server 112b sends a SYN message to the UE. Figure 4 Taking the server 112a sending a SYN message as an example, the server 112b sending a SYN message to the UE is similar, which is not shown in the figure.
[0116] In step 410 , after receiving the SYN message, the terminal device 102 transmits the application data through the TCP connection 2 established in step 403 b according to the first indication information and the second indication information.
[0117] Steps 404 to 412 can refer to Figure 2The description of steps 204 to 210 is not repeated here.
[0118] exist Figure 4 In the example, when the terminal device 102 moves and learns that the server 112a does not meet the conditions for providing applications for it, the terminal device 102 learns a second server that can provide applications for the terminal device. In addition, the terminal device 102 and the server 112a provide the data sequence numbers of the applications they have received to the other end through interaction. After the terminal device 102 establishes a new TCP connection 2 with the second server 112b, the application data can be transmitted through the new TCP connection 2 based on the obtained application data sequence number. In this way, the application provided by the source server 112a can be migrated to the target server 112b. In addition, since the data transmission of the application through the new TCP connection 2 takes into account the data sequence numbers of the application received by the terminal device 102 and the data sequence numbers of the application received by the first server 112a, it can also ensure business continuity, thereby improving the user experience of the terminal device.
[0119] Figure 5A Another signaling flow chart of a data transmission method according to an embodiment of the present invention is shown. Figure 5A For reference Figure 4 Description. Figure 5A and Figure 4 The difference is that in Figure 4 In the example, the terminal device 102 uses a TCP connection to transmit data to the server 112a or the server 112b. Figure 5A In the example, the terminal device 102 uses the sub-stream of the MPTCP connection to transmit data to the server 112a or the server 112b. Figure 5A As shown, the method includes:
[0120] In step 501a, a session establishment process is executed to establish a session between the terminal device 102 and the user plane device 108a. For example, the session establishment process involves interactions between the terminal device 102, the access network device 104a, the control plane device 106, and the user plane device 108a. During this process, the terminal device 102 is assigned IP address 1.
[0121] Step 501b: establish MPTCP sub-flow 1 between the terminal device 102 and the server 112a.
[0122] MPTCP is an improved protocol of TCP, which allows a TCP connection to transmit data through multiple paths at the same time. Figure 5BAs shown in Figure 1, MPTCP technology isolates the application and transport layers by adding an additional MPTCP sublayer on top of the TCP layer. Users can dynamically establish multiple subflows to achieve multiplexing and load balancing of application layer services at the transport layer. MPTCP supports cross-subflow packet retransmission: If a subflow is abnormally closed, MPTCP allows its packets to be sent in another subflow.
[0123] For example, first, MPTCP connection initialization is required to establish MPTCP subflow 1. For example, the server 112a has an IP address a. MPTCP subflow 1 can be established by the terminal device 102 (IP address 1) and the server 112a (IP address a), as shown in FIG. Figure 5B After the MPTCP sub-flow 1 between the terminal device 102 and the server 112a is established, the terminal device 102 can transmit uplink data and / or downlink data of the application to the server 112a.
[0124] Step 502: After the terminal device 102 moves from the first area to the second area, the terminal device 102 learns that the server 112a does not meet the conditions for providing applications for the terminal device, and learns about the server 112b that can provide applications for the terminal device.
[0125] Step 502 can refer to Figure 2 The description of step 202 is omitted here.
[0126] Step 503a: Execute a session establishment process to establish a session between the terminal device 102 and the user plane device 108b. During this process, the terminal device 102 is assigned an IP address 2.
[0127] Step 503b: establish MPTCP sub-flow 2 between the terminal device 102 and the server 112b.
[0128] For example, in the above step 502 (refer to Figure 2 In the description of step 202 in FIG. 1 , terminal device 102 obtains the address information of server 112b that can provide applications for the terminal device by querying the DNS. For example, server 112b has IP address b. Thus, terminal device 102 can establish MPTCP subflow 2 between terminal device 102 and server 112b based on the newly assigned IP address 2 and IP address b of server 112b, as shown in FIG. Figure 5B shown.
[0129] In step 504 , the terminal device 102 sends a FIN message to the server 112 a . The FIN message is used to instruct the server 112 a to stop sending downlink data of the application to the terminal device 102 .
[0130] Correspondingly, in step 505 , after receiving the FIN message, the server 112 a stops sending the downlink data of the application to the terminal device 102 and caches the downlink data to be sent to the terminal device 102 .
[0131] In step 506, the server 112a sends an ACK message carrying first indication information to the terminal device 102. The first indication information is used to indicate the MPTCP sequence number of the uplink data of the application that the server 112a has received from the terminal device 102. In response, the terminal device 102 receives the ACK message carrying the first indication information from the server 112a.
[0132] In step 507 , the server 112 a sends a FIN message to the terminal device 102 . The FIN message is used to instruct the terminal device 102 to stop sending uplink data of the application to the server 112 a .
[0133] Correspondingly, in step 508 , after receiving the FIN message, the terminal device 102 stops sending the uplink data of the application to the server 112 a and caches the uplink data to be sent to the server 112 a .
[0134] In step 509, terminal device 102 sends an ACK message carrying second indication information to server 112a. The second indication information is used to indicate the MPTCP sequence number of the downlink data of the application that terminal device 102 has received from server 112a. In response, server 112a receives the ACK message carrying the second indication information from terminal device 102.
[0135] In step 510 , server 112 a and server 112 b synchronize context.
[0136] Step 511: After the context synchronization is completed, the server 112a or the server 112b sends a SYN message to the UE. Figure 5A Taking the server 112a sending a SYN message as an example, the server 112b sending a SYN message to the UE is similar, which is not shown in the figure.
[0137] In step 512, after receiving the SYN message, the terminal device 102 transmits the application data through the MPTCP sub-flow 2 established in step 503b according to the first indication information and the second indication information.
[0138] Steps 504 to 512 can refer to Figure 2 The description of steps 204 to 210 is not repeated here.
[0139] exist Figure 5A In the example, when terminal device 102 moves and learns that server 112a does not meet the conditions for providing applications for it, terminal device 102 learns a second server that can provide applications for the terminal device. In addition, terminal device 102 and server 112a interact and provide the other end with the data sequence number of the application they have received. After terminal device 102 establishes a new MPTCP sub-stream 2 with second server 112b, the application data can be transmitted through the new MPTCP sub-stream 2 based on the obtained application data sequence number. In this way, the application provided by source server 112a can be migrated to target server 112b. In addition, because the application data transmission through the new MPTCP sub-stream 2 takes into account the data sequence number of the application received by terminal device 102 and the data sequence number of the application received by the first server 112a, it can also ensure business continuity, thereby improving the user experience of the terminal device.
[0140] Furthermore, by using MPTCP, the terminal device transmits application data with server 112a via subflow 1 before switching servers. MPTCP allows for the following: if MPTCP subflow 1 is closed, its packets are sent via MPTCP subflow 2. Therefore, after switching servers, the terminal device can transmit application data with server 112b via subflow 2, reducing signaling interactions and conserving network resources.
[0141] Figure 6 FIG. 5 shows a signaling flow chart of a data transmission method according to an embodiment of the present invention. Figure 4 As shown, the method includes:
[0142] Step 601a: Execute a session establishment process to establish a session (also referred to as a PDU session) between the terminal device 102 and the user plane device 108a.
[0143] Step 601b: Establish a TCP connection 1 between the terminal device 102 and the server 112a. After the TCP connection 1 between the terminal device 102 and the server 112a is established, the terminal device 102 can transmit uplink data and / or downlink data of the application to the server 112a.
[0144] Step 602: After the terminal device 102 moves from the first area to the second area, the server 112a learns that the server 112a does not meet the conditions for providing applications for the terminal device, and learns about the server 112b that can provide applications for the terminal device.
[0145] In step 603 , the server 112 a sends a FIN message to the terminal device 102 . The FIN message is used to instruct the terminal device 102 to stop sending uplink data of the application to the server 112 a .
[0146] Correspondingly, in step 604 , after receiving the FIN message, the terminal device 102 stops sending the uplink data of the application to the server 112 a and caches the uplink data to be sent to the server 112 a .
[0147] In step 605, the terminal device 102 sends an ACK message carrying first indication information to the server 112a. The first indication information is used to indicate the TCP sequence number of the downlink data of the application received by the terminal device 102 from the server 112a. In response, the server 112a receives the ACK message carrying the first indication information from the terminal device 102.
[0148] In step 606 , the terminal device 102 sends a FIN message to the server 112 a . The FIN message is used to instruct the server 112 a to stop sending downlink data of the application to the terminal device 102 .
[0149] Correspondingly, in step 607 , after receiving the FIN message, the server 112 a stops sending the downlink data of the application to the terminal device 102 and caches the downlink data to be sent to the terminal device 102 .
[0150] In step 608, the server 112a sends an ACK message carrying second indication information to the terminal device 102. The second indication information is used to indicate the TCP sequence number of the uplink data of the application that the server 112a has received from the terminal device 102. Accordingly, the terminal device 102 receives the ACK message carrying the second indication information from the server 112a.
[0151] Steps 602 to 608 can refer to Figure 3 The description of steps 302 to 308 is not repeated here.
[0152] Step 609a: Execute a session establishment process to establish a session between the terminal device 102 and the user plane device 108b.
[0153] Step 609b: Establish a TCP connection 2 between the terminal device 102 and the server 112b.
[0154] For example, before establishing TCP connection 2 between terminal device 102 and server 112b, terminal device 102 first needs to obtain the address information of server 112b. In one implementation, when the second indication information carries the address information of server 112b, terminal device 102 obtains the address information of server 112b from the received second indication information. In another implementation, terminal device 102 may also query the DNS after receiving the first message to determine that server 112b can provide the application and obtain the address information of server 112b. Thus, terminal device 102 may establish TCP connection 2 between terminal device 102 and server 112b based on the address information of server 112b. Optionally, in step 609a above, a new IP address is assigned to terminal device 102 during the session establishment process. Thus, terminal device 102 may establish TCP connection 2 between terminal device 102 and server 112b based on the newly assigned IP address and the address information of server 112b.
[0155] In step 610 , the server 112 a synchronizes the context of the terminal device with the server 112 b .
[0156] Step 611: After the context synchronization is completed, the server 112a or the server 112b sends a SYN message to the UE. Figure 6 Taking the server 112a sending a SYN message as an example, the server 112b sending a SYN message to the UE is similar, which is not shown in the figure.
[0157] Step 612: After receiving the SYN message, the terminal device 102 transmits application data through the connection established in step 609b according to the first indication information and the second indication information.
[0158] Steps 610 to 612 can refer to Figure 3 The description of steps 309b to 310 is not repeated here.
[0159] Figure 7 Another signaling flow chart of a data transmission method according to an embodiment of the present invention is shown. Figure 7 For reference Figure 6 Description. Figure 7 and Figure 6 The difference is that in Figure 6 In the example, the terminal device 102 uses a TCP connection to transmit data to the server 112a or the server 112b. Figure 7 In the example, the terminal device 102 uses the sub-stream of the MPTCP connection to transmit data to the server 112a or the server 112b. Figure 7 As shown, the method includes:
[0160] Step 701a: Execute a session establishment process to establish a session between the terminal device 102 and the user plane device 108a. For example, in this process, the terminal device 102 is assigned an IP address 1.
[0161] Step 701b: establish MPTCP sub-flow 1 between the terminal device 102 and the server 112a.
[0162] First, MPTCP connection initialization is required to establish MPTCP sub-flow 1. For example, server 112a has IP address a. MPTCP sub-flow 1 is established through terminal device 102 (IP address 1) and service area 112a (IP address a). Figure 5B After the MPTCP sub-flow 1 between the terminal device 102 and the server 112a is established, the terminal device 102 can transmit uplink data and / or downlink data of the application to the server 112a.
[0163] Step 702: After the terminal device 102 moves from the first area to the second area, the server 112a learns that the server 112a does not meet the conditions for providing applications for the terminal device, and learns about the server 112b that can provide applications for the terminal device.
[0164] In step 703 , the server 112 a sends a FIN message to the terminal device 102 . The FIN message is used to instruct the terminal device 102 to stop sending uplink data of the application to the server 112 a .
[0165] Correspondingly, in step 704 , after receiving the FIN message, the terminal device 102 stops sending the uplink data of the application to the server 112 a and caches the uplink data to be sent to the server 112 a .
[0166] In step 705, terminal device 102 sends an ACK message carrying first indication information to server 112a. The first indication information is used to indicate the MPTCP sequence number of the downlink data of the application that terminal device 102 has received from server 112a. In response, server 112a receives the ACK message carrying the first indication information from terminal device 102.
[0167] In step 706 , the terminal device 102 sends a FIN message to the server 112 a . The FIN message is used to instruct the server 112 a to stop sending the downlink data of the application to the terminal device 102 .
[0168] Correspondingly, in step 707 , after receiving the FIN message, the server 112 a stops sending the downlink data of the application to the terminal device 102 and caches the downlink data to be sent to the terminal device 102 .
[0169] In step 708, server 112a sends an ACK message carrying second indication information to terminal device 102. The second indication information is used to indicate the MPTCP sequence number of the uplink data of the application that server 112a has received from terminal device 102. In response, terminal device 102 receives the ACK message carrying the second indication information from server 112a.
[0170] Steps 702 to 708 can refer to Figure 3 The description of steps 302 to 308 is not repeated here.
[0171] Step 709a: Execute a session establishment process to establish a session between the terminal device 102 and the user plane device 108b. In this process, the terminal device 102 is assigned an IP address 2.
[0172] Step 709b: establish MPTCP sub-flow 2 between the terminal device 102 and the server 112b.
[0173] For example, before establishing the MPTCP sub-stream 2 between the terminal device 102 and the server 112b, the terminal device 102 first obtains the address information of the server 112b. In one implementation, when the second indication information carries the address information of the server 112b, the terminal device 102 obtains the address information of the server 112b from the received second indication information. In another implementation, the terminal device 102 may also query the DNS after receiving the first message to obtain information that the server 112b can provide the application and obtain the address information of the server 112b. For example, the server 112b has an IP address b. Thus, the terminal device 102 may establish the MPTCP sub-stream 2 between the terminal device 102 and the server 112b based on the newly allocated IP address 2 and the IP address b of the server 112b, as shown in FIG. Figure 5B shown.
[0174] In step 710 , the server 112 a synchronizes the context of the terminal device with the server 112 b .
[0175] Step 711: After the context synchronization is completed, the server 112a or the server 112b sends a SYN message to the UE. Figure 7 Taking the server 112a sending a SYN message as an example, the server 112b sending a SYN message to the UE is similar, which is not shown in the figure.
[0176] In step 712, after receiving the SYN message, the terminal device 102 transmits the application data through the MPTCP sub-flow 2 established in step 709b according to the first indication information and the second indication information.
[0177] Steps 710 to 712 can refer to Figure 3The description of steps 309b to 310 is not repeated here.
[0178] In the embodiments provided in the present application above, the various schemes such as the data transmission method provided in the embodiments of the present application are introduced from the perspective of each network element itself and from the perspective of the interaction between each network element. It can be understood that each network element, such as the first device and the second device mentioned above, includes a hardware structure and / or software module corresponding to the execution of each function in order to implement the above functions. It should be easily appreciated by those skilled in the art that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present application.
[0179] For example, when the above network elements implement corresponding functions through software modules, the communication device may include a sending module 802 and a receiving module 804. Figure 8A shown.
[0180] In one embodiment, the sending module 802 is configured to send a first message to a second device, the first message being configured to instruct the second device to stop sending application data to the communication device. The receiving module 804 is configured to receive first indication information from the second device, the first indication information being configured to indicate the sequence number of the application data received by the second device from the communication device. The sending module 802 is further configured to send second indication information to the second device, the second indication information being configured to indicate the sequence number of the application data received by the communication device from the second device. After a connection is established between the terminal device and the second server, the first indication information and the second indication information are used to transmit the application data via the connection.
[0181] In addition, the communication device further includes a processing module 806 configured to determine that the first server does not meet the conditions for providing the application to the terminal device, and to determine a second server that can provide the application to the terminal device. For example, the processing module 806 is configured to query a domain name system (DNS) to determine that the second server can provide the application and obtain the address information of the second server.
[0182] In addition, the communication device further includes a storage module 808 for caching data to be sent to the second device after the processing module 806 learns that the first server does not meet the conditions for providing the application to the terminal device.
[0183] in, Figure 8A The communication equipment in the above Figure 2 or Figure 3 The first device in.
[0184] If the communication device is a terminal device and the second device is a first server, the communication device can also be used to execute Figure 2 、 Figure 4 or Figure 5A For example, the receiving module 804 is further configured to receive a second message from the first server or the second server, where the second message is configured to trigger the terminal device to transmit the application data to the second server through the connection according to the first indication information and the second indication information.
[0185] If the communication device is a first server and the second device is a terminal device, the communication device can also be used to perform Figure 3 、 Figure 6 or Figure 7 For example, the processing module 806 is further configured to synchronize the context of the terminal device with the second server, where the context of the terminal device includes the first indication information and the second indication information.
[0186] In addition, the present application also discloses a communication device, namely the second device mentioned above, such as Figure 8B The communication device includes a sending module 812 , a receiving module 814 and a processing module 816 .
[0187] In one embodiment, the receiving module 814 is used to receive a first message from a first device, the first message being used to instruct the communication device to stop sending application data to the first device. The processing module 816 is used to control the sending module to stop sending the application data to the first device. The sending module 812 is used to send first indication information to the first device, the first indication information being used to indicate the sequence number of the application data that the communication device has received from the first device. The receiving module 814 is also used to receive second indication information from the first device, the second indication information being used to indicate the sequence number of the application data that the first device has received from the communication device. After the connection between the terminal device and the second server is established, the first indication information and the second indication information are used to transmit the application data through the connection.
[0188] In addition, the communication device further includes a storage module 818 for buffering data to be sent to the first device. In addition, the storage module 818 can also store various instructions.
[0189] In addition, the processing module 816 is also used to obtain the address information of the second server from the second indication information; or, after the communication device receives the first message, the processing module 816 is used to query the domain name system DNS to obtain whether the second server can provide the application for the terminal device and obtain the address information of the second server.
[0190] in, Figure 8B The communication equipment in the above Figure 2 or Figure 3 The second device in
[0191] If the first device is a terminal device and the communication device is a first server, the communication device can also be used to execute Figure 2 、 Figure 4 or Figure 5A The various steps of server 112a in the embodiment of the present invention are as follows. For example, processing module 816 is further configured to synchronize the context of the terminal device with the second server, where the context of the terminal device includes the first indication information and the second indication information. Sending module 812 is further configured to send a second message to the terminal device, where the second message is configured to trigger the terminal device to transmit the application data via a connection with the second server.
[0192] If the first device is the first server and the communication device is the terminal device, the communication device can also be used to execute Figure 3 、 Figure 6 or Figure 7 For example, the receiving module 814 is further configured to receive a second message from the first server or the second server, where the second message is configured to trigger the terminal device to transmit the application data via the connection with the second server.
[0193] Figure 9A FIG1 shows a schematic diagram of the structure of the server involved in the above embodiment. The server includes a transceiver 902 and a processor 904. For example, the server 112a may be composed of Figure 9A The server is implemented in the above method. Processor 904 is configured to process the server's execution of the corresponding functions of server 112a in the above method. Transceiver 902 is used to implement communication between server 112a and the above terminal device / control plane device 106 / DNS 110. The server may also include memory 906, which is coupled to the processor and stores program instructions and data necessary for the communication device.
[0194] It is understandable that Figure 9AOnly simplified designs of the above devices are shown. In actual applications, each of the above devices may include any number of transmitters, receivers, processors, controllers, memories, communication units, etc., and all devices that can implement the present application are within the scope of protection of the present application.
[0195] Figure 9B FIG1 shows a simplified schematic diagram of a possible design structure of the terminal device involved in the above embodiment. For example, the above terminal device 102 may be composed of Figure 9B The terminal device is implemented in the embodiment. The terminal device includes a transceiver 916, a controller / processor 912, and may also include a memory 918 and a modem processor 914. The transceiver 916 conditions (e.g., performs analog-to-analog conversion, filtering, amplification, and up-conversion) the output samples and generates an uplink signal, which is transmitted via an antenna to the base station described in the above embodiment. On the downlink, the antenna receives the downlink signal transmitted by the base station in the above embodiment. The transceiver 916 conditions (e.g., performs filtering, amplification, down-conversion, and digitization) the signal received from the antenna and provides input samples. In the modem processor 914, the encoder 9141 receives service data and signaling messages to be transmitted on the uplink and processes the service data and signaling messages (e.g., formats, encodes, and interleaves them). The modulator 9142 further processes (e.g., performs symbol mapping and modulation) the encoded service data and signaling messages and provides output samples. The demodulator 9144 processes (e.g., demodulates) the input samples and provides symbol estimates. The decoder 9143 processes (e.g., deinterleaves and decodes) the symbol estimates and provides decoded data and signaling messages for the terminal device. The encoder 9141, modulator 9142, demodulator 9144, and decoder 9143 can be implemented by a combined modulation and demodulation processor 914. These units perform processing based on the radio access technology (e.g., LTE and other evolved system access technologies) employed by the radio access network. The controller / processor 912 controls and manages the operations of the terminal device and is configured to execute the processing performed by the terminal device 102 in the above-described embodiments.
[0196] The controller / processor used to execute the above-mentioned servers and terminal devices of this application can be a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. It can implement or execute the various exemplary logic blocks, modules, and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
[0197] The steps of the method or algorithm described in conjunction with the disclosure of this application can be implemented in hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, which can be stored in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, mobile hard disk, CD-ROM or any other form of storage medium well known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and storage medium can be located in an ASIC. In addition, the ASIC can be located in a user device. Of course, the processor and storage medium can also be present in the user device as discrete components.
[0198] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments can be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present invention are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive (SSD)).
[0199] The specific implementation methods described above further illustrate the purpose, technical solutions and beneficial effects of this application. It should be understood that the above description is only the specific implementation methods of this application and is not intended to limit the scope of protection of this application. Any modifications, equivalent replacements, improvements, etc. made on the basis of the technical solutions of this application should be included in the scope of protection of this application.
Claims
1. A data transmission method, characterized in that: include: The terminal device learns that the first server does not meet the conditions for providing the application to the terminal device, and learns a second server that can provide the application to the terminal device, and the terminal device instructs the first server to stop sending application data to the terminal device; The terminal device receives from the first server a first serial number of the application data that the first server has received from the terminal device; After the connection between the terminal device and the second server is established, the terminal device sends the application data through the connection according to the first serial number.
2. The method according to claim 1, characterized in that Also includes: The terminal device sends, to the first server, a second serial number of the application data received by the terminal device from the first server; The terminal device receives the application data through the connection according to the second serial number.
3. The method according to claim 1 or 2, characterized in that The terminal device sending the application data through the connection according to the first serial number includes: The terminal device responds to a trigger from the first server or the second server and sends the application data through the connection according to the first sequence number.
4. The method according to claim 2, characterized in that Receiving, by the terminal device, the data of the application through the connection according to the second serial number includes: The terminal device receives the application data through the connection according to the second serial number in response to a trigger from the first server or the second server.
5. The method according to any one of claims 1, 2 and 4, characterized in that: Also includes: The terminal device sends the address information of the second server to the first server.
6. The method according to any one of claims 1, 2 and 4, characterized in that: The connection includes a Transmission Control Protocol TCP connection.
7. The method according to any one of claims 1, 2 and 4, characterized in that: The connection includes a Multipath Transmission Control Protocol MPTCP subflow.
8. A data transmission method, characterized in that: include: The terminal device learns that the first server does not meet the conditions for providing the application to the terminal device, and learns a second server that can provide the application to the terminal device, and the terminal device instructs the first server to stop sending application data to the terminal device; The terminal device sends, to the first server, a second serial number of the application data received by the terminal device from the first server; After the connection between the terminal device and the second server is established, the terminal device receives the application data through the connection according to the second serial number.
9. The method according to claim 8, characterized in that Receiving, by the terminal device, the data of the application through the connection according to the second serial number includes: The terminal device receives the application data through the connection according to the second serial number in response to a trigger from the first server or the second server.
10. The method according to claim 8, characterized in that The condition includes: a delay in transmitting the application data between the terminal device and the first server is less than or equal to a first value.
11. The method according to claim 8 or 10, characterized in that The condition includes: a packet loss rate of data of the application transmitted between the terminal device and the first server is less than or equal to a second value.
12. The method according to claim 8, characterized in that The terminal device acquires information about a second server capable of providing the application for the terminal device, including: The terminal device queries the domain name system, learns through the domain name system that the second server can provide the application, and obtains the address information of the second server.
13. The method according to any one of claims 8, 9, 10 and 12, characterized in that: After the terminal device learns that the first server does not meet the conditions for providing the application to the terminal device, the method further includes: The terminal device buffers data to be sent to the first server.
14. The method according to any one of claims 8, 9, 10 and 12, characterized in that: Also includes: The terminal device sends the address information of the second server to the first server.
15. The method according to any one of claims 8, 9, 10 and 12, characterized in that: The connection includes a Transmission Control Protocol TCP connection.
16. The method according to any one of claims 8, 9, 10 and 12, characterized in that: The connection includes a Multipath Transmission Control Protocol MPTCP subflow.
17. A data transmission method, characterized in that: include: The terminal device stops sending application data to the first server in response to an instruction from the first server, wherein the instruction is sent by the first server after learning that the first server does not meet the conditions for providing the application to the terminal device and learning a second server that can provide the application to the terminal device; The terminal device sends, to the first server, a first serial number of the application data received by the terminal device from the first server; After the connection between the terminal device and the second server is established, the terminal device receives the application data through the connection according to the first serial number.
18. The method according to claim 17, characterized in that Also includes: The terminal device receives from the first server a second serial number of the application data that the first server has received from the terminal device; The terminal device sends the application data through the connection according to the second serial number.
19. The method according to claim 17 or 18, characterized in that Receiving, by the terminal device, the data of the application through the connection according to the first serial number includes: The terminal device receives the application data through the connection according to the first serial number in response to a trigger from the first server or the second server.
20. The method according to claim 18, wherein The terminal device sending the application data through the connection according to the second serial number includes: The terminal device responds to a trigger from the first server or the second server and sends the application data through the connection according to the second sequence number.
21. The method according to any one of claims 17, 18 and 20, characterized in that: The method further comprises: The terminal device buffers data to be sent to the first server.
22. The method according to any one of claims 17, 18 and 20, characterized in that: Also includes: The terminal device obtains the address information of the second server.
23. The method according to any one of claims 17, 18 and 20, characterized in that: The connection includes a Transmission Control Protocol TCP connection.
24. The method according to any one of claims 17, 18 and 20, characterized in that: The connection includes a Multipath Transmission Control Protocol MPTCP subflow.
25. A data transmission method, characterized in that: include: The terminal device stops sending application data to the first server in response to an instruction from the first server, wherein the instruction is sent by the first server after learning that the first server does not meet the conditions for providing the application to the terminal device and learning a second server that can provide the application to the terminal device; The terminal device receives from the first server a second serial number of the application data that the first server has received from the terminal device; After the connection between the terminal device and the second server is established, the terminal device sends the application data through the connection according to the second serial number.
26. The method according to claim 25, characterized in that The terminal device sending the application data through the connection according to the second serial number includes: The terminal device responds to a trigger from the first server or the second server and sends the application data through the connection according to the second sequence number.
27. The method according to claim 25 or 26, characterized in that The method further comprises: The terminal device buffers data to be sent to the first server.
28. The method according to claim 25 or 26, characterized in that Also includes: The terminal device obtains the address information of the second server.
29. The method according to claim 28, characterized in that The terminal device obtains the address information of the second server, including: The terminal device receives the address information of the second server from the first server.
30. The method according to claim 28, wherein The terminal device obtains the address information of the second server, including: In response to the instruction from the first server, the terminal device queries a domain name system, learns through the domain name system that the second server can provide the application for the terminal device, and obtains the address information of the second server.
31. The method according to any one of claims 25, 26, 29 and 30, characterized in that: The connection includes a Transmission Control Protocol TCP connection.
32. The method according to any one of claims 25, 26, 29 and 30, wherein: The connection includes a Multipath Transmission Control Protocol MPTCP subflow.
33. A communication device, characterized in that: include: a processing module, configured to learn that a first server does not meet the conditions for providing an application to a terminal device, and learn a second server that can provide the application to the terminal device; a sending module, configured to instruct the first server to stop sending application data to the terminal device; a receiving module, configured to receive, from the first server, a first serial number of the application data that the first server has received from the terminal device; The sending module is further configured to send the application data through the connection according to the first serial number after the connection between the terminal device and the second server is established.
34. A communication device, characterized in that: include: a processing module, configured to learn that a first server does not meet the conditions for providing an application to a terminal device, and learn a second server that can provide the application to the terminal device; a sending module, configured to instruct the first server to stop sending application data to the terminal device; Sending, to the first server, a second serial number of the application data received by the terminal device from the first server; A receiving module is configured to receive the application data through the connection according to the second serial number after a connection is established between the terminal device and the second server.
35. The communication device according to claim 34, characterized in that The condition includes at least one of the following: the delay in transmitting the application data between the terminal device and the first server is less than or equal to a first value; or the packet loss rate in transmitting the application data between the terminal device and the first server is less than or equal to a second value.
36. The communication device according to claim 34 or 35, characterized in that The processing module is used to query a domain name system, learn through the domain name system that the second server can provide the application, and obtain address information of the second server.
37. The communication device according to claim 34 or 35, characterized in that Also includes: The storage module is configured to cache data to be sent to the second server after the processing module learns that the first server does not meet the conditions for providing the application to the terminal device.
38. The communication device according to claim 34 or 35, characterized in that The sending module is further configured to send the address information of the second server to the first server.
39. A communication device, characterized in that: include: a receiving module, configured to receive an instruction from a first server, the instruction being sent by the first server after the first server learns that the first server does not meet the conditions for providing an application to a terminal device, and learns a second server that can provide the application to the terminal device; a processing module, configured to stop sending application data to the first server in response to the instruction from the first server; a sending module, configured to send, to the first server, a first serial number of the application data received by the terminal device from the first server; The receiving module is further configured to receive the application data through the connection according to the first serial number after the connection between the terminal device and the second server is established.
40. The communication device according to claim 39, wherein: Also includes: A storage module is used to cache data to be sent to the first server.
41. The communication device according to claim 39 or 40, characterized in that The processing module is further configured to obtain address information of the second server.
42. The communication device according to claim 39 or 40, characterized in that The connection includes a Transmission Control Protocol TCP connection or a Multipath Transmission Control Protocol MPTCP subflow.
43. A communication device, characterized in that include: a receiving module, configured to receive an instruction from a first server, the instruction being sent by the first server after the first server learns that the first server does not meet the conditions for providing an application to a terminal device, and learns a second server that can provide the application to the terminal device; receiving, from the first server, a second serial number of the data of the application that the first server has received from the terminal device; a processing module, configured to stop sending application data to the first server in response to the instruction from the first server; A sending module is used to send the application data through the connection according to the second serial number after the connection between the terminal device and the second server is established.
44. The communication device according to claim 43, wherein: Also includes: A storage module is used to cache data to be sent to the first server.
45. The communication device according to claim 43 or 44, characterized in that The processing module is further configured to obtain address information of the second server.
46. The communication device according to claim 45, characterized in that The processing module receives the address information of the second server from the first server through the receiving module; or The processing module queries a domain name system in response to the instruction from the first server, learns through the domain name system that the second server can provide the application for the terminal device, and obtains the address information of the second server.
47. The communication device according to any one of claims 43, 44, and 46, characterized in that: The connection includes a Transmission Control Protocol TCP connection or a Multipath Transmission Control Protocol MPTCP subflow.
48. A communication device, characterized in that Including processor; The processor is configured to read and execute a program from a memory to implement the method according to any one of claims 1 to 32.
49. A computer program product comprising instructions, characterized in that When the method is executed on a computer, the computer is enabled to execute the method according to any one of claims 1 to 32.
50. A computer-readable storage medium, wherein instructions are stored in the computer-readable storage medium, and when the computer-readable storage medium is executed on a computer, a processor is caused to execute the method according to any one of claims 1 to 32.
Citation Information
Patent Citations
Processing method for service data pack in hard switch process
CN101001198A
Transparent network connection takeover
US20060253575A1
Revocable indication of session termination
US20120158814A1