# A Comprehensive Survey on Knowledge-Defined Networking
## 5 Control Plane
### Control Models
However, even though a physically distributed hierarchical control architecture provides a solution to scalability, reliability, and vulnerability issues in a single controller, this architecture can suffer from path stretch problems [321]. Kandoo is one of the very first proposed hierarchically distributed control frameworks, having two layers of global and local controllers that partition control applications into global and local [308]. Local controllers, which are not connected to each other and have local network views, handle frequent events that occur in the data plane that do not require a global view, while the global controller (root controller), which is connected to all local controllers, handles non-frequent, non-local events that require a global view. Thus, Kandoo effectively reduces the events received by the root controller by distributing the load across multiple local controllers for frequent events. Even though the Kandoo framework has addressed the scalability issue present in logically and physically centralized control architectures, it does not have the fault tolerance to protect itself from failures and attacks. Orion is a framework designed to overcome the scalability issue of flat control architectures and the path stretch problem in hierarchically distributed control architectures. In Orion, a hybrid hierarchical architecture is proposed to reduce the complexity of the control plane, while an abstracted hierarchical routing method is used to address the path stretching problem [322]. Orion also has two control layers, where the bottom layer consists of area controllers and the top layer consists of sub-domain controllers that have a global network view for their own domain and communicate with each other for synchronization. FlowBroker is a hierarchical control architecture having domain controllers and one or more super controllers (brokers), where each domain controller can attach to more than one broker based on their reputation for load balancing and reliability [323]. In FlowBroker, brokers can also communicate with each other to share abstracted network states. B4 is a framework that is employed in a software-defined wide area network that has a two-level hierarchy of the control plane [324]. The bottom control layer has Onix-based controllers, which are responsible for local site-level control, where each of the site-level controllers is managed by a global-level controller at the top level. Thus, there is a logically centralized controller that can implement high-level control with a global controller view without having a performance bottleneck with large networks. B4 has many fault-recovery mechanisms at both levels of control. For instance, when the logically centralized global controller is unavailable, B4 will replicate the global controller across multiple wide-area networks. When a local site-level controller is unavailable, a new controller will be appointed from the set of reachable standby controllers. Similar to B4, Espresso also has a hierarchically physically distributed architecture, which has higher reliability and full interoperability with the internet and heterogeneous peers [325]. Espresso has a fail-safe static system where the data plane keeps the last known good state to allow for control plane unavailability. A recursive building block known as a logical xBar, which is a programmable entity that can switch packets between ports, and a logical server, which manages forwarding tables and control plane computations, are used to create a centralized hierarchical control plane [326]. Logically Distributed and Physically Distributed Control  
The main feature of conventional SDN is the logically centralized control plane, which decouples the control and data planes and yields better management of intra-domain networks.