Some relevant works are presented in this area, which is divided into three sections: papers on various control architectures, papers on benchmarking performance assessment, and papers on Mininet performance assessment of SDN controllers.
The SDN control plane is currently created using either single controller designs or distributed/multiple controller architectures [
3,
6,
7,
8,
9,
10]. In their thorough investigation of the scalability problems with SDN-based control planes, Karakus and Durresi [
9] provided a classification and taxonomy of the state-of-the-art which is considered the very first taxonomy of control plane. They have simply produced a physical categorization in their work. There were two methods used for categorization: mechanism-related and topological. The topology of various architectures, their relationships, and scalability issues with the design of centralized and distributed controllers were the topics of the topology-related methods. The mechanism-related included many techniques, including parallel-based and routing scheme-based optimization, to improve controllers and their scalability issues. Only machine learning-based optimization was added by Abuarqoub et al., [
11] to the mechanism-based approach. If not, the classifications are almost identical. However, both classification lacks the further logical categorization of distributed and centralized SDN control planes. Additionally, a number of distinct controller types are missing from their taxonomy. In addition to the physical categorization, distributed SDN control systems may be divided into conceptually centralized and logically distributed architectures based on how information is shared among controller instances [
12] whereas. However, the entire control plane architecture was not provided by this effort, and their taxonomy lacks specific controller types. Additionally, Bannour et al., [
10] included the physical classification of control plane architecture along with its various types in their study. However, hybrid orientation, along with logical categorization and overall control plane design, is absent from the subdivision of physically distributed SDN control plane. Isong et al., [
13] did not address hybrid orientation, instead explicitly classifying the control plane into physical and logical components. Only in situations when the mechanism-based approach is completely absent did he view the control plane as a topology-related approach. In our work, topology-related and mechanism-related control designs are separated apart. Two categories—physically or logically centralized and physically or logically distributed—are further distinguished amongst these topology-related control structures. Moreover, each control architecture may have a flat, hierarchical, or hybrid orientation. Control plane routing-based optimization and parallelism-based optimization are two categories of mechanism-related approaches. Every category has a unique controller kind.
Several studies have been done in the aim of comparing SDN controllers [
2,
10,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37]. The authors of article [
10] examined 15 distributed SDN controllers while taking into account the following factors: (1) Scalability; (2) Reliability; (3) Consistency; (4) Interoperability; (5) Monitoring; and (6) Security. All of the aforementioned research have taken into account either open source or widely used SDN-based controllers. Distributed controllers have only been examined by them. However, they did not evaluate and compare the characteristics of the distributed but logically centralized SDN-based controllers. In this study, we have provided a qualitative assessment of their characteristics and, based on their capacities, we classify and categorize thirteen (13) distributed but logically centralized SDN controllers. One of the earliest studies to compare SDN controllers was [
25], which only looked at controller performance while taking into account a small number of controllers (NOX-MT, Beacon, and Maestro). But over time, new controllers like POX, Ryu, FloodLight, and OpenDayLight have taken the place of these ones. In [
26], a thorough analysis of SDN OpenFlow Controllers was carried out. The efficacy of the commonly used SDN controllers, NOX, POX, Beacon, FloodLight, MuL, Maestro, and Ryu, is compared. The hcprobe tool was utilized by the authors. This comparison needs to be expanded to take into account newly designed controllers as well as additional controller functions. A set of requirements—TLS support, virtualization, open source, interfaces, GUI, RESTful API, productivity, documentation, modularity, platform support, age, OpenFlow support, and OpenStack Neutron support—provided by the study carried out in [
27] serve as the foundation for the comparison of the controllers. Analytic Hierarchy Process (AHP), a monotonic interpolation/extrapolation mechanism that transfers the values of the attributes to a value on a pre-defined scale, was used to modify the Multi-Criteria Decision Making (MCDM) technique for the comparison. Five controllers (POX, Ryu, Trema, FloodLight, and OpenDayLight) were tested using the modified AHP, and "Ryu" was determined to be the best controller based on their needs. Based on how simple it was to: 1) examine the network (discovery), 2) add a new network function (setup), 3) change an existing function (change), and 4) remove a function (removal), the authors of [
28] evaluated the qualitative performance of two open source controllers. However, only two SDN controllers (ONOS and OpenDayLight) and one network function (port-/traffic-mirroring) were included in the study. Proactive and reactive operational styles are discussed separately in [
29]. Because the rules in the proactive mode are loaded into the switch at startup rather than every time the switch gets a packet for which there is no matching rule in its flow table, the proactive mode performs better than the reactive one. Even though this comparison highlights a significant aspect of the performance comparison, it is insufficient to determine which featured controller is the best. More research is conducted in [
30], which offers more factors to take into account while creating a new controller. There are two different designs that are taken into consideration: shared queue with adaptive batching and static partitioning with static batching. The Beacon system, utilizing static batching, demonstrated the best performance in the Maestro, NOX-MT, and FloodLight tests. However, the optimal latency records are shown by Maestro, which employs adaptive batching architecture. Therefore, the behavior of the necessary controller, which is connected to its application domain, determines the architecture to be used. The portability and performance of the controller are shown to be impacted by the programming language selection in [
31]. Because Java is cross-platform compatible and allows multithreading, the authors contend that it is the best option. Python has problems with multithreading at the performance level, whereas C++ has memory management and other constraints. The runtime platform determines which net languages work with (Linux compatibility is not supported). As a result, they demonstrate that out of numerous controllers (NOX, POX, Maestro, FloodLight, Ryu), the Java-based Beacon performs the best. Nonetheless, the fact that these several languages are still in use today indicates that each language retains some traits that the others have not taken up. The authors [
32], emphasized the problem of software aging. The primary problem under investigation is memory leak, and in order to maintain the study’s objectivity, two Java-based controllers—FloodLight and Beacon—were compared. The outcomes demonstrated that Beacon performs better and uses less memory than FloodLight. The authors of [
33] and [
34] examined 12 whereas authors of [
35] examined 8 popular open source controllers taking into account a number of factors, including programming language, graphical user interface, documentation, modularity, distributed/centralized, platform support, southbound and northbound APIs, partners, multithreading support, open stack support, and application area. Furthermore, the comparison takes into account a wide range of other SDN-specific qualitative factors in addition to quantitative metrics like throughput and latency. The study [
36] examined a number of open-source controllers, including Ryu, POX, OpenDayLight (ODL), and Open Network Operative System (ONOS), by qualitatively assessing both their performance and features. The authors used the Cbench program to benchmark the controllers under various operating situations and quantitatively assess a number of characteristics. The authors of article [
37] compared the features and performances of four well-known SDN controllers. The authors demonstrated that Ryu has a good amount of features, making it perfect for small-scale SDN installations, and that OpenDayLight and ONOS are the controllers with the most feature richness.
A hardware-based testbed or simulation/emulation can be used to assess or benchmark a controller's performance. Hardware testbeds are more expensive for the research community even if they offer measurements that are more in line with real values in a production setting. Thus, assessments based on simulation or emulation are typical. Frameworks like OFLOPS [
38], OFLOPS-Turbo [
39], Cbench [
25], PktBlaster [
40], and OFCBenchmark [
41] have been suggested to encourage the study of various performance characteristics of OpenFlow devices. In order to test new applications and construct OpenFlow-based networks on a single system, a number of simulation and emulation tools have also been developed. Tools that may be used to deploy a virtual network and estimate performance metrics for different network topologies and sizes is the Mininet [
17], NS3 [
42] network simulator. Papers [
2,
14] provide a comparative assessment of previous benchmarking research as well as an in-depth look at the capabilities of benchmarking tools. A summary of SDN-based research utilizing Mininet is provided in Paper [
17], yet there is no survey of SDN controller performance evaluation using Mininet. We have conducted a thorough review of the literature on performance evaluation in this study, shown in Table 2. Additionally, this work evaluates five distributed but logically centralized controllers using six performance metrics: bandwidth, round-trip time, delay, jitter, packet loss, and throughput. We created two custom topologies with hosts dispersed in a uniform and non-uniform way using the Mininet simulation environment.