The present application claims priority to GB Application No. 1902918.0 filed Mar. 4, 2019, which is hereby incorporated herein in its entirety by reference.
The present disclosure relates to deployment of a software defined network. In particular it relates to optimization of network components involved in a software defined network.
Software defined networks (SDNs) provide dynamic configuration of physical or virtualized network components such as switches and routers for the purpose of providing network services for network applications. Divided logically into a “data plane”, consisting of network components, and a “control plane”, consisting of logic for configuring and controlling the network components, a particular specification of an SDN configuration by an SDN controller seeks to provide network services in an efficient and reliable manner.
A specification of an SDN configuration by a controller to provide required network services can lead to service degradation or interruption as multiple network services are defined over time using the same network infrastructure including the network components. Thus, there is a challenge to provide for effective SDN configurations by SDN controllers that mitigate these problems.
According to a first aspect of the present disclosure, there is a provided a computer implemented method of optimization of a software defined network (SDN) for a network application, the SDN including an SDN controller for configuring a plurality of network components to deliver a network service for the network application, each network component having a measurable metric for each of a plurality of characteristics of the component relating to a performance of the component, the method comprising: accessing, for each network component, a measure for each of the metrics to classify the component for a characteristic corresponding to the metric according to a fuzzy logic classification scheme; defining a plurality of configurations of network components suitable for providing the network service; selecting a configuration of the network components to provide the network application based on an optimization function optimizing the network components in terms of classifications of each network component.
In some embodiments, the network component is a forwarding device such as a switch or router.
In some embodiments, the performance of a network component includes a degree of contention for the component.
In some embodiments, the method further comprises generating an aggregate classification for each network component based on the classifications of the network component such that the optimization function is operable on the basis of the aggregate classification.
In some embodiments, the method further comprises deploying the selected configuration via the SDN controller.
In some embodiments, the accessing, defining and selecting are performed repeatedly at one or more predetermined time intervals.
According to a second aspect of the present disclosure, there is a provided a computer system including a processor and memory storing computer program code for performing the method set out above.
According to a third aspect of the present disclosure, there is a provided a computer system including a processor and memory storing computer program code for performing the method set out above.
Embodiments of the present disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:
The SDN controller 200 further provides interfaces, services and/or facilities for network applications 202 seeking to communicate via one or more networks. For example, the SDN controller 200 can provide flow control for one or more network components 204 using an SDN controller protocol such as OpenFlow. Examples of SDN controller 200 include: Beacon, a Java-based OpenFlow SDN controller that supports both event-based and threaded operation (see “The Beacon OpenFlow Controller” (David Erickson, Stanford University) available at http://yuba.stanford.edu/˜derickso/docs/hotsdn15-erickson.pdf; and OpenDaylight from the Linux Foundation (see “Open Daylight as a Controller for Software Defined Networking”), Badotra and Singh, 2015, IJARCS available from https://www.researchgate.net/publication/319547264_Open_Daylight_as_a_Controller_for_Software_Defined_Networking).
Network applications are provided as SDN applications 202 requiring communications services as network services provided by the SDN controller 200 using the network components 204. Each of the network components 204 is a physical or virtualized networking component such as a network switch, router or the like and is configurable by the SDN controller 200, such as by way of flow control, routing control, switching control and the like. Network components 204 include a plurality of measurable metrics 206, each metric 206 corresponding to a characteristic of the component relating to a performance of the component. For example, characteristics can include some or all of, inter alia: historical bandwidth availability; current bandwidth availability; historical data throughput; current data throughput; a degree of contention; a processor performance; a memory consumption; a memory availability; a measure of temperature; a degree of variability of a performance; a reliability measure; an uptime measure; a downtime measure; and other characteristics as will be apparent to those skilled in the art.
Embodiments of the present disclosure are operable to define a configuration for the SDN controller 200 as a set of one or more control rules to provide a network service required by an SDN application 202. In particular, the configuration is selected on the basis of metrics for each of the plurality of characteristics for each network component 204 so as to classify each component 204. Subsequently, a set of candidate controller configurations 210 are generated for selection therebetween to identify a selected controller configuration 212 for implementation by the SDN controller 200.
Thus, embodiments of the present disclosure provide an optimizer component 220 as a hardware, software, firmware or combination component for determining the selected configuration 212 for implementation by the SDN controller 200. The optimizer 220 accesses or receives, for each network component, a measure for each of the metrics 206 to classify the component according to a fuzzy classification scheme 208.
A fuzzy classification scheme 208 is provided for each of the characteristics for which metric measures are used by the optimizer 220. Fuzzy classification schemes are well known in the art and serve to classify quantitative information, such as a metric measure, into one of a plurality of classifications based on a degree of membership of the information with each of the classes. The classifications are defined across a range of memberships such that, for a particular quantitative measure, a prevailing classification can be determined for the measure. For example, three classes are depicted in the characteristic fuzzy classification 208 of
Thus, in use, the optimizer 220 classifies each metric 206 for each network component 204 using characteristic fuzzy classifications 208. In consequence, all network components 204 will be classified across all measured characteristics. Subsequently, the optimizer 220 defines a set of candidate SDN configurations 210 as configurations suitable for providing a network service required by an SDN application 202. Each configuration 210 is a configuration of network components suitable for providing the network service for the application 202. The SDN configurations 210 in the candidate set can be determined by, for example: an exhaustive analysis of the network components 204 to determine all possible configurations; by a selective search of network components 204 based on search criteria to identify promising SDN configurations satisfying criteria such as performance and/or availability criteria; or other configuration definition strategies as will be apparent to those skilled in the art.
Embodiments of the present disclosure are operable to perform a selection from the set of candidate SDN configurations 210 based on an optimization function. For each candidate SDN configuration 210 the characteristic classifications obtained based on the fuzzy classification schemes 208 provide a parameter space suitable for an optimization algorithm such as a simulated annealing algorithm. The optimization can be objectified in dependence on requirements of the SDN application 202 such as, for example, low contention, high availability, high throughput, low downtime or a combination of multiple objectives. On the basis of such optimization function the optimizer 220 selects a candidate configuration 210 as the selected configuration 212 for implementation by the SDN controller 200.
In some embodiments, each of the network components 204 is further classified based on an aggregate classification of the individual characteristic classifications such that the optimizer 220 selects from the candidate configurations 210 on the basis of the aggregate classifications.
In some embodiments the process of the optimizer is repeated iteratively at predetermined intervals so as to provide a new SDN configuration accounting for a current, changed or updated state of the network components on a regular basis.
Insofar as embodiments of the disclosure described are implementable, at least in part, using a software-controlled programmable processing device, such as a microprocessor, digital signal processor or other processing device, data processing apparatus or system, it will be appreciated that a computer program for configuring a programmable device, apparatus or system to implement the foregoing described methods is envisaged as an aspect of the present invention. The computer program may be embodied as source code or undergo compilation for implementation on a processing device, apparatus or system or may be embodied as object code, for example.
Suitably, the computer program is stored on a carrier medium in machine or device readable form, for example in solid-state memory, magnetic memory such as disk or tape, optically or magneto-optically readable memory such as compact disk or digital versatile disk etc., and the processing device utilizes the program or a part thereof to configure it for operation. The computer program may be supplied from a remote source embodied in a communications medium such as an electronic signal, radio frequency carrier wave or optical carrier wave. Such carrier media are also envisaged as aspects of the present disclosure. It will be understood by those skilled in the art that, although the present disclosure has been described in relation to the above described example embodiments, the invention is not limited thereto and that there are many possible variations and modifications which fall within the scope of the invention.
The scope of the present invention includes any novel features or combination of features disclosed herein. The applicant hereby gives notice that new claims may be formulated to such features or combination of features during prosecution of this application or of any such further applications derived therefrom. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the claims.
Number | Date | Country | Kind |
---|---|---|---|
1902918.0 | Mar 2019 | GB | national |