Network link multiplexing method and device and computer storage medium
By splitting and aggregating network messages based on network links in the terminal device, the problem of not being able to switch to a better link when the network quality is poor in the prior art is solved, and more efficient network utilization and users are achieved Improved experience.
Patent Information
- Application Number
- CN202310852188.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-11
- Publication Date
- 2025-01-14
AI Technical Summary
In the prior art, terminal devices will not switch to better network links when the network quality is poor but not disconnected, resulting in poor user experience and unable to fully utilize the advantages of various network connection methods.
When receiving network messages, they are split based on the forwarding weights of each network link, and the subnetwork messages of each network link are determined, and sent to the target network controller through these subnetwork messages, so as to realize the network Aggregation of messages and optimization of network link utilization.
Improves network connection performance and reliability, improves user experience, and ensures that different types of network links are fully utilized during the sending of network messages.
Smart Images

Figure CN119316876A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a network link multiplexing method, device and computer storage medium. Background Art
[0002] Currently, many users' mobile phones or CPE (Customer Premises Equipment) have multiple network connection methods, especially CPE devices usually have 4G / 5G (fourth / fifth generation mobile communication technology) connection, WiFi (wireless network communication technology) connection and wired Ethernet connection. When the user uses it, the CPE device will automatically switch the network according to the quality of the connected network. For example, when the WiFi network jitters abnormally, it will automatically switch to the 4G / 5G network connection.
[0003] However, the disadvantage of this switching method is that the terminal device will only switch to another network when the current network is basically completely unavailable. If the current network is just slow (high latency) and not disconnected, the terminal device will not switch even if the network quality of other optional links is better. In many scenarios, the user's business traffic will be affected by network quality issues, resulting in a poor user experience. Summary of the invention
[0004] The purpose of this application is to solve at least one of the above technical defects. The technical solutions provided by the embodiments of this application are as follows:
[0005] In a first aspect, an embodiment of the present application provides a network link multiplexing method, including:
[0006] When receiving the network message of the target application, the network message is split according to the flow based on the forwarding weight of each network link to obtain the sub-network message corresponding to each network link. The forwarding weight of each network link is determined based on the network quality of the network link.
[0007] The corresponding sub-network messages are sent to the target network controller through each network link, so that the target network controller can obtain network messages based on the aggregation of each sub-network message and send the network messages to the corresponding business website.
[0008] In an optional embodiment of the present application, the method further includes:
[0009] Send a registration request to the dedicated software development kit SDK registration center;
[0010] Receive the token and network controller address list sent by the SDK registration center after the registration request is verified;
[0011] Obtaining the target delay corresponding to each network controller in the network controller address list at intervals of a first preset period, where the target delay is the network delay between the dedicated SDK and each network controller;
[0012] Send the corresponding sub-network message to the target network controller through each network link, including:
[0013] determining a target network controller from among the network controllers based on the target delays;
[0014] Each network link between the target network controller and the target network controller is established through the token, and the corresponding sub-network message is sent to the target network controller through each network link.
[0015] In an optional embodiment of the present application, determining a target network controller from each network controller based on each delay includes:
[0016] If it is the first time to determine the target network controller, the network controller with the smallest corresponding target delay among the network controllers is determined as the target network controller;
[0017] If it is not the first time to determine the target network controller, the network controller with the smallest corresponding target delay among the network controllers is determined as the candidate network controller, and the candidate network controller or the network controller currently connected to the dedicated SDK is determined as the target controller.
[0018] In an optional embodiment of the present application, determining the candidate network controller or the network controller to which the dedicated SDK is currently connected as the target controller includes:
[0019] If the target time interval corresponding to the candidate network controller is not less than the first preset value, determining the candidate network controller as the target network controller;
[0020] If the target time interval is less than the first preset value, determining the network controller to which the dedicated SDK is currently connected as the target controller;
[0021] The target time interval is the time interval between the last time the dedicated SDK was connected to the candidate network controller and the current time.
[0022] In an optional embodiment of the present application, the method further includes:
[0023] The network quality of each network link is obtained at intervals of a second preset period.
[0024] In an optional embodiment of the present application, the higher the network quality of the network link, the greater the corresponding forwarding weight.
[0025] In an optional embodiment of the present application, the method further includes:
[0026] Receive the corresponding sub-network message feedback information sent by the target network controller through each network link. Each sub-network message feedback information is obtained by the target network controller by splitting the network message feedback information according to the traffic based on the forwarding weight of each network link. The network message feedback information is sent to the target network controller by the business website in response to the network message.
[0027] In a second aspect, an embodiment of the present application provides a network link multiplexing method, including:
[0028] Receive the corresponding sub-network message sent by the dedicated software development kit SDK through each network link;
[0029] Aggregate the sub-network messages to obtain the corresponding network messages, and send the network messages to the corresponding business website;
[0030] Among them, the sub-network message corresponding to each network link is obtained by the dedicated SDK when receiving the network message of the target application, splitting the network message according to the traffic based on the forwarding weight of each network link, and the forwarding weight of each network link is determined based on the network quality of the network link.
[0031] In an optional embodiment of the present application, the network message is sent to a corresponding service website;
[0032] The network message is sent to the corresponding business website through the dedicated line link between the forwarding gateway corresponding to the target network controller and the forwarding gateway corresponding to the business website.
[0033] In an optional embodiment of the present application, sending a network message to a corresponding business website through a dedicated link between a forwarding gateway corresponding to a target network controller and a forwarding gateway corresponding to a business website includes:
[0034] If the dedicated line link is a third-party dedicated line link, the network message is sent to the corresponding business website through a preset encrypted tunnel on the third-party dedicated line link.
[0035] In an optional embodiment of the present application, the method further includes:
[0036] Receiving network message feedback information sent by the service website in response to the network message;
[0037] Based on the forwarding weight of each network link, the network message feedback information is split according to the flow rate to obtain the sub-network message feedback information corresponding to each network link;
[0038] The corresponding sub-network message is sent to the dedicated SDK through each network link.
[0039] In a third aspect, an embodiment of the present application provides a network link multiplexing device, including:
[0040] A network message splitting module is used to split the network message according to the flow rate based on the forwarding weight of each network link when receiving the network message of the target application, so as to obtain the sub-network message corresponding to each network link. The forwarding weight of each network link is determined based on the network quality of the network link.
[0041] The first network message sending module is used to send the corresponding sub-network message to the target network controller through each network link, so that the target network controller can obtain the network message based on the aggregation of each sub-network message and send the network message to the corresponding business website.
[0042] In an optional embodiment of the present application, the device further includes a registration module, which is used to:
[0043] Send a registration request to the dedicated software development kit SDK registration center;
[0044] Receive the token and network controller address list sent by the SDK registration center after the registration request is verified;
[0045] Obtaining the target delay corresponding to each network controller in the network controller address list at intervals of a first preset period, where the target delay is the network delay between the dedicated SDK and each network controller;
[0046] The first network message sending module is specifically used for:
[0047] determining a target network controller from among the network controllers based on the target delays;
[0048] Each network link between the target network controller and the target network controller is established through the token, and the corresponding sub-network message is sent to the target network controller through each network link.
[0049] In an optional embodiment of the present application, the first network message sending module is further used to:
[0050] If it is the first time to determine the target network controller, the network controller with the smallest corresponding target delay among the network controllers is determined as the target network controller;
[0051] If it is not the first time to determine the target network controller, the network controller with the smallest corresponding target delay among the network controllers is determined as the candidate network controller, and the candidate network controller or the network controller currently connected to the dedicated SDK is determined as the target controller.
[0052] In an optional embodiment of the present application, the first network message sending module is further used to:
[0053] If the target time interval corresponding to the candidate network controller is not less than the first preset value, determining the candidate network controller as the target network controller;
[0054] If the target time interval is less than the first preset value, determining the network controller to which the dedicated SDK is currently connected as the target controller;
[0055] The target time interval is the time interval between the last time the dedicated SDK was connected to the candidate network controller and the current time.
[0056] In an optional embodiment of the present application, the device further includes a network quality acquisition module, which is used to:
[0057] The network quality of each network link is obtained at intervals of a second preset period.
[0058] In an optional embodiment of the present application, the higher the network quality of the network link, the greater the corresponding forwarding weight.
[0059] In an optional embodiment of the present application, the device further includes a network message feedback information receiving module, which is used to:
[0060] Receive the corresponding sub-network message feedback information sent by the target network controller through each network link. Each sub-network message feedback information is obtained by the target network controller by splitting the network message feedback information according to the traffic based on the forwarding weight of each network link. The network message feedback information is sent to the target network controller by the business website in response to the network message.
[0061] In a fourth aspect, an embodiment of the present application provides a network link multiplexing device, including:
[0062] The network message receiving module is used to receive the corresponding sub-network messages sent by the dedicated software development tool kit SDK through each network link;
[0063] A second network message sending module, used to obtain a corresponding network message based on aggregation of each sub-network message, and send the network message to a corresponding business website;
[0064] Among them, the sub-network message corresponding to each network link is obtained by the dedicated SDK when receiving the network message of the target application, splitting the network message according to the traffic based on the forwarding weight of each network link, and the forwarding weight of each network link is determined based on the network quality of the network link.
[0065] In an optional embodiment of the present application, the second network message sending module is specifically used for:
[0066] The network message is sent to the corresponding business website through the dedicated line link between the forwarding gateway corresponding to the target network controller and the forwarding gateway corresponding to the business website.
[0067] In an optional embodiment of the present application, the second network message sending module is further used to:
[0068] If the dedicated line link is a third-party dedicated line link, the network message is sent to the corresponding business website through a preset encrypted tunnel on the third-party dedicated line link.
[0069] In an optional embodiment of the present application, the device further includes a network message feedback information sending module, which is used to:
[0070] Receiving network message feedback information sent by the service website in response to the network message;
[0071] Based on the forwarding weight of each network link, the network message feedback information is split according to the flow rate to obtain the sub-network message feedback information corresponding to each network link;
[0072] The corresponding sub-network message is sent to the dedicated SDK through each network link.
[0073] In a fifth aspect, an embodiment of the present application provides a customer premises equipment CPE, including a memory and a processor;
[0074] A computer program is stored in the memory;
[0075] A processor is used to execute a computer program to implement the method provided in the embodiment of the first aspect or any optional embodiment of the first aspect.
[0076] In a sixth aspect, an embodiment of the present application provides a network controller, including a memory and a processor;
[0077] A computer program is stored in the memory;
[0078] A processor is used to execute a computer program to implement the method provided in the embodiment of the second aspect or any optional embodiment of the second aspect.
[0079] In the seventh aspect, an embodiment of the present application provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the method provided in the embodiment of the first aspect, the embodiment of the second aspect, any optional embodiment of the first aspect, or any optional embodiment of the second aspect is implemented.
[0080] In an eighth aspect, an embodiment of the present application provides a computer program product or a computer program, the computer program product or the computer program including computer instructions, the computer instructions being stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that when the computer device executes, the method provided in the first aspect embodiment, the second aspect embodiment, any optional embodiment of the first aspect, or any optional embodiment of the second aspect is implemented.
[0081] The beneficial effects of the technical solution provided by the embodiment of the present application are:
[0082] When receiving the network message of the target application, the network message will first be divided according to the flow based on the forwarding weight of each network link supported by the CPE, and the sub-network message of the corresponding flow that needs to be sent on each network link is obtained. Then, the sub-network messages of the corresponding flow are forwarded to the target network controller through each network link respectively, so that after receiving each sub-network message, the target network controller aggregates each sub-network message to obtain the original network message sent by the target application, and sends the original network message to the business website corresponding to the target application. This solution splits the network message by the forwarding weight of each network link determined based on the quality of each network, so that different types of network links can be fully utilized in the process of sending the network message of the target application, which maximizes the network connection performance and reliability and improves the user experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0083] Figure 1 A schematic diagram of a system architecture for implementing a network link multiplexing method provided in an embodiment of the present application;
[0084] Figure 2 A flowchart of a network link multiplexing method provided in an embodiment of the present application;
[0085] Figure 3 An information interaction diagram of a process in which a target application sends a network message to a corresponding business website in an example of an embodiment of the present application;
[0086] Figure 4 This is an information interaction diagram of a dedicated SDK registration process in an example of an embodiment of the present application;
[0087] Figure 5 A schematic diagram of a dedicated SDK detecting a target delay of each network controller in a network controller address list in an example of an embodiment of the present application;
[0088] Figure 6 A flowchart of another network link multiplexing method provided in an embodiment of the present application;
[0089] Figure 7 A schematic diagram of dedicated link transmission in the cloud in an example of an embodiment of the present application;
[0090] Figure 8 A structural block diagram of a network link multiplexing device provided in an embodiment of the present application;
[0091] Fig. 9 A structural block diagram of another network link multiplexing device provided in an embodiment of the present application;
[0092] Fig.10 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0093] The embodiments of the present application are described below in conjunction with the drawings in the present application. It should be understood that the implementation methods described below in conjunction with the drawings are exemplary descriptions for explaining the technical solutions of the embodiments of the present application and do not constitute a limitation on the technical solutions of the embodiments of the present application.
[0094] It will be understood by those skilled in the art that, unless specifically stated, the singular forms "one", "said", and "the" used herein may also include plural forms. It should be further understood that the terms "including" and "comprising" used in the embodiments of the present application refer to that the corresponding features can be implemented as the presented features, information, data, steps, operations, elements and / or components, but do not exclude the implementation as other features, information, data, steps, operations, elements, components and / or combinations thereof supported by the technical field. It should be understood that when we say that an element is "connected" or "coupled" to another element, the one element may be directly connected or coupled to the other element, or it may refer to that the one element and the other element establish a connection relationship through an intermediate element. In addition, the "connection" or "coupling" used herein may include wireless connection or wireless coupling. The term "and / or" used herein indicates at least one of the items defined by the term, for example, "A and / or B" may be implemented as "A", or as "B", or as "A and B".
[0095] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below with reference to the accompanying drawings.
[0096] The following is an explanation of the terms and related technologies involved in this application:
[0097] CPE (Customer Premises Equipment): CPE refers to communication network equipment installed in the user's residence or office for access to the Internet or other communication services. Common CPEs include routers, modems, network switches, wireless access points and other devices. CPE acts as a bridge between user equipment and network provider equipment, enabling users to enjoy network connection and communication services. CPE can usually use multiple network links such as 4G, 5G, and WiFi.
[0098] NQA (Network Quality Analyze): NQA is a technical method for evaluating and monitoring network performance. By sending test packets and receiving response packets, NQA can measure network latency, packet loss rate, bandwidth, throughput and other indicators to determine the health status and performance level of the network. NQA is often used in network operation and maintenance and troubleshooting to help administrators optimize network operations, and promptly discover and resolve potential network problems to ensure network reliability and stability.
[0099] SDK (Software Development Kit): SDK is a set of tools, documentation, and sample codes used to support software development. SDK is usually provided by software development companies or platforms to help developers build, test, and deploy applications more easily. SDK generally includes the following:
[0100] Development tools: such as compilers, integrated development environments (IDEs), debuggers, etc., used to write, edit, build, and debug code.
[0101] Library files: Contains pre-written reusable code modules. Developers can directly call these libraries to implement specific functions and speed up development.
[0102] API documentation: provides the interface description, function description, and parameter description required for development, helping developers understand how to use the functions of a platform or service.
[0103] Sample code: Sample code that demonstrates how to use the tools and APIs provided in the SDK to implement specific functions for developers to refer to and learn from.
[0104] SDK can provide corresponding development tools and resources for specific software development platforms, operating systems, hardware devices or services, such as mobile application development (iOS, Android), game development, cloud computing services, IoT devices, etc., to simplify the development process and improve development efficiency.
[0105] Network controller: A hardware device or software program that manages and controls data traffic, connections, and communications in a computer network. It is responsible for observing network communications, enforcing network policies, and optimizing network performance.
[0106] In a computer network, the network controller acts as a central processing unit and has the following functions:
[0107] Packet forwarding: The network controller can decide how to transmit packets from the source device to the destination device based on preset rules and routing tables, ensuring that the data is delivered along the correct path.
[0108] Traffic control: The network controller can manage and schedule network traffic to ensure the rational allocation and utilization of network resources and avoid network congestion and overload.
[0109] Security policy enforcement: The network controller can enforce security policies, such as access control lists (ACLs), firewall rules, etc., to protect the network from unauthorized access and malicious attacks.
[0110] Error detection and correction: The network controller can detect and identify errors, faults and abnormal conditions in the network, and take appropriate measures to correct and recover them to maintain the reliability and stability of the network.
[0111] Performance optimization: The network controller can obtain network performance indicators, such as latency and bandwidth utilization, and optimize network performance by dynamically adjusting network parameters and routing strategies.
[0112] A network controller can be a part of a network device such as a switch, router, or firewall, or it can be a software program running on a server or operating system. It plays a key role in computer networks, ensuring the normal operation and good performance of the network.
[0113] The following describes several exemplary embodiments to illustrate the technical solutions of the embodiments of the present application and the technical effects produced by the technical solutions of the present application. It should be noted that the following embodiments can refer to, draw on or combine with each other, and the same terms, similar features and similar implementation steps in different embodiments will not be described repeatedly.
[0114] Figure 1 A schematic diagram of the system architecture for implementing a network link multiplexing method provided in an embodiment of the present application, such as Figure 1As shown, the system includes a CPE device, a network controller and a corresponding business website. The CPE device is used by users, and a dedicated SDK and one or more target APPs (applications) are installed therein. These target APPs are APPs in the CPE that are configured with a dedicated SDK. The dedicated SDK can intercept the traffic of these target APPs, that is, all external traffic (including network messages) of these target APPs needs to be forwarded through the SDK. In the embodiment of the present application, the network controller is set in the cloud, and the CPE can be connected to the network controller through multiple network links, such as 4G, 5G or WiFi network links. The network controller can forward the traffic received from the target APP to the business website corresponding to the target APP.
[0115] Specifically, when the target APP in the CPE needs to send a network message to the business website, it can be understood as the "uplink traffic" processing stage. The target APP sends a network message, which is intercepted by the dedicated SDK in the CPE. The dedicated SDK can then forward the intercepted network message to the corresponding network controller through one or more network links. The network controller then sends the received network message to the business website corresponding to the target APP.
[0116] The business website responds to the received network message feedback sent by the target APP. The network message feedback information can be understood as the "downlink traffic" processing stage. The business website corresponding to the target APP will generate network message feedback information in response to the received network message, and send the generated network message feedback information to the corresponding network controller. The network controller can send the received network message feedback information to the CPE's dedicated SDK through one or more network links, and then the dedicated SDK will feedback to the target APP.
[0117] The solution of this application mainly improves the reuse of multiple network links when sending network messages in the "upstream traffic" processing stage, and the reuse of multiple network links when sending network message feedback information in the "downstream traffic" processing stage, thereby realizing efficient reuse of multiple network links in combination with the cloud network controller in the use of CPE. The network link reuse solution will be described in detail below.
[0118] This application involves cloud technology. Cloud technology is a general term for network technology, information technology, integration technology, management platform technology, application technology, etc. based on the cloud computing business model. It can form a resource pool, which is used on demand and is flexible and convenient. Cloud computing technology will become an important support. The background services of the technical network system require a large amount of computing and storage resources, such as video websites, picture websites and more portal websites. With the rapid development and application of the Internet industry, each item may have its own identification mark in the future, and all of them need to be transmitted to the background system for logical processing. Data of different levels will be processed separately, and all kinds of industry data require strong system backing support, which can only be achieved through cloud computing.
[0119] Figure 2 A schematic diagram of a flow chart of a network link multiplexing method provided in an embodiment of the present application, the execution subject of the method may be Figure 1 Dedicated SDK in CPE, such as Figure 2 As shown, the method may include:
[0120] Step S201, when receiving the network message of the target application, the network message is split according to the flow based on the forwarding weight of each network link to obtain the sub-network message corresponding to each network link. The forwarding weight of each network link is determined based on the network quality of the network link.
[0121] As mentioned above, the target application CPE is an application configured with a dedicated SDK, and the network messages sent by these target applications will be intercepted by the dedicated SDK, that is, the dedicated SDK will obtain all traffic generated by each target application. When the user uses the target application, if he needs to access the corresponding business website, the target application will generate a corresponding network message, and then the network message needs to be sent to the corresponding business website to obtain the corresponding network message feedback information.
[0122] Among them, the dedicated SDK is pre-installed on the CPE. In addition to intercepting the traffic of the target application, it can also detect the current network quality of each network link between the CPE and the network controller. Obviously, the dedicated SDK can not only intercept the traffic of the target application, but also detect the network quality of each network link. Only NQA detection is performed to obtain the link quality of each network link. Therefore, the dedicated SDK can use the detected network quality to decide how to reuse each network link.
[0123] Specifically, when any target application in the CPE sends a network message, the dedicated SDK will intercept the network message, and the dedicated CPE needs to forward the network message to the corresponding target network controller in the cloud. In the solution of this application, the dedicated SDK will first determine the forwarding weight of each network link at the current moment, and split the intercepted network message according to the traffic according to the forwarding weight to obtain the sub-network message corresponding to each network link.
[0124] For example, if the traffic size of a network message intercepted by the dedicated SDK is 10M, and it is known in advance that there are three network links that the CPE can support, namely 4G, 5G and WiFi, and the dedicated SDK determines that the forwarding weights corresponding to the current 4G network link, 5G network link and WiFi network link are 0.3, 0.2 and 0.5 respectively, then the dedicated CPE will split the network message according to the traffic based on the forwarding weight to obtain the sub-network message corresponding to each network link. Specifically, the traffic of the sub-network message corresponding to the 4G network link is 3M, the traffic of the sub-network message corresponding to the 5G network link is 2M, and the traffic of the sub-network message corresponding to the WiFi network link is 5M. Then, the dedicated SDK will forward the network message according to the above traffic distribution. Specifically, the dedicated SDK sends the corresponding sub-network message on the 4G network link, that is, sends the corresponding 3M traffic in the network message, the dedicated SDK sends the corresponding sub-network message on the 5G network link, that is, sends the corresponding 2M traffic in the network message, and the dedicated SDK sends the corresponding sub-network message on the WiFi network link, that is, sends the corresponding 5M traffic in the network message. It can be understood that in the embodiment of the present application, the sub-network messages split from the unified network message can be sent on different network links at the same time.
[0125] It should be noted that in the scheme of the embodiment of the present application, when splitting the network message, the data structure of the network message can be analyzed, and the network message can be divided in sequence according to the intrinsic order of the data structure, so as to obtain the sub-network message corresponding to each network link, so as to facilitate the subsequent target network controller to obtain the corresponding network message based on the aggregation of each sub-network message.
[0126] In addition, in the solution of the embodiment of the present application, the forwarding weight of each network link is determined by the current network quality of each network link detected by the dedicated SDK. It can be understood that the determination of the network quality of each network link can be the network quality at the current moment detected by the dedicated SDK, or it can be determined by statistical calculation of the network quality within a time period including the current moment and the historical moment.
[0127] It can be understood that if the network quality corresponding to a network link supported by the CPE indicates that the network link is disconnected, then the traffic of the sub-network message corresponding to the network link is 0, that is, the dedicated SDK does not forward the traffic in the network message through the network link.
[0128] Step S202, sending the corresponding sub-network messages to the target network controller through each network link, so that the target network controller aggregates the sub-network messages to obtain a network message, and sends the network message to the corresponding service website.
[0129] The target network controller is one of the multiple network controllers located in the cloud, and the target network controller can be determined based on the delay between the dedicated SDK in the CPE and each network controller. At the same time, since users may move when using or carrying CPE, the delay between the dedicated SDK in the CPE and each network controller will change. At this time, in order to ensure better network quality, the network controller will be switched, that is, the target network controller will be re-determined.
[0130] Specifically, in the previous step, the dedicated SDK split the intercepted network message, and then determined the sub-network message sent on each network link. In this step, the corresponding sub-network messages will be sent to the target network controller through each network link. After receiving the sub-network messages sent through each network link, the target network controller will aggregate these sub-network messages to obtain a complete network message. The aggregation process can be understood as the reverse process of the aforementioned splitting process, that is, the original network message is restored based on each split sub-network message. Then the original network message is sent to the corresponding business website. At this point, the processing process of "upstream traffic" is completed.
[0131] Continuing with the above example, the dedicated SDK sends the corresponding sub-network message on the 4G network link, that is, sends the corresponding 3M traffic in the network message, the dedicated SDK sends the corresponding sub-network message on the 5G network link, that is, sends the corresponding 2M traffic in the network message, and the dedicated SDK sends the corresponding sub-network message on the WiFi network link, that is, sends the corresponding 5M traffic in the network message. The target network controller receives the above sub-network messages and aggregates them to obtain the original network message of 10M. Specifically, each sub-network message can be aggregated according to the split order of each sub-network message to obtain the corresponding original network message. Then the original network message is sent to the corresponding business website.
[0132] The solution provided by the present application, when receiving the network message of the target application, will first divide the network message according to the flow based on the forwarding weight of each network link supported by the CPE, and obtain the sub-network message of the corresponding flow that needs to be sent on each network link. Then, the sub-network messages of the corresponding flow are forwarded to the target network controller through each network link respectively, so that after receiving each sub-network message, the target network controller aggregates each sub-network message to obtain the original network message sent by the target application, and sends the original network message to the business website corresponding to the target application. The solution splits the network message by the forwarding weight of each network link determined based on the quality of each network, so that different types of network links can be fully utilized in the process of sending the network message of the target application, which maximizes the network connection performance and reliability and improves the user experience.
[0133] In an optional embodiment of the present application, the method may further include:
[0134] The network quality of each network link is obtained at intervals of a second preset period.
[0135] Specifically, the dedicated SDK in the CPE can periodically detect the network quality of each network link, for example, once every 3 minutes. Then, in the solution of the embodiment of the present application, the forwarding weight of each network link will be determined based on the network quality of the most recent detection.
[0136] The specific duration of the second preset period can be set according to actual needs.
[0137] In an optional embodiment of the present application, the higher the network quality of the network link, the greater the corresponding forwarding weight.
[0138] Specifically, the higher the network quality of a network link, the faster the network messages are sent through it, and the better the user experience. Therefore, a network link with high network quality can send more traffic. Therefore, the higher the network quality of the network link, the greater the corresponding forwarding weight can be set to ensure the performance of the network connection.
[0139] In summary, if Figure 3 As shown, the process of sending a network message from a target application in a CPE to a corresponding service website in an embodiment of the present application may include the following steps:
[0140] (1) Install a dedicated SDK on the user's CPE and configure which APPs (applications) forward network messages through the SDK, that is, configure a dedicated ADK for the target APP. The reason for configuration is that only some APPs are suitable for network transmission through the split-first-and-aggregate method of this solution, while other APPs use a special transmission protocol with the business website and cannot be split.
[0141] (2) After the dedicated SDK is installed, it will automatically detect the network links on the current CPE, and then periodically perform NQA detection on each network link, and calculate the forwarding weight of each link based on the detection results of each network link. The higher the quality of the network link detected by NQA (such as low packet loss rate, low latency, and small jitter), the higher the forwarding weight assigned to it, and more traffic will be forwarded through it when forwarding network packets.
[0142] (3) When the target user APP sends an uplink network message (i.e., when sending a network message to the corresponding business website), the network message will pass through the dedicated SDK. The dedicated SDK will distribute the traffic to different network links according to the forwarding weight and forward the network to the target network controller deployed in the cloud.
[0143] (4) After receiving the sub-network messages from different network links, the target network controller can re-aggregate the sub-network messages according to the time sequence of the sub-network messages, and then forward the original messages to the corresponding service website.
[0144] In an optional embodiment of the present application, the method may further include:
[0145] Receive the corresponding sub-network message feedback information sent by the target network controller through each network link. Each sub-network message feedback information is obtained by the target network controller by splitting the network message feedback information according to the traffic based on the forwarding weight of each network link. The network message feedback information is sent to the target network controller by the business website in response to the network message.
[0146] Specifically, in the cloud, the target network controller will send the aggregated original network message to the corresponding business website, and the business website will respond to the network message and feedback the corresponding network message information to the target network controller. Then, the target network controller will send the network message feedback information to the dedicated SDK in the CPE, and the dedicated SDK will send it to the target application. In the process of the target network controller sending the network message feedback information to the dedicated SDK in the CPE, each network link can also be reused according to the forwarding right of each network link, that is, the network message feedback information is split according to the traffic based on the forwarding weight of each network link. At this time, the forwarding weight used is the forwarding weight used when splitting the network message in the corresponding "uplink traffic" processing stage. The target network controller can determine the size of the corresponding forwarding weight according to the traffic size of the sub-network message received from different network links.
[0147] Specifically, the traffic flowing down from the cloud will first reach the target network controller, and then be forwarded to the dedicated SDK by the target network controller. When receiving the uplink traffic, the target network controller will record the proportion of traffic sent through each network link, for example: WiFi, mobile network, and wired network account for 30%, 50%, and 20% respectively, and the network distribution will also be carried out according to this proportion when forwarding the downlink traffic. Since the dedicated SDK on the CPE periodically detects the network quality of each network link and adjusts the proportion of each network link in real time, the cloud controller does not need to perform network detection anymore, and can directly forward the downlink traffic according to the uplink sending strategy.
[0148] In an optional embodiment of the present application, the method may further include:
[0149] Send a registration request to the dedicated software development kit SDK registration center;
[0150] Receive the token and network controller address list sent by the SDK registration center after the registration request is verified;
[0151] Obtaining the target delay corresponding to each network controller in the network controller address list at intervals of a first preset period, where the target delay is the network delay between the dedicated SDK and each network controller;
[0152] Send the corresponding sub-network message to the target network controller through each network link, including:
[0153] determining a target network controller from among the network controllers based on the target delays;
[0154] Each network link between the target network controller and the target network controller is established through the token, and the corresponding sub-network message is sent to the target network controller through each network link.
[0155] Specifically, after users purchase network aggregation services from cloud vendors, they can download the corresponding dedicated SDK from the website to start using it. In order to prevent the dedicated SDK from being maliciously misused, registration is required when the dedicated SDK goes online. First, you need to register at the dedicated SDK registration center. Only after verification is passed can the dedicated SDK establish a network connection with the network controller.
[0156] Specifically, if Figure 4 As shown, the registration process may include the following steps:
[0157] (1) Users purchase services from cloud vendors, download and install the dedicated SDK on the CPE, and log in with their account and password.
[0158] (2) When the dedicated SDK goes online for the first time, it will carry the account and password to initiate registration with the dedicated SDK registration center in the cloud. After receiving the request number, the registration center will first verify the account and password. After the verification is successful, a token will be generated based on the user name, the unique ID (identification information) of the dedicated SDK, and the timestamp.
[0159] (3) The dedicated SDK registration center then feeds back the network controller address list and token to the dedicated SDK, and notifies the network controller of the dedicated SDK's account and token. The SDK can only connect after the network controller records them.
[0160] (4) Finally, the dedicated SDK uses the account and token to establish a network connection with the network controller.
[0161] After the dedicated SDK registration is completed, Figure 5 As shown, the target delay between each network controller and the dedicated SDK can be detected according to the acquired network controller address list. Then, the target network controller can be determined according to the detected target delay.
[0162] In an optional embodiment of the present application, determining a target network controller from each network controller based on each delay includes:
[0163] If it is the first time to determine the target network controller, the network controller with the smallest corresponding target delay among the network controllers is determined as the target network controller;
[0164] If it is not the first time to determine the target network controller, the network controller with the smallest corresponding target delay among the network controllers is determined as the candidate network controller, and the candidate network controller or the network controller currently connected to the dedicated SDK is determined as the target controller.
[0165] Specifically, in order to be able to forward the network messages to the business website in the shortest path after aggregating the network messages, the network controller in the solution of the embodiment of the present application will also adopt a multi-region distributed deployment, and a real network controller instance will be deployed in each core area. Therefore, the dedicated SDK needs to select the most suitable network controller as the target network controller when connecting to the network controller. Since the SDK is deployed on the user side, the user may move with the CPE. When the SDK successfully registers with the registration center, the dedicated SDK registration center will return the addresses of all currently available network controllers to the dedicated SDK, and the dedicated SDK will decide on its own to connect to the network controller, that is, the dedicated SDK will determine which network controller is the target network controller.
[0166] After receiving the network controller address list returned by the dedicated SDK registration center, the dedicated SDK will start a thread in the background to periodically detect the connectivity and network latency of each network controller, that is, to obtain the target latency between each network controller. After each detection, the dedicated SDK will save the target latency data of each network controller in the cache. When a network message needs to be sent, it will query the cache for the network controller with the smallest target latency as the target network controller for sending. When the dedicated SDK switches the target network controller node to be connected, in order to prevent message loss, it has to suspend traffic transmission until the previous wave of messages has been successfully aggregated at the previous node before switching to the new node.
[0167] In order to prevent unnecessary business losses caused by frequent ping-pong switching of user CPE in critical areas, the period of the background detection thread of the dedicated SDK should be set longer. In this way, even if the connection fails to switch in time due to the movement of the user's location, it will only cause a short-term increase in delay, which is negligible compared to the loss of business traffic suspension during switching.
[0168] In an optional embodiment of the present application, determining the candidate network controller or the network controller to which the dedicated SDK is currently connected as the target controller includes:
[0169] If the target time interval corresponding to the candidate network controller is not less than the first preset value, determining the candidate network controller as the target network controller;
[0170] If the target time interval is less than the first preset value, determining the network controller to which the dedicated SDK is currently connected as the target controller;
[0171] The target time interval is the time interval between the last time the dedicated SDK was connected to the candidate network controller and the current time.
[0172] Specifically, ping-pong switching can be prevented by determining the target network controller in the above manner.
[0173] Specifically, under the guidance of the above ideas, there can be another way to prevent ping-pong switching, which is to record the cache of the connection time on the dedicated SDK of the CPE, and build a network controller connection time list, which records the connection time of each network controller's most recent connection with the dedicated SDK, as shown in Table 1 below:
[0174] Table 1
[0175] Network Controller Node Last connection time (Unix timestamp) Node-1 1680693202 Node-2 1680691202 Node-3 1680693102
[0176] When the dedicated SDK is connected to a network controller, the ID and connection time of the controller node will be recorded in the memory, that is, a network controller connection time list will be built in the cache. When the dedicated SDK continues to connect to the network controller node, the most recent connection time in the network controller connection time list will be refreshed periodically (for example, every 30 seconds). At the same time, a timer will be started in the dedicated SDK to refresh the network controller connection time list every 10 seconds. When refreshing, all controller node information in the cache is read. If the most recent connection time exceeds the threshold (for example, 30 minutes), it means that the last connection to the controller node was 30 minutes ago, and it will be deleted from the network controller connection time list. When the user's CPE moves in space and the dedicated SDK wants to switch to another network controller, it will first query the network controller connection time list information. If the controller node to be connected exists in the cache and the most recent connection time is less than 5 minutes, the switch will not be performed. The background thread will continue to detect the latency of the connectable network controller node. If the new node is always in a switchable state, it will be switched after 5 minutes. This can avoid ping-pong switching when the user CPE moves back and forth between the boundaries of two areas.
[0177] Figure 6 A flowchart of another network link multiplexing method provided in an embodiment of the present application, the execution subject of the method may be Figure 1 The target network controller in Figure 6 As shown, the method may include:
[0178] Step S601, receiving the corresponding sub-network message sent by the dedicated software development kit SDK through each network link.
[0179] Step S602: Aggregate the sub-network messages to obtain corresponding network messages, and send the network messages to the corresponding service website.
[0180] Among them, the sub-network message corresponding to each network link is obtained by the dedicated SDK when receiving the network message of the target application, splitting the network message according to the traffic based on the forwarding weight of each network link, and the forwarding weight of each network link is determined based on the network quality of the network link.
[0181] Specifically, when any target application in the CPE sends a network message, the dedicated SDK will intercept the network message, and the dedicated CPE needs to forward the network message to the corresponding target network controller in the cloud. In the solution of this application, the dedicated SDK will first determine the forwarding weight of each network link at the current moment, and split the intercepted network message according to the traffic according to the forwarding weight to obtain the sub-network message corresponding to each network link.
[0182] The dedicated SDK splits the intercepted network message and determines the sub-network message sent on each network link. In this step, the corresponding sub-network messages will be sent to the target network controller through each network link. After receiving the sub-network messages sent through each network link, the target network controller will aggregate these sub-network messages to obtain a complete network message. The aggregation process can be understood as the reverse process of the aforementioned splitting process, that is, the original network message is restored based on each split sub-network message. The original network message is then sent to the corresponding business website. At this point, the "upstream traffic" processing process is completed.
[0183] The solution provided by the present application, when receiving the network message of the target application, will first divide the network message according to the flow based on the forwarding weight of each network link supported by the CPE, and obtain the sub-network message of the corresponding flow that needs to be sent on each network link. Then, the sub-network messages of the corresponding flow are forwarded to the target network controller through each network link respectively, so that after receiving each sub-network message, the target network controller aggregates each sub-network message to obtain the original network message sent by the target application, and sends the original network message to the business website corresponding to the target application. The solution splits the network message by the forwarding weight of each network link determined based on the quality of each network, so that different types of network links can be fully utilized in the process of sending the network message of the target application, which maximizes the network connection performance and reliability and improves the user experience.
[0184] In an optional embodiment of the present application, the method further includes:
[0185] Receiving network message feedback information sent by the service website in response to the network message;
[0186] Based on the forwarding weight of each network link, the network message feedback information is split according to the flow rate to obtain the sub-network message feedback information corresponding to each network link;
[0187] The corresponding sub-network message is sent to the dedicated SDK through each network link.
[0188] Specifically, in the cloud, the target network controller will send the aggregated original network message to the corresponding business website, and the business website will respond to the network message and feedback the corresponding network message information to the target network controller. Then, the target network controller will send the network message feedback information to the dedicated SDK in the CPE, and the dedicated SDK will send it to the target application. In the process of the target network controller sending the network message feedback information to the dedicated SDK in the CPE, each network link can also be reused according to the forwarding right of each network link, that is, the network message feedback information is split according to the traffic based on the forwarding weight of each network link. At this time, the forwarding weight used is the forwarding weight used when splitting the network message in the corresponding "uplink traffic" processing stage. The target network controller can determine the size of the corresponding forwarding weight according to the traffic size of the sub-network message received from different network links.
[0189] Specifically, the traffic flowing down from the cloud will first reach the target network controller, and then be forwarded to the dedicated SDK by the target network controller. When receiving the uplink traffic, the target network controller will record the proportion of traffic sent through each network link, for example: WiFi, mobile network, and wired network account for 30%, 50%, and 20% respectively, and the network distribution will also be carried out according to this proportion when forwarding the downlink traffic. Since the dedicated SDK on the CPE periodically detects the network quality of each network link and adjusts the proportion of each network link in real time, the cloud controller does not need to perform network detection anymore, and can directly forward the downlink traffic according to the uplink sending strategy.
[0190] In an optional embodiment of the present application, sending the network message to the corresponding service website includes:
[0191] The network message is sent to the corresponding business website through the dedicated line link between the forwarding gateway corresponding to the target network controller and the forwarding gateway corresponding to the business website.
[0192] Further, the network message is sent to the corresponding business website through a dedicated link between the forwarding gateway corresponding to the target network controller and the forwarding gateway corresponding to the business website, including:
[0193] If the dedicated line link is a third-party dedicated line link, the network message is sent to the corresponding business website through a preset encrypted tunnel on the third-party dedicated line link.
[0194] Specifically, the above solution can speed up the transmission of CPE network traffic to the cloud, and then the network traffic is forwarded from the cloud to the business website through the public network link. Some users have high requirements for network quality (usually higher requirements for network security) and hope to speed up network transmission as much as possible. In the cloud transmission section, consider using dedicated links instead of ordinary public network links for transmission.
[0195] like Figure 7 As shown in the figure, when the network controller in city A transmits data to the business-2 website in city C, the data can be transmitted through the dedicated link between the two cities. The user ID of the VIP user (configured through the SDK) needs to be configured on the forwarding gateway. When the business traffic reaches the forwarding gateway, the gateway identifies the traffic of the VIP user and forwards it through the dedicated link. The dedicated link not only has a fast transmission rate, but also has extremely high security due to its dedicated characteristics and isolation of external traffic.
[0196] However, some cities do not have dedicated lines between them. To ensure the traffic security of VIP users, they can only go through areas with dedicated lines. Figure 7 As shown in the figure, when the traffic from city A is forwarded to city B, since there is no direct dedicated line, it needs to take a detour through city C, which undoubtedly increases the network latency. In this scenario, traffic can be forwarded with the help of a third-party dedicated line link between city A and city B. The third-party dedicated line link may be used by multiple business parties at the same time, and cannot guarantee security like a self-built dedicated line. Here, an encrypted tunnel is established between forwarding gateways for transmission. Configure the user ID to be accelerated in advance on the forwarding gateway, create a dedicated IPSEC (Internet Protocol Security) encrypted tunnel for each user, and when the user traffic reaches the forwarding gateway, it is forwarded to the corresponding IPSEC tunnel according to the user ID.
[0197] It should be noted that the above cities A, B, and C are merely illustrative and may be replaced by any other different locations.
[0198] Figure 8 A structural block diagram of another network link multiplexing device provided in an embodiment of the present application, such as Figure 8 As shown, the device 800 may include: a network message splitting module 801 and a first network message sending module 802, wherein:
[0199] The network message splitting module 801 is used to split the network message according to the flow rate based on the forwarding weight of each network link when receiving the network message of the target application, and obtain the sub-network message corresponding to each network link. The forwarding weight of each network link is determined based on the network quality of the network link;
[0200] The first network message sending module 802 is used to send the corresponding sub-network message to the target network controller through each network link, so that the target network controller can aggregate the sub-network messages to obtain the network message and send the network message to the corresponding service website.
[0201] The solution provided by the present application, when receiving the network message of the target application, will first divide the network message according to the flow based on the forwarding weight of each network link supported by the CPE, and obtain the sub-network message of the corresponding flow that needs to be sent on each network link. Then, the sub-network messages of the corresponding flow are forwarded to the target network controller through each network link respectively, so that after receiving each sub-network message, the target network controller aggregates each sub-network message to obtain the original network message sent by the target application, and sends the original network message to the business website corresponding to the target application. The solution splits the network message by the forwarding weight of each network link determined based on the quality of each network, so that different types of network links can be fully utilized in the process of sending the network message of the target application, which maximizes the network connection performance and reliability and improves the user experience.
[0202] In an optional embodiment of the present application, the device further includes a registration module, which is used to:
[0203] Send a registration request to the dedicated software development kit SDK registration center;
[0204] Receive the token and network controller address list sent by the SDK registration center after the registration request is verified;
[0205] Obtaining the target delay corresponding to each network controller in the network controller address list at intervals of a first preset period, where the target delay is the network delay between the dedicated SDK and each network controller;
[0206] The first network message sending module is specifically used for:
[0207] determining a target network controller from among the network controllers based on the target delays;
[0208] Each network link between the target network controller and the target network controller is established through the token, and the corresponding sub-network message is sent to the target network controller through each network link.
[0209] In an optional embodiment of the present application, the first network message sending module is further used to:
[0210] If it is the first time to determine the target network controller, the network controller with the smallest corresponding target delay among the network controllers is determined as the target network controller;
[0211] If it is not the first time to determine the target network controller, the network controller with the smallest corresponding target delay among the network controllers is determined as the candidate network controller, and the candidate network controller or the network controller currently connected to the dedicated SDK is determined as the target controller.
[0212] In an optional embodiment of the present application, the first network message sending module is further used to:
[0213] If the target time interval corresponding to the candidate network controller is not less than the first preset value, determining the candidate network controller as the target network controller;
[0214] If the target time interval is less than the first preset value, determining the network controller to which the dedicated SDK is currently connected as the target controller;
[0215] The target time interval is the time interval between the last time the dedicated SDK was connected to the candidate network controller and the current time.
[0216] In an optional embodiment of the present application, the device further includes a network quality acquisition module, which is used to:
[0217] The network quality of each network link is obtained at intervals of a second preset period.
[0218] In an optional embodiment of the present application, the higher the network quality of the network link, the greater the corresponding forwarding weight.
[0219] In an optional embodiment of the present application, the device further includes a network message feedback information receiving module, which is used to:
[0220] Receive the corresponding sub-network message feedback information sent by the target network controller through each network link. Each sub-network message feedback information is obtained by the target network controller by splitting the network message feedback information according to the traffic based on the forwarding weight of each network link. The network message feedback information is sent to the target network controller by the business website in response to the network message.
[0221] Fig. 9 A structural block diagram of another network link multiplexing device provided in an embodiment of the present application, such as Fig. 9 As shown, the apparatus 900 may include:
[0222] The network message receiving module 901 is used to receive the corresponding sub-network message sent by the dedicated software development tool kit SDK through each network link;
[0223] The second network message sending module 902 is used to obtain a corresponding network message by aggregating each sub-network message, and send the network message to the corresponding business website;
[0224] Among them, the sub-network message corresponding to each network link is obtained by the dedicated SDK when receiving the network message of the target application, splitting the network message according to the traffic based on the forwarding weight of each network link, and the forwarding weight of each network link is determined based on the network quality of the network link.
[0225] The solution provided by the present application, when receiving the network message of the target application, will first divide the network message according to the flow based on the forwarding weight of each network link supported by the CPE, and obtain the sub-network message of the corresponding flow that needs to be sent on each network link. Then, the sub-network messages of the corresponding flow are forwarded to the target network controller through each network link respectively, so that after receiving each sub-network message, the target network controller aggregates each sub-network message to obtain the original network message sent by the target application, and sends the original network message to the business website corresponding to the target application. The solution splits the network message by the forwarding weight of each network link determined based on the quality of each network, so that different types of network links can be fully utilized in the process of sending the network message of the target application, which maximizes the network connection performance and reliability and improves the user experience.
[0226] In an optional embodiment of the present application, the second network message sending module is specifically used for:
[0227] The network message is sent to the corresponding business website through the dedicated line link between the forwarding gateway corresponding to the target network controller and the forwarding gateway corresponding to the business website.
[0228] In an optional embodiment of the present application, the second network message sending module is further used to:
[0229] If the dedicated line link is a third-party dedicated line link, the network message is sent to the corresponding business website through a preset encrypted tunnel on the third-party dedicated line link.
[0230] In an optional embodiment of the present application, the device further includes a network message feedback information sending module, which is used to:
[0231] Receiving network message feedback information sent by the service website in response to the network message;
[0232] Based on the forwarding weight of each network link, the network message feedback information is split according to the flow rate to obtain the sub-network message feedback information corresponding to each network link;
[0233] The corresponding sub-network message is sent to the dedicated SDK through each network link.
[0234] The device of the embodiments of the present application can execute the method provided by the embodiments of the present application, and the implementation principles are similar. The actions performed by each module in the device of each embodiment of the present application correspond to the steps in the method of each embodiment of the present application. For the detailed functional description of each module of the device, please refer to the description in the corresponding method shown in the previous text, which will not be repeated here.
[0235] Reference below Fig.10 , which shows an electronic device suitable for implementing the embodiments of the present application (for example, executing Figure 2 A terminal device or a terminal device executing the method shown in Figure 8 The electronic devices in the embodiments of the present application may include but are not limited to mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), vehicle-mounted terminals (such as vehicle-mounted navigation terminals), wearable devices, etc., and fixed terminals such as digital TVs, desktop computers, etc. Fig.10 The electronic device shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0236] The electronic device includes: a memory and a processor, the memory is used to store a program for executing the method described in each of the above method embodiments; the processor is configured to execute the program stored in the memory. The processor here can be referred to as the processing device 1001 described below, and the memory can include at least one of the read-only memory (ROM) 1002, the random access memory (RAM) 1003, and the storage device 1008 described below, as shown below:
[0237] like Fig.10 As shown, the electronic device 1000 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 1001, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1002 or a program loaded from a storage device 1008 into a random access memory (RAM) 1003. In the RAM 1003, various programs and data required for the operation of the electronic device 1000 are also stored. The processing device 1001, the ROM 1002, and the RAM 1003 are connected to each other via a bus 1004. An input / output (I / O) interface 1005 is also connected to the bus 1004.
[0238] Typically, the following devices may be connected to the I / O interface 1005: an input device 1006 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 1007 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 1008 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 1009. The communication device 1009 may allow the electronic device 1000 to communicate with other devices wirelessly or by wire to exchange data. Although Fig.10 An electronic device having various devices is shown, but it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed instead.
[0239] In particular, according to an embodiment of the present application, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present application includes a computer program product, which includes a computer program carried on a non-transitory computer-readable medium, and the computer program includes a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication device 1009, or installed from the storage device 1008, or installed from the ROM 1002. When the computer program is executed by the processing device 1001, the above-mentioned functions defined in the method of the embodiment of the present application are executed.
[0240] It should be noted that the computer-readable storage medium mentioned above in the present application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device. In the present application, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, which carries a computer-readable program code. This propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
[0241] In some embodiments, the client and the server may communicate using any currently known or future developed network protocol such as HTTP (HyperText Transfer Protocol), and may be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), an internet (e.g., the Internet), and a peer-to-peer network (e.g., an ad hoc peer-to-peer network), as well as any currently known or future developed network.
[0242] The computer-readable medium may be included in the electronic device, or may exist independently without being incorporated into the electronic device.
[0243] The computer-readable medium carries one or more programs. When the one or more programs are executed by the electronic device, the electronic device:
[0244] When receiving the network message of the target application, the network message is split according to the traffic based on the forwarding weight of each network link to obtain the sub-network message corresponding to each network link. The forwarding weight of each network link is determined based on the network quality of the network link; the corresponding sub-network message is sent to the target network controller through each network link, so that the target network controller can obtain the network message based on the aggregation of each sub-network message, and send the network message to the corresponding business website.
[0245] Alternatively, receive the corresponding sub-network messages sent by the dedicated software development kit SDK through each network link; aggregate the sub-network messages to obtain the corresponding network messages, and send the network messages to the corresponding business website; wherein, the sub-network messages corresponding to each network link are obtained by the dedicated SDK when receiving the network messages of the target application, by splitting the network messages according to traffic based on the forwarding weights of each network link, and the forwarding weight of each network link is determined based on the network quality of the network link.
[0246] Computer program code for performing the operations of the present application may be written in one or more programming languages or a combination thereof, including, but not limited to, object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0247] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0248] The modules or units involved in the embodiments of the present application may be implemented by software or hardware. The name of a module or unit does not limit the unit itself in some cases. For example, the first constraint acquisition module may also be described as a "module for acquiring the first constraint".
[0249] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.
[0250] In the context of the present application, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0251] The embodiment of the present application provides a computer program product or a computer program, which includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that when the computer device executes the computer instructions, the following conditions are achieved:
[0252] When receiving the network message of the target application, the network message is split according to the traffic based on the forwarding weight of each network link to obtain the sub-network message corresponding to each network link. The forwarding weight of each network link is determined based on the network quality of the network link; the corresponding sub-network message is sent to the target network controller through each network link, so that the target network controller can obtain the network message based on the aggregation of each sub-network message, and send the network message to the corresponding business website.
[0253] Alternatively, receive the corresponding sub-network messages sent by the dedicated software development kit SDK through each network link; aggregate the sub-network messages to obtain the corresponding network messages, and send the network messages to the corresponding business website; wherein, the sub-network messages corresponding to each network link are obtained by the dedicated SDK when receiving the network messages of the target application, by splitting the network messages according to traffic based on the forwarding weights of each network link, and the forwarding weight of each network link is determined based on the network quality of the network link.
[0254] It should be understood that, although the steps in the flowchart of the accompanying drawings are displayed in sequence as indicated by the arrows, these steps are not necessarily executed in sequence in the order indicated by the arrows. Unless otherwise specified herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least a part of the steps in the flowchart of the accompanying drawings may include multiple sub-steps or multiple stages, and these sub-steps or stages are not necessarily executed at the same time, but can be executed at different times, and their execution order is not necessarily sequential, but can be executed in turn or alternately with other steps or at least a part of the sub-steps or stages of other steps.
[0255] The above descriptions are only some embodiments of the present invention. It should be pointed out that, for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present invention. These improvements and modifications should also be regarded as the scope of protection of the present invention.
Claims
1. A network link multiplexing method, characterized in that: include: When receiving a network message of a target application, the network message is split according to the flow rate based on the forwarding weight of each network link to obtain a sub-network message corresponding to each network link, wherein the forwarding weight of each network link is determined based on the network quality of the network link; The corresponding sub-network messages are sent to the target network controller through each network link, so that the target network controller obtains the network message based on the aggregation of each sub-network message and sends the network message to the corresponding business website.
2. The method according to claim 1, characterized in that The method further comprises: Send a registration request to the dedicated software development kit SDK registration center; Receiving a token and a network controller address list sent by the SDK registration center after verifying the registration request; Obtaining a target delay corresponding to each network controller in the network controller address list at intervals of a first preset period, wherein the target delay is a network delay between the dedicated SDK and each network controller; Send the corresponding sub-network message to the target network controller through each network link, including: determining a target network controller from among the network controllers based on the target delays; Each network link between the target network controller and the token is established, and the corresponding sub-network message is sent to the target network controller through each network link.
3. The method according to claim 2, characterized in that The determining of the target network controller from each network controller based on each time delay includes: If it is the first time to determine the target network controller, then the network controller with the smallest corresponding target delay among the network controllers is determined as the target network controller; If it is not the first time to determine the target network controller, the network controller with the smallest corresponding target delay among the network controllers is determined as the candidate network controller, and the candidate network controller or the network controller currently connected to the dedicated SDK is determined as the target controller.
4. The method according to claim 3, characterized in that The step of determining the candidate network controller or the network controller currently connected to the dedicated SDK as the target controller includes: If the target time interval corresponding to the candidate network controller is not less than a first preset value, determining the candidate network controller as the target network controller; If the target time interval is less than the first preset value, determining the network controller to which the dedicated SDK is currently connected as the target controller; The target time interval is the time interval between the time when the dedicated SDK was last connected to the candidate network controller and the current time.
5. The method according to claim 1, characterized in that: The method further comprises: The network quality of each network link is obtained at intervals of a second preset period.
6. The method according to claim 1 or 5, characterized in that: The higher the network quality of the network link, the greater the corresponding forwarding weight.
7. The method according to claim 1, characterized in that The method further comprises: Receive the corresponding sub-network message feedback information sent by the target network controller through each network link, each sub-network message feedback information is obtained by the target network controller splitting the network message feedback information according to the traffic based on the forwarding weight of each network link, and the network message feedback information is sent to the target network controller by the business website in response to the network message.
8. A network link multiplexing method, characterized in that: include: Receive the corresponding sub-network message sent by the dedicated software development kit SDK through each network link; Aggregating the sub-network messages to obtain corresponding network messages, and sending the network messages to the corresponding business website; Among them, the sub-network message corresponding to each network link is obtained by the dedicated SDK when receiving the network message of the target application, splitting the network message according to the traffic based on the forwarding weight of each network link, and the forwarding weight of each network link is determined based on the network quality of the network link.
9. The method according to claim 8, characterized in that The sending of the network message to the corresponding business website includes: The network message is sent to the corresponding business website through a dedicated line link between the forwarding gateway corresponding to the target network controller and the forwarding gateway corresponding to the business website.
10. The method according to claim 9, characterized in that The sending of the network message to the corresponding business website through a dedicated line link between a forwarding gateway corresponding to the target network controller and a forwarding gateway corresponding to the business website includes: If the dedicated line link is a third-party dedicated line link, the network message is sent to the corresponding business website through a preset encryption tunnel on the third-party dedicated line link.
11. The method according to claim 8, characterized in that The method further comprises: Receiving network message feedback information sent by the service website in response to the network message; Based on the forwarding weight of each network link, the network message feedback information is split according to the flow rate to obtain the sub-network message feedback information corresponding to each network link; The corresponding sub-network messages are sent to the dedicated SDK via each network link.
12. A network link multiplexing device, characterized in that: include: A network message splitting module is used to split the network message according to the flow rate based on the forwarding weight of each network link when receiving the network message of the target application, so as to obtain the sub-network message corresponding to each network link, wherein the forwarding weight of each network link is determined based on the network quality of the network link; The first network message sending module is used to send the corresponding sub-network message to the target network controller through each network link, so that the target network controller can obtain the network message based on the aggregation of each sub-network message and send the network message to the corresponding business website.
13. A network link multiplexing device, characterized in that: include: The network message receiving module is used to receive the corresponding sub-network messages sent by the dedicated software development tool kit SDK through each network link; A second network message sending module, used to obtain a corresponding network message based on aggregation of each sub-network message, and send the network message to a corresponding business website; Among them, the sub-network message corresponding to each network link is obtained by the dedicated SDK when receiving the network message of the target application, splitting the network message according to the traffic based on the forwarding weight of each network link, and the forwarding weight of each network link is determined based on the network quality of the network link.
14. A customer premises equipment (CPE), characterized in that: including memory and processor; The memory stores a computer program; The processor is configured to execute the computer program to implement the method according to any one of claims 1 to 7.
15. A network controller, characterized in that: including memory and processor; The memory stores a computer program; The processor is configured to execute the computer program to implement the method according to any one of claims 8 to 11.
16. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 11 is implemented.