Network simulation method and device, equipment, storage medium and program product

By dividing the data center network into subnets and computed in parallel on multiple workers, the problem of insufficient memory when simulating hyperscale data center networks is solved, and high-precision and high-scalability network simulation is achieved.

CN119728446APending Publication Date: 2025-03-28FACE CUTE CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411832588.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-12
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

Existing network simulation or simulation tools cannot meet the requirements of high precision and high scalability at the same time. Especially when simulating a hyper-large-scale data center network, the tools are prone to insufficient memory and cannot run normally.

Method used

By dividing the data center network into multiple subnets and assigning these subnets to multiple workers for parallel computing, routing calculations are performed using a distributed network simulator to determine the target routing configuration of the data center network.

Benefits of technology

It has achieved the scalability of network simulation without increasing memory requirements, and can simulate more than 10,000 network devices at the same time, and significantly reduce the need for simulation time and memory resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119728446A_ABST
    Figure CN119728446A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a network simulation method and device, equipment, a storage medium and a program product. The method comprises the following steps: dividing a data center network comprising a plurality of network devices into a plurality of sub-networks, wherein a sub-network in the plurality of sub-networks comprises one or more network devices in the plurality of network devices; the plurality of sub-networks are distributed to the plurality of working devices respectively, so that corresponding device nodes of one or more network devices included in the corresponding sub-networks are distributed to the working devices in the plurality of working devices, and the device nodes comprise device models corresponding to the corresponding network devices; and respectively executing routing computation for the allocated device nodes on the plurality of operators to determine a target route of the data center network. In this way, high precision and high expandability can be achieved at the same time through distributed execution of network simulation, the network simulation time can be shortened, and memory resources needed by network simulation can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Example embodiments of the present disclosure generally relate to the field of computers, and more particularly, to network simulation methods, devices, apparatuses, computer-readable storage media, and computer program products. Background Art

[0002] Large service providers usually set up a large number of large data centers due to business needs. Each data center can have a large number of network devices, such as more than 10,000 routers and switches, and the scale may continue to expand. For data centers of this size, even if a configuration generator can be used to generate the network configuration of the data center, network administrators may still make misconfigurations for various reasons, resulting in network interruptions. Therefore, in order to ensure the reliability and security of the data center network, before performing network configuration or certain changes to the data center network, network simulation or simulation is usually performed through simulation or other methods to evaluate the potential risks of configuration changes to the data center network. Summary of the invention

[0003] In a first aspect of the present disclosure, a network simulation method is provided. The method includes: dividing a data center network including multiple network devices into multiple sub-networks, wherein a sub-network in the multiple sub-networks includes one or more network devices in the multiple network devices. The multiple sub-networks are respectively assigned to multiple workers to assign corresponding device nodes of one or more network devices included in the corresponding sub-networks on the workers in the multiple workers, and the device nodes include device models corresponding to the corresponding network devices. And routing calculations for the assigned device nodes are respectively performed on the multiple workers to determine the target routing configuration of the data center network.

[0004] In a second aspect of the present disclosure, a device for network simulation is provided. The device includes: a network division module, configured to divide a data center network including multiple network devices into multiple sub-networks, wherein a sub-network in the multiple sub-networks includes one or more network devices in the network devices. A network allocation module, configured to respectively allocate multiple sub-networks to multiple workers, so as to allocate corresponding device nodes of one or more network devices included in the corresponding sub-networks on the workers in the multiple workers, wherein the device nodes include device models corresponding to the corresponding network devices. And a routing determination module, configured to respectively perform routing calculations for the allocated device nodes on multiple workers to determine the target routing configuration of the data center network.

[0005] In a third aspect of the present disclosure, an electronic device is provided. The device includes at least one processing unit; and at least one memory, the at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When the instructions are executed by the at least one processing unit, the electronic device executes the method of the first aspect.

[0006] In a fourth aspect of the present disclosure, a computer-readable storage medium is provided, wherein a computer program is stored on the medium, and when the computer program is executed by a processor, the method of the first aspect is implemented.

[0007] In a fifth aspect of the present disclosure, a computer program product is provided, which includes a computer program, wherein when the computer program is executed by a processor, the method according to the first aspect of the present disclosure is implemented.

[0008] It should be understood that the content described in this section is not intended to limit the key features or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0009] The above and other features, advantages and aspects of the embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals represent the same or similar elements, wherein:

[0010] Figure 1 A schematic diagram showing an example environment in which embodiments of the present disclosure can be implemented;

[0011] Figure 2 An example architecture of a distributed network simulator of an embodiment of the present disclosure is shown;

[0012] Figure 3A A diagram showing a comparison of the maximum network scales that can be run by the network simulation tool A and the network simulator of the embodiment of the present disclosure;

[0013] Figure 3B A diagram showing the relationship between the number of workers of the network simulator of the present invention and the size of the network that can be simulated;

[0014] Figure 3C A diagram showing the relationship between the number of workers and simulation time of the network simulator of the present disclosure;

[0015] Figure 3D A graphical representation of the relationship between the number of prefix packets and the peak value of simulation and memory usage of the network simulator of the present disclosure is shown;

[0016] Figure 4 A flowchart of a network simulation method according to some embodiments of the present disclosure is shown;

[0017] Figure 5 An exemplary structural block diagram of a network simulation device according to some embodiments of the present disclosure is shown; and

[0018] Figure 6 A block diagram of an electronic device in which one or more embodiments of the present disclosure may be implemented is shown. DETAILED DESCRIPTION

[0019] Embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as being limited to the embodiments set forth herein. On the contrary, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are only for exemplary purposes and are not intended to limit the scope of protection of the present disclosure.

[0020] In the description of the embodiments of the present disclosure, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may also be included below.

[0021] Herein, unless explicitly stated, executing a step “in response to A” does not mean executing the step immediately after “A” but may include one or more intermediate steps.

[0022] It is understandable that the data involved in this technical solution (including but not limited to the data itself, the acquisition, use, storage or deletion of the data) shall comply with the requirements of relevant laws, regulations and relevant provisions.

[0023] It is understandable that before using the technical solutions disclosed in the various embodiments of the present disclosure, the types, scopes of use, usage scenarios, etc. of the information involved in the present disclosure should be informed to relevant users and their authorization should be obtained in an appropriate manner in accordance with relevant laws and regulations. The relevant users may include any type of right holders, such as individuals, enterprises, and groups.

[0024] For example, in response to receiving an active request from a user, a prompt message is sent to the relevant user to clearly prompt the relevant user that the operation requested to be performed will require obtaining and using the information of the relevant user, so that the relevant user can independently choose whether to provide information to software or hardware such as an electronic device, application, server or storage medium that executes the operation of the technical solution of the present disclosure based on the prompt message.

[0025] It is understandable that the above notification and the process of obtaining user authorization are merely illustrative and do not constitute a limitation on the implementation of the present disclosure. Other methods that meet relevant laws and regulations may also be applied to the implementation of the present disclosure.

[0026] Figure 1 A schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented is shown. In the example environment 100, the simulation system 120 includes N servers, for example, server 120-1, server 120-2, and server 120-N. N can be greater than or equal to any natural number, such as 1, 2, 3, or 4. The simulation system 120 simulates the data center network according to the data center network information 110, thereby obtaining the routing configuration of the data center network, or verifying whether there is a problem with the network configuration of the data center or its change. By simulating the data center network, the normal operation of the data center network can be guaranteed.

[0027] In some embodiments, one of the N servers may be used as a controller, and the remaining servers may be used as workers. The controller is used to establish a device model for network devices included in the data center network, such as routers, switches, etc., according to the data center network information 110, and deploy device nodes corresponding to these device models on the workers. By controlling the workers to perform routing calculations of these device models, the target routing configuration of the data center network is obtained.

[0028] It should be understood that the controller may be implemented by one or more server devices.

[0029] In some embodiments, the data center network information 110 may include network topology information of the data center network, information of each network device, such as information of a network device provider, routing policy information of the network device, and the like.

[0030] It should be understood that the structure and function of the various elements in the environment 100 are described for exemplary purposes only and do not imply any limitation on the scope of the present disclosure.

[0031] As mentioned above, network administrators may misconfigure the network for various reasons, which may lead to network outages. For example, the devices in a data center often come from different providers, and even if they come from the same provider, they may run different versions of software, making it difficult for network administrators to simultaneously understand how different devices should be configured to achieve the purpose of updating. In addition, different providers have different behaviors for the same configuration, namely vendor-specific behaviors (VSBs), which makes misconfiguration often occur. For example, a data center has 11,000 network devices, including almost all major network device providers, and 30% of the errors in its network are caused by vendor-specific behaviors. Take Border Gateway Protocol (BGP) loop detection as an example. For some providers, if the router sees its own AS number in the Autonomous System (AS) Path (PATH) of the external Border Gateway Protocol (eBGP) route, it will directly discard the eBGP route. For some other providers, the router applies this behavior to both eBGP and iBGP (internal Border Gateway Protocol) routes. As another example, for the remove-private-AS command, some provider routers will remove all private AS numbers, while other provider routers will only remove the private AS numbers before the first non-private AS number.

[0032] In addition, large data center networks are generally constantly updated and iterated to meet new business needs. Therefore, multiple generations of network architectures often coexist in data centers. This results in different data centers using different types of policies and using different templates to generate configurations. In addition, network administrators may also manually update the configuration due to some network errors, making the configuration style different from the standard configuration using the configuration generator. These non-standard configurations are prone to errors.

[0033] Therefore, in order to ensure the reliability and security of the data center network, before performing network configuration or certain changes to the data center network, network simulation or simulation is usually performed through simulation or other methods to evaluate the potential risks of configuration changes to the data center network. Currently, there are mainly the following types of tools that can be used for network simulation or simulation.

[0034] One type of tool is based on network emulation. This type of tool generates the corresponding FIB table (forwarding table) by running the image of each provider device in a simulation environment. However, running the device image is resource-intensive, which makes it difficult to expand network emulation to more than 10,000 devices within limited resources. Therefore, some emulators try to reduce the number of devices that need to be simulated as much as possible to improve scalability, but there is no universal method that can be applied to all networks and configurations. For example, the heuristic method for the secure simulation boundary of one type of emulation tool is not applicable to another type of emulation tool.

[0035] Another type of tool is a network simulation-based tool. In this type of tool, the control plane simulation runs a device model instead of a device image, thus using less computing and memory resources. For example, some network verifiers generate routing information tables (RoutingInformationBase, RIB) and forwarding information tables (Forwarding Information Base, FIB) by executing a routing calculation model, which can then be used for property checking by data plane verifiers (Data Plane Verifiers, DPVs). Some network verifiers use abstract interpretation or symbolic execution to make simulations more efficient. Some network verifiers significantly increase simulation speed by assuming routing monotonicity. However, none of these tools are currently network simulation tools that can scale to more than 10,000 network devices.

[0036] Another type of tool is analysis-based verifiers. These tools typically verify the control plane model directly without generating the data plane. Compared to simulation-based verifiers, they either have more limited scalability or sacrifice accuracy in exchange for better scalability.

[0037] In summary, current network simulation or emulation tools cannot meet the requirements of both high accuracy and high scalability. This is because high accuracy means that the tool must use a large amount of memory resources to accurately model the characteristics of various protocols and the specific device behaviors of multiple vendors, which makes tools based on graph algorithms and SMT solvers unable to meet the requirements of real data centers. Taking control plane simulation as an example, when simulating the routing calculation of the control plane of a network, each routing device in the network is modeled as a node. Each node iteratively announces routes, interacts with its neighboring nodes, and updates the optimal route in its RIB table until the RIB of all nodes no longer changes. This series of operations makes control plane simulation a highly data-intensive task that requires a large amount of memory to save data, and the required memory is proportional to the total number of routes. In hyperscale data center networks, the huge number of routing devices (>10K) and routing prefixes (a device may announce multiple routing prefixes) leads to an astonishing total number of routes. For example, in a fat tree type network (including 10125 network devices) configured with only BGP protocol and equal-cost multi-path routing (ECMP), the final total number of routes is 2.7 billion. The memory required to store these routes far exceeds the memory capacity of a single server. And because the router's optimal route selection, recursive route lookup, and route redirection are likely to be used at some point in the simulation process, they cannot be simply saved to disk (or hard disk), which ultimately makes memory the primary bottleneck limiting the application of control plane simulation tools to large data center networks.

[0038] In addition, for the simulation of large data center networks, it is often necessary to simulate more than 10K router configurations at the same time, and all current control plane verification tools cannot complete this within an acceptable time frame (two hours).

[0039] In view of this, according to an embodiment of the present disclosure, an improved scheme for network simulation is provided. According to the scheme of an embodiment of the present disclosure, a data center network including multiple network devices is divided into multiple sub-networks, and a sub-network in the multiple sub-networks includes one or more network devices in the multiple network devices. The multiple sub-networks are respectively assigned to multiple workers to allocate corresponding device nodes of one or more network devices included in the corresponding sub-networks on the workers in the multiple workers, and the device nodes include device models corresponding to the corresponding network devices. Routing calculations for the assigned device nodes are respectively performed on the multiple workers to determine the target route of the data center network.

[0040] In this way, a network simulation task such as control plane simulation can be split into multiple subtasks. Then, multiple subtasks are distributed and executed in parallel on multiple workers, so that the total number of network devices included in the simulated CNC center network greatly exceeds the total number of devices that can be simulated by current network simulation tools. In addition, this simulation method can also output the routing configuration information of the entire data plane. That is, the network simulation tool using the network simulation scheme of the present invention can have both high precision and high scalability. In addition, the use of the network simulation scheme of the present invention can also greatly reduce the time and memory resources required for network simulation, or greatly increase the total number of network devices that can be simulated under the premise of using the same time and memory resources.

[0041] Some example embodiments of the present disclosure will be described below with continued reference to the accompanying drawings.

[0042] Figure 2 FIG. 2 is a schematic diagram showing an exemplary architecture of a distributed network simulator 200 according to an embodiment of the present disclosure. Figure 2 As shown, a distributed network simulator 200 for network simulation may be implemented or included in the network simulation system 120 .

[0043] like Figure 2 As shown, the distributed network simulator 200 provided by the present disclosure includes two types of server nodes, namely a controller 210 and at least one worker 220. The controller 210 is used to perform device modeling, network partitioning, prefix partitioning, and scheduling at least one worker 220 to perform routing calculation of the device model on the network devices included in the data center network according to the data center network information 110, so as to determine the target route of the data center network. The controller 210 distributes the corresponding device nodes of the network devices included in the data center network to at least one worker 220, and schedules at least one worker 220 to perform routing calculation to determine the target route of the data center network.

[0044] like Figure 2 As shown, in some embodiments, the controller 210 may include a parser 211 , a network divider 212 , a prefix divider 213 , and a scheduler 214 .

[0045] The parser 211 is used to parse the provider-related configuration in the data center network information 110 into the provider-independent configuration so as to uniformly model the network equipment, thereby avoiding the generation of incorrect configuration during network simulation or the inability to correctly verify the network configuration due to different provider-related behaviors of different providers.

[0046] The parser 211 can perform modeling on each network device according to the provider-independent configuration of each network device to obtain a device model corresponding to each network device. The establishment of the device model can be implemented using various modeling methods that are already available in the art or will be developed in the future, such as using an existing network simulation tool to establish a device model of the corresponding network device.

[0047] The network divider 212 is used to divide a data center network including multiple network devices into multiple sub-networks, where a sub-network in the multiple sub-networks includes one or more network devices in the multiple network devices. The network divider 212 is also used to assign the multiple sub-networks to multiple workers, such as worker 1 and worker 2, respectively, so as to deploy corresponding device nodes of one or more network devices included in the corresponding sub-networks on the workers in the multiple workers, where the device nodes include device models corresponding to the corresponding network devices.

[0048] In some embodiments, the network divider 212 may respectively allocate the plurality of sub-networks to the plurality of workers based on at least one of the following indicators: load balancing of the workers among the plurality of workers, or minimizing the overhead required to simulate a data center network.

[0049] In some embodiments, a worker is assigned a subnetwork. The network divider 212 can divide the data center network into multiple subnetworks based on the network topology information in the data center network information 110, and try to divide the network devices with neighbor relationships into one subnetwork during the division process to distribute them on the same worker. In this way, the interaction between network devices with neighbor relationships can be completed in one worker, thereby reducing the interaction between workers. This can avoid the situation where the device nodes in one worker interact with the device nodes on another worker in large quantities, thereby reducing network overhead. The network divider 212 can also perform network division based on the routing information of each network device in the data center network information 110, so that the load of the corresponding device nodes on each worker is roughly the same. This can avoid the situation where some workers have a large load and require more computing resources (such as memory resources), while some workers' computing resources are not fully utilized.

[0050] In some embodiments, the network partitioner 212 may use various suitable heuristic algorithms or other suitable graph partitioning algorithms to partition the data center network, thereby minimizing the network transmission overhead while ensuring load balancing between workers as much as possible.

[0051] In some embodiments, the network divider 212 can divide a data center network including multiple network devices into multiple sub-networks based on the following formulas (1) and (2), and respectively allocate the multiple sub-networks to multiple workers.

[0052]

[0053]

[0054] The load balancing of the worker 220 can be achieved based on formula (1), and the network simulation overhead can be minimized based on formula (2). N is the total number of network devices in the data center. i,j represent the i-th and j-th device nodes, and load(i) represents the load of device node i. K represents the number of partitions into which the graph is divided in the graph partitioning problem, that is, in the graph partitioning, the graph is divided into K interconnected partitions. x_ik indicates whether node i belongs to partition k. If node i is assigned to partition k, x_ik=1, otherwise x_ik=0. x_jk indicates whether node j belongs to partition k. If node j is assigned to partition k, x_jk=1, otherwise x_jk=0. delay(i,j) represents a certain cost or delay between node i and node j, such as the inverse of the communication cost connection strength between node i and node j (for example, the inverse of the weight of the edge), which can be understood here as the weight between node i and node j. σ represents the balance coefficient, which is used to make the distribution of scaled devices more uniform.

[0055] The prefix divider 213 is used to divide the multiple routing prefixes in the configuration information of the multiple network devices included in the data center network into multiple prefix groups. That is, all the routing prefixes in the data center network information 110 are divided into multiple prefix groups. When performing routing calculations on at least one worker 220, multiple rounds of calculations are performed according to the number of divided prefix groups, and each round of calculations is performed for one prefix group in the multiple prefix groups. In this way, memory usage can be reduced by reducing the maximum number of routes that exist simultaneously in the worker memory, thereby avoiding triggering garbage collection (GC) due to insufficient memory as much as possible, thereby improving the operating rate and scalability.

[0056] In some embodiments, the prefix divider 213 first establishes a directed prefix dependency graph for multiple routing prefixes based on the dependency relationship between the routing prefixes in the multiple routing prefixes. The directed prefix dependency graph includes multiple nodes corresponding to the multiple routing prefixes and directed edges representing the dependency relationship between different routing prefixes. Then, the prefix divider 213 can call a graph algorithm such as a graph algorithm to determine multiple connected components (CC) from the directed prefix dependency graph. A connected subgraph can be a minimum prefix graph. Finally, the prefix divider 213 divides the multiple routing prefixes into a predetermined number of prefix groups according to the nodes respectively included in the multiple connected subgraphs. The predetermined number of prefix groups can be determined based on the number of network devices included in the data center network, and the predetermined number is not too large or too small.

[0057] As an example, there are the following route prefixes: prefix1:192.168.1.0 / 24, prefix2:192.168.0.0 / 16, prefix3:192.110.1.0 / 24, prefix4:192.110.1.1 / 32. Prefix2 is a subnet of prefix1, and the route calculation of prefix2 depends on the route calculation of prefix1. Therefore, prefix2 and prefix1 are divided into one prefix group. Prefix4 is a subnet of prefix3, and the route calculation of prefix4 depends on the route calculation of prefix3. Therefore, prefix4 and prefix3 are divided into one prefix group. Prefix3 and prefix4 have no dependency on prefix1 and prefix2, so they do not need to be divided into one prefix group. After executing the route calculation of a prefix group, the result of the prefix group can be serialized to the disk (that is, the hard disk of the server) to free up memory. In this way, since only one prefix group's route is calculated in each round, the memory resources required for route calculation can be reduced.

[0058] The scheduler 214 is used to schedule each worker and the device nodes deployed thereon to perform route calculation according to the process of the routing protocol when the controller 210 instructs to start route calculation, for example, first calculating the IGP (Interior Gateway Protocol) route and then calculating the interface route. The scheduler 214 is also used to complete the synchronization between different workers in the entire network. The scheduler 214 is also used to schedule workers to perform route calculation according to the convergence order between different routing protocols to ensure that the calculation order of different protocols conforms to the actual network situation. The scheduler 214 can perform route calculation in multiple rounds by scheduling different workers and the device nodes deployed thereon before convergence, for example, performing route calculation in the order of divided prefix groups, and one round of route calculation is for one prefix group. In each round of calculation, the scheduler 214 schedules the workers to calculate the routes of a grid of prefix groups in a parallel and distributed manner.

[0059] Continue to refer Figure 2 , at least one worker 220 may include one, two or more workers. For example, at least one worker 220 may include a worker 220-1 and a worker 220-2 (also collectively referred to as workers 220). The worker 220 may be composed of Figure 1 The server implementation in .

[0060] like Figure 2 As shown, the worker 220 may include a group of device nodes 230, a group of shadow nodes 240, a routing table 250, and an agent 260. Figure 2For purposes of illustration and simplicity, only one or two device nodes 230 / shadow nodes 240 are illustrated.

[0061] Device node 230 and shadow node 240 include device models of corresponding network devices. Device node 230 may have the same functions as real network devices, such as routing calculation and forwarding, and include information such as routing tables of corresponding network devices. Shadow node 240 only has forwarding function. Shadow node 240 is a neighbor of device node 230 in the network topology. For example, in the current network topology of the data center network, network device A and network device B have a neighbor relationship, but the device node corresponding to network device A is allocated on worker 1, and the device node corresponding to network device B is allocated on worker 2. In order to realize the interaction between the device node corresponding to network device A and the device node corresponding to network device B during routing calculation, a shadow node B' of network device B is deployed on worker 1, and a shadow node A' of network device A is deployed on worker 2. The interaction between the two device nodes will be described later and will not be repeated here.

[0062] The routing table 250 includes the routing tables corresponding to one or more network devices included in the subnet corresponding to the worker 220, but does not include the routing tables of network devices included in the subnet not allocated to the worker 220. For example, the worker 1 includes the routing table of the network devices included in the subnet allocated to the worker 1, but does not include the routing table of the network devices included in the subnet allocated to the worker 2. In this way, each worker 220 only stores the routing tables of some network devices, so the required memory resources can be greatly reduced.

[0063] The proxy 260 is used for communication between different workers 220. The proxy 260 runs independently of the device node on the same worker 220, and its function is similar to the Sidecar in the microservice. The proxy 260 maintains the mapping from the device node to the worker so as to route the request to the proxy on the corresponding worker, and then route the request to the corresponding device node.

[0064] The following describes an example workflow of the distributed network simulator 200. Taking the data center network information 110 (e.g., the relevant configuration file of the device provider) as input, the parser 211 first parses the data center network information 110 into a provider-independent configuration. Next, the network divider 212 divides the entire data center network into several sub-networks and assigns them to the corresponding workers 220 for operation. For example, in Figure 2, the subnet including the network device corresponding to device node A is assigned to worker 1, and the subnet including the network device corresponding to device node B and the network device corresponding to device node C is assigned to worker 2. When allocating subnets to workers 220, the network divider 212 will inform each worker 220 of all the allocation results (i.e., the allocation results of each subnet) so that when the worker 220 performs a route update, the communication agent 260 can execute a route request between workers. Then, the controller 210 (i.e., the scheduler 214) coordinates the workers 220 to run the device nodes on the workers 220 in parallel to perform route calculations. These device nodes will calculate routes, select or update the best routes, and derive routes until the best route for each device node no longer changes (reaches a fixed point). In order to check whether a fixed point has been reached, after each round of calculation, the controller 210 will update the topology and check whether these topologies are the same as the previous round.

[0065] In the present disclosure, device node A and device node B are used as examples to illustrate how to perform routing calculation using the distributed network simulator of the present disclosure. Assume that device node A on worker 1 requests routing from device node B running on worker 2. At this time, device node A does not directly request routing from device node B running on worker 2 (i.e., it does not directly call the function of device node B), but sends the routing request to shadow node B' (i.e., calls the function of shadow node B'). When shadow node B' receives the routing request (i.e., when B''s function is called), shadow node B' sends the routing request to agent 2 on the worker through agent 1 on worker 1. Then, agent 2 sends the routing request to device node B. Device node B receives the routing request and sends the routing information requested by device node A to device node A through agent 2, agent 1 and shadow node B'. After device node A receives the requested routing information, it performs routing update based on the obtained routing information.

[0066] Thanks to the above routing calculation strategy, the distributed network simulator provided by the present disclosure does not need to modify the routing switching functions directly in the device model of the underlying simulator, but only needs to hijack these functions by rewriting. When the device model evolves, only corresponding minor adjustments need to be made.

[0067] In order to verify the effect of the distributed network simulator 200 of the present disclosure, the following network simulation (or control plane simulation) experiment is conducted in the present disclosure. The experimental results are shown in FIG. FIG. 3A to FIG. 3D .

[0068] The network simulation experiment disclosed in the present invention is performed using 4 servers. Each server can be configured with a processor of a server type available in the art (i.e., a processor suitable for the server). The experimental data set includes a synthetic FatTree data set and a real data set. In the synthetic FatTree data set, each router has a unique AS number and forms an eBGP neighbor with its adjacent routers. The devices in the FatTree network are all ECMP (Equal-cost Multi-path) enabled, and each router can have up to 64 routes with the same priority for each prefix. The real data set uses the configuration of the data center network (DCN) provided by a large service A. The DCN has a total of more than 11,000 routers from more than 5 equipment providers. Each router has about a thousand lines of configuration, all of which contain rich BGP routing strategies and route aggregation.

[0069] The network simulation experiment disclosed in the present invention shows that in terms of simulation accuracy, compared with the analysis-based verifier tool, the distributed network simulation tool provided by the present invention can output the routes of the entire data plane, and still preserves the forwarding details of the network after abstract modeling. The total number of routes obtained by simulation is consistent with the results of the centralized network simulation tool.

[0070] The network simulation experiment of the present disclosure shows that the distributed network simulator of the present disclosure can not only be expanded from the original limit of emulating or simulating less than 5,000 devices to more than 10,000 devices (which can be further improved as the number of workers in the distributed system increases), but also the time required for network simulation and the peak value of device memory used are reduced.

[0071] like Figure 3A As shown, compared with simulation tool A, the total number of simulated devices using the distributed network simulator disclosed in the present invention is significantly increased, while the network simulation time and required memory resources are significantly reduced.

[0072] like Figure 3B As shown, using the distributed network simulator of the present invention, each time a worker is added to the distributed system, the maximum simulation scale of the entire distributed network simulation system can be increased. This means that the distributed network simulator architecture of the present invention performs reasonable resource division for data-intensive computing tasks, so that different workers do not need to save duplicate data.

[0073] Figure 3C The figure shows the time required for the same computation task under different numbers of workers. Figure 3C It can be seen that the use of the distributed network simulator disclosed in the present invention improves the overall parallelism and can shorten the time required for the CPU-intensive routing convergence part during the simulation process to a certain extent.

[0074] Figure 3D This chapter explains the relationship between the number of routing prefix groups and the simulation time and peak memory usage of a FatTree type network. The finer the prefix division, the fewer prefixes there will be in each batch. This will theoretically reduce the peak memory. However, since the peak memory is related to the GC trigger time in the program, although the overall trend is downward, it is not strictly downward. This is because the simulation time has a fixed overhead between each batch. If the number of prefixes in each batch is too large, there are too many routes in the memory at the same time, which will increase the simulation time due to memory limitations. If the number of prefixes in each batch is too small, the simulation time will be too long due to the fixed overhead between batches. Reference Figure 3D It can be seen that the overall trend of simulation time is that it decreases first and then increases as the number of prefix groups increases. Therefore, when dividing routing prefixes, it is necessary to divide a reasonable number of prefix groups, otherwise the simulation time may increase instead of decrease.

[0075] Figure 4 FIG. 4 is a flowchart of a process 400 for information processing according to some embodiments of the present disclosure. For ease of discussion, reference will be made to Figure 1 Environment 100 and Figure 2 The process 400 is described with reference to the example architecture 200 of FIG.

[0076] In block 410 , the network simulation system 120 divides a data center network including a plurality of network devices into a plurality of sub-networks, where a sub-network of the plurality of sub-networks includes one or more network devices of the plurality of network devices.

[0077] In box 420, the network simulation system 120 allocates multiple sub-networks to multiple workers respectively to allocate corresponding device nodes of one or more network devices included in the corresponding sub-networks on the workers among the multiple workers, and the device nodes include device models corresponding to the corresponding network devices.

[0078] In block 430 , the network simulation system 120 performs routing calculations for the assigned device nodes on the plurality of workers 220 , respectively, to determine a target route for the data center network.

[0079] In some embodiments, a first device node A of a first network device in a first sub-network is assigned to a first worker 220-1 among a plurality of workers 220, a second device node B of a second network device in a second sub-network is assigned to a second worker 220-2 among a plurality of workers, the second network device and the first network device have a neighbor relationship in the network topology, and routing calculations for the assigned device nodes are respectively performed on the plurality of workers 220, including: in response to the first device node A requesting a route to the second device node B, obtaining the routing information requested by the first device node A from the second worker 220-2; and performing a routing update for the first device node A based on the obtained routing information.

[0080] In some embodiments, a second shadow node B' corresponding to the second network device is allocated on the first worker 220-1, and the second shadow node B' includes a forwarding function corresponding to the second network device, and obtaining the routing information requested by the first device node A from the second worker 220-2 includes: in response to the first device node A requesting a route to the second device node B, the first device node A sends a routing request to the second shadow node B'; forwarding the routing request from the second shadow node B' to the second device node B; and in response to forwarding the routing request to the second device node B, sending the routing information requested by the first device node A from the second device node B to the first device node A via the second shadow node B'.

[0081] In some embodiments, a first agent 1 is assigned to the first worker 220-1, a second agent 2 is assigned to the second worker, and forwarding a routing request from the second shadow node B' to the second device node B includes: forwarding the routing request from the second shadow node B' to the second device node B through the first agent 1 and the second agent 2, and sending the routing information requested by the first device node A from the second device node B to the first device node A through the second shadow node B' includes: sending the routing information from the second device node B to the second shadow node B' through the first agent 1 and the second agent 2; and forwarding the routing information from the second shadow node B' to the first device node A.

[0082] In some embodiments, process 400 also includes: sending information indicating that the first device node A is assigned on the first worker 220-1 and the second device node B is assigned on the second worker 220-2 to the first worker 220-1 and the second worker 220-2 respectively, so as to forward the routing request to the second device node B through the first agent 1 and the second agent 2.

[0083] In some embodiments, performing routing calculations includes multiple rounds of calculations, and process 400 also includes: dividing multiple routing prefixes in the configuration information of multiple network devices included in the data center network into multiple prefix groups, wherein each round of calculations in the multiple rounds of calculations is performed for one prefix group in the multiple prefix groups.

[0084] In some embodiments, dividing multiple routing prefixes in the configuration information of multiple network devices included in the data center network into multiple prefix groups includes: establishing a directed prefix dependency graph for the multiple routing prefixes based on the dependency relationships between the routing prefixes in the multiple routing prefixes, the directed prefix dependency graph including multiple nodes corresponding to the multiple routing prefixes respectively and directed edges representing the dependency relationships between different routing prefixes; determining multiple connected subgraphs from the directed prefix dependency graph; and dividing the multiple routing prefixes into a predetermined number of prefix groups according to the nodes respectively included in the multiple connected subgraphs.

[0085] In some embodiments, the routing calculation includes multiple rounds of calculation, and process 400 also includes: in response to the end of the current round of calculation, updating the network topology of the data center network; and in response to the current network topology of the data center network being the same as the previous network topology, determining the route corresponding to the current network topology as the target route, the previous network topology being a network topology obtained based on the route determined in the round of calculation before the current round of calculation.

[0086] In some embodiments, the plurality of sub-networks are respectively assigned to the plurality of workers based on at least one of the following indicators: load balancing of the workers among the plurality of workers, or minimizing the overhead required to simulate a data center network.

[0087] In summary, according to the embodiments of the present disclosure, the task of network simulation is split into multiple subtasks through network division and prefix division and assigned to a distributed server cluster for running, thereby solving the memory bottleneck during network simulation of ultra-large-scale data centers and improving the scalability of network simulation. Among them, network division divides the network into several sub-networks and assigns them to different servers. Since each sub-network only contains some nodes, each server only needs to maintain part of the routes, and the required memory is reduced. Prefix division divides all prefixes into multiple independent prefix groups, and then, when performing route calculation, the route calculation is divided into multiple rounds based on the divided prefix groups, and each round only calculates the routes of one prefix group. In this way, each server only needs to maintain the routes of a single prefix group in each round, thereby further reducing the memory resources required on a single server.

[0088] The embodiments of the present disclosure also provide corresponding devices for implementing the above methods or processes. Figure 5An exemplary structural block diagram of a network simulation device 500 according to some embodiments of the present disclosure is shown. The device 500 may be implemented as or included in the network simulation system 120. Each module / component in the device 500 may be implemented by hardware, software, firmware, or any combination thereof.

[0089] like Figure 5 As shown, the apparatus 500 includes a network partitioning module 510, which is configured to partition a data center network including a plurality of network devices into a plurality of sub-networks, wherein a sub-network in the plurality of sub-networks includes one or more network devices in the network devices. A network allocation module 520 is configured to allocate the plurality of sub-networks to a plurality of workers respectively, so as to allocate corresponding device nodes of one or more network devices included in the corresponding sub-networks on the workers in the plurality of workers, wherein the device nodes include device models corresponding to the corresponding network devices. A routing determination module 530 is configured to perform routing calculations for the allocated device nodes on the plurality of workers respectively, so as to determine the target routing configuration of the data center network.

[0090] In some embodiments, a first device node of a first network device in a first sub-network is assigned to a first worker among a plurality of workers, a second device node of a second network device in a second sub-network is assigned to a second worker among a plurality of workers, the second network device and the first network device have a neighbor relationship in the network topology, and the routing determination module 530 is further configured to: in response to the first device node requesting a route to the second device node, obtain the routing information requested by the first device node from the second worker; and based on the obtained routing information, perform a routing update for the first device node.

[0091] In some embodiments, a second shadow node corresponding to the second network device is allocated on the first worker, the second shadow node includes a forwarding function corresponding to the second network device, and the routing determination module 530 is also configured to: in response to the first device node requesting a route to the second device node, the first device node sends a routing request to the second shadow node; forwards the routing request from the second shadow node to the second device node; and in response to the routing request being forwarded to the second device node, sends the routing information requested by the first device node from the second device node to the first device node via the second shadow node.

[0092] In some embodiments, a first agent is assigned to the first worker, a second agent is assigned to the second worker, and the routing determination module 530 is also configured to: forward the routing request from the second shadow node to the second device node through the first agent and the second agent, and send the routing information requested by the first device node from the second device node to the first device node through the second shadow node, including: sending the routing information from the second device node to the second shadow node through the first agent and the second agent; and forwarding the routing information from the second shadow node to the first device node.

[0093] In some embodiments, the network allocation module 520 is also configured to send information indicating that the first device node is allocated on the first worker and the second device node is allocated on the second worker to the first worker and the second worker respectively, so as to forward the routing request to the second device node through the first agent and the second agent.

[0094] In some embodiments, performing routing calculations includes multiple rounds of calculations, and the device 500 also includes a prefix division module, which is configured to: divide multiple routing prefixes in the configuration information of multiple network devices included in the data center network into multiple prefix groups, wherein each round of calculations in the multiple rounds of calculations is performed for one prefix group among the multiple prefix groups.

[0095] In some embodiments, the prefix division module is further configured to: divide multiple routing prefixes in the configuration information of multiple network devices included in the data center network into multiple prefixes; based on the dependency relationship between the routing prefixes in the multiple routing prefixes, establish a directed prefix dependency graph for the multiple routing prefixes, the directed prefix dependency graph including multiple nodes corresponding to the multiple routing prefixes respectively and directed edges representing the dependency relationship between different routing prefixes; determine multiple connected subgraphs from the directed prefix dependency graph; and divide the multiple routing prefixes into a predetermined number of prefix groups according to the nodes respectively included in the multiple connected subgraphs.

[0096] In some embodiments, the route calculation includes multiple rounds of calculation, and the route determination module 530 is further configured to: update the network topology of the data center network in response to the end of the current round of calculation; and determine the route corresponding to the current network topology as the target route in response to the current network topology of the data center network being the same as the previous network topology, wherein the previous network topology is a network topology obtained by determining the route determined in the round of calculation before the current round of calculation.

[0097] In some embodiments, the network partitioning module 510 allocates the multiple sub-networks to the multiple workers respectively based on at least one of the following indicators: load balancing of the workers among the multiple workers, or minimizing the overhead required to simulate the data center network.

[0098] The units and / or modules included in the device 500 can be implemented in various ways, including software, hardware, firmware, or any combination thereof. In some embodiments, one or more units and / or modules can be implemented using software and / or firmware, such as machine executable instructions stored on a storage medium. In addition to or as an alternative to machine executable instructions, some or all of the units and / or modules in the device 500 can be implemented at least in part by one or more hardware logic components. As an example and not limitation, exemplary types of hardware logic components that can be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.

[0099] It should be understood that one or more steps in the above method can be performed by a suitable electronic device or a combination of electronic devices. Such an electronic device or a combination of electronic devices may include, for example, Figure 1 Servers 1-n.

[0100] Figure 6 1 shows a block diagram of an electronic device 600 in which one or more embodiments of the present disclosure may be implemented. It should be understood that Figure 6 The electronic device 600 shown is merely exemplary and should not constitute any limitation on the functionality and scope of the embodiments described herein. Figure 6 The electronic device 600 shown can be used to implement Figure 1 Any one of servers 1, 2, n.

[0101] like Figure 6 As shown, the electronic device 600 is in the form of a general electronic device. The components of the electronic device 600 may include, but are not limited to, one or more processors or processing units 610, a memory 620, a storage device 630, one or more communication units 640, one or more input devices 650, and one or more output devices 660. The processing unit 610 may be an actual or virtual processor and is capable of performing various processes according to a program stored in the memory 620. In a multi-processor system, multiple processing units execute computer executable instructions in parallel to improve the parallel processing capability of the electronic device 600.

[0102] The electronic device 600 typically includes a plurality of computer storage media. Such media may be any accessible media that is accessible to the electronic device 600, including but not limited to volatile and non-volatile media, removable and non-removable media. The memory 620 may be a volatile memory (e.g., registers, caches, random access memory (RAM)), a non-volatile memory (e.g., a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. The storage device 630 may be a removable or non-removable medium, and may include a machine-readable medium, such as a flash drive, a disk, or any other medium, which may be capable of being used to store information and / or data and may be accessed within the electronic device 600.

[0103] The electronic device 600 may further include additional removable / non-removable, volatile / non-volatile storage media. Figure 6 As shown in , a disk drive for reading or writing from a removable, non-volatile disk (e.g., a "floppy disk") and an optical drive for reading or writing from a removable, non-volatile optical disk may be provided. In these cases, each drive may be connected to the bus (not shown) by one or more data media interfaces. The memory 620 may include a computer program product 625 having one or more program modules that are configured to perform various methods or actions of various embodiments of the present disclosure.

[0104] The communication unit 640 implements communication with other electronic devices through a communication medium. Additionally, the functions of the components of the electronic device 500 can be implemented with a single computing cluster or multiple computing machines that can communicate through a communication connection. Therefore, the electronic device 600 can operate in a networked environment using a logical connection with one or more other servers, a network personal computer (PC), or another network node.

[0105] The input device 650 may be one or more input devices, such as a mouse, a keyboard, a tracking ball, etc. The output device 660 may be one or more output devices, such as a display, a speaker, a printer, etc. The electronic device 600 may also communicate with one or more external devices (not shown) through the communication unit 640 as needed, such as a storage device, a display device, etc., communicate with one or more devices that allow a user to interact with the electronic device 600, or communicate with any device that allows the electronic device 600 to communicate with one or more other electronic devices (e.g., a network card, a modem, etc.). Such communication may be performed via an input / output (I / O) interface (not shown).

[0106] According to an exemplary implementation of the present disclosure, a computer-readable storage medium is provided, on which computer-executable instructions are stored, wherein the computer-executable instructions are executed by a processor to implement the method described above. According to an exemplary implementation of the present disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, and the computer-executable instructions are executed by a processor to implement the method described above.

[0107] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices, equipment, and computer program products implemented according to the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.

[0108] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0109] Computer-readable program instructions can be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operational steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable data processing apparatus, or other device implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.

[0110] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple implementations of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of a module, program segment or instruction includes one or more executable instructions for realizing the logical function of the specification. In some implementations as an update, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the function involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.

[0111] The above descriptions of various implementations of the present disclosure are exemplary, non-exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The selection of terms used herein is intended to best explain the principles of the implementations, practical applications, or improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the various implementations disclosed herein.

Claims

1. A network simulation method, comprising: Dividing a data center network including a plurality of network devices into a plurality of sub-networks, wherein a sub-network in the plurality of sub-networks includes one or more network devices in the plurality of network devices; Allocating the plurality of sub-networks to a plurality of workers respectively, so as to allocate corresponding device nodes of one or more network devices included in the corresponding sub-networks on the workers among the plurality of workers, wherein the device nodes include device models corresponding to the corresponding network devices; and The plurality of workers respectively perform routing calculations for the allocated device nodes to determine a target route for the data center network.

2. The method according to claim 1, wherein a first device node of a first network device in a first sub-network is allocated to a first worker among the plurality of workers, a second device node of a second network device in a second sub-network is allocated to a second worker among the plurality of workers, the second network device and the first network device have a neighbor relationship in a network topology, and performing routing calculations for the allocated device nodes on the plurality of workers respectively comprises: In response to the first device node requesting a route from the second device node, obtaining the routing information requested by the first device node from the second worker; as well as Based on the acquired routing information, a routing update is performed for the first device node.

3. The method according to claim 2, wherein a second shadow node corresponding to the second network device is allocated to the first worker, the second shadow node includes a forwarding function corresponding to the second network device, and obtaining the routing information requested by the first device node from the second worker comprises: In response to the first device node requesting a route from the second device node, the first device node sends a route request to the second shadow node; forwarding the routing request from the second shadow node to the second device node; as well as In response to the routing request being forwarded to the second device node, the routing information requested by the first device node is sent from the second device node to the first device node via the second shadow node.

4. The method according to claim 3, wherein a first agent is assigned to the first worker, a second agent is assigned to the second worker, and forwarding the routing request from the second shadow node to the second device node comprises: forwarding the routing request from the second shadow node to the second device node through the first proxy and the second proxy, and Sending the routing information requested by the first device node from the second device node to the first device node through the second shadow node includes: sending the routing information from the second device node to the second shadow node through the first agent and the second agent; and The routing information is forwarded from the second shadow node to the first device node.

5. The method according to claim 4, further comprising: Information indicating that the first device node is assigned to the first worker and the second device node is assigned to the second worker is sent to the first worker and the second worker respectively, so as to forward the routing request to the second device node through the first agent and the second agent.

6. The method according to any one of claims 1 to 5, wherein performing the routing calculation comprises a plurality of rounds of calculation, and the method further comprises: A plurality of routing prefixes in the configuration information of a plurality of network devices included in the data center network are divided into a plurality of prefix groups, wherein each round of calculations in the plurality of rounds of calculations is performed for a prefix group in the plurality of prefix groups.

7. The method according to claim 6, wherein dividing a plurality of routing prefixes in the configuration information of a plurality of network devices included in the data center network into a plurality of prefix groups comprises: Based on the dependency relationship between the routing prefixes in the multiple routing prefixes, establishing a directed prefix dependency graph for the multiple routing prefixes, the directed prefix dependency graph comprising a plurality of nodes respectively corresponding to the multiple routing prefixes and directed edges representing the dependency relationship between different routing prefixes; Determining a plurality of connected subgraphs from the directed prefix dependency graph; as well as The multiple routing prefixes are divided into a predetermined number of prefix groups according to the nodes respectively included in the multiple connected subgraphs.

8. The method according to claim 1, wherein the routing calculation comprises a plurality of rounds of calculation, and the method further comprises: In response to the end of the current round of calculation, updating the network topology of the data center network; as well as In response to the current network topology of the data center network being the same as a previous network topology, a route corresponding to the current network topology is determined as the target route, wherein the previous network topology is a network topology obtained by calculating a route determined in a previous round of calculations based on a current round of calculations.

9. The method according to claim 1, wherein the plurality of sub-networks are respectively assigned to the plurality of workers based on at least one of the following indicators: load balancing of the workers among the plurality of workers, or Minimize the overhead required to emulate the data center network.

10. A device for network simulation, comprising: A network partitioning module is configured to partition a data center network including a plurality of network devices into a plurality of sub-networks, wherein a sub-network in the plurality of sub-networks includes one or more network devices in the network devices; A network allocation module is configured to allocate the plurality of sub-networks to a plurality of workers respectively, so as to allocate corresponding device nodes of one or more network devices included in the corresponding sub-network on the workers among the plurality of workers, wherein the device nodes include device models corresponding to the corresponding network devices; as well as The route determination module is configured to respectively perform route calculations for the allocated device nodes on the multiple workers to determine a target route of the data center network.

11. An electronic device, comprising: at least one processing unit; as well as At least one memory, the at least one memory being coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions causing the electronic device to perform the method according to any one of claims 1 to 9 when executed by the at least one processing unit.

12. A computer-readable storage medium having a computer program stored thereon, wherein the computer program can be executed by a processor to implement the method according to any one of claims 1 to 9.

13. A computer program product, comprising a computer program, wherein the computer program implements the method according to any one of claims 1 to 9 when executed by a processor.