Network service optimization methods and devices
By identifying network lag through multi-dimensional QoE results and switching to a backup network, the problem of low recognition accuracy in existing technologies is solved, thus improving the user experience.
Patent Information
- Application Number
- CN202111653940.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-30
- Publication Date
- 2025-12-02
- Estimated Expiration
- 2041-12-30
AI Technical Summary
Existing network service optimization methods have low accuracy in identifying network lag, resulting in a poor user experience.
By acquiring multi-dimensional QoE results from terminal devices at the service flow, application, and network channel levels, network congestion can be quickly identified, and a switch to a backup network can be initiated after congestion is identified to improve accuracy and efficiency, including establishing backup network links in advance to shorten the switching time.
It improves the accuracy and speed of network lag identification, shortens the time users perceive network lag, and enhances the user experience.
Smart Images

Figure CN116419262B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to network service optimization methods and apparatus. Background Technology
[0002] With the rapid development of wireless network technology and terminal device technology, terminal devices have become indispensable electronic devices in people's daily lives, used for things like watching videos, playing games, and browsing other content. To improve user experience, terminal devices evaluate the Quality of Experience (QoE) of the wireless network carrying the current data stream. If the QoE result indicates that the wireless network is experiencing lag, the terminal device will switch to a wireless network with a better QoE result. Therefore, accurately identifying network lag is a crucial step. However, the accuracy of current network service optimization methods in identifying network lag needs improvement. Summary of the Invention
[0003] In view of this, this application provides a network service optimization method to solve the above-mentioned technical problems, and the disclosed technical solution is as follows:
[0004] In a first aspect, this application provides a network service optimization method applied to a terminal device. The method includes: starting to run a first application using a first network, the first application including a first network service; during the operation of the first application, obtaining a first QoE result corresponding to the first network, the first QoE result indicating that the communication quality of the first network does not meet preset conditions; when the first QoE result is a service flow QoE result corresponding to the first network service, switching the first network service from the first network to a second network for operation; when the first QoE result is an application QoE result corresponding to the first application, switching all network services of the first application from the first network to the second network for operation; when the first QoE result is a channel QoE result, establishing a communication link with the second network; wherein the communication quality corresponding to the second network meets preset conditions.
[0005] As can be seen, when the first application runs on the first network, this scheme can obtain a first QoE result indicating that the communication quality of the first network does not meet preset conditions. This first QoE result can include multiple QoE results across different dimensions, such as service flow-level QoE, application-level QoE, and network channel-level QoE. When at least one dimension of QoE is poor, it is determined that the current wireless network is experiencing lag. A handover strategy corresponding to that dimension's QoE result is then executed to switch network services from the current network to the backup network, thereby improving the communication quality of network services and ultimately enhancing the user experience. Furthermore, this scheme identifies network lag when the earliest received QoE result in the current period is poor, thus improving the speed and accuracy of network lag identification and ultimately enhancing network service optimization.
[0006] In one possible implementation of the first aspect, when the first QoE result is the service flow QoE result corresponding to the first network service, after switching the first network service from the first network to the second network, the method further includes: obtaining a second QoE result corresponding to the first network, where the second QoE result indicates that the communication quality of the first network does not meet preset conditions; when the second QoE result is the application QoE result corresponding to the first application, switching all network services running on the first network in the first application to the second network. It can be seen that after switching the first network service from the first network to the second network based on the service flow QoE result, if an application QoE result indicating that the communication quality of the first network does not meet preset conditions is received, then all network services of the application are directly switched from the first network to the second network. This avoids switching networks for each service individually, thereby shortening the application switching time, improving the efficiency of application network service switching, and simultaneously shortening the user's perception time of network lag, thus improving the user experience.
[0007] In another possible implementation of the first aspect, after establishing a communication link with the second network when the first QoE result is a channel QoE result, the method further includes: obtaining a third QoE result corresponding to the first network, where the third QoE result indicates that the communication quality of the first network does not meet preset conditions; when the third QoE result is a service flow QoE result corresponding to the first network service, switching the first network service from the first network to the second network; when the third QoE result is an application QoE result corresponding to the first application, switching all network services of the first application from the first network to the second network. This scheme establishes a communication link with the second network in advance after receiving a channel QoE result indicating that the communication quality of the first network does not meet preset conditions. Upon receiving a service flow QoE result or application QoE result indicating that the communication quality of the first network does not meet preset conditions, it directly switches the corresponding network service from the first network to the already connected second network. This shortens the overall switching process time, improves switching efficiency, reduces the user's perception time of network lag, and improves the user experience.
[0008] In another possible implementation of the first aspect, after switching the first network service from the first network to the second network when the third QoE result is the service flow QoE result corresponding to the first network service, the method further includes: obtaining a fourth QoE result corresponding to the first network, wherein the fourth QoE result indicates that the communication quality of the first network does not meet the preset conditions; and when the fourth QoE result is the application QoE result corresponding to the first application, switching all network services running on the first network in the first application to the second network.
[0009] In another possible implementation of the first aspect, the process of establishing a communication link with the second network includes: requesting the establishment of a communication link with the second network in descending order of priority of the wireless networks in the terminal device, wherein the priority of the second network is lower than that of the first network; and completing the process of establishing a communication link with the second network when a channel QoE result indicating that the communication quality of the second network meets the preset conditions is obtained.
[0010] In another possible implementation of the first aspect, the first network is a WiFi network and the second network is a cellular network. After switching the first network service from the first network to the second network, the method further includes: starting a timer; after the timer reaches a first preset duration, if a channel QoE indicating that the first network meets the preset condition is detected, then the first network service is switched from the second network to the first network. It is evident that after switching the network service from the WiFi network to the cellular network, and detecting an improvement in the communication quality of the first network, the cellular network service is switched back to the WiFi network, avoiding excessive cellular data consumption and further improving the user experience.
[0011] In another possible implementation of the first aspect, if a channel QoE indicating that the first network meets preset conditions is detected, then switching the first network service from the second network to the first network includes: if the corresponding channel QoE of the first network within a second preset time period indicates that the communication quality of the first network meets the preset conditions, then the first network service is switched from the second network to the first network. It is evident that the network service running on the second network is switched back to the first network only after the communication quality of the first network is detected to have improved and remained stable, thus avoiding repeated network switching.
[0012] In another possible implementation of the first aspect, the terminal device has a network acceleration function. After determining that the first QoE result corresponding to the first network is poor, the terminal device with network acceleration enabled switches the first network service to the second network. After obtaining the first QoE result corresponding to the first network as poor, the method further includes: when it is detected that the network acceleration function of the terminal device is not enabled, displaying a prompt message to enable the network acceleration function. Therefore, after obtaining a QoE result indicating that the communication quality of the first network does not meet preset conditions, if it is detected that the user has not enabled the network acceleration function, the user is reminded to enable the network acceleration function. This intelligent reminder to enable the network acceleration function improves the user experience.
[0013] In another possible implementation of the first aspect, the prompt message includes an enable control for activating the network acceleration function; after displaying the prompt message, the method further includes: activating the network acceleration function when an operation on the enable control is detected. It is evident that the prompt message reminding the user to activate the function includes an enable control, enabling one-click activation, simplifying the user's operation to activate the network acceleration function, and further improving the user experience.
[0014] In another possible implementation of the first aspect, the terminal device includes a policy management module, a service flow QoE evaluation module, an application QoE evaluation module, and a channel QoE evaluation module; the process of obtaining a first QoE result corresponding to the first network includes: the policy management module receiving the service flow QoE result corresponding to the service of the first network obtained by the service flow QoE evaluation module; the policy management module receiving the application QoE result corresponding to the first application obtained by the application QoE evaluation module; and the policy management module receiving the channel QoE result corresponding to the network channel of the first network obtained by the channel QoE evaluation module.
[0015] In another possible implementation of the first aspect, the operating system of the terminal device is the Android system, which includes an application framework layer, a class library layer, and a kernel layer; the policy management module, the application QoE evaluation module, and the channel QoE evaluation module are set in the application framework layer; the service flow QoE evaluation module is set in the class library layer; and the kernel layer has a policy execution module, which is used to switch network services from the current network to the backup network.
[0016] Secondly, this application also provides a terminal device, which includes one or more processors, a memory, and a touch screen; the memory is used to store program code; the processor is used to run the program code, enabling the terminal device to implement the network service optimization method as described in any possible implementation of the first aspect.
[0017] Thirdly, this application also provides a computer-readable storage medium having instructions stored thereon, which, when executed on a terminal device, cause the terminal device to perform the network service optimization method as described in any possible implementation of the first aspect.
[0018] Fourthly, this application also provides a computer program product that stores an executable method that, when run on a terminal device, causes the terminal device to implement the network service optimization method as described in any possible implementation of the first aspect.
[0019] It should be understood that the descriptions of technical features, technical solutions, beneficial effects, or similar language in this application do not imply that all features and advantages can be achieved in any single embodiment. Rather, it is understood that the description of a feature or beneficial effect means that a specific technical feature, technical solution, or beneficial effect is included in at least one embodiment. Therefore, the descriptions of technical features, technical solutions, or beneficial effects in this specification do not necessarily refer to the same embodiment. Furthermore, the technical features, technical solutions, and beneficial effects described in this embodiment can be combined in any suitable manner. Those skilled in the art will understand that embodiments can be implemented without one or more specific technical features, technical solutions, or beneficial effects of a particular embodiment. In other embodiments, additional technical features and beneficial effects may be identified in specific embodiments that do not embody all embodiments. Attached Figure Description
[0020] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0021] Figure 1 This is a schematic diagram of a system architecture provided in an embodiment of this application;
[0022] Figure 2 This is a schematic diagram of the structure of a terminal device provided in an embodiment of this application;
[0023] Figure 3 This is a software structure block diagram of a terminal device provided in an embodiment of this application;
[0024] Figure 4 This is a flowchart of a network service acceleration method provided in an embodiment of this application;
[0025] Figure 5 This is a UI illustration of a reminder to enable network acceleration function provided in an embodiment of this application;
[0026] Figure 6 This is a timing diagram of a network service acceleration method provided in an embodiment of this application. Detailed Implementation
[0027] The terms "first," "second," and "third," etc., used in this application specification, claims, and drawings are used to distinguish different objects, not to limit a specific order.
[0028] In the embodiments of this application, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design that is described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design. Specifically, the use of the terms "exemplary" or "for example" is intended to present the relevant concepts in a specific manner.
[0029] Figure 1 A schematic diagram of a system architecture applying the network service optimization method provided in an embodiment of this application is shown. Figure 1 As shown, the system may include terminal devices and servers, which can be interconnected via a network.
[0030] Figure 1 The example uses a smartphone as the terminal device. It should be understood that the terminal device may also include at least one of the following: tablet computers, laptops, desktop computers, and other devices capable of connecting to different networks.
[0031] A network can include various connection types, such as wireless communication links, mobile communication links, and wired communication links. Terminal devices communicate with servers through the network.
[0032] like Figure 1 As shown, when users are using terminal devices to run network services, such as watching videos, browsing text and images, or playing games, if the currently connected wireless network experiences lag, for example, when a user moves from a WiFi coverage area to an area without WiFi coverage, the WiFi signal may gradually weaken, which may cause network services on the terminal device to lag, such as video streaming, downloading, or playing games, thus affecting the user experience.
[0033] In the process of researching this application, the inventors discovered that current network quality assessment methods use the QoE of service flows to evaluate network quality. That is, when a deterioration in the QoE result of a service flow transmitted over a wireless network is detected, it is determined that the current wireless network quality has deteriorated. However, this method can lead to misjudgments. For example, in scenarios where signal quality deteriorates between the base station and terminal equipment, the QoE detection of service flows is slow. In this case, the QoE result of the service flow may not identify any stuttering, leading to the conclusion that there is no network stuttering. Therefore, this approach can misjudge the absence of network stuttering, resulting in low accuracy in network quality assessment.
[0034] To address the issue of misjudgment in current network quality assessment methods, the inventors provide a network service optimization method as described in this application. This method acquires the QoE results of network services running on the current network (i.e., the first network) across multiple dimensions, such as service flow-level QoE results, application-level QoE results, and network channel-level QoE results. Based on the received QoE results, it determines whether the current network is experiencing lag. If the QoE result of at least one dimension deteriorates, it confirms that the current network is experiencing lag, thereby improving the accuracy and speed of identifying network lag. Furthermore, after identifying network lag, the terminal device can determine a backup network (i.e., the second network) whose communication quality meets preset conditions and switch the network service to the backup network to improve the communication quality of the network service, shorten the duration of network lag, and reduce the user's perception time of network lag, thus improving the user experience.
[0035] The terminal device that applies the network service optimization method provided in this application can be a mobile phone, tablet computer, handheld computer, netbook, personal digital assistant (PDA), wearable electronic device, etc. This application does not impose any special restrictions on the specific form of the terminal device that applies the method.
[0036] Figure 2 This is a schematic diagram of the structure of a terminal device provided in an embodiment of this application.
[0037] like Figure 2 As shown, the terminal device may include a processor, a display screen, a memory, an audio module, a mobile communication module, a wireless communication module, an antenna 1, and an antenna 2.
[0038] It is understood that the structure illustrated in this embodiment does not constitute a specific limitation on the terminal device. In other embodiments, the terminal device may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.
[0039] The processor is the nerve center and command center of the terminal device. The controller can generate operation control signals based on the instruction opcode and timing signals to complete the control of instruction fetching and execution.
[0040] Display screens are used to display images, videos, and a range of graphical user interfaces (GUIs).
[0041] Memory can be used to store executable program code for a computer. This executable program code may include an operating system, application programs required for at least one function (such as sound playback, image playback, etc.), etc. The executable program code includes instructions, which the processor executes to enable the terminal device to perform various functional applications and data processing.
[0042] The operating system of a terminal device can adopt a layered architecture, event-driven architecture, microkernel architecture, microservice architecture, or cloud architecture. This application uses the layered architecture Android system as an example to illustrate the software structure of the terminal device.
[0043] Figure 3 This is a software structure block diagram of a terminal device according to an embodiment of this application.
[0044] A layered architecture divides software into several layers, each with a clear role and function. Layers communicate with each other through software interfaces. Taking the Android system as an example, in some implementations, the Android system is divided into four layers, from top to bottom: the application layer (APP), the application framework layer (Framework), the library layer, and the kernel layer (Kernel).
[0045] Figure 3 Only the software layer and the modules contained in the software layer related to the network service optimization method of this application are shown.
[0046] The application layer may include a series of application packages. In some embodiments, the application packages may include apps such as video, telephone, instant messaging, browser, and games.
[0047] The application framework layer provides application programming interfaces (APIs) and a programming framework for applications within the application layer. The application framework layer includes a set of predefined functions.
[0048] In the embodiments of this application, such as Figure 2 As shown, the application framework layer may include: a system environment awareness module, a path management module, a policy management module, a channel QoE assessment module, an application QoE assessment module, and a network connection management module. Among them, the path management module and the policy management module constitute the decision center of the application framework layer.
[0049] The system environment awareness module is used to detect events such as application exit / opening, foreground / background switching, installation / uninstallation, etc.
[0050] The channel QoE evaluation module is used to obtain QoE results that characterize the communication quality of wireless network channels, i.e., channel QoE results.
[0051] The QoE evaluation module is used to obtain QoE results that characterize the communication quality of applications (such as applications running in the foreground), i.e., applied QoE results.
[0052] The network connection management module is used for connecting and managing wireless networks on terminal devices.
[0053] The path management module is used to manage link status, such as link startup / shutdown.
[0054] The policy management module is used to perceive QoE in various dimensions and integrate QoE from various dimensions to identify whether the current wireless network is lagging.
[0055] The library layer includes the functionalities that the Java language needs to call, as well as the core libraries of Android. This layer also includes the Android runtime, which is responsible for the scheduling and management of the Android system. In this embodiment, the library layer includes a decision center (hereinafter referred to as the Native decision center) and a stream QoE evaluation module.
[0056] The Flow QoE evaluation module is used to perceive and identify service flows of a preset type. Furthermore, it can obtain the QoE result that characterizes the communication quality of the service flow, i.e., the service flow QoE result.
[0057] The Native Decision Center is used to generate a switching strategy for switching network services to alternative paths based on the network lag identification results provided by the decision center at the application framework layer and the alternative path information.
[0058] The kernel layer is the layer between hardware and software. In this embodiment, the kernel layer includes a policy execution module and a traffic reporting module.
[0059] The policy execution module executes business flow switching operations based on the switching policies issued by the Native decision center, such as switching network services from the current wireless network to the backup path.
[0060] The traffic reporting module is used to collect the message information required for QoE evaluation of service flows. For example, it identifies service flows of a specified type (such as video streams, battle streams, etc.) and reports them to the flow QoE evaluation module.
[0061] It should be noted that this application uses the Android system as an example for illustration, but its basic principles are also applicable to terminal devices using other operating systems. This application does not limit the operating system used by the terminal device.
[0062] Let's combine the following... Figure 4 The flowchart shown illustrates the evaluation process for QoE results across three dimensions: application, business flow, and channel.
[0063] (1) Evaluation of business flow QoE
[0064] The QoE result of a service flow represents the network communication quality at the level of a single service flow. In other words, it's the communication quality obtained based on the communication data of a specific type of service flow. For example, if network quality deteriorates, the transmission of service flows based on that network will inevitably be affected. Therefore, the communication quality of a service flow reflects, to some extent, the overall network communication quality.
[0065] The kernel-level traffic reporting module captures service data packets transmitted over the network and identifies specific types of service flows, such as download flows, browsing flows, and game flows. Furthermore, it extracts the flow characteristic data of these service flows and reports it to the flow QoE evaluation module.
[0066] The flow QoE assessment module analyzes flow characteristic data to obtain the QoE result of whether the current network communication quality meets the preset conditions, i.e., the service flow QoE result.
[0067] For example, the preset conditions here can be determined based on parameters used to evaluate the current network communication quality, i.e., communication quality assessment parameters, such as single-stream rate, round-trip time, packet loss rate, etc. For instance, preset conditions may include a single-stream rate value greater than a preset single-stream rate value, a round-trip time value less than a preset time threshold, and a packet loss rate value less than a preset packet loss rate threshold. If the parameter values of the above communication quality assessment parameters meet the thresholds corresponding to those parameters, the current network communication quality is determined to meet the preset conditions; otherwise, if at least one of the above communication quality assessment parameters does not meet the corresponding threshold, the current network communication quality is determined not to meet the preset conditions.
[0068] The communication quality assessment parameters and corresponding thresholds at the service flow level described above are merely illustrative examples. Those skilled in the art can add or remove communication quality assessment parameters and set corresponding thresholds according to actual needs. This application does not limit this.
[0069] Different types of service flows require different QoE evaluation methods for their data packets, and the corresponding communication data required for QoE evaluation also differs.
[0070] For example, the QoE of a download stream is determined based on the absolute low rate, where the absolute low rate refers to the sum of the sizes of all downlink packets within a period. These downlink packets can be Transmission Control Protocol (TCP) packets or User Datagram Protocol (UDP) packets.
[0071] For example, the QoE of a browsing stream is determined based on at least one of the following: round-trip time (RTT) of TCP or UDP packets, packet loss rate, and retransmission rate.
[0072] Similar to the QoE of browsing streams, the QoE of battle streams is determined based on at least one of UDP packet round-trip time and packet loss rate.
[0073] In an exemplary embodiment, QoE can be "good" or "bad", where "good" and "bad" can be represented by different preset characters, such as the binary values "1" and "0" representing "good" and "bad" respectively.
[0074] (2) Evaluation using QoE
[0075] QoE (Quality of Exchange) characterizes the communication quality across the entire application. An application's operation requires various types of service data packets to be exchanged with the network, creating a one-to-many relationship between the application and service flows. For example, running an application might concurrently handle video streaming, game streaming, and browsing streaming. If the network quality carrying these service flows deteriorates, the application's service flow transmission will inevitably be affected. Therefore, QoE can reflect the network's communication quality.
[0076] like Figure 4 As shown, the application's business information is obtained. The business data packets of the same application contain the identifier of that application. The data packets containing the identifier of the specified application are captured.
[0077] After obtaining all business data packets from the foreground application, the application QoE evaluation module at the application framework layer is reported. The application QoE evaluation module parses the communication data in these packets to obtain parameters used to evaluate the communication quality of the entire application's interaction with the network, i.e., communication quality evaluation parameters. These parameters include total rate, RTT (round-trip time), and overall packet loss rate.
[0078] The values of communication quality assessment parameters are compared with their corresponding thresholds to obtain application QoE results that characterize whether the communication quality of the wireless network meets preset conditions. For example, if the total rate value is greater than a preset total rate threshold, the RTT delay value is less than a preset RTT threshold, and the overall packet loss rate is less than a preset packet loss rate threshold, then the communication quality of the wireless network is determined to meet the preset conditions; otherwise, if at least one communication quality assessment parameter does not meet its corresponding threshold, then the communication quality of the wireless network is determined not to meet the preset conditions.
[0079] The application-level communication quality assessment parameters and corresponding thresholds described above are merely illustrative examples. Those skilled in the art can add or remove communication quality assessment parameters and set corresponding thresholds according to actual needs. This application does not limit this.
[0080] Furthermore, the application-level QoE obtained by the application QoE assessment module is passed to the policy management module. (3) Network channel-level QoE assessment
[0081] Network channel-level QoE characterizes the network communication quality at the channel level and can be obtained by analyzing the communication quality assessment data of data packets transmitted throughout the network channel.
[0082] By monitoring the entire network interface card (NIC) port (WiFi, cellular), communication quality assessment data for the network channel is collected, such as packet transmission and reception, uplink and downlink rates, and air interface rate. Furthermore, the communication quality assessment data is compared with the corresponding threshold values for each communication quality assessment parameter to evaluate whether the overall network communication quality meets preset conditions, thus obtaining the channel QoE result. If at least one communication quality assessment parameter does not meet the corresponding threshold, it is determined that the wireless network communication quality does not meet the preset conditions.
[0083] The aforementioned network channel-level communication quality assessment parameters and corresponding thresholds are merely illustrative examples. Those skilled in the art can add or remove communication quality assessment parameters and set corresponding thresholds according to actual needs. This application does not impose any limitations on this.
[0084] like Figure 4 As shown, by integrating the QoE results from the above three dimensions, network lag can be identified accurately and quickly.
[0085] The QoE results from various dimensions are fused to identify whether the network is experiencing stuttering. For example, if the QoE result for any dimension is "bad", it indicates that the network is experiencing stuttering.
[0086] Once network congestion is detected, if the user has enabled network acceleration, the current business flow or all business flows of the current application will be switched to an alternative network path to ensure smooth business flow transmission and improve user experience.
[0087] In one exemplary embodiment of this application, the perception range of different perception dimensions is different; therefore, the network switching strategy executed for the lag phenomenon perceived in different dimensions is also different. The switching strategies for the three dimensions of service flow, application, and network channel are as follows:
[0088] (1) Network switching strategies for traffic-level lag
[0089] In scenarios where an application has only one service flow, such as user-side gaming or audio / video calls on terminal devices, when the network carrying this service (i.e., the first network) experiences lag, the system can quickly detect a "bad" QoE result at the service flow level and report it to the policy management module. Based on the "bad" QoE result, the policy management module determines that the first network is experiencing lag and directly switches the service from the first network to the backup network (i.e., the second network).
[0090] In this scenario, QoE of the service flow can quickly and accurately identify network congestion and rapidly switch to a backup network, improving the speed of network congestion identification. Moreover, after identifying network congestion, the service flow is immediately switched to the backup network, shortening the time for users to perceive the congestion and improving the user experience.
[0091] (2) Network switching strategies for application-level lag
[0092] In scenarios where an application includes multiple service flows, such as when a user is using a point-to-point (P2P) application, multiple service flows are transmitted simultaneously. In this scenario, if the received application-level QoE result is "bad," the policy management module determines that the overall communication quality of the current application has deteriorated and directly switches all service flows of the application to the backup network. This avoids switching service flows one by one based on their QoE results, thus shortening the switching time for all flows of the application, improving switching efficiency, and simultaneously reducing the time the user perceives lag, thereby improving the user experience.
[0093] (3) Network switching strategies for network channel-level lag
[0094] For example, when communication between a terminal device and a base station (or router) experiences poor signal quality, the network channel-level QoE typically detects the lag earlier than the application-level QoE and service flow-level QoE, and reports the channel QoE result as "bad" to the policy management module. At this point, other available networks are activated, meaning the terminal device establishes a communication link between itself and other networks and probes the availability of that communication link.
[0095] If other available networks exist, and the received service flow-level QoE result or application-level QoE result is bad, network switching will be performed directly, that is, the service flow will be switched from the current network to the backup network with an established connection.
[0096] If a channel QoE result of "bad" is received first, and a service flow QoE result of "bad" is received first, then that service flow is switched to the backup network. If an application QoE result of "bad" is received first, then all service flows belonging to that application are switched to the backup network.
[0097] This handover strategy activates the backup network in advance when the channel QoE result is bad, instead of waiting until the handover to activate the backup network. Therefore, it shortens the time of the entire handover process, improves handover efficiency, reduces the time users perceive lag, and improves user experience.
[0098] In one possible scenario, if after receiving a "bad" QoE result for a service flow, a "bad" QoE result for the foreground application is also received, the system first responds to the "bad" service QoE event, switching the service flow with the "bad" QoE result from the current network to the backup network. Then, responding to the "bad" application QoE event, all remaining service flows of that foreground application are switched from the current network to the backup network, including the following two cases:
[0099] One scenario is that the foreground application contains only one service flow, and after detecting that the service flow's QoE result is bad, it has switched the service flow to the backup network. That is, the foreground application does not have any service flows that have not been switched to the backup network. In this case, the process ends.
[0100] Another scenario involves a foreground application with multiple service flows. Upon detecting a "bad" QoE result for a particular service flow, the application has already switched that flow from the current network to a backup network. When the receiving application receives a "bad" QoE result, all unswapped services of that application are directly switched from the current network to the backup network.
[0101] In another possible scenario, if after receiving a "bad" QoE result for an application, a "bad" QoE result for a specific service flow within that application is also received, the system first responds to the "bad" event for the application's QoE result by switching all service flows of that application from the current network to the backup network. Then, responding to the "bad" QoE event for a specific service flow will detect that the service flow has been switched to the backup network, thus ending the current process.
[0102] In another possible scenario, if a bad QoE result is received for a service flow or application, followed by a bad QoE result for a channel, the system first responds to the bad QoE event for either the service flow or application, switching the single service flow or all service flows of the foreground application from the current network to the backup network. Then, it responds to the bad QoE event, establishing a communication link with the backup network. Since a communication link with the backup network was already established during the switch, there is no need to establish a backup path again; in this case, the process ends.
[0103] In another exemplary embodiment, upon receiving a "bad" QoE result for any dimension, if it is detected that the user has not enabled network acceleration, such as... Figure 5 As shown, a prompt message reminding the user to enable the network acceleration function can be displayed on the terminal device's screen. Furthermore, this prompt message may include an activation control for the network acceleration function, such as... Figure 5 The "One-Click Enable" option, as shown, allows users to activate the network acceleration function. Furthermore, it can switch the current service flow or all service flows of the current application to a higher-quality backup network.
[0104] In addition, after identifying network lag, the system can further combine the smartphone's location data to create a geofence for the lag. If a user enters or is about to enter the geofence, the system can alert the user in advance that the network communication quality in this area is poor and allow them to switch to another network with better quality.
[0105] The following will combine Figure 6 This application provides a detailed description of the network service optimization method embodiments, such as... Figure 6 As shown, the network service optimization method may include the following steps:
[0106] When a user uses an app on their terminal device that requires internet access to transmit business data, such as watching videos, playing games, or browsing images and text, the system environment awareness module can sense the application's running status, such as whether it is running, switching to the background, switching to the foreground, or closing.
[0107] S110: When the system environment perception module detects that a preset APP is running in the foreground, it enables the network acceleration service and starts communication quality monitoring services in various dimensions.
[0108] The default app is an app that needs to connect to the internet to transmit business data, such as video playback apps, instant messaging apps (such as video calls, WeChat, etc.), browsers, games, etc.
[0109] Once the system environment awareness module detects that such an app has started or switched from the background to the foreground, it initializes the network acceleration service (i.e., enables and starts the network acceleration service). The network acceleration service is the business module that implements the network acceleration function.
[0110] In an exemplary embodiment, the process of enabling network acceleration services may include: the system environment awareness module sending an enable signal to the policy management module; upon receiving the enable signal, the policy management module starts operating and sends an enable signal to the Native decision center, causing the decision center to enter operating mode; the Native decision center then sends the network switching method corresponding to the application to the policy execution module at the kernel layer. Simultaneously, the Native decision center sends an enable signal to the flow QoE evaluation module, which in turn enables the traffic reporting module at the kernel layer, thus initiating the service flow-level communication quality monitoring service.
[0111] Furthermore, the policy management module sends a start signal to the channel QoE evaluation module to initiate the channel communication quality probing service. Additionally, the policy management module sends a start signal to the application QoE evaluation module to initiate the application-level communication quality probing service.
[0112] In one possible implementation, the network switching method may include a service flow type and a switching action. For example, if the service flow type is a video stream, the corresponding switching action may include "Reset" and "IP change". "Reset" means switching to the backup network by resetting the socket, and "IP change" means switching to the backup network by changing the IP address.
[0113] S120, the traffic reporting module senses the service flow of the preset type and reports it to the flow QoE evaluation module.
[0114] Different types of service flows carry information representing the service flow type in their data packets. For example, video stream data packets carry "content type" as MP4. Therefore, the traffic reporting module identifies the type of service flow by parsing the data packets. If a service flow of a preset type is identified, it is reported to the flow QoE evaluation module.
[0115] S130, the flow QoE assessment module analyzes the flow characteristic data of the business flow, obtains the business flow-level QoE, and reports it to the strategy management module and the native decision center.
[0116] The Flow QoE evaluation module parses the data packets of the service flow to obtain the communication characteristic data of the service flow (i.e., flow characteristic data), such as single flow rate, RTT latency, packet loss rate, etc.
[0117] The flow QoE assessment module analyzes flow characteristic data to obtain the corresponding assessment score and QoE level for the service flow, such as "good" or "bad". For example, if the RTT latency of the data packets is greater than or equal to the RTT latency threshold, the service flow's QoE result is determined to be "bad". Or, if the packet loss rate in a certain period is greater than or equal to the packet loss rate threshold, the service flow's QoE result is determined to be "bad". Or, if the single-flow rate of the service flow is less than the rate threshold, the service flow's QoE result is determined to be "bad".
[0118] In one possible implementation, the flow QoE assessment module periodically reports the business flow QoE results to the strategy management module and the native decision center. The reporting period can be determined according to actual needs.
[0119] In other embodiments, the QoE result of the service flow can also be reported when a change in the QoE result is detected, such as when the QoE result of the service flow changes from good to bad, or when the QoE result changes from bad to good.
[0120] In an exemplary embodiment, the reported service flow QoE result may include a QoE level (good, bad), and may also include an application identifier (the identifier of the application to which the service flow belongs). For example, the application identifier can be used to verify whether the application corresponding to the application identifier is a foreground application. If it is, the subsequent network handover process is triggered; if not, the subsequent network handover process is not executed.
[0121] For example, the strategy management module can obtain the business flow QoE result obtained by the flow QoE evaluation module by calling the function "public void handleFiQoeReport()".
[0122] S140, after the policy management module determines the current network congestion based on the business flow QoE result, if it detects that the user has not enabled the network acceleration function, it will remind the user to enable the network acceleration function.
[0123] The policy management module parses the QoE result of the received service flow and obtains the QoE level of the service flow, such as good or bad.
[0124] In an exemplary embodiment, if the policy management module identifies the QoE of the service flow in the current cycle as bad, it determines that the communication quality of the entire network carrying the service flow is bad, i.e., network lag has occurred.
[0125] The overall network communication quality can be represented by network QoE. If at least one of the service flow QoE result, application QoE result, and channel QoE result is bad, then the network QoE result is determined to be bad.
[0126] In another exemplary embodiment, in order to avoid the impact of occasional network fluctuations on network QoE, network lag is determined only when the QoE result of the received service streams is bad for a consecutive preset number of periods.
[0127] Furthermore, after identifying network congestion based on the business flow QoE results, the policy module determines whether the user has enabled the network acceleration function. If the network acceleration function is enabled, it continues to execute S150; otherwise, it prompts the user to enable the network acceleration function.
[0128] S150, after the Native Decision Center identifies the current network's QoE result as bad based on the business flow QoE result, it sends an alternate path connection request to the path management module.
[0129] After receiving the QoE result of the service flow sent by the flow QoE evaluation module, the Native Decision Center determines whether there is a bottleneck in the current network (i.e., the current path) based on the service flow QoE result.
[0130] In one exemplary embodiment, if the Native decision center identifies the QoE result of the service flow in the current cycle as bad, it determines that there is a network lag.
[0131] In another exemplary embodiment, in order to avoid the impact of occasional network fluctuations on the network QoE result, the Native decision center determines the current network QoE result to be bad only if the QoE results of the service flows received for multiple consecutive cycles are all bad.
[0132] After determining that the QoE result of the current network is bad, the Native decision center requests a connection to an available backup network through the path management module.
[0133] S160, the path management module requests the network connection management module to connect to the backup path and requests the channel QoE evaluation module to detect the communication quality of the backup path and send information about the available backup path to the Native decision center.
[0134] The path management module responds to the backup path connection request by sending a backup network connection request to the network connection management module. The network connection management module responds to the backup network connection request, determines the backup network according to the priority of each network from high to low, establishes the link of the backup network (i.e., the backup path), and sends a backup path establishment notification back to the path management module.
[0135] In terminal devices that include dual WiFi network cards (primary WiFi network card and secondary WiFi network card) and dual cellular network cards (primary cellular network card and secondary cellular network card), the priority of each network card from high to low is as follows: primary WiFi → primary cellular → secondary WiFi → secondary cellular.
[0136] If the currently used network interface card (NIC) is the primary Wi-Fi network, after detecting a "bad" QoE result for the service flow, it checks whether the primary cellular network is available. If it is unavailable, it continues to check whether the secondary Wi-Fi network is available. If the secondary Wi-Fi network is also unavailable, it continues to check whether the secondary cellular network is available. If any other NIC is available, it is determined that this NIC is the backup NIC. If all other NICs are unavailable, it is determined that there is currently no available backup network.
[0137] After receiving the backup path establishment completion notification from the network connection management module, the path management module sends a request to the channel QoE evaluation module to probe the communication quality of the backup path. The channel QoE evaluation module responds to this request, obtaining the channel QoE of the backup path and sending it back to the path management module. Furthermore, the path management module sends the information on available backup paths to the Native decision center.
[0138] S170, the Native decision center sends network switching information to the policy execution module. This network switching information includes information about the service flow that needs to be switched, as well as information about the backup path.
[0139] In scenarios where the QoE result of a service flow is bad, the network switching information includes the flow identifier of the service flow to be switched, the application identifier of the application to which the service flow belongs, and information on the current path and the backup path (or target path).
[0140] In an exemplary embodiment, the service flow QoE result sent by the flow QoE evaluation module to the Native decision center includes the flow identifier of the service flow.
[0141] S180, the policy execution module switches the service flow from the current network to the backup path based on the network switching information.
[0142] The policy execution module determines the service flow to be switched based on the flow identifier of the service flow in the network switching information, and switches the service flow from the current path to the backup path based on the target path information.
[0143] For example, in scenarios like audio / video calls or gaming, where there's only one service flow, when network congestion occurs, the service flow-level QoE can quickly detect it and report it to the policy management module. This allows for rapid and accurate identification of network congestion, thus improving the speed of congestion detection. Furthermore, once congestion is detected, the service flow is directly switched to a backup network, shortening the time users experience the congestion and improving the user experience.
[0144] For example, in scenarios where an application has multiple service flows, such as when an application is running concurrently with at least two service flows, such as video streams, browsing streams, and battle streams, meaning at least two service flows are running on the current network, if the QoE result of a certain service flow (e.g., the battle stream) is detected as bad, then the battle stream is switched from the current network to a backup network; at the same time, other service flows with a QoE result of good continue to run on the current network, making network optimization granularity more refined and accurate, and improving the precision of network optimization.
[0145] S190, the application QoE evaluation module obtains the application QoE results and sends them to the policy management module.
[0146] The QoE assessment module monitors the communication quality of applications running in the foreground and reports it to the policy management module.
[0147] In one exemplary embodiment, the policy management module can obtain the application QoE results obtained by the application QoE evaluation module by calling the function "public static class AppQoe".
[0148] Similar to the timing of business flow QoE result reporting, the application QoE evaluation module can periodically report application QoE results, or it can report them when a change in the application QoE result is detected. This application does not limit this.
[0149] The reported application QoE results can include the application identifier and application QoE level (good or bad). Additionally, it can include parameters for evaluating application QoE, such as the QoE score and specific parameters for evaluating QoE, such as RTT latency, so that the policy management module can formulate more granular management policies based on this information.
[0150] S200: If the application QoE result received by the policy management module is bad, it determines that there is network lag and sends the application QoE result to the Native decision center.
[0151] When the policy management module determines that the current network is experiencing lag based on the application QoE result, it sends the application QoE result to the Native decision center.
[0152] In one exemplary embodiment, if the Native decision center receives a bad application QoE result for a given period, it determines that a network lag has occurred.
[0153] In another exemplary embodiment, to avoid the impact of occasional network fluctuations on the application's QoE results, network lag is only determined to have occurred if the Native receives "bad" application QoE results for several consecutive periods. The number of consecutive periods can be set according to actual needs, such as 3 periods or 4 periods.
[0154] The process of requesting the establishment of a backup path in this step is the same as the process of establishing a backup path in S150 and S160 above, and will not be described again here.
[0155] Similar to the scenario where the business flow QoE result is bad, if the application QoE result is identified as bad, it can first determine whether the network acceleration function is enabled. If it is enabled, proceed to S210 and subsequent steps. If it is not enabled, the user can be reminded to enable the network acceleration function.
[0156] S210, after the Native Decision Center identifies a network lag based on the application QoE results, it sends a request for an alternative path connection to the path management module.
[0157] The process by which the Native Decision Center determines whether the current network is lagging based on the application QoE results is the same as the process by which the Policy Management Module determines whether the network is lagging based on the application QoE results, and will not be described again here.
[0158] S220, the path management module requests a connection to an alternative path and requests the channel QoE evaluation module to detect the communication quality of the alternative path, and sends information about available alternative paths to the Native decision center.
[0159] The path management module requests a connection to an alternative path from the network connection management module and requests the channel QoE evaluation module to probe the communication quality (i.e., availability) of the alternative path. After obtaining an available alternative path, it reports the information of the alternative path to the Native decision center. This process is the same as that in S160 and will not be described again here.
[0160] In one scenario, if a business flow QoE result of "bad" is received, and then an application QoE result of "bad" is also received, the Native decision center first responds to the business flow QoE result by switching the business flow with the "bad" QoE result from the current network to the backup network. Then, the Native decision center responds to the application QoE result of "bad" by sending a backup path connection request to the path management module. However, since an available backup path has already been established during the business flow switching process based on the business flow QoE result, in this case, the path management module can directly send the backup path information to the Native decision center.
[0161] S230, the Native decision center sends network switching information to the policy execution module.
[0162] The network switching information may include the application identifier, the current path, and the alternative path.
[0163] S240, the policy execution module switches all business flows of the foreground application from the current path to the backup path based on network switching information.
[0164] The policy execution module determines the application to be switched based on the application identifier in the network switching information, determines the backup network based on the backup path information, and further switches all service flows of the application from the current network to the backup network.
[0165] If the application is a P2P application, which transmits multiple service streams at the same time, all service streams of the application will be switched to the backup path. This avoids the problem of long switching times caused by switching service streams one by one, improves network switching efficiency, and shortens the time that users perceive as lag.
[0166] In one scenario, if a business flow QoE result of "bad" is received, and then an application QoE result of "bad" is also received, then all business flows in the foreground application that have not been switched need to be switched from the current network to the backup network.
[0167] In this step, the policy execution module will switch networks in the same way as in S180, so it will not be described again here.
[0168] S250, if the channel QoE assessment module obtains the channel QoE assessment result of the current network, it reports it to the policy management module.
[0169] The timing for the channel QoE assessment module to report channel QoE assessment results to the policy management module may include: periodically reporting the current network's channel-level QoE results to the policy management module; or, reporting to the policy management module when it detects a change in the current network's channel-level QoE results, such as when the channel-level QoE result changes from good to bad, or vice versa.
[0170] In one exemplary embodiment, the policy management module can obtain the channel QoE result obtained by the channel QoE evaluation module by calling the function "public static classChannelQoe".
[0171] In one exemplary embodiment, the reported channel QoE result may include a channel identifier and a channel QoE rating (good or bad). Additionally, it may include a QoE score and parameters for evaluating QoE, such as uplink RTT, downlink RTT, uplink bandwidth, downlink bandwidth, uplink rate, and downlink rate. This application does not impose any specific limitations on these parameters.
[0172] Furthermore, it should be noted that there is no specific order in the reporting process of QoE results for the three dimensions of business flow QoE, application QoE, and channel QoE. In other words, as long as the QoE evaluation module of any dimension detects that the current time meets the QoE reporting time, it will return the corresponding QoE result to the policy management module, without referring to the reporting status of the QoE evaluation modules of other dimensions.
[0173] S260, if the policy management module determines that the network QoE result is bad based on the channel QoE result, then the channel QoE result is sent to the Native decision center.
[0174] If the policy management module receives a bad QoE result for a channel, it will send the QoE result to the Native decision center.
[0175] In one exemplary embodiment, if the policy management module receives a channel QoE result of bad for one period, it determines that the network QoE result is bad.
[0176] In another exemplary embodiment, the policy management module determines the network's QoE result as bad only after receiving several consecutive cycles (e.g., 3 cycles) of channel QoE results as bad.
[0177] In one exemplary embodiment, after identifying that the channel QoE result is bad, it can first determine whether the user has enabled the network acceleration function. If so, it continues to execute the subsequent steps; otherwise, it reminds the user to enable the network acceleration function.
[0178] S270, after the Native Decision Center identifies the network QoE result as bad based on the channel QoE result, it requests the path management module to establish an alternative path.
[0179] The process by which the Native Decision Center identifies the current network QoE result based on the channel QoE result is the same as the process by which the policy management module in S160 identifies the network QoE result, and will not be described again here.
[0180] S280, the path management module requests the network connection management module to connect to the backup path. After connecting to the backup path, it requests the channel QoE evaluation module to detect the communication quality of the backup path and sends the information of the available backup path to the Native decision center.
[0181] The process of establishing backup paths and detecting their availability in this step is the same as that in S160, and will not be repeated here.
[0182] S290: After the policy management module determines that the network QoE result is bad based on the channel QoE result, if the application-level QoE result is also bad, the QoE result is sent to the Native decision center.
[0183] In one scenario, if the QoE result of the channel is received as bad, and then the application QoE result is also received as bad, the policy management module will send the application QoE to the Native decision center so that the decision center can issue network switching information matching the application QoE result to the policy execution module.
[0184] In another scenario, after the policy management module receives a bad channel QoE result, if the flow QoE evaluation module detects a bad QoE result for the service flow, it directly reports the flow QoE to the Native decision center. After the Native decision center identifies the bad QoE result for the service flow, it sends the network handover information corresponding to the service flow to the policy execution module.
[0185] S300, the Native decision center sends network switching information to the policy execution module.
[0186] In one scenario, after the Native decision center receives the QoE result of the service flow sent by the flow QoE evaluation module, if it identifies the service flow QoE result as bad, it will send network switching information to the policy enforcement module. This network switching information includes the flow identifier of the service flow and information about the backup path.
[0187] In another scenario, the Native decision center receives the application-level QoE result from the policy management module. If the application QoE result is identified as bad, it sends network switching information to the policy enforcement module, including the application identifier and the information of the backup path.
[0188] S310, the policy execution module switches the corresponding service flow to the backup path based on the network switching information sent by the decision center.
[0189] If the network switching information includes the service flow identifier and the backup path information, then the service flow corresponding to the service flow identifier will be switched from the current network to the backup path.
[0190] If the network switching information includes the application identifier and the backup path, then all service flows of that application will be switched from the current network to the backup path.
[0191] In another embodiment of this application, if a service flow is switched from a WiFi network to a cellular network, in order to avoid consuming a large amount of cellular data traffic, the communication quality of the WiFi network can be continuously monitored. If the communication quality of the WiFi network improves, the service flow switched to the cellular network can be switched back to the WiFi network.
[0192] S320, if the current handover policy is from WiFi network to cellular network, the policy management module starts a timer. When the timer expires, it requests to detect the QoE of the WiFi network.
[0193] The timer duration can be set according to actual needs, such as 1 minute.
[0194] After switching from a WiFi network to a cellular network, the policy management module starts a 1-minute timer. After the timer expires, it sends a WiFi communication quality detection request to the channel QoE evaluation module. The channel QoE evaluation module evaluates the QoE of the WiFi network and feeds it back to the policy management module.
[0195] S330: When the policy management module determines that the QoE result of the WiFi network has become good, it sends the WiFi network information to the Native decision center, and the Native decision center sends the network switching information to the policy execution module.
[0196] Once the policy management module identifies that the QoE result of the WiFi network has changed to "good", it sends WiFi network information, such as WiFi network path information and WiFi network QoE result, to the Native decision center.
[0197] S340, the Native decision center sends network switching information to the policy execution module, which then switches the service flow back to the WiFi network based on the network switching information.
[0198] In one exemplary embodiment, the network switching information includes information about the WiFi network path and information about the service flow to be switched, such as the service flow that last switched from the WiFi network to the cellular network, or the service flow that is currently on the cellular network. In this scenario, the policy enforcement module switches the service flow that last switched to the cellular network or the service flow that is currently on the cellular network to the WiFi network.
[0199] In another exemplary embodiment, the network switching information includes information about the WiFi network path and whether the service flow to be switched is all service flows. The policy execution module will switch all service flows in the terminal device to the WiFi network. If a service flow is currently running on the WiFi network, no processing will be done on that service flow, and the next service flow will continue to be processed. If a service flow is currently running on the cellular network, the service flow will be switched from the cellular network to the WiFi network.
[0200] The network optimization method provided in this embodiment can acquire QoE data across three dimensions: service flow, application, and network channel, and fuse these three QoE results to determine whether network congestion has occurred. The perception speed of QoE data varies across different scenarios; therefore, fusing QoE results from multiple dimensions can quickly and accurately identify network congestion. For example, if congestion is not detected using service flow QoE results but is detected based on application-level QoE results, then network congestion is confirmed, thus improving the accuracy of network congestion identification. After identifying network congestion, the corresponding service flow is switched to a backup network to improve service flow smoothness.
[0201] Furthermore, if a bottleneck is identified based on the QoE results of the service flow, the service flow is switched to the backup network. Moreover, in scenarios with only one service flow, the QoE results of the service flow can quickly and accurately identify and report bottlenecks without waiting for application-level or channel-level QoE results; the service flow can be directly switched to the backup network. This fast identification speed and high accuracy improve switching efficiency and shorten the time users experience bottlenecks.
[0202] If a bottleneck is identified based on the application's QoE results, all service flows of that application are switched to the backup network. This is especially important in scenarios where the application is a P2P application. By directly switching the entire application's service flows to the backup network, the need for individual service flow network switching is avoided, thus reducing the switching time for the entire application-level service flows. This improves switching efficiency and shortens the time users experience bottlenecks.
[0203] If a bottleneck is identified based on the channel-level QoE result, a link to an available backup network is established in advance, i.e., an available network interface card (NIC) is activated. Upon receiving a "bad" report in the service flow QoE result or application-level QoE result, the entire service flow or application is directly switched to the connected backup network. In this scenario, by establishing a link between the terminal device and the available backup network in advance, and then directly performing network switching upon receiving a "bad" report in the service flow QoE result or application-level QoE result, the time spent establishing the backup network link is saved. This shortens the network switching process, improves switching efficiency, and reduces the time users experience bottlenecks.
[0204] Furthermore, after switching the service flow from the WiFi network to the cellular network, the solution starts a timer. After the timer expires, it detects whether the QoE result of the WiFi network has improved. If the QoE result of the WiFi network has improved, the service flow switched to the cellular network is switched back to the WiFi network, avoiding the consumption of a large amount of cellular data traffic by the user and saving cellular data traffic resources.
[0205] Through the above description of the embodiments, those skilled in the art will clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. The specific working process of the system, device, and unit described above can be referred to the corresponding process in the foregoing method embodiments, and will not be repeated here.
[0206] In the several embodiments provided in this example, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces, or indirect coupling or communication connection between apparatuses or units, and may be electrical, mechanical, or other forms.
[0207] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0208] Furthermore, in each embodiment of this invention, the functional units can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0209] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this embodiment, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments. The aforementioned storage medium includes various media capable of storing program code, such as flash memory, portable hard disk, read-only memory, random access memory, magnetic disk, or optical disk.
[0210] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any changes or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A network service optimization method, characterized in that, Applied to a terminal device, the method includes: A first application is started using a first network. The first application includes a first network service and a second network service. The service flows of the first network service and the second network service are different. Monitor the network communication quality of the first network at the service flow level, application level, and channel level, respectively; During the operation of the first application, a first QoE result corresponding to the first network is obtained. The first QoE result indicates that the communication quality of the first network does not meet the preset conditions. The first QoE result is the earliest QoE result obtained in the current detection period. The first QoE result is any one of the service flow QoE result corresponding to the first network service, the application QoE result corresponding to the first application, and the channel QoE result. When the first QoE result is the service flow QoE result corresponding to the first network service, a communication link is established with the second network, and the first network service is switched from the first network to the second network for operation. The service flow QoE result indicates that the network communication quality of the first network service does not meet the preset condition. When the first QoE result is the application QoE result corresponding to the first application, a communication link is established with the second network, and all network services of the first application are switched from the first network to the second network. The application QoE result indicates that the network communication quality of the entire application does not meet the preset condition. When the first QoE result is the channel QoE result, a communication link is established with the second network. The channel QoE result indicates that the network communication quality of the entire network channel does not meet the preset condition. After obtaining the channel QoE result, if the service flow QoE result corresponding to the first network service is obtained, the first network service is directly switched from the first network to the second network; After obtaining the channel QoE result, if the application QoE result corresponding to the first application is obtained, the first network service and the second network service are directly switched from the first network to the second network for operation; wherein the communication quality corresponding to the second network meets the preset conditions.
2. The method according to claim 1, characterized in that, When the first QoE result is the QoE result of the service flow corresponding to the first network service, after switching the first network service from the first network to the second network, the process further includes: Obtain a second QoE result corresponding to the first network, wherein the second QoE result indicates that the communication quality of the first network does not meet the preset conditions; When the second QoE result is the application QoE result corresponding to the first application, the second network service is switched to run on the second network.
3. The method according to claim 1, characterized in that, After obtaining the channel QoE result, if the service flow QoE result corresponding to the first network service is obtained, and the first network service is directly switched from the first network to the second network, the method further includes: Obtain a third QoE result corresponding to the first network, wherein the third QoE result indicates that the communication quality of the first network does not meet the preset conditions; When the third QoE result is the application QoE result corresponding to the first application, the second network service is directly switched to the second network for operation.
4. The method according to any one of claims 1 to 3, characterized in that, The process of establishing a communication link with the second network includes: According to the order of priority of the wireless network in the terminal device from high to low, a request is made to establish a communication link with the second network, wherein the priority of the second network is lower than that of the first network; When a channel QoE result indicating that the communication quality of the second network meets the preset conditions is obtained, the process of establishing a communication link with the second network is completed.
5. The method according to claim 1, characterized in that, The first network is a WiFi network, and the second network is a cellular network; After switching the first network service from the first network to the second network, the method further includes: Start timing; After the timing period reaches the first preset duration, if a channel QoE indicating that the first network meets the preset conditions is detected, the first network service is switched from the second network to the first network.
6. The method according to claim 5, characterized in that, If a channel QoE indicating that the first network meets the preset conditions is detected, the first network service is switched from the second network to the first network, including: If the QoE of the corresponding channel in the first network within the second preset time period indicates that the communication quality of the first network meets the preset conditions, then the service of the first network will be switched from the second network to the first network.
7. The method according to any one of claims 1 to 3, characterized in that, The terminal device has a network acceleration function. After determining that the first QoE result corresponding to the first network is poor, the terminal device with the network acceleration function enabled switches the first network service to the second network. After obtaining the difference between the first QoE result and the first network, the method further includes: When it is detected that the network acceleration function of the terminal device is not enabled, a prompt message to enable the network acceleration function will be displayed.
8. The method according to claim 7, characterized in that, The prompt message includes an enable control for activating the network acceleration function; after displaying the prompt message for activating the network acceleration function, the method further includes: When an operation targeting the control is detected, the network acceleration function is enabled.
9. The method according to claim 1, characterized in that, The terminal device includes a policy management module, a service flow QoE evaluation module, an application QoE evaluation module, and a channel QoE evaluation module; The process of obtaining the first QoE result corresponding to the first network includes: The policy management module receives the service flow QoE result corresponding to the first network service obtained by the service flow QoE evaluation module. The policy management module receives the application QoE result corresponding to the first application obtained by the application QoE evaluation module. The policy management module receives the channel QoE result corresponding to the network channel of the first network obtained by the channel QoE evaluation module.
10. The method according to claim 9, characterized in that, The operating system of the terminal device is the Android system, which includes an application framework layer, a class library layer, and a kernel layer. The strategy management module, the application QoE evaluation module, and the channel QoE evaluation module are located in the application framework layer; The business flow QoE evaluation module is set in the class library layer; The kernel layer is equipped with a policy execution module, which is used to switch network services from the first network to the second network.
11. A terminal device, characterized in that, The terminal device includes: one or more processors, a memory, and a touch screen; the memory is used to store program code; the processor is used to run the program code, so that the terminal device implements the network service optimization method as described in any one of claims 1 to 10.
12. A computer-readable storage medium, characterized in that, It stores instructions that, when executed on a terminal device, cause the terminal device to perform the network service optimization method as described in any one of claims 1 to 10.
13. A computer program product, characterized in that, It stores an execution method that, when the computer program product is run on a terminal device, causes the terminal device to implement the network service optimization method as described in any one of claims 1 to 10.
Citation Information
Patent Citations
Network switching system
CN108419279A
Channel switching method, electronic equipment and storage medium
CN113795040A
Network switching method and apparatus
WO2022127605A1