Network scheduling method and device, electronic equipment and storage medium

By deploying and configuring services in network nodes to communicate with the cloud controller, receiving and executing network scheduling instructions, the problem of high scheduling costs and low efficiency caused by the increase in the number of network nodes is solved, and efficient network traffic scheduling is achieved.

CN120881025APending Publication Date: 2025-10-31TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410534824.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-04-29
Publication Date
2025-10-31

AI Technical Summary

Technical Problem

In existing technologies, as the number of network nodes increases, network scheduling becomes costly and inefficient, requiring manual configuration of scheduling rules, which leads to a decrease in network scheduling efficiency.

Method used

By deploying and configuring services in network nodes, a communication connection is established with the cloud controller, receiving and executing network scheduling instructions sent by the cloud controller, and scheduling in multiple network tunnels according to traffic scheduling rules.

Benefits of technology

It improves the configuration efficiency of network scheduling, reduces network scheduling costs, expands the scope of application of network scheduling, and enhances network scheduling efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120881025A_ABST
    Figure CN120881025A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a network scheduling method and device, electronic equipment and a storage medium, and the method comprises the steps that a network node can establish communication connection with a cloud controller through a set service contained in the network node, thereby receiving a network scheduling instruction sent by the cloud controller through the communication connection, and searching a plurality of network tunnels established with any other network node according to the network scheduling instruction, and scheduling network traffic borne by the plurality of network tunnels in the plurality of network tunnels according to a traffic scheduling rule contained in the network scheduling instruction and tunnel quality corresponding to the plurality of network tunnels. According to the technical scheme, the network scheduling cost can be reduced, and the network scheduling efficiency can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communications, and more specifically, to a network scheduling method and apparatus, electronic equipment, storage medium, and program product. Background Technology

[0002] To enhance data security, network tunnels can be created to transmit network traffic. Multiple network tunnels can be created between network nodes. To ensure data transmission quality, network nodes can schedule network traffic across multiple network tunnels; for example, network traffic can be redirected from one network tunnel to another for transmission.

[0003] In related technologies, network operators typically need to log in to network nodes and configure scheduling rules within them so that the network nodes can perform scheduling according to these rules. As the number of network nodes increases, configuration efficiency decreases and labor costs increase, thereby increasing network scheduling costs and reducing network scheduling efficiency. Summary of the Invention

[0004] Embodiments of this application provide a network scheduling method and apparatus, electronic device, storage medium, and program product, which can reduce network scheduling costs and improve network scheduling efficiency.

[0005] In a first aspect, embodiments of this application provide a network scheduling method, the method comprising:

[0006] Establish a communication connection between the service and the cloud controller by configuring the service;

[0007] The network scheduling instruction sent by the cloud controller is received through the communication connection; wherein the network scheduling instruction contains traffic scheduling rules.

[0008] According to the network scheduling instructions, locate multiple network tunnels established with any other network node;

[0009] Based on the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels, the network traffic carried by the multiple network tunnels is scheduled among the multiple network tunnels.

[0010] Secondly, embodiments of this application provide a network scheduling method, the method comprising:

[0011] A communication connection is established with the network node through the configuration services contained in the network node;

[0012] Obtain traffic scheduling rules and generate network scheduling instructions based on the obtained traffic scheduling rules;

[0013] The network scheduling command is sent to the network node through the communication connection, so that the network node can find multiple network tunnels established with any other network node according to the received network scheduling command, and schedule the network traffic carried by the multiple network tunnels in the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels.

[0014] Thirdly, embodiments of this application provide a network scheduling device, the device comprising:

[0015] The connectivity module is configured to establish a communication connection with the cloud controller by setting a service.

[0016] The receiving module is configured to receive network scheduling instructions sent by the cloud controller through the communication connection; wherein the network scheduling instructions include traffic scheduling rules.

[0017] The search module is configured to search for multiple network tunnels established with any other network node according to the network scheduling instructions.

[0018] The scheduling module is configured to schedule the network traffic carried by the multiple network tunnels in the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels.

[0019] Fourthly, embodiments of this application provide a network scheduling apparatus, the apparatus comprising:

[0020] The connection module is configured to establish a communication connection with the network node through a set service included in the network node;

[0021] The generation module is configured to obtain traffic scheduling rules and generate network scheduling instructions based on the obtained traffic scheduling rules.

[0022] The sending module is configured to send the network scheduling instruction to the network node through the communication connection, so that the network node can find multiple network tunnels established with any other network node according to the received network scheduling instruction, and schedule the network traffic carried by the multiple network tunnels in the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels.

[0023] Fifthly, embodiments of this application provide an electronic device, including:

[0024] One or more processors;

[0025] A storage device for storing one or more computer programs that, when executed by one or more processors, cause the electronic device to perform the method described above.

[0026] Sixthly, embodiments of this application provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor of an electronic device, causes the electronic device to perform the method described above.

[0027] In a seventh aspect, embodiments of this application provide a computer program product, including a computer program that, when executed by a processor, implements the method described above.

[0028] In the technical solution provided in the embodiments of this application, a network node can establish a communication connection with the cloud controller through its configuration service. This connection allows the node to receive network scheduling instructions from the cloud controller and locate multiple network tunnels established with any other network node. Based on the traffic scheduling rules contained in the network scheduling instructions and the tunnel quality corresponding to each network tunnel, the node schedules network traffic carried by multiple network tunnels. In other words, by configuring traffic scheduling rules in the network node through the cloud controller, configuration efficiency is improved, network scheduling costs are reduced, and network scheduling efficiency is increased. Furthermore, the network node only needs to deploy the configuration service to establish a communication connection with the cloud controller, thereby performing traffic scheduling under the control of the cloud controller, further reducing network scheduling costs and expanding the applicability of network scheduling.

[0029] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and do not limit this application. Attached Figure Description

[0030] Figure 1 This is a schematic diagram illustrating an implementation environment as shown in an exemplary embodiment of this application;

[0031] Figure 2 This is a flowchart illustrating a network scheduling method in an exemplary embodiment of this application;

[0032] Figure 3 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0033] Figure 4 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0034] Figure 5 This is a schematic diagram illustrating the connection of network nodes in an exemplary embodiment of this application;

[0035] Figure 6 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0036] Figure 7 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0037] Figure 8 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0038] Figure 9 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0039] Figure 10 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0040] Figure 11 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0041] Figure 12 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0042] Figure 13 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0043] Figure 14 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0044] Figure 15 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0045] Figure 16 This is a schematic diagram illustrating an implementation environment as shown in another exemplary embodiment of this application;

[0046] Figure 17 This is a flowchart illustrating a network scheduling method in another exemplary embodiment of this application;

[0047] Figure 18 This is a structural diagram of a network scheduling apparatus illustrating another exemplary embodiment of this application;

[0048] Figure 19 This is a structural diagram of a network scheduling apparatus illustrating another exemplary embodiment of this application;

[0049] Figure 20 A schematic diagram of the structure of a computer system suitable for implementing the electronic device of the present application is shown. Detailed Implementation

[0050] Exemplary embodiments will now be described in a more comprehensive manner with reference to the accompanying drawings. However, the exemplary embodiments can be implemented in various forms and should not be construed as limited to these examples; rather, these embodiments are provided so that this application will be more comprehensive and complete, and will fully convey the concept of the exemplary embodiments to those skilled in the art.

[0051] Furthermore, the features, structures, or characteristics described in this application can be combined in any suitable manner in one or more embodiments. Numerous specific details are provided in the following description to provide a full understanding of the embodiments of this application. However, those skilled in the art will recognize that when implementing the technical solutions of this application, not all the detailed features in the embodiments may be used, one or more specific details may be omitted, or other methods, elements, devices, steps, etc., may be employed.

[0052] In this application embodiment, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.

[0053] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities can be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.

[0054] The flowcharts shown in the accompanying drawings are merely illustrative and do not necessarily include all content and operations / steps, nor do they necessarily have to be performed in the described order. For example, some operations / steps can be broken down, while others can be combined or partially combined; therefore, the actual execution order may change depending on the specific circumstances.

[0055] It should also be noted that "multiple" as mentioned in this application refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.

[0056] The technical solutions of the embodiments of this application are described in detail below:

[0057] In related technologies, network operators typically need to log into network nodes and configure scheduling rules within them so that the network nodes can perform scheduling according to these rules. As the number of network nodes increases, configuration efficiency decreases while labor costs increase, thus increasing network scheduling costs and reducing efficiency. Therefore, embodiments of this application provide a network scheduling method and apparatus, electronic device, storage medium, and program product that can reduce network scheduling costs and improve network scheduling efficiency.

[0058] Please see Figure 1 , Figure 1 This is a schematic diagram of an implementation environment involved in this application. The implementation environment includes a cloud controller 110 and network nodes 120. Each network node 120 includes a configuration service, and the network node 120 establishes a communication connection with the cloud controller 110 through the configuration service.

[0059] Among them, the cloud controller 110 is deployed in the cloud and can be a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms.

[0060] Network node 120 refers to any node with communication capabilities, including but not limited to terminal devices, servers, switches, routers, programmable switches, etc. Terminal devices may include, but are not limited to, mobile phones, tablets, laptops, computers, voice interaction devices, home appliances, vehicle terminals, aircraft, remote driving terminals, payment devices (e.g., palm-swipe devices), etc. Servers can be independent physical servers, server clusters or distributed systems composed of multiple physical servers, or cloud servers. Servers can be deployed in the core network or at the network edge (i.e., edge servers). No specific restrictions are placed on the form of terminal devices and servers here. Network tunnels can be established between network nodes 120.

[0061] It should be noted that, Figure 1 The number of cloud controllers 110 and network nodes 120 shown is merely illustrative; any number of cloud controllers 110 and network nodes 120 can be used as needed.

[0062] In an exemplary embodiment, the network scheduling method provided in this application can be jointly executed by a cloud controller 110 and network nodes 120. For example, any network node 120 can establish a communication connection with the cloud controller 110 through a configuration server. Then, after obtaining traffic scheduling rules, the cloud controller 110 can generate network scheduling instructions based on the traffic scheduling rules and send the network scheduling instructions to the network node 120 through the communication connection. The network node 120 searches for multiple network tunnels established between itself and any other network node according to the network scheduling instructions, and schedules the network traffic carried by multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each network tunnel. On the one hand, configuring traffic scheduling rules in network nodes through the cloud controller improves configuration efficiency, reduces network scheduling costs, and improves network scheduling efficiency. On the other hand, network nodes only need to deploy configuration services to establish a communication connection with the cloud controller, thereby performing traffic scheduling under the control of the cloud controller, which can further reduce network scheduling costs and expand the applicability of network scheduling.

[0063] See Figure 2 , Figure 2 This is a flowchart illustrating a network scheduling method in an exemplary embodiment of this application. The method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0064] like Figure 2 As shown, in an exemplary embodiment, the network scheduling method may include S210-S240, which are described in detail below:

[0065] S210 establishes a communication connection between the service and the cloud controller by configuring the service.

[0066] It should be noted that a network node refers to any node with communication capabilities, including but not limited to terminal devices, servers, switches, routers, programmable switches, etc. Servers include, but are not limited to, mid-edge servers. Network nodes deploy configuration services to establish communication connections with the cloud controller for data exchange. These configuration services can be deployed in network nodes using bare metal, containers, virtual machines, etc.

[0067] After the configuration service is deployed in the network node, the network node can establish a communication connection with the cloud controller through the configuration service.

[0068] Optionally, the configuration service can include the cloud controller's Internet Protocol Address (IP address). After the configuration service is deployed on a network node, it can proactively establish a communication connection with the cloud controller based on the cloud controller's IP address.

[0069] S220 receives network scheduling instructions sent by the cloud controller via a communication connection; these instructions include traffic scheduling rules.

[0070] Network scheduling commands are used to trigger network traffic scheduling, while traffic scheduling rules are used to indicate how network traffic should be scheduled.

[0071] When it is necessary to schedule network traffic transmitted by network nodes, the cloud controller can obtain traffic scheduling rules and generate network scheduling instructions containing traffic scheduling rules. The network scheduling instructions are then sent to the network nodes through the communication connection between the controller and the network nodes to achieve traffic scheduling.

[0072] The specific process of the cloud controller generating network scheduling instructions can be found in subsequent records and will not be repeated here.

[0073] S230 searches for multiple network tunnels established with any other network node according to network scheduling instructions.

[0074] Network tunneling is an encapsulation technology that uses one network protocol to transmit data corresponding to another network protocol. In other words, it uses a network transmission protocol to encapsulate data packets generated by another network protocol within its own packet, and then transmits the encapsulated packet over the network. A network tunnel is a virtual point-to-point connection, and the tunnel interface is a virtual interface that supports point-to-point connections. A network tunnel provides a path for the transmission of encapsulated data packets, and data packets can be encapsulated and decapsulated at both ends of the tunnel. Tunneling technology includes data encapsulation, transmission, and decapsulation.

[0075] Network nodes can establish network tunnels with other network nodes. To enhance data transmission security, these tunnels can be encrypted, such as Internet Protocol Security (IPsec) tunnels or encrypted Virtual Extensible Local Area Network (VXLAN) tunnels. Alternatively, they can be unencrypted. Tunnel establishment can be manually triggered, meaning the tunnel's parameters are manually configured; or it can be triggered by the cloud controller. Specific procedures will be detailed later.

[0076] Network traffic can be transmitted through network tunnels. If multiple network tunnels are established between a network node and any other network node, since these tunnels share the same endpoints, to ensure data transmission quality, the network traffic carried in any one of these tunnels can be redirected to other network tunnels within the network tunnel network for transmission. Here, network traffic carried in a network tunnel refers to network traffic transmitted through the network tunnel. Therefore, upon receiving a network scheduling instruction, a network node can search for the multiple network tunnels established between itself and any other network node. In other words, a network node can search for multiple network tunnels with the same endpoints among its own network tunnels with other network nodes. This means that in each of the multiple network tunnels, one endpoint is the network node, and the other endpoint is the same other network node.

[0077] S240 schedules network traffic carried by multiple network tunnels based on traffic scheduling rules and the tunnel quality corresponding to each network tunnel.

[0078] Tunnel quality is used to characterize the performance of a network tunnel. It can be determined based on tunnel quality parameters that characterize the network tunnel quality. These parameters include, but are not limited to, network tunnel load parameters and network parameters. Network parameters include, but are not limited to, at least one of the following: latency, packet loss rate, and link utilization. In one optional approach, test packets can be transmitted through the network tunnel to determine the tunnel quality based on the transmission of these test packets. The network quality can be measured periodically.

[0079] For multiple network tunnels identified, since their tunnel endpoints are the same, network traffic carried in any one network tunnel can be transmitted to the destination network node through other network tunnels. Therefore, network traffic carried in multiple network tunnels can be scheduled. To ensure the data transmission quality of network traffic, network nodes can obtain the tunnel quality corresponding to each of the multiple network tunnels and parse the traffic scheduling rules from the network scheduling instructions. Then, based on the traffic scheduling rules and tunnel quality, network traffic carried in multiple network tunnels can be scheduled. The specific traffic scheduling rules can be flexibly set according to actual needs. In an optional example, network tunnels with poor tunnel quality and those with good tunnel quality can be identified from the multiple network tunnels. Network traffic carried in the network tunnel with poor tunnel quality can be scheduled to be transmitted through the network tunnel with good tunnel quality. For example, assuming the multiple network tunnels include network tunnel 1 and network tunnel 2, and network tunnel 1 carries network traffic 'a', if the tunnel quality of network tunnel 1 is poor and the tunnel quality of network tunnel 2 is good, then network traffic 'a' can be scheduled from network tunnel 1 to network tunnel 2, thereby transmitting network traffic 'a' through network tunnel 2. In another optional example, the traffic scheduling rules include traffic outgoing rules and traffic incoming rules. The traffic outgoing rules can be used to find the network traffic that needs to be outgoing from the network traffic carried by multiple network tunnels, and the traffic incoming rules can be used to find the network tunnel that can receive network traffic. Thus, the found network traffic is scheduled to the found network tunnel. The specific content of the traffic outgoing rules and traffic incoming rules can be flexibly set according to actual needs.

[0080] The specific scheduling implementation can be flexibly set according to actual needs. In an optional example, after the network node determines the scheduling method based on the traffic scheduling rules and the tunnel quality corresponding to multiple network tunnels, it can write the corresponding filtering rules in the kernel. This allows network traffic to be transmitted based on the filtering rules when it hits them. For example, iptables rules corresponding to the scheduling method can be generated to achieve scheduling. Here, iptables is an IP packet filtering system integrated into the kernel.

[0081] In an optional implementation, a configuration service deployed in the network node can parse the network scheduling instructions to obtain traffic scheduling rules, and the configuration service can schedule the network traffic carried by the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to the multiple network tunnels respectively.

[0082] exist Figure 2In the illustrated embodiment, on the one hand, by configuring traffic scheduling rules in network nodes through the cloud controller, configuration efficiency is improved, network scheduling costs are reduced, and network scheduling efficiency is increased; on the other hand, network nodes only need to deploy and configure services to establish a communication connection with the cloud controller, thereby performing traffic scheduling under the control of the cloud controller, which can further reduce network scheduling costs and expand the applicability of network scheduling.

[0083] In one exemplary embodiment, see Figure 3 , Figure 3 Is Figure 2 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0084] like Figure 3 As shown, the network scheduling method also includes S310-S330, which are described in detail below:

[0085] The S310 receives tunnel creation instructions sent by the cloud controller via a communication connection.

[0086] Under the control of the cloud controller, network nodes can establish network tunnels with other network nodes. The cloud controller generates a tunnel creation command, which includes tunnel attribute information and node identification information corresponding to the first and second network nodes to be created. Then, the cloud controller sends the tunnel creation command to the first network node via a communication connection and to the second network node via a communication connection, enabling the first and second network nodes to create a network tunnel between themselves based on the command. The tunnel attribute information characterizes the attributes of the network tunnel, including but not limited to tunnel identification information, IP addresses within the tunnel, and routing configuration information. Tunnel identification information includes, but is not limited to, a tunnel identity document (ID). The IP addresses within the tunnel include the IP addresses of the network nodes acting as tunnel endpoints within the tunnel, which will be used for subsequent data transmission through the tunnel. For a detailed description of the routing configuration information, please refer to subsequent descriptions; it will not be repeated here. The node identification information identifies the network nodes, and its types include, but are not limited to, the network node's IP address and hardware address. It should be noted that the process of generating the tunnel creation command can be found in the subsequent embodiments; it will not be repeated here.

[0087] Any network node can act as either the first or second network node, receiving tunnel creation instructions sent by the cloud controller via a communication connection.

[0088] S320 obtains tunnel attribute information and node identification information of other network nodes from the tunnel creation command.

[0089] The tunnel creation command contains tunnel attribute information and node identification information of the network nodes that serve as tunnel endpoints. After receiving the tunnel creation command, the network node indicates that it is one of the tunnel endpoints of the network tunnel to be created. Therefore, the network node can parse the tunnel creation command to obtain the tunnel attribute information and the node identification information of other network nodes in addition to its own node identification information.

[0090] S330: Based on tunnel attribute information, create network tunnels between network nodes corresponding to node identification information.

[0091] After obtaining the node identification information and tunnel attribute information of other network nodes from the tunnel creation command, the network node can create a network tunnel between other network nodes corresponding to the node identification information, and configure the network tunnel according to the tunnel attribute information, thereby creating a network tunnel that matches the tunnel attribute information.

[0092] It should be noted that, Figure 3 For specific implementation details of S210-S240 shown, please refer to Figure 2 S210-S240 shown will not be described again here.

[0093] exist Figure 3 In the illustrated embodiment, network nodes can create network tunnels with other network nodes under the control of the cloud controller, thereby enabling network formation based on the cloud controller and improving tunnel creation efficiency and network formation efficiency.

[0094] In one exemplary embodiment, see Figure 4 , Figure 4 Is Figure 3 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0095] like Figure 4 As shown, if the tunnel attribute information includes routing configuration information, S330 can include S410-S420, as detailed below:

[0096] S410, Create a virtual network tunnel between network nodes corresponding to the node identification information.

[0097] After obtaining tunnel attribute information and node identification information of other network nodes from the tunnel creation command, the network node can establish a network tunnel with other network nodes based on the node identification information. This network tunnel can be a virtual network tunnel.

[0098] S420 configures the routing table of the virtual network tunnel according to the routing configuration information, so as to transmit network traffic to the network node corresponding to the node identification information through the virtual network tunnel based on the routing table.

[0099] The tunnel attribute information includes routing configuration information, which is used to configure the routing table of the created network tunnel. The routing table contains routing information, and each route entry can include the destination IP address and its next hop. For example, if a network tunnel needs to be established between a network node with IP address 172.8.8.8, and this IP address can be reached through server B, then the next hop for the destination IP address 172.8.8.8 in the routing table is server B. The routing configuration information can also include routing methods, including static routing and dynamic routing. Static routing is a manually configured routing method, while dynamic routing is a method that automatically acquires routes and builds a routing table, learning routes based on information exchanged with other network nodes and updating the routing table accordingly. The choice between dynamic and static routing can be determined based on at least one of the following factors: network size, network stability, and network node resources (e.g., CPU and memory resources). For example, if the network is large and its stability is low (i.e., the connections between networks change frequently), dynamic routing can be used; if the network is small and its stability is high, static routing can be used. Alternatively, since dynamic routing consumes more CPU and memory resources, it can be used for network nodes with more resources and static routing for network nodes with fewer resources.

[0100] After a network node establishes a network tunnel with other network nodes, the network node can configure a routing table for the network tunnel based on the routing configuration information. If the routing method in the routing configuration information is static routing, it can also contain routing information so that the network node can generate a routing table corresponding to the network tunnel. The routing information in the routing configuration information can be configured by the user (e.g., operations and maintenance personnel) in the cloud controller. If the routing method in the routing configuration information is dynamic routing, the network node can automatically learn the routing information and generate a routing table for the network tunnel based on the learned routing information. The network node can obtain the dynamic routing protocol and automatically learn the routing information based on the dynamic routing protocol. The dynamic routing protocol can be pre-configured in the settings service, or the routing configuration information can contain the dynamic routing protocol, which the network node can obtain from the routing configuration information. The types of dynamic routing protocols include, but are not limited to, at least one of Border Gateway Protocol (BGP), OpenShortest Path First (OSPF), and Routing Information Protocol (RIP). If the dynamic routing protocol is BGP, then Autonomous System (AS) numbers can be assigned to network nodes, neighbor relationships between network nodes and adjacent network nodes can be configured, the IP addresses and AS numbers of neighboring network nodes can be configured, and network numbers that need to be advertised externally based on BGP can be configured (for example, the network number of a subnet directly connected to the network node). After configuration, network nodes can learn routes from other network nodes based on the configured information and BGP, thereby generating a routing table.

[0101] Optionally, network nodes can configure the routing table of the network tunnel based on Virtual Routing and Forwarding (VRF) technology. During the configuration process, a VRF instance corresponding to the network tunnel can be generated, along with its corresponding routing table. Correspondingly, another network node acting as a tunnel endpoint will also receive a tunnel creation command. It can then generate a VRF instance corresponding to the network tunnel and its corresponding routing table, thereby creating a network tunnel through the VRF instances in the network node and other network nodes. VRF is a technology that creates multiple independent routing tables on the same router. After creating the VRF instance corresponding to the network tunnel, subsequent transmission can be based on the VRF instance, for example, see [link to documentation]. Figure 5As shown, multiple network tunnels are established between network node A and network node B. Each network tunnel is connected through a virtual routing forwarding instance created in network node A and network node B. Virtual routing forwarding instance 1 is the virtual routing forwarding instance corresponding to the first network tunnel, virtual routing forwarding instance 2 is the virtual routing forwarding instance corresponding to the second network tunnel, and virtual routing forwarding instance 3 is the virtual routing forwarding instance corresponding to the third network tunnel.

[0102] It should be noted that among the multiple network tunnels established between a network node and any other gateway node, the routing tables corresponding to different network tunnels can be different, thereby achieving tunnel isolation.

[0103] Optionally, the creation of a network tunnel can be performed by a configuration service.

[0104] It should be noted that, Figure 4 For specific implementation details of S210-S240 shown, please refer to Figure 2 S210-S240 are shown. Figure 4 For specific implementation details of S310-S320 shown, please refer to Figure 3 S310-S320 shown will not be described again here.

[0105] exist Figure 4 In the illustrated embodiment, network nodes can configure the routing table of network tunnels under the control of the cloud controller. Users can configure the routing of network tunnels created by network nodes through the cloud server, thereby improving routing configuration efficiency and tunnel creation efficiency.

[0106] In one exemplary embodiment, see Figure 6 , Figure 6 Is Figure 2 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0107] like Figure 6 As shown, if the traffic scheduling rules include both traffic outbound rules and traffic inbound rules, S240 can include S610-S620, which are described in detail below:

[0108] S610, based on the first tunnel quality threshold contained in the traffic outgoing rule, the second tunnel quality threshold contained in the traffic incoming rule, and the tunnel quality corresponding to each of the multiple network tunnels, search for the target network traffic to be outgoing and the target network tunnel corresponding to the target network traffic from the multiple network tunnels; the first tunnel quality threshold is less than or equal to the second tunnel quality threshold.

[0109] Outbound traffic rules can include a first tunnel quality threshold, while inbound traffic rules can include a second tunnel quality threshold. The first tunnel quality threshold is used to determine whether to schedule network traffic, and the second tunnel quality threshold is used to determine whether a network tunnel can accept network traffic carried by other network tunnels. Both the first and second tunnel quality thresholds are set for tunnel quality, and the first tunnel quality threshold is less than or equal to the second tunnel quality threshold. The specific form of the tunnel quality thresholds can be flexibly set according to actual needs.

[0110] In an optional example, the tunnel quality threshold can be a threshold set for the tunnel quality score. That is, the tunnel quality threshold includes a tunnel quality score threshold, where tunnel quality is represented by a tunnel quality score that characterizes the level of tunnel quality. The tunnel quality score is positively correlated with tunnel quality. Correspondingly, if the tunnel quality score of a network tunnel is higher than the tunnel quality score threshold, then the tunnel quality of the network tunnel is determined to be higher than the tunnel quality threshold; if the tunnel quality score of a network tunnel is lower than the tunnel quality score threshold, then the tunnel quality of the network tunnel is determined to be lower than the tunnel quality threshold. The tunnel quality score of the network tunnel can be calculated based on the tunnel quality parameters of the network tunnel. If there are multiple tunnel quality parameters, the quality score corresponding to each tunnel quality parameter can be calculated, and then the quality scores corresponding to the multiple tunnel quality parameters are weighted and summed to obtain the tunnel quality score of the network tunnel. The weights corresponding to different types of tunnel quality parameters can be set according to actual needs. The tunnel quality score threshold in the first tunnel quality threshold is less than or equal to the tunnel quality score threshold in the second tunnel quality threshold. For example, if the tunnel quality score threshold in the first tunnel quality threshold is 30, then the tunnel quality score threshold in the second tunnel quality threshold is greater than or equal to 30.

[0111] In another optional example, the tunnel quality threshold can include parameter thresholds corresponding to the tunnel quality parameters. If the tunnel quality parameters of the network tunnel are better than the parameter thresholds, then the tunnel quality of the network tunnel is determined to be higher than the tunnel quality threshold; if the tunnel quality parameters of the network tunnel are worse than the parameter thresholds, then the tunnel quality of the network tunnel is determined to be lower than the tunnel quality threshold. The relative merits of the tunnel quality parameters and parameter thresholds can be determined based on the type of the tunnel quality parameters. If the value of the tunnel quality parameter is positively correlated with tunnel quality, then the tunnel quality parameter is determined to be better than the parameter threshold if the tunnel quality parameter is greater than the parameter threshold. For example, for signal-to-noise ratio (SNR), a higher SNR indicates better tunnel quality; therefore, if the SNR is greater than the SNR threshold, then the SNR is determined to be better than the SNR threshold. If the value of the tunnel quality parameter is negatively correlated with tunnel quality, then the tunnel quality parameter is determined to be better than the parameter threshold if the tunnel quality parameter is less than the parameter threshold. For example, for latency, a lower latency indicates better tunnel quality; therefore, if the latency is less than the latency threshold, then the latency is determined to be better than the latency threshold. Optionally, if the tunnel quality threshold includes parameter thresholds corresponding to multiple tunnel quality parameters, then the tunnel quality of the network tunnel can be determined to be higher than the tunnel quality threshold if all tunnel quality parameters of the network traffic are better than their corresponding parameter thresholds, and lower than the tunnel quality threshold if there is a tunnel quality parameter among the multiple tunnel quality parameters that is worse than its corresponding parameter threshold. Specifically, the parameter thresholds included in the first tunnel quality threshold are worse than or equal to the parameter thresholds included in the second tunnel quality threshold. For example, the second tunnel quality threshold and the first tunnel quality threshold can be as shown in Table 1 below. If the latency, packet loss rate, and link utilization of the network tunnel are lower than 30 ms, 1%, and 100%, respectively, it indicates that the tunnel quality of the network tunnel is higher than the second tunnel quality threshold. If any one of the network tunnel's latency, packet loss rate, or link utilization is greater than 60 ms, 3%, and 50%, it indicates that the tunnel quality of the network tunnel is lower than the first tunnel quality threshold.

[0112]

[0113]

[0114] Table 1

[0115] Target network traffic refers to network traffic that needs to be diverted from its current network tunnel to other network tunnels. The current network tunnel of the network traffic is the network tunnel to which the network traffic currently belongs, that is, the network tunnel used to carry the network traffic before diversion. The target network tunnel is the network tunnel used to receive the target network traffic, that is, the network tunnel used to carry the target network traffic after diversion.

[0116] Network nodes can use a first tunnel quality threshold, a second tunnel quality threshold, and the tunnel quality of each of the multiple network tunnels to search for the target network traffic and its corresponding target network tunnel from among multiple network tunnels. It should be noted that, for scheduling purposes, the current network tunnel for the target network traffic is different from the target network tunnel itself. In other words, it is necessary to search for the target network tunnel from among the other network tunnels included in the multiple network tunnels, excluding the current network tunnel for the target network traffic.

[0117] The specific search method can be flexibly configured according to actual needs. In an optional example, network tunnels with network quality lower than a first tunnel quality threshold can be searched from multiple network tunnels. The network traffic carried in the searched network tunnels is used as the target network traffic. Meanwhile, network tunnels with network quality higher than a second tunnel quality threshold can be searched from multiple network tunnels and used as the target network tunnels corresponding to the target network traffic. This way, the network traffic carried in the network tunnel with poor tunnel quality is scheduled to the network tunnel with better tunnel quality, thereby improving the data transmission quality.

[0118] S620 redirects target network traffic from the current network tunnel to the target network tunnel.

[0119] Once the target network traffic and the corresponding target network tunnel are determined, the network node can schedule the target network traffic from its current network tunnel to the target network tunnel.

[0120] It should be noted that, Figure 6 For specific implementation details of S210-S230 shown, please refer to Figure 2 S210-S230 shown will not be described again here.

[0121] exist Figure 6 In the illustrated embodiment, the traffic scheduling rule includes traffic outgoing rules and traffic incoming rules. The traffic outgoing rules include a first tunnel quality threshold, and the traffic incoming rules include a second tunnel quality threshold. The first tunnel quality threshold is less than or equal to the second tunnel quality threshold. Based on the first tunnel quality threshold, the second tunnel quality threshold, and the tunnel quality corresponding to multiple network tunnels, the target network traffic and the target network tunnel corresponding to the target network traffic are searched from the multiple network tunnels. This allows the target network traffic to be scheduled from the current network tunnel to the target network tunnel, thereby improving scheduling accuracy and the transmission quality of the network traffic after scheduling.

[0122] In one exemplary embodiment, see Figure 7 , Figure 7 Is Figure 6The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0123] like Figure 7 As shown, S610 can include S710-S750, detailed below:

[0124] S710 retrieves the current network tunnel and the default network tunnel for any network traffic among multiple network tunnels.

[0125] It should be noted that the default network tunnel for network traffic refers to the default network tunnel corresponding to that network traffic. Under normal circumstances, network traffic is transmitted through its corresponding default network tunnel. Optionally, the initial network tunnel (i.e., the network tunnel initially used to carry the network traffic) can be used as the default network tunnel for that network traffic. The initial network tunnel can be randomly selected from multiple network tunnels; alternatively, a network tunnel can be pre-set as the default network tunnel. The default network tunnels corresponding to multiple network traffic transmissions between a network node and any other network node can be the same or different. Furthermore, the default network tunnels for different network tunnels can be the same or different.

[0126] In this embodiment, the target network flow can be determined by combining whether the current network tunnel and the default network tunnel of the network traffic match. During the determination process, for any network traffic carried in multiple network tunnels, the current network tunnel and the default network tunnel of that network traffic can be obtained.

[0127] S720, if the current network tunnel of any network traffic does not match the default network tunnel, and the tunnel quality of the current network tunnel of any network traffic is less than the first tunnel quality threshold, then any network traffic shall be used as the target network traffic.

[0128] The first tunnel quality threshold is used to measure whether the tunnel quality of a network tunnel is poor. If the tunnel quality of a network tunnel is less than the first tunnel quality threshold, it indicates that the tunnel quality of the network tunnel is poor, and the network traffic contained in the network tunnel can be retrieved.

[0129] For any network traffic carried in multiple network tunnels, the current network tunnel of the network traffic can be compared with the default network tunnel, and the tunnel quality of the current network tunnel can be compared with a first tunnel quality threshold. If the comparison result shows that the current network tunnel matches the default network tunnel, and the tunnel quality of the current network tunnel is less than the first tunnel quality threshold, it indicates that the tunnel quality of the current network tunnel of the network traffic is low. Therefore, this network traffic can be used as the target network traffic. Specifically, the current network tunnel of the network traffic can be compared with the default network tunnel first; if they do not match, then the tunnel quality of the current network tunnel of the network traffic can be compared with the first tunnel quality threshold. Alternatively, the tunnel quality of the current network tunnel of the network traffic can be compared with the first tunnel quality threshold first; if the tunnel quality of the current network tunnel is less than the first tunnel quality threshold, then the current network tunnel of the network traffic can be compared with the default network tunnel. Alternatively, both tunnel and tunnel quality can be compared simultaneously. In this embodiment, the order of tunnel comparison and tunnel quality comparison is not restricted.

[0130] S730 searches for incoming network tunnels whose tunnel quality is greater than the second tunnel quality threshold from multiple network tunnels.

[0131] After determining the target network traffic, in order to ensure the transmission quality of the target network traffic after scheduling, the network node can search for the incoming network tunnel with a tunnel quality greater than the second tunnel quality threshold from multiple network tunnels. That is, the tunnel quality of the incoming network tunnel is greater than the second tunnel quality threshold.

[0132] S740: If an incoming network tunnel is found, the incoming network tunnel will be used as the target network tunnel for any network traffic.

[0133] If an incoming network tunnel is found, the outgoing tunnel is used as the target network tunnel for any network traffic, thus redirecting the network traffic to a network tunnel with better tunnel quality. Since the current network tunnel quality for any network traffic is below a first tunnel quality threshold, while the incoming network tunnel quality is above a second tunnel quality threshold (the first tunnel quality threshold is less than or equal to the second), the incoming network tunnel is different from the current network tunnel for that network traffic. Using the incoming network tunnel as the target network tunnel for that network traffic not only ensures the transmission quality of that network traffic but also improves the scheduling success rate.

[0134] If no incoming network tunnel is found in the S750, the default network tunnel of any network traffic will be used as the target network tunnel for that network traffic.

[0135] If no incoming network tunnel is found, the default network tunnel of any network traffic can be used as the target network tunnel for that network traffic, thereby routing the network traffic to the default network tunnel.

[0136] It should be noted that, Figure 7 For specific implementation details of S210-S230 shown, please refer to Figure 2 S210-S230 shown, Figure 7 For specific implementation details of the S620 shown, please refer to [link / reference]. Figure 6 The S620 shown here will not be described in detail here.

[0137] exist Figure 7 In the illustrated embodiment, network nodes schedule network traffic based on whether the current network tunnel of the network traffic matches the default network tunnel, the tunnel quality of the current network tunnel of the network traffic, and the tunnel quality of other network tunnels. This can ensure the transmission quality of network traffic and improve scheduling accuracy.

[0138] In one exemplary embodiment, see Figure 8 , Figure 8 Is Figure 7 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0139] like Figure 8 As shown, S610 may also include S810, which is described in detail below:

[0140] S810, if the current network tunnel of any network traffic matches the default network tunnel and an incoming network tunnel is found, then any network traffic is taken as the target network traffic and the incoming network tunnel is taken as the target network tunnel corresponding to any network traffic.

[0141] If the current network tunnel of any network traffic matches the default network tunnel and an incoming network tunnel is found, then any network traffic can be used as the target network traffic, and the incoming network tunnel can be used as the target network tunnel corresponding to that network traffic.

[0142] Optionally, if the current network tunnel of any network traffic matches the default network tunnel, a network tunnel other than the current network tunnel with a tunnel quality greater than the second network tunnel quality threshold can be searched from multiple network tunnels as the target network tunnel for that network traffic, thereby avoiding the situation where the target network tunnel is the same as the current network tunnel.

[0143] It should be noted that, Figure 8For specific implementation details of S210-S230 shown, please refer to Figure 2 S210-S230 shown, Figure 8 For specific implementation details of the S620 shown, please refer to [link / reference]. Figure 6 The S620 shown is shown. Figure 8 For specific implementation details of the S710-S750 shown, please refer to [link / reference]. Figure 7 The S710-S750 shown will not be described in detail here.

[0144] exist Figure 8 In the illustrated embodiment, if the current network tunnel of any network traffic matches the default network tunnel, then any network traffic can be scheduled to a network tunnel with better tunnel quality, thereby improving the transmission quality of network traffic; furthermore, setting different scheduling methods based on whether the current network tunnel matches the default network tunnel can improve scheduling accuracy.

[0145] In one exemplary embodiment, see Figure 9 , Figure 9 Is Figure 6 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0146] like Figure 9 As shown, under the condition that the traffic scheduling rule includes a priority threshold, S610 can include S910-S920, which are described in detail below:

[0147] S910 searches for outgoing network tunnels with tunnel quality lower than the first tunnel quality threshold from multiple network tunnels, and searches for candidate network traffic with corresponding service priorities higher than the priority threshold from the network traffic carried by the outgoing network tunnels.

[0148] Outgoing network tunnels are network tunnels whose tunnel quality is lower than the first tunnel quality threshold among multiple network tunnels. Because of the low tunnel quality of outgoing network tunnels, the traffic carried in outgoing network tunnels needs to be rerouted to other network tunnels.

[0149] Network traffic service priority refers to the priority of the service to which the network traffic belongs, and it can be set according to the importance of the service. Priority threshold is used to determine whether the service priority is high, and its specific value can be flexibly set according to actual needs.

[0150] To ensure the transmission quality of high-priority network traffic, after a network node identifies the scheduled network tunnel from multiple network tunnels, it can search for network traffic with a service priority higher than the priority threshold from the network traffic carried by the scheduled network tunnel, and use the searched network traffic as candidate network traffic.

[0151] S920: If an incoming network tunnel with a quality higher than the second tunnel quality threshold is found among multiple network tunnels, the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel for the candidate network traffic.

[0152] A network tunnel is a network tunnel whose quality is higher than the second tunnel quality threshold among multiple network tunnels.

[0153] Since candidate network traffic is network traffic with high service priority, if candidate network traffic is to be scheduled, it needs to be scheduled to a network tunnel with better tunnel quality. Therefore, if there is an incoming network tunnel among multiple network tunnels, the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel for the candidate network traffic. In this way, the network traffic with high service priority carried in the network tunnel with poor tunnel quality is scheduled to the network tunnel with better tunnel quality.

[0154] To ensure the transmission quality of candidate network traffic, in an optional implementation, tunnel quality requirement information of the candidate network traffic can be obtained, and it can be determined whether the tunnel quality of the incoming network tunnel meets the tunnel quality requirement information of the candidate network traffic. If so, the candidate network traffic is used as the target network traffic. Alternatively, to further ensure the transmission quality of candidate network traffic, it can be determined whether the tunnel quality of the incoming network tunnel is better than the network quality corresponding to the tunnel quality requirement information of the candidate network traffic, and whether the difference between the tunnel quality of the incoming network tunnel and the network quality corresponding to the tunnel quality requirement information is greater than a set threshold. If so, the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel. In other words, candidate network traffic will only be scheduled if the tunnel quality of the incoming network tunnel is significantly better than the network quality corresponding to the tunnel quality requirement information of the candidate network traffic.

[0155] It should be noted that, Figure 9In the illustrated embodiment, network traffic with a service priority higher than the service priority threshold in the outgoing network tunnel is scheduled to the incoming network tunnel only when an incoming network tunnel exists among multiple network tunnels. In other embodiments, after the outgoing network tunnel is found, other methods can be used to schedule the network traffic carried in the outgoing network tunnel to other network tunnels. For example, all network traffic carried in the outgoing network tunnel can be scheduled to the incoming network tunnel, or at least one piece of network traffic can be randomly selected from the network traffic carried in the outgoing network tunnel and scheduled to the incoming network tunnel. Figure 9 For specific implementation details of S210-S230 shown, please refer to Figure 2 S210-S230 shown, Figure 9 For specific implementation details of the S620 shown, please refer to [link / reference]. Figure 6 The S620 shown here will not be described in detail here.

[0156] exist Figure 9 In the illustrated embodiment, outgoing network tunnels with tunnel quality lower than a first tunnel quality threshold are searched from multiple network tunnels. Candidate network traffic with corresponding service priority higher than a priority threshold is searched from the network traffic carried by the outgoing network tunnels. If an incoming network tunnel with tunnel quality higher than a second tunnel quality threshold is found from multiple network tunnels, the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel for the candidate network traffic. This is to schedule high-priority network traffic carried in network tunnels with poor tunnel quality to network tunnels with better tunnel quality, thereby prioritizing the transmission quality of high-priority network traffic, improving scheduling accuracy, and ensuring service quality.

[0157] In one exemplary embodiment, see Figure 10 , Figure 10 Is Figure 9 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0158] like Figure 10 As shown, when the traffic scheduling rules include a frequency threshold, S920 includes S1010-S1020, which are detailed below:

[0159] S1010, obtain the scheduling frequency of candidate network traffic.

[0160] Frequency thresholds are used to assess whether the scheduling frequency of network traffic is too frequent. Their specific values ​​can be flexibly set according to actual needs, for example, 1 time / minute, 2 times / minute, 3 times / minute, etc. Network traffic scheduling can impact network traffic transmission. Frequent scheduling of high-priority candidate network traffic, even when routed to a network tunnel with good quality, may result in poor transmission quality. Therefore, to ensure the transmission quality of high-priority candidate network traffic, the scheduling frequency of candidate network traffic should be determined first.

[0161] Optionally, the number of times candidate network traffic is scheduled within a set time period can be obtained, and the scheduling frequency of the candidate network traffic can be calculated based on the scheduling frequency and the set time period. The duration of the set time period can be flexibly set according to actual needs, for example, it can be set to 10 minutes, 20 minutes, etc. To improve the real-time performance of the scheduling frequency, the scheduling frequency of candidate network traffic can be calculated periodically, and the latest calculated scheduling frequency can be used as the scheduling frequency for comparison with the frequency threshold; alternatively, the set time period can be a period of time ending at the current time, so that after finding candidate network traffic, the set time period is determined based on the current time, and the number of schedulings within the set time period is obtained to calculate the scheduling frequency.

[0162] S1020: If a network tunnel is found and the scheduling frequency is lower than the frequency threshold, then the candidate network traffic is used as the target network traffic, and the network tunnel is used as the target network tunnel for the candidate network traffic.

[0163] If there is an incoming network tunnel among multiple network tunnels, and the scheduling frequency of candidate network traffic is lower than the frequency threshold, it indicates that there is a network tunnel with good tunnel quality and the scheduling frequency of candidate network traffic is relatively low. Therefore, candidate network traffic can be used as target network traffic, and the incoming network tunnel can be used as the target network tunnel for candidate network traffic, so as to schedule candidate network traffic to the incoming network tunnel.

[0164] Optionally, the incoming network tunnel can be searched from multiple network tunnels first. If found, the scheduling frequency of the candidate network traffic can be obtained and compared with the scheduling frequency threshold. Alternatively, the scheduling frequency of the candidate network traffic can be obtained first and compared with the scheduling frequency threshold. If the scheduling frequency is lower than the scheduling frequency threshold, the incoming network tunnel can be searched from multiple network tunnels. Alternatively, the search for the incoming network tunnel from multiple network tunnels and the acquisition of the scheduling frequency of the candidate network traffic for comparison with the scheduling frequency threshold can be performed simultaneously. This embodiment does not restrict the execution order of searching for the incoming network tunnel and acquiring the scheduling frequency of the candidate network traffic.

[0165] If a network tunnel is found, but the scheduling frequency of the candidate network traffic is higher than or equal to the frequency threshold, the network traffic carried in the outgoing network tunnel other than the candidate network traffic can be scheduled to the network tunnels other than the outgoing network tunnel among multiple network tunnels, thereby ensuring the transmission quality of the candidate network traffic. For example, scheduling can be performed based on subsequent S1120.

[0166] It should be noted that, Figure 10 For specific implementation details of S210-S230 shown, please refer to Figure 2 S210-S230 shown, Figure 10 For specific implementation details of the S620 shown, please refer to [link / reference]. Figure 6 The S620 shown is shown. Figure 10 For specific implementation details of the S910 shown, please refer to... Figure 9 The S910 shown here will not be described in detail here.

[0167] exist Figure 10 In the illustrated embodiment, if an incoming network tunnel is found and the scheduling frequency of the candidate network traffic is lower than the frequency threshold, the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel for the candidate network traffic. In other words, network traffic with high service priority will only be scheduled when the scheduling frequency of network traffic with high service priority is low, thereby ensuring the transmission quality of network traffic with high service priority and ensuring service quality.

[0168] In one exemplary embodiment, see Figure 11 , Figure 11 Is Figure 9 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0169] like Figure 11 As shown, S610 may also include S1110-S1120, which are described in detail below:

[0170] S1110, if no incoming network tunnel is found, obtain the tunnel quality requirement information corresponding to other network traffic besides candidate network traffic in the network traffic carried by the outgoing network tunnel.

[0171] Tunnel quality requirements for network traffic are used to describe the network traffic's requirements for tunnel quality. For example, to ensure the real-time performance of network traffic, a latency of less than 0.1 seconds may be required.

[0172] If no incoming network tunnel is found, in order to ensure the transmission quality of high-priority candidate network traffic in the outgoing network tunnel, the candidate network traffic is not scheduled. Instead, other network traffic other than the candidate network traffic is determined from the network traffic carried by the outgoing network tunnel, and the other network traffic is scheduled to other network tunnels other than the outgoing network tunnel. In the process of scheduling other network traffic, the tunnel quality requirements of other network traffic can be obtained.

[0173] S1120, Other network traffic is used as target network traffic, and network tunnels other than the outgoing network tunnel, whose tunnel quality meets the tunnel quality requirements, are used as target network tunnels for other network traffic.

[0174] Other network traffic is used as target network traffic, and a network tunnel that meets the tunnel quality requirements (excluding the original tunnel) is searched from multiple network tunnels. The searched network traffic is then used as the target network tunnel for the other network traffic. In other words, for high-priority network traffic, it needs to be scheduled to a network tunnel with better tunnel quality, while for low-priority network traffic, it can be scheduled to a network tunnel that meets its requirements.

[0175] Optionally, you can first search for network tunnels other than the outgoing network tunnel from multiple network tunnels that meet the tunnel quality requirements. If found, the other network traffic is used as the target network traffic. Alternatively, if not found, you can search for other network tunnels other than the outgoing network tunnel from multiple network tunnels and randomly select a network tunnel as the target network tunnel for the other network traffic.

[0176] If the outgoing network tunnel contains multiple other network traffic streams, in order to ensure the transmission quality of higher-priority candidate network traffic, all of these other network traffic streams can be used as target network traffic to schedule all other network traffic to other network tunnels. Alternatively, at least one network traffic stream can be selected from these other network traffic streams as the target network traffic. This selection can be random. Or, network traffic streams with a service priority lower than the outgoing priority threshold can be selected from the other network traffic streams as the target network traffic. The outgoing priority threshold is lower than or equal to the priority threshold corresponding to the aforementioned candidate network traffic streams. The specific value can be flexibly set according to actual needs.

[0177] It should be noted that, Figure 11 For specific implementation details of S210-S230 shown, please refer to Figure 2 S210-S230 shown, Figure 11 For specific implementation details of the S620 shown, please refer to [link / reference]. Figure 6 The S620 shown is shown. Figure 11 For specific implementation details of S910-S920 shown, please refer to Figure 9 The S910-S920 shown here will not be described in detail here.

[0178] exist Figure 11 In the illustrated embodiment, if no incoming network tunnel is found, the tunnel quality requirement information corresponding to other network traffic (excluding candidate network traffic) carried by the outgoing network tunnel is obtained. This other network traffic is then used as the target network traffic. Furthermore, the network tunnels (excluding the outgoing network tunnel) whose tunnel quality meets the tunnel quality requirement information are used as the target network tunnels for the other network traffic. In other words, even without a network tunnel with good quality, the transmission quality of high-priority candidate network traffic can be guaranteed by outgoing network traffic (excluding candidate network traffic with high service priority). Moreover, when scheduling other network traffic, it is only necessary to schedule it to a network tunnel that meets its requirements. This allows for different scheduling methods to be set for network traffic of different priorities, improving scheduling accuracy and ensuring service quality.

[0179] In one exemplary embodiment, see Figure 12 , Figure 12 Is Figure 6 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 Execute on any network node 120 in the implementation environment shown.

[0180] like Figure 12 As shown, S620 may include S1210-S1220, which are described in detail below:

[0181] S1210, by configuring services, writes filtering rules in the kernel to schedule target network traffic to the target network tunnel.

[0182] To route target network traffic to the target network tunnel, a service can be configured to perform the routing. This service can generate filtering rules for routing target network traffic to the target network tunnel and write these rules into the kernel, i.e., generate filtering rules in the kernel.

[0183] Optionally, the configuration service can generate iptables rules for routing target network traffic to the target network tunnel.

[0184] S1220, based on filtering rules, transmits target network traffic to any other network node through the target network tunnel.

[0185] After the filtering rules are written into the kernel, if network traffic is detected to match the filtering rules, the network traffic will be directed to the target network tunnel, and then the network traffic will be transmitted to the tunnel endpoint other than the sender, that is, any other network node.

[0186] It should be noted that, Figure 12 For specific implementation details of S210-S230 shown, please refer to Figure 2 S210-S230 shown, Figure 12 For specific implementation details of the S610 shown, please refer to Figure 6 The S610 shown here will not be described in detail here.

[0187] exist Figure 12 In the illustrated embodiment, network traffic scheduling is achieved through a configuration service. Furthermore, the configuration service achieves network traffic scheduling by writing filtering rules into the kernel. The configuration service does not need to participate in the transmission of network traffic, making the configuration service more lightweight, reducing the consumption of network node resources by the configuration service, and reducing network scheduling costs.

[0188] See Figure 13 This is a flowchart illustrating a network scheduling method in an exemplary embodiment of this application. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 The cloud controller 110 in the implementation environment shown is executed.

[0189] like Figure 13 As shown, in an exemplary embodiment, the network scheduling method may include S1310-S1330, which are described in detail below:

[0190] S1310 establishes a communication connection with the network node through the configuration service included in the network node.

[0191] A configuration service can be deployed in the network node, and the cloud controller can establish a communication connection with the configuration service, thereby establishing a communication connection with the network node.

[0192] Optionally, any network node with configured services can establish a communication connection with the cloud controller.

[0193] S1320: Obtain traffic scheduling rules and generate network scheduling instructions based on the obtained traffic scheduling rules.

[0194] To schedule network traffic transmitted by network nodes, the cloud controller can acquire traffic scheduling rules and generate network scheduling instructions that include these rules. Specifically, the cloud controller can acquire traffic scheduling rules and generate network scheduling instructions based on manual configuration; that is, the network scheduling instructions are manually triggered, and the traffic scheduling rules are manually configured.

[0195] S1330: The network scheduling command is sent to the network node through the communication connection, so that the network node can find multiple network tunnels established with any other network node according to the received network scheduling command, and schedule the network traffic carried by the multiple network tunnels in the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels.

[0196] After generating network scheduling instructions, the cloud controller can send the network scheduling instructions to the network nodes through the communication connection established with the network nodes. This allows the network nodes to schedule the network traffic carried by the multiple network tunnels in the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels. The specific scheduling process can be found in the above description and will not be repeated here.

[0197] There may be multiple network nodes establishing communication connections with the cloud controller. Under these conditions, the cloud controller can select at least one target network node to be scheduled from among the multiple network nodes and send network scheduling instructions to this target network node. The target network node can be manually selected, or, since network traffic needs to be scheduled across multiple network tunnels with the same tunnel endpoints, the cloud controller can select a target network node from among the multiple network nodes that has established multiple network tunnels with any other network node. In other words, the target network node is a network node that has established multiple network tunnels with any other network node.

[0198] In an optional implementation, the cloud controller can also generate a tunnel creation command. This command includes tunnel attribute information and node identification information for the first and second network nodes to be created. The cloud controller can then send the tunnel creation command to the first network node via a communication connection and to the second network node via a communication connection, enabling the first and second network nodes to create a network tunnel between them based on the command. Both the first and second network nodes have established communication connections with the cloud controller. The tunnel creation command can be manually triggered; in this case, the cloud controller can present multiple network nodes to the user, who can then select the first and second network nodes and configure the tunnel attribute information to generate the command. Alternatively, the tunnel creation command can be automatically triggered; in this case, the cloud controller can use the network attribute information of the multiple network nodes to locate the first and second network nodes and generate the command. For details, please refer to the descriptions in subsequent embodiments, which will not be repeated here.

[0199] exist Figure 13 In the illustrated embodiment, on the one hand, by configuring traffic scheduling rules in network nodes through the cloud controller, configuration efficiency is improved, network scheduling costs are reduced, and network scheduling efficiency is increased; on the other hand, network nodes only need to deploy and configure services to establish a communication connection with the cloud controller, thereby performing traffic scheduling under the control of the cloud controller, which can further reduce network scheduling costs and expand the applicability of network scheduling.

[0200] In one exemplary embodiment, see Figure 14 , Figure 14 Is Figure 13 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 The cloud controller 110 in the implementation environment shown is executed.

[0201] like Figure 14 As shown, when there are multiple network nodes, the network scheduling method also includes S1410-S1430, which are described in detail below:

[0202] S1410: Obtain network attribute information corresponding to multiple network nodes respectively, and find the first network node and the second network node to be created from multiple network nodes based on the network attribute information.

[0203] Network attribute information of a network node is used to characterize the network attributes of the network node, including but not limited to the subnet to which the network node belongs, the location of the network node, and the connection relationship between the network node and other network nodes.

[0204] The cloud controller can establish communication connections with multiple network nodes and obtain network attribute information corresponding to each of the multiple network nodes. Based on the network attribute information, it can find the first and second network nodes from the multiple network nodes to create the network tunnel.

[0205] The network attribute information can be obtained from the configuration services contained in the network nodes and transmitted to the cloud controller. Correspondingly, the cloud controller can receive the network attribute information of the network node sent by the configuration services contained in the network node through the communication connection with the network node. Alternatively, the network attribute information corresponding to multiple network nodes can be manually configured in the cloud controller.

[0206] In the process of finding the first and second network nodes to be created for the network tunnel, the cloud controller can, from a global perspective, find two network nodes that can establish a connection based on the network attribute information of multiple network nodes, and designate one of these two network nodes as the first network node and the other as the second network node. The cloud controller can determine the network topology information based on the network attribute information of multiple network nodes, and then determine the two network nodes that can establish a connection based on the network topology information. The specific method for determining whether two network nodes can establish a connection can be flexibly set according to actual needs. In an optional example, it can be determined whether the two network nodes belong to the same subnet. If so, it is determined that a communication connection can be established between the two network nodes. If not, it can be determined whether there is a connection between the subnets to which the two network nodes belong. If there is a connection between the subnets to which the two network nodes belong, for example, if there is a gateway connecting the two subnets, it is determined that a network connection can also be established between the two network nodes. In another optional example, it can also be determined whether two network nodes are connected to the same other network node. If so, it is determined that a connection can be established between the two network nodes. For example, if network node A is connected to network node B and network node C is also connected to network node B, then network node A can establish a connection with network node C through network node B, thereby establishing a network tunnel.

[0207] S1420, Generate a tunnel creation instruction containing tunnel attribute information, node identification information of the first network node, and node identification information of the second network node.

[0208] The cloud controller can generate tunnel creation instructions based on the node identification information of the first network node, the node identification information of the second network node, and the tunnel attribute information.

[0209] Optionally, if multiple sets of first network nodes and second network nodes are found, the cloud controller can generate tunnel creation instructions corresponding to each set of first network nodes and second network nodes.

[0210] S1430, a tunnel creation command is sent to the first network node through a communication connection with the first network node, and a tunnel creation command is sent to the second network node through a communication connection with the second network node, so that the first network node and the second network node create a network tunnel that matches the tunnel attribute information based on the tunnel creation command.

[0211] After identifying the first and second network nodes, the cloud controller can send a tunnel creation command to the first network node via a communication connection with it, and to the second network node via a communication connection with it. The first and second network nodes can then create a network tunnel between themselves based on the tunnel creation command. The specific tunnel creation process after the first and second network nodes receive the tunnel creation command can be found in the aforementioned steps S310-S330, and will not be repeated here.

[0212] It should be noted that, Figure 14 For specific implementation details of S1310-S1330 shown, please refer to Figure 13 S1310-S1330 shown will not be described again here.

[0213] exist Figure 14 In the embodiment shown, the cloud server can find the first network node and the second network node to be created from multiple network nodes based on the network attribute information corresponding to each of the multiple network nodes. Then, based on the tunnel creation command, it controls the first network node and the second network node to establish a network tunnel between the first network node and the second network node, thereby realizing the automation of network tunnel creation and automatic network formation.

[0214] In one exemplary embodiment, see Figure 15 , Figure 15 Is Figure 13 The flowchart illustrates a network scheduling method proposed based on the given information. This method can be applied to... Figure 1 The implementation environment shown can be composed of Figure 1 The cloud controller 110 in the implementation environment shown is executed.

[0215] like Figure 15 As shown, when the network nodes include edge servers and there are multiple network nodes, S1320 can include S1510-S1520, which are described in detail below:

[0216] S1510: Obtain the scheduling configuration instruction and retrieve the traffic scheduling rules from the scheduling configuration instruction.

[0217] The scheduling configuration command is manually triggered and contains traffic scheduling rules. Correspondingly, users can configure traffic scheduling rules through the user input interface provided by the cloud controller, thereby triggering the generation of scheduling configuration commands. For example, users can configure the first tunnel quality threshold, the second tunnel quality threshold, etc.

[0218] After the cloud controller receives the scheduling configuration instruction, it can obtain the traffic scheduling rules from the scheduling configuration instruction.

[0219] S1520 generates network scheduling instructions based on the obtained traffic scheduling rules.

[0220] After obtaining the traffic scheduling rules, a network scheduling instruction containing the traffic scheduling rules is generated.

[0221] Under these conditions, users can also select the target network node to be scheduled. Correspondingly, S1330 can include S1530-S1540, as detailed below:

[0222] S1530: Based on the scheduling configuration instruction, search for at least one target network node to be scheduled from multiple network nodes.

[0223] Users can specify at least one target network node to be scheduled from multiple network nodes through the user input interface provided by the cloud controller, thereby triggering a scheduling configuration instruction. The cloud controller can then determine the target network node from multiple network nodes based on the scheduling configuration instruction.

[0224] S1540 sends network scheduling instructions to each target network node through a communication connection established with each target network node.

[0225] After identifying at least one target network node, for each target network node, the cloud controller can send network scheduling instructions to the target network node through the communication connection between the cloud controller and the target network node, so that the target network node can perform traffic scheduling according to the network scheduling instructions. The specific method of traffic scheduling can be found in the above S210-S240, and will not be repeated here.

[0226] It should be noted that, Figure 15 For specific implementation details of S1310 shown, please refer to Figure 13 S1310, as shown, will not be described in detail here.

[0227] exist Figure 15In the illustrated embodiment, users can configure traffic scheduling rules through the cloud controller and select the network nodes to be scheduled from multiple network nodes, thereby enabling the scheduling of network nodes through the cloud controller and improving scheduling efficiency.

[0228] To better understand this invention, an edge server is used as an example to illustrate the concept. See also... Figure 16 As shown, the implementation environment of the network scheduling method includes a cloud controller and multiple servers. Each server has a designated service deployed on it, and each server establishes a communication connection with the cloud controller through the designated service. Users can trigger control of the servers through the cloud controller. These servers include, but are not limited to, edge servers. Optionally, see [link to relevant documentation]. Figure 17 As shown, the network scheduling method may include S1701-S1708, which are described in detail below:

[0229] S1701, the server establishes a communication connection with the cloud controller by configuring services.

[0230] Once the configuration service is deployed on any server, the configuration service can establish a communication connection with the cloud controller to receive control from the cloud controller through the communication connection.

[0231] S1702, the cloud controller searches for the first and second servers from multiple servers where a connection can be established.

[0232] After establishing communication connections with multiple servers, the cloud controller can obtain network attribute information such as the location and connection relationship of the multiple servers, and then determine the first and second servers that can be connected based on the network attribute information.

[0233] S1703, the cloud controller generates a tunnel creation instruction containing tunnel attribute information, the identification information of the first server, and the identification information of the second server.

[0234] After discovering that a connection can be established between the first server and the second server, the cloud controller can generate a tunnel creation command to guide the establishment of a virtual network tunnel between the first server and the second server. The specific details of the tunnel attribute information can be found in the descriptions in the preceding embodiments, and will not be repeated here.

[0235] It should be noted that in other embodiments, users can select a first server and a second server from multiple servers through the user input interface provided by the cloud controller, and input tunnel attribute information. The cloud controller generates tunnel creation instructions based on the user's operation. In this way, users can control multiple servers through the cloud controller to create network tunnels between the servers.

[0236] S1704, the cloud controller sends the tunnel creation command to the first server and the second server.

[0237] The cloud controller sends the tunnel creation command to the first server through the communication connection established with the first server, and sends the tunnel creation command to the second server through the communication connection established with the second server.

[0238] S1705, the first server and the second server create a virtual network tunnel according to the tunnel creation instructions.

[0239] After receiving the tunnel creation command, the first server can generate a VRF instance based on the command and configure a routing table in the VRF instance. After receiving the tunnel creation command, the second server can also generate a VRF instance based on the command and configure a routing table in the VRF instance. Thus, a virtual network tunnel is established between the first server and the second server based on the VRF instance and routing table in the first server and the VRF instance and routing table in the second server.

[0240] S1706, the cloud controller receives the scheduling configuration instruction and selects the target server to be scheduled from multiple servers according to the scheduling configuration instruction, and generates network scheduling instructions.

[0241] Users can select the target server to be scheduled in the cloud controller and configure a first tunnel quality threshold and a second tunnel quality threshold to trigger a scheduling configuration command. The cloud controller selects the target edge controller according to the scheduling configuration command and generates a network scheduling command, which includes the first tunnel quality threshold and the second tunnel quality threshold.

[0242] S1707, the cloud controller sends network scheduling instructions to the target server.

[0243] The cloud controller sends network scheduling instructions to the target server through a communication connection.

[0244] S1708, the server schedules network traffic according to network scheduling instructions.

[0245] Figure 17In this example, taking the target server as an example, after receiving a network scheduling instruction, the first server searches for multiple virtual network tunnels established between itself and any other server. For any network traffic carried in a virtual network tunnel, if the current virtual network tunnel of the network traffic does not match the default virtual network tunnel, the tunnel quality of the current virtual network tunnel of the network traffic is less than the first tunnel quality threshold, and there is an incoming virtual network tunnel among the multiple virtual network tunnels with a tunnel quality greater than the second tunnel quality threshold, then the network traffic is scheduled to the incoming virtual network tunnel. If the current virtual network tunnel of the network traffic does not match the default virtual network tunnel, the tunnel quality of the current virtual network tunnel of the network traffic is less than the first tunnel quality threshold, and there is no incoming virtual network tunnel among the multiple virtual network tunnels, then the network traffic is scheduled to the default virtual network tunnel. If the current virtual network tunnel of the network traffic matches the default virtual network tunnel, there is an incoming network tunnel among the multiple virtual network tunnels, and the incoming network tunnel is different from the current network tunnel, then the network traffic is scheduled to the incoming network tunnel.

[0246] The creation of virtual network tunnels and the scheduling of network traffic can both be achieved through a configuration service. Optionally, the configuration service in the server can periodically send test messages to the configuration service in the peer server through the virtual network tunnel, thereby determining the tunnel quality of the virtual network tunnel through the transmission of test messages, and thus performing traffic scheduling based on the tunnel quality.

[0247] It should be noted that, Figure 17 The specific processes of S1701-S1708 included therein have been described in detail in the foregoing embodiments, and will not be repeated here.

[0248] Figure 17 In the illustrated embodiment, the server establishes a communication connection with the cloud controller by configuring services, thereby creating network tunnels and performing traffic scheduling under the control of the cloud controller, which reduces network scheduling costs and improves network scheduling efficiency and accuracy.

[0249] See Figure 18 , Figure 18 This is a block diagram illustrating a network scheduling apparatus as shown in an exemplary embodiment of this application. Figure 18 As shown, the device includes:

[0250] The connection module 1801 is configured to establish a communication connection with the cloud controller through a set service.

[0251] The receiving module 1802 is configured to receive network scheduling instructions sent by the cloud controller via a communication connection; wherein the network scheduling instructions contain traffic scheduling rules.

[0252] The lookup module 1803 is configured to search for multiple network tunnels established with any other network node according to network scheduling instructions;

[0253] The scheduling module 1804 is configured to schedule network traffic carried by multiple network tunnels based on traffic scheduling rules and the tunnel quality corresponding to each network tunnel.

[0254] In one exemplary embodiment, based on the foregoing scheme, the device further includes a creation module configured to:

[0255] Receive tunnel creation instructions sent by the cloud controller via the communication connection;

[0256] Obtain tunnel attribute information and node identification information of other network nodes from the tunnel creation command;

[0257] Based on the tunnel attribute information, create network tunnels between network nodes that correspond to the node identification information.

[0258] In an exemplary embodiment, based on the aforementioned scheme, and assuming the tunnel attribute information includes routing configuration information, the module is specifically configured as follows:

[0259] Create virtual network tunnels between network nodes that correspond to the node identification information;

[0260] Configure the routing table of the virtual network tunnel according to the routing configuration information, so as to transmit network traffic to the network node corresponding to the node identification information through the virtual network tunnel based on the routing table.

[0261] In an exemplary embodiment, based on the aforementioned scheme, where the traffic scheduling rules include traffic outbound rules and traffic inbound rules, the scheduling module 1804 is specifically configured as follows:

[0262] Based on the first tunnel quality threshold contained in the traffic outgoing rules, the second tunnel quality threshold contained in the traffic incoming rules, and the tunnel quality corresponding to multiple network tunnels, the target network traffic to be outgoing and the target network tunnel corresponding to the target network traffic are found from multiple network tunnels; the first tunnel quality threshold is less than or equal to the second tunnel quality threshold.

[0263] Redirect the target network traffic from the current network tunnel to the target network tunnel.

[0264] In an exemplary embodiment, based on the foregoing scheme, the scheduling module 1804 is specifically configured as follows:

[0265] Retrieve the current network tunnel and the default network tunnel for any network traffic among multiple network tunnels;

[0266] If the current network tunnel of any network traffic does not match the default network tunnel, and the tunnel quality of the current network tunnel of any network traffic is less than the first tunnel quality threshold, then any network traffic will be used as the target network traffic.

[0267] Find incoming network tunnels from multiple network tunnels whose tunnel quality is greater than the second tunnel quality threshold;

[0268] If an incoming network tunnel is found, then the incoming network tunnel will be used as the target network tunnel for any network traffic.

[0269] If no incoming network tunnel is found, the default network tunnel of any network traffic will be used as the target network tunnel for that network traffic.

[0270] In an exemplary embodiment, based on the foregoing scheme, the scheduling module 1804 is specifically configured as follows:

[0271] If the current network tunnel of any network traffic matches the default network tunnel and an incoming network tunnel is found, then any network traffic will be used as the target network traffic, and the incoming network tunnel will be used as the target network tunnel corresponding to any network traffic.

[0272] In an exemplary embodiment, based on the aforementioned scheme, and given that the traffic scheduling rules include a priority threshold, the scheduling module 1804 is specifically configured as follows:

[0273] Find outgoing network tunnels with tunnel quality lower than the first tunnel quality threshold from multiple network tunnels, and find candidate network traffic with corresponding service priority higher than the priority threshold from the network traffic carried by the outgoing network tunnels.

[0274] If an incoming network tunnel with a quality higher than the second tunnel quality threshold is found among multiple network tunnels, then the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel for the candidate network traffic.

[0275] In an exemplary embodiment, based on the aforementioned scheme, and given that the traffic scheduling rules include a frequency threshold, the scheduling module 1804 is specifically configured as follows:

[0276] Obtain the scheduling frequency of candidate network traffic;

[0277] If an incoming network tunnel is found and the scheduling frequency is lower than the frequency threshold, then the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel for the candidate network traffic.

[0278] In an exemplary embodiment, based on the foregoing scheme, the scheduling module 1804 is specifically configured as follows:

[0279] If no incoming network tunnel is found, obtain the tunnel quality requirement information corresponding to other network traffic (excluding candidate network traffic) carried by the outgoing network tunnel.

[0280] Other network traffic is used as target network traffic, and network tunnels other than the outgoing network tunnel, whose tunnel quality meets the tunnel quality requirements, are used as target network tunnels for other network traffic.

[0281] In an exemplary embodiment, based on the foregoing scheme, the scheduling module 1804 is specifically configured as follows:

[0282] By configuring the service, filtering rules are written into the kernel to schedule target network traffic to the target network tunnel;

[0283] Based on filtering rules, target network traffic is transmitted to any other network node through the target network tunnel.

[0284] It should be noted that, Figure 18 The network scheduling device provided is based on the same concept as the network node-side network scheduling method provided in the above embodiments. The specific ways in which each module and unit performs operations have been described in detail in the method embodiments and will not be repeated here.

[0285] See Figure 19 , Figure 19 This is a block diagram illustrating a network scheduling apparatus as shown in an exemplary embodiment of this application.

[0286] like Figure 19 As shown, the device includes:

[0287] Connection module 1901 is configured to establish a communication connection with the network node through a configuration service included in the network node;

[0288] The generation module 1902 is configured to acquire traffic scheduling rules and generate network scheduling instructions based on the acquired traffic scheduling rules.

[0289] The sending module 1903 is configured to send network scheduling instructions to network nodes via a communication connection, so that the network nodes can find multiple network tunnels established with any other network node according to the received network scheduling instructions, and schedule the network traffic carried by the multiple network tunnels in the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels.

[0290] In an exemplary embodiment, based on the foregoing scheme, when the number of network nodes is multiple, the device further includes a creation module configured to:

[0291] Obtain the network attribute information corresponding to multiple network nodes, and find the first and second network nodes to be created from the multiple network nodes based on the network attribute information.

[0292] Generate a tunnel creation instruction that includes tunnel attribute information, node identification information of the first network node, and node identification information of the second network node;

[0293] The tunnel creation command is sent to the first network node through the communication connection with the first network node, and to the second network node through the communication connection with the second network node, so that the first network node and the second network node create a network tunnel that matches the tunnel attribute information based on the tunnel creation command.

[0294] In an exemplary embodiment, based on the aforementioned scheme, under the condition that the network nodes include edge servers and the number of network nodes is multiple, the generation module 1902 is specifically configured to: obtain scheduling configuration instructions and obtain traffic scheduling rules from the scheduling configuration instructions.

[0295] The sending module 1903 is specifically configured to: search for at least one target network node to be scheduled from multiple network nodes according to the scheduling configuration instruction; and send the network scheduling instruction to each target network node through the communication connection established with each target network node.

[0296] It should be noted that, Figure 19 The network scheduling device provided is based on the same concept as the network scheduling method on the cloud controller side provided in the above embodiments. The specific ways in which each module and unit performs operations have been described in detail in the method embodiments, and will not be repeated here.

[0297] Embodiments of this application also provide an electronic device, including: one or more processors; and a storage device for storing one or more computer programs, which, when executed by one or more processors, cause the electronic device to implement the network scheduling methods provided in the above embodiments.

[0298] Figure 20 A schematic diagram of the structure of a computer system suitable for implementing the electronic device of the present application is shown.

[0299] It should be noted that, Figure 20 The computer system 2000 of the electronic device shown is merely an example and should not impose any limitation on the functionality and scope of use of the embodiments of this application.

[0300] like Figure 20As shown, the computer system 2000 includes a Central Processing Unit (CPU) 2001, which can perform various appropriate actions and processes based on a computer program stored in Read-Only Memory (ROM) 2002 or a computer program loaded from storage portion 2008 into Random Access Memory (RAM) 2003, such as executing the network scheduling method described in the above embodiments. The RAM 2003 also stores various computer programs and data required for system operation. The CPU 2001, ROM 2002, and RAM 2003 are interconnected via a bus 2004. An Input / Output (I / O) interface 2005 is also connected to the bus 2004.

[0301] In some embodiments, the following components are connected to the I / O interface 2005: an input section 2006 including a keyboard, mouse, etc.; an output section 2007 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 2008 including a hard disk, etc.; and a communication section 2009 including a network interface card such as a LAN (Local Area Network) card, modem, etc. The communication section 2009 performs communication processing via a network such as the Internet. A drive 2010 is also connected to the I / O interface 2005 as needed. A removable medium 2011, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 2010 as needed so that computer programs read from it can be installed into the storage section 2008 as needed.

[0302] In particular, according to embodiments of this application, a computer program implementing the network scheduling method can be carried on a computer-readable medium, which can be downloaded and installed from the network via the communication section 2009, and / or installed from the removable medium 2011.

[0303] It should be noted that the computer-readable medium shown in the embodiments of this application can be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. A computer-readable storage medium can be, for example, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, optical fiber, portable compact disc read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this application, a computer-readable storage medium can be any tangible medium containing or storing a computer program that can be used by or in conjunction with an instruction execution system, apparatus, or device. A computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying a computer-readable computer program. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The computer program contained in the computer-readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, etc., or any suitable combination thereof.

[0304] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. Each block in a flowchart or block diagram may represent a module, segment, or portion of code, which contains one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and a computer program.

[0305] The units described in the embodiments of this application can be implemented in software or hardware, and the described units can also be located in a processor. The names of these units do not necessarily limit the specific unit itself.

[0306] Another aspect of this application provides a computer-readable storage medium storing a computer program thereon, which, when executed by a processor of an electronic device, causes the electronic device to implement the network scheduling method described above. This computer-readable storage medium may be included in the electronic device described in the above embodiments, or it may exist independently and not assembled into the electronic device.

[0307] Another aspect of this application provides a computer program product, which includes a computer program that, when executed by a processor, implements the network scheduling methods provided in the various embodiments described above. The computer program can be stored in a computer-readable storage medium. The computer program product can be a computer program as a product, such as an APP (Application), webpage, mini-program, etc.; or, the computer program product can also be a storage medium, device, terminal, virtual machine, etc., containing the computer program.

[0308] The above description is merely a preferred exemplary embodiment of this application and is not intended to limit the implementation of this application. Those skilled in the art can easily make corresponding modifications or alterations based on the main concept and spirit of this application. Therefore, the scope of protection of this application should be determined by the scope of protection claimed in the claims.

Claims

1. A network scheduling method, characterized in that, The method includes: Establish a communication connection between the service and the cloud controller by configuring the service; The network scheduling instruction sent by the cloud controller is received through the communication connection; wherein the network scheduling instruction contains traffic scheduling rules. According to the network scheduling instructions, locate multiple network tunnels established with any other network node; Based on the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels, the network traffic carried by the multiple network tunnels is scheduled among the multiple network tunnels.

2. The method as described in claim 1, characterized in that, The method further includes: Receive tunnel creation instructions sent by the cloud controller through the communication connection; Obtain tunnel attribute information and node identification information of other network nodes from the tunnel creation instruction; Based on the tunnel attribute information, a network tunnel is created between network nodes corresponding to the node identification information.

3. The method as described in claim 2, characterized in that, The tunnel attribute information includes routing configuration information; The step of creating a network tunnel between network nodes corresponding to the node identification information based on the tunnel attribute information includes: Create virtual network tunnels between network nodes corresponding to the node identification information; Configure the routing table of the virtual network tunnel according to the routing configuration information, so as to transmit network traffic to the network node corresponding to the node identification information through the virtual network tunnel based on the routing table.

4. The method as described in claim 1, characterized in that, The traffic scheduling rules include traffic outflow rules and traffic inflow rules; The step of scheduling network traffic carried by the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels includes: Based on the first tunnel quality threshold included in the traffic outgoing rule, the second tunnel quality threshold included in the traffic incoming rule, and the tunnel quality corresponding to each of the multiple network tunnels, the target network traffic to be outgoing and the target network tunnel corresponding to the target network traffic are searched from the multiple network tunnels; the first tunnel quality threshold is less than or equal to the second tunnel quality threshold. The target network traffic is redirected from the current network tunnel to the target network tunnel.

5. The method as described in claim 4, characterized in that, The step of searching for the target network traffic to be retrieved and the target network tunnel corresponding to the target network traffic from the multiple network tunnels based on the first tunnel quality threshold included in the traffic retrieval rule, the second tunnel quality threshold included in the traffic retrieval rule, and the tunnel quality corresponding to each of the multiple network tunnels includes: Obtain the current network tunnel and the default network tunnel for any network traffic among the multiple network tunnels; If the current network tunnel of any network traffic does not match the default network tunnel, and the tunnel quality of the current network tunnel of any network traffic is less than the first tunnel quality threshold, then the any network traffic is taken as the target network traffic. From the plurality of network tunnels, find the incoming network tunnel whose tunnel quality is greater than the second tunnel quality threshold; If the incoming network tunnel is found, then the incoming network tunnel is used as the target network tunnel corresponding to any network traffic. If the incoming network tunnel is not found, the default network tunnel of any network traffic will be used as the target network tunnel for that network traffic.

6. The method as described in claim 5, characterized in that, The step of searching for the target network traffic to be retrieved and the target network tunnel corresponding to the target network traffic from the multiple network tunnels based on the first tunnel quality threshold included in the traffic retrieval rule, the second tunnel quality threshold included in the traffic retrieval rule, and the tunnel quality corresponding to each of the multiple network tunnels, further includes: If the current network tunnel of any network traffic matches the default network tunnel and the incoming network tunnel is found, then the any network traffic is taken as the target network traffic, and the incoming network tunnel is taken as the target network tunnel corresponding to the any network traffic.

7. The method as described in claim 4, characterized in that, The traffic scheduling rules include priority thresholds; The step of searching for the target network traffic to be retrieved and the target network tunnel corresponding to the target network traffic from the multiple network tunnels based on the first tunnel quality threshold included in the traffic retrieval rule, the second tunnel quality threshold included in the traffic retrieval rule, and the tunnel quality corresponding to each of the multiple network tunnels includes: From the multiple network tunnels, find outgoing network tunnels whose tunnel quality is lower than the first tunnel quality threshold, and from the network traffic carried by the outgoing network tunnels, find candidate network traffic whose corresponding service priority is higher than the priority threshold. If an incoming network tunnel with a quality higher than the second tunnel quality threshold is found among the multiple network tunnels, then the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel for the candidate network traffic.

8. The method as described in claim 7, characterized in that, The traffic scheduling rules include frequency thresholds; If an incoming network tunnel with a quality higher than the second tunnel quality threshold is found from the plurality of network tunnels, then the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel for the candidate network traffic, including: Obtain the scheduling frequency of the candidate network traffic; If the incoming network tunnel is found and the scheduling frequency is lower than the frequency threshold, then the candidate network traffic is used as the target network traffic, and the incoming network tunnel is used as the target network tunnel for the candidate network traffic.

9. The method as described in claim 7, characterized in that, The step of searching for the target network traffic to be retrieved and the target network tunnel corresponding to the target network traffic from the multiple network tunnels based on the first tunnel quality threshold included in the traffic retrieval rule, the second tunnel quality threshold included in the traffic retrieval rule, and the tunnel quality corresponding to each of the multiple network tunnels, further includes: If the incoming network tunnel is not found, then obtain the tunnel quality requirement information corresponding to other network traffic besides the candidate network traffic carried by the outgoing network tunnel. The other network traffic is used as the target network traffic, and the network tunnels among the multiple network tunnels other than the outgoing network tunnel, whose tunnel quality meets the tunnel quality requirements, are used as the target network tunnels for the other network traffic.

10. A network scheduling method, characterized in that, The method includes: A communication connection is established with the network node through the configuration services contained in the network node; Obtain traffic scheduling rules and generate network scheduling instructions based on the obtained traffic scheduling rules; The network scheduling command is sent to the network node through the communication connection, so that the network node can find multiple network tunnels established with any other network node according to the received network scheduling command, and schedule the network traffic carried by the multiple network tunnels in the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels.

11. A network scheduling device, characterized in that, The device includes: The connectivity module is configured to establish a communication connection with the cloud controller by setting a service. The receiving module is configured to receive network scheduling instructions sent by the cloud controller through the communication connection; wherein the network scheduling instructions include traffic scheduling rules. The search module is configured to search for multiple network tunnels established with any other network node according to the network scheduling instructions. The scheduling module is configured to schedule the network traffic carried by the multiple network tunnels in the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels.

12. A network scheduling device, characterized in that, The device includes: The connection module is configured to establish a communication connection with the network node through a set service included in the network node; The generation module is configured to obtain traffic scheduling rules and generate network scheduling instructions based on the obtained traffic scheduling rules. The sending module is configured to send the network scheduling instruction to the network node through the communication connection, so that the network node can find multiple network tunnels established with any other network node according to the received network scheduling instruction, and schedule the network traffic carried by the multiple network tunnels in the multiple network tunnels according to the traffic scheduling rules and the tunnel quality corresponding to each of the multiple network tunnels.

13. An electronic device, characterized in that, include: One or more processors; A storage device for storing one or more computer programs that, when executed by the one or more processors, cause the electronic device to perform the method of any one of claims 1-10.

14. A computer-readable storage medium, characterized in that, It stores a computer program that, when executed by the processor of the electronic device, causes the electronic device to perform the method described in any one of claims 1-10.

15. A computer program product, characterized in that, Includes a computer program that, when executed by a processor, implements the method described in any one of claims 1-10.