Algorithm model and path determination method, electronic device, SDN controller and medium
Through deep learning and heuristic algorithms, optimize the routing algorithm model in the SDN network, generate preselected link information, and solve the problem that the SDN network deployment service path algorithm in the existing technology cannot meet resource utilization and dynamic requirements, achieving more efficient Network resource utilization and real-time routing requirements.
Patent Information
- Application Number
- CN202011400354.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-12-02
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2040-12-02
AI Technical Summary
The existing SDN network deployment service path algorithm cannot effectively meet the optimization of network resource utilization and business dynamic needs, resulting in increased management and control challenges.
By obtaining network resource information and business demand information in the training sample, using deep learning methods to determine the routing algorithm model, generate preselected link information, and combining heuristic algorithms and Digestella algorithms to optimize the business path to meet the load of the entire network Targets with the lowest bandwidth usage, the lowest latency and the lowest blocking rate.
It improves the utilization rate of network resources, meets the real-time routing requirements of dynamic services, optimizes the network deployment path, and reduces the operator's capital expenditure.
Smart Images

Figure CN114650249B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of software defined networks (SDN), and in particular to a method for determining a routing algorithm model, a method for determining a service target path, an SDN controller, an electronic device and a computer-readable storage medium. Background Art
[0002] In recent years, with the continuous enrichment of network access methods and the continuous decline in network usage costs, network transmission traffic has increased year by year. Faced with the explosive data growth trend, network operators generally increase network capacity by upgrading switches / routers and expanding network scale. However, this method increases the operator's capital expenditure while increasing network capacity. In addition, the large-scale network caused by this method also brings greater challenges to network management and control.
[0003] In view of this, SDN technology came into being. The SDN network includes a control plane and a data plane, where the control plane includes the SDN controller and the data plane includes network nodes such as hosts and switches.
[0004] The SDN controller can obtain global network resource information (for example, network topology, link bandwidth, traffic, etc.), providing an effective means to solve the routing optimization problem of traffic engineering in the entire network.
[0005] For example, the SDN controller can calculate the service path of the service to be deployed using a specific algorithm based on the service requirements of the service to be deployed and global information resources, and send the calculated service path to the data plane for the corresponding host to deploy the service.
[0006] Improving network resource utilization and meeting dynamic business needs are optimization conditions that need to be considered when deploying services, and deploying services based on SND networks is no exception. However, the current algorithm for deploying service paths cannot meet the above optimization conditions well.
[0007] Therefore, how to optimize the deployment of services based on the SDN network has become a technical problem that needs to be solved urgently in this field. Summary of the invention
[0008] The present disclosure provides a method for determining a routing algorithm model, a method for determining a service target path, an SDN controller, an electronic device, and a computer-readable storage medium.
[0009] As one aspect of the present disclosure, a method for determining a routing algorithm model is provided, comprising:
[0010] Acquire a training sample, wherein an input vector in the training sample includes network resource information before deploying multiple services and service demand information of the multiple services, and an output vector of the training sample includes service path information of the service paths passed after the multiple services are deployed, wherein the service paths passed after the multiple services are deployed meet a predetermined network optimization goal;
[0011] The training samples are used for deep learning to obtain a routing algorithm model, wherein the routing algorithm model can take the business demand information of the business to be deployed and the network resource information of the current network as input vectors, and output information of multiple pre-selected links, and the pre-selected links are used to deploy the business to be deployed.
[0012] Optionally, before acquiring the training sample, the determination method further includes:
[0013] The service path information of the service paths for deploying the multiple services is respectively generated according to the service requirements of the multiple services and the predetermined network optimization target.
[0014] Optionally, in the step of generating business path information of the business paths according to the business requirements of the multiple services to be deployed and the predetermined network optimization goals, a heuristic algorithm is used to generate business path information of the business paths for deploying the multiple services according to the business requirements of the multiple services to be deployed and the predetermined network optimization goals.
[0015] Optionally, the heuristic algorithm includes a genetic algorithm, and the step of respectively generating service path information of service paths for deploying the multiple services according to the service requirements of the multiple services to be deployed and the predetermined network optimization target includes:
[0016] The initial deployment order of the multiple services is used as the chromosome of the genetic algorithm, and the initial deployment order is changed by continuous mutation and crossover of the chromosome until the genetic algorithm converges to obtain a target deployment order;
[0017] Performing deployment calculation on each of the multiple services using the Dijkstra algorithm to obtain initial path information of each of the multiple services;
[0018] The multiple services are deployed according to the target deployment order and the initial path information of each service, and the service path information of the service paths through which the multiple services are deployed is obtained.
[0019] Optionally, the heuristic algorithm includes a simulated annealing algorithm, and the step of respectively generating the service path information of the service paths for deploying the multiple services according to the service requirements of the multiple services to be deployed and the predetermined network optimization target includes:
[0020] Initially deploying the multiple services according to the initial deployment order using the Dijkstra algorithm, wherein the initial weight of the Dijkstra algorithm is related to the predetermined network optimization target;
[0021] Calculate the evaluation function according to the predetermined network optimization goal;
[0022] Randomly removing a predetermined proportion of the services that have been initially deployed from the network;
[0023] Use Dijkstra's algorithm to redeploy the dismantled services;
[0024] The evaluation function is calculated based on the quadratic weights of the Dijkstra algorithm used during redeployment;
[0025] Determine whether the evaluation function obtained by this calculation is better than the evaluation function used last time;
[0026] If the judgment result is yes, the removed services are deployed according to the service path calculated by the Dijkstra algorithm corresponding to the evaluation function calculated this time;
[0027] If not, then the dismantled services are redeployed using the Dijkstra algorithm with new weights until the evaluation function converges;
[0028] The service paths for finally deploying the multiple services are used as the service path information for deploying the multiple services.
[0029] Optionally, the step of performing deep learning using the training samples to obtain a routing algorithm model includes:
[0030] Inputting the training samples into a neural network;
[0031] The neural network is trained using the training samples so that the trained neural network can output an initial output vector according to the input vector, and for each service corresponding to the input vector, the elements in the initial output vector are the retention rates of each link in the network topology;
[0032] The trained neural network is processed to obtain the routing algorithm model, wherein the routing algorithm model can represent the links in the initial output vector whose retention rate is greater than or equal to a predetermined threshold with 1, represent the links in the initial output vector whose retention rate is less than the predetermined threshold with 0, and output a final vector representing information of multiple links for deploying the services to be deployed, wherein the links represented by 1 are the pre-selected links.
[0033] Optionally, the optimization objective includes at least one of the following objectives:
[0034] The entire network has balanced load, lowest bandwidth usage, lowest latency, and lowest blocking rate.
[0035] As a second aspect of the present disclosure, a method for determining a service target path is provided, comprising:
[0036] Inputting the service requirements of at least one service to be deployed and the current network resources as input vectors into a routing algorithm model, and obtaining a plurality of pre-selected links for each service to be deployed, wherein the routing algorithm model is the routing algorithm model obtained by the determination method provided in the first aspect of the present disclosure;
[0037] For each service to be deployed, a path that meets a predetermined condition is selected from a plurality of pre-selected links calculated for the service to be deployed as a service target path for the service to be deployed.
[0038] Optionally, the predetermined condition is that the route is the shortest.
[0039] As a third aspect of the present disclosure, an electronic device is provided, the electronic device comprising:
[0040] one or more first processing modules;
[0041] A first storage module stores a first executable program thereon. When the first executable program is executed by the one or more first processing modules, the one or more first processing modules implement the determination method according to the first aspect of the present disclosure.
[0042] As a fourth aspect of the present disclosure, an SDN controller is provided, the SDN controller comprising:
[0043] one or more second processing modules;
[0044] A second storage module stores a second executable program thereon. When the second executable program is executed by the one or more second processing modules, the one or more second processing modules implement the business target path determination method described in the second aspect of the fundamental disclosure.
[0045] As a fourth aspect of the present disclosure, a service deployment method is provided, including:
[0046] Sending the service requirements of the service to be deployed and the current network resources to the SDN controller;
[0047] Receiving the service target path sent by the SDN controller;
[0048] The service is deployed according to the received service target path.
[0049] As a fifth aspect of the present disclosure, an electronic device is provided, the electronic device comprising:
[0050] one or more third processing modules;
[0051] A third storage module stores a third executable program thereon. When the third executable program is executed by the one or more third processing modules, the one or more third processing modules implement the service deployment method according to the fourth aspect of the present disclosure.
[0052] As a sixth aspect of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored, and when the program is executed by a processor, at least one of the following methods is implemented:
[0053] The determination method according to the first aspect of the present disclosure;
[0054] The method for determining a business target path according to the second aspect of the present disclosure;
[0055] According to the service deployment method described in the fourth aspect of the present disclosure.
[0056] The routing algorithm model determined by the determination method provided in the first aspect of the present disclosure needs to be used in conjunction with the service target path determination method provided in the second aspect of the present disclosure. That is, after obtaining information of multiple pre-selected links for deploying the service to be deployed through the routing algorithm model (equivalent to pruning the network topology), it is necessary to calculate the new network composed of the multiple pre-selected links to obtain a service path that meets the predetermined conditions.
[0057] The services in traffic engineering have dynamic properties. The method for determining the routing algorithm model provided by the present disclosure can be oriented to traffic engineering. The determination method is equivalent to determining the routing algorithm model through deep learning, and the network resources and network optimization goals before the deployment of the service are taken into account during deep learning. Therefore, when the pre-selected links calculated by the routing algorithm model are used for service deployment, the utilization rate of network resources can be improved. In the present disclosure, the service path is not determined directly using the routing model algorithm, but the information of multiple pre-selected links is subsequently calculated so that the final path information meets the predetermined conditions related to the real-time routing requirements of the service. It can be seen that the routing algorithm model provided by the present disclosure combined with the service target path determination method can also meet the real-time routing requirements of dynamic services. BRIEF DESCRIPTION OF THE DRAWINGS
[0058] Figure 1 It is a SDN network architecture diagram;
[0059] Figure 2 is a flowchart of an implementation of the determination method provided in the first aspect of the present disclosure;
[0060] Figure 3 is a flowchart of another implementation of the determination method provided in the first aspect of the present disclosure;
[0061] Figure 4 is a flowchart of an implementation of step S100;
[0062] Figure 5 is a flowchart of another implementation of step S100;
[0063] Figure 6 It is a schematic diagram of encoding input vectors and output vectors;
[0064] Figure 7 is a flowchart of an implementation of step S120;
[0065] Figure 8 It is a flowchart of an implementation of the method for determining a business target path provided by the second aspect of the present disclosure;
[0066] Fig. 9 It is a flowchart of an implementation of the service deployment method provided in the fourth aspect of the present disclosure;
[0067] Fig.10 It is an architectural diagram of an implementation scheme of the SDN network system provided by the present disclosure. DETAILED DESCRIPTION
[0068] In order to enable those skilled in the art to better understand the technical solution of the present invention, the method for determining a routing algorithm model, the method for determining a service path, the SDN controller, the electronic device, and the computer-readable storage medium provided by the present invention are described in detail below in conjunction with the accompanying drawings.
[0069] Example embodiments will be described more fully below with reference to the accompanying drawings, but the example embodiments may be embodied in different forms and should not be construed as limited to the embodiments set forth herein. On the contrary, the purpose of providing these embodiments is to make the present disclosure thorough and complete and to enable those skilled in the art to fully understand the scope of the present disclosure.
[0070] In the absence of conflict, the various embodiments of the present disclosure and the various features therein may be combined with each other.
[0071] As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.
[0072] The terms used herein are only used to describe specific embodiments and are not intended to limit the present disclosure. As used herein, the singular forms "a", "an" and "the" are also intended to include the plural forms, unless the context clearly indicates otherwise. It will also be understood that when the term "comprising" is used in this specification, it specifies the presence of the features, wholes, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, wholes, steps, operations, elements, components and / or groups thereof.
[0073] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by those of ordinary skill in the art. It will also be understood that terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with their meaning in the context of the relevant art and the present disclosure, and will not be interpreted as having an idealized or overly formal meaning unless explicitly defined as such herein.
[0074] Figure 1 What is shown in the figure is an SDN network architecture diagram. As shown in the figure, the SDN network includes a control plane and a data plane. The control plane includes an SDN controller, and the data plane includes multiple hosts and multiple switches.
[0075] In order to deploy services, the host sends the service requirement information of the service to be deployed (including the source node and the target node of the service) to the SDN controller, and the SDN controller calculates the service path information for the service to be deployed and sends the service path information to the corresponding host. Finally, the host deploys the service according to the received service path information.
[0076] As a first aspect of the present disclosure, a method for determining a routing algorithm model is provided, such as Figure 2 As shown, the method for determining the routing algorithm model includes:
[0077] In step S110, a training sample is obtained, wherein an input vector in the training sample includes network resource information before deploying multiple services and service demand information of the multiple services, and an output vector of the training sample includes service path information of the service paths passed after the multiple services are deployed, wherein the service paths passed after the multiple services are deployed meet a predetermined network optimization goal;
[0078] In step S120, deep learning is performed using the training samples to obtain a routing algorithm model, wherein the routing algorithm model can take the business demand information of the business to be deployed and the network resource information of the current network as input vectors, and output information of multiple pre-selected links, and the pre-selected links are used to deploy the business to be deployed.
[0079] It should be noted that the service path includes multiple links arranged in a predetermined order, and the links are connected between two nodes in the network. The information of the multiple pre-selected links output by the routing algorithm model obtained by the determination method is not the service path information of the service. The service path can be obtained only after the multiple pre-selected links are further sorted.
[0080] The routing algorithm model determined by the determination method provided by the present disclosure needs to be used in conjunction with the service target path determination method provided by the second aspect of the present disclosure. That is, after obtaining multiple pre-selected links for deploying the service to be deployed through the routing algorithm model, it is necessary to calculate the information of the multiple pre-selected links to obtain a service path that meets the predetermined conditions.
[0081] The services in traffic engineering have dynamic properties, and the method for determining the routing algorithm model provided in the present disclosure can be oriented to traffic engineering. The determination method is equivalent to determining the routing algorithm model through deep learning, and the network resources before the deployment of the service and the network optimization goals are taken into account during deep learning. Therefore, when the pre-selected links calculated by the routing algorithm model are used for service deployment, the utilization rate of network resources can be improved. In the present disclosure, the service path is not determined directly by the routing model algorithm, but the information of multiple pre-selected links is subsequently calculated so that the final path information meets the predetermined conditions related to the real-time routing requirements of the service. It can be seen that the routing algorithm model provided in the present disclosure combined with the service target path determination method can also meet the real-time routing requirements of dynamic services.
[0082] It should be pointed out that the routing algorithm model determined by the present disclosure can be stored in the SDN controller. When the SDN controller receives the business requirements of the business to be deployed sent by the host of the data plane, the business requirements of the business to be deployed and the current network resources are used as data vectors, which are input into the routing algorithm model to obtain information of multiple links. After that, the multiple link information is calculated and the business target path is finally obtained. The host can deploy the business according to the business target path.
[0083] In the present disclosure, the network optimization target is not specifically limited. Optionally, the network optimization target may be any one of network-wide load balancing, network-wide bandwidth occupancy minimum, network-wide latency minimum, and network-wide blocking rate minimum.
[0084] When the network optimization goals are different, the service paths for deploying the same service may also be different.
[0085] It should be pointed out that in the present disclosure, there is no special limitation on the device that executes the determination method. For example, the determination method can be executed by a separate electronic device, or by an SDN controller. However, no matter what device executes the determination method, the routing algorithm model obtained by the determination method needs to be sent to the SDN controller.
[0086] As described above, the training samples include not only the network resource information before the services are deployed, but also the service path information of the service paths passed by the multiple services after the services are deployed.
[0087] In the present disclosure, there is no particular limitation on how to obtain the service path information. As an optional implementation, Figure 3 As shown, before step S110, the determination method further includes:
[0088] In step S100, service paths for deploying the multiple services are generated respectively according to the service requirements of the multiple services and the predetermined network optimization target, and corresponding service path information is obtained.
[0089] After determining the service path of each service, the training sample can be obtained by combining the network resource information before deploying multiple services, the service demand information of multiple services, and the network optimization target information when deploying multiple services.
[0090] In the present disclosure, there is no special limitation on the specific implementation of step S100. For example, a heuristic algorithm can be used to generate service paths for deploying multiple services according to multiple services to be deployed and network optimization goals corresponding to the multiple services to be deployed.
[0091] The heuristic algorithm is a network resource optimization algorithm based on global services, which can improve the utilization of network resources.
[0092] Optionally, the heuristic algorithm is a genetic algorithm. The following describes how to use the genetic algorithm to determine the service path. Specifically, Figure 4 As shown, step S100 may include:
[0093] In step S101a, the initial deployment order of the multiple services is used as the chromosome of the genetic algorithm, and the initial deployment order is changed through continuous mutation and crossover of the chromosome until the genetic algorithm converges to obtain the target deployment order;
[0094] In step S102a, the Dijkstra algorithm is used to perform deployment calculation on each of the multiple services to obtain initial path information of each of the multiple services;
[0095] In step S103a, the multiple services are deployed according to the target deployment order and the initial path information of each service, and the service path information after the multiple services are deployed is obtained.
[0096] Of course, the present disclosure is not limited to this, and the heuristic algorithm may also be a simulated annealing algorithm. The following describes how to use the simulated annealing algorithm to determine the service path. Specifically, Figure 5 As shown, step S100 may include:
[0097] In step S101b, the multiple services are initially deployed according to the initial deployment order using the Dijkstra algorithm, wherein the initial weight of the Dijkstra algorithm is related to the predetermined network optimization target;
[0098] In step S102b, an evaluation function is calculated according to the predetermined network optimization goal;
[0099] In step S103b, a predetermined proportion of the services that have been initially deployed are randomly removed from the network;
[0100] In step S104b, the dismantled services are redeployed using the Dijkstra algorithm;
[0101] In step S105b, the evaluation function is calculated according to the quadratic weights of the Dijkstra algorithm used in the redeployment;
[0102] In step S106b, it is determined whether the evaluation function obtained by this calculation is better than the evaluation function used last time;
[0103] If the judgment result is yes, then in step S107b, the removed services are deployed according to the service path calculated by the Dijkstra algorithm corresponding to the evaluation function calculated this time;
[0104] If not, then the removed services are redeployed using the Dijkstra algorithm with new weights until the evaluation function converges, and step S107b is executed;
[0105] In step S108b, the service paths for finally deploying the multiple services are used as service path information for deploying the multiple services.
[0106] In the present disclosure, the storage format of the data in the training samples is not particularly limited.
[0107] As an optional implementation, the data in the training sample can be stored in a vector format. As described above, in the training sample, the input vector includes network resource information before deploying multiple services and business demand information of multiple services. The network resource information before deploying multiple services can be represented by x (the network resource information can include the remaining bandwidth of each link in the network before deploying multiple services), and the network resource information can be represented by a one-dimensional vector of dimension E. The business demand information is represented by y (the business demand information can include the source node of the service, the destination node of the service, and the service bandwidth), and the business demand information can be represented by a vector of dimension (2V+1), where V represents the number of nodes in the network, and the source node and destination node of the service can be represented by a one-hot code, and the position of the node is encoded as 1, and the remaining positions are encoded as 0. The output can be represented by z.
[0108] The service paths obtained for each service using the predetermined algorithm can be Figure 6 The encoding method shown in represents the output z. The output z is represented by a one-dimensional vector of dimension E. The value of the link through which the service is deployed is 1 (which can be called a pre-selected link), and the value of the remaining links is 0 (which can be called an excluded link).
[0109] exist Figure 6 In the implementation shown in , there are n links in the network, the n links are numbered according to their addresses, the bandwidth of the first link is B1, the bandwidth of the second link is B2, ..., the bandwidth of the nth link is Bn. The bandwidth requirement of the service is B.
[0110] The input and output in the training samples can be stored in the above-mentioned vector manner.
[0111] In the present disclosure, there is no special limitation on the specific steps of step S120, as long as the routing algorithm model can be obtained through step S120. As an optional implementation, Figure 7 As shown in , step S120 may include:
[0112] In step S121, the network resources before the deployment of multiple services in the training sample and the service requirements of multiple services are used as input vectors, and the multiple service paths for deploying multiple services are used as output vectors and input into the neural network;
[0113] In step S122, the neural network is trained using the training samples to obtain a trained neural network that can output an initial output vector according to the input vector, and for each service corresponding to the input vector, the elements in the initial output vector are the retention rates of each link in the network topology;
[0114] In step S123, the trained neural network is processed to obtain the routing algorithm model, which can represent the links in the initial output vector whose retention rate is greater than or equal to the predetermined threshold with 1, represent the links in the initial output vector whose retention rate is less than the predetermined threshold with 0, and output a final vector, wherein the links in the final vector represented by 1 are the pre-selected links.
[0115] As an optional implementation, step S122 may include: inputting the input vector x, input vector y and output vector z in the training sample into the neural network, passing through a plurality of residual network structures composed of fully connected layers and batch normalization layers through forward propagation, and finally passing through a layer of fully connected layers to obtain the output result z' of the neural network, wherein the activation function in the residual network structure in the neural network may be a Relu activation function, and the activation function of the last fully connected layer is a sigmoid activation function. Since the sigmoid activation function maps the input value to a value between 0 and 1, z' is a one-dimensional vector whose elements are values between 0 and 1, and the size of each element in the vector represents the probability of link selection (i.e., the retention rate mentioned above).
[0116] The output result z' and the corresponding output vector z are used to calculate the loss function value. The loss function can be a binary cross entropy loss function. The loss function is calculated as follows:
[0117] Assume that the actual output bit z = [z1, z2, ..., z i , ..., z n-1 , z n ], the output of the neural network is z'=[z t 1, z t 2, ..., z ti , ... z t n-1 , z t n ], loss function Backward gradient propagation is performed according to the loss function to optimize the weight value of each layer in the neural network until the loss value is reduced to a certain threshold and the training is stopped to obtain the trained neural network.
[0118] In the present disclosure, step S123 is not particularly limited. Optionally, the output result of the trained neural network is discretized by threshold, and the threshold is first set according to the network link retention rate (the link retention rate is the ratio of the value of the output vector of 1 in the training sample to the total value), such as the link retention rate can be set as the threshold, the value of the element less than the threshold is set to 1, and the value of the element greater than or equal to the threshold is set to 1, and a one-dimensional vector composed of a group of 0 and 1 can be obtained. According to the position of the vector, the link with the corresponding value of 1 in the network topology is set as the pre-selected link, and the link with the corresponding value of 0 in the network topology is set as the excluded link.
[0119] In a second aspect of the present disclosure, calculation is performed only on the pre-selected links to determine the final service path.
[0120] As a second aspect of the present disclosure, a method for determining a service target path is provided, such as Figure 8 As shown, the business target path determination method includes:
[0121] In step S210, the service requirements of the service to be deployed and the current network resources are input as input vectors into the routing algorithm model to obtain multiple pre-selected links for each service to be deployed, wherein the routing algorithm model is the routing algorithm model obtained by the determination method provided in the first aspect of the present disclosure;
[0122] In step S220, for each service to be deployed, a path that meets a predetermined condition is selected from a plurality of pre-selected links calculated for the service to be deployed as a service target path for the service to be deployed.
[0123] In the business target path determination method provided by the present disclosure, the network topology is first pruned using a routing calculation model, and a new network is formed using qualified links (pre-selected links). Then, at least a portion of the pre-selected links are sorted according to the current network conditions, and the sorted path is used as the business target path.
[0124] The method for determining the routing algorithm model provided by the present disclosure is equivalent to determining the routing algorithm model through deep learning, and the network resources before the deployment of the service and the network optimization goals are taken into account during the deep learning. Therefore, when the link information calculated by the routing algorithm model is used for service deployment, the utilization rate of network resources can be improved. In the present disclosure, the service path is not determined directly using the routing model algorithm, but multiple link information is subsequently calculated so that the final path information meets the predetermined conditions. It can be seen that the routing algorithm model provided by the present disclosure combined with the service target path determination method can also meet the real-time routing requirements of dynamic services.
[0125] The services in traffic engineering have dynamic properties. As mentioned above, the routing algorithm model provided by the present invention combined with the service target path determination method can also meet the real-time routing requirements of dynamic services, making the service path determination method provided by the present invention particularly suitable for services oriented to traffic engineering.
[0126] In the present disclosure, the predetermined condition is not particularly limited, and the predetermined condition can be determined according to the specific service type. Optionally, the predetermined condition is the shortest route. Accordingly, in step S220, a greedy algorithm can be used to determine the service path with the shortest route.
[0127] Specifically, after completing the training of training samples and obtaining the routing algorithm model using the determination method provided in the first aspect of the present disclosure, when a new service or a batch of services arrives, first determine the bandwidth of each link in the network and the service demand information of each service (i.e., the source node, destination node and required bandwidth of each service), encode the input vector including the above information, and then input the encoded input vector into the routing algorithm model. Through the routing algorithm model, the final vector of the information of multiple links for deploying the services to be deployed can be finally obtained.
[0128] Through the calculation in step S220, the service target path of the service to be deployed may be obtained.
[0129] From the above description, it can be seen that the service deployment method is divided into two parts: offline training (which can be executed by the SDN controller) and online decision-making (which can be executed by the SDN controller). In the offline training part, a training set is generated by a heuristic algorithm, and the offline training of the routing algorithm model is completed. In the online decision-making part, the real-time optimization of service routing is achieved by a greedy algorithm.
[0130] As a third aspect of the present disclosure, an electronic device is provided, the electronic device comprising:
[0131] one or more first processing modules;
[0132] A first storage module stores a first executable program thereon. When the first executable program is executed by the one or more first processing modules, the one or more first processing modules implement the determination method provided by the first aspect of the present disclosure.
[0133] Optionally, the electronic device may further include one or more first I / O interfaces, which are connected between the processor and the memory and are configured to implement information interaction between the first processing module and the first storage module.
[0134] Among them, the first processing module is a device with data processing capability, including but not limited to a central processing unit (CPU), etc.; the first memory module is a device with data storage capability, including but not limited to random access memory (RAM, more specifically SDRAM, DDR, etc.), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory (FLASH); the first I / O interface (read-write interface) is connected between the first processing module and the first storage module, and can realize information interaction between the first processing module and the first storage module, including but not limited to a data bus (Bus), etc.
[0135] In some embodiments, the first processing module, the first storage module and the first I / O interface are connected to each other through a bus, and further connected to other components of the electronic device.
[0136] As a fourth aspect of the present disclosure, an SDN controller is provided, the SDN controller comprising:
[0137] one or more second processing modules;
[0138] A second storage module stores a second executable program. When the second executable program is executed by the one or more second processing modules, the one or more second processing modules implement the business target path determination method provided by the second aspect of the present disclosure.
[0139] After the routing algorithm model is determined using the determination method provided by the present disclosure, the routing algorithm model is stored in the SDN controller, and the second executable program is called through the second processing module of the SDN controller to calculate the service target path for the service to be deployed.
[0140] Optionally, the SDN controller may further include one or more second I / O interfaces, which are connected between the processor and the memory and are configured to implement information interaction between the second processing module and the second storage module.
[0141] Among them, the second processing module is a device with data processing capability, including but not limited to a central processing unit (CPU), etc.; the second memory module is a device with data storage capability, including but not limited to random access memory (RAM, more specifically SDRAM, DDR, etc.), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory (FLASH); the second I / O interface (read-write interface) is connected between the second processing module and the second storage module, and can realize information interaction between the second processing module and the second storage module, including but not limited to a data bus (Bus), etc.
[0142] In some embodiments, the second processing module, the second storage module, and the second I / O interface are interconnected via a bus, and further connected to other components of the SDN controller.
[0143] As a fourth aspect of the present disclosure, a service deployment method is provided, such as Fig. 9 As shown, the service deployment method includes:
[0144] In step S310, the service demand information of the service to be deployed and the current network resource information are sent to the SDN controller provided by the third aspect of the present disclosure;
[0145] In step S320, receiving the service target path sent by the SDN controller;
[0146] In step S330, the service is deployed according to the received service target path.
[0147] The service deployment method provided by the present disclosure can be executed by a host of the data plane.
[0148] As a fifth aspect of the present disclosure, an electronic device is provided, the electronic device comprising:
[0149] one or more third processing modules;
[0150] A third storage module stores a third executable program thereon. When the third executable program is executed by the one or more third processing modules, the one or more third processing modules implement the service deployment method provided in the fourth aspect of the present disclosure.
[0151] Optionally, the electronic device may further include one or more third I / O interfaces, which are connected between the processor and the memory and are configured to implement information interaction between the third processing module and the third storage module.
[0152] Among them, the third processing module is a device with data processing capability, including but not limited to a central processing unit (CPU) and the like; the third memory module is a device with data storage capability, including but not limited to random access memory (RAM, more specifically SDRAM, DDR, etc.), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory (FLASH); the third I / O interface (read-write interface) is connected between the third processing module and the third storage module, and can realize information interaction between the third processing module and the third storage module, including but not limited to a data bus (Bus) and the like.
[0153] In some embodiments, the third processing module, the third storage module and the third I / O interface are connected to each other through a bus, and further connected to other components of the electronic device.
[0154] As a sixth aspect of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored, and when the program is executed by a processor, at least one of the following methods is implemented:
[0155] The determination method according to the first aspect of the present disclosure;
[0156] A method for determining a business target path according to the second aspect of the present disclosure;
[0157] A service deployment method according to a fourth aspect of the present disclosure.
[0158] The principles and intended effects of the above aspects have been described in detail above and will not be repeated here.
[0159] Fig.10 , which is an architecture diagram of the SDN network system provided by the present disclosure. As shown in the figure, the control plane of the SDN network system is arranged with an SDN controller 910, which includes an information collection module 911, a storage module 912, a decision module 913, and a routing module 914.
[0160] The information collection module 911 is used to obtain network resource information and service demand information. The network resource information includes the remaining bandwidth of the network link, link load, link delay, etc. The service demand information includes the source node of the service, the target node of the service, the bandwidth required by the service, etc.
[0161] The storage module 912 is used to store the information collected by the information collection module 911 .
[0162] The decision module 913 is used to deploy paths for services through a heuristic algorithm according to the network optimization goal.
[0163] The routing module 914 is used to receive the routing decision of the decision module and route the services of the data plane.
[0164] In addition, the decision module 913 is also used to perform training based on the historical routing data in the storage module 912 on the one hand, and to route the services that need to be routed in the storage module 912 after the training is completed on the other hand.
[0165] The data plane of the SDN network includes multiple hosts 920 and multiple switches 930 .
[0166] It will be appreciated by those skilled in the art that all or some of the steps, systems, and functional modules / units in the methods disclosed above may be implemented as software, firmware, hardware, and appropriate combinations thereof. In hardware implementations, the division between the functional modules / units mentioned in the above description does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed by several physical components in cooperation. Some or all physical components may be implemented as software executed by a processor, such as a central processing unit, a digital signal processor, or a microprocessor, or implemented as hardware, or implemented as an integrated circuit, such as an application-specific integrated circuit. Such software may be distributed on a computer-readable storage medium, which may include a computer storage medium (or non-transitory medium) and a communication medium (or temporary medium). As known to those skilled in the art, the term computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tapes, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by a computer. In addition, it is well known to those skilled in the art that communication media typically contain computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media.
[0167] Example embodiments have been disclosed herein, and although specific terms are employed, they are used and should be interpreted only in a general illustrative sense and not for limiting purposes. In some instances, it will be apparent to those skilled in the art that, unless otherwise expressly noted, features, characteristics, and / or elements described in conjunction with a particular embodiment may be used alone or in combination with features, characteristics, and / or elements described in conjunction with other embodiments. Therefore, those skilled in the art will appreciate that various changes in form and detail may be made without departing from the scope of the present disclosure as set forth in the appended claims.
Claims
1. A method for determining a routing algorithm model, comprising: Acquire a training sample, wherein an input vector in the training sample includes network resource information before deploying multiple services and service demand information of the multiple services, and an output vector of the training sample includes service path information of the service paths passed after the multiple services are deployed, wherein the service paths passed after the multiple services are deployed meet a predetermined network optimization goal; Using the training samples to perform deep learning to obtain a routing algorithm model, wherein the routing algorithm model can take the service demand information of the service to be deployed and the network resource information of the current network as input vectors, and output information of a plurality of pre-selected links, wherein the pre-selected links are used to deploy the service to be deployed; Before obtaining the training sample, the method further includes: Generate service path information of service paths for deploying the multiple services respectively according to service requirements of the multiple services to be deployed and the predetermined network optimization target by using a heuristic algorithm; The heuristic algorithm includes a simulated annealing algorithm, which is an algorithm that deploys multiple services multiple times based on different service deployment orders based on the Dijkstra algorithm, and calculates an evaluation function based on the weights of the Dijkstra algorithm corresponding to each deployment. When the evaluation function converges, the algorithm determines the service path information of the service paths for deploying the multiple services.
2. The determination method according to claim 1, wherein: The heuristic algorithm includes a genetic algorithm, and the steps of respectively generating service path information of service paths for deploying the multiple services according to the service requirements of the multiple services to be deployed and the predetermined network optimization target include: The initial deployment order of the multiple services is used as the chromosome of the genetic algorithm, and the initial deployment order is changed by continuous mutation and crossover of the chromosome until the genetic algorithm converges to obtain a target deployment order; Performing deployment calculation on each of the multiple services using the Dijkstra algorithm to obtain initial path information of each of the multiple services; The multiple services are deployed according to the target deployment order and the initial path information of each service, and the service path information of the service paths through which the multiple services are deployed is obtained.
3. The determination method according to claim 1, wherein: The heuristic algorithm includes a simulated annealing algorithm, and the steps of respectively generating service path information of service paths for deploying the multiple services according to the service requirements of the multiple services to be deployed and the predetermined network optimization target include: Initially deploying the multiple services according to the initial deployment order using the Dijkstra algorithm, wherein the initial weight of the Dijkstra algorithm is related to the predetermined network optimization target; Calculate the evaluation function according to the predetermined network optimization goal; Randomly removing a predetermined proportion of the services that have been initially deployed from the network; Use Dijkstra's algorithm to redeploy the dismantled services; The evaluation function is calculated based on the quadratic weights of the Dijkstra algorithm used during redeployment; Determine whether the evaluation function obtained by this calculation is better than the evaluation function used last time; If the judgment result is yes, the removed services are deployed according to the service path calculated by the Dijkstra algorithm corresponding to the evaluation function calculated this time; If not, then the dismantled services are redeployed using the Dijkstra algorithm with new weights until the evaluation function converges; The service paths for finally deploying the multiple services are used as the service path information for deploying the multiple services.
4. The determination method according to any one of claims 1 to 3, wherein: The steps of using the training samples for deep learning include: Inputting the training samples into a neural network; The neural network is trained using the training samples so that the trained neural network can output an initial output vector according to the input vector, and for each service corresponding to the input vector, the elements in the initial output vector are the retention rates of each link in the network topology; The trained neural network is processed to obtain the routing algorithm model, wherein the routing algorithm model can represent the links in the initial output vector whose retention rate is greater than or equal to a predetermined threshold with 1, represent the links in the initial output vector whose retention rate is less than the predetermined threshold with 0, and output a final vector, wherein the links in the final vector represented by 1 are the pre-selected links.
5. The determination method according to any one of claims 1 to 3, wherein: The optimization goal includes at least one of the following goals: The entire network has balanced load, lowest bandwidth usage, lowest latency, and lowest blocking rate.
6. A method for determining a business target path, comprising: Inputting the service requirements of at least one service to be deployed and the current network resources as input vectors into a routing algorithm model, and obtaining a plurality of pre-selected links for each service to be deployed, wherein the routing algorithm model is a routing algorithm model obtained by the determination method according to any one of claims 1 to 5; For each service to be deployed, a path that meets a predetermined condition is selected from a plurality of pre-selected links calculated for the service to be deployed as a service target path for the service to be deployed.
7. The method for determining a business target path according to claim 6, wherein: The predetermined condition is that the route is the shortest.
8. An electronic device, comprising: one or more first processing modules; A first storage module stores a first executable program thereon. When the first executable program is executed by the one or more first processing modules, the one or more first processing modules implement the determination method according to any one of claims 1 to 5.
9. An SDN controller, comprising: one or more second processing modules; A second storage module stores a second executable program, and when the second executable program is executed by the one or more second processing modules, the one or more second processing modules implement the business target path determination method according to claim 6 or 7.
10. A service deployment method, comprising: Sending the service requirements of the service to be deployed and the current network resources to the SDN controller according to claim 9; Receiving the service target path sent by the SDN controller; The service is deployed according to the received service target path.
11. An electronic device, comprising: one or more third processing modules; A third storage module stores a third executable program thereon. When the third executable program is executed by the one or more third processing modules, the one or more third processing modules implement the service deployment method according to claim 10.
12. A computer-readable storage medium having a computer program stored thereon, wherein when the program is executed by a processor, at least one of the following methods is implemented: The determination method according to any one of claims 1 to 5; The method for determining a business target path according to claim 6 or 7; The service deployment method according to claim 10.
Citation Information
Patent Citations
Fast routing decision algorithm based on Q learning and LSTM neural network
CN108667734A