A communication method, a communication device, and a communication system
Patent Information
- Application Number
- CN202210689595.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2022-02-08
- Filing Date
- 2022-06-16
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2042-06-16
Smart Images

Figure CN116614556B_ABST
Abstract
Description
[0001] This application claims priority to Chinese Patent Application No. 202210119427.8, filed on February 8, 2022, with the State Intellectual Property Office of the People's Republic of China, entitled "A Communication Method, Communication Device and Communication System", the entire contents of which are incorporated herein by reference. Technical Field
[0002] This application relates to the field of communication technology, and in particular to a communication method, communication device and communication system. Background Technology
[0003] With the development of communication technology, the amount of data that terminal devices need to interact with the outside world is increasing, and users have higher and higher requirements for business experience when accessing applications. This will inevitably lead to the need to solve the problem of how to ensure the correctness and reliability of data transmission in order to improve user experience. Summary of the Invention
[0004] This application provides a communication method, communication device, and communication system to ensure the correctness and reliability of data transmission, thereby improving user experience.
[0005] In a first aspect, embodiments of this application provide a communication method, which can be executed by a proxy client or a module (such as a chip) applied to the proxy client. Taking the proxy client executing the method as an example, the method includes: the proxy client of a terminal device receiving an application data stream from an application client of the terminal device; the proxy client determining a first data stream and a second data stream based on the application data stream, wherein the first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the application data stream include the same data; the proxy client sending the first data stream to a proxy server through a first session, and sending the second data stream to the proxy server through a second session, wherein the first session and the second session are redundant sessions.
[0006] The above solution allows for redundant transmission of application data streams by both the proxy client and the proxy server, ensuring the correctness and reliability of data transmission and improving user experience.
[0007] In one possible implementation, the proxy client determines a first data stream and a second data stream based on the application data stream, including: the proxy client determining the first data stream based on a first stream descriptor and the application data stream, wherein the first stream descriptor includes first address information of the proxy server, the destination address of the first data stream matches the first address information, and the first stream descriptor is used to indicate the data characteristics of the first data stream; and the proxy client determining the second data stream based on a second stream descriptor and the application data stream, wherein the second stream descriptor includes second address information of the proxy server, the destination address of the second data stream matches the second address information, and the second stream descriptor is used to indicate the data characteristics of the second data stream.
[0008] In one possible implementation, the proxy client sends a request message to the proxy server. The request message includes an application stream descriptor, which includes the address information of the application server. The application server is used to receive the application data stream, and the application stream descriptor is used to indicate the data characteristics of the application data stream.
[0009] In the above scheme, the proxy client sends an application stream descriptor to the proxy server, so that the proxy server can determine which application server the application data stream needs to be sent to based on the application stream descriptor, which helps to ensure the correct transmission of the application data stream.
[0010] In one possible implementation, the request message further includes the first stream descriptor and the second stream descriptor; or, the proxy client receives the first stream descriptor and the second stream descriptor from the proxy server.
[0011] In one possible implementation, the request message may further include the identification information of the proxy client; and / or, the request message may further include the identification information of the first data stream and the identification information of the second data stream.
[0012] In one possible implementation, the proxy client sends its identification information and / or the identification information of the first data stream to the proxy server through the first session; the proxy client sends its identification information and / or the identification information of the second data stream to the proxy server through the second session.
[0013] In one possible implementation, the proxy client sends the first data stream and the second data stream to the operating system or network card of the terminal device; the operating system or network card of the terminal device sends a first session establishment request message to a first session management network element, the first session establishment request message requesting the establishment of a first session for transmitting the first data stream; the operating system or network card of the terminal device sends a second session establishment request message to a second session management network element, the second session establishment request message requesting the establishment of a second session for transmitting the second data stream, wherein the second session management network element and the first session management network element are located in different public land mobile networks (PLMNs).
[0014] In one possible implementation, the proxy client is a client that supports the distribution, storage, and transmission of application layer content or data for vertical industry applications, and the proxy server is a server that supports the distribution, storage, and transmission of application layer content or data for vertical industry applications.
[0015] In one possible implementation, the proxy client sends the first data stream and the second data stream to the operating system or network card; the operating system or network card sends a first session establishment request message to a first session management network element, the first session establishment request message being used to request the establishment of a first session for transmitting the first data stream; the operating system or network card sends a second session establishment request message to a second session management network element, the second session establishment request message being used to request the establishment of a second session for transmitting the second data stream.
[0016] In one possible implementation, the operating system or network interface card (NIC) receives a first routing policy and a second routing policy from a policy control network element. The first routing policy includes a first flow descriptor and a first (DNN, S-NSSAI) combination, where the first flow descriptor is used to identify the first data flow. The second routing policy includes the second flow descriptor and a second (DNN, S-NSSAI) combination, where the second flow descriptor is used to identify the second data flow. If the operating system or NIC determines that the first routing policy matches the first data flow, it sends a first session establishment request message to the first session management network element, where the first session establishment request message includes the first (DNN, S-NSSAI) combination. If the operating system or NIC determines that the second routing policy matches the second data flow, it sends a second session establishment request message to the second session management network element, where the second session establishment request message includes the second (DNN, S-NSSAI) combination.
[0017] In one possible implementation, the first routing strategy further includes a team identifier and a first redundant sequence number, and the first session establishment request message further includes the team identifier and the first redundant sequence number; the second routing strategy further includes the team identifier and the second redundant sequence number, and the second session establishment request message further includes the team identifier and the second redundant sequence number.
[0018] Secondly, embodiments of this application provide a communication method, which can be executed by a proxy server or a module (such as a chip) applied to the proxy server. Taking the proxy server executing the method as an example, the method includes: the proxy server receiving a request message from a proxy client of a terminal device, the request message including an application stream descriptor, the application stream descriptor including the address information of an application server, the application server being used to receive an application data stream, and the application stream descriptor being used to indicate the data characteristics of the application data stream; the proxy server establishing a correspondence between the application stream descriptor, a first stream descriptor, and a second stream descriptor, the first stream descriptor being used to indicate the data characteristics of a first data stream, the second stream descriptor being used to indicate the data characteristics of a second data stream, the first data stream and the second data stream being redundant data streams, and the first data stream, the second data stream, and the application data stream including the same data.
[0019] In the above scheme, the proxy client sends a request message to the proxy server, which carries the application stream descriptor corresponding to the application data stream. Then, the proxy server establishes the correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor, thereby establishing a connection between the proxy client and the proxy server.
[0020] In one possible implementation, the request message further includes the first stream descriptor and the second stream descriptor; or, the proxy server sends the first stream descriptor and the second stream descriptor to the proxy client.
[0021] In one possible implementation, the request message may further include the identification information of the proxy client; and / or, the request message may further include the identification information of the first data stream and the identification information of the second data stream.
[0022] In one possible implementation, the proxy server receives the identification information of the proxy client and / or the identification information of the first data stream from the proxy client through a first session, the first session being used to transmit the first data stream; the proxy server receives the identification information of the proxy client and / or the identification information of the second data stream from the proxy client through a second session, the second session being used to transmit the second data stream, the first session and the second session being redundant sessions.
[0023] In one possible implementation, the proxy server sends a request message to the policy control network element, the request message including the first stream descriptor and the second stream descriptor.
[0024] In one possible implementation, the request message further includes indication information, which indicates that the first data stream corresponding to the first stream descriptor and the second data stream corresponding to the second stream descriptor are redundant data streams.
[0025] In one possible implementation, the request message further includes a first (DNN, S-NSSAI) combination corresponding to the first stream descriptor and a second (DNN, S-NSSAI) combination corresponding to the second stream descriptor, wherein the first (DNN, S-NSSAI) combination is different from the second (DNN, S-NSSAI) combination.
[0026] In one possible implementation, the request message is used to request the policy control network element to generate user routing policy rules corresponding to the first flow descriptor and user routing policy rules corresponding to the second flow descriptor.
[0027] In one possible implementation, the proxy server receives the first data stream and the second data stream from the proxy client; the proxy server deduplicates the first data stream matching the first stream descriptor and the second data stream matching the second stream descriptor according to the correspondence between the first stream descriptor and the second stream descriptor, obtaining a deduplicated data stream; the proxy server determines the application data stream based on the deduplicated data stream, the application stream descriptor, and the correspondence between the first stream descriptor and the second stream descriptor; the proxy server sends the application data stream to the application server corresponding to the application stream descriptor.
[0028] Thirdly, embodiments of this application provide a communication method that can be executed by a proxy server or a module (such as a chip) applied to the proxy server. Taking the execution of this method by a proxy server as an example, the method includes: the proxy server receiving a first request message from a proxy client of a terminal device, the first request message including an application stream descriptor and address information of a first session of the terminal device, the application stream descriptor including address information of an application server, the application server being used to receive application data streams, and the application stream descriptor being used to indicate the data characteristics of the application data stream; the proxy server receiving a second request message from the proxy client, the second request message including the application stream descriptor and address information of a second session of the terminal device, the first session and the second session belonging to different PLMNs; the proxy server establishing a correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor, the first stream descriptor being used to indicate the data characteristics of the first data stream, the first stream descriptor including address information of the second session, the second stream descriptor being used to indicate the data characteristics of the second data stream, the second stream descriptor including address information of the first session, the first data stream and the second data stream being redundant data streams, and the first data stream, the second data stream, and the application data stream including the same data.
[0029] In the above scheme, the proxy client sends a request message to the proxy server, which carries the application stream descriptor corresponding to the application data stream. Then, the proxy server establishes the correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor, thereby establishing a connection between the proxy client and the proxy server.
[0030] In one possible implementation, the first request message may further include the first stream descriptor; or, the proxy server may send the first stream descriptor to the terminal device.
[0031] In one possible implementation, the second request message further includes the second stream descriptor; or, the proxy server sends the second stream descriptor to the proxy client.
[0032] In one possible implementation, the first request message further includes the identification information of the proxy client and / or the identification information of the first data stream; the second request message further includes the identification information of the proxy client and / or the identification information of the second data stream.
[0033] In one possible implementation, the proxy server receives the identification information of the proxy client and / or the identification information of the first data stream from the proxy client through a first session, the first session being used to transmit the first data stream; the proxy server receives the identification information of the proxy client and / or the identification information of the second data stream from the proxy client through a second session, the second session being used to transmit the second data stream, the first session and the second session being redundant sessions.
[0034] In one possible implementation, the proxy server receives the first data stream and the second data stream from the proxy client; the proxy server deduplicates the first data stream matching the first stream descriptor and the second data stream matching the second stream descriptor according to the correspondence between the first stream descriptor and the second stream descriptor, obtaining a deduplicated data stream; the proxy server determines the application data stream based on the deduplicated data stream, the application stream descriptor, and the correspondence between the first stream descriptor and the second stream descriptor; the proxy server sends the application data stream to the application server corresponding to the application stream descriptor.
[0035] Fourthly, embodiments of this application provide a communication method, which can be executed by a policy control network element or a module (such as a chip) applied to the policy control network element. Taking the execution of the method by a policy control network element as an example, the method includes: the policy control network element receiving a first request message from a session management network element, the first request message including a first (DNN, S-NSSAI) combination; the policy control network element sending first indication information to the session management network element, the first indication information indicating that the session corresponding to the first (DNN, S-NSSAI) combination and the session corresponding to the second (DNN, S-NSSAI) combination are redundant sessions, and the first (DNN, S-NSSAI) combination is different from the second (DNN, S-NSSAI) combination; the policy control network element receiving a second request message from the session management network element, the second request message including the second (DNN, S-NSSAI) combination; and the policy control network element sending the first indication information to the session management network element.
[0036] In one possible implementation, before the policy control network element receives the first request message from the session management network element, it receives second indication information from the proxy server, the first (DNN, S-NSSAI) combination, and the second (DNN, S-NSSAI) combination. The second indication information is used to indicate that the first (DNN, S-NSSAI) combination and the second (DNN, S-NSSAI) combination are used for redundant transmission of the same data.
[0037] Fifthly, embodiments of this application provide a communication method, which can be executed by a proxy client or a module (such as a chip) applied to the proxy client. Taking the proxy client executing the method as an example, the method includes: the proxy client of the terminal device sending a request message to a proxy server, the request message including application service information, and identification information of the application client or the proxy client, the application service information including one or more of the identification information of the application server, the address information of the application server, or the identification information of the application service provided by the application server, the application server being used to send and receive data streams of the application service, the request message being used to request the establishment of a redundant transmission connection between the proxy client and the proxy server for the application client; the proxy client receiving a response message from the proxy server, the response message including first address information and second address information of the proxy server, the first address information and the second address information being used to provide redundant transmission for the data stream of the application service.
[0038] In one possible implementation, the request message further includes identification information of a first data stream and identification information of a second data stream. The first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the data stream of the application service include the same data.
[0039] In one possible implementation, the first address information is matched with the first data stream, and the second address information is matched with the second data stream.
[0040] In one possible implementation, the response message includes the first address information and the second address information of the proxy server. Specifically, the response message includes a first stream descriptor and a second stream descriptor, the first stream descriptor including the first address information and the second stream descriptor including the second address information.
[0041] In one possible implementation, the first stream descriptor further includes the data transmission protocol of the first data stream, and the second stream descriptor further includes the data transmission protocol of the second data stream, wherein the data transmission protocol of the first data stream is the same as the data transmission protocol of the second data stream.
[0042] In one possible implementation, the terminal device triggers the establishment of a first session based on the first stream descriptor, the first session being used to transmit the first data stream; the terminal device triggers the establishment of a second session based on the second stream descriptor, the second session being used to transmit the second data stream; wherein the first session and the second session are redundant sessions.
[0043] In one possible implementation, the terminal device triggers the establishment of a first session based on the first address information, the first session being used to transmit the first data stream; the terminal device triggers the establishment of a second session based on the second address information, the second session being used to transmit the second data stream; wherein the first session and the second session are redundant sessions.
[0044] In one possible implementation, the proxy client sends a first message to the proxy server, the first message including the address information of the first session and the address information of the second session.
[0045] In one possible implementation, the first message includes the address information of the first session and the address information of the second session. Specifically, the first message includes a third stream descriptor and a fourth stream descriptor, the third stream descriptor including the address information of the first session and the fourth stream descriptor including the address information of the second session.
[0046] In one possible implementation, the first message further includes the identification information of the application client and / or the identification information of the proxy client; wherein the first session and the second session are both associated with the application client and / or the proxy client.
[0047] In one possible implementation, the first message further includes identification information of a first data stream and identification information of a second data stream. The first data stream and the second data stream are redundant data streams. The first data stream, the second data stream, and the data stream of the application service include the same data. The first session is associated with the first data stream, and the second session is associated with the second data stream.
[0048] Sixthly, embodiments of this application provide a communication method, which can be executed by a proxy client or a module (such as a chip) applied to the proxy client. Taking the proxy client executing the method as an example, the method includes: the proxy client of a terminal device receiving a first application data stream from an application client of the terminal device; the proxy client determining a first data stream and a second data stream based on the first application data stream, wherein the first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the first application data stream include the same data; the proxy client sending the first data stream to a proxy server through a first session, and sending the second data stream to the proxy server through a second session, wherein the first session and the second session are redundant sessions; wherein the first data stream and the first session correspond to first address information of the proxy server, and the second data stream and the second session correspond to second address information of the proxy server.
[0049] In one possible implementation, the proxy client determines the first data stream and the second data stream based on the first application data stream, including: the proxy client determining the first data stream based on the first address information and the first application data stream; and the proxy client determining the second data stream based on the second address information and the first application data stream.
[0050] In one possible implementation, the proxy client determines a first data stream and a second data stream based on the first application data stream, including: the proxy client determining the first data stream based on a fifth stream descriptor and the first application data stream, the fifth stream descriptor including the first address information and the address information of the first session, the fifth stream descriptor being used to indicate the data characteristics of the first data stream; the proxy client determining the second data stream based on a sixth stream descriptor and the first application data stream, the sixth stream descriptor including the second address information and the address information of the second session, the sixth stream descriptor being used to indicate the data characteristics of the second data stream.
[0051] In one possible implementation, the proxy client generates the fifth stream descriptor based on the first address information and the address information of the first session; the proxy client generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0052] In a seventh aspect, embodiments of this application provide a communication method, which can be executed by a proxy client or a module (such as a chip) applied to the proxy client. Taking the proxy client executing the method as an example, the method includes: the proxy client of the terminal device receiving a third data stream from a proxy server through a first session, and receiving a fourth data stream from the proxy server through a second session, wherein the third data stream and the fourth data stream are redundant data streams, the third data stream corresponds to a first address information of the proxy server, the fourth data stream corresponds to a second address information of the proxy server, and the first session and the second session are redundant sessions; the proxy client determining a second application data stream based on the third data stream and the fourth data stream, wherein the third data stream, the fourth data stream, and the second application data stream include the same data; and the proxy client sending the second application data stream to the application client of the terminal device.
[0053] In one possible implementation, the proxy client determines the second application data stream based on the third data stream and the fourth data stream, including: the proxy client performs deduplication and reordering on the third data stream and the fourth data stream to obtain the second application data stream.
[0054] In one possible implementation, the proxy client determines the second application data stream based on the third data stream and the fourth data stream, including: the proxy client determines the second application data stream based on the first address information, the second address information, the third data stream, and the fourth data stream.
[0055] In one possible implementation, the proxy client determines the second application data stream based on the third data stream and the fourth data stream, including: the proxy client determines the second application data stream based on a fifth stream descriptor, a sixth stream descriptor, the third data stream, and the fourth data stream; wherein the fifth stream descriptor includes the first address information and the address information of the first session, and the fifth stream descriptor is used to indicate the data characteristics of the first data stream; the sixth stream descriptor includes the second address information and the address information of the second session, and the sixth stream descriptor is used to indicate the data characteristics of the second data stream.
[0056] In one possible implementation, the proxy client generates the fifth stream descriptor based on the first address information and the address information of the first session; the proxy client generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0057] Eighthly, embodiments of this application provide a communication method, which can be executed by a proxy server or a module (such as a chip) applied to the proxy server. Taking the proxy server executing the method as an example, the method includes: the proxy server receiving a request message from a proxy client of a terminal device, the request message including first application service information, and identification information of the application client or the proxy client, the first application service information including one or more of the following: identification information of an application server, address information of the application server, or identification information of an application service provided by the application server; the application server being used to send and receive data streams of the application service; the request message being used to request the establishment of a redundant transmission connection between the proxy client and the proxy server for the application client; the proxy server sending a response message to the proxy client, the response message including first address information and second address information of the proxy server, the first address information and the second address information being used to provide redundant transmission for the data stream of the application service.
[0058] In one possible implementation, the proxy server receives second application service information from the application server, the second application service information including one or more of the application server's identification information, the application server's address information, or the identification information of the application services provided by the application server; the proxy server allocates the first address information and the second address information according to the second application service information.
[0059] In one possible implementation, the request message further includes identification information of a first data stream and identification information of a second data stream. The first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the data stream of the application service include the same data.
[0060] In one possible implementation, the first address information is matched with the first data stream, and the second address information is matched with the second data stream.
[0061] In one possible implementation, the response message includes the first address information and the second address information of the proxy server. Specifically, the response message includes a first stream descriptor and a second stream descriptor, the first stream descriptor including the first address information and the second stream descriptor including the second address information.
[0062] In one possible implementation, the first stream descriptor further includes the data transmission protocol of the first data stream, and the second stream descriptor further includes the data transmission protocol of the second data stream, wherein the data transmission protocol of the first data stream is the same as the data transmission protocol of the second data stream.
[0063] In one possible implementation, the proxy client sends a first message to the proxy server, the first message including address information of a first session and address information of a second session; wherein the first session is used to transmit the first data stream, the second session is used to transmit the second data stream, and the first session and the second session are redundant sessions.
[0064] In one possible implementation, the first message includes address information of the first session and address information of the second session. Specifically, the first message includes a third stream descriptor and a fourth stream descriptor, the third stream descriptor including address information of the first session and the fourth stream descriptor including address information of the second session.
[0065] In one possible implementation, the first message further includes the identification information of the application client and / or the identification information of the proxy client; wherein the first session and the second session are both associated with the application client and / or the proxy client.
[0066] In one possible implementation, the first message further includes identification information of a first data stream and identification information of a second data stream. The first data stream and the second data stream are redundant data streams. The first data stream, the second data stream, and the data stream of the application service include the same data. The first session is associated with the first data stream, and the second session is associated with the second data stream.
[0067] In one possible implementation, the proxy server establishes a connection between itself and the application server, and this connection is associated with the application client and / or the proxy client.
[0068] In one possible implementation, the proxy server establishes a connection between itself and the application server, and this connection is associated with the first data stream and the second data stream.
[0069] Ninthly, embodiments of this application provide a communication method, which can be executed by a proxy server or a module (such as a chip) applied to the proxy server. Taking the proxy server executing the method as an example, the method includes: the proxy server receiving a first data stream and a second data stream from a proxy client, the first data stream and the second data stream being redundant data streams, the first data stream, the second data stream and a first application data stream including the same data, the first application data stream originating from an application client of a terminal device; the proxy server determining a third application data stream based on the first data stream and the second data stream, the third application data stream including the same data as the first application data stream; and the proxy server sending the third application data stream to an application server.
[0070] In one possible implementation, the proxy server determines the third application data stream based on the first data stream and the second data stream, including: the proxy server performs deduplication and reordering on the first data stream and the second data stream to obtain the third application data stream.
[0071] In one possible implementation, the proxy server determines a third application data stream based on the first data stream and the second data stream, including: the proxy server determines the third application data stream based on the first address information of the proxy server, the second address information of the proxy server, the first data stream, and the second data stream, wherein the first data stream corresponds to the first address information and the second data stream corresponds to the second address information.
[0072] In one possible implementation, the proxy server determines a third application data stream based on the first data stream and the second data stream, including: the proxy server determines the third application data stream based on a fifth stream descriptor, a sixth stream descriptor, the first data stream, and the second data stream; wherein the fifth stream descriptor includes the first address information of the proxy server and the address information of the first session of the terminal device, and the fifth stream descriptor is used to indicate the data characteristics of the first data stream; the sixth stream descriptor includes the second address information of the proxy server and the address information of the second session of the terminal device, and the sixth stream descriptor is used to indicate the data characteristics of the second data stream; the first session and the second session are redundant sessions, the first session corresponds to the first data stream, and the second session corresponds to the second data stream.
[0073] In one possible implementation, the proxy server generates the fifth stream descriptor based on the first address information and the address information of the first session; the proxy server generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0074] In one possible implementation, the proxy server receives the fifth stream descriptor and the sixth stream descriptor from the proxy client.
[0075] In one possible implementation, the proxy server sends the third application data stream to the application server, including: the proxy server determining a target connection between the proxy server and the application server, the target connection being associated with the proxy client, or with the first data stream and the second data stream; and the proxy server sending the third application data stream to the application server for the application client on the target connection.
[0076] Tenthly, embodiments of this application provide a communication method, which can be executed by a proxy server or a module (such as a chip) applied to the proxy server. Taking the proxy server executing the method as an example, the method includes: the proxy server receiving a fourth application data stream from an application server; the proxy server determining a third data stream and a fourth data stream based on the fourth application data stream, the third data stream and the fourth data stream being redundant data streams, the third data stream, the fourth data stream, and the fourth application data stream including the same data; the proxy server sending the third data stream to a proxy client of a terminal device, and sending the fourth data stream to the proxy client; wherein the third data stream corresponds to a first address information of the proxy server and the address information of a first session of the terminal device, the fourth data stream corresponds to a second address information of the proxy server and the address information of a second session of the terminal device, and the first session and the second session are redundant sessions.
[0077] In one possible implementation, the proxy server determines the third data stream and the fourth data stream based on the fourth application data stream, including: the proxy server determines the third data stream based on the first address information, the address information of the first session, and the fourth application data stream; the proxy server determines the fourth data stream based on the second address information, the address information of the second session, and the fourth application data stream.
[0078] In one possible implementation, the proxy server determines the third and fourth data streams based on the fourth application data stream, including: the proxy server determining the third data stream based on a fifth stream descriptor and the fourth application data stream, wherein the fifth stream descriptor includes the first address information and the address information of the first session, and the fifth stream descriptor is used to indicate the data characteristics of the third data stream; and the proxy server determining the fourth data stream based on a sixth stream descriptor and the fourth application data stream, wherein the sixth stream descriptor includes the second address information and the address information of the second session, and the sixth stream descriptor is used to indicate the data characteristics of the fourth data stream.
[0079] In one possible implementation, the proxy server generates the fifth stream descriptor based on the first address information and the address information of the first session; the proxy server generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0080] In one possible implementation, the proxy server receives the fifth stream descriptor and the sixth stream descriptor from the proxy client.
[0081] In one possible implementation, the proxy server receives a fourth application data stream from the application server, including: the proxy server receiving the fourth application data stream from the application server on a target connection, the target connection being associated with the proxy client, or with the third data stream and the fourth data stream.
[0082] Eleventhly, embodiments of this application provide a communication device, which may be a proxy client or a module (such as a chip) applied in a proxy client. The device has the function of implementing any of the implementation methods of the first, fifth to seventh aspects described above. This function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions.
[0083] In a twelfth aspect, embodiments of this application provide a communication device, which may be a proxy server or a module (such as a chip) applied in a proxy server. The device has the function of implementing any of the implementation methods of the second to third aspects and the eighth to tenth aspects described above. This function can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above-described functions.
[0084] In a thirteenth aspect, embodiments of this application provide a communication device, which may be a policy control network element or a module (such as a chip) applied in a policy control network element. The device has the function of implementing any of the implementation methods of the fourth aspect described above. This function can be implemented in hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above-described functions.
[0085] In a fourteenth aspect, embodiments of this application provide a communication device, including a processor and a memory; the memory is used to store computer instructions, and when the device is running, the processor executes the computer instructions stored in the memory to cause the device to perform any of the implementation methods in the first to tenth aspects described above.
[0086] In a fifteenth aspect, embodiments of this application provide a communication apparatus including units or means for performing various steps of any of the implementation methods described in the first to tenth aspects.
[0087] In a sixteenth aspect, embodiments of this application provide a communication device including a processor and an interface circuit. The processor is configured to communicate with other devices via the interface circuit and execute any of the implementation methods described in the first to tenth aspects. The processor may include one or more devices.
[0088] In a seventeenth aspect, embodiments of this application provide a communication device including a processor coupled to a memory, the processor being configured to invoke a program stored in the memory to execute any of the implementation methods described in the first to tenth aspects. The memory may be located within or outside the device. Furthermore, the processor may be one or more.
[0089] In an eighteenth aspect, embodiments of this application also provide a computer-readable storage medium storing instructions that, when executed on a communication device, cause any of the implementation methods in the first to tenth aspects to be performed.
[0090] In a nineteenth aspect, embodiments of this application also provide a computer program product, which includes a computer program or instructions that, when executed by a communication device, cause any of the implementation methods in the first to tenth aspects to be performed.
[0091] In a twentieth aspect, embodiments of this application also provide a chip system, including: a processor for executing any of the implementation methods in the first to tenth aspects described above.
[0092] In a twentieth aspect, embodiments of this application also provide a communication system, including a proxy server and a proxy client for performing any implementation of the method of the first aspect. The proxy server is configured to receive a first data stream from the proxy client through a first session and a second data stream from the proxy client through a second session.
[0093] In a twentieth aspect, embodiments of this application also provide a communication system, including a proxy client and a proxy server for executing any implementation of the method of the second aspect. The proxy client sends a request message to the proxy server, the request message including an application stream descriptor, the application stream descriptor including address information of an application server, the application server being used to receive application data streams, and the application stream descriptor being used to indicate data characteristics of the application data stream.
[0094] In a twentieth aspect, embodiments of this application also provide a communication system, including a proxy client and a proxy server for executing any implementation of the method of the third aspect. The proxy client sends a first request message and a second request message to the proxy server. The first request message includes an application stream descriptor and address information of a first session of a terminal device. The application stream descriptor includes address information of an application server. The application server is used to receive application data streams, and the application stream descriptor is used to indicate the data characteristics of the application data streams. The second request message includes the application stream descriptor and address information of a second session of the terminal device. The first session and the second session belong to different PLMNs.
[0095] In a twentieth aspect, embodiments of this application also provide a communication system, including a proxy client for performing any implementation of the fifth aspect and a proxy server for performing any implementation of the eighth aspect.
[0096] In a twentieth aspect, embodiments of this application also provide a communication system, including a proxy server and a proxy client for performing any implementation of the method of the sixth aspect. The proxy server is configured to receive a first data stream from the proxy client through a first session and a second data stream from the proxy client through a second session.
[0097] In a twentieth aspect, embodiments of this application also provide a communication system, including a proxy server and a proxy client for performing any implementation of the method of the seventh aspect. The proxy server is configured to send a third data stream to the proxy client via a first session and a fourth data stream to the proxy client via a second session.
[0098] In a twentieth aspect, embodiments of this application also provide a communication system, including a proxy client and a proxy server for performing any implementation of the method of aspect nine. The proxy client is used to send a first data stream and a second data stream to the proxy server.
[0099] In a twentieth aspect, embodiments of this application also provide a communication system, including a proxy client and a proxy server for performing any implementation of the method of aspect ten. The proxy client is configured to receive a third data stream and a fourth data stream from the proxy server. Attached Figure Description
[0100] Figure 1 This is a schematic diagram of a 5G network architecture based on a service-oriented architecture.
[0101] Figure 2 This is a schematic diagram of an end-to-end redundant transmission architecture.
[0102] Figure 3 This is a schematic diagram of the service architecture of SEALDD;
[0103] Figure 4 A schematic diagram of the interfaces in the service architecture of SEALDD;
[0104] Figure 5 A schematic diagram of an end-to-end redundant transmission architecture based on SEALDD service provided in an embodiment of this application;
[0105] Figure 6(a) is a flowchart illustrating a communication method provided in an embodiment of this application;
[0106] Figure 6(b) is a flowchart illustrating a communication method provided in an embodiment of this application;
[0107] Figure 6(c) is a flowchart illustrating a communication method provided in an embodiment of this application;
[0108] Figure 6(d) is a flowchart illustrating a communication method provided in an embodiment of this application;
[0109] Figure 6(e) is a flowchart illustrating a communication method provided in an embodiment of this application;
[0110] Figure 6(f) is a flowchart illustrating a communication method provided in an embodiment of this application;
[0111] Figure 7 A flowchart illustrating a communication method provided in an embodiment of this application;
[0112] Figure 8 A flowchart illustrating a communication method provided in an embodiment of this application;
[0113] Figure 9A flowchart illustrating a communication method provided in an embodiment of this application;
[0114] Figure 10 A flowchart illustrating a communication method provided in an embodiment of this application;
[0115] Figure 11 A flowchart illustrating a communication method provided in an embodiment of this application;
[0116] Figure 12 A flowchart illustrating a communication method provided in an embodiment of this application;
[0117] Figure 13 A flowchart illustrating a communication method provided in an embodiment of this application;
[0118] Figure 14 A flowchart illustrating a communication method provided in an embodiment of this application;
[0119] Figure 15 A schematic diagram of a communication device provided in an embodiment of this application;
[0120] Figure 16 This is a schematic diagram of a communication device provided in an embodiment of this application. Detailed Implementation
[0121] Figure 1 This is a schematic diagram of a 5G network architecture based on a service-oriented architecture. Figure 1 The 5G network architecture shown may include an access network and a core network. Terminal devices access the data network (DN) through the access network and the core network.
[0122] Terminal devices can be user equipment (UE), mobile stations, mobile terminals, etc. They can be widely used in various scenarios, such as device-to-device (D2D), vehicle-to-everything (V2X) communication, machine-type communication (MTC), the Internet of Things (IoT), virtual reality, augmented reality, industrial control, autonomous driving, telemedicine, smart grids, smart furniture, smart offices, smart wearables, smart transportation, and smart cities. Terminal devices can be mobile phones, tablets, computers with wireless transceiver capabilities, wearable devices, vehicles, urban air mobility vehicles (such as drones and helicopters), ships, robots, robotic arms, smart home devices, etc. The following example uses UE as a terminal device; any subsequent mention of UE can be replaced with a terminal device or other examples of terminal devices.
[0123] The access network is used to implement access-related functions. It can provide network access to authorized users in a specific area and determine transmission links of different qualities to transmit user data based on user level, service requirements, etc. The access network forwards control signals and user data between the UE and the core network. The access network can include access network equipment, which can be devices that provide access for the UE, and can include radio access network (RAN) equipment and wired access network equipment. RAN equipment is mainly responsible for functions such as radio resource management, quality of service (QoS) management, data compression, and encryption on the air interface side. RAN equipment can include various forms of base stations, such as macro base stations, micro base stations (also known as small stations), relay stations, access points, balloon stations, etc. In systems using different radio access technologies, the names of equipment with base station functions may differ. For example, in 5G systems, it is called RAN or next-generation Node base station (gNB), and in Long Term Evolution (LTE) systems, it is called evolved Node B (eNB or eNodeB).
[0124] Access network devices and UEs can be fixed or mobile. They can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; on water; or in the air on aircraft, balloons, and satellites. The embodiments of this application do not limit the application scenarios of the access network devices and UEs.
[0125] The core network is responsible for maintaining the subscription data of the mobile network and providing UEs with functions such as session management, mobility management, policy management, and security authentication. The core network includes, but is not limited to, one or more of the following network elements: application function (AF) network element, unified data management (UDM) network element, unified data repository (UDR) network element, policy control function (PCF) network element, session management function (SMF) network element, access and mobility management function (AMF) network element, network repository function (NRF) network element, authentication server function (AUSF) network element, network exposure function (NEF) network element, and user plane function (UPF) network element.
[0126] AMF network elements are primarily responsible for mobility management in mobile networks, such as user location updates, user network registration, and user handover.
[0127] SMF (Service Provider Function) network elements are primarily responsible for session management in mobile networks, such as session establishment, modification, and release. Specific functions include assigning Internet Protocol (IP) addresses to users and selecting a UPF (User Provider Function) to provide packet forwarding capabilities.
[0128] The UPF network element is mainly responsible for forwarding and receiving user data. It can receive user data from the data network and transmit it to the UE through the access network equipment; it can also receive user data from the UE through the access network equipment and forward it to the data network.
[0129] UDM network elements include functions such as managing contracted data and authorizing user access.
[0130] UDR network elements include functions for storing and retrieving data of various types, such as contract data, policy data, and application data.
[0131] NEF network elements are primarily used to support the opening of capabilities and events.
[0132] An AF (Application Provider) element conveys the application's requests to the network, such as QoS requirements or user state event subscriptions. AFs can be third-party functional entities or application services deployed by operators, such as the IP Multimedia Subsystem (IMS) voice call service.
[0133] The PCF network element primarily supports providing a unified policy framework to control network behavior, providing policy rules to control layer network functions, and is also responsible for acquiring user subscription information related to policy decisions. The PCF network element can provide policies, such as QoS policies and slice selection policies, to AMF and SMF network elements.
[0134] NRF network elements can be used to provide network element discovery functionality, providing network element information corresponding to the network element type based on requests from other network elements. NRF also provides network element management services, such as network element registration, updates, deregistration, and network element status subscription and push.
[0135] The AUSF network element is responsible for authenticating the UE and verifying its legitimacy.
[0136] A Data Network (DN) can be used to deploy various services, providing data and / or voice services to the User Equipment (UE). For example, a DN might be the private network of a smart factory. Sensors installed in the workshop can act as UEs, and a control server for these sensors is deployed within the DN. This control server provides services to the sensors. Sensors can communicate with the control server, receive instructions, and transmit collected sensor data back to the control server accordingly. Another example is a DN serving as the internal office network of a company. Employees' mobile phones or computers can act as UEs, accessing information and data resources within the company's internal office network.
[0137] Among them, AF network element, UDM network element, UDR network element, PCF network element, SMF network element, AMF network element, NRF network element, AUSF network element, NEF network element, and UPF network element can also be abbreviated as AF, UDM, UDR, PCF, SMF, AMF, NRF, AUSF, NEF, and UPF, respectively.
[0138] Figure 1 Nausf, Nnef, Nnrf, Namf, Npcf, Nsmf, Nudm, Nudr, and Naf are the service interfaces provided by AUSF, NEF, NRF, AMF, PCF, SMF, UDM, UDR, and AF, respectively, used to invoke the corresponding service operations. N1, N2, N3, N4, and N6 are interface sequence numbers, with the following meanings:
[0139] 1) N1: The interface between AMF and UE, which can be used to transmit non-access stratum (NAS) signaling (such as QoS rules from AMF) to UE.
[0140] 2) N2: The interface between the AMF and the access network equipment, which can be used to transmit radio bearer control information from the core network side to the access network equipment.
[0141] 3) N3: The interface between the access network device and the UPF, mainly used to transmit uplink and downlink user plane data between the access network device and the UPF.
[0142] 4) N4: The interface between SMF and UPF, which can be used to transmit information between the control plane and the user plane, including the distribution of forwarding rules, QoS rules, traffic statistics rules, etc. from the control plane to the user plane, as well as the reporting of information from the user plane.
[0143] 5) N6: The interface between UPF and DN, used to transmit uplink and downlink user data streams between UPF and DN.
[0144] It is understood that the aforementioned network element or function can be a network component in a hardware device, a software function running on dedicated hardware, or a virtualization function instantiated on a platform (e.g., a cloud platform). As one possible implementation method, the aforementioned network element or function can be implemented by a single device, multiple devices working together, or a functional module within a single device; this application does not specifically limit this.
[0145] In the embodiments of this application, the session management network element and the policy control network element can be the SMF network element and the PCF network element in a 5G system, respectively, or they can be network elements in future communications such as 6G networks that have the functions of the aforementioned SMF network element and PCF network element. This application does not limit them in this way. In the embodiments of this application, the SMF network element and the PCF network element are described as examples of session management network elements and policy control network elements, respectively. Furthermore, the SMF network element and the PCF network element are abbreviated as SMF and PCF, respectively.
[0146] The access network device in this application embodiment can be a wireless access network device (such as a base station) or a wired access network device in 5G or future communications. For ease of explanation, a base station is used as an example of an access network device in the embodiments of this application.
[0147] Figure 2This is a schematic diagram of an end-to-end redundant transmission architecture. The UE communicates with the DN by establishing two interconnected sessions and sending two redundant data packets. In this scenario, not only are two different UPF network elements (hereinafter referred to as UPF) used for the transmission of data for each session, but dual-connectivity technology is also used to connect to two base stations simultaneously. Data for the two sessions is transmitted from different base stations and UPFs. (Reference) Figure 2 There are two user plane paths between the UE and the DN: Path 1: UE <-> Primary Base Station <-> UPF1 <-> DN, and Path 2: UE <-> Secondary Base Station <-> UPF2 <-> DN. These two user plane paths are used to transmit the same data, achieving redundant data transmission and improving data transmission reliability. In the control plane, the two sessions may be managed by two different SMFs or by the same SMF; there is no limitation.
[0148] Figure 3 This is a service architecture diagram for Service Enabler Architecture Layer Data Delivery (SEALDD). SEALDD functionality is implemented by a SEALDD client and a SEALDD server. The SEALDD client runs on the UE as part of the UE, either as software or a system component. The SEALDD server is deployed as a standalone or integrated server between the UPF and the Application Server (AS), and multiple SEALDD servers can be deployed in a distributed manner depending on the deployment of the UPF and AS.
[0149] Figure 4This diagram illustrates the interface structure of the SEALDD service architecture. It uses the example of a Vertical Application Layer (VAL) server as the application server and a VAL client on the UE as the application client. Examples of VAL clients include Tencent Video and iQiyi Video apps, while examples of VAL servers include Tencent Video and iQiyi Video servers. VAL clients communicate with SEALDD clients via the SEALDD-C interface, while VAL servers communicate with SEALDD servers via the SEALDD-S interface. Data transmission between the SEALDD client and SEALDD server occurs via the SEALDD-UU interface, which is carried on the user plane sessions built by the 3rd Generation Partnership Project (3GPP) network system. In other words, data between the VAL client and VAL server is transmitted via the SEALDD client and SEALDD server. This SEALDD server is an example of an AF (Airframe Controller). Therefore, the SEALDD server can communicate with the PCF (Power Processor) for control plane messages via the N5 interface, which is the interface between the AF and the PCF. The SEALDD server can also communicate with the PCF for control plane messages via the NEF (Network Controller), which is the interface between the AF and the NEF. The SEALDD server can also transmit user plane data with the UPF (User Plane Controller), which is the interface between the AF and the UPF. SEALDD servers interact with each other through the SEALDD-E interface, including control plane context transmission and user plane data forwarding.
[0150] exist Figure 3 or Figure 4The architecture shown allows data transmission between the SEALDD client and SEALDD server via the 3GPP network system. Application clients and application servers utilize the data transmission services provided by SEALDD to obtain better data transmission services (such as higher reliability and reduced latency jitter). Therefore, when application clients and application servers in the UE need to interact via the 3GPP network, user plane data transmission between them can be achieved through the SEALDD client and SEALDD server. This can be understood as the SEALDD client acting as a proxy device for the application client, and the SEALDD server acting as a proxy device for the application server. In the uplink direction, the application client sends data packets to the SEALDD client, which encapsulates the data packets and then sends the encapsulated data packets to the SEALDD server. The SEALDD server receives the encapsulated data packets, decapsulates them, and then sends the data packets back to the application server. In the downlink direction, the application server sends data packets to the SEALDD server, which encapsulates the data packets and then sends the encapsulated data packets to the SEALDD client. The SEALDD client receives the encapsulated data packets, decapsulates them, and then sends the data packets back to the application client.
[0151] As described above, it currently supports the establishment of redundant sessions with dual base stations and dual UPFs to achieve redundant data transmission between application clients and application servers. However, there is currently no clear solution on how to establish redundant sessions based on application layer triggering and transmit data through two redundant sessions.
[0152] To address this, this application proposes a solution where a proxy layer replaces the application layer in triggering the establishment of redundant sessions and provides data packet replication and deduplication services for the application layer. The proxy layer corresponds to both a proxy client and a proxy server. In this application, the proxy client is a client that supports the distribution, storage, and transmission of application layer content or data by vertical industry applications, and the proxy server is a server that supports the distribution, storage, and transmission of application layer content or data by vertical industry applications. For example, the proxy layer can be the SEALDD protocol layer (also known as the SEALDD enhancement layer), the proxy client can be a SEALDD client, and the proxy server can be a SEALDD server. Of course, this application does not limit the specific implementation of the proxy client and proxy server; any client that supports the distribution, storage, and transmission of application layer content or data by vertical industry applications can serve as a proxy client, and any server that supports the distribution, storage, and transmission of application layer content or data by vertical industry applications can serve as a proxy server.
[0153] Taking the SEALDD client and SEALDD server as an example, which provide data packet replication and deduplication services for the application layer, Figure 5 This illustration shows an end-to-end redundant transmission architecture based on the SEALDD service, according to an embodiment of this application. Based on this architecture, end-to-end redundant sessions based on the SEALDD transport protocol can be established, enabling applications (APPs) to establish and use end-to-end redundant transmission services through the services provided by the SEALDD protocol layer.
[0154] Figure 6(a) is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0155] Step 601a: The UE's application client sends an application data stream to the UE's proxy client.
[0156] The application data stream includes a destination address, which is either the address or URL of the application server. The application server address can be, for example, an IP address, a medium access control (MAC) address, or an Ethernet address. The URL information can be, for example, a fully qualified domain name (FQDN), a uniform resource identifier (URI), or a uniform resource locator (URL). In other words, this application data stream needs to be sent to the application server; it is the data stream transmitted between the application client and the application server.
[0157] Step 602a: The proxy client determines the first data stream and the second data stream based on the application data stream.
[0158] Among them, the first data stream and the second data stream are data streams transmitted between the proxy client and the proxy server. The first data stream and the second data stream are redundant data streams. The first data stream, the second data stream and the application data stream contain the same data.
[0159] Step 603a: The proxy client sends the first data stream to the proxy server through the first session.
[0160] Step 604a: The proxy client sends a second data stream to the proxy server through the second session.
[0161] The first session and the second session are redundant sessions.
[0162] The order of steps 603a and 604a above is not limited.
[0163] The above solution allows for redundant transmission of application data streams by both the proxy client and the proxy server, ensuring the correctness and reliability of data transmission and improving user experience.
[0164] The specific implementation of the above scheme is described below.
[0165] In one implementation method, a connection is established between the proxy client and the proxy server before step 601a. The implementation method for establishing the connection between the proxy client and the proxy server is described below, as shown in Figure 6(b) or Figure 6(c).
[0166] Figure 6(b) is a flowchart illustrating a communication method provided in an embodiment of this application. This method is used to establish a connection between a proxy client and a proxy server. The method includes the following steps:
[0167] Step 601b: The proxy client sends a request message to the proxy server.
[0168] The request message includes an application stream descriptor, which includes the address information of the application server used to receive application data streams. The application stream descriptor is used to indicate the data characteristics of the application data stream.
[0169] Step 602b: The proxy server establishes the correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor.
[0170] The first stream descriptor is used to indicate the data characteristics of the first data stream, and the second stream descriptor is used to indicate the data characteristics of the second data stream. The first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the application data stream contain the same data.
[0171] In the above scheme, the proxy client sends a request message to the proxy server, which carries the application stream descriptor corresponding to the application data stream. Then, the proxy server establishes the correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor, thereby establishing a connection between the proxy client and the proxy server.
[0172] As one implementation method, the request message in step 601b above also includes a first stream descriptor and a second stream descriptor, so that the proxy server receives the first stream descriptor and the second stream descriptor and establishes the correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor. This method involves the proxy client determining the first stream descriptor and the second stream descriptor and sending them to the proxy server.
[0173] As another implementation method, the proxy server determines the first stream descriptor and the second stream descriptor, and carries the first stream descriptor and the second stream descriptor in the response message corresponding to the request message in step 601b above.
[0174] As one implementation method, the proxy server sends a request message to the PCF, which includes a first flow descriptor and a second flow descriptor. The request message is used to request the PCF to generate the UE routing selection policy (URSP) rules corresponding to the first flow descriptor and the URSP rules corresponding to the second flow descriptor.
[0175] As one implementation method, the proxy server sends a request message to the PCF. This request message includes a first stream descriptor, a second stream descriptor, and indication information. The indication information indicates that the first data stream corresponding to the first stream descriptor and the second data stream corresponding to the second stream descriptor are redundant data streams. Thus, the PCF determines that the first and second data streams are redundant based on this request message. Optionally, the request message also includes a first (DNN, S-NSSAI) combination corresponding to the first stream descriptor and a second (DNN, S-NSSAI) combination corresponding to the second stream descriptor. The first (DNN, S-NSSAI) combination and the second (DNN, S-NSSAI) combination are different. Here, DNN is short for Data Network Name, and S-NSSAI is short for Single Network Slice Selection Assistance Information.
[0176] As one implementation method, the request message in step 601b above may also include the identification information of the proxy client, or the identification information of the first data stream and the identification information of the second data stream, or the identification information of the proxy client, the identification information of the first data stream and the identification information of the second data stream.
[0177] As one implementation method, after establishing a first session for transmitting a first data stream and a second session for transmitting a second data stream, the proxy client can also send the proxy client's identification information and / or the identification information of the first data stream to the proxy server through the first session, and send the proxy client's identification information and / or the identification information of the second data stream to the proxy server through the second session.
[0178] Figure 6(c) is a flowchart illustrating a communication method provided in an embodiment of this application. This method is used to establish a connection between a proxy client and a proxy server. The method includes the following steps:
[0179] Step 601c: The proxy client sends a first request message to the proxy server.
[0180] The first request message includes an application stream descriptor and the address information of the UE's first session. The application stream descriptor includes the address information of the application server, which is used to receive application data streams. The application stream descriptor is used to indicate the data characteristics of the application data streams.
[0181] The first request message is sent through the second session on the UE's second Subscriber Identity Module (SIM) card, allowing the proxy server to obtain the address information of the UE's second session. Furthermore, since the first request message also carries the address information of the first session, the proxy server can also obtain the address information of the first session.
[0182] Step 602c: The proxy client sends a second request message to the proxy server.
[0183] The second request message includes an application flow descriptor and the address information of the UE's second session. The application flow descriptor is the same as that in the first request message. The first session and the second session belong to different public land mobile networks (PLMNs).
[0184] The second request message is sent through the first session on the UE's first SIM card, thus allowing the proxy server to obtain the address information of the UE's first session. Furthermore, since the second request message also carries the address information of the second session, the proxy server can also obtain the address information of the second session.
[0185] The order of steps 601c and 602c is not limited.
[0186] Step 603c: The proxy server establishes the correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor.
[0187] The first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the application data stream contain the same data.
[0188] The first stream descriptor indicates the data characteristics of the first data stream. It includes the address information of the second session and the first address information of the proxy server. The first address information of the proxy server includes the destination address, or may include both the destination address and the destination port. The address information of the second session in the first stream descriptor includes the source address, or may include both the source address and the source port.
[0189] The second stream descriptor is used to indicate the data characteristics of the second data stream. The second stream descriptor includes the address information of the first session and the second address information of the proxy server. The second address information of the proxy server includes the destination address, or includes both the destination address and the destination port. The address information of the first session in the second stream descriptor includes the source address, or includes both the source address and the source port.
[0190] In the above scheme, the proxy client sends a request message to the proxy server, which carries the application stream descriptor corresponding to the application data stream. Then, the proxy server establishes the correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor, thereby establishing a connection between the proxy client and the proxy server.
[0191] As one implementation method, the first request message in step 601c above further includes a first stream descriptor, and the second request message includes a second stream descriptor, so that the proxy server receives the first stream descriptor and the second stream descriptor. The method is that the proxy client determines the first stream descriptor and the second stream descriptor and sends the first stream descriptor and the second stream descriptor to the proxy server.
[0192] As another implementation method, the proxy server determines the first stream descriptor and the second stream descriptor, and carries the first stream descriptor in the response message corresponding to the first request message in step 601c above, and carries the second stream descriptor in the response message corresponding to the second request message in step 602c above.
[0193] As one implementation method, the first request message in step 601c above further includes the identification information of the proxy client and / or the identification information of the first data stream. The second request message in step 602c above further includes the identification information of the proxy client and / or the identification information of the second data stream.
[0194] As one implementation method, after establishing a first session for transmitting a first data stream and a second session for transmitting a second data stream, the proxy client can also send the proxy client's identification information and / or the identification information of the first data stream to the proxy server through the first session, and send the proxy client's identification information and / or the identification information of the second data stream to the proxy server through the second session.
[0195] After establishing a connection between the proxy client and the proxy server using the method of the embodiment in Figure 6(b), the method of the embodiment in Figure 6(c), or other methods, the embodiment in Figure 6(a) can be implemented. The specific implementation method of the embodiment in Figure 6(a) will be described below.
[0196] After step 604a, the proxy server, based on the correspondence between the first and second stream descriptors, deduplicates the first data stream matching the first stream descriptor and the second data stream matching the second stream descriptor, obtaining a deduplicated data stream. Then, based on the deduplicated data stream, the application stream descriptor, and the correspondence between the first and second stream descriptors, the proxy server determines the application data stream; the proxy server then sends the application data stream to the application server corresponding to the application stream descriptor.
[0197] In one implementation method, step 602a above may be: the proxy client determines a first data stream based on a first stream descriptor and an application data stream. The first stream descriptor includes the first address information of the proxy server, and the destination address of the first data stream matches the first address information of the proxy server. Specifically, if the first address information of the proxy server includes the first IP address of the proxy server, then the destination address of the first data stream is the first IP address; if the first address information includes the first IP address and the first destination port of the proxy server, then the destination address of the first data stream is the first IP address and the first destination port. Furthermore, the proxy client determines a second data stream based on a second stream descriptor and an application data stream. The second stream descriptor includes the second address information of the proxy server, and the destination address of the second data stream matches the second address information of the proxy server. Specifically, if the second address information of the proxy server includes the second IP address of the proxy server, then the destination address of the second data stream is the second IP address; if the second address information includes the second IP address and the second destination port of the proxy server, then the destination address of the second data stream is the second IP address and the second destination port. The first address information and the second address information of the proxy server are different.
[0198] The following describes the implementation method for establishing a first session for transmitting a first data stream and a second session for transmitting a second data stream. Before step 603a above, the proxy client sends the first data stream and the second data stream to the UE's operating system (OS) or network interface card (NIC); the UE OS or NIC sends a first session establishment request message to the first SMF, which requests the establishment of a first session for transmitting the first data stream, and the first SMF establishes the first session. The UE OS or NIC sends a second session establishment request message to the second SMF, which requests the establishment of a second session for transmitting the second data stream, and the second SMF establishes the second session. The first SMF and the second SMF can be the same SMF or different SMFs corresponding to different PLMNs.
[0199] As one implementation method, the UE OS or network card also receives a first URSP and a second URSP from the PCF. The first URSP includes a first stream descriptor and a first (DNN, S-NSSAI) combination. The first stream descriptor is used to identify the first data stream. The second URSP includes a second stream descriptor and a second (DNN, S-NSSAI) combination. The second stream descriptor is used to identify the second data stream. If the UE OS or network card determines that the first URSP matches the first data stream, it sends the aforementioned first session establishment request message to the first SMF. The first session establishment request message includes the first (DNN, S-NSSAI) combination. If the UE OS or network card determines that the second URSP matches the second data stream, it sends the aforementioned second session establishment request message to the second SMF. The second session establishment request message includes the second (DNN, S-NSSAI) combination.
[0200] It should be noted that the embodiments in Figures 6(a), 6(b), and 6(c) above are illustrated using the redundant transmission of uplink application data streams as an example. The embodiments of this application can also be applied to the redundant transmission of downlink application data streams. The implementation principle is similar to that of the redundant transmission of uplink application data streams, and will not be described again.
[0201] Figure 6(d) is a flowchart illustrating a communication method provided in an embodiment of this application. This method is used to establish a connection between a proxy client and a proxy server. The method includes the following steps:
[0202] In step 601d, the proxy client sends a request message to the proxy server. The request message includes first application service information and identification information of either the application client or the proxy client.
[0203] The first application service information includes one or more of the following: the application server's identification information, the application server's address information, or the identification information of the application service provided by the application server. The application server is used to send and receive application service data streams, and the request message is used to request the establishment of a redundant transmission connection from the proxy client to the proxy server for the application client.
[0204] Optionally, the request message also includes a flow ID, which is used to identify the data stream of a specific application on the proxy client. For example, flow ID 1 is used to identify the data stream of the Tencent APP, and flow ID 2 is used to identify the data stream of the iQiyi APP. That is, the same proxy client can send redundant data streams from different applications to the proxy server, and then the flow ID is needed to distinguish the data streams of different applications.
[0205] In step 602d, the proxy server sends a response message to the proxy client. The response message includes the first address information and the second address information of the proxy server. The first address information and the second address information are used to provide redundant transmission for the data stream of the application service.
[0206] In the above scheme, the proxy client sends a request message to the proxy server, which includes first application service information and identification information of either the application client or the proxy client. Then, the proxy server sends a response message to the proxy client, which includes the first address information and the second address information of the proxy server, thereby establishing a connection between the proxy client and the proxy server.
[0207] In one possible implementation, the proxy server receives second application service information from the application server. The second application service information includes one or more of the following: the application server's identification information, the application server's address information, or the identification information of the application service provided by the application server. The proxy server allocates the first address information and the second address information based on the second application service information.
[0208] In one possible implementation, the request message further includes identification information for a first data stream and identification information for a second data stream. The first and second data streams are redundant, and the first, second, and application service data streams contain the same data. Specifically, the first address information matches the first data stream, and the second address information matches the second data stream. Optionally, the identification information for the first and second data streams can be the same identifier as the flow ID described above.
[0209] In one possible implementation, the response message includes first address information and second address information of the proxy server. Specifically, the response message includes a first stream descriptor and a second stream descriptor, the first stream descriptor including the first address information and the second stream descriptor including the second address information. Optionally, the first stream descriptor further includes the data transmission protocol of the first data stream, and the second stream descriptor further includes the data transmission protocol of the second data stream, wherein the data transmission protocol of the first data stream is the same as the data transmission protocol of the second data stream.
[0210] In one possible implementation, the terminal device triggers the establishment of a first session based on a first stream descriptor, the first session being used to transmit the first data stream, and triggers the establishment of a second session based on a second stream descriptor, the second session being used to transmit the second data stream; wherein the first session and the second session are redundant sessions.
[0211] In another possible implementation, the terminal device triggers the establishment of a first session based on the first address information, the first session being used to transmit the first data stream; and triggers the establishment of a second session based on the second address information, the second session being used to transmit the second data stream; wherein the first session and the second session are redundant sessions.
[0212] In one possible implementation, the proxy client also sends a first message to the proxy server, which includes address information for the first session and address information for the second session.
[0213] In one possible implementation, the first message includes address information of the first session and address information of the second session. Specifically, the first message includes a third stream descriptor and a fourth stream descriptor, the third stream descriptor including address information of the first session and the fourth stream descriptor including address information of the second session.
[0214] In one possible implementation, the first message further includes the identification information of the application client and / or the identification information of the proxy client; wherein both the first session and the second session are associated with the application client and / or the proxy client.
[0215] Optionally, the first message may also include a flow ID, which is used to identify the data flow of a specific application on the proxy client. For example, flow ID 1 is used to identify the data flow of the Tencent APP, and flow ID 2 is used to identify the data flow of the iQiyi APP.
[0216] In one possible implementation, the first message further includes identification information for a first data stream and identification information for a second data stream. The first and second data streams are redundant data streams, and the first data stream, the second data stream, and the application service's data stream contain the same data. The first session is associated with the first data stream, and the second session is associated with the second data stream. Optionally, the identification information for the first and second data streams can be the same identifier as the flow ID described above.
[0217] In one possible implementation, the proxy server establishes a connection or path between the proxy server and the application server, which is associated with the application client and / or the proxy client, or the connection or path is associated with a first data stream and a second data stream.
[0218] Figure 6(e) is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0219] Step 601e: The application client sends the first application data stream to the proxy client.
[0220] Step 602e: The proxy client determines the first data stream and the second data stream based on the first application data stream. The first data stream and the second data stream are redundant data streams. The first data stream, the second data stream, and the first application data stream contain the same data.
[0221] Step 603e: The proxy client sends the first data stream to the proxy server through the first session.
[0222] The first data stream and the first session correspond to the first address information of the proxy server.
[0223] In step 604e, the proxy client sends a second data stream to the proxy server through a second session.
[0224] The second data stream and the second session correspond to the second address information of the proxy server. The first session and the second session are redundant sessions.
[0225] In step 605e, the proxy server determines a third application data stream based on the first data stream and the second data stream, the third application data stream including the same data as the first application data stream.
[0226] Step 606e: The proxy server sends a third application data stream to the application server.
[0227] The above solution allows for redundant transmission of application data streams by both the proxy client and the proxy server, ensuring the correctness and reliability of data transmission and improving user experience.
[0228] In one implementation method, step 602e specifically involves: the proxy client determining a first data stream based on the first address information and the first application data stream, and determining a second data stream based on the second address information and the first application data stream.
[0229] In one implementation method, step 602e specifically comprises: the proxy client determining a first data stream based on a fifth stream descriptor and a first application data stream, and determining a second data stream based on a sixth stream descriptor and the first application data stream, wherein the fifth stream descriptor includes first address information and address information of a first session, and is used to indicate the data characteristics of the first data stream; the sixth stream descriptor includes second address information and address information of a second session, and is used to indicate the data characteristics of the second data stream. Optionally, the proxy client generates the fifth stream descriptor based on the first address information and the address information of the first session, and generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0230] In one implementation method, step 605e specifically involves: the proxy server performing deduplication and reordering on the first and second data streams to obtain the third application data stream.
[0231] In one implementation method, step 605e specifically involves: the proxy server determining a third application data stream based on its first address information, second address information, first data stream, and second data stream. The first data stream corresponds to the first address information, and the second data stream corresponds to the second address information. Specifically, the proxy server can determine the third application data stream based on the first address, second address information, first data stream, second data stream, and the flow identifier and the application client's identifier (or the proxy client's identifier). Optionally, the flow identifier (flow ID) can be the same identifier as the identifier of the first data stream and the identifier of the second data stream.
[0232] In one implementation method, step 605e specifically involves: the proxy server determining a third application data stream based on the fifth flow descriptor, the sixth flow descriptor, the first data stream, and the second data stream. Specifically, the proxy server can determine the third application data stream based on the fifth flow descriptor, the sixth flow descriptor, the first data stream, the second data stream, and the flow identifier and the identification information of the application client (or the identification information of the proxy client). Optionally, the flow identifier (flow ID) can be the same identifier as the identification information of the first data stream and the identification information of the second data stream. The fifth flow descriptor includes the first address information of the proxy server and the address information of the first session of the terminal device, and is used to indicate the data characteristics of the first data stream. The sixth flow descriptor includes the second address information of the proxy server and the address information of the second session of the terminal device, and is used to indicate the data characteristics of the second data stream. The first session and the second session are redundant sessions, with the first session corresponding to the first data stream and the second session corresponding to the second data stream. Optionally, the proxy server generates the fifth flow descriptor based on the first address information and the address information of the first session, and the proxy server generates the sixth flow descriptor based on the second address information and the address information of the second session. Alternatively, the proxy server receives the fifth and sixth stream descriptors from the proxy client.
[0233] In one implementation method, step 606e specifically involves: the proxy server determining a target connection between itself and the application server. This target connection is associated with the proxy client, or with a first data stream and a second data stream. On this target connection, the proxy server sends a third application data stream from the application client to the application server. Specifically, when establishing the target connection, the proxy server establishes the connection based on the application client's identification information (or the proxy client's identification information). Optionally, the target connection can be established based on the application client's identification information and a stream identifier, or based on the proxy client's identification information and a stream identifier. Furthermore, both the aforementioned request message and the first message carry the application client's identification information (or the proxy client's identification information) and a flow identifier. After receiving the first and second data streams, the proxy server determines the associated application client's identification information and the proxy client's identification information based on at least one of the fifth flow descriptor, the first address information, and the address information of the first session corresponding to the first data stream, and at least one of the sixth flow descriptor, the second address information, and the address information of the second session corresponding to the second data stream. Optionally, it also determines the associated flow identifier. Then, it determines the target connection between the proxy server and the application server based on the application client's identification information (or the proxy client's identification information), or based on the application client's identification information and the flow identifier, or based on the proxy client's identification information and the flow identifier. Optionally, the flow identifier (flow ID) can be the same identifier as the identification information of the first and second data streams.
[0234] Figure 6(f) is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0235] Step 601f: The application server sends the fourth application data stream to the proxy server.
[0236] Step 602f: The proxy server determines the third data stream and the fourth data stream based on the fourth application data stream. The third data stream and the fourth data stream are redundant data streams, and the third data stream, the fourth data stream, and the fourth application data stream contain the same data.
[0237] In step 603f, the proxy server sends a third data stream to the proxy client, and the proxy client receives the third data stream through the first session.
[0238] The third data stream corresponds to the first address information of the proxy server and the address information of the first session of the terminal device.
[0239] In step 604f, the proxy server sends a fourth data stream to the proxy client, and the proxy client receives the fourth data stream through the second session.
[0240] The fourth data stream corresponds to the second address information of the proxy server and the address information of the second session of the terminal device. The first session and the second session are redundant sessions.
[0241] Step 605f: The proxy client determines the second application data stream based on the third data stream and the fourth data stream. The third data stream, the fourth data stream, and the second application data stream contain the same data.
[0242] Step 606f: The proxy client sends a second application data stream to the application client.
[0243] The above solution allows for redundant transmission of application data streams by both the proxy client and the proxy server, ensuring the correctness and reliability of data transmission and improving user experience.
[0244] In one implementation method, step 601f specifically involves: the application server sending a fourth application data stream to the proxy server over the target connection, the target connection being associated with the proxy client, or with the third or fourth data stream.
[0245] In one implementation method, step 602f specifically involves: the proxy server determining a third data stream based on the first address information, the address information of the first session, and the fourth application data stream; and determining a fourth data stream based on the second address information, the address information of the second session, and the fourth application data stream. Specifically, the proxy server determines the third data stream based on the first address information, the address information of the first session, the fourth application data stream, and the flow identifier and the identification information of the application client (or the identification information of the proxy client). The proxy server determines the fourth data stream based on the second address information, the address information of the second session, the fourth application data stream, and the flow identifier and the identification information of the application client (or the identification information of the proxy client). Optionally, the flow identifier (flow ID) can be the same identifier as the identification information of the third data stream and the identification information of the fourth data stream. This flow identifier is used to identify the data stream of a specific application on the proxy client.
[0246] In one implementation method, step 602f specifically involves: the proxy server determining a third data stream based on a fifth stream descriptor and a fourth application data stream, and determining a fourth data stream based on a sixth stream descriptor and the fourth application data stream. Specifically, the proxy server determines the third data stream based on the fifth stream descriptor, the fourth application data stream, a stream identifier, and the identification information of the application client (or the identification information of the proxy client). The proxy server determines the fourth data stream based on the sixth stream descriptor, the stream identifier, and the identification information of the application client (or the identification information of the proxy client). The fifth stream descriptor includes first address information and the address information of the first session, and is used to indicate the data characteristics of the third data stream. The sixth stream descriptor includes second address information and the address information of the second session, and is used to indicate the data characteristics of the fourth data stream. Optionally, the proxy server generates the fifth stream descriptor based on the first address information and the address information of the first session, and generates the sixth stream descriptor based on the second address information and the address information of the second session. Alternatively, the proxy server receives the fifth and sixth stream descriptors from the proxy client. Optionally, the flow ID can be the same identifier as the identifier of the third data flow and the identifier of the fourth data flow. This flow ID is used to identify the data flow of a specific application on the proxy client.
[0247] In one implementation method, step 605f above specifically involves: the proxy client performing deduplication and reordering on the third and fourth data streams to obtain the second application data stream.
[0248] In one implementation method, step 605f specifically involves: the proxy client determining the second application data stream based on the first address information, the second address information, the third data stream, and the fourth data stream.
[0249] In one implementation method, step 605f specifically involves: the proxy client determining the second application data stream based on the fifth stream descriptor, the sixth stream descriptor, the third data stream, and the fourth data stream. The fifth stream descriptor includes first address information and the address information of the first session, and is used to indicate the data characteristics of the first data stream. The sixth stream descriptor includes second address information and the address information of the second session, and is also used to indicate the data characteristics of the second data stream. Optionally, the proxy client generates the fifth stream descriptor based on the first address information and the address information of the first session, and generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0250] The following is combined Figures 7 to 10 Specific embodiments, for the above Figures 6(a) to 6(c) The following embodiments will be described. Figures 7 to 9 The embodiments are all specific examples of the embodiments combining Figure 6(a) and Figure 6(b). Figure 10 The embodiments are specific examples of the embodiments combining Figures 6(a) and 6(c). The following... Figures 7 to 10 In the embodiments, VAL client, VAL server, SEALDD client, and SEALDD server are used as specific examples of application client, application server, proxy client, and proxy server, respectively, for illustration.
[0251] Figure 7 This is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0252] Step 701: The VAL server sends a request message to the SEALDD server.
[0253] The VAL server uses this message to request the use of the SEALDD service from the SEALDD server. Optionally, this request message can be a request message for redundant transmission, which may include information such as the QoS requirements of the application data stream, such as packet loss rate and latency.
[0254] In one implementation, the request message includes the UE's identification information. In another implementation, the request message includes an external group identifier, which corresponds to a group of UEs.
[0255] Optionally, the request message may also include application data characteristics that use the SEALDD service, such as the address of the VAL server, the application identifier of the VAL (e.g., a combination of the operating system identifier and the application identifier), etc.
[0256] Step 701 is an optional step.
[0257] Step 702: The SEALDD server sends a request message to the PCF via NEF / UDR.
[0258] This request message can also be called an AF influence request message or an AF influence URSP request message. URSP is short for User Routing Selection Policy.
[0259] The request message includes the UE's identification information or internal group identifier, and also includes SEALDD stream descriptor 1, (DNN, S-NSSAI) combination 1 corresponding to SEALDD stream descriptor 1, SEALDD stream descriptor 2, and (DNN, S-NSSAI) combination 2 corresponding to SEALDD stream descriptor 2. Optionally, the request message also includes indication information, which indicates that the SEALDD data streams corresponding to SEALDD stream descriptor 1 and SEALDD stream descriptor 2 are redundant data streams. Optionally, the request message also includes a pair ID, which is used to associate two sessions with redundant transmissions, or to associate two SEALDD data streams with redundant transmissions.
[0260] The SEALDD stream descriptor can also be referred to as the characteristic information of the SEALDD data stream. SEALDD stream descriptor 1 includes the SEALDD server address information 1 and the SEALDD transport protocol, while SEALDD stream descriptor 2 includes the SEALDD server address information 2 and the SEALDD transport protocol. The SEALDD server address information 1 and SEALDD server address information 2 are different. In one implementation, the SEALDD server address information 1 and SEALDD server address information 2 each include different IP addresses. In another implementation, the SEALDD server address information 1 and SEALDD server address information 2 include the same IP address but different port numbers. In yet another implementation, the SEALDD server address information 1 and SEALDD server address information 2 are different DNNs (Dedicated Name Networks). In yet another implementation, the SEALDD server address information 1 and SEALDD server address information 2 are different URLs, such as FQDNs, URIs, or URLs.
[0261] (DNN, S-NSSAI) combination 1 is different from (DNN, S-NSSAI) combination 2. For example, the DNN in (DNN, S-NSSAI) combination 1 is different from the DNN in (DNN, S-NSSAI) combination 2, and / or the S-NSSAI in (DNN, S-NSSAI) combination 1 is different from the S-NSSAI in (DNN, S-NSSAI) combination 2.
[0262] In one implementation, if step 701 is executed and the request message in step 701 requests redundant transmission, the SEALDD server can determine to configure a redundant transmission path for the UE based on the request message sent by the VAL server. In another implementation, if step 701 is executed and the request message in step 701 carries QoS requirements for the application data stream, the SEALDD server can determine to configure a redundant transmission path for the UE based on the QoS requirements. In this implementation, the SEALDD server can also send a feedback notification message to the VAL server regarding the request message in step 701, notifying the VAL server that redundant transmission is required for the UE.
[0263] In one implementation method, if step 701 is executed and the request message of step 701 carries the UE's identification information, then the request message of step 702 carries the UE's identification information, which is the same as the UE's identification information in the request message of step 701, and step 702 is triggered by step 701.
[0264] In another implementation method, if step 701 is executed and the request message of step 701 carries an external group identifier, then the request message of step 702 carries an internal group identifier. The internal group identifier corresponds to a group of UEs. For example, the SEALDD server may request the NEF to convert the external group identifier into an internal group identifier. Step 702 is triggered by step 701.
[0265] In another implementation, if step 701 is not executed, the request message in step 702 carries the UE's identification information or internal group identifier, which corresponds to a group of UEs. Step 702 can be triggered based on configuration information in the SEALDD server. For example, the configuration information in the SEALDD server includes the identification information of the subscribed UE or the subscribed internal group identifier, indicating that the subscribed UE or the group of UEs corresponding to the subscribed internal group identifier is allowed redundant transmission.
[0266] Step 703: PCF sends URSP rule 1 and URSP rule 2 to UE.
[0267] Here, UE can be a single UE or multiple UEs corresponding to an internal group identifier. When the PCF sends URSP rule 1 and URSP rule 2 to multiple UEs within a group, in one implementation, the PCF sends the same URSP rule 1 and the same URSP rule 2 to multiple UEs within a group. In another implementation, the PCF sends URSP rule 1 and URSP rule 2 to multiple UEs within a group separately, meaning that the URSP rules received by different UEs are unrelated.
[0268] Optionally, the UE's operating system (OS) or network card can obtain URSP rule 1 and URSP rule 2.
[0269] URSP rule 1 includes SEALDD stream descriptor 1, group identifier, RSN1, and (DNN, S-NSSAI) combination 1. URSP rule 2 includes SEALDD stream descriptor 2, group identifier, RSN2, and (DNN, S-NSSAI) combination 2. Here, RSN is short for Redundant Serial Number.
[0270] In this context, SEALDD stream descriptor 1 in URSP rule 1 and SEALDD stream descriptor 2 in URSP rule 2 are request messages from step 702 above.
[0271] The group identifier in URSP Rule 1 is the same as the group identifier in URSP Rule 2. If the request message in step 702 carries a group identifier, then the group identifier in URSP Rule 1 and URSP Rule 2 comes from the request message in step 702. If the request message in step 702 does not carry a group identifier, then the group identifier in URSP Rule 1 and URSP Rule 2 can be generated by PCF.
[0272] RSN1 in URSP Rule 1 is different from RSN2 in URSP Rule 2, and both are generated by the PCF. RSN1 and RSN2 are used to distinguish two different sessions within the same queue, and these two sessions are redundant. That is, the queue identifier and RSN1 indicate one session in a redundant session, and the queue identifier and RSN2 indicate the other session in a redundant session. These two sessions constitute a pair of redundant sessions used to transmit the same data.
[0273] Step 704a: The VAL server sends a notification message to the UE's VAL client, which is used to notify the VAL client to use the SEALDD service.
[0274] In another implementation, the VAL server decides to use the redundant transmission service provided by SEALDD based on its local policy, or the VAL server may learn from a notification from the SEALDD server that it needs to use the redundant transmission service. The VAL server then sends this notification message to the VAL client, specifically instructing the VAL client to use the SEALDD service for end-to-end redundant transmission. Step 704a is optional.
[0275] Step 704: The VAL client sends a service request message to the UE's SEALDD client. The service request message includes a VAL traffic descriptor and is used to request end-to-end redundant transmission of the application data stream (also known as the VAL data stream) corresponding to the VAL traffic descriptor.
[0276] This service request message can also be called a request message, a SEALDD service request message, or a SEALDD redundant transmission request message, etc.
[0277] For example, the VAL client can send the service request message to the SEALDD client through the application programming interface (API) exposed by the SEALDD client.
[0278] A VAL stream descriptor can also be referred to as the characteristic information of a VAL data stream. This VAL stream descriptor includes the address information of the VAL server and the VAL transport protocol; optionally, it also includes the address information of the VAL client.
[0279] Step 704 is an optional step.
[0280] If step 704 is not executed, the following can be performed: The SEALDD client detects the application data stream from the VAL client and determines that the application data stream needs to be transmitted with end-to-end redundancy. Then, the SEALDD client obtains the VAL stream descriptor from the data packets of the application data stream. The VAL stream descriptor includes the address information of the VAL server and the VAL transport protocol. Optionally, the VAL stream descriptor also includes the address information of the VAL client.
[0281] Step 705: The SEALDD client selects the SEALDD server.
[0282] The address information of the SEALDD server (including IP address, or IP address and port number) can be pre-configured on the SEALDD client, configured on the VAL client and provided to the SEALDD client by the VAL client, or obtained by the SEALDD client or VAL client from other network elements. No limitation is made here.
[0283] Step 706: The SEALDD client sends a request message to the SEALDD server, which includes a VAL stream descriptor.
[0284] This request message is used to request the initiation of end-to-end redundant transmission.
[0285] The VAL stream descriptor in the request message is the same VAL stream descriptor obtained in step 704 above. This VAL stream descriptor is used to describe the data characteristics of the application data stream that needs to be transmitted redundantly.
[0286] Optionally, the request message also includes SEALDD stream descriptor 1 and SEALDD stream descriptor 2. SEALDD stream descriptor 1 includes the SEALDD transport protocol and the address information 1 of the SEALDD server. The address information 1 of the SEALDD server in SEALDD stream descriptor 1 is the same as the address information 1 of the SEALDD server in SEALDD stream descriptor 1 of URSP rule 1 above. SEALDD stream descriptor 2 includes the SEALDD transport protocol and the address information 2 of the SEALDD server. The address information 2 of the SEALDD server in SEALDD stream descriptor 2 is the same as the address information 2 of the SEALDD server in SEALDD stream descriptor 2 of URSP rule 2 above.
[0287] Optionally, the request message may also include identification information of the SEALDD client, and / or identification information of SEALDD data stream 1 and SEALDD data stream 2. That is, the request message may include identification information of the SEALDD client, or may include identification information of SEALDD data stream 1 and SEALDD data stream 2, or may include identification information of the SEALDD client, identification information of SEALDD data stream 1, and identification information of SEALDD data stream 2. The identification information of the SEALDD client is used to identify the SEALDD client, the identification information of SEALDD data stream 1 is used to identify the SEALDD data stream corresponding to SEALDD stream descriptor 1, and the identification information of SEALDD data stream 2 is used to identify the SEALDD data stream corresponding to SEALDD stream descriptor 2.
[0288] Step 707: The SEALDD server sends a response message to the SEALDD client. Optionally, the response message includes SEALDD stream descriptor 1 and SEALDD stream descriptor 2.
[0289] The response message can be a redundant transmission response message.
[0290] The specific contents of SEALDD stream descriptor 1 and SEALDD stream descriptor 2 can be found in the description of step 706.
[0291] In one implementation, if the request message in step 706 carries SEALDD stream descriptor 1 and SEALDD stream descriptor 2, then the response message in step 707 does not carry SEALDD stream descriptor 1 and SEALDD stream descriptor 2.
[0292] In another implementation, if the request message in step 706 does not carry SEALDD stream descriptor 1 and SEALDD stream descriptor 2, then the response message in step 707 carries SEALDD stream descriptor 1 and SEALDD stream descriptor 2.
[0293] Step 708: The SEALDD client sends a service response message to the VAL client.
[0294] Step 708 is an optional step.
[0295] Step 709: The VAL client sends an application data stream to the SEALDD client.
[0296] The application data stream includes one or more data packets. Each data packet includes a header and data. The header includes the destination address (i.e., the IP address of the VAL server), the destination port number (i.e., the port number of the VAL server), and the VAL transport protocol.
[0297] Step 710: The SEALDD client sends two SEALDD data streams to the UE OS or network card.
[0298] Specifically, the SEALDD client matches an application data stream from the VAL client based on the VAL stream descriptor, and then maps the application data stream into two SEALDD data streams based on the SEALDD stream descriptor corresponding to the VAL stream descriptor. These two SEALDD data streams are then sent to the UE OS or network interface card. These two SEALDD data streams are redundant.
[0299] In one implementation, the SEALDD client adds different headers to the application data stream packets to obtain two SEALDD data streams. For example, the added headers to the application data stream packets carry the SEALDD server address information 1, the SEALDD transport protocol, the sequence number of the data packet, and also carry the SEALDD client identification information and / or the identification information of SEALDD data stream 1, thus obtaining SEALDD data stream 1. The SEALDD server address information 1 in the added header serves as the destination address, or as both the destination address and the destination port number. The sequence number in the added header indicates the transmission order of the data packets in SEALDD data stream 1, and different data packets in SEALDD data stream 1 have different sequence numbers. The SEALDD client identification information in the added header identifies that SEALDD data stream 1 was sent via the SEALDD client indicated by the SEALDD client identification information. The identification information of SEALDD data stream 1 in the added header indicates SEALDD data stream 1. Similarly, the newly added header in the application data stream carries the SEALDD server address information 2, the SEALDD transport protocol, the sequence number of the data packet, and also carries the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2, thus obtaining SEALDD data stream 2. The SEALDD server address information 2 in the newly added header serves as the destination address, or as both the destination address and the destination port number. The sequence number in the newly added header indicates the transmission order of the data packet in SEALDD data stream 2; different data packets in SEALDD data stream 2 have different sequence numbers. The SEALDD client identification information in the newly added header identifies that SEALDD data stream 2 was sent via the SEALDD client indicated by the SEALDD client identification information. The identification information of SEALDD data stream 2 in the newly added header indicates SEALDD data stream 2.
[0300] In another implementation, the SEALDD client modifies the header of the application data stream packets in two different ways to obtain two SEALDD data streams. For example, the destination address (or destination address + destination port number) in the header of the application data stream packets is replaced with the address information of the SEALDD server (1), and the transport protocol in the header of the application data stream packets is replaced with the SEALDD transport protocol (VAL transport protocol). Optionally, the sequence number in the header is also replaced with a newly generated sequence number, thus obtaining SEALDD data stream 1. If the packet is not replaced with a new sequence number, the original sequence number in the packet can be used. Similarly, the destination address (or destination address and destination port number) in the header of the application data stream packets is replaced with the address information of the SEALDD server (VAL server 2), the transport protocol in the header of the application data stream packets is replaced with the SEALDD transport protocol (VAL transport protocol), and the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2 is added to the header. Optionally, the sequence number in the header is also replaced with a newly generated sequence number, thus obtaining SEALDD data stream 2. If the packet does not have a newly added sequence number, the original sequence number in the packet can be used.
[0301] Step 711a: The UE OS or network card sends a session establishment request message 1 to the SMF according to URSP rule 1. The session establishment request message 1 includes a team identifier, RSN1, and (DNN, S-NSSAI) combination 1.
[0302] The UE OS or network interface card (NIC) matches the received SEALDD data stream according to URSP rules (including URSP rule 1 and URSP rule 2). Since SEALDD stream descriptor 1 in URSP rule 1 can match SEALDD data stream 1, the UE OS or NIC queries whether the session corresponding to the group identifier, RSN1, and (DNN, S-NSSAI) combination 1 in URSP rule 1 has been established. If it has been established, the SEALDD data stream 1 is mapped to the established session; if it has not been established, a session establishment request message 1 is initiated to request the establishment of the session. This step 711a is described with the session not yet established.
[0303] Step 711b: The UE OS sends a session establishment request message 2 to the SMF according to URSP rule 2. The session establishment request message 2 includes a team identifier, RSN2, and (DNN, S-NSSAI) combination 2.
[0304] The specific implementation of step 711b is similar to that of step 711a above, and can be referred to the foregoing description.
[0305] In step 712, SMF establishes one session based on session establishment request message 1 and another session based on session establishment request message 2. The two sessions are redundant.
[0306] Step 713: The SEALDD client sends notification message 1 to the SEALDD server. Notification message 1 includes the identification information of the SEALDD client and / or the identification information of SEALDD data stream 1.
[0307] Since the SEALDD client sends notification message 1 to the SEALDD server through session 1, the SEALDD server can obtain the address information of session 1. Furthermore, since notification message 1 includes the identification information of the SEALDD client and / or the identification information of SEALDD data stream 1, the SEALDD server can obtain the correspondence between the identification information of SEALDD data stream 1 and session 1, and / or the correspondence between the identification information of SEALDD data stream 1 and the address information of session 1.
[0308] Step 714: The SEALDD client sends notification message 2 to the SEALDD server through session 2. The notification message 2 includes the identification information of the SEALDD client and / or the identification information of the SEALDD data stream 2.
[0309] Since the SEALDD client sends notification message 2 to the SEALDD server through session 2, the SEALDD server can obtain the address information of session 2. Furthermore, since notification message 2 includes the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2, the SEALDD server can obtain the correspondence between the identification information of SEALDD data stream 2 and session 2, and / or the correspondence between the identification information of SEALDD data stream 2 and the address information of session 2.
[0310] It should be noted that steps 713 and 714 above are optional steps. Specifically, if SEALDD data stream 1 and SEALDD data stream 2 are obtained by modifying the packet header in the application data stream in step 710, then steps 713 and 714 are executed. This is because: since the packet header does not carry the identification information of the SEALDD client, SEALDD data stream 1, or SEALDD data stream 2, the SEALDD server cannot know which SEALDD client or UE the data packets of SEALDD data stream 1 and SEALDD data stream 2 originate from. Therefore, by executing steps 713 and 714, the SEALDD server can perceive the session identification information corresponding to the data packets of SEALDD data stream 1 and SEALDD data stream 2, thereby allowing the SEALDD server to determine which SEALDD client or UE SEALDD data stream 1 and SEALDD data stream 2 originate from.
[0311] Subsequently, redundant transmission of application data streams between the VAL client and VAL server can be achieved via the SEALDD client and SEALDD server. Taking the uplink direction as an example, the VAL client sends one application data stream to the SEALDD client. The SEALDD client matches the application data stream from the VAL client according to the VAL stream descriptor, replicates the application data stream, and then maps the one application data stream into two SEALDD data streams according to the SEALDD stream descriptor corresponding to the VAL stream descriptor. These two SEALDD data streams are then sent to the UE OS or network interface card (NIC), and are redundant to each other. Then, the UE OS or NIC sends SEALDD data stream 1 to the SEALDD server through session 1, and SEALDD data stream 2 to the SEALDD server through session 2. Session 1 and session 2 are redundant sessions. Then, the SEALDD server matches SEALDD data stream 1 with SEALDD stream descriptor 1 and SEALDD data stream 2 with SEALDD stream descriptor 2. Based on the sequence numbers in the data packets of SEALDD data stream 1 and SEALDD data stream 2, the server deduplicates and reorders the data packets to obtain a deduplicated SEALDD data stream. Then, the SEALDD server restores the deduplicated SEALDD data stream into an application data stream based on the VAL stream descriptor corresponding to SEALDD stream descriptor 1 (or SEALDD stream descriptor 2) and sends the application data stream to the VAL server corresponding to the VAL stream descriptor. In one implementation, the SEALDD server restores the SEALDD data stream into an application data stream by deleting the packet header added by the SEALDD client to the data packets of the SEALDD data stream. This packet header includes the address information 1 (or address information 2) of the SEALDD server, the SEALDD transport protocol, and the sequence number of the data packet, among other information. In another implementation, the SEALDD server restores the SEALDD data stream to the application data stream. This can be achieved by replacing the destination address (or destination address + destination port number) in the data packets of the SEALDD data stream with the VAL server's address information 1 (or SEALDD server address information 2). The processing in the downlink direction is the reverse of the uplink direction and will not be elaborated further.
[0312] In the above scheme, the SEALDD server initiates a request to allocate URSP rules for establishing redundant sessions to a specified UE or UE group. After deciding to use end-to-end redundant transmission, the UE's SEALDD client establishes a connection with the SEALDD server and negotiates the configuration information for the SEALDD data stream. The UE establishes two redundant sessions through URSP rules for the transmission of redundant data between the SEALDD client and the SEALDD server. This scheme defines the behavior of the SEALDD server and SEALDD client, and can establish end-to-end redundant sessions using URSP rules.
[0313] Figure 8 This is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0314] Step 801a is the same as step 704a above.
[0315] Steps 801 to 806 are the same as steps 704 to 709 above.
[0316] Steps 801 and 805 above are optional steps.
[0317] Step 807: The SEALDD client sends a control plane request message to the UE OS or network card.
[0318] The control plane request message includes SEALDD stream descriptor 1, (DNN, S-NSSAI) combination 1 corresponding to SEALDD stream descriptor 1, SEALDD stream descriptor 2, and (DNN, S-NSSAI) combination 2 corresponding to SEALDD stream descriptor 2. Specifically, the SEALDD client matches an application data stream from the VAL client based on the VAL stream descriptor, thereby determining the SEALDD stream descriptor 1 and SEALDD stream descriptor 2 corresponding to the VAL stream descriptor, and also determining (DNN, S-NSSAI) combination 1 corresponding to SEALDD stream descriptor 1 and (DNN, S-NSSAI) combination 2 corresponding to SEALDD stream descriptor 2.
[0319] In this context, (DNN, S-NSSAI) combination 1 and (DNN, S-NSSAI) combination 2 can be the same or different. Here, "different" means that the DNN in (DNN, S-NSSAI) combination 1 is different from the DNN in (DNN, S-NSSAI) combination 2, and / or the S-NSSAI in (DNN, S-NSSAI) combination 1 is different from the S-NSSAI in (DNN, S-NSSAI) combination 2.
[0320] Optionally, the control plane request message may also include a team identifier, RSN1 corresponding to SEALDD stream descriptor 1, and RSN2 corresponding to SEALDD stream descriptor 2. RSN1 and RSN2 are different.
[0321] Optionally, the control plane request message may also include indication information, which indicates that the SEALDD data streams corresponding to SEALDD stream descriptor 1 and SEALDD stream descriptor 2 are redundant data streams.
[0322] Step 808a, the UE OS or network card sends a session establishment request message 1 to the SMF. The session establishment request message 1 includes a team identifier, RSN1, and (DNN, S-NSSAI) combination 1.
[0323] The UE OS or network interface card (NIC) matches the received SEALDD data stream based on SEALDD stream descriptor 1 and SEALDD stream descriptor 2. Since SEALDD stream descriptor 1 matches SEALDD data stream 1, the UE OS or NIC queries whether the session corresponding to the group identifier, RSN1 of SEALDD data stream 1, and (DNN, S-NSSAI) combination 1 of SEALDD data stream 1 has been established. If it has been established, the SEALDD data stream 1 is mapped to the established session. If it has not been established, a session establishment request message 1 is initiated to request the establishment of the session. This step 808a is described with the session not yet established. The group identifier and RSN1 can be from the aforementioned control plane request message, or they can be generated by the UE OS or the UE's NIC.
[0324] Step 808b: The UE OS or network card sends a session establishment request message 2 to the SMF. The session establishment request message 2 includes a team identifier, RSN2, and (DNN, S-NSSAI) combination 2.
[0325] The specific implementation of step 808b is similar to that of step 808a above, and can be referred to the foregoing description.
[0326] Step 809: SMF establishes one session based on Session Establishment Request Message 1 and another session based on Session Establishment Request Message 2. The two sessions are redundant.
[0327] For the data transmission process after establishing two redundant sessions, please refer to [reference needed]. Figure 7 The descriptions in the embodiments are not repeated here.
[0328] Steps 810 and 811 are the same as steps 713 and 714 above.
[0329] Steps 810 and 811 are optional; please refer to [the relevant documentation] for details. Figure 7 The description in the embodiments.
[0330] For the specific implementation process of redundant transmission of application data streams after step 811 above, please refer to... Figure 7 The description in the embodiments.
[0331] In the above scheme, after deciding to use end-to-end redundant transmission, the UE's SEALDD client establishes a connection with the SEALDD server and negotiates the configuration information of the SEALDD data stream. Furthermore, by enhancing the functionality of the SEALDD client and the UEOS / NIC, the UE can proactively initiate the establishment of two redundant sessions for the SEALDD client and SEALDD server to transmit redundant data.
[0332] Figure 9 This is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0333] Step 901: The VAL server sends a request message to the SEALDD server. The request message includes the UE's identification information and is used to request redundant transmission for the UE.
[0334] The VAL server uses this message to request the use of the SEALDD service from the SEALDD server. Optionally, this request message can be a request message for redundant transmission, which may include information such as the QoS requirements of the application data stream, such as packet loss rate and latency.
[0335] Optionally, the request message may also include application data characteristics that use the SEALDD service, such as the address of the VAL server, the application identifier of the VAL (e.g., a combination of the operating system identifier and the application identifier), etc.
[0336] Step 901 is an optional step.
[0337] Step 902: The SEALDD server sends a request message to the PCF via NEF / UDR.
[0338] This request message can also be called an AF request message.
[0339] The request message includes the UE's identification information, (DNN, S-NSSAI) combination 1, (DNN, S-NSSAI) combination 2, and indication information. The indication information is used to indicate that the SEALDD data streams corresponding to (DNN, S-NSSAI) combination 1 and (DNN, S-NSSAI) combination 2 are redundant data streams.
[0340] In this case, (DNN, S-NSSAI) combination 1 is different from (DNN, S-NSSAI) combination 2. For example, the DNN in (DNN, S-NSSAI) combination 1 is different from the DNN in (DNN, S-NSSAI) combination 2, and / or the S-NSSAI in (DNN, S-NSSAI) combination 1 is different from the S-NSSAI in (DNN, S-NSSAI) combination 2.
[0341] In one implementation, if step 901 is executed and the request message in step 901 requests redundant transmission, the SEALDD server can determine to configure a redundant transmission path for the UE based on the request message sent by the VAL server. In another implementation, if step 901 is executed and the request message in step 901 carries QoS requirements for the application data stream, the SEALDD server can determine to configure a redundant transmission path for the UE based on the QoS requirements. In this implementation, the SEALDD server can also send a feedback notification message to the VAL server regarding the request message in step 901, notifying the VAL server that redundant transmission is required for the UE.
[0342] Step 903: PCF sends URSP rule 1 and URSP rule 2 to UE.
[0343] Optionally, the UE OS can obtain URSP rule 1 and URSP rule 2.
[0344] Among them, URSP rule 1 includes (DNN, S-NSSAI) combination 1, and URSP rule 2 includes (DNN, S-NSSAI) combination 2.
[0345] Step 904a is the same as step 704a above.
[0346] Steps 904 to 910 are the same as steps 704 to 710 above.
[0347] Step 911a, the UE OS or network card sends a session establishment request message 1 to the SMF, which includes a (DNN, S-NSSAI) combination 1.
[0348] The UE OS or the UE's network interface card (NIC) matches the received SEALDD data stream according to SEALDD stream descriptor 1 and SEALDD stream descriptor 2. Since SEALDD stream descriptor 1 matches SEALDD data stream 1, the UE OS queries whether the session corresponding to (DNN, S-NSSAI) combination 1 has been established. If it has, the UE OS maps SEALDD data stream 1 to the established session; otherwise, it initiates a session establishment request message 1 to request the establishment of the session. This step 911a is described assuming the session has not been established.
[0349] Step 912a, the SMF sends a Session Management Policy Request (SM policy request) message 1 to the PCF. The Session Management Policy Request message 1 includes a (DNN, S-NSSAI) combination 1.
[0350] Step 913a: PCF sends a Session Management Policy Response (SM policy response) message 1 to SMF. The Session Management Policy Response message 1 includes indication information, and optionally, the Session Management Policy Response message 1 also includes a team identifier.
[0351] This indication information (also known as the redundant session indication) is used to indicate that the session corresponding to (DNN, S-NSSAI) combination 1 and the session corresponding to (DNN, S-NSSAI) combination 2 are redundant sessions.
[0352] Step 911b, the UE OS sends a session establishment request message 2 to the SMF, which includes a combination of (DNN, S-NSSAI) 2.
[0353] The UE OS (or the UE's SIM card) matches the received SEALDD data stream according to SEALDD stream descriptor 1 and SEALDD stream descriptor 2. Since SEALDD stream descriptor 2 matches SEALDD data stream 2, the UE OS queries whether the session corresponding to (DNN, S-NSSAI) combination 2 has been established. If it has, the UE OS maps SEALDD data stream 2 to the established session; otherwise, it initiates a session establishment request message 2 to request the establishment of a session. This step 911b is described assuming the session has not been established.
[0354] Step 912b: The SMF sends a Session Management Policy Request (SM policy request) message 2 to the PCF. The Session Management Policy Request message 2 includes a combination of (DNN, S-NSSAI) 2.
[0355] Step 913b: The PCF sends a Session Management Policy Response (SM policy response) message 2 to the SMF. The Session Management Policy Response message 2 includes indication information, and optionally, the Session Management Policy Response message also includes a team identifier.
[0356] This indication information (also known as the redundant session indication) is used to indicate that the session corresponding to (DNN, S-NSSAI) combination 1 and the session corresponding to (DNN, S-NSSAI) combination 2 are redundant sessions.
[0357] If both steps 913a and 913b carry a team identifier, then the two team identifiers are the same.
[0358] There is no specific order between steps 911a to 913a and steps 911b to 913b.
[0359] Step 914: SMF establishes session 1 based on session establishment request message 1 and session 2 based on session establishment request message 2.
[0360] Furthermore, the SMF determines the group ID and RSN1 corresponding to session 1, and the group ID and RSN2 corresponding to session 2, based on the instruction information. The group ID can be generated by the PCF or by the SMF. RSN1 and RSN2 are generated by the SMF.
[0361] Steps 915 and 916 are the same as steps 713 and 714 above.
[0362] Steps 915 and 916 are optional; please refer to [the relevant documentation] for details. Figure 7 The description in the embodiments.
[0363] For the specific implementation process of redundant transmission of application data streams after step 916 above, please refer to... Figure 7 The description in the embodiments.
[0364] The above scheme establishes two distinct sessions through two different (DNN S-NSSAI) combinations, and the SEALDD server notifies the PCF which two sessions are redundant. This scheme does not require pre-configuration of special URSP rules or enhancements to the UE OS or network interface card. However, it does require assigning different (DNN S-NSSAI) combinations to the two data streams of the SEALDD server, placing higher demands on the SEALDD server deployment, but requiring minimal modifications to the UE.
[0365] Figure 10 This is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0366] Step 1001a: The VAL server sends a notification message to the UE's VAL client, which is used to notify the VAL client to use the SEALDD service.
[0367] For example, if the VAL server decides to use the SEALDD service based on its local policy, the VAL server will send this notification information to the VAL client.
[0368] Step 1001a is an optional step.
[0369] Step 1001: The UE's VAL client sends a service request message to the UE's SEALDD client. The service request message includes a VAL traffic descriptor and is used to request end-to-end redundant transmission of the application data stream (also known as the VAL data stream) corresponding to the VAL traffic descriptor.
[0370] This service request message can also be called a request message, a SEALDD service request message, or a SEALDD redundant transmission request message, etc.
[0371] For example, the VAL client can send the service request message to the SEALDD client through the API exposed by the SEALDD client.
[0372] A VAL stream descriptor can also be referred to as the characteristic information of a VAL data stream. This VAL stream descriptor includes the VAL server's address information and the VAL transport protocol. The VAL server's address information includes its IP address, or both, and serves as the destination address.
[0373] Step 1001 is an optional step.
[0374] If step 1001 is not executed, the following can be performed: The SEALDD client detects the application data stream from the VAL client and determines that the application data stream needs to be transmitted with end-to-end redundancy. Then, the SEALDD client obtains the VAL stream descriptor from the data packets of the application data stream. The VAL stream descriptor includes the address information of the VAL client, the address information of the VAL server, and the VAL transport protocol.
[0375] Step 1002: The SEALDD client selects the SEALDD server.
[0376] The address information of the SEALDD server (including IP address, or IP address and port number) may be pre-configured on the SEALDD client, or it may be configured on the VAL client and provided to the SEALDD client by the VAL client, or it may be obtained by the SEALDD client or VAL client from other network elements. No limitation is made here.
[0377] Step 1003a: The SEALDD client sends a request message 1 to the SEALDD server through the session of UE's SIM card 1. This request message 1 includes a VAL stream descriptor. SIM card 1 belongs to PLMN 1.
[0378] Request message 1 is used to request the initiation of end-to-end redundant transmission.
[0379] Optionally, the request message 1 may also include a SEALDD stream descriptor 1. This SEALDD stream descriptor 1 includes the SEALDD transport protocol and the address information 1 of the SEALDD server. Optionally, this SEALDD stream descriptor 1 may also include the address information 1 of the SEALDD client. The address information 1 of the SEALDD client refers to the address information of the session of the UE's SIM card 1.
[0380] Optionally, the request message 1 may also include the address information of the session of the UE's SIM card 2.
[0381] Optionally, the request message 1 may also include identification information of the SEALDD client and / or identification information of SEALDD data stream 1. The identification information of the SEALDD client is used to identify the SEALDD client, and the identification information of SEALDD data stream 1 is used to identify the SEALDD data stream corresponding to SEALDD stream descriptor 1.
[0382] Step 1004a: The SEALDD server sends response message 1 to the SEALDD client.
[0383] Optionally, the response message 1 includes a SEALDD stream descriptor 1. The SEALDD stream descriptor 1 in the response message 1 is the same as the SEALDD stream descriptor 1 in the request message 1 of step 1003a above, as described above.
[0384] In one implementation method, if the request message 1 in step 1003a carries SEALDD stream descriptor 1, then the response message 1 in step 1004a does not carry SEALDD stream descriptor 1.
[0385] In another implementation, if the request message 1 in step 1003a does not carry the SEALDD stream descriptor 1, then the response message 1 in step 1004a carries the SEALDD stream descriptor 1.
[0386] In step 1003b, the SEALDD client sends request message 2 to the SEALDD server through the session of UE's SIM card 2. Request message 2 includes a VAL stream descriptor. SIM card 2 belongs to PLMN2.
[0387] Request message 2 is used to request the initiation of end-to-end redundant transmission. The VAL stream descriptor in request message 2 is the same as the VAL stream descriptor in request message 1.
[0388] Optionally, the request message 2 may also include a SEALDD stream descriptor 2. This SEALDD stream descriptor 2 includes the SEALDD transport protocol and the address information 2 of the SEALDD server. Optionally, this SEALDD stream descriptor 2 may also include the address information 2 of the SEALDD client. The address information 2 of the SEALDD client refers to the address information of the session of the UE's SIM card 2.
[0389] Optionally, the request message 2 may also include the address information of the UE's SIM card 1 session.
[0390] Optionally, the request message 2 may also include identification information of the SEALDD client and / or identification information of the SEALDD data stream 2. The identification information of the SEALDD client is used to identify the SEALDD client, and the identification information of the SEALDD data stream 2 is used to identify the SEALDD data stream corresponding to the SEALDD stream descriptor 2.
[0391] Step 1004b: The SEALDD server sends response message 2 to the SEALDD client.
[0392] Optionally, the response message 2 includes a SEALDD stream descriptor 2. The SEALDD stream descriptor 2 in the response message 2 is the same as the SEALDD stream descriptor 2 in the request message 2 of step 1003b above, as described above.
[0393] In one implementation, if the request message 2 in step 1003b carries the SEALDD stream descriptor 2, then the response message 2 in step 1004b does not carry the SEALDD stream descriptor 2.
[0394] In another implementation, if the request message 2 in step 1003b does not carry the SEALDD stream descriptor 2, then the response message 2 in step 1004b carries the SEALDD stream descriptor 2.
[0395] There is no sequential order between steps 1003a to 1004a and steps 1003b to 1004b.
[0396] Step 1005: The SEALDD client sends a service response message to the VAL client.
[0397] Step 1005 is an optional step.
[0398] Step 1006: The VAL client sends an application data stream to the SEALDD client.
[0399] The application data stream includes one or more data packets. Each data packet includes a header and data. The header includes the source address (i.e., the IP address of the VAL client), the source port number (i.e., the port number of the VAL client), the destination address (i.e., the IP address of the VAL server), the destination port number (i.e., the port number of the VAL server), and the VAL transport protocol.
[0400] The IP address of the VAL client can be the IP address of the UE's SIM card 1, the IP address of the UE's SIM card 2, or other IP addresses. The port number of the VAL client can be the port number of the UE's SIM card 1, the port number of the UE's SIM card 2, or other port numbers.
[0401] Step 1006b: The SEALDD client sends an instruction message to the UE OS or network card, which instructs SEALDD data stream 1 and SEALDD data stream 2 to be sent through SIM card 1 and SIM card 2 respectively.
[0402] Among them, SIM card 1 and SIM card 2 correspond to different PLMNs, that is, PLMN1 and PLMN2 are different.
[0403] Step 1007a: The SEALDD client sends SEALDD data stream 1 to the UE OS.
[0404] Specifically, the SEALDD client matches an application data stream from the VAL client based on the VAL stream descriptor, and then maps the application data stream to SEALDD data stream 1 based on the SEALDD stream descriptor 1 corresponding to the VAL stream descriptor, and sends the SEALDD data stream 1 to the UE OS.
[0405] In one implementation, the SEALDD client adds a header to the data packets of the application data stream to obtain SEALDD data stream 1. For example, the added header carries the address information 1 of the SEALDD server, the SEALDD transport protocol, the sequence number of the data packet, and also carries the identification information of the SEALDD client and / or the identification information of SEALDD data stream 1, thus obtaining SEALDD data stream 1. The address information 1 of the SEALDD server in the added header is used as the destination address, or as both the destination address and the destination port number. The sequence number in the added header indicates the sending order of the data packets in SEALDD data stream 1; different data packets in SEALDD data stream 1 have different sequence numbers. The identification information of the SEALDD client in the added header identifies that SEALDD data stream 1 was sent via the SEALDD client indicated by the SEALDD client identification information. The identification information of SEALDD data stream 1 in the added header indicates SEALDD data stream 1.
[0406] In another implementation, the SEALDD client modifies the header of the application data stream packets to obtain SEALDD data stream 1. For example, it replaces the destination address (or destination address + destination port number) in the header of the application data stream packets with the address information of the SEALDD server (VAL server), replaces the transport protocol in the header of the application data stream packets with the SEALDD transport protocol, and adds the identification information of the SEALDD client and / or the identification information of SEALDD data stream 1 to the header. Optionally, it also adds a sequence number to the header to obtain SEALDD data stream 1.
[0407] Step 1008a, the UE OS sends a session establishment request message 1 to the SMF1 through the UE's SIM card 1. The session establishment request message 1 includes a (DNN, S-NSSAI) combination 1.
[0408] The UE OS matches the received SEALDD data stream. Since SEALDD stream descriptor 1 matches SEALDD data stream 1, the UE's SIM card 1 queries whether the session corresponding to (DNN, S-NSSAI) combination 1 in URSP rule 1 has been established. If it has been established, the SEALDD data stream 1 is mapped to the established session; if it has not been established, a session establishment request message 1 is initiated to request the establishment of a session. This step 1008a is described with the assumption that the session has not been established. Here, URSP rule 1 comes from PCF.
[0409] Step 1009a: SMF1 establishes session 1 based on session establishment request message 1.
[0410] Step 1007b: The SEALDD client sends SEALDD data stream 2 to the UE OS.
[0411] Specifically, the SEALDD client matches an application data stream from the VAL client based on the VAL stream descriptor, and then maps the application data stream to SEALDD data stream 2 based on the SEALDD stream descriptor 2 corresponding to the VAL stream descriptor, and sends the SEALDD data stream 2 to the UE OS.
[0412] In one implementation, the SEALDD client adds a header to the data packets of the application data stream to obtain SEALDD data stream 2. For example, the added header carries the address information 2 of the SEALDD server, the SEALDD transport protocol, the sequence number of the data packet, and also carries the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2, thus obtaining SEALDD data stream 2. The address information 2 of the SEALDD server in the added header is used as the destination address, or as both the destination address and the destination port number. The sequence number in the added header indicates the sending order of the data packets in SEALDD data stream 2; different data packets in SEALDD data stream 2 have different sequence numbers. The identification information of the SEALDD client in the added header identifies that SEALDD data stream 2 was sent via the SEALDD client indicated by the SEALDD client identification information. The identification information of SEALDD data stream 2 in the added header indicates SEALDD data stream 2.
[0413] In another implementation, the SEALDD client modifies the header of the application data stream packets to obtain SEALDD data stream 2. For example, it replaces the destination address (or destination address and destination port number) in the header of the application data stream packets with the address information of the SEALDD server 2, replaces the transport protocol in the header of the application data stream packets with the SEALDD transport protocol, and adds the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2 to the header. Optionally, it also adds a sequence number to the header to obtain SEALDD data stream 2.
[0414] Step 1008b: The UE OS sends a session establishment request message 2 to the SMF2 through the UE's SIM card 2. The session establishment request message 2 includes a combination of (DNN, S-NSSAI) 2.
[0415] The UE OS matches the received SEALDD data stream. Since SEALDD stream descriptor 2 matches SEALDD data stream 2, the UE's SIM card 2 queries whether the session corresponding to the (DNN, S-NSSAI) combination 2 in URSP rule 2 has been established. If it has been established, the SEALDD data stream 2 is mapped to the established session; if it has not been established, a session establishment request message 2 is initiated to request the establishment of a session. This step 1008b is described with the assumption that the session has not been established. Here, URSP rule 2 comes from PCF.
[0416] In this case, the (DNN, S-NSSAI) combination 2 in URSP rule 2 corresponds to the same or different public land mobile network (PLMN) as the (DNN, S-NSSAI) combination 1 in URSP rule 1 above.
[0417] Step 1009b: SMF2 establishes session 2 based on session establishment request message 2.
[0418] It should be noted that steps 1008a, 1009a, 1008b, and 1009b above are all optional steps. For example, if the proxy client can transmit SEALDD data stream 1 through the session used in the negotiation process of steps 1003a and 1004a above, then it is not necessary to create a new session for SEALDD data stream 1, that is, steps 1008a and 1009a do not need to be executed. Similarly, if the proxy client can transmit SEALDD data stream 2 through the session used in the negotiation process of steps 1003b and 1004b above, then it is not necessary to create a new session for SEALDD data stream 2, that is, steps 1008b and 1009b do not need to be executed.
[0419] Step 1010a is the same as step 713 above.
[0420] Step 1010b is the same as step 714 above.
[0421] It should be noted that steps 1010a and 1010b above are optional steps. Specifically, if in step 1007a, SEALDD data stream 1 is obtained by modifying the packet header of the application data stream data packet, and steps 1008a and 1009a are also executed, then step 1010a is executed. Similarly, if in step 1007b, SEALDD data stream 2 is obtained by modifying the packet header of the application data stream data packet, and steps 1008b and 1009b are also executed, then step 1010b is executed.
[0422] Subsequently, redundant transmission of application data streams between the VAL client and VAL server can be achieved via the SEALDD client and SEALDD server. Taking the uplink direction as an example, the VAL client sends an application data stream to the SEALDD client. The SEALDD client matches the application data stream from the VAL client according to the VAL stream descriptor, and then maps the application data stream to SEALDD data stream 1 and SEALDD data stream 2 respectively according to the corresponding SEALDD stream descriptor 1 and SEALDD data stream 2. SEALDD data stream 1 and SEALDD data stream 2 are redundant data streams. The SEALDD client sends SEALDD data stream 1 and SEALDD data stream 2 to the UE OS. Then, the UE OS sends SEALDD data stream 1 to the SEALDD server through session 1 of SIM card 1, and the UE OS sends SEALDD data stream 2 to the SEALDD server through session 2 of SIM card 2. Session 1 and session 2 are redundant sessions. Then, the SEALDD server matches SEALDD data stream 1 with SEALDD stream descriptor 1 and SEALDD data stream 2 with SEALDD stream descriptor 2. It then deduplicates and reorders the data packets based on the sequence numbers in the packets of SEALDD data stream 1 and SEALDD data stream 2. Finally, the SEALDD server restores the SEALDD data stream to an application data stream based on the VAL stream descriptor and sends the application data stream to the VAL server. In one implementation, the SEALDD server restores the SEALDD data stream to an application data stream by deleting the header added by the SEALDD client to the data packets of the SEALDD data stream. This header includes the address information 1 (or address information 2) of the SEALDD server, the SEALDD transport protocol, and the sequence number of the data packet. In another implementation, the SEALDD server restores the SEALDD data stream to the application data stream. This can be achieved by replacing the destination address in the data packets of the SEALDD data stream with the address information of the VAL server (either SEALDD server address information 1 or SEALDD server address information 2). The processing in the downlink direction is the reverse of the uplink direction and will not be elaborated further.
[0423] In the above scheme, the UE uses two independent SIM cards to establish sessions separately, but uses the same SEALDD client and SEALDD server. The UE uses the connection of the two PLMNs for dual session transmission. No additional modifications are required to the UE's functions and network functions. It is only necessary for the SEALDD client and SEALDD server to maintain the association relationship between the sessions of the two PLMNs.
[0424] The following is combined Figures 11 to 14 Specific embodiments, for the above Figures 6(d) to 6(f) The following examples will be described. Figures 11 to 14 In the embodiments, VAL client, VAL server, SEALDD client, and SEALDD server are used as specific examples of application client, application server, proxy client, and proxy server, respectively, for illustration.
[0425] Figure 11 This is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0426] Step 1101: The VAL server sends a request message to the SEALDD server.
[0427] The VAL server uses this message to request the use of the SEALDD service from the SEALDD server. Optionally, this request message can be a request message for redundant transmission, which may include information such as the QoS requirements of the application data stream, such as packet loss rate and latency.
[0428] In one implementation, the request message includes the UE's identification information. In another implementation, the request message includes an external group identifier, which corresponds to a group of UEs.
[0429] Optionally, the request message may also include VAL service information 1, which may include one or more of the following: VAL server identification information, VAL server address information, or identification information of the VAL service provided by the VAL server. This VAL service information 1 may also be referred to as application data stream identification information, application data stream configuration information, or application data stream information.
[0430] Step 1102: The SEALDD server sends a request message to the PCF via NEF / UDR.
[0431] This request message can also be called an AF influence request message or an AF influence URSP request message. URSP is short for User Routing Selection Policy.
[0432] The request message includes the UE's identification information or internal group identifier, and also includes SEALDD stream descriptor 1, (DNN, S-NSSAI) combination 1 corresponding to SEALDD stream descriptor 1, SEALDD stream descriptor 2, and (DNN, S-NSSAI) combination 2 corresponding to SEALDD stream descriptor 2. Optionally, the request message also includes indication information, which indicates that the SEALDD data streams corresponding to SEALDD stream descriptor 1 and SEALDD stream descriptor 2 are redundant data streams. Optionally, the request message also includes a pair ID, which is used to associate two sessions with redundant transmissions, or to associate two SEALDD data streams with redundant transmissions.
[0433] The SEALDD server allocates address information 1 and address information 2 for redundant transmission of the VAL service indicated by VAL service information 1. Address information 1 and address information 2 of the SEALDD server are different. In one implementation, address information 1 and address information 2 of the SEALDD server each include different IP addresses. In another implementation, address information 1 and address information 2 of the SEALDD server each include the same IP address, but each includes different port numbers. In yet another implementation, address information 1 and address information 2 of the SEALDD server each contain different DNNs. In yet another implementation, address information 1 and address information 2 of the SEALDD server each contain different URLs, such as FQDNs, URIs, or URLs.
[0434] The SEALDD stream descriptor can also be referred to as the characteristic information of the SEALDD data stream. SEALDD stream descriptor 1 includes the address information 1 of the SEALDD server, and optionally, it also includes the SEALDD transport protocol. SEALDD stream descriptor 2 includes the address information 2 of the SEALDD server, and optionally, it also includes the SEALDD transport protocol.
[0435] (DNN, S-NSSAI) combination 1 is different from (DNN, S-NSSAI) combination 2. For example, the DNN in (DNN, S-NSSAI) combination 1 is different from the DNN in (DNN, S-NSSAI) combination 2, and / or the S-NSSAI in (DNN, S-NSSAI) combination 1 is different from the S-NSSAI in (DNN, S-NSSAI) combination 2.
[0436] In one implementation method, if the request message in step 1101 above is used to request redundant transmission, the SEALDD server can determine the configuration of a redundant transmission path for the UE based on the request message sent by the VAL server.
[0437] In another implementation, if the request message in step 1101 carries QoS requirements for the application data stream, the SEALDD server can determine the configuration of a redundant transmission path for the UE based on the QoS requirements. In this implementation, the SEALDD server can also send a feedback notification message to the VAL server regarding the request message in step 1101, notifying the VAL server that redundant transmission is required for the UE.
[0438] In one implementation method, if the request message in step 1101 carries the UE's identification information, then the request message in step 1102 carries the UE's identification information, which is the same as the UE's identification information in the request message in step 1101, and step 1102 is triggered by step 1101.
[0439] In another implementation method, if the request message in step 1101 carries an external group identifier, then the request message in step 1102 carries an internal group identifier. The internal group identifier corresponds to a group of UEs. For example, the SEALDD server may request the NEF to convert the external group identifier into an internal group identifier, and step 1102 is triggered by step 1101.
[0440] Step 1103: PCF sends URSP rule 1 and URSP rule 2 to UE.
[0441] Here, UE can be a single UE or multiple UEs corresponding to an internal group identifier. When the PCF sends URSP rule 1 and URSP rule 2 to multiple UEs within a group, in one implementation, the PCF sends the same URSP rule 1 and the same URSP rule 2 to multiple UEs within a group. In another implementation, the PCF sends URSP rule 1 and URSP rule 2 to multiple UEs within a group separately, meaning that the URSP rules received by different UEs are unrelated.
[0442] Optionally, the UE's operating system (OS) or network card can obtain URSP rule 1 and URSP rule 2.
[0443] URSP rule 1 includes SEALDD stream descriptor 1, group identifier, RSN1, and (DNN, S-NSSAI) combination 1. URSP rule 2 includes SEALDD stream descriptor 2, group identifier, RSN2, and (DNN, S-NSSAI) combination 2. Here, RSN is short for Redundant Serial Number.
[0444] In this context, SEALDD stream descriptor 1 in URSP rule 1 and SEALDD stream descriptor 2 in URSP rule 2 are request messages from step 1102 above.
[0445] The group identifier in URSP Rule 1 is the same as the group identifier in URSP Rule 2. If the request message in step 1102 carries a group identifier, then the group identifier in URSP Rule 1 and URSP Rule 2 comes from the request message in step 1102. If the request message in step 1102 does not carry a group identifier, then the group identifier in URSP Rule 1 and URSP Rule 2 can be generated by PCF.
[0446] RSN1 in URSP Rule 1 is different from RSN2 in URSP Rule 2, and both are generated by the PCF. RSN1 and RSN2 are used to distinguish two different sessions within the same queue, and these two sessions are redundant. That is, the queue identifier and RSN1 indicate one session in a redundant session, and the queue identifier and RSN2 indicate the other session in a redundant session. These two sessions constitute a pair of redundant sessions used to transmit the same data.
[0447] Step 1104a: The VAL server sends a notification message to the UE's VAL client.
[0448] In one implementation, the notification message is used to notify the VAL client to use the SEALDD service. Optionally, the notification message also includes VAL service information 2, in which case the notification message is used to notify the VAL client to use the SEALDD service to transmit the application data stream (also called the VAL data stream) corresponding to VAL service information 2. In another implementation, the VAL server decides to use the redundant transmission service provided by SEALDD based on its local policy, or the VAL server may also learn from the notification from the SEALDD server that it needs to use the redundant transmission service. Therefore, the VAL server sends the notification message to the VAL client, specifically to notify the VAL client to use the SEALDD service for end-to-end redundant transmission. Optionally, the notification message also includes VAL service information 2, in which case the notification message is used to notify the VAL client to use the SEALDD service for end-to-end redundant transmission of the application data stream (also called the VAL data stream) corresponding to VAL service information 2.
[0449] The VAL service information 2 includes one or more of the following: VAL server identification information, VAL server address information, or identification information of the VAL services provided by the VAL server. VAL service information 2 is a subset of VAL service information 1, or VAL service information 2 is the same as VAL service information 1. This VAL service information 2 can also be referred to as application data stream identification information, application data stream configuration information, or application data stream information.
[0450] The VAL service information 2 corresponds to the same VAL service (or application service) as the aforementioned VAL service information 1.
[0451] Step 1104a is an optional step.
[0452] Step 1104: The VAL client sends a service request message to the UE's SEALDD client. The service request message includes VAL service information 3 and is used to request the transmission of the application data stream (also known as the VAL data stream) corresponding to VAL service information 3.
[0453] The VAL service information 3 includes one or more of the following: the identification information of the VAL server, the address information of the VAL server, or the identification information of the VAL service provided by the VAL server. This VAL service information 3 corresponds to the same VAL service (or application service) as the aforementioned VAL service information 1 and VAL service information 2.
[0454] This service request message can also be called a request message, a SEALDD service request message, or a SEALDD redundant transmission request message, etc.
[0455] For example, the VAL client can send the service request message to the SEALDD client through the API exposed by the SEALDD client.
[0456] When step 1104a is executed, the VAL client can determine the VAL service that needs to use the SEALDD service based on the VAL service information 2. If step 1104a is not executed, the VAL client can determine the VAL service that needs to use the SEALDD service based on the local configuration information, which indicates that the VAL service corresponding to the VAL service information 3 needs to use the SEALDD service.
[0457] Optionally, if step 1104a is performed and the notification message of step 1104a is used to notify the VAL client to use the SEALDD service for end-to-end redundant transmission, then the service request message of step 1104 is used to request end-to-end redundant transmission of the application data stream (also known as the VAL data stream) corresponding to the VAL service information 3.
[0458] Step 1105: The SEALDD client selects the SEALDD server.
[0459] The address information of the SEALDD server (including IP address, or IP address and port number) can be pre-configured on the SEALDD client, configured on the VAL client and provided to the SEALDD client by the VAL client, or obtained by the SEALDD client or VAL client from other network elements. No limitation is made here.
[0460] Step 1106: The SEALDD client sends a request message to the SEALDD server, which includes VAL service information 3.
[0461] This request message requests the establishment of a SEALDD data transmission connection for transmitting the VAL service corresponding to VAL service information 3. Optionally, this request message also requests end-to-end redundant transmission.
[0462] The VAL service information 3 in the request message is the same as the VAL service information 3 obtained in step 1104 above.
[0463] Optionally, the request message may also include the identification information of the SEALDD client or the VAL client, and / or the identification information of SEALDD data stream 1 and SEALDD data stream 2. That is, the request message may also include the identification information of the SEALDD client, or the identification information of the VAL client, or the identification information of SEALDD data stream 1 and SEALDD data stream 2, or the identification information of the SEALDD client, SEALDD data stream 1, and SEALDD data stream 2. Wherein, the identification information of the SEALDD client is used to identify the SEALDD client, the identification information of SEALDD data stream 1 is used to identify the SEALDD data stream corresponding to VAL service information 3, and the identification information of SEALDD data stream 2 is used to identify the SEALDD data stream corresponding to VAL service information 3.
[0464] When the request message contains the identification information of the SEALDD client, this identification information is used to request the establishment of a redundant transport connection or path from the SEALDD client to the SEALDD server. This connection or path is used to transmit the application data stream from the VAL client to the VAL server.
[0465] When the request message contains identification information for the VAL client, this information is used to request the establishment of a redundant transport connection or path to the SEALDD server for that VAL client. This connection or path is used to transfer application data streams from the VAL client to the VAL server.
[0466] When a request message contains identification information for both SEALDD data stream 1 and SEALDD data stream 2, this identification information is used to request the establishment of a redundant transport connection or path from the SEALDD client to the SEALDD server. This connection or path is used to transport SEALDD data stream 1 and SEALDD data stream 2.
[0467] Step 1107: The SEALDD server sends a response message to the SEALDD client. The response message includes the address information 1 and the address information 2 of the SEALDD server. Optionally, the response message also includes VAL service information 3.
[0468] This response message can be a connection establishment response message.
[0469] In one implementation method, the SEALDD server determines the address information 1 and address information 2 of the SEALDD server allocated for the VAL service based on VAL service information 3 and VAL service information 1. Here, VAL service information 3 and VAL service information 1 correspond to the same VAL service.
[0470] In one implementation, the address information 1 of the SEALDD server is contained in SEALDD stream descriptor 1, and the address information 2 of the SEALDD server is contained in SEALDD stream descriptor 2. That is, the response message includes SEALDD stream descriptor 1 and SEALDD stream descriptor 2, wherein SEALDD stream descriptor 1 includes the address information 1 of the SEALDD server, and SEALDD stream descriptor 2 includes the address information 2 of the SEALDD server.
[0471] Step 1108: The SEALDD client sends a service response message to the VAL client.
[0472] Step 1108 is an optional step.
[0473] Step 1109: The VAL client sends an application data stream to the SEALDD client.
[0474] The application data stream includes one or more data packets, each including a header and data. The header includes the destination address (i.e., the IP address of the VAL server), the destination port number (i.e., the port number of the VAL server), and the VAL transport protocol.
[0475] Alternatively, the VAL client can send application data content through the interface provided by the SEALDD client, and the SEALDD client can use this interface to determine the VAL service corresponding to the application data content.
[0476] Step 1110: The SEALDD client sends two SEALDD data streams to the UE OS or network card.
[0477] The SEALDD client determines VAL service information 3 based on the application data stream from the VAL client, and then determines SEALDD address information 1 and SEALDD address information 2 based on VAL service information 3. Next, it maps this application data stream into two SEALDD data streams, with the destination addresses of these two SEALDD data streams corresponding to SEALDD address information 1 and SEALDD address information 2, respectively. These two SEALDD data streams are then sent to the UE OS or network interface card. These two SEALDD data streams are redundant.
[0478] In one implementation, the SEALDD client adds different headers to the application data stream packets to obtain two SEALDD data streams. For example, the added headers to the application data stream packets carry the SEALDD server address information 1, the SEALDD transport protocol, the sequence number of the data packet, and also carry the SEALDD client identification information and / or the identification information of SEALDD data stream 1, thus obtaining SEALDD data stream 1. The SEALDD server address information 1 in the added header serves as the destination address, or as both the destination address and the destination port number. The sequence number in the added header indicates the transmission order of the data packets in SEALDD data stream 1, and different data packets in SEALDD data stream 1 have different sequence numbers. The SEALDD client identification information in the added header identifies that SEALDD data stream 1 was sent via the SEALDD client indicated by the SEALDD client identification information. The identification information of SEALDD data stream 1 in the added header indicates SEALDD data stream 1. Similarly, the newly added header in the application data stream carries the SEALDD server address information 2, the SEALDD transport protocol, the sequence number of the data packet, and also carries the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2, thus obtaining SEALDD data stream 2. The SEALDD server address information 2 in the newly added header serves as the destination address, or as both the destination address and the destination port number. The sequence number in the newly added header indicates the transmission order of the data packet in SEALDD data stream 2; different data packets in SEALDD data stream 2 have different sequence numbers. The SEALDD client identification information in the newly added header identifies that SEALDD data stream 2 was sent via the SEALDD client indicated by the SEALDD client identification information. The identification information of SEALDD data stream 2 in the newly added header indicates SEALDD data stream 2.
[0479] In another implementation, if the VAL client sends application data content through the interface provided by the SEALDD client, and the SEALDD client determines the VAL service corresponding to the application data content through this interface, the SEALDD client can add different packet headers for each application data content, thus obtaining two SEALDD data streams. For example, the packet header added to the application data content carries the address information 1 of the SEALDD server, the SEALDD transport protocol, the sequence number of the data packet, and also carries the identification information of the SEALDD client and / or the identification information of SEALDD data stream 1, thus obtaining SEALDD data stream 1. The address information 1 of the SEALDD server in the added packet header is used as the destination address, or as the destination address and destination port number. The sequence number in the added packet header indicates the sending order of the data packet in SEALDD data stream 1; different data packets in SEALDD data stream 1 have different sequence numbers. The identification information of the SEALDD client in the added packet header identifies that SEALDD data stream 1 was sent via the SEALDD client indicated by the SEALDD client identification information. The newly added header includes an identification information for SEALDD data stream 1 to indicate this SEALDD data stream 1. Similarly, the newly added header for the application data content carries the address information 2 of the SEALDD server, the SEALDD transport protocol, the sequence number of the data packet, and also carries the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2, thus obtaining SEALDD data stream 2. The address information 2 of the SEALDD server in the newly added header is either the destination address or the destination address and destination port number. The sequence number in the newly added header indicates the transmission order of the data packets in SEALDD data stream 2; different data packets in SEALDD data stream 2 have different sequence numbers. The identification information of the SEALDD client in the newly added header identifies that SEALDD data stream 2 was sent via the SEALDD client indicated by the SEALDD client identification information. The identification information of SEALDD data stream 2 in the newly added header indicates this SEALDD data stream 2.
[0480] In another implementation, the SEALDD client modifies the header of the application data stream packets in two different ways to obtain two SEALDD data streams. For example, the destination address (or destination address + destination port number) in the header of the application data stream packets is replaced with the address information of the SEALDD server (1), and the transport protocol in the header of the application data stream packets is replaced with the SEALDD transport protocol (VAL transport protocol). Optionally, the sequence number in the header is also replaced with a newly generated sequence number, thus obtaining SEALDD data stream 1. If the packet is not replaced with a new sequence number, the original sequence number in the packet can be used. Similarly, the destination address (or destination address and destination port number) in the header of the application data stream packets is replaced with the address information of the SEALDD server (VAL server 2), the transport protocol in the header of the application data stream packets is replaced with the SEALDD transport protocol (VAL transport protocol), and the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2 is added to the header. Optionally, the sequence number in the header is also replaced with a newly generated sequence number, thus obtaining SEALDD data stream 2. If the packet does not have a newly added sequence number, the original sequence number in the packet can be used.
[0481] Step 1111a: The UE OS or network card sends a session establishment request message 1 to the SMF according to URSP rule 1. The session establishment request message 1 includes a team identifier, RSN1, and (DNN, S-NSSAI) combination 1.
[0482] The UE OS or network interface card (NIC) matches the received SEALDD data stream according to URSP rules (including URSP rule 1 and URSP rule 2). Since SEALDD stream descriptor 1 in URSP rule 1 can match SEALDD data stream 1, the UE OS or NIC queries whether the session corresponding to the group identifier, RSN1, and (DNN, S-NSSAI) combination 1 in URSP rule 1 has been established. If it has been established, the SEALDD data stream 1 is mapped to the established session; if it has not been established, a session establishment request message 1 is initiated to request the establishment of the session. This step 1111a is described with the session not yet established.
[0483] Step 1111b: The UE OS sends a session establishment request message 2 to the SMF according to URSP rule 2. The session establishment request message 2 includes a team identifier, RSN2, and (DNN, S-NSSAI) combination 2.
[0484] The specific implementation of step 1111b is similar to that of step 1111a above, and can be referred to the foregoing description.
[0485] In step 1112, SMF establishes one session based on session establishment request message 1 and another session based on session establishment request message 2. These two sessions are redundant.
[0486] Step 1113: The SEALDD client sends notification message 1 to the SEALDD server. Notification message 1 includes the identification information of the SEALDD client and / or the identification information of SEALDD data stream 1.
[0487] Since the SEALDD client sends notification message 1 to the SEALDD server through session 1, the SEALDD server can obtain the address information of session 1. Furthermore, since notification message 1 includes the identification information of the SEALDD client and / or the identification information of SEALDD data stream 1, the SEALDD server can obtain the correspondence between the identification information of SEALDD data stream 1 and session 1, and / or the correspondence between the identification information of SEALDD data stream 1 and the address information of session 1.
[0488] Step 1114: The SEALDD client sends notification message 2 to the SEALDD server through session 2. The notification message 2 includes the identification information of the SEALDD client and / or the identification information of the SEALDD data stream 2.
[0489] Since the SEALDD client sends notification message 2 to the SEALDD server through session 2, the SEALDD server can obtain the address information of session 2. Furthermore, since notification message 2 includes the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2, the SEALDD server can obtain the correspondence between the identification information of SEALDD data stream 2 and session 2, as well as the correspondence between the identification information of SEALDD data stream 2 and the address information of session 2.
[0490] It should be noted that steps 1113 and 1114 above are optional steps. Specifically, if SEALDD data stream 1 and SEALDD data stream 2 are obtained by modifying the packet header in the application data stream in step 1110, then steps 1113 and 1114 can be executed. This is because: since the packet header does not carry the identification information of the SEALDD client, SEALDD data stream 1, or SEALDD data stream 2, the SEALDD server cannot know which SEALDD client or UE the data packets of SEALDD data stream 1 and SEALDD data stream 2 originate from. Therefore, by executing steps 1113 and 1114, the SEALDD server can perceive the session identification information corresponding to the data packets of SEALDD data stream 1 and SEALDD data stream 2, thereby allowing the SEALDD server to determine which SEALDD client or UE SEALDD data stream 1 and SEALDD data stream 2 originate from.
[0491] As an alternative to steps 1113 and 1114 above, steps 1113 and 1114 can be omitted. Instead, the following can be performed: The SEALDD client sends a request message to the SEALDD server. This request message includes the address information of session 1 and session 2, as well as one or more of the following: the identification information of the SEALDD client, the identification information of SEALDD data stream 1, the identification information of SEALDD data stream 2, and VAL service information 3. The address information of session 1 can be carried in SEALDD stream descriptor 3, which can also contain the address information 1 of the SEALDD server. The address information of session 2 can be carried in SEALDD stream descriptor 4, which can also contain the address information 2 of the SEALDD server. The SEALDD server can obtain the correspondence between SEALDD data stream 1 and session 1, and the correspondence between SEALDD data stream 2 and session 2 based on the request message. It can also establish the correspondence between SEALDD data stream 1, SEALDD data stream 2 and VAL server based on VAL service information 1 and VAL service information 3.
[0492] Step 1115: The SEALDD server establishes a connection between the SEALDD server and the VAL server for the SEALDD client or VAL client. This connection is used to send application data streams corresponding to SEALDD data stream 1 and SEALDD data stream 2.
[0493] The SEALDD server assigns an address for communication between the SEALDD server and the VAL server. This address is different from the address indicated by SEALDD server address information 1 above, and also different from the address indicated by SEALDD server address information 2 above.
[0494] When the SEALDD server receives the aforementioned SEALDD data stream 1 and SEALDD data stream 2, it deduplicates the two streams and generates an application data stream. This application data stream is then sent to the VAL server. The source address in this application data stream is the address of the SEALDD server assigned by the SEALDD server for communication between the SEALDD server and the VAL server.
[0495] Subsequently, redundant transmission of application data streams between the VAL client and VAL server can be achieved via the SEALDD client and SEALDD server. Taking the uplink direction as an example, the VAL client sends one application data stream to the SEALDD client. Then, based on the SEALDD stream descriptor 1 and SEALDD stream descriptor 2 corresponding to this application data stream, or based on the address information 1 and address information 2 of the SEALDD server corresponding to this application data stream, this one application data stream is mapped into two SEALDD data streams. SEALDD data stream 1 is sent to the SEALDD server through session 1, and SEALDD data stream 2 is sent to the SEALDD server through session 2. Session 1 and session 2 are redundant sessions. Then, the SEALDD server deduplicates and reorders the data packets based on the sequence numbers in the packets of SEALDD data stream 1 and SEALDD data stream 2, obtaining a deduplicated SEALDD data stream, and maps this SEALDD data stream back to the application data stream. Then, the SEALDD server determines the VAL server address based on the SEALDD stream descriptor stored locally on the SEALDD server, or determines the VAL server address based on the correspondence between SEALDD server address information 1 and SEALDD server address information 2 and the VAL server. Optionally, the SEALDD server determines to send the application data stream from the connection established in step 1114 based on the SEALDD stream descriptor stored locally on the SEALDD server, or based on the address information of session 1 and session 2. Then, the application data stream is sent to the VAL server. In one implementation method, the SEALDD server restores the SEALDD data stream to the application data stream by deleting the packet header added by the SEALDD client to the data packets of the SEALDD data stream. This packet header includes information such as SEALDD server address information 1 (or SEALDD server address information 2), the SEALDD transport protocol, and the sequence number of the data packet. In another implementation, the SEALDD server restores the SEALDD data stream to the application data stream. This can be achieved by replacing the destination address (or destination address + destination port number) in the data packets of the SEALDD data stream with the VAL server's address information 1 (or SEALDD server address information 2). The processing in the downlink direction is the reverse of the uplink direction and will not be elaborated further.
[0496] In the above scheme, the SEALDD server initiates a request to allocate URSP rules for establishing redundant sessions to a specified UE or UE group. After deciding to use end-to-end redundant transmission, the UE's SEALDD client establishes a connection with the SEALDD server and negotiates the configuration information for the SEALDD data stream. The UE establishes two redundant sessions through URSP rules for the transmission of redundant data between the SEALDD client and the SEALDD server. This scheme defines the behavior of the SEALDD server and SEALDD client, and can establish end-to-end redundant sessions using URSP rules.
[0497] Figure 12 This is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0498] Step 1201a is the same as step 1104a above.
[0499] Steps 1201 to 1206 are the same as steps 1104 to 1109 above.
[0500] Step 1205 above is an optional step.
[0501] Step 1207: The SEALDD client sends a control plane request message to the UE OS or network card.
[0502] The control plane request message includes SEALDD stream descriptor 1, (DNN, S-NSSAI) combination 1 corresponding to SEALDD stream descriptor 1, SEALDD stream descriptor 2, and (DNN, S-NSSAI) combination 2 corresponding to SEALDD stream descriptor 2. Specifically, the SEALDD client matches an application data stream from the VAL client based on the VAL stream descriptor, thereby determining the SEALDD stream descriptor 1 and SEALDD stream descriptor 2 corresponding to the VAL stream descriptor, and also determining (DNN, S-NSSAI) combination 1 corresponding to SEALDD stream descriptor 1 and (DNN, S-NSSAI) combination 2 corresponding to SEALDD stream descriptor 2.
[0503] In this context, (DNN, S-NSSAI) combination 1 and (DNN, S-NSSAI) combination 2 can be the same or different. Here, "different" means that the DNN in (DNN, S-NSSAI) combination 1 is different from the DNN in (DNN, S-NSSAI) combination 2, and / or the S-NSSAI in (DNN, S-NSSAI) combination 1 is different from the S-NSSAI in (DNN, S-NSSAI) combination 2.
[0504] Optionally, the control plane request message may also include a team identifier, RSN1 corresponding to SEALDD stream descriptor 1, and RSN2 corresponding to SEALDD stream descriptor 2. RSN1 and RSN2 are different.
[0505] Optionally, the control plane request message may also include indication information, which indicates that the SEALDD data streams corresponding to SEALDD stream descriptor 1 and SEALDD stream descriptor 2 are redundant data streams.
[0506] Step 1208a: The UE OS or network card sends a session establishment request message 1 to the SMF. The session establishment request message 1 includes a group identifier, RSN1, and (DNN, S-NSSAI) combination 1.
[0507] The UE OS or network interface card (NIC) matches the received SEALDD data stream based on SEALDD stream descriptor 1 and SEALDD stream descriptor 2. Since SEALDD stream descriptor 1 matches SEALDD data stream 1, the UE OS or NIC queries whether the session corresponding to the group identifier, RSN1 of SEALDD data stream 1, and (DNN, S-NSSAI) combination 1 of SEALDD data stream 1 has been established. If it has been established, the SEALDD data stream 1 is mapped to the established session. If it has not been established, a session establishment request message 1 is initiated to request the establishment of the session. This step 1208a is described with the session not yet established. The group identifier and RSN1 can be from the aforementioned control plane request message, or they can be generated by the UE OS or the UE's NIC.
[0508] Step 1208b: The UE OS or network card sends a session establishment request message 2 to the SMF. The session establishment request message 2 includes a team identifier, RSN2, and (DNN, S-NSSAI) combination 2.
[0509] The specific implementation of step 1208b is similar to that of step 1208a above, and can be referred to the foregoing description.
[0510] Step 1209: SMF establishes one session based on Session Establishment Request Message 1 and another session based on Session Establishment Request Message 2. The two sessions are redundant.
[0511] For the data transmission process after establishing two redundant sessions, please refer to [reference needed]. Figure 11 The descriptions in the embodiments are not repeated here.
[0512] Steps 1210 and 1211 are the same as steps 1113 and 1114 above.
[0513] Steps 1210 and 1211 are optional; please refer to [the relevant documentation] for details. Figure 11 The description in the embodiments.
[0514] As an alternative to steps 1210 and 1211 above, steps 1210 and 1211 can be omitted. Instead, the following can be performed: The SEALDD client sends a request message to the SEALDD server. This request message includes the address information of session 1 and session 2, as well as one or more of the following: the identification information of the SEALDD client, the identification information of SEALDD data stream 1, the identification information of SEALDD data stream 2, and VAL service information 3. The address information of session 1 can be carried in SEALDD stream descriptor 3, which can also contain the address information 1 of the SEALDD server. The address information of session 2 can be carried in SEALDD stream descriptor 4, which can also contain the address information 2 of the SEALDD server. The SEALDD server can obtain the correspondence between SEALDD data stream 1 and session 1, and the correspondence between SEALDD data stream 2 and session 2 based on the request message. It can also establish the correspondence between SEALDD data stream 1, SEALDD data stream 2 and VAL server based on VAL service information 1 and VAL service information 3.
[0515] Step 1212: The SEALDD server establishes a connection between the SEALDD server and the VAL server for the SEALDD client or VAL client. This connection is used to send application data streams corresponding to SEALDD data stream 1 and SEALDD data stream 2.
[0516] The SEALDD server assigns an address for communication between the SEALDD server and the VAL server. This address is different from the address indicated by SEALDD server address information 1 above, and also different from the address indicated by SEALDD server address information 2 above.
[0517] When the SEALDD server receives the aforementioned SEALDD data stream 1 and SEALDD data stream 2, it deduplicates the two streams and generates an application data stream. This application data stream is then sent to the VAL server. The source address in this application data stream is the address of the SEALDD server assigned by the SEALDD server for communication between the SEALDD server and the VAL server.
[0518] For the specific implementation process of redundant transmission of application data streams after step 1212 above, please refer to... Figure 11 The description in the embodiments.
[0519] In the above scheme, after deciding to use end-to-end redundant transmission, the UE's SEALDD client establishes a connection with the SEALDD server and negotiates the configuration information of the SEALDD data stream. Furthermore, by enhancing the functionality of the SEALDD client and the UEOS / NIC, the UE can proactively initiate the establishment of two redundant sessions for the SEALDD client and SEALDD server to transmit redundant data.
[0520] Figure 13 This is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0521] Step 1301: The VAL server sends a request message to the SEALDD server. The request message includes the UE's identification information and is used to request redundant transmission for the UE.
[0522] The VAL server uses this message to request the use of the SEALDD service from the SEALDD server. Optionally, this request message can be a request message for redundant transmission, which may include information such as the QoS requirements of the application data stream, such as packet loss rate and latency.
[0523] Optionally, the request message may also include VAL service information 1, which may include one or more of the following: VAL server identification information, VAL server address information, or identification information of the VAL service provided by the VAL server. This VAL service information 1 may also be referred to as application data stream identification information, application data stream configuration information, or application data stream information.
[0524] Step 1302: The SEALDD server sends a request message to the PCF via NEF / UDR.
[0525] This request message can also be called an AF request message.
[0526] The request message includes the UE's identification information, (DNN, S-NSSAI) combination 1, (DNN, S-NSSAI) combination 2, and indication information. The indication information is used to indicate that the SEALDD data streams corresponding to (DNN, S-NSSAI) combination 1 and (DNN, S-NSSAI) combination 2 are redundant data streams.
[0527] In this case, (DNN, S-NSSAI) combination 1 is different from (DNN, S-NSSAI) combination 2. For example, the DNN in (DNN, S-NSSAI) combination 1 is different from the DNN in (DNN, S-NSSAI) combination 2, and / or the S-NSSAI in (DNN, S-NSSAI) combination 1 is different from the S-NSSAI in (DNN, S-NSSAI) combination 2.
[0528] In one implementation, if the request message in step 1301 requests redundant transmission, the SEALDD server can determine the redundant transmission path for the UE based on the request message sent by the VAL server. In another implementation, if the request message in step 1301 carries QoS requirements for the application data stream, the SEALDD server can determine the redundant transmission path for the UE based on the QoS requirements. In this implementation, the SEALDD server can also send a feedback notification message to the VAL server regarding the request message in step 1301, notifying the VAL server that redundant transmission is required for the UE.
[0529] Step 1303: PCF sends URSP rule 1 and URSP rule 2 to UE.
[0530] Optionally, the UE OS can obtain URSP rule 1 and URSP rule 2.
[0531] Among them, URSP rule 1 includes (DNN, S-NSSAI) combination 1, and URSP rule 2 includes (DNN, S-NSSAI) combination 2.
[0532] Step 1304a is the same as step 1104a above.
[0533] Steps 1304 to 1310 are the same as steps 1104 to 1110 above.
[0534] Step 1311a, the UE OS or network card sends a session establishment request message 1 to the SMF, which includes a (DNN, S-NSSAI) combination 1.
[0535] The UE OS or the UE's network interface card (NIC) matches the received SEALDD data stream according to SEALDD stream descriptor 1 and SEALDD stream descriptor 2. Since SEALDD stream descriptor 1 can match SEALDD data stream 1, the UE OS queries whether the session corresponding to (DNN, S-NSSAI) combination 1 has been established. If it has been established, the UE OS maps SEALDD data stream 1 to the established session. If it has not been established, the UE OS initiates a session establishment request message 1 to request the establishment of a session. This step 1311a is described with the assumption that the session has not been established.
[0536] Step 1312a, the SMF sends a Session Management Policy Request (SM policy request) message 1 to the PCF. The Session Management Policy Request message 1 includes a (DNN, S-NSSAI) combination 1.
[0537] Step 1313a: The PCF sends a Session Management Policy Response (SM policy response) message 1 to the SMF. The Session Management Policy Response message 1 includes indication information, and optionally, the Session Management Policy Response message 1 also includes a team identifier.
[0538] This indication information (also known as the redundant session indication) is used to indicate that the session corresponding to (DNN, S-NSSAI) combination 1 and the session corresponding to (DNN, S-NSSAI) combination 2 are redundant sessions.
[0539] Step 1311b: The UE OS sends a session establishment request message 2 to the SMF. The session establishment request message 2 includes a combination of (DNN, S-NSSAI) 2.
[0540] The UE OS (or the UE's SIM card) matches the received SEALDD data stream according to SEALDD stream descriptor 1 and SEALDD stream descriptor 2. Since SEALDD stream descriptor 2 matches SEALDD data stream 2, the UE OS queries whether the session corresponding to (DNN, S-NSSAI) combination 2 has been established. If it has, the UE OS maps SEALDD data stream 2 to the established session; otherwise, it initiates a session establishment request message 2 to request the establishment of a session. This step 1311b is described with the assumption that the session has not been established.
[0541] Step 1312b: SMF sends a Session Management Policy Request (SM policy request) message 2 to PCF. The Session Management Policy Request message 2 includes a (DNN, S-NSSAI) combination 2.
[0542] Step 1313b: The PCF sends a Session Management Policy Response (SM policy response) message 2 to the SMF. The Session Management Policy Response message 2 includes indication information, and optionally, the Session Management Policy Response message also includes a team identifier.
[0543] This indication information (also known as the redundant session indication) is used to indicate that the session corresponding to (DNN, S-NSSAI) combination 1 and the session corresponding to (DNN, S-NSSAI) combination 2 are redundant sessions.
[0544] If both steps 1313a and 1313b carry a team identifier, then the two team identifiers are the same.
[0545] There is no sequential order between steps 1311a to 1313a and steps 1311b to 1313b.
[0546] Step 1314: SMF establishes session 1 based on session establishment request message 1 and session 2 based on session establishment request message 2.
[0547] Furthermore, the SMF determines the group ID and RSN1 corresponding to session 1, and the group ID and RSN2 corresponding to session 2, based on the instruction information. The group ID can be generated by the PCF or by the SMF. RSN1 and RSN2 are generated by the SMF.
[0548] Steps 1315 and 1316 are the same as steps 1113 and 1114 above.
[0549] Steps 1315 and 1316 are optional; please refer to [the relevant documentation] for details. Figure 11 The description in the embodiments.
[0550] As an alternative to steps 1315 and 1316 above, steps 1315 and 1316 can be omitted. Instead, the following can be performed: The SEALDD client sends a request message to the SEALDD server. This request message includes the address information of session 1 and session 2, as well as one or more of the following: the identification information of the SEALDD client, the identification information of SEALDD data stream 1, the identification information of SEALDD data stream 2, and VAL service information 3. The address information of session 1 can be carried in SEALDD stream descriptor 3, which can also contain the address information 1 of the SEALDD server. The address information of session 2 can be carried in SEALDD stream descriptor 4, which can also contain the address information 2 of the SEALDD server. The SEALDD server can obtain the correspondence between SEALDD data stream 1 and session 1, and the correspondence between SEALDD data stream 2 and session 2 based on the request message. It can also establish the correspondence between SEALDD data stream 1, SEALDD data stream 2 and VAL server based on VAL service information 1 and VAL service information 3.
[0551] Step 1317: The SEALDD server establishes a connection between the SEALDD server and the VAL server for the SEALDD client or VAL client. This connection is used to send application data streams corresponding to SEALDD data stream 1 and SEALDD data stream 2.
[0552] The SEALDD server assigns an address for communication between the SEALDD server and the VAL server. This address is different from the address indicated by SEALDD server address information 1 above, and also different from the address indicated by SEALDD server address information 2 above.
[0553] When the SEALDD server receives the aforementioned SEALDD data stream 1 and SEALDD data stream 2, it deduplicates the two streams and generates an application data stream. This application data stream is then sent to the VAL server. The source address in this application data stream is the address of the SEALDD server assigned by the SEALDD server for communication between the SEALDD server and the VAL server.
[0554] For the specific implementation process of redundant transmission of application data streams after step 1317 above, please refer to... Figure 11 The description in the embodiments.
[0555] The above scheme establishes two distinct sessions through two different (DNN S-NSSAI) combinations, and the SEALDD server notifies the PCF which two sessions are redundant. This scheme does not require pre-configuration of special URSP rules or enhancements to the UE OS or network interface card. However, it does require assigning different (DNN S-NSSAI) combinations to the two data streams of the SEALDD server, placing higher demands on the SEALDD server deployment, but requiring minimal modifications to the UE.
[0556] Figure 14 This is a flowchart illustrating a communication method provided in an embodiment of this application. The method includes the following steps:
[0557] Step 1401a is the same as step 1104a above.
[0558] Step 1401a is an optional step.
[0559] Steps 1401 to 1402 are the same as steps 1104 to 1105 above.
[0560] Step 1403a: The SEALDD client sends a request message 1 to the SEALDD server through the session of UE's SIM card 1. This request message 1 includes VAL service information 3. SIM card 1 belongs to PLMN 1.
[0561] Request message 1 requests the establishment of a SEALDD data transmission connection for transmitting the VAL service corresponding to VAL service information 3. Optionally, request message 1 also requests end-to-end redundant transmission.
[0562] Optionally, the request message 1 may also include the address information of the session of the UE's SIM card 2.
[0563] Optionally, the request message 1 may also include identification information of the SEALDD client and / or identification information of SEALDD data stream 1. The identification information of the SEALDD client is used to identify the SEALDD client, and the identification information of SEALDD data stream 1 is used to identify the SEALDD data stream corresponding to VAL service information 3.
[0564] Step 1404a: The SEALDD server sends a response message 1 to the SEALDD client. The response message 1 includes the address information 1 of the SEALDD server. Optionally, the response message 1 also includes VAL service information 3.
[0565] The response message 1 could be a connection establishment response message.
[0566] In one implementation method, the SEALDD server determines the address information 1 of the SEALDD server allocated for the VAL service based on VAL service information 3 and VAL service information 1. Here, VAL service information 3 and VAL service information 1 correspond to the same VAL service.
[0567] In one implementation, the address information 1 of the SEALDD server is included in the SEALDD stream descriptor 1, that is, the response message 1 includes the SEALDD stream descriptor 1, wherein the SEALDD stream descriptor 1 includes the address information 1 of the SEALDD server.
[0568] Step 1403b: The SEALDD client sends a request message 2 to the SEALDD server through the session of the UE's SIM card 2. This request message 2 includes VAL service information 3. SIM card 2 belongs to PLMN2.
[0569] Request message 2 requests the establishment of a SEALDD data transmission connection for transmitting the VAL service corresponding to VAL service information 3. Optionally, request message 2 also requests end-to-end redundant transmission.
[0570] Optionally, the request message 2 may also include the address information of the UE's SIM card 1 session.
[0571] Optionally, the request message 2 may also include identification information of the SEALDD client and / or identification information of the SEALDD data stream 2. The identification information of the SEALDD client is used to identify the SEALDD client, and the identification information of the SEALDD data stream 2 is used to identify the SEALDD data stream corresponding to the VAL service information 3.
[0572] Step 1404b: The SEALDD server sends a response message 2 to the SEALDD client. The response message 2 includes the address information 2 of the SEALDD server. Optionally, the response message 2 also includes VAL service information 3.
[0573] Response message 2 could be a connection establishment response message.
[0574] In one implementation method, the SEALDD server determines the address information 2 of the SEALDD server allocated for the VAL service based on VAL service information 3 and VAL service information 1. Here, VAL service information 3 and VAL service information 1 correspond to the same VAL service.
[0575] In one implementation, the address information 2 of the SEALDD server is contained in the SEALDD stream descriptor 2, that is, the response message 2 includes the SEALDD stream descriptor 2, wherein the SEALDD stream descriptor 2 includes the address information 2 of the SEALDD server.
[0576] There is no specific order between steps 1403a to 1404a and steps 1403b to 1404b.
[0577] Step 1405: The SEALDD client sends a service response message to the VAL client.
[0578] Step 1405 is an optional step.
[0579] Step 1406: The VAL client sends an application data stream to the SEALDD client.
[0580] The application data stream includes one or more data packets. Each data packet includes a header and data. The header includes the source address (i.e., the IP address of the VAL client), the source port number (i.e., the port number of the VAL client), the destination address (i.e., the IP address of the VAL server), the destination port number (i.e., the port number of the VAL server), and the VAL transport protocol.
[0581] The IP address of the VAL client can be the IP address of the UE's SIM card 1, the IP address of the UE's SIM card 2, or other IP addresses. The port number of the VAL client can be the port number of the UE's SIM card 1, the port number of the UE's SIM card 2, or other port numbers.
[0582] Step 1406b: The SEALDD client sends an instruction message to the UE OS or network card, which instructs SEALDD data stream 1 and SEALDD data stream 2 to be sent through SIM card 1 and SIM card 2 respectively.
[0583] Among them, SIM card 1 and SIM card 2 correspond to different PLMNs, that is, PLMN1 and PLMN2 are different.
[0584] Step 1407a: The SEALDD client sends SEALDD data stream 1 to the UE OS.
[0585] The SEALDD client determines VAL service information 3 based on the application data stream from the VAL client, then determines SEALDD address information 1 based on VAL service information 3, and then maps the application data stream to SEALDD data stream 1. The destination address of SEALDD data stream 1 corresponds to SEALDD address information 1, and then the SEALDD data stream 1 is sent to UEOS.
[0586] In one implementation, the SEALDD client adds a header to the data packets of the application data stream to obtain SEALDD data stream 1. For example, the added header carries the address information 1 of the SEALDD server, the SEALDD transport protocol, the sequence number of the data packet, and also carries the identification information of the SEALDD client and / or the identification information of SEALDD data stream 1, thus obtaining SEALDD data stream 1. The address information 1 of the SEALDD server in the added header is used as the destination address, or as both the destination address and the destination port number. The sequence number in the added header indicates the sending order of the data packets in SEALDD data stream 1; different data packets in SEALDD data stream 1 have different sequence numbers. The identification information of the SEALDD client in the added header identifies that SEALDD data stream 1 was sent via the SEALDD client indicated by the SEALDD client identification information. The identification information of SEALDD data stream 1 in the added header indicates SEALDD data stream 1.
[0587] In another implementation, the SEALDD client modifies the header of the application data stream packets to obtain SEALDD data stream 1. For example, it replaces the destination address (or destination address + destination port number) in the header of the application data stream packets with the address information of the SEALDD server (VAL server), replaces the transport protocol in the header of the application data stream packets with the SEALDD transport protocol, and adds the identification information of the SEALDD client and / or the identification information of SEALDD data stream 1 to the header. Optionally, it also adds a sequence number to the header to obtain SEALDD data stream 1.
[0588] Step 1408a: The UE OS sends a session establishment request message 1 to the SMF1 through the UE's SIM card 1. The session establishment request message 1 includes a (DNN, S-NSSAI) combination 1.
[0589] The UE OS matches the received SEALDD data stream. Since SEALDD stream descriptor 1 matches SEALDD data stream 1, the UE's SIM card 1 queries whether the session corresponding to (DNN, S-NSSAI) combination 1 in URSP rule 1 has been established. If it has been established, the SEALDD data stream 1 is mapped to the established session; if it has not been established, a session establishment request message 1 is initiated to request the establishment of a session. This step 1408a is described with the assumption that the session has not been established. Here, URSP rule 1 comes from PCF.
[0590] Step 1409a: SMF1 establishes session 1 based on session establishment request message 1.
[0591] Step 1407b: The SEALDD client sends SEALDD data stream 2 to the UE OS.
[0592] The SEALDD client determines VAL service information 3 based on the application data stream from the VAL client, then determines SEALDD address information 2 based on VAL service information 3, and then maps the application data stream to SEALDD data stream 2. The destination address of SEALDD data stream 2 corresponds to SEALDD address information 2, and then the SEALDD data stream 2 is sent to UEOS.
[0593] In one implementation, the SEALDD client adds a header to the data packets of the application data stream to obtain SEALDD data stream 2. For example, the added header carries the address information 2 of the SEALDD server, the SEALDD transport protocol, the sequence number of the data packet, and also carries the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2, thus obtaining SEALDD data stream 2. The address information 2 of the SEALDD server in the added header is used as the destination address, or as both the destination address and the destination port number. The sequence number in the added header indicates the sending order of the data packets in SEALDD data stream 2; different data packets in SEALDD data stream 2 have different sequence numbers. The identification information of the SEALDD client in the added header identifies that SEALDD data stream 2 was sent via the SEALDD client indicated by the SEALDD client identification information. The identification information of SEALDD data stream 2 in the added header indicates SEALDD data stream 2.
[0594] In another implementation, the SEALDD client modifies the header of the application data stream packets to obtain SEALDD data stream 2. For example, it replaces the destination address (or destination address and destination port number) in the header of the application data stream packets with the address information of the SEALDD server 2, replaces the transport protocol in the header of the application data stream packets with the SEALDD transport protocol, and adds the identification information of the SEALDD client and / or the identification information of SEALDD data stream 2 to the header. Optionally, it also adds a sequence number to the header to obtain SEALDD data stream 2.
[0595] Step 1408b: The UE OS sends a session establishment request message 2 to the SMF2 through the UE's SIM card 2. The session establishment request message 2 includes a combination of (DNN, S-NSSAI) 2.
[0596] The UE OS matches the received SEALDD data stream. Since SEALDD stream descriptor 2 matches SEALDD data stream 2, the UE's SIM card 2 queries whether the session corresponding to the (DNN, S-NSSAI) combination 2 in URSP rule 2 has been established. If it has been established, the SEALDD data stream 2 is mapped to the established session; if it has not been established, a session establishment request message 2 is initiated to request the establishment of a session. This step 1408b is described with the assumption that the session has not been established. Here, URSP rule 2 comes from PCF.
[0597] In this case, the (DNN, S-NSSAI) combination 2 in URSP rule 2 corresponds to the same or different public land mobile network (PLMN) as the (DNN, S-NSSAI) combination 1 in URSP rule 1 above.
[0598] Step 1409b: SMF2 establishes session 2 based on session establishment request message 2.
[0599] It should be noted that steps 1408a, 1409a, 1408b, and 1409b are all optional. For example, if the proxy client can transmit SEALDD data stream 1 using the session used in the negotiation process of steps 1403a and 1404a, then it is not necessary to create a new session for SEALDD data stream 1, i.e., steps 1408a and 1409a are not required. Similarly, if the proxy client can transmit SEALDD data stream 2 using the session used in the negotiation process of steps 1403b and 1404b, then it is not necessary to create a new session for SEALDD data stream 2, i.e., steps 1408b and 1409b are not required.
[0600] Step 1410a is the same as step 1113 above.
[0601] Step 1410b is the same as step 1114 above.
[0602] It should be noted that steps 1410a and 1410b above are optional steps. Specifically, if in step 1407a, SEALDD data stream 1 is obtained by modifying the packet header of the application data stream data packet, and steps 1408a and 1409a above have also been executed, then step 1410a is executed. Similarly, if in step 1407b, SEALDD data stream 2 is obtained by modifying the packet header of the application data stream data packet, and steps 1408b and 1409b above have also been executed, then step 1410b is executed.
[0603] As an alternative to steps 1410a and 1410b above, steps 1410a and 1410b can be omitted. Instead, the following can be performed: The SEALDD client sends a request message to the SEALDD server. This request message includes the address information of session 1 and session 2, as well as one or more of the following: the identification information of the SEALDD client, the identification information of SEALDD data stream 1, the identification information of SEALDD data stream 2, and VAL service information 3. The address information of session 1 can be carried in SEALDD stream descriptor 3, which can also contain the address information 1 of the SEALDD server. The address information of session 2 can be carried in SEALDD stream descriptor 4, which can also contain the address information 2 of the SEALDD server. The SEALDD server can obtain the correspondence between SEALDD data stream 1 and session 1, and the correspondence between SEALDD data stream 2 and session 2 based on the request message. It can also establish the correspondence between SEALDD data stream 1, SEALDD data stream 2 and VAL server based on VAL service information 1 and VAL service information 3.
[0604] Step 1411: The SEALDD server establishes a connection between the SEALDD server and the VAL server for the SEALDD client or VAL client. This connection is used to send application data streams corresponding to SEALDD data stream 1 and SEALDD data stream 2.
[0605] The SEALDD server assigns an address for communication between the SEALDD server and the VAL server. This address is different from the address indicated by SEALDD server address information 1 above, and also different from the address indicated by SEALDD server address information 2 above.
[0606] When the SEALDD server receives the aforementioned SEALDD data stream 1 and SEALDD data stream 2, it deduplicates the two streams and generates an application data stream. This application data stream is then sent to the VAL server. The source address in this application data stream is the address of the SEALDD server assigned by the SEALDD server for communication between the SEALDD server and the VAL server.
[0607] Subsequently, redundant transmission of application data streams between the VAL client and VAL server can be achieved via the SEALDD client and SEALDD server. Taking the uplink direction as an example, the VAL client sends one application data stream to the SEALDD client. The SEALDD client maps this one application data stream into two SEALDD data streams, namely SEALDD data stream 1 and SEALDD data stream 2, based on the SEALDD stream descriptor 1 and SEALDD stream descriptor 2 corresponding to the application data stream, or based on the address information 1 and SEALDD server address information 2 corresponding to the application data stream. SEALDD data stream 1 and SEALDD data stream 2 are redundant data streams. The SEALDD client sends SEALDD data stream 1 and SEALDD data stream 2 to the UE OS. Then, the UE OS sends SEALDD data stream 1 to the SEALDD server through session 1 of SIM card 1, and the UE OS sends SEALDD data stream 2 to the SEALDD server through session 2 of SIM card 2. Session 1 and session 2 are redundant sessions. Then, the SEALDD server deduplicates and reorders the data packets based on the sequence numbers in the packets of SEALDD data stream 1 and SEALDD data stream 2, obtaining a deduplicated SEALDD data stream, and maps this SEALDD data stream to an application data stream. The SEALDD server then determines the VAL server address based on the SEALDD stream descriptor stored locally on the SEALDD server, or based on the correspondence between SEALDD server address information 1 and SEALDD server address information 2 and the VAL server. Optionally, the SEALDD server determines whether to send the application data stream from the connection established in step 1114 based on the SEALDD stream descriptor stored locally on the SEALDD server, or based on the address information of session 1 and session 2. The application data stream is then sent to the VAL server. In one implementation, the SEALDD server restores the SEALDD data stream to an application data stream by deleting the packet header added by the SEALDD client to the data packets of the SEALDD data stream. This packet header includes the SEALDD server's address information 1 (or SEALDD server's address information 2), the SEALDD transport protocol, and the sequence number of the data packet. In another implementation, the SEALDD server restores the SEALDD data stream to an application data stream by replacing the destination address (or destination address + destination port number) in the data packets of the SEALDD data stream with the VAL server's address information from SEALDD server's address information 1 (or SEALDD server's address information 2). The processing in the downlink direction is the reverse of the uplink direction and will not be described further.
[0608] In the above scheme, the UE uses two independent SIM cards to establish sessions separately, but uses the same SEALDD client and SEALDD server. The UE uses the connection of the two PLMNs for dual session transmission. No additional modifications are required to the UE's functions and network functions. It is only necessary for the SEALDD client and SEALDD server to maintain the association relationship between the sessions of the two PLMNs.
[0609] In this application embodiment, the SEALDD traffic descriptor, also known as the identifiers of the SEALDD traffic or the packet filter of the SEALDD traffic, or other names, is not limited to this application.
[0610] In this application embodiment, the traffic descriptor, also known as the traffic identifiers or the traffic packet filter, or other names, is not limited to this application.
[0611] It is understood that, in order to achieve the functions in the above embodiments, the proxy client, proxy server, or policy control network element includes the corresponding hardware structure and / or software module for executing each function. Those skilled in the art should readily recognize that, based on the units and method steps of the various examples described in conjunction with the embodiments disclosed in this application, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application scenario and design constraints of the technical solution.
[0612] Figure 15 and Figure 16 The diagram illustrates the possible communication devices provided in the embodiments of this application. These communication devices can be used to implement the functions of the proxy client, proxy server, or policy control network element in the above method embodiments, and thus can also achieve the beneficial effects of the above method embodiments. In the embodiments of this application, the communication device can be a proxy client, proxy server, or policy control network element, or it can be a module (such as a chip) applied to a proxy client, a module (such as a chip) applied to a proxy server, or a module (such as a chip) applied to a policy control network element.
[0613] like Figure 15As shown, the communication device 1500 includes a processing unit 1510 and a transceiver unit 1520. The communication device 1500 is used to implement the functions of the proxy client, proxy server, or policy control network element in the above method embodiments.
[0614] When the communication device 1500 is used to implement the proxy client function in the above method embodiment, the transceiver unit 1520 is used to receive application data streams from the application client of the terminal device; the processing unit 1510 is used to determine a first data stream and a second data stream based on the application data stream, wherein the first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream and the application data stream include the same data; the transceiver unit 1520 is used to send the first data stream to the proxy server through a first session and to send the second data stream to the proxy server through a second session, wherein the first session and the second session are redundant sessions.
[0615] In one possible implementation, the processing unit 1510 is configured to determine the first data stream based on a first stream descriptor and the application data stream, wherein the first stream descriptor includes first address information of the proxy server, the destination address of the first data stream matches the first address information, and the first stream descriptor is used to indicate the data characteristics of the first data stream; and to determine the second data stream based on a second stream descriptor and the application data stream, wherein the second stream descriptor includes second address information of the proxy server, the destination address of the second data stream matches the second address information, and the second stream descriptor is used to indicate the data characteristics of the second data stream.
[0616] In one possible implementation, the transceiver unit 1520 is used to send a request message to the proxy server. The request message includes an application stream descriptor, which includes the address information of the application server. The application server is used to receive the application data stream, and the application stream descriptor is used to indicate the data characteristics of the application data stream.
[0617] In one possible implementation, the request message further includes the first stream descriptor and the second stream descriptor; or, the transceiver unit 1520 is configured to receive the first stream descriptor and the second stream descriptor from the proxy server.
[0618] In one possible implementation, the request message may further include the identification information of the proxy client; and / or, the request message may further include the identification information of the first data stream and the identification information of the second data stream.
[0619] In one possible implementation, the transceiver unit 1520 is configured to send the identification information of the proxy client and / or the identification information of the first data stream to the proxy server through the first session; and to send the identification information of the proxy client and / or the identification information of the second data stream to the proxy server through the second session.
[0620] In one possible implementation, the transceiver unit 1520 is configured to send the first data stream and the second data stream to the operating system or network card of the terminal device; the operating system or network card of the terminal device sends a first session establishment request message to a first session management network element, the first session establishment request message requesting the establishment of a first session for transmitting the first data stream; the operating system or network card of the terminal device sends a second session establishment request message to a second session management network element, the second session establishment request message requesting the establishment of a second session for transmitting the second data stream, wherein the second session management network element and the first session management network element are located in different public land mobile networks (PLMNs).
[0621] In one possible implementation, the proxy client is a client that supports the distribution, storage, and transmission of application layer content or data for vertical industry applications, and the proxy server is a server that supports the distribution, storage, and transmission of application layer content or data for vertical industry applications.
[0622] In one possible implementation, the transceiver unit 1520 is used to send the first data stream and the second data stream to the operating system or network card; the operating system or network card sends a first session establishment request message to a first session management network element, the first session establishment request message being used to request the establishment of a first session for transmitting the first data stream; the operating system or network card sends a second session establishment request message to a second session management network element, the second session establishment request message being used to request the establishment of a second session for transmitting the second data stream.
[0623] In one possible implementation, the operating system or network interface card (NIC) receives a first routing policy and a second routing policy from a policy control network element. The first routing policy includes a first flow descriptor and a first (DNN, S-NSSAI) combination, where the first flow descriptor is used to identify the first data flow. The second routing policy includes the second flow descriptor and a second (DNN, S-NSSAI) combination, where the second flow descriptor is used to identify the second data flow. If the operating system or NIC determines that the first routing policy matches the first data flow, it sends a first session establishment request message to the first session management network element, where the first session establishment request message includes the first (DNN, S-NSSAI) combination. If the operating system or NIC determines that the second routing policy matches the second data flow, it sends a second session establishment request message to the second session management network element, where the second session establishment request message includes the second (DNN, S-NSSAI) combination.
[0624] In one possible implementation, the first routing strategy further includes a team identifier and a first redundant sequence number, and the first session establishment request message further includes the team identifier and the first redundant sequence number; the second routing strategy further includes the team identifier and the second redundant sequence number, and the second session establishment request message further includes the team identifier and the second redundant sequence number.
[0625] When the communication device 1500 is used to implement the proxy server function in the above method embodiment, the transceiver unit 1520 is used to receive a request message from the proxy client of the terminal device. The request message includes an application stream descriptor, which includes the address information of the application server. The application server is used to receive application data streams, and the application stream descriptor is used to indicate the data characteristics of the application data stream. The processing unit 1510 is used to establish a correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor. The first stream descriptor is used to indicate the data characteristics of the first data stream, and the second stream descriptor is used to indicate the data characteristics of the second data stream. The first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the application data stream include the same data.
[0626] In one possible implementation, the request message further includes the first stream descriptor and the second stream descriptor; or, the transceiver unit 1520 is configured to send the first stream descriptor and the second stream descriptor to the proxy client.
[0627] In one possible implementation, the request message may further include the identification information of the proxy client; and / or, the request message may further include the identification information of the first data stream and the identification information of the second data stream.
[0628] In one possible implementation, the transceiver unit 1520 is configured to receive the identification information of the proxy client and / or the identification information of the first data stream from the proxy client through a first session, the first session being used to transmit the first data stream; and to receive the identification information of the proxy client and / or the identification information of the second data stream from the proxy client through a second session, the second session being used to transmit the second data stream, wherein the first session and the second session are redundant sessions.
[0629] In one possible implementation, the transceiver unit 1520 is used to send a request message to the policy control network element, the request message including the first flow descriptor and the second flow descriptor.
[0630] In one possible implementation, the request message further includes indication information, which indicates that the first data stream corresponding to the first stream descriptor and the second data stream corresponding to the second stream descriptor are redundant data streams.
[0631] In one possible implementation, the request message further includes a first (DNN, S-NSSAI) combination corresponding to the first stream descriptor and a second (DNN, S-NSSAI) combination corresponding to the second stream descriptor, wherein the first (DNN, S-NSSAI) combination is different from the second (DNN, S-NSSAI) combination.
[0632] In one possible implementation, the request message is used to request the policy control network element to generate user routing policy rules corresponding to the first flow descriptor and user routing policy rules corresponding to the second flow descriptor.
[0633] In one possible implementation, the transceiver unit 1520 is configured to receive the first data stream and the second data stream from the proxy client; the processing unit 1510 is configured to deduplicate the first data stream matching the first stream descriptor and the second data stream matching the second stream descriptor according to the correspondence between the first stream descriptor and the second stream descriptor, to obtain a deduplicated data stream; determine the application data stream according to the deduplicated data stream, the application stream descriptor, and the correspondence between the first stream descriptor and the second stream descriptor; and the transceiver unit 1520 is configured to send the application data stream to the application server corresponding to the application stream descriptor.
[0634] When the communication device 1500 is used to implement the proxy server function in the above method embodiment, the transceiver unit 1520 is used to receive a first request message from the proxy client of the terminal device. The first request message includes an application stream descriptor and the address information of the first session of the terminal device. The application stream descriptor includes the address information of the application server. The application server is used to receive application data streams. The application stream descriptor is used to indicate the data characteristics of the application data stream. The transceiver unit 1520 is used to receive a second request message from the proxy client. The second request message includes the application stream descriptor and the address information of the second session of the terminal device. The processing unit 1510 is used to establish the correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor. The first stream descriptor is used to indicate the data characteristics of the first data stream. The first stream descriptor includes the address information of the second session. The second stream descriptor is used to indicate the data characteristics of the second data stream. The second stream descriptor includes the address information of the first session. The first data stream and the second data stream are redundant data streams. The first data stream, the second data stream, and the application data stream include the same data.
[0635] In one possible implementation, the first request message may further include the first stream descriptor; or, the proxy server may send the first stream descriptor to the terminal device.
[0636] In one possible implementation, the second request message further includes the second stream descriptor; or, the transceiver unit 1520 is configured to send the second stream descriptor to the proxy client.
[0637] In one possible implementation, the first request message further includes the identification information of the proxy client and / or the identification information of the first data stream; the second request message further includes the identification information of the proxy client and / or the identification information of the second data stream.
[0638] In one possible implementation, the transceiver unit 1520 is configured to receive the identification information of the proxy client and / or the identification information of the first data stream from the proxy client through a first session, the first session being used to transmit the first data stream; and to receive the identification information of the proxy client and / or the identification information of the second data stream from the proxy client through a second session, the second session being used to transmit the second data stream, wherein the first session and the second session are redundant sessions.
[0639] In one possible implementation, the transceiver unit 1520 is configured to receive the first data stream and the second data stream from the proxy client; the processing unit 1510 is configured to deduplicate the first data stream matching the first stream descriptor and the second data stream matching the second stream descriptor according to the correspondence between the first stream descriptor and the second stream descriptor, to obtain a deduplicated data stream; determine the application data stream according to the deduplicated data stream, the application stream descriptor, and the correspondence between the first stream descriptor and the second stream descriptor; and the transceiver unit 1520 is configured to send the application data stream to the application server corresponding to the application stream descriptor.
[0640] When the communication device 1500 is used to implement the function of the policy control network element in the above method embodiment, the transceiver unit 1520 is used to receive a first request message from the session management network element, the first request message including a first (DNN, S-NSSAI) combination; send first indication information to the session management network element, the first indication information being used to indicate that the session corresponding to the first (DNN, S-NSSAI) combination and the session corresponding to the second (DNN, S-NSSAI) combination are redundant sessions, the first (DNN, S-NSSAI) combination being different from the second (DNN, S-NSSAI) combination; receive a second request message from the session management network element, the second request message including the second (DNN, S-NSSAI) combination; and send the first indication information to the session management network element.
[0641] In one possible implementation, the transceiver unit 1520 is configured to receive, before receiving the first request message from the session management network element, second indication information from the proxy server, the first (DNN, S-NSSAI) combination and the second (DNN, S-NSSAI) combination, the second indication information being used to indicate that the first (DNN, S-NSSAI) combination and the second (DNN, S-NSSAI) combination are used for redundant transmission of the same data.
[0642] When the communication device 1500 is used to implement the proxy client function in the above method embodiment, the transceiver unit 1520 is used to send a request message to the proxy server. The request message includes application service information and identification information of the application client or the proxy client. The application service information includes one or more of the following: identification information of the application server, address information of the application server, or identification information of the application service provided by the application server. The application server is used to send and receive the data stream of the application service. The request message is used to request the establishment of a redundant transmission connection between the proxy client and the proxy server for the application client. The request message also receives a response message from the application server. The response message includes first address information and second address information of the proxy server. The first address information and the second address information are used to provide redundant transmission for the data stream of the application service.
[0643] In one possible implementation, the request message further includes identification information of a first data stream and identification information of a second data stream. The first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the data stream of the application service include the same data.
[0644] In one possible implementation, the first address information is matched with the first data stream, and the second address information is matched with the second data stream.
[0645] In one possible implementation, the response message includes the first address information and the second address information of the proxy server. Specifically, the response message includes a first stream descriptor and a second stream descriptor, the first stream descriptor including the first address information and the second stream descriptor including the second address information.
[0646] In one possible implementation, the first stream descriptor further includes the data transmission protocol of the first data stream, and the second stream descriptor further includes the data transmission protocol of the second data stream, wherein the data transmission protocol of the first data stream is the same as the data transmission protocol of the second data stream.
[0647] In one possible implementation, the processing unit 1510 is configured to trigger the establishment of a first session based on the first stream descriptor, the first session being used to transmit the first data stream; the terminal device triggers the establishment of a second session based on the second stream descriptor, the second session being used to transmit the second data stream; wherein the first session and the second session are redundant sessions.
[0648] In one possible implementation, the processing unit 1510 is configured to trigger the establishment of a first session based on the first address information, the first session being used to transmit the first data stream; the terminal device triggers the establishment of a second session based on the second address information, the second session being used to transmit the second data stream; wherein the first session and the second session are redundant sessions.
[0649] In one possible implementation, the transceiver unit 1520 is used to send a first message to the proxy server, the first message including the address information of the first session and the address information of the second session.
[0650] In one possible implementation, the first message includes the address information of the first session and the address information of the second session. Specifically, the first message includes a third stream descriptor and a fourth stream descriptor, the third stream descriptor including the address information of the first session and the fourth stream descriptor including the address information of the second session.
[0651] In one possible implementation, the first message further includes the identification information of the application client and / or the identification information of the proxy client; wherein the first session and the second session are both associated with the application client and / or the proxy client.
[0652] In one possible implementation, the first message further includes identification information of a first data stream and identification information of a second data stream. The first data stream and the second data stream are redundant data streams. The first data stream, the second data stream, and the data stream of the application service include the same data. The first session is associated with the first data stream, and the second session is associated with the second data stream.
[0653] When the communication device 1500 is used to implement the proxy client function in the above method embodiment, the transceiver unit 1520 is used to receive a first application data stream from the application client of the terminal device; the processing unit 1510 is used to determine a first data stream and a second data stream based on the first application data stream, wherein the first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream and the first application data stream include the same data; the transceiver unit 1520 is used to send the first data stream to the proxy server through a first session, and to send the second data stream to the proxy server through a second session, wherein the first session and the second session are redundant sessions; wherein the first data stream and the first session correspond to the first address information of the proxy server, and the second data stream and the second session correspond to the second address information of the proxy server.
[0654] In one possible implementation, the processing unit 1510 is specifically used to determine the first data stream based on the first address information and the first application data stream; the proxy client determines the second data stream based on the second address information and the first application data stream.
[0655] In one possible implementation, the processing unit 1510 is specifically configured to determine the first data stream based on the fifth stream descriptor and the first application data stream, wherein the fifth stream descriptor includes the first address information and the address information of the first session, and the fifth stream descriptor is used to indicate the data characteristics of the first data stream; the proxy client determines the second data stream based on the sixth stream descriptor and the first application data stream, wherein the sixth stream descriptor includes the second address information and the address information of the second session, and the sixth stream descriptor is used to indicate the data characteristics of the second data stream.
[0656] In one possible implementation, the processing unit 1510 is further configured to generate the fifth stream descriptor based on the first address information and the address information of the first session; and the proxy client generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0657] When the communication device 1500 is used to implement the proxy client function in the above method embodiment, the transceiver unit 1520 is used to receive a third data stream from the proxy server through a first session and a fourth data stream from the proxy server through a second session. The third data stream and the fourth data stream are redundant data streams. The third data stream corresponds to the first address information of the proxy server, and the fourth data stream corresponds to the second address information of the proxy server. The first session and the second session are redundant sessions. The processing unit 1510 is used to determine a second application data stream based on the third data stream and the fourth data stream. The third data stream, the fourth data stream, and the second application data stream include the same data. The transceiver unit 1520 is used to send the second application data stream to the application client of the terminal device.
[0658] In one possible implementation, the processing unit 1510 is specifically used to deduplicate and reorder the third data stream and the fourth data stream to obtain the second application data stream.
[0659] In one possible implementation, the proxy client determines the second application data stream based on the third data stream and the fourth data stream, including: the proxy client determines the second application data stream based on the first address information, the second address information, the third data stream, and the fourth data stream.
[0660] In one possible implementation, the processing unit 1510 is specifically configured to determine the second application data stream based on the fifth stream descriptor, the sixth stream descriptor, the third data stream, and the fourth data stream; wherein the fifth stream descriptor includes the first address information and the address information of the first session, and the fifth stream descriptor is used to indicate the data characteristics of the first data stream; the sixth stream descriptor includes the second address information and the address information of the second session, and the sixth stream descriptor is used to indicate the data characteristics of the second data stream.
[0661] In one possible implementation, the processing unit 1510 is further configured to generate the fifth stream descriptor based on the first address information and the address information of the first session; and the proxy client generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0662] When the communication device 1500 is used to implement the proxy server function in the above method embodiment, the transceiver unit 1520 is used to receive a request message from the proxy client of the terminal device. The request message includes first application service information and identification information of the application client or the proxy client. The first application service information includes one or more of the identification information of the application server, the address information of the application server, or the identification information of the application service provided by the application server. The application server is used to send and receive the data stream of the application service. The request message is used to request the establishment of a redundant transmission connection between the proxy client and the proxy server for the application client. The request message also sends a response message to the proxy client. The response message includes the first address information and the second address information of the proxy server. The first address information and the second address information are used to provide redundant transmission for the data stream of the application service.
[0663] In one possible implementation, the transceiver unit 1520 is further configured to receive second application service information from the application server, the second application service information including one or more of the application server's identification information, the application server's address information, or the identification information of the application service provided by the application server; the proxy server allocates the first address information and the second address information according to the second application service information.
[0664] In one possible implementation, the request message further includes identification information of a first data stream and identification information of a second data stream. The first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the data stream of the application service include the same data.
[0665] In one possible implementation, the first address information is matched with the first data stream, and the second address information is matched with the second data stream.
[0666] In one possible implementation, the response message includes the first address information and the second address information of the proxy server. Specifically, the response message includes a first stream descriptor and a second stream descriptor, the first stream descriptor including the first address information and the second stream descriptor including the second address information.
[0667] In one possible implementation, the first stream descriptor further includes the data transmission protocol of the first data stream, and the second stream descriptor further includes the data transmission protocol of the second data stream, wherein the data transmission protocol of the first data stream is the same as the data transmission protocol of the second data stream.
[0668] In one possible implementation, the transceiver unit 1520 is further configured to send a first message to the proxy server, the first message including address information of a first session and address information of a second session; wherein the first session is used to transmit the first data stream, the second session is used to transmit the second data stream, and the first session and the second session are redundant sessions.
[0669] In one possible implementation, the first message includes address information of the first session and address information of the second session. Specifically, the first message includes a third stream descriptor and a fourth stream descriptor, the third stream descriptor including address information of the first session and the fourth stream descriptor including address information of the second session.
[0670] In one possible implementation, the first message further includes the identification information of the application client and / or the identification information of the proxy client; wherein the first session and the second session are both associated with the application client and / or the proxy client.
[0671] In one possible implementation, the first message further includes identification information of a first data stream and identification information of a second data stream. The first data stream and the second data stream are redundant data streams. The first data stream, the second data stream, and the data stream of the application service include the same data. The first session is associated with the first data stream, and the second session is associated with the second data stream.
[0672] In one possible implementation, the processing unit 1510 is used to establish a connection between the proxy server and the application server, the connection being associated with the application client and / or the proxy client.
[0673] In one possible implementation, the processing unit 1510 is used to establish a connection between the proxy server and the application server, the connection being associated with the first data stream and the second data stream.
[0674] When the communication device 1500 is used to implement the proxy server function in the above method embodiment, the transceiver unit 1520 is used to receive a first data stream and a second data stream from the proxy client. The first data stream and the second data stream are redundant data streams. The first data stream, the second data stream, and the first application data stream include the same data. The first application data stream comes from the application client of the terminal device. The processing unit 1510 is used to determine a third application data stream based on the first data stream and the second data stream. The third application data stream includes the same data as the first application data stream. The transceiver unit 1520 is used to send the third application data stream to the application server.
[0675] In one possible implementation, the processing unit 1510 is used to deduplicate and reorder the first data stream and the second data stream to obtain the third application data stream.
[0676] In one possible implementation, the processing unit 1510 is configured to determine the third application data stream based on the first address information of the proxy server, the second address information of the proxy server, the first data stream, and the second data stream, wherein the first data stream corresponds to the first address information and the second data stream corresponds to the second address information.
[0677] In one possible implementation, the processing unit 1510 is configured to determine the third application data stream based on the fifth stream descriptor, the sixth stream descriptor, the first data stream, and the second data stream; wherein the fifth stream descriptor includes the first address information of the proxy server and the address information of the first session of the terminal device, and the fifth stream descriptor is used to indicate the data characteristics of the first data stream; the sixth stream descriptor includes the second address information of the proxy server and the address information of the second session of the terminal device, and the sixth stream descriptor is used to indicate the data characteristics of the second data stream; the first session and the second session are redundant sessions, the first session corresponds to the first data stream, and the second session corresponds to the second data stream.
[0678] In one possible implementation, the processing unit 1510 is configured to generate the fifth stream descriptor based on the first address information and the address information of the first session; and the proxy server generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0679] In one possible implementation, the transceiver unit 1520 is used to receive the fifth stream descriptor and the sixth stream descriptor from the proxy client.
[0680] In one possible implementation, the processing unit 1510 is used to determine the target connection between the proxy server and the application server, the target connection being associated with the proxy client or with the first data stream and the second data stream; the transceiver unit 1520 is used to send the third application data stream from the application client to the application server on the target connection.
[0681] When the communication device 1500 is used to implement the proxy server function in the above method embodiment, the transceiver unit 1520 is used to receive a fourth application data stream from the application server; the processing unit 1510 is used to determine a third data stream and a fourth data stream based on the fourth application data stream, wherein the third data stream and the fourth data stream are redundant data streams, and the third data stream, the fourth data stream, and the fourth application data stream include the same data; the transceiver unit 1520 is used to send the third data stream to the proxy client of the terminal device and to send the fourth data stream to the proxy client; wherein the third data stream corresponds to the first address information of the proxy server and the address information of the first session of the terminal device, the fourth data stream corresponds to the second address information of the proxy server and the address information of the second session of the terminal device, and the first session and the second session are redundant sessions.
[0682] In one possible implementation, the processing unit 1510 is configured to determine the third data stream based on the first address information, the address information of the first session, and the fourth application data stream; and the proxy server determines the fourth data stream based on the second address information, the address information of the second session, and the fourth application data stream.
[0683] In one possible implementation, the processing unit 1510 is configured to determine the third data stream based on the fifth stream descriptor and the fourth application data stream, wherein the fifth stream descriptor includes the first address information and the address information of the first session, and the fifth stream descriptor is used to indicate the data characteristics of the third data stream; the proxy server determines the fourth data stream based on the sixth stream descriptor and the fourth application data stream, wherein the sixth stream descriptor includes the second address information and the address information of the second session, and the sixth stream descriptor is used to indicate the data characteristics of the fourth data stream.
[0684] In one possible implementation, the processing unit 1510 is configured to generate the fifth stream descriptor based on the first address information and the address information of the first session; and the proxy server generates the sixth stream descriptor based on the second address information and the address information of the second session.
[0685] In one possible implementation, the transceiver unit 1520 is used to receive the fifth stream descriptor and the sixth stream descriptor from the proxy client.
[0686] In one possible implementation, the transceiver unit 1520 is configured to receive a fourth application data stream from an application server, including: the proxy server receiving the fourth application data stream from the application server on a target connection, the target connection being associated with the proxy client, or with the third data stream and the fourth data stream.
[0687] A more detailed description of the processing unit 1510 and the transceiver unit 1520 can be obtained directly from the relevant descriptions in the above method embodiments, and will not be repeated here.
[0688] like Figure 16 As shown, the communication device 1600 includes a processor 1610 and an interface circuit 1620. The processor 1610 and the interface circuit 1620 are coupled to each other. It is understood that the interface circuit 1620 can be a transceiver or an input / output interface. Optionally, the communication device 1600 may also include a memory 1630 for storing instructions executed by the processor 1610, or storing input data required by the processor 1610 to execute instructions, or storing data generated after the processor 1610 executes instructions.
[0689] When the communication device 1600 is used to implement the above method embodiment, the processor 1610 is used to implement the function of the processing unit 1510, and the interface circuit 1620 is used to implement the function of the transceiver unit 1520.
[0690] It is understood that the processor in the embodiments of this application may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. A general-purpose processor may be a microprocessor or any conventional processor.
[0691] The method steps in the embodiments of this application can be implemented in hardware or by a processor executing software instructions. The software instructions can consist of corresponding software modules, which can be stored in random access memory, flash memory, read-only memory, programmable read-only memory, erasable programmable read-only memory, electrically erasable programmable read-only memory, registers, hard disks, portable hard disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to a processor, enabling the processor to read information from and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and storage medium can reside in an ASIC. Alternatively, the ASIC can reside in a base station or terminal. Of course, the processor and storage medium can also exist as discrete components in the base station or terminal.
[0692] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this application are performed entirely or partially. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a base station, a user equipment, or other programmable device. The computer program or instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another. For example, the computer program or instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; it can also be an optical medium, such as a digital video optical disc; or it can be a semiconductor medium, such as a solid-state drive. The computer-readable storage medium may be a volatile or non-volatile storage medium, or may include both types of storage media.
[0693] In the various embodiments of this application, unless otherwise specified or in case of logical conflict, the terminology and / or descriptions of different embodiments are consistent and can be referenced by each other. The technical features of different embodiments can be combined to form new embodiments according to their inherent logical relationship.
[0694] In this application, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone, where A and B can be singular or plural. In the textual description of this application, the character " / " generally indicates an "or" relationship between the preceding and following related objects; in the formulas of this application, the character " / " indicates a "division" relationship between the preceding and following related objects.
[0695] It is understood that the various numerical designations used in the embodiments of this application are merely for descriptive convenience and are not intended to limit the scope of the embodiments of this application. The order of the process numbers described above does not imply the order of execution; the execution order of each process should be determined by its function and internal logic.
Claims
1. A communication method, characterized in that, include: The proxy server receives a request message from the proxy client of the terminal device. The request message includes an application stream descriptor, which includes the address information of the application server. The application server is used to receive application data streams, and the application stream descriptor is used to indicate the data characteristics of the application data streams. The proxy server establishes a correspondence between the application stream descriptor, the first stream descriptor, and the second stream descriptor. The first stream descriptor is used to indicate the data characteristics of the first data stream, and the second stream descriptor is used to indicate the data characteristics of the second data stream. The first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the application data stream include the same data. The proxy server receives the identification information of the proxy client and / or the identification information of the first data stream from the proxy client through a first session, wherein the first session is used to transmit the first data stream; The proxy server receives the identification information of the proxy client and / or the identification information of the second data stream from the proxy client through a second session. The second session is used to transmit the second data stream, and the first session and the second session are redundant sessions. Wherein, the first data stream and the first session correspond to the first address information of the proxy server, and the second data stream and the second session correspond to the second address information of the proxy server.
2. The method as described in claim 1, characterized in that, The request message further includes the first stream descriptor and the second stream descriptor; or, The proxy server sends the first stream descriptor and the second stream descriptor to the proxy client.
3. The method as described in claim 1, characterized in that, The request message also includes the identification information of the proxy client; and / or, The request message also includes the identification information of the first data stream and the identification information of the second data stream.
4. The method according to any one of claims 1 to 3, characterized in that, Also includes: The proxy server sends a request message to the policy control network element, the request message including the first flow descriptor and the second flow descriptor.
5. The method as described in claim 4, characterized in that, The request message also includes indication information, which is used to indicate that the first data stream corresponding to the first stream descriptor and the second data stream corresponding to the second stream descriptor are redundant data streams.
6. The method as described in claim 4, characterized in that, The request message also includes a first (DNN, S-NSSAI) combination corresponding to the first stream descriptor and a second (DNN, S-NSSAI) combination corresponding to the second stream descriptor, wherein the first (DNN, S-NSSAI) combination is different from the second (DNN, S-NSSAI) combination.
7. The method as described in claim 4, characterized in that, The request message is used to request the policy control network element to generate user routing policy rules corresponding to the first flow descriptor and user routing policy rules corresponding to the second flow descriptor.
8. The method according to any one of claims 1 to 3, characterized in that, Also includes: The proxy server receives the first data stream and the second data stream from the proxy client; The proxy server performs deduplication on the first data stream matching the first stream descriptor and the second data stream matching the second stream descriptor based on the correspondence between the first stream descriptor and the second stream descriptor, to obtain a deduplicated data stream. The proxy server determines the application data stream based on the deduplicated data stream, the application stream descriptor, and the correspondence between the first stream descriptor and the second stream descriptor; The proxy server sends the application data stream to the application server corresponding to the application stream descriptor.
9. A communication method, characterized in that, include: The proxy client of the terminal device sends a request message to the proxy server. The request message includes application service information and identification information of the application client or the proxy client. The application service information includes one or more of the following: identification information of the application server, address information of the application server, or identification information of the application service provided by the application server. The application server is used to send and receive data streams of the application service. The request message is used to request the establishment of a redundant transmission connection between the proxy client and the proxy server for the application client. The proxy client receives a response message from the proxy server. The response message includes first address information and second address information of the proxy server. The first address information and the second address information are used to provide redundant transmission for the data stream of the application service. The terminal device triggers the establishment of a first session, which is used to transmit a first data stream. And trigger the establishment of a second session, the second session is used to transmit a second data stream, the first session and the second session are redundant sessions, the first data stream and the second data stream are redundant data streams, the first data stream, the second data stream and the data stream of the application service include the same data; Wherein, the first data stream and the first session correspond to the first address information of the proxy server, and the second data stream and the second session correspond to the second address information of the proxy server.
10. The method as described in claim 9, characterized in that, The request message also includes the identification information of the first data stream and the identification information of the second data stream.
11. The method as described in claim 9 or 10, characterized in that, The response message includes the first address information and the second address information of the proxy server, specifically: The response message includes a first stream descriptor and a second stream descriptor, wherein the first stream descriptor includes the first address information and the second stream descriptor includes the second address information.
12. The method as described in claim 11, characterized in that, The first stream descriptor also includes the data transmission protocol of the first data stream, and the second stream descriptor also includes the data transmission protocol of the second data stream, wherein the data transmission protocol of the first data stream is the same as the data transmission protocol of the second data stream.
13. The method as described in claim 12, characterized in that, The terminal device triggers the establishment of the first session, including: The terminal device triggers the establishment of a first session based on the first stream descriptor; The terminal device triggers the establishment of a second session, including: The terminal device triggers the establishment of a second session based on the second stream descriptor.
14. The method as described in claim 9 or 10, characterized in that, The terminal device triggers the establishment of the first session, including: The terminal device triggers the establishment of a first session based on the first address information; The terminal device triggers the establishment of a second session, including: The terminal device triggers the establishment of a second session based on the second address information.
15. The method as described in claim 13, characterized in that, The method further includes: The proxy client sends a first message to the proxy server, the first message including the address information of the first session and the address information of the second session.
16. The method as described in claim 15, characterized in that, The first message includes the address information of the first session and the address information of the second session, specifically: The first message includes a third stream descriptor and a fourth stream descriptor. The third stream descriptor includes the address information of the first session, and the fourth stream descriptor includes the address information of the second session.
17. The method as described in claim 15, characterized in that, The first message also includes the identification information of the application client and / or the identification information of the proxy client; Both the first session and the second session are associated with the application client and / or the proxy client.
18. The method as described in claim 15, characterized in that, The first message also includes the identification information of the first data stream and the identification information of the second data stream.
19. A communication method, characterized in that, include: The proxy client of the terminal device receives a first application data stream from the application client of the terminal device; The proxy client determines a first data stream and a second data stream based on the first application data stream. The first data stream and the second data stream are redundant data streams, and the first data stream, the second data stream, and the first application data stream include the same data. The proxy client sends the first data stream to the proxy server through a first session and sends the second data stream to the proxy server through a second session, wherein the first session and the second session are redundant sessions. Wherein, the first data stream and the first session correspond to the first address information of the proxy server, and the second data stream and the second session correspond to the second address information of the proxy server.
20. The method as described in claim 19, characterized in that, The proxy client determines the first data stream and the second data stream based on the first application data stream, including: The proxy client determines the first data stream based on the first address information and the first application data stream; The proxy client determines the second data stream based on the second address information and the first application data stream.
21. The method as described in claim 19, characterized in that, The proxy client determines the first data stream and the second data stream based on the first application data stream, including: The proxy client determines the first data stream based on the fifth stream descriptor and the first application data stream. The fifth stream descriptor includes the first address information and the address information of the first session. The fifth stream descriptor is used to indicate the data characteristics of the first data stream. The proxy client determines the second data stream based on the sixth stream descriptor and the first application data stream. The sixth stream descriptor includes the second address information and the address information of the second session. The sixth stream descriptor is used to indicate the data characteristics of the second data stream.
22. The method as described in claim 21, characterized in that, The method further includes: The proxy client generates the fifth stream descriptor based on the first address information and the address information of the first session; The proxy client generates the sixth stream descriptor based on the second address information and the address information of the second session.
23. A communication method, characterized in that, include: The proxy server receives a first data stream and a second data stream from the proxy client. The first data stream and the second data stream are redundant data streams. The first data stream, the second data stream, and the first application data stream include the same data. The first application data stream comes from the application client of the terminal device. The proxy server determines a third application data stream based on the first address information of the proxy server, the second address information of the proxy server, the first data stream, and the second data stream. The third application data stream includes the same data as the first application data stream. The first data stream corresponds to the first address information of the proxy server, and the second data stream corresponds to the second address information of the proxy server. The proxy server sends the third application data stream to the application server; Wherein, the first data stream and the first session correspond to the first address information of the proxy server, the second data stream and the second session correspond to the second address information of the proxy server, the first session and the second session are redundant sessions, the first session corresponds to the first data stream, and the second session corresponds to the second data stream.
24. The method as described in claim 23, characterized in that, The proxy server determines the third application data stream based on the first address information of the proxy server, the second address information of the proxy server, the first data stream, and the second data stream, including: The proxy server determines the third application data stream based on the fifth stream descriptor, the sixth stream descriptor, the first data stream, and the second data stream; The fifth stream descriptor includes the first address information of the proxy server and the address information of the first session of the terminal device. The fifth stream descriptor is used to indicate the data characteristics of the first data stream. The sixth stream descriptor includes the second address information of the proxy server and the address information of the second session of the terminal device. The sixth stream descriptor is used to indicate the data characteristics of the second data stream.
25. The method as described in claim 24, characterized in that, The method further includes: The proxy server generates the fifth stream descriptor based on the first address information and the address information of the first session; The proxy server generates the sixth stream descriptor based on the second address information and the address information of the second session.
26. The method as described in claim 24, characterized in that, The method further includes: The proxy server receives the fifth stream descriptor and the sixth stream descriptor from the proxy client.
27. The method according to any one of claims 24 to 26, characterized in that, The proxy server sends the third application data stream to the application server, including: The proxy server determines the target connection between the proxy server and the application server, and the target connection is associated with the proxy client, or with the first data stream and the second data stream; The proxy server, on the target connection, sends the third application data stream from the application client to the application server.
28. A communication device, characterized in that, The device includes a processor and an interface circuit. The interface circuit is used to receive signals from other communication devices besides the communication device and transmit them to the processor, or to send signals from the processor to other communication devices besides the communication device. The processor is used through logic circuits or execution code instructions to implement the method as described in any one of claims 1 to 8, or to implement the method as described in any one of claims 9 to 18, or to implement the method as described in any one of claims 19 to 22, or to implement the method as described in any one of claims 23 to 27.
29. A communication device, characterized in that, include: Memory, used to store computer programs; A processor for calling and running the computer program from the memory to perform the method as claimed in any one of claims 1 to 8, or to perform the method as claimed in any one of claims 9 to 18, or to perform the method as claimed in any one of claims 19 to 22, or to implement the method as claimed in any one of claims 23 to 27.
30. A communication system, characterized in that, include: A proxy client and a proxy server for performing the method as described in any one of claims 1 to 8; The proxy client is used to send a request message to the proxy server. The request message includes an application stream descriptor, which includes the address information of the application server. The application server is used to receive application data streams, and the application stream descriptor is used to indicate the data characteristics of the application data streams.
31. A communication system, characterized in that, include: A proxy server, and a proxy client for performing the method as described in any one of claims 19 to 22; The proxy server is configured to receive a first data stream from the proxy client through a first session, and to receive a second data stream from the proxy client through a second session.
32. A communication system, characterized in that, include: A proxy client and a proxy server for performing the method as described in any one of claims 23 to 27; The proxy client is used to send a first data stream and a second data stream to the proxy server.
33. A computer-readable storage medium, characterized in that, The storage medium stores a computer program or instructions, which, when executed by a communication device, implement the method as described in any one of claims 1 to 27.
34. A computer program product, characterized in that, The computer program product includes a computer program or instructions that, when executed by a communication device, implement the method as described in any one of claims 1 to 27.