Link monitoring method for soft-defined networks

By using load monitoring and path optimization modules in software-defined networks to determine the target path, the problem of low matching of target paths in traditional network architectures is solved, and the flexibility and operability of the network are improved.

CN116248575BActive Publication Date: 2025-03-04CHINA TELECOM CORP LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211711832.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-29
Publication Date
2025-03-04
Estimated Expiration
2042-12-29

AI Technical Summary

Technical Problem

The low matching degree of target paths in traditional network architectures leads to high network deployment and maintenance costs and is difficult to adapt to the development of cloud and other information systems.

Method used

The load monitoring module obtains the switch's network information from the network topology of the software-defined network, determines the load matrix and address information, and determines the target path between the source switch and the destination switch based on this information through the path optimization module.

Benefits of technology

It improves the portability of the application and the interoperability between different control platforms, simplifies the operation between different control platforms, and solves the problem of low target path matching.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116248575B_ABST
    Figure CN116248575B_ABST
Patent Text Reader

Abstract

The present application discloses a link monitoring method for a software-defined network. The method is applied to the field of software definition, and includes: obtaining network information of multiple switches from the network topology structure corresponding to the software-defined network through a load monitoring module; determining a load matrix and address information based on the network information of multiple switches through the load monitoring module; determining a target path between a source switch and a destination switch based on the load matrix and address information through a path optimization module. The present application solves the technical problem of low target path matching in a network architecture.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data encryption, and in particular to a link monitoring method for a soft-defined network. Background Art

[0002] At present, new services are placing an increasing demand on network resources. Traditional network architectures are not only slow in deploying new services, but also have high network operation and maintenance costs, which results in traditional network architectures not being able to adapt well to the development of cloud and other information systems. In order to better match network architectures with new technologies and reduce the costs of network deployment and maintenance, traditional network architectures must be innovated. The development of northbound interfaces is relatively slow, and there is no unified specification, resulting in a low degree of matching of target paths in the network architecture.

[0003] To address the above problems, no effective solution has been proposed yet. Summary of the invention

[0004] The embodiment of the present application provides a link monitoring method for a soft-defined network to at least solve the technical problem of low target path matching in the network architecture.

[0005] According to one aspect of an embodiment of the present application, a link monitoring method for a software-defined network is provided, including: obtaining network information of multiple switches from a network topology structure corresponding to the software-defined network through a load monitoring module; determining a load matrix and address information based on the network information of the multiple switches through the load monitoring module, wherein the load matrix is ​​used to characterize traffic load information of different links between the multiple switches, and the address information includes: a source address of a source switch among the multiple switches, and a destination address of a destination switch; determining a target path between the source switch and the destination switch based on the load matrix and the address information through a path optimization module.

[0006] Optionally, the load monitoring module determines the load matrix and address information based on the network information of multiple switches, including: generating a load matrix based on the network information of multiple switches; and determining the source address and destination address based on the utilization of each link in the load matrix.

[0007] Optionally, generating a load matrix based on network information of the multiple switches includes: determining throughput information of different ports of the multiple switches from the network information of the multiple switches; and generating the load matrix based on the network topology and the throughput information.

[0008] Optionally, based on the utilization of each link in the load matrix, the source address and the destination address are determined, including: based on the utilization of each link, determining the target link from the load matrix, wherein the utilization of the target link is greater than a preset threshold; determining the target data flow from at least one data flow on the target link, wherein the flow rate of the target data flow is greater than other data flows in at least one data flow; and extracting the source address and the destination address from the flow table entry corresponding to the target data flow.

[0009] Optionally, based on the utilization of each link in the load matrix, the source address and the destination address are determined, including: based on the utilization of each link, determining the target link from the load matrix, wherein the utilization of the target link is greater than a preset threshold; determining the target data flow from at least one data flow on the target link, wherein the flow rate of the target data flow is greater than other data flows in at least one data flow; and extracting the source address and the destination address from the flow table entry corresponding to the target data flow.

[0010] Optionally, the method also includes: generating an application service topology based on the association relationship in the log service application database, wherein the application service topology stores the relationship between different indicators between different servers; generating a data set of the application service topology based on the logs of different services, wherein the data set stores the monitoring data and operating conditions between different servers and different indicators; performing classification and prediction on the data set using a classification prediction model to determine the categories of different data in the data set; and obtaining a network topology structure based on the application service topology, the data set and the categories of different data.

[0011] Optionally, a classification prediction model is used to perform classification prediction on the data set to determine the categories of different data in the data set, including: using a naive Bayes classification method to perform classification prediction on the data set to obtain the categories of different data.

[0012] Optionally, a target path between a source switch and a destination switch is determined based on a load matrix and address information by a path optimization module, including: generating multiple initial local paths between the source switch and the destination switch based on the load matrix and address information; determining an initial global path among the multiple initial local paths; performing multiple iterative updates on the multiple initial local paths and the initial global path to obtain multiple target local paths and a target global path; and determining the target global path as the target path.

[0013] Optionally, based on the load matrix and the address information, multiple initial local paths are generated between the source switch and the destination switch, including: determining the source switch and the destination switch based on the address information; determining the adjacent switches adjacent to each switch based on the network topology; determining the initial probability of the adjacent switches based on the traffic load between each switch and the adjacent switches in the load matrix; and generating multiple initial local paths based on the initial probability of the adjacent switches.

[0014] Optionally, determining an initial global path among multiple initial local paths includes: determining a total available bandwidth of the multiple initial local paths and a number of links included in the multiple initial local paths based on a load matrix; determining evaluation values ​​of the multiple initial local paths based on the total available bandwidth and the number of links; and obtaining an initial local path corresponding to a maximum evaluation value among the multiple initial local paths to obtain an initial global path.

[0015] Optionally, the multiple initial local paths and the initial global path are iteratively updated multiple times to obtain multiple target local paths and the target global path, including: determining the target probability of the adjacent switch based on the probability of the adjacent switch and the relationship between the adjacent switch and the multiple initial local paths and the initial global path; updating the multiple initial local paths based on the target probability of the adjacent switch to obtain multiple updated local paths; determining an updated global path among the multiple updated local paths; using the multiple updated local paths as the multiple initial local paths and the updated global path as the initial global path, and repeatedly executing the steps of determining the target probability, updating the multiple initial local paths, and determining the updated global path until the number of iterations reaches a preset number; determining the multiple updated local paths as the multiple target local paths, and determining the updated global path as the target global path.

[0016] According to another aspect of an embodiment of the present application, a link monitoring device for a software-defined network is also provided, including: a load monitoring module, used to obtain network information of multiple switches from a network topology structure corresponding to the software-defined network, and determine a load matrix and address information based on the network information of the multiple switches, wherein the load matrix is ​​used to characterize the traffic load information of different links between the multiple switches, and the address information includes: a source address of a source switch among the multiple switches, and a destination address of a destination switch; a path optimization module, used to determine a target path between the source switch and the destination switch based on the load matrix and the address information.

[0017] According to another aspect of an embodiment of the present application, a non-volatile storage medium is further provided, characterized in that the non-volatile storage medium includes a stored program, wherein when the program is running, the device where the non-volatile storage medium is located is controlled to execute any one of the methods in the above embodiments.

[0018] According to another aspect of an embodiment of the present application, a processor is further provided, characterized in that the processor is used to run a program stored in a memory, wherein the program executes any one of the methods in the above embodiments when it is run.

[0019] In an embodiment of the present application, the load monitoring module obtains network information of multiple switches from the network topology structure corresponding to the software-defined network, thereby determining the load matrix and address information based on the network information of the multiple switches, and further the path optimization module determines the target path between the source switch and the destination switch based on the load matrix and address information. It should be noted that the load monitoring module obtains the network information of multiple switches, thereby determining the target path, achieving the purpose of improving the portability of the application and the interoperability between different control platforms, achieving the technical effect of easier operation between different control platforms, and thus solving the technical problem of low target path matching in the network architecture. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:

[0021] Figure 1 is a flow chart of a link monitoring method for a software defined network according to an embodiment of the present application;

[0022] Figure 2 A flowchart of obtaining a target path according to an embodiment of the present application is shown in FIG.

[0023] Figure 3 is a flow chart of a link monitoring method of an optionally overall software defined network according to an embodiment of the present application;

[0024] Figure 4 It is a schematic diagram of a link monitoring device for a software defined network according to an embodiment of the present application. DETAILED DESCRIPTION

[0025] In order to enable those skilled in the art to better understand the solution of the present application, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of the present application.

[0026] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device comprising a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0027] Example 1

[0028] According to an embodiment of the present application, an embodiment of a link monitoring method for a software-defined network is provided. It should be noted that the steps shown in the flowchart of the accompanying drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described can be executed in an order different from that shown here.

[0029] Figure 1 is a flow chart of a link monitoring method for a software defined network according to an embodiment of the present application, such as Figure 1 As shown, the method comprises the following steps:

[0030] Step S102, obtaining network information of multiple switches from a network topology structure corresponding to the software defined network through a load monitoring module;

[0031] The above-mentioned load monitoring module may be a module responsible for collecting network information of each switch in the network topology and monitoring the switch. Software-defined network may be a new type of network innovation architecture, a way to implement network virtualization, which separates the control plane from the data plane of network devices to achieve flexible control of network traffic. Network topology may refer to the physical layout of various devices interconnected by transmission media, which may be but not limited to: bus structure, ring structure, star structure, tree structure and mesh structure. A switch may be a network device used for forwarding electrical / optical signals, which may be but not limited to: Ethernet switch, fiber optic switch. Network information may refer to information published on the Internet using network technology, which may be but not limited to: network information about switches.

[0032] In an optional embodiment, the load monitoring module is responsible for periodically querying and collecting network information of each switch in the network topology structure.

[0033] It should be noted that the load monitoring module can easily obtain various types of network information thanks to the powerful and complete statistical function of the OpenFlow (network communication protocol) protocol. As the core component of the OpenFlow network, the OpenFlow switch is responsible for data forwarding on the data plane. The OpenFlow switch is mainly composed of a secure channel, a flow table, and the OpenFlow protocol. The calculator in the flow table of the OpenFlow switch is used to count information such as the number of processed data packets. OpenFlow mainly has four types of counters: counters for each flow table, counters for each switch port, counters for each flow table item, and counters for each queue. Using these counters, information such as the number of data packets in a single flow and the throughput of the switch port can be obtained.

[0034] Step S104, determining a load matrix and address information based on network information of multiple switches through a load monitoring module, wherein the load matrix is ​​used to characterize traffic load information of different links between multiple switches, and the address information includes: a source address of a source switch among the multiple switches, and a destination address of a destination switch.

[0035] The load matrix mentioned above may be a collection matrix of load vector information of different links of multiple switches, wherein a link may refer to a passive point-to-point physical connection. In wired communication, a link refers to a physical line between two nodes; in wireless communication, a link refers to a path space for propagating electromagnetic waves between a base station and a terminal. Traffic load information may be information related to the traffic carried in the network and the number of users carried by network devices. Address information may be address-related information about multiple switches. A source switch may be a switch that sends data. A source address may be an address of a data source that sends data. A destination switch may be a switch that receives data. A destination address may be an address that receives data.

[0036] In an optional embodiment, the load monitoring module determines the throughput information of different ports of multiple switches based on the network information of multiple switches obtained, and then calculates the traffic load of each link between the switches in the entire network based on the global network topology structure mastered by the Floodlight controller, and stores it in the load matrix, thereby generating a corresponding load matrix based on the throughput information and the network topology structure. And obtain the utilization rate of each link in the load matrix, when the utilization rate of a link exceeds a certain value, analyze all data flows on the link, find out the data flow with the largest flow rate, and then determine the target link from the load matrix, and further determine the target data flow from at least one data flow on the target link, and extract the source address and destination address from the flow table entry corresponding to the target data flow.

[0037] It should be noted that the threshold of link utilization can be regarded as tolerance. Different administrators set different tolerances based on different purposes (whether to pursue absolute network balance or to minimize scheduling frequency while pursuing balance). This application sets the value to 60%. If the threshold is set too high, congestion may have occurred in the link, and it is not possible to fully utilize redundant multipaths and give play to the advantages of Fat-Tree architecture multipaths; if the threshold is set too low, it may cause frequent changes in data flow paths, affecting communication effects.

[0038] Step S106: Determine the target path between the source switch and the destination switch based on the load matrix and the address information through the path optimization module.

[0039] The above-mentioned path optimization module can be a module that receives the full link load matrix and source-destination addresses processed by the load monitoring module, and calls the algorithm in this article to calculate the best path between the source and destination hosts based on the current link load. The target path can be a path that determines the data transmission between the source switch and the destination switch.

[0040] In an optional embodiment, the source switch and the destination switch are determined according to the load matrix and the address information, and the adjacent switches adjacent to each switch are further determined according to the network topology structure, so as to determine the initial probability of the adjacent switch according to the traffic load between each switch and the adjacent switch in the load matrix, and further generate multiple initial local paths between the source switch and the destination switch according to the initial probability of the adjacent switch. The total available bandwidth of the multiple initial local paths and the number of links included in the multiple initial local paths are determined according to the load matrix, so as to determine the evaluation values ​​of the multiple initial local paths according to the total available bandwidth and the number of links, obtain the initial local path corresponding to the maximum evaluation value among the multiple initial local paths, and obtain the initial global path. According to the probability of the adjacent switch and the relationship between the adjacent switch and the multiple initial local paths and the initial global path, the target probability of the adjacent switch is determined; according to the target probability of the adjacent switch, the multiple initial local paths are updated to obtain multiple updated local paths, thereby determining the updated global path among the multiple updated local paths; the multiple updated local paths are used as multiple initial local paths, the updated global path is used as the initial global path, and the steps of determining the target probability, updating the multiple initial local paths, and determining the updated global path are repeatedly performed until the number of iterations reaches a preset number, thereby determining the multiple updated local paths as multiple target local paths, and the updated global path as the target global path, thereby determining the target global path as the target path.

[0041] It should be noted that the optimal path algorithm is a heuristic algorithm based on a group. For the N particles in the group, the effect of a single particle is limited, but the particles influence each other, which makes the overall search diversified and greatly improves the performance. Each particle is an abstract concept and represents a path, that is, a solution in the path search, searching for the data transmission path from the source address to the destination address. Each path is composed of several nodes, and the node is the switch in the network, which is represented by the set X(j-1,2,3,4...). During the search process, the particles continue to move closer to their own optimal solution and the global optimal solution, and adjust the next node in the path in real time according to their own historical optimal solution and the global optimal solution of the entire group. In the end, the optimal solution among all particles is the optimal path obtained by the algorithm of this application. Among them, assuming that there are N particles in the group, the th particle is represented by [X1,X2,...,X j ,...,X n ] indicates that X represents a switch on the path, and all adjacent switches are candidates for the next node X. These candidate points have different probabilities. The particle will select one of them as X according to a certain probability rule. The higher the probability corresponding to the switch, the easier it is to be selected as the next node. The network balancing algorithm is mainly divided into two stages: the initialization stage and the election stage.

[0042] In the initialization phase, assume that the current switch that the path corresponding to the th particle passes through is X, calculate the probability of each candidate point according to the link load between X and all adjacent switches, then generate a random number X∈(0,1), determine the next switch of X, and select the next hop for each switch in turn, so as to initialize a path for each of the N particles. At this time, each path is the local optimal path of each particle. It can be calculated according to the evaluation function Calculate the evaluation value F of each particle, record and save it, and then select the one with the largest evaluation value from the initialized N paths as the global optimal path. Among them, S represents the total available bandwidth of the path, and L represents the number of links contained in the path. Problems that particles are prone to in the search path: particles excessively pursue available bandwidth, resulting in a relatively long path; too many data packet forwarding times affect data transmission efficiency and increase data packet transmission delay. This application algorithm balances the relationship between available bandwidth and path length by setting an adjustment coefficient. L max Represents the maximum length of all reachable paths, L minRepresents the minimum length of all reachable paths, and D represents the difference between the maximum length and the minimum length. (0≤≤1) is the key adjustment factor in the adjustment coefficient, which adjusts the influence of the path length on the adjustment coefficient, thereby affecting the final evaluation value, and then artificially controlling the bias of the algorithm, that is, whether to pursue available bandwidth or the shortest path. The smaller m is, the weaker the influence of the path length on the evaluation value, until it affects the minimum value. At this time, the optimal path algorithm no longer considers the influence of the path length on the selected path: the larger it is, the greater the impact on the evaluation value, so the path length bias is however not the shorter the better, and the actual network conditions must also be considered. The size of is crucial to the performance of the algorithm. In the iterative stage, the particle is based on its initialization path, and calculates the new probability based on the original probability combined with whether the adjacent switch appears in the local optimal path and the global optimal path of the current particle. According to the probability calculation formula:

[0043] Select each switch in the path corresponding to N particles in turn according to the same steps as the initialization node. According to the new evaluation value of each particle, select the global optimal path, and complete one generation. Then update the local optimal path of each particle and the global optimal path of the entire group in each iteration. Among them, a is the weight of the node appearing in the global optimal path, is the weight of the node appearing in the local historical optimal path of the current particle, and are the number of times a node in the adjacent nodes appears in the global path and the local path, n and represent the total number of times all adjacent nodes appear in the global path and the local path, P is the probability of each particle in the last generation, and P is the new probability of this iteration. Particles may also encounter another problem in the search path: they are prone to fall into the local optimum during the search process and lack better global search capabilities. In order to solve this problem, two coefficients a and are introduced. a guides particles to the global optimal path to avoid falling into the local optimum, while guiding particles to explore along the optimal direction of the particle itself, expanding the diversity of paths, and avoiding particles from ending the search early. Under the mediation of these two coefficients, particles continue to move closer to the final optimal path.

[0044] Through the above steps, the load monitoring module obtains the network information of multiple switches from the network topology structure corresponding to the software-defined network, thereby determining the load matrix and address information based on the network information of multiple switches, and the path optimization module further determines the target path between the source switch and the destination switch based on the load matrix and address information. It should be noted that the load monitoring module obtains the network information of multiple switches, thereby determining the target path, achieving the purpose of improving the portability of the application and the interoperability between different control platforms, achieving the technical effect of easier operation between different control platforms, and thus solving the technical problem of low target path matching in the network architecture.

[0045] Furthermore, the load monitoring module determines the load matrix and address information based on the network information of multiple switches, including: generating a load matrix based on the network information of multiple switches; and determining the source address and destination address based on the utilization of each link in the load matrix.

[0046] The utilization mentioned above may be the frequency used by each link in the load matrix.

[0047] In an optional embodiment, after obtaining network information of multiple switches, the load monitoring module generates a corresponding load matrix based on the network information, and finds the data flow with the highest flow rate based on the utilization rate of each link in the load matrix, thereby determining the source address and destination address based on the flow table entry corresponding to the data flow.

[0048] Further, generating a load matrix based on network information of the multiple switches includes: determining throughput information of different ports of the multiple switches from the network information of the multiple switches; and generating the load matrix based on the network topology and the throughput information.

[0049] The above-mentioned port may be a channel port connecting multiple switches. The throughput information may be information on the size of the throughput of data transmitted between the multiple switches.

[0050] In an optional embodiment, the throughput information of each port of all switches is determined from the network information of multiple switches, the global network topology is grasped using a Floodlight controller, and the traffic load of each link between switches in the entire network is calculated and stored in a load matrix.

[0051] Optionally, based on the utilization of each link in the load matrix, the source address and the destination address are determined, including: based on the utilization of each link, determining the target link from the load matrix, wherein the utilization of the target link is greater than a preset threshold; determining the target data flow from at least one data flow on the target link, wherein the flow rate of the target data flow is greater than other data flows in at least one data flow; and extracting the source address and the destination address from the flow table entry corresponding to the target data flow.

[0052] The target link may be a link in the load matrix that needs to transmit data. The preset threshold may be a threshold that is set in advance according to the requirements for determining the target link. A data stream may refer to a set of ordered data sequences of bytes with a starting point and an end point. The target data stream may be data that needs to be transmitted among many data streams. The flow rate may be the flow rate of the input and output of the target data stream. The flow table entry may be an entry of an active address in the current data stream.

[0053] In an optional embodiment, based on the utilization of each link, a link whose link utilization is greater than a preset threshold is determined as a target link, and a target data flow is determined from at least one data flow on the target link, that is, a data flow with the largest flow rate is found among all data flows on the link. The corresponding source address and destination address are extracted from the flow table entry corresponding to the target data flow.

[0054] It should be noted that, by determining the target data flow according to the target link, the path optimization module can formulate an optimal path strategy to achieve the transfer of the data flow from this link to other idle links.

[0055] Optionally, the method also includes: generating an application service topology based on the association relationship in the log service application database, wherein the application service topology stores the relationship between different indicators between different servers; generating a data set of the application service topology based on the logs of different services, wherein the data set stores the monitoring data and operating conditions between different servers and different indicators; performing classification and prediction on the data set using a classification prediction model to determine the categories of different data in the data set; and obtaining a network topology structure based on the application service topology, the data set and the categories of different data.

[0056] The above-mentioned log service application database can be a database of a log service application that records data, including but not limited to: database, middleware, and basic monitoring indicators of servers. The association relationship can be a direct or indirect relationship between the components in the log service application database. The application service topology can be an application or service and a call relationship between multiple applications and different servers. The data set can be a data set based on the application service topology relationship mined from the log of each service, recording the detection data and operating health status between different time dimensions, servers and databases, middleware, server CPUs, memory, disks, and processes, which can be divided into but not limited to: monitoring data of databases, middleware, server CPUs, memory, disks, and processes. The monitoring data can be data for monitoring different servers and various indicators. The operating status can be the operating status of each server in the log service application database. The classification prediction model can be a classification function model that classifies data to find descriptions and distinguishes, including but not limited to: naive Bayes classification.

[0057] In an optional embodiment, the application service topology is mined according to the association relationship of the database, middleware, and server basic monitoring indicators in the log service application database. And a data set based on the application service topology relationship is mined from different service logs, and the data set is classified and predicted using a classification prediction model to determine the categories of different data in the data set. For example, the data set is divided into six categories, which can be but not limited to: database, middleware, server CPU, memory, disk, and process monitoring data. And the probability of each category of the data set is obtained, and the classification with the maximum probability is taken as the classification of the current log data. The data analysis results of the application service topology, data set, and different data categories in the log service application are updated to the topology map to obtain the latest network topology map.

[0058] Furthermore, the classification prediction model is used to perform classification prediction on the data set to determine the categories of different data in the data set, including: using the naive Bayes classification method to perform classification prediction on the data set to obtain the categories of different data.

[0059] The above-mentioned naive Bayes classification method can be a classification method based on Bayes' theorem and the feature conditional independence hypothesis.

[0060] In an optional embodiment, the naive Bayes classification method is used to perform classification prediction on each category in the data set, and the classification with the maximum probability is taken as the classification of the current log data, thereby obtaining categories of different data.

[0061] It should be noted that Bayes' theorem is the basis of the naive Bayesian classification method. If there are M classification categories in a given data set, the naive Bayesian classification method can predict whether a given observation belongs to a specific category with the highest posterior probability. In other words, when the naive Bayesian classification method predicts that X belongs to category C, it means that if and only if: P(C i |X)>P(C j |X)1≤j≤m,j≠iAt this time, if we maximize P(C i |X), its P(C i |X) The largest class C i It is called the maximum a posteriori hypothesis, and according to Bayes’ theorem: It can be seen that since P(X) is equal for all categories, only P(X|C i )P(C i ) can be maximized. In order to predict the category of an unknown sample X, for each category C i Estimate the corresponding P(X|C i )P(C i ).

[0062] Optionally, a target path between a source switch and a destination switch is determined based on a load matrix and address information by a path optimization module, including: generating multiple initial local paths between the source switch and the destination switch based on the load matrix and address information; determining an initial global path among the multiple initial local paths; performing multiple iterative updates on the multiple initial local paths and the initial global path to obtain multiple target local paths and a target global path; and determining the target global path as the target path.

[0063] The above-mentioned initial local path can be a roughly feasible path planned in an initially unknown or partially consistent environment. The initial global route can be a relatively optimal path from the starting point to the end point initially planned based on the existing information. The target local path can be the optimal local path iteratively updated from multiple initial local paths. The target global path can be the optimal global path iteratively updated from multiple initial global routes. The target path can be the optimal path of the target global path to one.

[0064] In an optional embodiment, multiple initial local paths between the source switch and the destination switch are determined based on the load matrix and address information, and an initial global path among the multiple initial local paths is determined. The multiple initial local paths and the initial global path are iteratively updated multiple times to obtain multiple target local paths and a target global path, thereby determining the target global path as the target path.

[0065] It should be noted that the target path between the source switch and the destination switch is determined according to the load matrix and the address information. In the embodiment of the present invention, the flowchart for obtaining the target path is as follows: Figure 2As shown, step 1: determine the source switch and the destination switch according to the address information, and initialize N particles, and initialize the counter = 0. Step 2: query the entire topology structure and initialize the adjacent node table of each switch. Step 3: receive the available bandwidth of each link obtained by the negative monitoring module and establish an available bandwidth table. Step 4: for each particle, set the source switch as the first node in the path, and the last node of the partial path searched during the search process as the current node. Step 5: at 0, that is, the initialization stage, calculate the probability of the adjacent points of the current node according to the available bandwidth table and the adjacent node table, otherwise calculate the corresponding probability according to formula (5.2) to determine the probability of the current node to each of its adjacent nodes. Step 6: generate a random number X∈(0), combine the probability of each adjacent node of the current node to determine the next node, and at the same time, in order to prevent the particle from falling into an infinite loop when searching for a path, repeatedly select the nodes that have been passed, set a forbidden table, and put the passed nodes into the forbidden table. When selecting nodes, the nodes in the forbidden table should be shielded. If a node in the forbidden table is selected, repeat step 5 until a node that is not in the forbidden table is selected. There may be a situation where the particle has no way to go when the surrounding nodes are all in the forbidden list when searching for a path. In this case, the path is invalid and you can directly jump to step 7 and step 8: according to the following formula Calculate the evaluation value. When the path is invalid, the evaluation value is 0. Jump back to step 4 and search for the paths corresponding to the M particles in turn. When it is 0, the path corresponding to each particle is the local optimal path. Select the best path as the global optimal path. Otherwise, compare the evaluation value of each particle's corresponding path with its local optimal path, and compare the evaluation value of all paths in the nth iteration with the global optimal path, and update the global optimal path and the local optimal path. Step 7: Put the selected node into the path and jump back to step 5 until the selected node is the target node. Step 9: If it is equal to the preset number of generations, jump to step 10, otherwise add 1 and jump back to step 4. Update the local optimal path and the global optimal path of each particle in each generation. Step 10: When the iteration ends, the entire process ends, and the current global optimal path is the optimal path obtained by the algorithm in this section.

[0066] Furthermore, based on the load matrix and the address information, multiple initial local paths are generated between the source switch and the destination switch, including: determining the source switch and the destination switch based on the address information; determining the adjacent switches adjacent to each switch based on the network topology; determining the initial probability of the adjacent switch based on the traffic load between each switch and the adjacent switch in the load matrix; and generating multiple initial local paths based on the initial probability of the adjacent switch.

[0067] The adjacent switches mentioned above may be adjacent switches. The initial probability may be the probability of data iteration between the adjacent switches.

[0068] In an optional embodiment, the source switch and the destination switch are determined according to the address information; and the entire network topology is consulted to initialize the adjacent node table of each switch, determine the critical switch adjacent to each switch, and calculate the probability of the adjacent point of the current node according to the available bandwidth table and the adjacent node table during the initialization phase according to the traffic load between each switch and the adjacent switch in the load matrix, or according to the following calculation formula: The initial probabilities of adjacent switches are determined, and multiple initial local paths are generated according to the initial probabilities.

[0069] It should be noted that, for each particle, the source switch is set as the first node in the path, and the last node of the partial path searched during the search process is set as the current node.

[0070] Optionally, determining an initial global path among multiple initial local paths includes: determining a total available bandwidth of the multiple initial local paths and a number of links included in the multiple initial local paths based on a load matrix; determining evaluation values ​​of the multiple initial local paths based on the total available bandwidth and the number of links; and obtaining an initial local path corresponding to a maximum evaluation value among the multiple initial local paths to obtain an initial global path.

[0071] The total available bandwidth may be the bandwidth occupied by the overall available signal. The number of links may be the total number of terminal users in the initial local path. The evaluation value may be a parameter for evaluating the path, wherein the evaluation value is 0 when the path is invalid.

[0072] In an optional embodiment, according to the load matrix, the available bandwidth of each link obtained by the negative monitoring module is received, and an available bandwidth table is established to obtain the total available bandwidth and the number of links included in the multiple initial local paths. According to the total available bandwidth and the number of links, the following formula is used: The evaluation value is calculated, the evaluation values ​​of the multiple initial local paths are determined, the initial local path corresponding to the maximum evaluation value among the multiple initial local paths is obtained, and the initial global path is obtained.

[0073] Optionally, the multiple initial local paths and the initial global path are iteratively updated multiple times to obtain multiple target local paths and the target global path, including: determining the target probability of the adjacent switch based on the probability of the adjacent switch and the relationship between the adjacent switch and the multiple initial local paths and the initial global path; updating the multiple initial local paths based on the target probability of the adjacent switch to obtain multiple updated local paths; determining an updated global path among the multiple updated local paths; using the multiple updated local paths as the multiple initial local paths and the updated global path as the initial global path, and repeatedly executing the steps of determining the target probability, updating the multiple initial local paths, and determining the updated global path until the number of iterations reaches a preset number; determining the multiple updated local paths as the multiple target local paths, and determining the updated global path as the target global path.

[0074] The above-mentioned target probability may be a probability of determining an adjacent switch. The updated local path may be a new local path obtained by iteratively updating multiple initial local paths. The updated global path may be a global path determined from multiple updated local paths. The preset number may be a maximum number of iterations set in advance according to demand.

[0075] In an optional embodiment, according to the probability of the adjacent switch and the relationship between the adjacent switch and the multiple initial local paths and the initial global path, the target probability of the adjacent switch is determined, the multiple initial local paths are updated according to the target probability to obtain multiple updated local paths, and the updated global path among the multiple updated local paths is determined, and the multiple updated local paths are used as the initial local path. When the path is invalid, the evaluation value is 0, and the paths corresponding to M particles are searched in sequence. When the evaluation value is 0, the path corresponding to each particle is the local optimal path, and the best path is selected as the global optimal path. Otherwise, the evaluation value of each particle corresponding path is compared with its local optimal path, and the evaluation value of all paths in the iteration is compared with the global optimal path, and the global optimal path and the local optimal path are updated. Thus, the updated global path is used as the initial global path, and the steps of target probability, updating multiple initial local paths, and determining the updated global path are repeatedly executed until the number of iterations reaches the preset number, the iteration ends, the current updated local path is the multiple target local paths, and the updated global path is determined to be the target global path.

[0076] It should be noted that the probability of adjacent switches is determined to generate a random number X∈(0), and the next node is determined by combining the probability of each adjacent node of the current node. At the same time, in order to prevent the particle from falling into an infinite loop when searching for a path, the nodes that have been passed are repeatedly selected, and a forbidden table is set. The passed nodes are put into the forbidden table, and the nodes in the forbidden table should be shielded when selecting nodes. If a node in the forbidden table is selected, the target probability is repeatedly executed until a node that is not in the forbidden table is selected. There may be a situation where the surrounding nodes are all in the forbidden table when the particle is searching for a path, and the particle has no way to go. At this time, the path is invalid.

[0077] In addition, the local optimal path and the global optimal path of each particle are updated in each generation process.

[0078] Combine the following Figure 3 A preferred embodiment of the present invention is described in detail. Figure 3 As shown, the network information of all switches is obtained from the network topology structure corresponding to the software-defined network, and the throughput information of different ports of multiple switches is determined from the network information of multiple switches, so as to generate a load matrix according to the network topology structure and throughput information. Then, according to the utilization rate of each link, the target link is determined from the load matrix, and then the source address and destination address are extracted. Then, according to the association relationship in the log service application database, the application service topology and data set are generated, and the data set is classified using the classification prediction model to obtain the network topology structure. Finally, the path optimization module calls the algorithm according to the load matrix of the entire link and the source address and destination address to obtain the optimal path embodiment 2

[0079] According to another aspect of an embodiment of the present invention, a vehicle control device is further provided, which can execute the vehicle control method in the above embodiment. The specific implementation method and preferred application scenario are the same as those in the above embodiment and will not be described in detail here.

[0080] Figure 3 is a schematic diagram of a software-defined link monitoring device according to an embodiment of the present invention. Figure 4 As shown, the device includes the following parts: a load monitoring module 40 and a path optimization module 42.

[0081] The load monitoring module 40 is used to obtain network information of multiple switches from the network topology structure corresponding to the software-defined network, and determine the load matrix and address information based on the network information of the multiple switches, wherein the load matrix is ​​used to characterize the traffic load information of different links between the multiple switches, and the address information includes: the source address of the source switch in the multiple switches, and the destination address of the destination switch;

[0082] The path optimization module 42 is used to determine the target path between the source switch and the destination switch based on the load matrix and the address information.

[0083] Optionally, the load monitoring module includes: a first generating unit, used to generate a load matrix based on network information of multiple switches; and a first determining unit, used to determine the source address and the destination address based on the utilization rate of each link in the load matrix.

[0084] Optionally, the first generating unit includes: a first determining subunit, configured to determine throughput information of different ports of the plurality of switches from network information of the plurality of switches; a first generating subunit, configured to generate a load matrix based on the network topology and the throughput information;

[0085] Optionally, the first determination unit includes: a second determination subunit, used to determine the target link from the load matrix based on the utilization of each link, wherein the utilization of the target link is greater than a preset threshold; a third determination subunit, used to determine the target data flow from at least one data flow on the target link, wherein the flow rate of the target data flow is greater than other data flows in at least one data flow; and an extraction subunit, used to extract the source address and destination address based on the flow table entry corresponding to the target data flow.

[0086] Optionally, the device also includes: a first generation module, used to generate an application service topology based on the association relationship in the log service application database, wherein the application service topology stores the relationship between different indicators between different servers; a second generation module, used to generate a data set of the application service topology based on the logs of different services, wherein the data set stores the monitoring data and operating conditions between different servers and different indicators; a first determination module, used to use a classification prediction model to perform classification prediction on the data set and determine the categories of different data in the data set; a first acquisition module, used to obtain a network topology structure based on the application service topology, the data set and the categories of different data.

[0087] Optionally, the first determination module includes: a second generation unit, used to generate multiple initial local paths between the source switch and the destination switch based on the load matrix and address information; a second determination unit, used to determine an initial global path among the multiple initial local paths; an update unit, used to iteratively update the multiple initial local paths and the initial global path multiple times to obtain multiple target local paths and a target global path; and a third determination unit, used to determine the target global path as the target path.

[0088] Optionally, the second generation unit includes: a fourth determination subunit, used to determine the source switch and the destination switch based on the address information; a fifth determination subunit, used to determine the adjacent switches adjacent to each switch based on the network topology; a sixth determination subunit, used to determine the initial probability of the adjacent switch based on the traffic load between each switch and the adjacent switch in the load matrix; and the second generation subunit, used to generate multiple initial local paths based on the initial probability of the adjacent switch.

[0089] Optionally, the second determination unit includes: a seventh determination subunit, used to determine the total available bandwidth of multiple initial local paths and the number of links included in the multiple initial local paths based on the load matrix; an eighth determination subunit, used to determine the evaluation values ​​of the multiple initial local paths based on the total available bandwidth and the number of links; and a first acquisition subunit, used to acquire the initial local path corresponding to the maximum evaluation value among the multiple initial local paths to obtain the initial global path.

[0090] Optionally, the updating unit includes: a ninth determining subunit, used to determine the target probability of the adjacent switch based on the probability of the adjacent switch and the relationship between the adjacent switch and the multiple initial local paths and the initial global path; an updating subunit, used to update the multiple initial local paths based on the target probability of the adjacent switch to obtain multiple updated local paths; a tenth determining subunit, used to determine the updated global path among the multiple updated local paths; an iteration subunit, used to use the multiple updated local paths as the multiple initial local paths, use the updated global path as the initial global path, and repeatedly perform the steps of determining the target probability, updating the multiple initial local paths, and determining the updated global path until the number of iterations reaches a preset number; an eleventh determining subunit, used to determine the multiple updated local paths as the multiple target local paths, and determine the updated global path as the target global path.

[0091] Example 3

[0092] According to another aspect of an embodiment of the present application, a non-volatile storage medium is further provided, characterized in that the non-volatile storage medium includes a stored program, wherein when the program is running, the device where the non-volatile storage medium is located is controlled to execute any one of the methods of claims 1 to 10.

[0093] Example 4

[0094] According to another aspect of an embodiment of the present application, a processor is further provided, characterized in that the processor is used to run a program stored in a memory, wherein the program executes any one of the methods of claims 1 to 10 when it is run.

[0095] The serial numbers of the above-mentioned embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.

[0096] In the above embodiments of the present application, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, please refer to the relevant description of other embodiments.

[0097] In the several embodiments provided in this application, it should be understood that the disclosed technical content can be implemented in other ways. Among them, the device embodiments described above are only schematic. For example, the division of the units can be a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of units or modules, which can be electrical or other forms.

[0098] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple units. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.

[0099] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0100] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the relevant technology or all or part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server or a network device, etc.) to perform all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: U disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), mobile hard disk, disk or optical disk, etc. Various media that can store program codes.

[0101] The above is only a preferred implementation of the present application. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of the present application. These improvements and modifications should also be regarded as the scope of protection of the present application.

Claims

1. A link monitoring method for a software defined network, characterized in that: include: Obtain network information of multiple switches from the network topology structure corresponding to the software-defined network through the load monitoring module; Determining a load matrix and address information based on network information of the multiple switches through the load monitoring module, wherein the load matrix is ​​used to characterize traffic load information of different links between the multiple switches, and the address information includes: a source address of a source switch among the multiple switches, and a destination address of a destination switch; Determine the target path between the source switch and the destination switch based on the load matrix and the address information through a path optimization module; determine the target path between the source switch and the destination switch based on the load matrix and the address information through a path optimization module, including: generating multiple initial local paths between the source switch and the destination switch based on the load matrix and the address information; determining an initial global path among the multiple initial local paths; iteratively updating the multiple initial local paths and the initial global path multiple times to obtain multiple target local paths and a target global path; and determining the target global path as the target path, wherein the target global path is the optimal global path iteratively updated from the multiple initial global paths.

2. The method according to claim 1, characterized in that Determining the load matrix and address information based on the network information of the plurality of switches by the load monitoring module includes: generating the load matrix based on the network information of the plurality of switches; The source address and the destination address are determined based on the utilization of each link in the load matrix.

3. The method according to claim 2, characterized in that Generating the load matrix based on the network information of the plurality of switches includes: Determining throughput information of different ports of the plurality of switches from network information of the plurality of switches; The load matrix is ​​generated based on the network topology and the throughput information.

4. The method according to claim 2, characterized in that: Determining the source address and the destination address based on the utilization of each link in the load matrix includes: Determining a target link from the load matrix based on the utilization of each link, wherein the utilization of the target link is greater than a preset threshold; Determine a target data flow from at least one data flow on the target link, wherein a flow rate of the target data flow is greater than other data flows in the at least one data flow; The source address and the destination address are extracted based on the flow table entry corresponding to the target data flow.

5. The method according to claim 1, characterized in that The method further comprises: Generate an application service topology based on the association relationship in the log service application database, wherein the application service topology stores the relationship between different indicators between different servers; Based on the logs of different services, a data set of the application service topology is generated, wherein the data set stores the monitoring data and operating conditions between the different servers and the different indicators; Performing classification prediction on the data set using a classification prediction model to determine the categories of different data in the data set; The network topology structure is obtained based on the application service topology, the data set and the categories of the different data.

6. The method according to claim 5, characterized in that Using a classification prediction model to perform classification prediction on the data set to determine the categories of different data in the data set includes: The data set is classified and predicted using the naive Bayes classification method to obtain the categories of the different data.

7. The method according to claim 1, characterized in that Based on the load matrix and the address information, a plurality of initial local paths between the source switch and the destination switch are generated, including: Based on the address information, determining the source switch and the destination switch; Based on the network topology, determine adjacent switches adjacent to each switch; Determining an initial probability of the adjacent switch based on the traffic load between each switch and the adjacent switch in the load matrix; The plurality of initial local paths are generated based on the initial probabilities of the adjacent switches.

8. The method according to claim 1, characterized in that Determining an initial global path among the multiple initial local paths includes: Based on the load matrix, determining the total available bandwidth of the multiple initial partial paths and the number of links included in the multiple initial partial paths; Determining evaluation values ​​of the plurality of initial local paths based on the total available bandwidth and the number of links; The initial local path corresponding to the maximum evaluation value among the multiple initial local paths is obtained to obtain the initial global path.

9. The method according to claim 1, characterized in that: The multiple initial local paths and the initial global path are iteratively updated multiple times to obtain multiple target local paths and a target global path, including: Determining a target probability of the adjacent switch based on the probability of the adjacent switch and the relationship between the adjacent switch and the plurality of initial local paths and the initial global path; Based on the target probabilities of the adjacent switches, the multiple initial local paths are updated to obtain multiple updated local paths; Determining an updated global path among the multiple updated local paths; Using the multiple updated local paths as the multiple initial local paths, using the updated global path as the initial global path, and repeatedly performing the steps of determining the target probability, updating the multiple initial local paths, and determining the updated global path until the number of iterations reaches a preset number; The multiple updated local paths are determined to be the multiple target local paths, and the updated global path is determined to be the target global path.

10. A link monitoring device for a software defined network, characterized in that: include: A load monitoring module, configured to obtain network information of multiple switches from a network topology structure corresponding to the software-defined network, and determine a load matrix and address information based on the network information of the multiple switches, wherein the load matrix is ​​used to characterize traffic load information of different links between the multiple switches, and the address information includes: a source address of a source switch among the multiple switches, and a destination address of a destination switch; A path optimization module is used to determine the target path between the source switch and the destination switch based on the load matrix and the address information through the path optimization module; determine the target path between the source switch and the destination switch based on the load matrix and the address information through the path optimization module, including: generating multiple initial local paths between the source switch and the destination switch based on the load matrix and the address information; determining an initial global path among the multiple initial local paths; iteratively updating the multiple initial local paths and the initial global path multiple times to obtain multiple target local paths and a target global path; determining the target global path as the target path, wherein the target global path is the optimal global path iteratively updated from the multiple initial global paths.

11. A non-volatile storage medium, characterized in that: The non-volatile storage medium includes a stored program, wherein when the program is executed, the device where the non-volatile storage medium is located is controlled to execute the method according to any one of claims 1 to 9.

12. A processor, characterized in that: The processor is used to run a program stored in a memory, wherein the program executes the method according to any one of claims 1 to 9 when running.

Citation Information

Patent Citations

  • Load balancing method for global ip scheduling

    CN105007234A

  • Data stream migration method in data center network updating

    CN105897882A