A network acceleration method and apparatus
By collecting QoE measurement results and adjusting network acceleration strategies according to business scenarios, the problem of policy conflicts between the operating system and third-party applications was resolved, thereby improving user experience and network quality.
Patent Information
- Application Number
- CN202211267499.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-17
- Publication Date
- 2026-01-06
- Estimated Expiration
- 2042-10-17
AI Technical Summary
Network acceleration policies of the operating system and third-party applications may conflict, causing network acceleration policies to fail or malfunction, thus affecting user experience.
By periodically collecting application data stream Quality of Experience (QoE) measurement results through electronic devices, network acceleration processing is performed according to business scenarios, including caching data, adjusting frame rate and resolution, and switching to a better network channel when necessary.
This avoids policy conflicts, improves user experience, and ensures the effectiveness and consistency of network acceleration strategies.
Smart Images

Figure CN117915356B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of terminals, and more particularly to a network acceleration method and apparatus. Background Technology
[0002] With the development of electronic devices and the increasing demands of users, more and more application software is installed and running on electronic devices. Many applications need to communicate with corresponding servers via a network to perform their functions. If the network quality used by the application to communicate with the server is poor, lag or stuttering will occur, affecting the user experience.
[0003] To address these issues, the operating system of electronic devices can configure corresponding network acceleration strategies. For example, the operating system's network acceleration strategy could assess the quality of the currently used network based on its signal strength, switching to a higher-quality network if the current network quality is poor. Some third-party applications can also configure corresponding network acceleration strategies. For instance, third-party applications can use multiple network channels for redundant packet transmission to reduce lag.
[0004] However, the network acceleration strategies implemented by the operating system and the network acceleration strategies set by some third-party applications may conflict, causing the network acceleration strategies of both the operating system and the third-party applications to fail or malfunction. Summary of the Invention
[0005] This application provides a network acceleration method and apparatus that can reduce network lag issues, avoid conflicts between the network acceleration strategies implemented by the operating system and the network acceleration strategies set by third-party applications, and improve user experience.
[0006] In a first aspect, embodiments of this application provide a network acceleration method applied to an electronic device, comprising: the electronic device running a first application; the electronic device periodically collecting the Quality of Experience (QoE) measurement results of the data stream of the first application, the data stream of the first application being transmitted through a first network channel; when the QoE measurement results of the data stream of the first application indicate that the data stream of the first application is experiencing stuttering, and the current business scenario of the first application is a first scenario, the first application of the electronic device performs network acceleration processing, the network acceleration processing including at least one of pre-caching the running data of the first application, reducing the frame rate of the first application, reducing the bit rate of the first application, and reducing the resolution of the first application.
[0007] Based on the network acceleration method provided in this application embodiment, the foreground application (first application) can obtain QoE measurement results and perform network acceleration processing according to the current business scenario (first scenario) and the QoE measurement results. The QoE measurement results can be obtained by the operating system of the electronic device. This fully leverages the advantages of the electronic device's operating system and application, enabling them to collaborate on network acceleration. For example, if the application is a video application and the first scenario is a video playback scenario, the video application can adjust the video resolution and caching strategy based on the QoE measurement results during video playback. This avoids conflicts between the network acceleration strategies implemented by the operating system and those set by third-party applications, preventing the network acceleration strategies of both the operating system and the third-party applications from becoming ineffective or abnormal, thus improving the user's internet browsing experience.
[0008] In one possible implementation, the method further includes: when the QoE measurement result of the first application's data stream indicates that the first application's data stream is experiencing lag, and the current business scenario of the first application is the second scenario, switching the first application's data stream to the second network channel; wherein, the network quality of the second network channel is better than that of the first network channel, and the second scenario is different from the first scenario. That is, when the current business scenario of the foreground application (first application) is the second scenario, a network channel with better quality than the currently used network channel can be selected, and the application's data stream can be switched to the better network channel to avoid network lag and improve the user's internet experience.
[0009] In one possible implementation, the method further includes: a first scenario and a second scenario determined by a first application. The first scenario is a business scenario determined by the first application that does not require system acceleration, and the second scenario is a business scenario determined by the first application that requires system acceleration. System acceleration refers to the electronic device's operating system setting network acceleration strategies based on different application categories and / or different business scenarios, and executing these strategies when preset conditions are met. When the current business scenario requires system acceleration, the electronic device's operating system can execute a preset network acceleration strategy under preset conditions (e.g., switching the data stream corresponding to the application's current business scenario from the currently used network channel to a network channel with better network quality). When the current business scenario does not require system acceleration, the electronic device's operating system can send QoE measurement results to the application when preset conditions are met (e.g., network congestion), so that the application can perform network acceleration based on the QoE measurement results.
[0010] In one possible implementation, the QoE measurement results are determined based on the communication parameters and statistics of the data stream of the first application. The communication parameters include at least one of the following: protocol type, source Internet Protocol IP address and port / destination IP address and port, and message characteristics. The statistics include at least one of the following: round-trip time (RTT), packet loss rate, number of bytes sent and received, and rate. The data stream statistics may also include other information, such as the traffic distribution information of the data stream over time, and the message delay information of the data stream.
[0011] In one possible implementation, the method further includes: when the QoE measurement result of the first application's data stream indicates that the first application's data stream is no longer lagging, and the current business scenario of the first application is the first scenario, the electronic device stops caching the first application's runtime data, restores the first application's frame rate, restores the first application's bitrate, and restores the first application's resolution at least one of the following:
[0012] In one possible implementation, the electronic device includes a sensing module, and the method further includes: the sensing module sensing that a first application has started, and querying whether the first application supports network acceleration; wherein the sensing module includes an application configuration library, which stores information on whether multiple applications support network acceleration, and the multiple applications include the first application.
[0013] In one possible implementation, the multiple applications in the application configuration library are those that require network acceleration, determined based on user traffic consumption and user preferences for application usage; or the multiple applications in the application configuration library are those that require network acceleration, determined based on user manual settings.
[0014] In one possible implementation, the electronic device further includes a decision module, and the method further includes: if it is determined that the first application supports network acceleration, the perception module sends a network quality assessment request to the decision module, the network quality assessment request including the application identifier of the first application, the configuration information of the application, and the criteria for network quality assessment, the configuration information of the application including the header features of the data packets when the first application transmits data streams.
[0015] In one possible implementation, the kernel layer of the electronic device further includes a traffic reporting module. The method further includes: a decision module registering a message monitoring hook with the traffic reporting module. The message monitoring hook is used to periodically probe the path of the first network channel used by the first application, and to monitor the communication parameters and statistical information of the data stream transmitted by the first network channel used by the first application. The communication parameters include at least one of the following: protocol type, source Internet Protocol IP address and port / destination IP address and port, and message characteristics. The statistical information includes at least one of the following: round-trip time (RTT), packet loss rate, number of bytes sent and received, and rate.
[0016] In one possible implementation, the electronic device further includes a traffic management module, and the method further includes: the traffic reporting module periodically reporting communication parameters and statistical information of the data stream of the first application to the traffic management module; the traffic management module periodically performing network quality assessment based on the communication parameters and statistical information to obtain the current quality of experience (QoE) measurement result; and the traffic management module periodically reporting the current QoE measurement result to the decision module.
[0017] In one possible implementation, the electronic device further includes a network acceleration service module, and the method further includes: a first application sending a registration request to the network acceleration service module, the registration request being used to request the acquisition of network QoE measurement results; and the network acceleration service module sending a registration request to the sensing module.
[0018] In one possible implementation, the method further includes: after receiving the registration request, if the perception module determines that the first application supports network acceleration, the first application is running in the foreground, and the first application has network acceleration permissions, it records the application information of the first application, sends the registration result to the perception module, and the registration result is successful; the perception module sends the registration result to the network acceleration service module; and the network acceleration service module sends the registration result to the first application.
[0019] In one possible implementation, the method further includes: a perception module querying the business scenarios that do not require system acceleration corresponding to the first application; the perception module storing multiple business scenarios that do not require system acceleration corresponding to applications that support network acceleration; the perception module notifying the decision module of the business scenarios that do not require system acceleration corresponding to the application; and the decision module recording the business scenarios that do not require system acceleration corresponding to the first application.
[0020] In one possible implementation, if the first application is a game application, and the game application includes a battle scene, the method further includes: the first application entering the battle scene and notifying the network acceleration service module that the first application has entered the battle scene; the network acceleration service module notifying the perception module that the first application has entered the battle scene; the perception module notifying the decision module that the first application has entered the battle scene; the decision module determining that the battle scene belongs to a business scenario that does not require system acceleration, and the decision module sending the QoE measurement result to the perception module; the perception module notifying the network acceleration service module of the QoE measurement result; the network acceleration service module notifying the first application of the QoE measurement result; and the first application performing network acceleration processing based on the QoE measurement result.
[0021] In one possible implementation, the method further includes: a first application exiting the battle scenario and notifying the network acceleration service module of its exit; the network acceleration service module notifying the perception module of the first application exiting the battle scenario; the perception module notifying the decision module of the first application exiting the battle scenario; after determining that the first application has exited the battle scenario, the decision module sends a better path request to the path management module, the better path request being used to request a network channel with better quality than the current network channel; the path management module activates and probes the network quality of each network channel, determines that there is a network channel with better quality than the current network channel, and notifies the decision module of the better network channel; the decision module instructs the policy execution module to switch the data stream of the first application to the better network channel; the policy execution module switches the data stream of the first application to the better network channel.
[0022] In one possible implementation, when the first application switches to the background or closes, the method further includes: the first application sending a deregistration request to the network acceleration service module, the deregistration request being used to request the cessation of QoE measurement for the first application; the network acceleration service module sending a deregistration request to the perception module; the perception module notifying the decision module to stop the QoE measurement of the first application; the decision module notifying the policy execution module to stop the QoE measurement of the first application; and the policy execution module stopping the QoE measurement of the first application.
[0023] Secondly, this application provides a computer-readable storage medium including computer instructions. When the computer instructions are executed on an electronic device (such as a mobile phone), they cause the electronic device to perform the methods described in the first aspect and any of its possible design embodiments.
[0024] Thirdly, this application provides a computer program product that, when run on a computer, causes the computer to perform the method as described in the first aspect and any possible design of the method.
[0025] Fourthly, embodiments of this application provide a network acceleration device, including a processor and a memory coupled together. The memory stores program instructions, which, when executed by the processor, cause the device to implement the method described in the first aspect and any possible design of the above. The device may be an electronic device; or it may be a component of an electronic device, such as a chip.
[0026] Fifthly, embodiments of this application provide a network acceleration device, which can be divided into different logical units or modules according to function, each unit or module performing different functions, so that the device performs the method described in the first aspect and any of its possible design methods.
[0027] Sixthly, this application provides a chip system including one or more interface circuits and one or more processors. The interface circuits and processors are interconnected via lines.
[0028] The aforementioned chip system can be applied to electronic devices that include a communication module and a memory. The interface circuit is used to receive signals from the electronic device's memory and send the received signals to the processor, the signals including computer instructions stored in the memory. When the processor executes the computer instructions, the electronic device can perform the methods described in the first aspect and any of its possible design embodiments.
[0029] It is understood that the beneficial effects achieved by the computer-readable storage medium described in the second aspect above, the computer program product described in the third aspect, the device described in the fourth and fifth aspects, and the chip system described in the sixth aspect can be referred to as the beneficial effects in the first aspect and any of its possible design embodiments, which will not be repeated here. Attached Figure Description
[0030] Figure 1A A schematic diagram of a network channel provided in an embodiment of this application;
[0031] Figure 1B A schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application;
[0032] Figure 2 A schematic diagram of the software architecture of an electronic device provided in an embodiment of this application;
[0033] Figure 3 A schematic diagram provided for an embodiment of this application;
[0034] Figure 4 This is yet another display schematic diagram provided for an embodiment of this application;
[0035] Figure 5A schematic diagram of module interaction provided for an embodiment of this application;
[0036] Figure 6 This is yet another display schematic diagram provided for an embodiment of this application;
[0037] Figure 7 A schematic diagram illustrating message monitoring as provided in an embodiment of this application;
[0038] Figure 8 A schematic diagram illustrating the rate characteristics of a data stream in a short video application, provided as an embodiment of this application;
[0039] Figure 9 A schematic diagram illustrating the rate characteristics of a data stream in another short video application provided in this application embodiment;
[0040] Figure 10 This is another display schematic diagram provided for an embodiment of this application. Detailed Implementation
[0041] The technical solutions of the embodiments of this application will now be described with reference to the accompanying drawings. In the description of this application, unless otherwise stated, "at least one" refers to one or more, and "more than one" refers to two or more. Furthermore, to facilitate a clear description of the technical solutions of the embodiments of this application, the terms "first," "second," etc., are used in the embodiments of this application to distinguish identical or similar items with substantially the same function and effect. Those skilled in the art will understand that the terms "first," "second," etc., do not limit the quantity or execution order, and that "first," "second," etc., do not necessarily imply differences.
[0042] To ensure clarity and conciseness in the description of the following embodiments, a brief introduction to the relevant concepts or technologies is given first:
[0043] Quality of experience (QoE): The subjective perception of end users regarding the performance of services provided by a mobile network. QoE can be represented in a near-quantitative way to reflect end users' experience and perception of services and the network, and reflects the gap between the current quality of services and the network and user expectations.
[0044] From the perspective of mobile communication networks, the best solution to achieve better QoE is to provide excellent end-to-end Quality of Service (QoS). Broadly defined, QoS refers to the comprehensive effect of service performance that determines user satisfaction, encompassing a wide range of aspects across multiple levels. Narrowly defined, QoS refers to the performance indicators of underlying packet data transmission, such as latency, jitter, bandwidth, and bit errors. The QoS mechanism is primarily responsible for service management and differentiation from the network's perspective; network entities handle different services based on varying quality requirements. However, the end-user's experience with QoS is a broader and more subjective issue, falling within the scope defined by QoE.
[0045] Hook: A hook is essentially a message-processing program segment that is attached to the system via a system call. Whenever a specific message is sent, the hook program captures the message before it reaches the destination window; that is, the hook function gains control first. At this point, the hook function can process (modify) the message, continue passing the message without processing it, or forcibly terminate the message transmission.
[0046] Data Stream: In this embodiment, the data sequence transmitted between two electronic devices is referred to as a data stream. A data stream can also be called a service stream. In practical applications, based on service scenarios using data streams, a data stream can be a video stream, audio stream, download stream, session stream, etc.
[0047] Network channel: A channel through which data is exchanged between two electronic devices. For ease of description, a network channel established between an electronic device and other electronic devices via a wireless network card can be referred to as a Wi-Fi network; a network channel established between an electronic device and other electronic devices via a data network card can be referred to as a cellular network.
[0048] Taking a mobile phone as an example, see [link / reference]. Figure 1A A user plays a game using application A (a game application) on their phone. Application A establishes a network connection with its server A via the phone's data network card. Data stream A generated between application A and server A (e.g., data stream generated during game battles) is transmitted via the Wi-Fi network between the phone's wireless network card and the wireless router. Similarly, a user chats using application B (a chat application) on their phone. Application B establishes a network connection with its server B via the phone's wireless network card. Data stream B generated between application B and server B (e.g., data stream generated during chats) is transmitted via the Wi-Fi network between the phone's wireless network card and the wireless router.
[0049] If the network quality used by the application software to communicate with the corresponding server is poor during the user's use of the application software, lag will occur. For example, the user will experience frequent lag when watching videos or listening to music, which will affect the user's experience.
[0050] To address these issues, the operating system of electronic devices can configure corresponding network acceleration strategies. For example, the operating system's network acceleration strategy could assess the quality of the currently used network based on its signal strength, switching to a higher-quality network if the current network quality is poor. Some third-party applications can also configure corresponding network acceleration strategies. For instance, third-party applications can use multiple network channels for redundant packet transmission to reduce lag.
[0051] However, the network acceleration strategies implemented by the operating system and the network acceleration strategies set by some third-party applications can conflict, causing the network acceleration strategies of both the operating system and the third-party applications to fail or malfunction.
[0052] This application provides a network acceleration method. The operating system can obtain the current business scenario from the foreground application (i.e., the operating system obtains the current business scenario of the foreground application) and determine a network acceleration strategy based on the current business scenario. For example, when the current business scenario is a first scenario, the operating system can send QoE measurement results to the foreground application so that the application can perform network acceleration based on the QoE measurement results (for example, if the application is a video application, the video application can adjust the video resolution and caching strategy based on the QoE measurement results, etc.). When the current business scenario of the application is a second scenario, system acceleration can be performed. For example, the operating system can select a network channel with better quality than the currently used network channel and switch the application's data stream to the better network channel. The first scenario is different from the second scenario. This fully leverages the advantages of the electronic device's operating system and applications, enabling the operating system and applications to work together to accelerate the network. This avoids conflicts between the network acceleration strategies implemented by the operating system and the network acceleration strategies set by third-party applications, which could lead to the failure or abnormality of the network acceleration strategies of both the operating system and the third-party applications, thus improving the user's internet experience.
[0053] The network acceleration method provided in this application can be applied to electronic devices. Figure 1B This is a schematic diagram of the structure of an electronic device 100 provided in an embodiment of this application.
[0054] like Figure 1BAs shown, the electronic device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, a headphone jack 170D, a sensor module 180, buttons 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195, etc.
[0055] The sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, a barometric pressure sensor 180C, a magnetic sensor 180D, an accelerometer sensor 180E, a distance sensor 180F, a proximity sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.
[0056] It is understood that the structure illustrated in this embodiment does not constitute a specific limitation on the electronic device 100. In other embodiments, the electronic device 100 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.
[0057] Processor 110 may include one or more processing units, such as: application processor (AP), modem processor, graphics processing unit (GPU), image signal processor (ISP), controller, memory, video codec, digital signal processor (DSP), baseband processor, and / or neural network processing unit (NPU), etc. Different processing units may be independent devices or integrated into one or more processors.
[0058] The controller can be the nerve center and command center of the electronic device 100. The controller can generate operation control signals according to the instruction opcode and timing signals to complete the control of fetching and executing instructions.
[0059] The processor 110 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 110 is a cache memory. This memory can store instructions or data that the processor 110 has just used or that are used repeatedly. If the processor 110 needs to use the instruction or data again, it can retrieve it directly from the memory. This avoids repeated accesses, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.
[0060] In some embodiments, the processor 110 may include one or more interfaces. Interfaces may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface, etc.
[0061] It is understood that the interface connection relationships between the modules illustrated in this embodiment are merely illustrative and do not constitute a structural limitation on the electronic device 100. In other embodiments, the electronic device 100 may also employ different interface connection methods or combinations of multiple interface connection methods as described in the above embodiments.
[0062] The charging management module 140 receives charging input from the charger. While charging the battery 142, the charging management module 140 can also supply power to the electronic device through the power management module 141.
[0063] The power management module 141 connects the battery 142, the charging management module 140, and the processor 110. The power management module 141 receives input from the battery 142 and / or the charging management module 140 to power the processor 110, internal memory 121, external memory, display screen 194, camera 193, and wireless communication module 160, etc. In some other embodiments, the power management module 141 may also be located within the processor 110. In other embodiments, the power management module 141 and the charging management module 140 may be located in the same device.
[0064] The wireless communication function of electronic device 100 can be realized through antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, modem processor and baseband processor, etc.
[0065] Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in electronic device 100 can be used to cover one or more communication frequency bands. Different antennas can also be reused to improve antenna utilization. For example, antenna 1 can be reused as a diversity antenna for a wireless local area network.
[0066] The mobile communication module 150 can provide solutions for wireless communication, including 2G / 3G / 4G / 5G, applied to the electronic device 100. The mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (LNA), etc. The mobile communication module 150 can receive electromagnetic waves via antenna 1, and perform filtering, amplification, and other processing on the received electromagnetic waves before transmitting them to a modem processor for demodulation. The mobile communication module 150 can also amplify the signal modulated by the modem processor and convert it into electromagnetic waves for radiation via antenna 1.
[0067] The modem processor may include a modulator and a demodulator. The modulator modulates the low-frequency baseband signal to be transmitted into a mid-to-high frequency signal. The demodulator demodulates the received electromagnetic wave signal into a low-frequency baseband signal. The demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing. After processing by the baseband processor, the low-frequency baseband signal is transmitted to the application processor. The application processor outputs sound signals through audio devices (not limited to speaker 170A, receiver 170B, etc.) or displays images or videos through the display screen 194.
[0068] The wireless communication module 160 can provide solutions for wireless communication applications on the electronic device 100, including wireless local area networks (WLANs) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), and infrared (IR) technologies. The wireless communication module 160 can be one or more devices integrating at least one communication processing module. The wireless communication module 160 receives electromagnetic waves via antenna 2, performs frequency modulation and filtering of the electromagnetic wave signals, and sends the processed signal to processor 110. The wireless communication module 160 can also receive signals to be transmitted from processor 110, perform frequency modulation and amplification, and convert them into electromagnetic waves for radiation via antenna 2.
[0069] In some embodiments, antenna 1 of electronic device 100 is coupled to mobile communication module 150, and antenna 2 is coupled to wireless communication module 160, enabling electronic device 100 to communicate with networks and other devices via wireless communication technology. The wireless communication technology may include Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Time-Division Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), BT, GNSS, WLAN, NFC, FM, and / or IR technologies, etc. The GNSS may include the Global Positioning System (GPS), the Global Navigation Satellite System (GLONASS), the BeiDou Navigation Satellite System (BDS), the Quasi-Zenith Satellite System (QZSS), and / or satellite-based augmentation systems (SBAS).
[0070] Electronic device 100 implements display functions through a GPU, a display screen 194, and an application processor. The GPU is a microprocessor for image processing, connected to the display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations and for graphics rendering. Processor 110 may include one or more GPUs, which execute program instructions to generate or modify display information.
[0071] Display screen 194 is used to display images, videos, etc. Display screen 194 includes a display panel. The display panel can be a liquid crystal display (LCD), a light-emitting diode (LED), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), a MiniLED, a MicroLED, a Micro-OLED, a quantum dot light-emitting diode (QLED), etc.
[0072] Electronic device 100 can perform shooting functions through an ISP, camera 193, video codec, GPU, display screen 194, and application processor. The ISP processes data fed back from the camera 193. The camera 193 captures still images or video. The digital signal processor processes digital signals, including digital image signals and other digital signals. The video codec compresses or decompresses digital video. Electronic device 100 can support one or more video codecs. Thus, electronic device 100 can play or record video in various encoding formats, such as Moving Picture Experts Group (MPEG) 1, MPEG 2, MPEG 3, MPEG 4, etc.
[0073] Camera 193 can include 1 to N cameras. For example, an electronic device can include 2 front-facing cameras and 4 rear-facing cameras.
[0074] An NPU (Neural Processing Unit) is a computational processor for neural networks (NNs). By borrowing the structure of biological neural networks, such as the transmission patterns between neurons in the human brain, it can rapidly process input information and continuously learn on its own. NPUs enable intelligent cognitive applications in electronic devices, such as image recognition, facial recognition, speech recognition, and text understanding.
[0075] The external memory interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the electronic device 100. The external memory card communicates with the processor 110 through the external memory interface 120 to achieve data storage functionality. For example, music, video, and other files can be saved on the external memory card. The internal memory 121 can be used to store computer executable program code, which includes instructions. The processor 110 executes various functional applications and data processing of the electronic device 100 by running the instructions stored in the internal memory 121. For example, in this embodiment, the processor 110 can execute instructions stored in the internal memory 121, which may include a program storage area and a data storage area. The program storage area may store the operating system, at least one application program required for a function (such as sound playback function, image playback function, etc.), etc. The data storage area may store data created during the use of the electronic device 100 (such as audio data, phone book, etc.). In addition, the internal memory 121 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, universal flash storage (UFS), etc.
[0076] Electronic device 100 can implement audio functions, such as music playback and recording, through audio module 170, speaker 170A, receiver 170B, microphone 170C, headphone jack 170D, and application processor.
[0077] Audio module 170 is used to convert digital audio information into analog audio signal output, and also to convert analog audio input into digital audio signal. Audio module 170 can also be used for audio signal encoding and decoding. Speaker 170A, also called a "loudspeaker," is used to convert audio electrical signals into sound signals. Receiver 170B, also called a "handset," is used to convert audio electrical signals into sound signals. Microphone 170C, also called a "microphone" or "microphone unit," is used to convert sound signals into electrical signals. Headphone jack 170D is used to connect wired headphones.
[0078] Buttons 190 include a power button, volume buttons, etc. Buttons 190 can be mechanical buttons or touch buttons. Electronic device 100 can receive button input and generate key signal inputs related to user settings and function control. Motor 191 can generate vibration alerts. Motor 191 can be used for incoming call vibration alerts or for touch vibration feedback. Indicator 192 can be an indicator light, used to indicate charging status, battery level changes, messages, missed calls, notifications, etc. SIM card interface 195 is used to connect a SIM card. The SIM card can be inserted into or removed from the SIM card interface 195 to achieve contact and separation with electronic device 100. Electronic device 100 can support one or N SIM card interfaces, where N is a positive integer greater than 1. SIM card interface 195 can support Nano SIM cards, Micro SIM cards, SIM cards, etc.
[0079] The methods described in the following embodiments can all be implemented in the electronic device 100 having the above-described hardware structure.
[0080] The software system of the aforementioned electronic device 100 can adopt a layered architecture, event-driven architecture, microkernel architecture, microservice architecture, or cloud architecture. This embodiment of the invention uses the layered architecture of the Android system as an example to exemplify the software structure of the electronic device 100. The layered architecture divides the software into several layers, each with a clear role and division of labor. Layers communicate with each other through interfaces.
[0081] In some embodiments, the technical architecture of the electronic device 100 includes: an application layer, a service layer, a policy layer, and a kernel layer. It should be understood that... Figure 2 Only some layers and components related to the embodiments of this application are shown. In actual applications, more may be included. Figure 2 The hierarchy and components are not shown in the diagram. Of course, it may also include only... Figure 2 Some of the components shown.
[0082] The application layer contains various applications, such as video applications and game applications.
[0083] The service layer contains a network acceleration service module, a perception module, and a path management module.
[0084] The network acceleration service module serves as the channel for interaction between the application and the perception module. Based on the Binder mechanism, it can forward messages (e.g., registration requests) between the application and the perception module. Binder is an inter-process communication mechanism that enables communication between different processes.
[0085] The perception module is used to detect various events in upper-layer applications. For example, it can detect when an application is opened or closed, when an application is switched to the foreground / background, and when an application is installed or uninstalled. When the perception module detects that an application is open or switched to the foreground, it can notify the lower-layer module (decision module) to enable network acceleration and data stream monitoring.
[0086] The path management module can be used to detect the status (on or off, etc.) of Wi-Fi and cellular networks supported by electronic devices. For example, if an electronic device has a 2.4GHz wireless network card 1 and a 5.0GHz wireless network card 2, the path management module can detect whether the 2.4GHz wireless network is on or off; it can also detect whether the 5.0GHz wireless network is on or off. Similarly, if the electronic device has a data service network card 1 from operator A and a data service network card 2 from operator B, the path management module can detect whether the data service from operator A is on or off; it can also detect whether the data service from operator B is on or off.
[0087] The path management module is also used to evaluate the quality of network channels. For example, the path management module can evaluate the quality of Wi-Fi networks in the 2.4 GHz band as well as the quality of Wi-Fi networks in the 5.0 GHz band. It can also evaluate the quality of cellular networks belonging to operator A as well as operator B.
[0088] The path management module can also store the paths of multiple network channels. For example, it can store the paths of the network channels currently used by the application (e.g., the primary network channel) and backup network channels. The path management module can also be used to update the selection of network channels based on policy changes in the decision-making module, triggering network channel quality detection and dynamically selecting the optimal channel. The path management module can activate the selected optimal channel, that is, to bring the network channel from a dormant state to a wake-up state; the wake-up network channel can be used directly. The path management module can also deactivate non-optimal channels, that is, to bring the network channel from a wake-up state to a dormant state; the dormant network channel cannot be used temporarily.
[0089] The strategy layer includes a traffic management module and a decision-making module.
[0090] The traffic management module is used to statistically analyze the data streams reported by the kernel layer and evaluate the network quality of each data stream.
[0091] The decision module stores transmission quality improvement strategies for data streams in different business scenarios within the application, enabling it to execute corresponding strategies based on the application's current scenario. For example, when the application's current scenario is scenario one, QoE measurement results can be sent to the application so that it can accelerate the network based on these results (e.g., if the application is a video application, it can adjust video resolution and caching strategies based on the QoE measurement results). When the application's current scenario is scenario two, it can request the path management module to select a network channel with better quality than the currently used one, allowing the application's data stream to be switched to the superior network channel.
[0092] The first scenario is a business scenario determined by the application that does not require system acceleration, while the second scenario is a business scenario determined by the application that does require system acceleration. System acceleration refers to the electronic device's operating system setting network acceleration policies based on different application categories and / or different business scenarios, and executing these policies when preset conditions are met. When the current business scenario requires system acceleration, the electronic device's operating system can execute preset network acceleration policies under preset conditions (e.g., switching the data stream corresponding to the application's current business scenario from the currently used network channel to a network channel with better network quality). When the current business scenario does not require system acceleration, the electronic device's operating system can send QoE measurement results to the application when preset conditions are met (e.g., network congestion), so that the application can perform network acceleration based on the QoE measurement results.
[0093] The kernel layer contains a policy execution module and a traffic reporting module. The traffic reporting module collects data stream information and reports the collected data stream information. The policy execution module is used to perform network channel switching.
[0094] In another embodiment of this application, a module (component) in the above embodiments can be split into two or more modules, or two or more modules at the same level can be merged into the same module.
[0095] As an example, the path management module of the service layer can be divided into a path detection module and a path control module. The path detection module can be used to detect the status and quality of Wi-Fi and cellular networks supported by electronic devices. The path control module can be used to update the selection of network channels based on policy changes in the decision module, trigger network channel quality detection, and dynamically select the optimal channel.
[0096] For ease of understanding, the network acceleration method provided in the embodiments of this application will be described in detail below with reference to the accompanying drawings.
[0097] Before the operating system of an electronic device can execute network acceleration policies, the user needs to enable the network acceleration function in advance. The following describes the UI interface and user operation for enabling the network acceleration function in advance.
[0098] For example, such as Figure 3 As shown in (a), the phone displays desktop 201. In response to the user clicking the settings app icon 202 on desktop 201, as... Figure 3 As shown in (b), the phone can display a settings interface 203. The settings interface 203 may include a WLAN option 204, and may also include a search box and function options such as personal account, Bluetooth, mobile network, desktop, and wallpaper. In response to the user clicking the control corresponding to the WLAN option 204, such as... Figure 3 As shown in (c), the mobile phone can display a WLAN interface 205. The WLAN interface 205 may include a WLAN switch 206. When the WLAN switch 206 is on, it indicates that the mobile phone can connect to WLAN for internet access. The WLAN interface 205 may also include a network acceleration option 207, as well as more WLAN settings options and a list of available WLANs. The list of available WLANs may include the names of multiple WLAN networks currently scanned by the mobile phone (e.g., HONOR1, HONOR2, HONOR3, etc.) and signal strength indicators. In response to the user clicking the control corresponding to the network acceleration option 207, such as... Figure 3As shown in (d), the phone can display a network acceleration interface 208. The network acceleration interface 208 may include a text description 209 for the network acceleration function, which states that the function "assesses the current network quality and intelligently uses WLAN and mobile data to improve the internet browsing experience; this process will connect to the internet and consume some mobile data." Optionally, if the user enables Honor Smart Capabilities, network acceleration will provide more intelligent services. Users can click the link "Honor Smart Capabilities and Privacy Statement" to view the explanation of Honor Smart Capabilities. When Honor Smart Capabilities are enabled, the operating system can collect the user's phone usage habits and provide personalized services based on those habits. The network acceleration interface 208 may also include a switch 210 for network acceleration (LINK Trubo). When switch 210 is on, it indicates that the user agrees to enable the network acceleration function, allowing the phone to assess the current network quality and intelligently use WLAN and mobile data to improve the internet browsing experience. Of course, the user can choose to turn off switch 210, thus disabling the network acceleration function. Below switch 210, a text box 211 can be displayed. The text in text box 211 is used to explain to the user the effect of the network acceleration function and data usage. For example, after the network acceleration function is turned on, the download speed is increased by 35% and the data usage is 100M; network lag is reduced by 40 times and the data usage is 40M. It should be noted that the network acceleration function can include concurrent acceleration function 212 and collaborative acceleration function 214. Concurrent acceleration function 212 includes multi-channel download mode 213. Users can access the multi-channel download mode settings interface through control 217 to turn multi-channel download mode on or off. When multi-channel download mode 213 is turned on, when electronic devices are connected to WLAN and mobile networks, multiple network channels can be used simultaneously for concurrent downloads, resulting in a faster download experience. Figure 3 In section (d), the multi-channel download mode 213 is disabled. The collaborative acceleration function 214 includes a smart mode 215 and a custom mode 216. In smart mode 215, applications requiring network acceleration can be intelligently enabled based on user data consumption and application usage preferences. Users can enable or disable smart mode via control 218. Figure 3 In (d) of the code, control 218 is selected, indicating that smart mode is enabled. In custom mode 216, users can manually enable applications that need acceleration (network acceleration). Users can enable or disable custom mode using control 219. Figure 3When control 219 in (d) is unselected, the custom mode is off. When the user selects the smart mode 215 or the custom mode 216 of the collaborative acceleration function 214, if a network lag occurs while the corresponding application (the application that requires network acceleration and is intelligently started in smart mode 215, or the application that requires network acceleration and is manually selected by the user in custom mode 216) is running in the foreground, the electronic device can switch the lagging network channel to a network channel with better communication quality, thus obtaining a better internet experience.
[0099] like Figure 4 As shown in (a), in response to the user selecting control 219 to enable custom mode 216, as... Figure 4 As shown in (b), the mobile phone can display information (icons, names, etc.) of various applications installed on the phone and their corresponding switches. For example, the phone can display... The corresponding switch 221, The corresponding switch 222, and the corresponding switch 223 for video applications. Corresponding switches include 224 for the music application and 225 for the music application. Users can manually select the applications they want to accelerate based on their needs. For example, users can enable... The corresponding switch 221, The corresponding switch 222, and the corresponding switch 223 for video applications. The corresponding switch 224 indicates that the user is using... Video applications and At this time, the phone needs to enable network acceleration to ensure the user experience.
[0100] See Figure 5 The embodiments provided in this application are based on Figure 2 The timing diagram shown illustrates a network acceleration method implemented by each module, including:
[0101] 301. In response to the user's action of opening application A, application A starts.
[0102] Application A is an application at the application layer, such as a game application. In response to a user opening application A, application A launches, and the electronic device can display its interface. At this time, application A is the foreground application, meaning its program code is running on the CPU.
[0103] Taking application A as an example, such as Figure 6 As shown in (a), in response to the user's action of clicking the game application icon 402 on the desktop 401, as Figure 6As shown in (b), the mobile phone can display a game launch screen 403. The game launch screen 403 may include an "Enter Game" button 404, and the game application launches in response to the user clicking the "Enter Game" button 404.
[0104] Alternatively, step 301 could be that application A switches from the background to the foreground, while application A remains a foreground application.
[0105] 302. The perception module detects that application A has started and queries whether application A supports network acceleration.
[0106] For example, the perception module can monitor the current foreground application (e.g., application A) and obtain its identifier through functions such as RunningProcess, ActivityLifecycleCallbacks, and UsageStatsManager. Alternatively, if the terminal device is an Android system, it can monitor the current foreground application and obtain its identifier through Android's built-in accessibility features. Or, if the terminal device is a Linux system, it can read the process information stored in the / proc directory of the Linux system kernel to monitor the current foreground application and obtain its identifier. Specific judgment processes can be found in existing technologies and will not be elaborated here. The application identifier is used to uniquely identify an application; it can have a one-to-one correspondence with the application's package name, or it can use the application's package name itself.
[0107] The perception module may include an application configuration library, which stores information on whether multiple applications support network acceleration. These applications include application A. Table 1 illustrates, for example, information on whether some applications support network acceleration.
[0108] Table 1
[0109]
[0110]
[0111] Alternatively, the application configuration library can store only information about applications that support network acceleration (a list of network-accelerated applications). Table 2 provides an example of information about some applications that support network acceleration.
[0112] Table 2
[0113]
[0114] In practical applications, this application configuration library can also store multiple application identifiers. Each application identifier uses different characters to indicate whether the application it represents supports network acceleration. As an example, "1" can be used to indicate that network acceleration is supported, and "0" can be used to indicate that network acceleration is not supported. Other methods for determining whether an application supports network acceleration will not be listed here.
[0115] In one possible implementation, such as Figure 3 As shown in (d), if the user selects the intelligent mode 215 of the collaborative acceleration function 214, multiple applications in the application configuration library can be intelligently determined to be applications that require network acceleration based on the user's traffic consumption and application usage preferences.
[0116] In another possible implementation, such as Figure 4 As shown in (a), if the user selects the custom mode 216 of the collaborative acceleration function, multiple applications in the application configuration library can be applications that require network acceleration, determined manually by the user. For example, such as Figure 4 As shown in (b) above, if the user enables... The corresponding switch 221, The corresponding switch 222, and the corresponding switch 223 for video applications. The corresponding switch 224, and the multiple applications in the application configuration library can include Video applications and
[0117] 303. If it is determined that application A supports network acceleration, the perception module sends a network quality assessment request to the decision module.
[0118] If the perception module determines that application A supports network acceleration by querying the application configuration library, it can send a network quality assessment request to the decision module. After receiving the network quality assessment request, the decision module can execute step 304.
[0119] The network quality assessment request is used to request the decision module to perform a network quality assessment. The network quality assessment request may include the application identifier, the application's configuration information, and the network quality assessment criteria. The application's configuration information refers to the message characteristics of the application when performing business operations; these message characteristics are the header characteristics of the data packets transmitted by the application.
[0120] Alternatively, if the perception module detects that application A has switched to the foreground, it can notify the decision module. The decision module can then query the application configuration library to determine whether application A supports network acceleration. If it is determined that application A supports network acceleration, step 304 can be executed.
[0121] 304. The decision module registers a message monitoring hook with the traffic reporting module at the kernel layer.
[0122] The message monitoring hook can periodically probe the path of the network channel currently used by application A, as well as monitor the communication parameters and statistics of the data stream transmitted through the network channel used by application A.
[0123] When application A implements a certain function, it may generate one or more data streams. If multiple data streams are detected, the communication parameters and statistics of each data stream of application A can be periodically checked.
[0124] The following describes in detail how the message monitoring hook monitors the communication parameters and statistics of the data stream of application A, and sends the monitored communication parameters and statistics to the traffic management module.
[0125] The electronic device system contains a Netfilter component (a hook function management component), which can be used to obtain the data stream of an application corresponding to a specific application identifier. The traffic reporting module can obtain the data stream packets of application A by calling the Netfilter component. In specific implementation, the information reported by the traffic reporting module to the traffic management module includes not only the data stream packets of application A, but also some communication parameters and statistical information of the data stream packets of application A.
[0126] See Figure 7 The traffic reporting module can pre-register packet monitoring hooks (e.g., the nf_hook hook function). After the traffic reporting module calls the Netfilter component, the Netfilter component reports the packets of the data stream of application A. After receiving the packets of the data stream reported by the Netfilter component, the traffic reporting module calls the pre-registered nf_hook hook function.
[0127] The nf_hook hook function performs the following operations on the received data stream packets: packet parsing, flow table lookup, and packet analysis.
[0128] When parsing a message, you can check if it contains an application identifier and its four-tuple (or five-tuple) to obtain the parsing result. If an application identifier exists, the application corresponding to the message can be determined. The four-tuple includes the source IP, destination IP, source port, and destination port; the five-tuple includes the source IP, destination IP, source port, destination port, and protocol number. In addition, the message (data packet) itself also carries header characteristics. The four-tuple (or five-tuple) and header characteristics of a data stream message can be collectively referred to as the communication parameters of the data stream.
[0129] After parsing the packets, the flow table is queried based on the parsing results, and the flow table statistics are updated. The flow table stores the identification information of data flows in each application, as well as the total number of packets, the number of bytes sent and received (including received and sent bytes), and the number of error packets for each data flow. Furthermore, the total number of packets can be used to determine if there is a downlink no response; for example, if the total number of packets received in two consecutive cycles is the same, then there is a downlink no response. The transmission rate can be determined based on the number of bytes sent and received; for example, the ratio of the difference between the number of bytes received in the previous cycle and the current cycle to the cycle itself is the downlink rate for the current cycle. Packet loss can be determined based on the sequence numbers carried in the packets; for example, the packet loss rate (loss tolerance or packet loss rate) can be the ratio of the number of missing sequence numbers to the number of existing sequence numbers. Of course, the above methods of determining these parameters are only examples; in practical applications, other methods can also be used to determine these parameters.
[0130] Information such as the total number of packets, the number of erroneous packets, the packet loss rate, the number of bytes sent and received, and the rate (uplink rate, downlink rate) of a data stream can be collectively referred to as the statistical information of a data stream.
[0131] In practical applications, the statistical information of each flow can also include other information, such as the traffic distribution information of the data flow over time, and the latency information of the data flow packets.
[0132] Of course, if the identifier or related statistical information of a certain data flow does not exist in the flow table, the identifier and related statistical information of the data flow can be added to the flow table.
[0133] After looking up and updating the flow table information, the packets can be analyzed. For example, packets can be filtered to obtain all or part of the packets.
[0134] As an example, this filtering process could be filtering heartbeat packets from a data stream. After filtering, the heartbeat packets of that data stream are obtained. This filtering process could involve pre-setting certain characteristics and retaining packets that meet those characteristics. That is, packets that meet certain pre-set characteristics are the filtered packets.
[0135] The heartbeat packet is a message that exists in the data stream at regular time intervals. The heartbeat packet has a fixed characteristic (e.g., 0x64 or 0x65) at a fixed position (e.g., the 6th byte). Because the heartbeat packet exists at regular intervals, the delay can be calculated based on it (e.g., the total time elapsed from when the mobile phone sends a heartbeat request message to the server until the mobile phone receives the heartbeat response message from the server).
[0136] The above example uses filtering heartbeat packets as an illustration. In practical applications, filtering can also be used to obtain data packets that meet other characteristics.
[0137] As another example, filtering conditions could also include: selecting to retain data packets of a specific length. In practice, it is determined whether the length of the data packet is a pre-set specific length; if so, the packet is retained; otherwise, it is filtered out.
[0138] After the above processing, the filtered packets are stored in the socket buffer (SKB) queues.
[0139] The strategies for reporting data stream messages stored in the SKB queue include: immediate reporting and periodic reporting.
[0140] If the report is not to be submitted immediately, a specific thread in the traffic reporting module will promptly check the queue and report the packets in the queue to the traffic management module.
[0141] If the reporting is to be done periodically, a timer is set in the traffic reporting module. Based on the timer setting, the packets in the SKB queue are checked at certain intervals, and some or all of the packets in the queue are reported to the traffic management module.
[0142] Of course, in practical applications, some packets in the data stream stored in the SKB queue need to be reported immediately, while others need to be reported periodically. Following the same principle, a specific thread in the traffic reporting module checks the queue regularly and reports the packets that need immediate reporting to the traffic management module in a timely manner. The traffic reporting module also has a timer set to periodically check the packets in the SKB queue based on the timer's settings and report the packets that need periodic reporting to the traffic management module.
[0143] It should be noted that when submitting a report, you can also submit related statistical information.
[0144] Based on the above understanding, the traffic reporting module does not report all packets sent by the Netfilter component to the traffic management module. Instead, it reports packets that meet specific characteristics (which may carry the communication parameters and statistical information of those packets) to the traffic management module. It also reports the relevant communication parameters and statistical information of those packets.
[0145] As an example, if both message 1 and message 2 belong to the same data stream, when message 1 is received and the flow table is checked, the statistical information about that data stream in the flow table is updated based on message 1. However, message 1 does not meet certain characteristics, so message 1 is filtered out and not reported to the traffic management module. When message 2 is received and the flow table is checked, the statistical information about that data stream in the flow table is updated based on message 2. Message 2 meets certain characteristics, so message 2 is not filtered out and is reported to the traffic management module. That is, although some messages are reported, the statistical information is based on all messages under that data stream.
[0146] 305. The traffic reporting module periodically reports the communication parameters and statistical information of the data stream to the traffic management module.
[0147] The communication parameters of a data stream can include protocol type, source IP address and port / destination IP address and port, message characteristics, and message payload. The protocol type refers to the protocol used when the application transmits the data stream; the source IP address and port are the IP addresses and ports used when sending the data stream; the destination IP address and port are the IP addresses and ports used when receiving the data stream; and the message characteristics are the header characteristics of the data packets transmitted by the application. The communication parameters of a data stream can be obtained from the four-tuple or five-tuple of the data stream's message.
[0148] For example, when a social communication application makes an audio or video call, the header of the data packet corresponding to the data stream starts with 97, i.e., data[0] = 97. The data packet is transmitted using the UDP protocol, with the source IP address and port being 221.11.6.XX and 8080, and the destination IP address and port being 221.14.4.XX and 5050, respectively.
[0149] Statistical information about data streams can include round-trip time (RTT), packet loss rate, number of bytes sent and received, and rates (uplink rate and downlink rate). The number of bytes sent and received includes the number of bytes sent (i.e., upload traffic) and the number of bytes received (i.e., download traffic). The packet loss rate is the ratio of lost data packets to the number of sent data packets. The uplink rate is the rate at which the data stream is sent, and the downlink rate is the rate at which the data stream is received. RTT represents the total time elapsed from when the electronic device (sender) starts sending data until it receives an acknowledgment from the peer (receiver) (the peer sends an acknowledgment immediately after receiving the data).
[0150] For example, when a social communication application makes an audio or video call, the number of bytes sent and received is 10MB / 8MB, the uplink rate and downlink rate are 200kbit / 180kbit, and the RTT is 50ms.
[0151] Of course, in practical applications, the traffic reporting module can also report other parameters of application network packets to the traffic management module, such as flow interval time, packet interval time, packet size and traffic distribution, etc. This application does not limit this.
[0152] Optionally, the traffic reporting module can report the communication parameters and statistical information of the application network packets through a single message, or it can report the communication parameters and statistical information of the application network packets through multiple messages respectively. This application does not impose any limitations on this.
[0153] 306a. The traffic management module periodically performs network quality assessments based on the communication parameters and statistical information of the data stream to obtain the current QoE measurement results.
[0154] After receiving the communication parameters and statistics of application A's data stream, the traffic management module can query application A's flow feature library. For example, it can identify the business scenario of the foreground application (e.g., identifying it as a short video playback scenario on Douyin) based on features such as packet protocol type, port, and packet protocol header, and record it in the flow table. The flow feature library of application A stores various information about application A's data stream, such as the protocol characteristics of the protocol used by application A when using the current network, and the header characteristics of the data packets transmitted by application A when using the current network. Of course, it can also include the traffic characteristics of application A when using the current network, etc., which are not limited here.
[0155] The traffic management module can periodically perform QoE assessments on the data streams of applications running in the foreground. In practice, different applications may use the same or different QoE assessment conditions. These QoE assessment conditions refer to the conditions that the statistical information of the data stream meets over several consecutive periods. Different business scenarios within the same application may have the same or different QoE assessment conditions. For example, the QoE assessment conditions for a game application's battle scenario and map exploration scenario may differ. Similarly, the QoE assessment conditions for a video application's video selection scenario, video playback scenario, and pop-up playback scenario may differ. Designing different QoE assessment conditions based on different business scenarios can make QoE assessments more accurate. Different business scenarios can be distinguished by communication parameters; different conditions for communication parameters correspond to different business scenarios. The same business scenario within the same application can correspond to one or more QoE assessment conditions. Each QoE assessment condition corresponds to one QoE measurement result (also called a QoE assessment result). Multiple QoE assessment conditions can correspond to the same QoE measurement result; satisfying any one of these multiple QoE assessment conditions will yield the same QoE measurement result.
[0156] by Taking the battle scenario as an example, the QoE evaluation conditions for the battle scenario in Honor of Kings can be based on the conditions met by the packet loss rate and / or latency to assess the lag during the battle. For example, if the packet loss rate in the battle scenario meets the condition of two consecutive packet losses of 20% within 3 seconds, and / or the latency in the battle scenario meets the condition of two consecutive latencies exceeding 200ms within 4 seconds, the QoE measurement result of the Honor of Kings battle scenario can be considered poor, that is, lag occurs during the battle.
[0157] For example, QoE measurement results can include: Excellent (smooth and lag-free), Medium (may stutter), and Poor (stuttering). For instance, the identifier for an Excellent QoE measurement result can be 00, the identifier for a Medium QoE measurement result can be 10, and the identifier for a Poor QoE measurement result can be 11.
[0158] As shown in Table 3, the current business scenario of the application running in the foreground can be distinguished based on the conditions satisfied by the communication parameters of the data stream. Furthermore, the QoE measurement results for different business scenarios can be determined based on the different QoE evaluation conditions corresponding to those scenarios. The QoE measurement results will differ when the communication parameters and statistics of the application's data stream satisfy different conditions.
[0159] Table 3
[0160]
[0161]
[0162] In Table 3, com.tencent.mm is the WeChat package name, and com.tencent.tmgp.sgame is the Honor of Kings package name. Each entry in Table 3 indicates the QoE measurement result obtained when the application's data flow communication parameters and statistics meet specific conditions. For example, if the Honor of Kings data flow uses the UDP protocol with an arbitrary port and a 0x10 header, and the data flow has a latency exceeding 150ms for three consecutive periods out of five, or a packet loss exceeding 20% for three consecutive periods out of four, then the QoE measurement result is poor.
[0163] Table 3 lists only the QoE evaluation conditions (including the conditions that the communication parameters and statistics of the data flow must meet) and QoE measurement results for some applications, and is for illustrative purposes only. In practical applications, other different QoE evaluation conditions can be used to obtain QoE measurement results.
[0164] In some cases, the QoE measurement results obtained based on Table 3 may lead to misjudgments. For example, when a user uses a short video app, if the user comes across a short video, the app starts downloading the video through the network channel and caches some of the downloaded data frames. Then, it retrieves the video's data frames from the cache and begins playback. If the short video's playback duration is 15 seconds, taking the user's first view of the video as the starting point, the download rate per unit time will rapidly increase from the starting point to the 2nd second; from the 2nd second to the 5th second, the download rate per unit time will rapidly decrease to 0; and from the 5th second to the end of playback at the 15th second, the download rate per unit time will remain at 0.
[0165] If the conditions in Table 3 above are applied, and the latency of the data stream for the end-user video application exceeds 350ms for multiple consecutive cycles or the downlink rate (average) is less than 51kb / s for multiple consecutive cycles, then the QoE measurement result of the data stream is considered poor. In the example above, the rate (average) is 0 for multiple consecutive cycles between the 5th and 15th seconds, which may indicate that the current data stream is experiencing stuttering, meaning that the transmission quality on the current network channel is poor.
[0166] However, in practical applications, the network quality of the network channel where the application's data stream resides is not poor during the period from the 5th to the 15th second; it's just that there is currently no need to download data streams from other electronic devices, so the rate is 0 for several consecutive periods. Therefore, this application provides another method for evaluating the QoE measurement results of short video applications. The data stream of short video applications has the following characteristics: it uses the HTTP protocol, requests video content from the server via GET, and the GET data packet carries an mp4 field.
[0167] See Figure 8 This describes the data stream rate characteristics of short video applications when the network channel quality provided in this embodiment is good. The video stream rate exhibits a periodic distribution, with each period including time intervals where the rate is not zero and time intervals where the rate is zero.
[0168] For example, Figure 8 In this context, the video stream rate distribution includes three consecutive time periods: a first time period, a second time period, and a third time period. The rates in the first and third time periods are not zero, while the rate in the second time period is zero. If the average rate of the first portion within the first time period is greater than a first value, it indicates that the video stream transmission quality meets the requirements, and no network quality improvement is needed. The electronic device then transmits the video stream through the first network interface card (NIC) during the third time period.
[0169] See Figure 9The rate distribution of the video stream can also include: a fourth time segment, a fifth time segment, and a sixth time segment. The rates of the fourth and sixth time segments are not zero, while the rate of the fifth time segment is zero. If the average rate of the second part of the fourth time segment is less than or equal to the first value, it indicates that the transmission quality of the video stream does not meet the requirements and the network quality needs to be improved. In the sixth time segment, the electronic device transmits the video stream through the second network card of the electronic device. To ensure a consistent evaluation standard, the duration of the second part can be set to be equal to the duration of the first part.
[0170] To make the evaluation criteria more accurate when the rate is 0, the end time of the first part in the first time period can be set to be the same as the end time of the first time period, and the end time of the second part in the fourth time period can be set to be the same as the end time of the fourth time period.
[0171] according to Figure 8 The speed characteristics shown and Figure 9 The rate characteristics shown can be understood as follows: the case of a rate of 0 is quite special, and it needs to be considered separately when evaluating the transmission quality of video streams in short video applications.
[0172] Within a time period where the data rate is not zero, a portion of this period can be selected (e.g., the same duration as the first portion), designated as the seventh time period. If the average data rate of the seventh time period is less than or equal to a first value, the electronic device transmits the video stream through the second network card during the eighth time period. The start time of the eighth time period is the end time of the seventh time period. Conversely, if the average data rate of the seventh time period is greater than the first value, the electronic device transmits the video stream through the first network card during the eighth time period.
[0173] In practical implementation, the cases where the rate is 0 and the cases where the rate is not 0 can be considered separately. In this embodiment, the rate refers to the average downlink rate of the video stream within a periodic period (e.g., 300ms, 400ms, 500ms, 600ms, 700ms, etc.). The period and... Figure 8 and Figure 9 The periods in the periodic distributions where the rate is not zero and is zero are different. When obtaining the average downlink rate of the downlink rate values collected within a periodic period (e.g., 500ms) at acquisition periods (e.g., 10ms, 50ms, 100ms, etc.), the period for obtaining the average downlink rate is used to obtain the mean of the acquired downlink rates, which can be denoted as the mean period. In subsequent embodiments, the period refers to the mean period. In subsequent embodiments, the rate values related to periodicity refer to the average downlink rate value within that period.
[0174] The average rate is not zero: if the average rate is low over multiple (e.g., 2, 3, 4, 5, etc.) averaging periods, the data stream's transmission quality is poor. Alternatively, a low average rate over a single averaging period can also indicate poor data stream transmission quality.
[0175] Cases where the average rate is 0: If the average rate is 0 due to network issues, it's usually because the average rate has already started decreasing before reaching 0 (in practice, this can be achieved by using the average rate over a period of time, the end of which can be the point when the rate becomes 0). In such cases, improving transmission quality is necessary. If the average rate is 0 because the currently playing short video has finished buffering, it's usually because the average rate was still relatively high before reaching 0, and improving transmission quality is not required. Therefore, when the average rate is 0, it's necessary to trace back to the average rate of the previous average period (the last non-zero rate average period) before the period when the average rate first became 0. In practice, the average rate of the period where the average rate is 0 can be reused from the previous average period (the last non-zero rate average period). Alternatively, it can be understood that the average rate of the previous average period is used for every instance of an average rate being 0. Then, if the average rate is consistently low across multiple average periods, the transmission quality of the data stream is poor.
[0176] Based on the above description, the average rate of multiple mean periods can be set as a reference. First, the periodic transmission quality of the current mean period is determined based on the average rate of a single mean period (which can be denoted as the first period). Then, the data stream transmission quality of the current data stream is determined based on the periodic transmission quality of multiple mean periods.
[0177] When determining the periodic transmission quality of a single average period, if the average rate is not 0, the periodic transmission quality of the current average period is determined to be poor if the average rate is less than or equal to a threshold A (which may or may not be equal to a first value); and excellent if the average rate is greater than the threshold A. If the average rate is 0, using the average rate of the previous average period is equivalent to using the periodic transmission quality (poor or excellent) of the previous average period. Therefore, if the periodic transmission quality of the previous average period is poor, the periodic transmission quality of the current average period is considered poor as well; if the previous average period is excellent, the periodic transmission quality of the current average period is considered excellent as well. This application does not limit whether to use the periodic transmission quality or the rate of the previous average period when the average rate is 0. Of course, in practical applications, when the average rate is 0, it can also be determined based on the transmission quality of multiple past average periods (e.g., 3, 5, 7, etc.), for example, based on the mode in the identifier of the transmission quality of multiple average periods.
[0178] In summary, the results of periodic transmission quality for a single mean period include the following:
[0179] Excellent: The average speed of this mean period is greater than or equal to the threshold A (e.g., 50 kb / s); or, the average rate is equal to 0 and the periodic transmission quality of the previous mean period is excellent.
[0180] Poor: The average speed is less than the threshold A and is not equal to 0; or the average rate is equal to 0 and the periodic transmission quality of the previous mean period is poor.
[0181] After determining the periodic transmission quality for each mean period, the periodic transmission quality of the current mean period and the M-1 consecutive mean periods preceding it can be viewed. If at least N mean periods have poor periodic transmission quality among the M consecutive mean periods, the data stream's transmission quality is determined to be poor. Here, N is less than or equal to M. If fewer than N mean periods have poor periodic transmission quality, the data stream's transmission quality is determined to be excellent.
[0182] 306b. The flow management module periodically reports the current QoE measurement results to the decision module.
[0183] It should be noted that after application A starts, the traffic reporting module can periodically detect the network quality of the network used by application A and periodically report the communication parameters and statistical information of the application's network packets. The traffic management module periodically performs network quality assessment based on the communication parameters and statistical information of the application's network packets to obtain QoE measurement results, and periodically notifies the decision-making module of the current QoE measurement results until application A is shut down.
[0184] In other words, during the startup (or foreground) of application A, the traffic reporting module continuously and periodically detects the network quality of the network used by application A, the traffic management module continuously and periodically performs network quality assessment to obtain QoE measurement results, and periodically notifies the decision module of the current QoE measurement results.
[0185] That is, steps 305-306b can be executed periodically during application A startup (or foreground operation).
[0186] Additionally, after application A is launched, the following steps may also be included:
[0187] 307. Application A sends a registration request to the network acceleration service module. This registration request is used to request the network's QoE so that Application A can be aware of changes in network quality.
[0188] 308. The network acceleration service module sends a registration request to the perception module.
[0189] 309. The perception module sends the registration result to the network acceleration service module, and the registration result is successful.
[0190] After receiving the registration request from application A, the perception module can make the following judgments: (1) query the application configuration library to determine whether application A supports network acceleration; (2) determine whether application A is running in the foreground; (3) determine whether application A has network acceleration permissions.
[0191] After receiving the registration request from application A, the perception module authenticates and verifies the registered application (application A). For example, it can make the following judgments: (1) query the application configuration library to determine whether application A supports network acceleration; (2) determine whether application A is running in the foreground; (3) determine whether application A has network acceleration permissions. It should be noted that if application A needs to register for network acceleration service, it can first register as a developer on the developer website (e.g., the Honor developer website). After successfully registering as a developer, it can apply for appid and network acceleration service kit permissions. A kit is a software development kit (SDK) used to provide basic services to the application layer (application). Subsequently, the perception module checks whether application A is a legitimate user registered on the Honor developer website and checks whether application A has network acceleration service kit permissions (i.e., network acceleration permissions). Among them, applications with network acceleration permissions can obtain the QoE measurement results of their own data stream from the operating system of the electronic device. The application can determine whether to perform network acceleration processing based on the QoE measurement results. Network acceleration processing includes at least one of the following: pre-caching the running data of the first application, reducing the frame rate of the first application, reducing the bit rate of the first application, and reducing the resolution of the first application.
[0192] If the perception module determines that application A supports network acceleration, is running in the foreground, and has network acceleration permissions, then application A has successfully registered. Subsequently, the perception module can send the registration result to application A through the network acceleration service module, and the registration result will be "successful".
[0193] 310. The network acceleration service module sends the registration result to application A.
[0194] It should be noted that there is no necessary execution order between steps 302-306b and steps 307-310. Steps 302-306b can be executed first, followed by steps 307-310; or steps 307-310 can be executed first, followed by steps 302-306b; or steps 302-306b and steps 307-310 can be executed simultaneously. This embodiment does not impose a specific limitation on the execution order of the above steps.
[0195] 311. The perception module queries the business scenarios that do not require system acceleration corresponding to application A.
[0196] The perception module detects when an application starts up / switches to the foreground and determines that the application supports network acceleration. It can also query the business scenarios for which the application does not require system acceleration.
[0197] It should be noted that applications supporting network acceleration fall into two categories of business scenarios: those requiring system acceleration and those not requiring it. System acceleration refers to the electronic device's operating system setting network acceleration strategies based on different application categories and / or business scenarios, and executing these strategies when preset conditions are met. When the current business scenario requires system acceleration, the electronic device's operating system can execute preset network acceleration strategies under preset conditions (e.g., switching the data stream corresponding to the application's current business scenario from the currently used network channel to a network channel with better network quality). When the current business scenario does not require system acceleration, the electronic device's operating system can send QoE measurement results to the application when preset conditions are met (e.g., network congestion), allowing the application to perform network acceleration based on the QoE measurement results.
[0198] The perception module can store multiple application scenarios (applications that support network acceleration) that do not require system acceleration. Table 4 shows examples of some application scenarios that do not require system acceleration.
[0199] Table 4
[0200]
[0201] The perception module can determine the business scenarios for application A that do not require system acceleration by looking up a table (e.g., Table 4). For example, if application A is... Application A does not require system acceleration in business scenarios including battle scenarios. Table 4 is only an illustration; in actual implementation, the application may include other or more business scenarios that do not require system acceleration.
[0202] 312. The perception module notifies the decision module of the business scenarios for which the application does not require system acceleration.
[0203] 313. The decision module records the business scenarios for application A that do not require system acceleration.
[0204] It's understandable that applications can enter, switch between, and exit various business scenarios during operation. Taking application A as a game application as an example, a game application can include different types of business scenarios, such as login scenarios, map exploration scenarios, battle scenarios, settlement scenarios, lobby scenarios, etc. The following explanation uses application A entering a battle scenario as an example.
[0205] 314. When application A enters the battle scene, the network acceleration service module is notified that it has entered the battle scene.
[0206] For example, such as Figure 10 As shown in (a), in response to the user's operation of the control 502 corresponding to the battle mode selected on the game's mode selection interface 501, such as... Figure 10 As shown in (b) above, the phone can display the battle mode interface 503.
[0207] 315. The network acceleration service module notifies the perception module application A to enter the battle scene.
[0208] 316. The perception module notifies the decision-making module that application A has entered the battle scene.
[0209] 317. The decision module determines that the battle scenario belongs to a business scenario that does not require system acceleration, and when the QoE measurement result changes, the decision module sends the QoE measurement result to the perception module.
[0210] When the QoE measurement result of the data stream changes (for example, when the QoE measurement result changes from good to poor, or from poor to good), the decision module sends the QoE measurement result to the perception module.
[0211] When the current QoE measurement result is poor, the decision module detects that the current application's business scenario (video playback) does not require system acceleration. In this case, it sends the QoE measurement result to the application through the perception module and the network acceleration service module, without performing system acceleration, and only notifies the application of the QoE measurement result.
[0212] 318. The perception module notifies the network acceleration service module of the QoE measurement results.
[0213] 319. The network acceleration service module notifies application A of the QoE measurement results.
[0214] 320. Application A accelerates the network based on the QoE measurement results.
[0215] When the QoE measurement result is poor (stuttering), application A (first application) performs network acceleration processing. The network acceleration processing includes at least one of the following: pre-caching the running data of the first application, reducing the frame rate of the first application, reducing the bit rate of the first application, and reducing the resolution of the first application.
[0216] Taking application A as a game application as an example, when application A receives the QoE measurement result, if the QoE measurement result is poor, application A can switch game servers and reduce the game frame rate to reduce stuttering; if the QoE measurement result is good, application A can switch game servers again (back to the original server) and increase the game frame rate to improve the user experience.
[0217] For example, if application A is a video application, and application A receives the QoE measurement result, when the QoE measurement result is poor, application A can reduce the resolution of the current video to reduce video stuttering; when the QoE measurement result is good, application A can restore the video resolution to improve the user experience.
[0218] 321. When application A exits the battle scene, the network acceleration service module is notified that it has exited the battle scene.
[0219] After application A exits the battle scene, it may enter another scene (a hidden scene). However, application A may not want to expose this hidden scene to the system, so it can only notify the network acceleration service module that it has exited the battle scene. Alternatively, after application A exits the battle scene, it enters the map exploration scene, that is, it switches from the battle scene to the map exploration scene. It can directly notify the network acceleration service module that it has switched to the map exploration scene.
[0220] 322. The network acceleration service module notifies the perception module application A to exit the battle scene.
[0221] Alternatively, the network acceleration service module can notify the perception module application A to switch to the map running scenario.
[0222] 323. The perception module notifies the decision-making module that application A is exiting the battle scene.
[0223] Alternatively, the perception module can notify the decision module to switch application A to the map running scenario.
[0224] 324. After the decision module determines that application A has exited the battle scene, if it determines that the QoE measurement result reported by the traffic management module is poor, it will execute the system acceleration strategy and request a new network channel for optimization.
[0225] 325. The decision-making module sends a request for a better path to the path management module.
[0226] A better path request is used to request a better network path than the current network path.
[0227] 326. The path management module is activated and probes the network quality to determine if a better network path exists.
[0228] When the path management module receives a request for a better path from the decision module, it can activate and probe the network quality to determine whether a better network path exists.
[0229] In practical applications, if an electronic device has a 2.4GHz wireless network card 1, a 5.0GHz wireless network card 2, a data service network card 1 from operator A, and a data service network card 2 from operator B, then one of the wireless network cards 1 or 2 can be designated as the primary Wi-Fi network and the other as the secondary Wi-Fi network card. Similarly, one of the data service network cards 1 from operator A and 2 from operator B can be designated as the primary network card and the other as the secondary network card.
[0230] As an example, the network channel in the 2.4GHz band is the primary Wi-Fi network, and the network channel in the 5.0GHz band is the secondary Wi-Fi network. The network channel corresponding to data service network card 1 is the primary cellular network, and the network channel corresponding to data service network card 2 is the secondary cellular network.
[0231] When the primary Wi-Fi network is available, the system defaults to using the primary network of the electronic device or the foreground application as the primary Wi-Fi network. When the primary Wi-Fi network is unavailable, the system defaults to using the primary SIM card's cellular network as the primary network of the electronic device or the foreground application. When the primary SIM card's cellular network is unavailable, the system defaults to using the secondary Wi-Fi network as the primary network of the electronic device or the foreground application. When the secondary Wi-Fi network is unavailable, the system defaults to using the secondary SIM card's cellular network as the primary network of the electronic device or the foreground application.
[0232] When application A is started and running in the foreground, application A uses the primary network according to the above rules. Even if the system switches some data streams in application A to other networks while application A is in the foreground, the data streams in application A will resume using the system's default primary network after application A is switched to the background. After application A is switched from the background to the foreground, application A continues to use the system's default primary network.
[0233] The path management module can request networks in the order of primary Wi-Fi, primary SIM card network, secondary Wi-Fi, and secondary SIM card network until it finds an available network that meets the quality requirements (network quality is better than the currently used network channel).
[0234] 327. The path management module notifies the decision-making module of a better network path.
[0235] The path management module can notify the decision module of the network paths of the above-mentioned available networks that meet the quality requirements.
[0236] 328. After receiving a better network path determined by the path management module, the decision module determines that the current QoE measurement result is still poor.
[0237] 329. The decision module notifies the policy execution module in the kernel layer to switch the data stream of application A to a better network channel.
[0238] The decision module triggers a switch to switch the data stream of application A to a better network channel.
[0239] 330. The strategy execution module switches the data stream of application A to a better network channel.
[0240] In this way, application A can access the internet through a better network channel, which can improve the user experience.
[0241] In some embodiments, the decision module can notify the policy enforcement module at the kernel layer to switch the data stream of application A to multiple network channels with better quality (network quality superior to the currently used network channel). The policy enforcement module switches the data stream of application A to multiple network channels with better quality so that application A can access the internet through these channels, thereby improving the user experience.
[0242] When application A stops running or is switched to the background, you can perform the following steps:
[0243] 331. Application A sends a deregistration request to the network acceleration service module, requesting that network acceleration and QoE measurement be stopped for application A.
[0244] 332. The network acceleration service module sends a registration request to the perception module.
[0245] 333. The perception module notifies the decision module to stop applying network acceleration and QoE measurement of A.
[0246] Once the sensing module detects that application A has stopped running, switched to the background, or received a deregistration request from application A, it stops providing network acceleration to that application, resumes data flow, and releases the requested network access. It will also stop sending QoE measurement results to application A subsequently.
[0247] 334. The decision module notifies the policy execution module to stop applying network acceleration and QoE measurement of A.
[0248] 335. The policy execution module stops applying network acceleration and QoE measurement to A.
[0249] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0250] Based on the network acceleration method provided in this application, the operating system can obtain the current business scenario from the foreground application (i.e., the operating system obtains the current business scenario of the foreground application) and determine the network acceleration strategy according to the current business scenario. For example, when the current business scenario is the first scenario, the operating system can send QoE measurement results to the foreground application so that the application can perform network acceleration based on the QoE measurement results (for example, if the application is a video application, the video application can adjust the video resolution and caching strategy according to the QoE measurement results, etc.); when the current business scenario of the application is the second scenario, system acceleration can be performed. For example, the operating system can select a network channel with better quality than the currently used network channel and switch the application's data stream to the better network channel. This fully leverages the advantages of the electronic device's operating system and applications, enabling the operating system and applications to work together to accelerate the network. It avoids conflicts between the network acceleration strategies implemented by the operating system and the network acceleration strategies set by the third-party applications themselves, which could lead to the failure or abnormality of the network acceleration strategies of both the operating system and the third-party applications, thus improving the user's internet experience.
[0251] It should be understood that the sequence number of each step in the above embodiments does not imply the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this application.
[0252] This application also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, can implement the steps in the above-described method embodiments.
[0253] This application also provides a computer program product that, when run on a first device, enables the first device to implement the steps described in the various method embodiments above.
[0254] 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, all or part of the processes in the methods of the above embodiments of this application can be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by a processor, it can implement the steps of the various method embodiments described above. The computer program includes computer program code, which can be in the form of source code, object code, executable files, or certain intermediate forms. The computer-readable medium can include at least: any entity or device capable of carrying the computer program code to the first device, a recording medium, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electrical carrier signal, a telecommunication signal, and a software distribution medium. Examples include USB flash drives, portable hard drives, magnetic disks, or optical disks. In some jurisdictions, according to legislation and patent practice, computer-readable media cannot be electrical carrier signals or telecommunication signals.
[0255] This application also provides a chip system, which includes a processor coupled to a memory. The processor executes a computer program stored in the memory to implement the steps of any method embodiment of this application. The chip system can be a single chip or a chip module composed of multiple chips.
[0256] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0257] Those skilled in the art will recognize that the units and method steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0258] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application, and should all be included within the protection scope of this application.
Claims
1. A network acceleration method, characterized by, The application is applied to an electronic device, which comprises a first application, a network acceleration service module, a perception module and a decision module, and comprises the following steps of: The electronic device runs the first application; The electronic device periodically collects quality of experience (QoE) measurement results of a data stream of the first application, wherein the data stream of the first application is transmitted through a first network channel; The first application enters a first scene, and notifies the network acceleration service module that the first application enters the first scene; The network acceleration service module notifies the perception module that the first application enters the first scene; The perception module notifies the decision module that the first application enters the first scene; The decision module determines that the first scene belongs to a service scene that does not need system acceleration, and sends the QoE measurement results to the perception module; The perception module notifies the network acceleration service module of the QoE measurement results; The network acceleration service module notifies the first application of the QoE measurement results; When the QoE measurement results indicate that the data stream of the first application is stuck, the first application performs network acceleration processing according to the QoE measurement results, wherein the network acceleration processing comprises at least one of the following: pre-caching running data of the first application, reducing a frame rate of the first application, reducing a code rate of the first application, and reducing a resolution of the first application.
2. The method of claim 1, wherein, The method further comprises the following steps of: When the QoE measurement results of the data stream of the first application indicate that the data stream of the first application is stuck, and a current service scene of the first application is a second scene, the data stream of the first application is switched to a second network channel; The network quality of the second network channel is better than that of the first network channel, and the second scene is different from the first scene.
3. The method of claim 2, wherein, The method further comprises the following steps of: The first scene and the second scene are determined by the first application.
4. The method of claim 1 or 2, wherein: The QoE measurement results are determined according to communication parameters and statistical information of the data stream of the first application, wherein the communication parameters comprise at least one of the following: a protocol type, a source Internet Protocol (IP) address and a port / destination IP address and port, and a packet feature, and the statistical information comprises at least one of the following: a round-trip time (RTT), a packet loss rate, a number of bytes sent and received, and a rate.
5. The method according to claim 1 or 2, characterized in that, The method further comprises the following steps of: When the QoE measurement results of the data stream of the first application indicate that the data stream of the first application is no longer stuck, and the current service scene of the first application is the first scene, the electronic device stops at least one of the following: caching running data of the first application, restoring a frame rate of the first application, restoring a code rate of the first application, and restoring a resolution of the first application.
6. The method of claim 1 or 2, wherein, The method further comprises the following steps of: The perception module perceives that the first application is started, and queries whether the first application supports network acceleration; The perception module comprises an application configuration library, and the application configuration library stores information about whether a plurality of application programs support network acceleration, wherein the plurality of application programs comprise the first application.
7. The method of claim 6, wherein the plurality of applications in the application configuration library are applications determined to require network acceleration based on user traffic consumption and user preferences for application usage; or wherein the plurality of applications in the application configuration library are applications determined to require network acceleration based on manual settings by the user. The method further comprises: If it is determined that the first application supports network acceleration, the perception module sends a network quality evaluation request to the decision module, wherein the network quality evaluation request includes an application identifier of the first application, configuration information of the application, and a standard for network quality evaluation, and the configuration information of the application includes a header feature of a data packet when the first application transmits a data stream.
8. The method of claim 6, wherein, The kernel layer of the electronic device further comprises a traffic reporting module, and the method further comprises: The decision module registers a packet monitoring hook with the traffic reporting module, and the packet monitoring hook is used to periodically probe a path of the first network channel used by the first application, and monitor communication parameters and statistical information of a data stream transmitted by the first network channel used by the first application; 9. The method of claim 8, wherein, wherein the communication parameters include at least one of a protocol type, a source Internet Protocol (IP) address and a port / desination IP address and port, and a packet feature, and the statistical information includes at least one of a round-trip time (RTT), a packet loss rate, a number of bytes transmitted and received, and a rate. The electronic device further comprises a traffic management module, and the method further comprises: The traffic reporting module periodically reports the communication parameters and the statistical information of the data stream of the first application to the traffic management module; 10. The method of claim 9, wherein, The traffic management module periodically performs network quality evaluation according to the communication parameters and the statistical information to obtain a current QoE measurement result; The traffic management module periodically reports the current QoE measurement result to the decision module. The method further comprises: The first application sends a registration request to the network acceleration service module, and the registration request is used to request to obtain a QoE measurement result of a network; 11. The method according to any one of claims 7-10, characterized in that, The network acceleration service module sends the registration request to the perception module. The method further comprises: After receiving the registration request, if it is determined that the first application supports network acceleration, the first application is running in the foreground, and the first application has a network acceleration permission, the perception module records application information of the first application, sends a registration result to the perception module, and the registration result is success; 12. The method of claim 11, wherein, The perception module sends the registration result to the network acceleration service module; The network acceleration service module sends the registration result to the first application. The method further comprises: The perception module queries a business scenario that does not require system acceleration corresponding to the first application, and a plurality of business scenarios that do not require system acceleration corresponding to applications that support network acceleration are stored in the perception module; 13. The method of claim 12, wherein, The perception module notifies the decision module of the business scenario that does not require system acceleration corresponding to the application; The decision module records the business scenario that does not require system acceleration corresponding to the first application. 14. The method of claim 1, wherein, The first application is a game application, and the first scene includes a battle scene.
15. The method of claim 14, wherein, The electronic device further includes a path management module and a policy execution module, and the method further includes: The first application exits the battle scene and notifies the network acceleration service module of the exit from the battle scene; The network acceleration service module notifies the perception module that the first application exits the battle scene; The perception module notifies the decision module that the first application exits the battle scene; After the decision module determines that the first application exits the battle scene, the decision module sends a more optimal path request to the path management module, and the more optimal path request is used to request a network channel that is more optimal than a current network channel quality; The path management module activates and detects network quality of each network channel, determines that there is a network channel that is more optimal than the current network channel quality, and notifies the decision module of the more optimal network channel; The decision module instructs the policy execution module to switch a data flow of the first application to the more optimal network channel; The policy execution module switches the data flow of the first application to the more optimal network channel.
16. The method of claim 15, wherein, When the first application is switched to the background or closed, the method further includes: The first application sends a deregistration request to the network acceleration service module, and the deregistration request is used to request to stop QoE measurement for the first application; The network acceleration service module sends the deregistration request to the perception module; The perception module notifies the decision module to stop the QoE measurement for the first application; The decision module notifies the policy execution module to stop the QoE measurement for the first application; The policy execution module stops the QoE measurement for the first application.
17. An electronic device, comprising: The electronic device includes a processor configured to execute a computer program stored in a memory, so that the electronic device implements the method of any one of claims 1 to 16.
18. A computer-readable storage medium, characterized in that, The computer program is stored in the computer readable storage medium and is configured to be executed on the processor to implement the method of any one of claims 1 to 16.
Citation Information
Patent Citations
Live broadcast method, device and system, equipment and computer readable storage medium
CN111294634A
Network switching method, electronic equipment and readable medium
CN115002850A